:root{--brand-red:#b81037;--ink:#1a1a1a;--text:#4a4a4a;--muted-token:#888;--muted:#6f6f6f;--surface:#fff;--surface-soft:#f5f5f5;--surface-canvas:#f7f5ef;--divider:#e0e0e0;--status-success:#16a34a;--status-warning:#d97706;--status-critical:#dc2626;--status-info:#2563eb;--focus:var(--status-info);--recover:var(--status-success);--recover-text:#11672f;--recover-soft:#eaf7f2;--danger-soft:#fff0f3;color:var(--ink);background:var(--surface-canvas);font-synthesis:none;text-rendering:optimizelegibility;font-family:Helvetica Neue,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;overflow:hidden}.whiteboard-canvas-boundary{width:100%;height:100%}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}:where(.topbar,.library,.recorder) button:focus-visible,.library input:focus-visible,.board-card:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.app-shell{background:var(--surface-canvas);grid-template-rows:72px 1fr;height:100vh;display:grid}.session-gate{min-height:100vh;color:var(--text);background:var(--surface-canvas);text-align:center;place-content:center;justify-items:center;gap:16px;padding:32px;display:grid}.session-gate h1,.session-gate p{margin:0}.session-gate p{max-width:42rem;line-height:1.5}.primary-link{color:#fff;background:var(--brand-red);border-radius:7px;align-items:center;min-height:44px;padding:0 18px;font-weight:700;text-decoration:none;display:inline-flex}.primary-link:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.topbar{z-index:20;color:#fff;background:var(--ink);border-bottom:4px solid var(--brand-red);grid-template-columns:minmax(220px,320px) minmax(0,1fr) minmax(220px,320px);align-items:center;padding:0 20px;display:grid;box-shadow:0 4px 18px #0002}.brand-lockup{align-items:center;gap:12px;min-width:0;display:flex}.brand-mark{background:#fff;border:1px solid #ffffff38;border-radius:8px;flex:0 0 44px;place-items:center;width:44px;height:44px;padding:5px;display:grid}.brand-mark img{object-fit:contain;width:100%;height:100%;display:block}.brand-name{align-items:center;gap:12px;min-width:0;display:flex}.brand-name img{width:112px;height:auto;display:block}.brand-name span{color:#d8d8d8;letter-spacing:.12em;text-transform:uppercase;border-left:1px solid #ffffff45;padding-left:12px;font-size:12px;font-weight:600}.board-title{color:#fff;background:0 0;border:1px solid #0000;border-radius:7px;justify-content:center;justify-self:center;align-items:center;gap:8px;max-width:min(420px,100%);min-height:44px;padding:8px 14px;font-weight:600;display:flex;overflow:hidden}.board-title span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.board-title:hover{background:#ffffff0e;border-color:#ffffff3d}.user-cluster{justify-self:end;align-items:center;gap:16px;min-width:0;display:flex;position:relative}.save-state{color:#d1d1d1;white-space:nowrap;font-size:12px}.save-state.conflict,.save-state.error{color:#fecaca}.save-dot{background:var(--status-success);border-radius:50%;width:7px;height:7px;margin-right:7px;display:inline-block}.account-button{color:#fff;background:0 0;border:1px solid #ffffff35;border-radius:24px;align-items:center;gap:8px;min-height:44px;padding:3px 10px 3px 3px;display:flex}.avatar{width:36px;height:36px;color:var(--ink);background:#f3d8de;border-radius:50%;place-items:center;font-size:12px;font-weight:700;display:grid}.account-label{font-size:12px;font-weight:600}.account-menu{z-index:30;border:1px solid var(--divider);width:260px;color:var(--ink);background:var(--surface);border-radius:10px;gap:8px;padding:16px;display:grid;position:absolute;top:52px;right:0;box-shadow:0 16px 40px #0003}.account-menu strong{font-size:14px}.account-menu>span,.account-menu small{color:var(--muted);font-size:11px;line-height:1.4}.account-menu p{color:var(--text);background:var(--surface-soft);border-radius:6px;margin:4px 0;padding:8px;font-size:12px}.account-menu button{border:1px solid var(--divider);min-height:44px;color:var(--text);background:var(--surface);text-align:left;border-radius:7px;padding:0 12px}.workspace{grid-template-columns:1fr;min-height:0;display:grid;position:relative}.workspace.with-sidebar{grid-template-columns:306px minmax(0,1fr)}.library{z-index:10;background:var(--surface);border-right:1px solid var(--divider);grid-template-rows:auto auto 1fr auto;gap:18px;min-height:0;padding:24px 18px 14px;display:grid;box-shadow:8px 0 30px #0000000d}.library-heading{justify-content:space-between;align-items:flex-end;padding:0 4px;display:flex}.eyebrow{color:var(--muted);letter-spacing:.16em;text-transform:uppercase;margin:0 0 5px;font-size:10px;font-weight:700}.library h1{color:var(--ink);letter-spacing:-.02em;margin:0;font-size:28px;font-weight:700}.icon-button{border:1px solid var(--ink);border-radius:8px;place-items:center;width:44px;height:44px;display:grid}.icon-button.accent{border-color:var(--brand-red);color:#fff;background:var(--brand-red);box-shadow:0 4px 10px #0002}.search-box{border:1px solid var(--divider);min-height:44px;color:var(--muted);background:var(--surface);border-radius:8px;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;padding:0 11px;display:grid}.search-box:focus-within{border-color:var(--focus);box-shadow:0 0 0 2px #2563eb26}.search-box input{min-width:0;color:var(--ink);background:0 0;border:0;outline:0;font-size:13px}.search-box button,.board-actions button,.library-footer button{min-width:44px;min-height:44px;color:var(--muted);background:0 0;border:0;place-items:center;padding:4px;display:grid}.board-list{flex-direction:column;gap:8px;min-height:0;display:flex;overflow-y:auto}.board-card{cursor:pointer;border:1px solid #0000;border-radius:9px;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:11px;min-height:68px;padding:8px;transition:background-color .12s,border-color .12s;display:grid}.board-card:hover{background:var(--surface-soft)}.board-card.active{border-color:var(--brand-red);background:#fbf0f3}.board-thumb{background:#faf8f2;border:1px solid #d7d2c7;border-radius:6px;width:58px;height:48px;position:relative;overflow:hidden;box-shadow:0 2px 5px #0000000d}.board-thumb span{background:var(--text);border-radius:2px;height:2px;display:block;position:absolute;transform:rotate(-9deg)}.board-thumb span:first-child{width:28px;top:15px;left:9px}.board-thumb span:nth-child(2){background:var(--brand-red);width:19px;top:25px;left:25px;transform:rotate(15deg)}.board-thumb span:nth-child(3){border:2px solid var(--muted-token);background:0 0;width:12px;height:12px;top:7px;right:7px;transform:none}.board-meta{gap:5px;min-width:0;display:grid}.board-meta strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.board-meta span{color:var(--muted);font-size:11px}.board-actions{gap:2px;display:none}.board-card:hover .board-actions,.board-card:focus-within .board-actions{display:flex}.board-actions button:hover{color:var(--ink)}.board-actions .destructive-icon:hover{color:var(--status-critical);background:var(--danger-soft)}.empty-state{color:var(--muted);padding:20px 8px;font-size:13px;line-height:1.5}.library-footer{color:var(--muted);border-top:1px solid #e3e3e3;justify-content:space-between;align-items:center;padding:10px 0 0 7px;font-size:11px;display:flex}.canvas-region{background:var(--surface-canvas);min-width:0;min-height:0;position:relative}.canvas-wrap{position:absolute;inset:0}.canvas-loading{height:100%;color:var(--muted);letter-spacing:.04em;background:#f7f5ef;place-items:center;font-size:13px;display:grid}.save-conflict{z-index:9;border:1px solid var(--status-warning);background:#fffbeb;border-radius:10px;width:min(420px,100% - 36px);padding:16px;position:absolute;top:18px;right:18px;box-shadow:0 12px 30px #0002}.save-conflict p{color:var(--text);margin:0 0 12px;line-height:1.45}.save-conflict div{flex-wrap:wrap;gap:8px;display:flex}.save-conflict button{border:1px solid var(--divider);min-height:44px;color:var(--ink);background:var(--surface);border-radius:7px;padding:0 14px;font-weight:700}.excalidraw .App-menu_top .buttonList{box-shadow:0 6px 20px #22293018}.recorder{z-index:8;border:1px solid var(--divider);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#fffffff2;border-left:4px solid #7d8790;border-radius:10px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:20px;min-height:82px;padding:14px 16px;display:grid;position:absolute;bottom:22px;left:24px;right:24px;box-shadow:0 12px 36px #27313d24}.recorder.recording,.recorder.paused,.recorder.stopping{border-left-color:var(--status-critical)}.recorder.error{border-color:#e5a3a3;border-left-color:var(--status-critical);background:snow}.recorder-status{align-items:center;gap:12px;min-width:0;display:flex}.mic-orb{color:#3b444d;background:#eceeef;border-radius:8px;flex:none;place-items:center;width:44px;height:44px;display:grid}.recording .mic-orb{color:#fff;background:var(--status-critical);box-shadow:0 0 0 5px #dc262617}.paused .mic-orb,.stopping .mic-orb{color:var(--status-critical);background:#fee2e2}.error .mic-orb{color:#fff;background:var(--status-critical)}.recorder-status div{gap:4px;min-width:0;display:grid}.recorder-status strong{font-size:14px}.recorder-status span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.recorder time{min-width:58px;color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:.05em;font-weight:700}.recorder-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.dialog-backdrop{z-index:100;background:#17202b66;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.discard-dialog{border:1px solid var(--divider);width:min(420px,100%);color:var(--text);background:var(--surface);border-radius:12px;padding:22px;box-shadow:0 20px 60px #11182742}.discard-dialog h2{margin:0 0 8px;font-size:19px}.discard-dialog p{color:var(--muted);margin:0;font-size:13px;line-height:1.5}.dialog-metadata{background:#f4f5f6;border-radius:7px;gap:6px;margin:14px 0 0;padding:10px;font-size:12px;display:grid}.dialog-metadata div{grid-template-columns:92px minmax(0,1fr);gap:8px;display:grid}.dialog-metadata dt{color:var(--muted)}.dialog-metadata dd{overflow-wrap:anywhere;min-width:0;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.discard-dialog .dialog-error{color:var(--status-critical);margin-top:12px}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.dialog-actions button{min-height:44px;color:var(--ink);background:var(--surface);border:1px solid #c9cdd0;border-radius:7px;padding:0 14px;font-size:12px;font-weight:700}.dialog-actions .destructive-button{border-color:var(--status-critical);color:#fff;background:var(--status-critical)}.discard-dialog button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.recorder-actions button{min-height:44px;color:var(--ink);background:var(--surface);border:1px solid #c9cdd0;border-radius:7px;justify-content:center;align-items:center;gap:7px;padding:0 14px;font-size:12px;font-weight:700;display:flex}.recorder-actions .record-button,.recorder-actions .stop-button{border-color:var(--status-critical);color:#fff;background:var(--status-critical)}.record-button span{background:#fff;border-radius:50%;width:9px;height:9px}.recorder-actions .recovery-button{border-color:var(--recover);color:var(--recover-text);background:var(--recover-soft)}.recorder-actions .destructive-button{color:#991b1b;background:var(--danger-soft);border-color:#e5a3a3}.upload-status{color:var(--recover-text);grid-column:1/-1;margin:0;font-size:12px;line-height:1.45}.upload-status.error{color:var(--status-critical)}.uploaded-recording{border-top:1px solid var(--divider);grid-column:1/-1;gap:10px;padding-top:10px;display:grid}.uploaded-recording audio{width:100%;min-height:44px}.uploaded-recording-actions{flex-wrap:wrap;gap:8px;display:flex}.uploaded-recording-actions a{border:1px solid var(--recover);min-height:44px;color:var(--recover-text);background:var(--recover-soft);border-radius:7px;align-items:center;gap:6px;padding:0 14px;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.uploaded-recording-actions a:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.uploaded-recording-actions button{color:#991b1b;background:var(--danger-soft);border:1px solid #e5a3a3;border-radius:7px;min-height:44px;padding:0 14px;font-size:12px;font-weight:700}@media (width<=860px){.topbar{grid-template-columns:minmax(170px,1fr) minmax(0,1fr) auto;padding:0 12px}.brand-name img{width:94px}.brand-name span,.save-state,.account-label{display:none}.account-button{width:44px;padding:3px}.workspace.with-sidebar{grid-template-columns:1fr}.library{width:min(306px,100vw - 32px);position:absolute;inset:0 auto 0 0}.recorder{grid-template-columns:minmax(0,1fr) auto;gap:12px;bottom:12px;left:12px;right:12px}.recorder-actions{grid-column:1/-1}}@media (width<=560px){.app-shell{grid-template-rows:64px 1fr}.topbar{border-bottom-width:3px;grid-template-columns:auto minmax(0,1fr) auto}.brand-name{display:none}.board-title{padding-inline:8px;font-size:13px}.recorder{grid-template-columns:1fr auto;align-items:start;padding:12px}.recorder-status span{white-space:normal}.recorder-actions{flex-wrap:wrap;justify-content:stretch}.recorder-actions button{flex:132px}.discard-dialog{padding:18px}.dialog-actions{flex-direction:column}.dialog-actions button{width:100%}}@media (height<=700px){.recorder{min-height:70px}.library{padding-top:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
