:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:light;--bg:#eef2f7;--panel:#fff;--panel-2:#f7f9fc;--ink:#172033;--muted:#68758b;--line:#d9e0ea;--accent:#356ae6;--accent-strong:#224fb2;--accent-soft:#eaf0ff;--green:#16835b;--green-soft:#e8f7f1;--red:#bd3f4a;--red-soft:#ffedef;--amber:#9b6b00;--amber-soft:#fff5d6;--shadow:0 14px 40px rgba(29,44,76,.10);--gap:14px;--tile-min:118px;--radius:20px}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink)}body{min-height:100vh;min-height:100dvh;overflow-x:hidden}button,select,input,textarea{font:inherit}button,select{touch-action:manipulation}button{cursor:pointer}button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:4px solid #ffb300;outline-offset:3px}.app-shell{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg)}.app-shell[data-theme="dark"]{color-scheme:dark;--bg:#10151f;--panel:#192231;--panel-2:#202b3d;--ink:#f5f7fb;--muted:#b3bfd1;--line:#344154;--accent:#7aa2ff;--accent-strong:#a8c0ff;--accent-soft:#243961;--green:#58d6a7;--green-soft:#173d34;--red:#ff8d97;--red-soft:#472329;--amber:#ffd064;--amber-soft:#4b3a13;--shadow:0 16px 42px rgba(0,0,0,.28)}.app-shell[data-theme="contrast"]{color-scheme:dark;--bg:#000;--panel:#000;--panel-2:#0b0b0b;--ink:#fff;--muted:#fff;--line:#fff;--accent:#00e5ff;--accent-strong:#00e5ff;--accent-soft:#001b1f;--green:#75ff8f;--green-soft:#001b06;--red:#ff7b7b;--red-soft:#260000;--amber:#ffe600;--amber-soft:#282400;--shadow:none}.app-shell[data-spacing="compact"]{--gap:8px;--tile-min:102px}.app-shell[data-spacing="comfortable"]{--gap:14px;--tile-min:118px}.app-shell[data-spacing="wide"]{--gap:22px;--tile-min:132px}.app-shell.reduce-motion *,.app-shell.reduce-motion *::before,.app-shell.reduce-motion *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 20px;background:color-mix(in srgb,var(--panel) 92%,transparent);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:12px;min-width:max-content}.brand-mark{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:var(--ink);color:var(--panel);font-weight:900;letter-spacing:-1px}.brand-name{font-weight:900;font-size:19px;line-height:1}.brand-subtitle{font-size:12px;color:var(--muted);margin-top:4px}.topbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.utility-btn,.small-btn,.icon-btn,.secondary-btn,.danger-btn{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:12px;font-weight:750}.utility-btn{min-height:44px;padding:9px 13px;display:flex;align-items:center;gap:7px}.utility-btn.primary{background:var(--ink);color:var(--panel);border-color:var(--ink)}.utility-btn[aria-pressed="true"]{background:var(--amber-soft);color:var(--ink);border-color:var(--amber)}.workspace{width:min(1660px,100%);margin:0 auto;padding:18px 20px 82px}.composer{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.message-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.message-label-row,.board-heading,.dialog-header,.dialog-footer,.practice-footer{display:flex;align-items:center;justify-content:space-between;gap:16px}.eyebrow{font-size:11px;font-weight:900;letter-spacing:.12em;color:var(--accent-strong)}.message-output{min-height:66px;margin-top:8px;padding:8px 2px;font-size:clamp(25px,3vw,42px);font-weight:820;line-height:1.2;letter-spacing:-.03em}.message-output.placeholder{color:var(--muted);font-weight:600}.suggestion-bar{display:flex;gap:8px;flex-wrap:wrap;min-height:0;margin:2px 0 10px}.suggestion-chip{border:1px solid var(--line);background:var(--panel-2);color:var(--ink);border-radius:999px;padding:8px 13px;font-weight:750}.message-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.compact-actions{justify-content:flex-end}.speak-btn{border:0;border-radius:14px;min-height:52px;padding:12px 20px;background:var(--accent);color:white;font-weight:900;font-size:16px;display:inline-flex;gap:9px;align-items:center;justify-content:center}.speak-btn:hover{background:var(--accent-strong)}.secondary-btn,.danger-btn{min-height:44px;padding:10px 14px}.danger-btn{color:var(--red);border-color:color-mix(in srgb,var(--red) 45%,var(--line))}.icon-btn{min-height:38px;padding:7px 10px}.danger-ghost{color:var(--red)}.quick-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.quick-card{min-height:70px;border:1px solid var(--line);border-radius:16px;background:var(--panel);color:var(--ink);font-weight:900;font-size:17px;display:flex;align-items:center;justify-content:center;gap:10px;box-shadow:0 5px 15px rgba(29,44,76,.06)}.quick-card.yes{background:var(--green-soft);border-color:color-mix(in srgb,var(--green) 35%,var(--line))}.quick-card.no{background:var(--red-soft);border-color:color-mix(in srgb,var(--red) 35%,var(--line))}.quick-icon{font-size:24px}.board-layout{display:grid;grid-template-columns:180px minmax(0,1fr);gap:14px;margin-top:14px;align-items:start}.category-rail{position:sticky;top:86px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:10px;box-shadow:var(--shadow)}.context-picker-wrap{padding:6px 6px 10px;border-bottom:1px solid var(--line);margin-bottom:8px}.context-picker-wrap label{display:block;font-size:11px;font-weight:900;letter-spacing:.08em;color:var(--muted);margin-bottom:5px}.context-picker-wrap select{width:100%;padding:9px 10px;border-radius:10px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink);font-weight:750}.category-nav{display:grid;gap:6px}.category-btn{width:100%;min-height:56px;border:0;border-radius:13px;background:transparent;color:var(--ink);display:flex;align-items:center;gap:10px;padding:10px 11px;text-align:left;font-weight:780}.category-btn:hover,.category-btn.active{background:var(--accent-soft);color:var(--accent-strong)}.category-icon{width:28px;text-align:center;font-size:22px}.keyboard-category{margin-top:8px;border-top:1px solid var(--line);border-radius:0;padding-top:14px}.board-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);min-height:520px}.board-heading{margin-bottom:14px}.board-heading h1,.dialog-header h2{margin:3px 0 0;font-size:clamp(22px,2vw,30px);letter-spacing:-.025em}.board-tools{display:flex;gap:8px;flex-wrap:wrap}.small-btn{min-height:38px;padding:7px 11px}.small-btn[aria-pressed="true"]{background:var(--amber-soft);border-color:var(--amber)}.board-grid{display:grid;grid-template-columns:repeat(var(--columns,5),minmax(0,1fr));gap:var(--gap)}.comm-tile{position:relative;min-height:var(--tile-min);border:2px solid transparent;background:var(--panel-2);color:var(--ink);border-radius:18px;padding:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;overflow:hidden;user-select:none}.comm-tile:hover{border-color:var(--accent);transform:translateY(-1px)}.comm-tile:active{transform:scale(.985)}.tile-symbol{font-size:clamp(30px,4vw,46px);line-height:1}.tile-label{font-size:clamp(16px,1.6vw,21px);font-weight:900;line-height:1.05}.tile-phrase{font-size:11px;color:var(--muted);max-width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.favorite-star{position:absolute;right:7px;top:6px;font-size:14px;color:var(--amber)}.comm-tile.scan-active,.quick-card.scan-active,.selectable.scan-active{outline:5px solid #ffb300;outline-offset:-4px;background:var(--amber-soft)}.comm-tile.dwell-active,.quick-card.dwell-active,.selectable.dwell-active{border-color:var(--accent)}.keyboard-panel textarea{width:100%;resize:vertical;border:2px solid var(--line);background:var(--panel-2);color:var(--ink);border-radius:15px;padding:14px;font-size:26px;font-weight:700}.keyboard-label{display:block;font-weight:900;margin-bottom:7px}.keyboard-keys{margin:14px auto;display:grid;grid-template-columns:repeat(10,minmax(48px,1fr));gap:8px}.key-btn{min-height:58px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2);color:var(--ink);font-weight:900;font-size:18px}.key-btn.wide{grid-column:span 5}.keyboard-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.statusbar{position:fixed;z-index:15;bottom:0;left:0;right:0;min-height:48px;padding:8px 20px;background:color-mix(in srgb,var(--ink) 94%,transparent);color:var(--panel);display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:700}.statusbar>div{display:flex;align-items:center;gap:8px}.status-dot{width:9px;height:9px;border-radius:50%;background:#62d89d}.status-dot.paused{background:#ffd15c}.status-meta{opacity:.82}.panel-dialog,.practice-dialog{border:0;padding:0;border-radius:22px;background:var(--panel);color:var(--ink);width:min(980px,calc(100vw - 28px));max-height:92vh;box-shadow:0 30px 90px rgba(0,0,0,.3)}dialog::backdrop{background:rgba(11,17,28,.68);backdrop-filter:blur(4px)}.dialog-shell,.practice-shell{padding:20px}.dialog-header{padding-bottom:14px;border-bottom:1px solid var(--line)}.dialog-close{width:42px;height:42px;border-radius:12px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink);font-weight:900}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px;max-height:66vh;overflow:auto;padding-right:4px}.settings-section{border:1px solid var(--line);border-radius:16px;padding:14px;background:var(--panel-2)}.settings-section h3{margin:0 0 4px}.setting-help{color:var(--muted);line-height:1.45;margin:4px 0 12px;font-size:13px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid var(--line)}.setting-row>span:first-child{display:grid;gap:3px}.setting-row small{color:var(--muted)}.setting-row>span:last-child{display:flex;align-items:center;gap:8px;min-width:190px;justify-content:flex-end}.setting-row input[type="range"]{width:135px}.checkbox-row input{width:24px;height:24px}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:10px}.segmented input{position:absolute;opacity:0}.segmented span{min-height:56px;border:1px solid var(--line);border-radius:12px;background:var(--panel);display:grid;place-items:center;padding:8px;text-align:center;font-weight:800}.segmented input:checked+span{background:var(--accent-soft);border:2px solid var(--accent);color:var(--accent-strong)}.stacked-label{display:grid;gap:6px;font-weight:800}.stacked-label select,.setting-row select{padding:9px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink)}.settings-actions{display:flex;gap:8px;flex-wrap:wrap}.file-label{display:inline-flex;align-items:center;cursor:pointer}.dialog-footer{border-top:1px solid var(--line);margin-top:16px;padding-top:14px;justify-content:flex-end}.narrow-dialog{width:min(760px,calc(100vw - 28px))}.editor-list{display:grid;gap:7px;max-height:52vh;overflow:auto}.editor-row{display:grid;grid-template-columns:55px minmax(100px,1fr) minmax(140px,1.4fr) auto auto auto auto;gap:7px;align-items:center}.editor-row input,.editor-add-row input{width:100%;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2);color:var(--ink)}.editor-row button{min-height:38px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--ink)}.editor-row button.delete{color:var(--red)}.editor-add-row{display:grid;grid-template-columns:70px 1fr 1.5fr auto;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.dwell-ring{position:fixed;z-index:1000;width:48px;height:48px;border-radius:50%;pointer-events:none;display:none;transform:translate(-50%,-50%);background:conic-gradient(var(--accent) var(--progress,0%),rgba(90,105,130,.24) 0);padding:5px;filter:drop-shadow(0 4px 8px rgba(0,0,0,.22))}.dwell-ring span{display:block;width:100%;height:100%;border-radius:50%;background:var(--panel)}.practice-dialog{width:min(1040px,calc(100vw - 28px))}.practice-arena{position:relative;height:min(60vh,560px);min-height:360px;margin-top:14px;border:2px solid var(--line);border-radius:18px;background:radial-gradient(circle at center,var(--panel-2),var(--bg));overflow:hidden}.practice-target{position:absolute;width:90px;height:90px;border-radius:50%;border:8px solid var(--accent);background:var(--panel);color:var(--ink);font-weight:900;display:grid;place-items:center;font-size:22px;transform:translate(-50%,-50%)}.practice-target:not(.active){opacity:.16;pointer-events:none}.practice-target.active{box-shadow:0 0 0 10px color-mix(in srgb,var(--accent) 18%,transparent)}.practice-footer{padding-top:12px;flex-wrap:wrap}.practice-footer span{color:var(--muted);flex:1}.toast{position:fixed;z-index:1200;left:50%;bottom:72px;transform:translateX(-50%) translateY(20px);padding:11px 16px;border-radius:999px;background:var(--ink);color:var(--panel);font-weight:800;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.access-paused .selectable,.access-paused .comm-tile{pointer-events:none}.access-paused .board-panel,.access-paused .quick-strip{filter:saturate(.45);opacity:.78}@media(max-width:1000px){.board-layout{grid-template-columns:1fr}.category-rail{position:static;display:flex;align-items:center;gap:8px;overflow-x:auto}.context-picker-wrap{min-width:150px;border-bottom:0;border-right:1px solid var(--line);padding-right:12px;margin:0}.category-nav{display:flex;gap:6px}.category-btn{width:auto;min-width:max-content}.keyboard-category{margin:0;border:0;border-left:1px solid var(--line);border-radius:0}.settings-grid{grid-template-columns:1fr}.quick-strip{grid-template-columns:repeat(5,minmax(130px,1fr));overflow-x:auto}.board-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.topbar-actions .utility-btn span:last-child{display:none}}@media(max-width:650px){.workspace{padding:10px 10px 74px}.topbar{padding:10px}.brand-subtitle{display:none}.brand-name{font-size:17px}.brand-mark{width:38px;height:38px}.board-panel,.message-card{padding:11px;border-radius:16px}.board-heading{align-items:flex-start}.board-tools{justify-content:flex-end}.board-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.comm-tile{min-height:104px;border-radius:14px}.tile-symbol{font-size:32px}.tile-label{font-size:15px}.quick-strip{grid-template-columns:repeat(5,124px);gap:7px}.quick-card{min-height:64px}.settings-grid{max-height:68vh}.setting-row{align-items:flex-start;flex-direction:column}.setting-row>span:last-child{min-width:0;width:100%;justify-content:space-between}.setting-row input[type="range"]{flex:1;width:auto}.segmented{grid-template-columns:1fr}.editor-row{grid-template-columns:50px 1fr 1.3fr}.editor-row button{grid-row:2}.editor-add-row{grid-template-columns:60px 1fr}.editor-add-row input:nth-child(3){grid-column:1/3}.editor-add-row button{grid-column:1/3}.keyboard-keys{grid-template-columns:repeat(5,1fr)}.status-meta{display:none!important}}