html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--ai-accent: var(--accent);--ai-bg: var(--btn-bg);--ai-bg-hover: var(--btn-bg-hover);--ai-border: var(--border);--ai-muted: var(--muted)}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;padding:0;width:100%;height:100vh;overflow:hidden}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;width:100%;height:100%;overflow:hidden}.app-shell{display:flex;flex-direction:column;width:100vw;height:100vh;margin:0;padding:0;overflow:hidden;position:fixed;top:0;left:0}.topbar{position:sticky;top:0;z-index:10;padding:1rem;max-height:75px;background:var(--bar-bg, rgba(0,0,0,.04));-webkit-backdrop-filter:saturate(120%) blur(6px);backdrop-filter:saturate(120%) blur(6px);border-bottom:1px solid var(--border, rgba(0,0,0,.12));width:100%;flex-shrink:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem}.topbar-title{font-size:2.5rem;font-weight:800;letter-spacing:2px}.topbar-left{display:flex;justify-content:flex-start;align-items:center}.topbar-center{display:flex;justify-content:center;align-items:center}.topbar-right{display:flex;justify-content:flex-end;align-items:center;gap:.5rem}.app-title{margin:0;font-size:3.8rem;font-weight:700;font-family:Fredoka One,Luckiest Guy,Chewy,"Baloo 2",Comic Sans MS,cursive;letter-spacing:2px;text-align:center;background:linear-gradient(45deg,#ff5252,#ffca28,#4caf50,#29b6f6,#ab47bc,#ff9800);background-size:300% 300%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:gradientShift 3s ease-in-out infinite;text-shadow:2px 2px 4px rgba(0,0,0,.3);line-height:1}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@media (max-width: 768px){.topbar-title{font-size:2.4rem}}.toolbar{display:inline-flex;gap:.4rem;align-items:center;flex:1;position:relative;width:100%;margin-top:8px}.tool-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border, rgba(0,0,0,.15));background:var(--btn-bg, #fff);color:inherit;padding:.6rem .7rem;border-radius:6px;line-height:1;cursor:pointer;box-shadow:0 1px #0000000a;transition:background .12s ease,border-color .12s ease,transform 60ms ease}.tool-btn:hover{background:var(--btn-bg-hover, #f4f4f5);border-color:var(--border-strong, rgba(0,0,0,.25))}.tool-btn:active{transform:translateY(1px)}.tool-btn.active{outline:2px solid var(--accent, #646cff);background:var(--btn-bg-active, rgba(100,108,255,.08));border-color:var(--accent, #646cff)}.tool-icon{font-size:14px}.spacer{flex:1}.hamburger-container{display:flex;align-items:center;padding:.2rem .3rem}.hamburger-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border, rgba(0,0,0,.15));background:var(--btn-bg, #fff);padding:.5rem .9rem;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .2s ease;display:flex;align-items:center;gap:.5rem;margin-top:8px}.hamburger-btn:hover{background:var(--btn-bg-hover, #f4f4f5);border-color:var(--border-strong, rgba(0,0,0,.25))}.hamburger-btn.active{background:var(--btn-bg-active, rgba(100,108,255,.08));border-color:var(--accent, #646cff)}.hamburger-icon{font-size:16px}.content{display:flex;flex:1;width:100%;height:100%;overflow:hidden;position:relative;min-height:0}.canvas-wrap{flex:1;width:100%;height:100%;background:radial-gradient(circle at 25% 25%,rgba(0,0,0,.04) 0 1px,transparent 1px) 0 0/16px 16px;overflow:hidden;position:relative}.scriblio-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;outline:none;touch-action:none}.scriblio-canvas.cursor-eraser{cursor:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'><path fill='%23ffffff' stroke='%23000000' stroke-width='1' d='M3 14l7-7 5 5-7 7H3z'/></svg>") 4 20,crosshair}.sidepanel{position:fixed;top:0;right:0;width:320px;height:100vh;background:var(--panel-bg, #fff);border-left:1px solid var(--border, rgba(0,0,0,.12));transform:translate(100%);transition:transform .3s ease;z-index:1000;display:flex;flex-direction:column;overflow:hidden;pointer-events:auto}.sidepanel.open{transform:translate(0)}.panel-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--border, rgba(0,0,0,.12));background:var(--bar-bg, rgba(0,0,0,.04))}.panel-header h3{margin:0;font-size:1.1rem;font-weight:600}.close-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;font-size:18px;cursor:pointer;padding:.2rem;border-radius:4px;transition:background .15s ease}.close-btn:hover{background:var(--hover, rgba(0,0,0,.04))}.panel{flex:1;padding:1rem;overflow-y:auto;display:flex;flex-direction:column;gap:1.5rem}.panel-section{display:flex;flex-direction:column;gap:.75rem}.panel-label{margin:0;color:var(--muted, #666);font-size:.9rem;font-weight:500}.swatches{display:grid;grid-template-columns:repeat(8,32px);gap:8px}.swatch{width:32px;height:32px;border-radius:6px;border:1px solid var(--border, rgba(0,0,0,.15));cursor:pointer;transition:all .15s ease}.swatch:hover{transform:scale(1.05)}.swatch.selected{outline:2px solid var(--accent, #646cff);outline-offset:2px}.buttons{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:.4rem .7rem;border:1px solid var(--border, rgba(0,0,0,.15));border-radius:999px;background:var(--btn-bg, #fff);cursor:pointer;font-size:.85rem;transition:all .15s ease}.chip:hover{background:var(--btn-bg-hover, #f4f4f5)}.chip.selected{border-color:var(--accent, #646cff);background:var(--btn-bg-active, rgba(100,108,255,.08))}.scriblio-slider{width:100%;accent-color:var(--accent, #646cff)}.slider-labels{display:flex;justify-content:space-between;color:var(--muted, #666);font-size:.75rem}.panel-actions{padding:1rem;border-top:1px solid var(--border, rgba(0,0,0,.12));background:var(--bar-bg, rgba(0,0,0,.04));display:flex;flex-direction:column;gap:.75rem}.action-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border, rgba(0,0,0,.15));background:var(--btn-bg, #fff);padding:.75rem 1rem;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .15s ease;display:flex;align-items:center;gap:.5rem;justify-content:center}.action-btn:hover{background:var(--btn-bg-hover, #f4f4f5);border-color:var(--border-strong, rgba(0,0,0,.25))}.clear-btn:hover{background:#fee;border-color:#faa;color:#c00}.export-btn:hover{background:#eff;border-color:#aaf;color:#00c}.import-btn:hover{background:#efe;border-color:#afa;color:#0a0}.panel-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:transparent;pointer-events:auto;z-index:999}.footer{display:grid;grid-template-columns:auto 1fr auto auto auto;gap:1rem;align-items:center;border-top:1px solid var(--border, rgba(0,0,0,.12));background:var(--bar-bg, rgba(0,0,0,.04));padding:.4rem .75rem;font-size:.8rem;width:100%;flex-shrink:0}.footer-actions{display:flex;gap:.5rem;align-items:center}.footer-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border, rgba(0,0,0,.15));background:var(--btn-bg, #fff);color:inherit;padding:.3rem .6rem;border-radius:6px;cursor:pointer;font-size:.75rem;font-weight:500;transition:all .15s ease;display:flex;align-items:center;gap:.25rem}.footer-btn:hover:not(.disabled){background:var(--btn-bg-hover, #f4f4f5);border-color:var(--border-strong, rgba(0,0,0,.25))}.footer-btn.disabled{opacity:.4;cursor:not-allowed;background:var(--btn-bg, #fff)}.footer-btn:focus-visible{outline:2px solid var(--accent, #646cff);outline-offset:1px}@media (max-width: 768px){.sidepanel{width:100vw}.topbar{padding:1rem .5rem;max-height:60px}.toolbar{gap:.2rem}.tool-btn{padding:.4rem .5rem}}:root{--accent: #646cff;--border: rgba(0,0,0,.12);--border-strong: rgba(0,0,0,.3);--btn-bg: #ffffff;--btn-bg-hover: #f4f4f5;--btn-bg-active: rgba(100,108,255,.08);--panel-bg: #ffffff;--bar-bg: rgba(0,0,0,.04);--hover: rgba(0,0,0,.04);--muted: #666;color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--border: rgba(255,255,255,.14);--border-strong: rgba(255,255,255,.35);--btn-bg: #1d1f23;--btn-bg-hover: #20242a;--btn-bg-active: rgba(100,108,255,.16);--panel-bg: #16181d;--bar-bg: rgba(255,255,255,.04);--hover: rgba(255,255,255,.06);--muted: #9aa3af}.canvas-wrap{background:radial-gradient(circle at 25% 25%,rgba(255,255,255,.05) 0 1px,transparent 1px) 0 0/16px 16px}}.tool-btn:focus-visible,.chip:focus-visible,.swatch:focus-visible,.hamburger-btn:focus-visible,.action-btn:focus-visible,.close-btn:focus-visible{outline:2px solid var(--accent, #646cff);outline-offset:2px}.canvas-text-input{z-index:1100;min-width:120px;min-height:1.4em;margin:0;padding:2px 4px;border:1px dashed #6965db;border-radius:4px;background:#ffffffeb;font-family:Virgil,Segoe UI,sans-serif;line-height:1.2;resize:none;overflow:hidden;outline:none}.ai-modal-overlay{--aip-accent: #10b981;--aip-accent-soft: #34d399;--aip-accent-2: #2dd4bf;--aip-glow: rgba(16, 185, 129, .45);--aip-shell: rgba(255, 255, 255, .85);--aip-surface: #ffffff;--aip-surface-2: #f2f4f7;--aip-surface-3: #e7eaef;--aip-border: rgba(16, 36, 28, .1);--aip-border-strong: rgba(16, 36, 28, .17);--aip-text: #16201c;--aip-text-muted: #586066;--aip-text-faint: #8b9298;--aip-overlay-bg: rgba(14, 22, 20, .4);--aip-shadow: 0 30px 72px -22px rgba(8, 30, 24, .45), 0 8px 24px -14px rgba(8, 30, 24, .3);--aip-danger: #e5484d;--aip-danger-text: #bf2c31;--aip-aurora-opacity: .42}@media (prefers-color-scheme: dark){.ai-modal-overlay{--aip-shell: rgba(20, 23, 28, .88);--aip-surface: #181b21;--aip-surface-2: #21252e;--aip-surface-3: #2a2f39;--aip-border: rgba(255, 255, 255, .08);--aip-border-strong: rgba(255, 255, 255, .15);--aip-text: #e9ece9;--aip-text-muted: #98a09c;--aip-text-faint: #69716e;--aip-overlay-bg: rgba(5, 8, 7, .6);--aip-shadow: 0 34px 88px -26px rgba(0, 0, 0, .8), 0 10px 30px -18px rgba(0, 0, 0, .6);--aip-danger: #ff6066;--aip-danger-text: #ff9b9f;--aip-aurora-opacity: .62}}.ai-modal-overlay{position:fixed;inset:0;z-index:2000;display:flex;align-items:flex-start;justify-content:center;padding:clamp(1rem,9vh,6.5rem) 1rem 1.5rem;background:var(--aip-overlay-bg);backdrop-filter:blur(8px) saturate(125%);-webkit-backdrop-filter:blur(8px) saturate(125%);animation:aipOverlayIn .18s ease}@keyframes aipOverlayIn{0%{opacity:0}to{opacity:1}}.ai-modal{position:relative;isolation:isolate;width:100%;max-width:624px;max-height:min(82vh,760px);display:flex;flex-direction:column;background:var(--aip-shell);backdrop-filter:blur(22px) saturate(165%);-webkit-backdrop-filter:blur(22px) saturate(165%);border:1px solid var(--aip-border);border-radius:22px;box-shadow:var(--aip-shadow),inset 0 1px #ffffff12;overflow:hidden;animation:aipModalIn .42s cubic-bezier(.16,1,.3,1)}.ai-modal>*:not(.ai-modal-aurora){position:relative;z-index:1}.ai-modal:before{content:"";position:absolute;top:0;left:12%;right:12%;height:1px;background:linear-gradient(90deg,transparent,var(--aip-accent),transparent);opacity:.85;pointer-events:none;z-index:3}@keyframes aipModalIn{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.ai-modal-aurora{position:absolute;top:-46%;left:-26%;right:-26%;height:92%;z-index:0;pointer-events:none;background:radial-gradient(38% 50% at 27% 30%,color-mix(in srgb,var(--aip-accent) 72%,transparent),transparent 72%),radial-gradient(36% 46% at 73% 21%,color-mix(in srgb,var(--aip-accent-2) 64%,transparent),transparent 72%),radial-gradient(30% 40% at 52% 56%,color-mix(in srgb,var(--aip-accent-soft) 48%,transparent),transparent 76%);filter:blur(46px);opacity:var(--aip-aurora-opacity);animation:aipAurora 24s ease-in-out infinite alternate}@keyframes aipAurora{0%{transform:translate3d(-3%,-2%,0) scale(1)}to{transform:translate3d(4%,5%,0) scale(1.16)}}.ai-modal-header{display:flex;align-items:center;gap:.8rem;padding:1rem 1.1rem 1rem 1.15rem;border-bottom:1px solid var(--aip-border);flex-shrink:0}.ai-brand-mark{width:36px;height:36px;border-radius:11px;flex-shrink:0;display:grid;place-items:center;color:#fff;background:linear-gradient(142deg,var(--aip-accent-soft),var(--aip-accent));box-shadow:0 6px 18px -4px var(--aip-glow),inset 0 1px #ffffff73}.ai-brand-mark svg{width:20px;height:20px}.ai-brand-text{display:flex;flex-direction:column;gap:1px;min-width:0}.ai-modal-title{margin:0;font-size:.98rem;font-weight:650;letter-spacing:-.015em;color:var(--aip-text)}.ai-modal-subtitle{font-size:.76rem;font-weight:450;color:var(--aip-text-faint)}.ai-modal-actions{display:flex;gap:.3rem;align-items:center;margin-left:auto}.ai-icon-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:32px;height:32px;border-radius:9px;border:1px solid transparent;background:transparent;color:var(--aip-text-muted);display:grid;place-items:center;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .1s ease}.ai-icon-btn svg{width:16px;height:16px}.ai-icon-btn:hover{background:var(--aip-surface-3);color:var(--aip-text);border-color:var(--aip-border)}.ai-close-btn:hover{color:var(--aip-danger)}.ai-icon-btn:active{transform:scale(.9)}.ai-mode-selector{position:relative;display:flex;margin:.85rem 1.1rem .4rem;padding:4px;border:1px solid var(--aip-border);border-radius:13px;background:color-mix(in srgb,var(--aip-surface-2) 70%,transparent);flex-shrink:0}.ai-mode-thumb{position:absolute;top:4px;left:4px;bottom:4px;width:calc((100% - 8px)/4);border-radius:9px;background:color-mix(in srgb,var(--aip-accent) 18%,var(--aip-surface));border:1px solid color-mix(in srgb,var(--aip-accent) 42%,transparent);box-shadow:0 2px 12px -3px var(--aip-glow),inset 0 1px #ffffff2e;transition:transform .34s cubic-bezier(.5,1.25,.4,1);pointer-events:none}.ai-mode-btn{position:relative;z-index:1;flex:1;display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.5rem .3rem;border:none;background:transparent;font-size:.82rem;font-weight:550;font-family:inherit;cursor:pointer;white-space:nowrap;color:var(--aip-text-muted);transition:color .2s ease}.ai-mode-btn:hover:not(.active){color:var(--aip-text)}.ai-mode-btn.active{color:color-mix(in srgb,var(--aip-accent) 80%,var(--aip-text))}.ai-mode-icon{display:grid;place-items:center}.ai-mode-icon svg{width:15px;height:15px}.ai-messages{flex:1;overflow-y:auto;overflow-x:hidden;padding:1rem 1.1rem 1.25rem;display:flex;flex-direction:column;gap:.85rem;min-height:220px;scroll-behavior:smooth;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--aip-border-strong) transparent}.ai-messages::-webkit-scrollbar{width:8px}.ai-messages::-webkit-scrollbar-track{background:transparent}.ai-messages::-webkit-scrollbar-thumb{background:var(--aip-border-strong);border-radius:8px;border:2px solid transparent;background-clip:padding-box}.ai-messages::-webkit-scrollbar-thumb:hover{background:var(--aip-text-faint);background-clip:padding-box}.ai-welcome{width:100%;display:flex;flex-direction:column;align-items:center;text-align:center;padding:1.5rem .5rem .5rem;animation:aipFadeIn .4s ease both}@keyframes aipFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.ai-welcome-icon{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;color:#fff;background:linear-gradient(142deg,var(--aip-accent-soft),var(--aip-accent));box-shadow:0 14px 36px -10px var(--aip-glow),inset 0 1px #ffffff73;animation:aipBreathe 4.5s ease-in-out infinite}.ai-welcome-icon svg{width:30px;height:30px}@keyframes aipBreathe{0%,to{box-shadow:0 14px 34px -12px var(--aip-glow),inset 0 1px #ffffff73}50%{box-shadow:0 18px 50px -8px var(--aip-glow),inset 0 1px #ffffff73}}.ai-welcome-title{margin:1rem 0 .3rem;font-size:1.18rem;font-weight:650;letter-spacing:-.02em;color:var(--aip-text)}.ai-welcome-text{margin:0;max-width:340px;font-size:.86rem;line-height:1.5;color:var(--aip-text-muted)}.ai-quick-actions{width:100%;max-width:430px;margin-top:1.4rem}.ai-quick-label{display:block;text-align:left;font-size:.68rem;font-weight:650;letter-spacing:.07em;text-transform:uppercase;color:var(--aip-text-faint);margin-bottom:.5rem;padding-left:.15rem}.ai-quick-list{display:flex;flex-direction:column;gap:6px}.ai-quick-action-btn{display:flex;align-items:center;gap:.7rem;width:100%;padding:.55rem .6rem;border:1px solid var(--aip-border);border-radius:12px;background:var(--aip-surface-2);cursor:pointer;text-align:left;font-family:inherit;transition:border-color .18s ease,background .18s ease,transform .18s cubic-bezier(.16,1,.3,1)}.ai-quick-action-btn:hover{border-color:color-mix(in srgb,var(--aip-accent) 48%,transparent);background:color-mix(in srgb,var(--aip-accent) 8%,var(--aip-surface-2));transform:translate(3px)}.ai-quick-icon{width:32px;height:32px;border-radius:9px;flex-shrink:0;display:grid;place-items:center;color:var(--aip-accent);background:color-mix(in srgb,var(--aip-accent) 13%,var(--aip-surface-3));transition:background .18s ease}.ai-quick-icon svg{width:17px;height:17px}.ai-quick-action-btn:hover .ai-quick-icon{background:color-mix(in srgb,var(--aip-accent) 24%,var(--aip-surface-3))}.ai-quick-body{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.ai-quick-title{font-size:.84rem;font-weight:600;color:var(--aip-text)}.ai-quick-sub{font-size:.74rem;color:var(--aip-text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-quick-enter{flex-shrink:0;width:22px;height:22px;display:grid;place-items:center;border-radius:6px;font-size:.8rem;color:var(--aip-accent);background:color-mix(in srgb,var(--aip-accent) 15%,transparent);opacity:0;transform:translate(-4px);transition:opacity .18s ease,transform .18s ease}.ai-quick-action-btn:hover .ai-quick-enter{opacity:1;transform:translate(0)}.ai-message{display:flex;gap:.6rem;align-items:flex-start;max-width:100%;animation:aipMsgIn .32s cubic-bezier(.16,1,.3,1) both}@keyframes aipMsgIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ai-message-user{flex-direction:row-reverse}.ai-message-avatar{width:30px;height:30px;border-radius:9px;flex-shrink:0;display:grid;place-items:center}.ai-message-avatar svg{width:16px;height:16px}.ai-message-assistant .ai-message-avatar{color:#fff;background:linear-gradient(142deg,var(--aip-accent-soft),var(--aip-accent));box-shadow:0 3px 12px -3px var(--aip-glow)}.ai-message-user .ai-message-avatar{color:var(--aip-text-muted);background:var(--aip-surface-3);border:1px solid var(--aip-border)}.ai-message-content{max-width:80%;padding:.6rem .8rem;border-radius:13px;font-size:.86rem;line-height:1.55;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word}.ai-message-assistant .ai-message-content{background:var(--aip-surface-2);border:1px solid var(--aip-border);color:var(--aip-text);border-top-left-radius:4px}.ai-message-user .ai-message-content{background:linear-gradient(142deg,var(--aip-accent),var(--aip-accent-soft));color:#fff;border-top-right-radius:4px;box-shadow:0 6px 18px -6px var(--aip-glow)}.ai-loading{display:flex;gap:.35rem;padding:.15rem 0}.ai-loading-dot{width:6px;height:6px;border-radius:50%;background:var(--aip-accent);animation:aipDots 1.2s ease-in-out infinite}.ai-loading-dot:nth-child(2){animation-delay:.15s}.ai-loading-dot:nth-child(3){animation-delay:.3s}@keyframes aipDots{0%,60%,to{transform:translateY(0);opacity:.35}30%{transform:translateY(-5px);opacity:1}}.ai-loading-text{margin-top:.35rem;font-size:.8rem;color:var(--aip-text-faint)}.ai-spinner{width:18px;height:18px;animation:aipSpin .7s linear infinite}@keyframes aipSpin{to{transform:rotate(360deg)}}.ai-error{position:relative;display:flex;align-items:flex-start;gap:.55rem;padding:.7rem 2.3rem .7rem .75rem;border-radius:12px;font-size:.83rem;line-height:1.45;color:var(--aip-danger-text);background:color-mix(in srgb,var(--aip-danger) 12%,var(--aip-surface));border:1px solid color-mix(in srgb,var(--aip-danger) 32%,transparent);animation:aipMsgIn .3s ease both}.ai-error-icon{flex-shrink:0;display:grid;place-items:center;margin-top:1px}.ai-error-icon svg{width:16px;height:16px}.ai-error-text{flex:1}.ai-error-dismiss{position:absolute;top:.5rem;right:.5rem;width:22px;height:22px;border:none;border-radius:6px;background:transparent;color:inherit;display:grid;place-items:center;cursor:pointer;opacity:.7;transition:background .15s ease,opacity .15s ease}.ai-error-dismiss svg{width:13px;height:13px}.ai-error-dismiss:hover{opacity:1;background:color-mix(in srgb,var(--aip-danger) 22%,transparent)}.ai-input-form{display:flex;gap:.55rem;padding:.85rem 1.1rem;border-top:1px solid var(--aip-border);flex-shrink:0}.ai-input-wrap{position:relative;flex:1;display:flex;align-items:center}.ai-input-icon{position:absolute;left:.7rem;display:grid;place-items:center;color:var(--aip-text-faint);pointer-events:none;transition:color .2s ease}.ai-input-icon svg{width:16px;height:16px}.ai-input-wrap:focus-within .ai-input-icon{color:var(--aip-accent)}.ai-input{width:100%;padding:.7rem .85rem .7rem 2.35rem;border:1px solid var(--aip-border-strong);border-radius:12px;background:var(--aip-surface-2);color:var(--aip-text);font-size:.88rem;font-family:inherit;outline:none;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}.ai-input::-moz-placeholder{color:var(--aip-text-faint)}.ai-input::placeholder{color:var(--aip-text-faint)}.ai-input:focus{border-color:color-mix(in srgb,var(--aip-accent) 62%,transparent);background:var(--aip-surface);box-shadow:0 0 0 4px color-mix(in srgb,var(--aip-accent) 15%,transparent)}.ai-input:disabled{opacity:.55;cursor:not-allowed}.ai-submit-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:42px;height:42px;flex-shrink:0;border:none;border-radius:12px;display:grid;place-items:center;color:#fff;cursor:pointer;background:linear-gradient(142deg,var(--aip-accent-soft),var(--aip-accent));box-shadow:0 7px 20px -6px var(--aip-glow),inset 0 1px #ffffff59;transition:transform .12s ease,box-shadow .2s ease,opacity .2s ease}.ai-submit-btn svg{width:18px;height:18px}.ai-submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 11px 26px -6px var(--aip-glow),inset 0 1px #ffffff59}.ai-submit-btn:active:not(:disabled){transform:translateY(0) scale(.95)}.ai-submit-btn:disabled{opacity:.4;cursor:not-allowed}.ai-footer{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;padding:.6rem 1.1rem;border-top:1px solid var(--aip-border);background:color-mix(in srgb,var(--aip-surface-2) 60%,transparent);flex-shrink:0}.ai-footer-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.18rem .5rem;border-radius:6px;background:var(--aip-surface-3);font-size:.72rem;color:var(--aip-text-muted)}.ai-footer-chip strong{color:var(--aip-text);font-weight:650}.ai-footer-spacer{flex:1}.ai-footer-hint{font-size:.72rem;color:var(--aip-text-faint);display:inline-flex;align-items:center;gap:.3rem}.ai-footer-hint kbd{padding:.1rem .35rem;border-radius:5px;border:1px solid var(--aip-border-strong);background:var(--aip-surface);font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.68rem;color:var(--aip-text-muted)}.ai-icon-btn:focus-visible,.ai-mode-btn:focus-visible,.ai-quick-action-btn:focus-visible,.ai-submit-btn:focus-visible,.ai-error-dismiss:focus-visible{outline:2px solid var(--aip-accent);outline-offset:2px}.ai-input:focus-visible{outline:none}@media (max-width: 600px){.ai-modal-overlay{padding:1rem .75rem;align-items:center}.ai-modal{max-height:90vh;border-radius:20px}.ai-mode-label{display:none}.ai-mode-btn{padding:.55rem .3rem}.ai-message-content{max-width:86%}}@media (max-width: 420px){.ai-modal-overlay{padding:0;align-items:stretch}.ai-modal{max-width:100%;max-height:100vh;border-radius:0;border:none}.ai-modal-subtitle{display:none}}@media (prefers-reduced-motion: reduce){.ai-modal-overlay,.ai-modal,.ai-modal-aurora,.ai-welcome,.ai-welcome-icon,.ai-message,.ai-error,.ai-loading-dot,.ai-spinner{animation:none!important}.ai-mode-thumb,.ai-quick-action-btn,.ai-submit-btn,.ai-icon-btn{transition:none!important}}@media print{.ai-modal-overlay{display:none}}.ai-floating-btn{--aip-btn-accent: #10b981;--aip-btn-soft: #34d399;--aip-btn-glow: rgba(16, 185, 129, .55);position:fixed;right:1.5rem;bottom:1.5rem;z-index:1500;display:flex;align-items:center;gap:.6rem;padding:.6rem .95rem .6rem .62rem;border:none;border-radius:15px;overflow:hidden;color:#fff;cursor:pointer;font-family:inherit;font-size:.86rem;font-weight:600;letter-spacing:-.01em;background:linear-gradient(142deg,var(--aip-btn-soft),var(--aip-btn-accent));box-shadow:0 10px 26px -8px var(--aip-btn-glow),0 2px 8px -2px #06181266,inset 0 1px #ffffff52;transition:transform .18s cubic-bezier(.16,1,.3,1),box-shadow .25s ease}.ai-floating-btn:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 35%,rgba(255,255,255,.3) 50%,transparent 65%);transform:translate(-130%);transition:transform .6s ease;pointer-events:none}.ai-floating-btn:hover{transform:translateY(-3px);box-shadow:0 16px 36px -8px var(--aip-btn-glow),0 4px 12px -2px #06181273,inset 0 1px #ffffff57}.ai-floating-btn:hover:before{transform:translate(130%)}.ai-floating-btn:active{transform:translateY(-1px) scale(.98)}.ai-floating-btn:focus-visible{outline:2px solid var(--aip-btn-accent);outline-offset:3px}.ai-floating-icon{position:relative;width:30px;height:30px;border-radius:9px;flex-shrink:0;display:grid;place-items:center;background:#ffffff2e;box-shadow:inset 0 1px #ffffff38}.ai-floating-icon svg{width:17px;height:17px}.ai-floating-text{position:relative;white-space:nowrap}.ai-floating-shortcut{position:relative;display:inline-flex;align-items:center;padding:.14rem .42rem;border-radius:6px;background:#ffffff29;border:1px solid rgba(255,255,255,.24);font-size:.7rem;font-weight:600;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}@media (max-width: 560px){.ai-floating-btn{right:1rem;bottom:1rem;width:52px;height:52px;padding:0;justify-content:center;border-radius:16px}.ai-floating-text,.ai-floating-shortcut{display:none}.ai-floating-icon{width:auto;height:auto;background:transparent;box-shadow:none}.ai-floating-icon svg{width:23px;height:23px}}@media (prefers-reduced-motion: reduce){.ai-floating-btn{transition:none}.ai-floating-btn:before{display:none}}.room-landing{--rl-bg: #eef0f5;--rl-card: #ffffff;--rl-text: #1a1c25;--rl-muted: #5b6170;--rl-faint: #9298a6;--rl-border: rgba(20, 22, 40, .12);--rl-input: #f5f6f9;--rl-accent: var(--accent, #646cff);position:fixed;inset:0;z-index:5000;display:flex;align-items:center;justify-content:center;padding:2rem 1rem;overflow:auto;background:var(--rl-bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--rl-text)}@media (prefers-color-scheme: dark){.room-landing{--rl-bg: #131419;--rl-card: #1c1e26;--rl-text: #e9eaef;--rl-muted: #969cab;--rl-faint: #6b7180;--rl-border: rgba(255, 255, 255, .1);--rl-input: #23262f}}.room-landing-glow{position:absolute;top:-12%;left:50%;width:min(680px,96vw);height:420px;transform:translate(-50%);pointer-events:none;background:radial-gradient(50% 60% at 50% 40%,color-mix(in srgb,var(--rl-accent) 32%,transparent),transparent 72%);filter:blur(40px);opacity:.7}.room-landing-card{position:relative;width:100%;max-width:460px;padding:2rem 1.9rem 1.6rem;background:var(--rl-card);border:1px solid var(--rl-border);border-radius:20px;box-shadow:0 30px 70px -24px #0a0c1e73,0 4px 14px -8px #0a0c1e4d;animation:room-rise .4s cubic-bezier(.16,1,.3,1)}@keyframes room-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.room-landing-head{text-align:center;margin-bottom:1.6rem}.room-landing-logo{font-size:2.5rem;font-weight:800;letter-spacing:.01em;line-height:1}.room-landing-logo span{text-shadow:-2px -2px 0 #000,2px -2px 0 #000,-2px 2px 0 #000,2px 2px 0 #000}.room-landing-tagline{display:flex;align-items:center;justify-content:center;gap:.45rem;margin:.95rem 0 0;font-size:.86rem;color:var(--rl-muted)}.room-landing-live{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;flex-shrink:0;color:var(--rl-accent);background:color-mix(in srgb,var(--rl-accent) 14%,transparent)}.room-landing-live svg{width:14px;height:14px}.room-field{display:block;margin-bottom:1.1rem}.room-field-label{display:block;margin-bottom:.4rem;font-size:.74rem;font-weight:650;letter-spacing:.05em;text-transform:uppercase;color:var(--rl-faint)}.room-input{width:100%;padding:.65rem .8rem;border:1px solid var(--rl-border);border-radius:11px;background:var(--rl-input);color:var(--rl-text);font-size:.92rem;font-family:inherit;outline:none;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.room-input::-moz-placeholder{color:var(--rl-faint)}.room-input::placeholder{color:var(--rl-faint)}.room-input:focus{border-color:color-mix(in srgb,var(--rl-accent) 65%,transparent);background:var(--rl-card);box-shadow:0 0 0 4px color-mix(in srgb,var(--rl-accent) 16%,transparent)}.room-actions{display:flex;flex-direction:column;gap:.2rem}.room-action{display:flex;flex-direction:column;gap:.7rem;padding:1rem;border:1px solid var(--rl-border);border-radius:14px;background:color-mix(in srgb,var(--rl-accent) 4%,var(--rl-card))}.room-action-text h2{margin:0 0 .15rem;font-size:.98rem;font-weight:700;letter-spacing:-.01em}.room-action-text p{margin:0;font-size:.8rem;line-height:1.45;color:var(--rl-muted)}.room-or{display:flex;align-items:center;gap:.7rem;padding:.55rem .2rem;color:var(--rl-faint);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.room-or:before,.room-or:after{content:"";flex:1;height:1px;background:var(--rl-border)}.room-join-row{display:flex;gap:.5rem}.room-code-input{flex:1;font-weight:650;letter-spacing:.14em;text-transform:uppercase;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.room-code-input::-moz-placeholder{letter-spacing:.14em}.room-code-input::placeholder{letter-spacing:.14em}.room-btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.62rem 1rem;border:1px solid var(--rl-border);border-radius:11px;background:var(--rl-input);color:var(--rl-text);font-size:.88rem;font-weight:650;font-family:inherit;cursor:pointer;white-space:nowrap;transition:transform .12s ease,box-shadow .2s ease,background .16s ease,border-color .16s ease,opacity .16s ease}.room-btn:hover:not(:disabled){border-color:color-mix(in srgb,var(--rl-accent) 45%,var(--rl-border));transform:translateY(-1px)}.room-btn:active:not(:disabled){transform:translateY(0)}.room-btn:disabled{opacity:.5;cursor:not-allowed}.room-btn-primary{border-color:transparent;color:#fff;background:linear-gradient(140deg,color-mix(in srgb,var(--rl-accent) 80%,#fff 8%),var(--rl-accent));box-shadow:0 8px 20px -8px color-mix(in srgb,var(--rl-accent) 70%,transparent)}.room-btn-primary:hover:not(:disabled){box-shadow:0 12px 26px -8px color-mix(in srgb,var(--rl-accent) 80%,transparent)}.room-btn-icon{display:grid;place-items:center}.room-btn-icon svg{width:16px;height:16px}.room-btn:focus-visible,.room-input:focus-visible{outline:2px solid var(--rl-accent);outline-offset:2px}.room-landing-foot{margin:1.3rem 0 0;text-align:center;font-size:.76rem;color:var(--rl-faint)}@media (max-width: 480px){.room-landing-card{padding:1.6rem 1.2rem 1.3rem}.room-landing-logo{font-size:2.1rem}}@media (prefers-reduced-motion: reduce){.room-landing-card{animation:none}}.room-bar{display:flex;align-items:center;gap:6px}.room-bar-status{width:9px;height:9px;border-radius:50%;flex-shrink:0;margin:0 1px}.room-bar-status-connected{background:#2ec46b;box-shadow:0 0 0 3px #2ec46b2e}.room-bar-status-connecting{background:#f0a83a;box-shadow:0 0 0 3px #f0a83a2e;animation:room-pulse 1.4s ease-in-out infinite}.room-bar-status-error{background:#e5564b;box-shadow:0 0 0 3px #e5564b2e}@keyframes room-pulse{0%,to{opacity:1}50%{opacity:.35}}.room-bar-code{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border:1px solid var(--border, rgba(0, 0, 0, .12));border-radius:8px;background:var(--btn-bg, #fff);color:var(--muted, #666);cursor:pointer;font-family:inherit;transition:background .15s ease,border-color .15s ease}.room-bar-code:hover{background:var(--btn-bg-hover, #f4f4f5);border-color:var(--accent, #646cff)}.room-bar-code-key{font-size:.62rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted, #888)}.room-bar-code-val{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.82rem;font-weight:700;letter-spacing:.06em;color:var(--accent, #646cff)}.room-bar-code-icon{display:grid;place-items:center;color:var(--muted, #999)}.room-bar-code-icon svg{width:13px;height:13px}.room-bar-online{display:inline-flex;align-items:center;gap:4px;padding:4px 7px;border:1px solid var(--border, rgba(0, 0, 0, .12));border-radius:8px;background:var(--btn-bg, #fff);color:var(--muted, #666);font-size:.78rem;font-weight:650}.room-bar-online svg{width:14px;height:14px}.room-bar-online-count{line-height:1}.room-bar-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid var(--border, rgba(0, 0, 0, .12));border-radius:8px;background:var(--btn-bg, #fff);color:var(--muted, #555);font-size:.8rem;font-weight:600;font-family:inherit;cursor:pointer;white-space:nowrap;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .1s ease}.room-bar-btn:hover:not(:disabled){background:var(--btn-bg-hover, #f4f4f5);border-color:var(--accent, #646cff);color:var(--accent, #646cff)}.room-bar-btn:active:not(:disabled){transform:scale(.96)}.room-bar-btn:disabled{opacity:.55;cursor:not-allowed}.room-bar-btn-icon{display:grid;place-items:center}.room-bar-btn-icon svg{width:14px;height:14px}.room-bar-btn-leave:hover:not(:disabled){border-color:#e5564b;color:#e5564b;background:#e5564b14}.room-bar-code:focus-visible,.room-bar-btn:focus-visible{outline:2px solid var(--accent, #646cff);outline-offset:2px}@media (max-width: 720px){.room-bar-code-key,.room-bar-online,.room-bar-btn span:not(.room-bar-btn-icon){display:none}.room-bar-btn{padding:6px}}@media (prefers-reduced-motion: reduce){.room-bar-status-connecting{animation:none}}
