:root{color-scheme:light;--bg: #f5f7f2;--surface: #ffffff;--surface-muted: #edf1e9;--text: #202522;--muted: #66706a;--line: #d9dfd5;--accent: #287c67;--accent-strong: #176854;--accent-soft: #dceee7;--danger: #b5473f;--danger-soft: #f8dedb;--warning: #9a6a18;--shadow: 0 18px 45px rgba(37, 48, 42, .08);--radius: 8px;--list-title: #34433d;--list-muted: #7f8982;--code-text: #34424a;--control-muted: #6f7b74}*,*:before,*:after{box-sizing:border-box}html,body,#app{min-height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.52}a{color:inherit}.app-shell{min-height:100vh}.app-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:68px;padding:.75rem 1.25rem;border-bottom:1px solid var(--line);background:#f5f7f2f0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand-lockup{display:inline-flex;align-items:center;gap:.75rem;text-decoration:none}.brand-lockup__mark{display:grid;width:40px;height:40px;place-items:center;border-radius:8px;background:var(--accent);color:#fff;font-weight:800}.brand-lockup strong,.brand-lockup small{display:block}.brand-lockup small,.section-kicker,.updated-label,.whiteboard-list__meta{color:var(--muted);font-size:.86rem}.section-kicker{text-transform:uppercase;letter-spacing:.12em;font-weight:700}.app-header__right{display:flex;align-items:center;gap:.7rem}.user-chip{padding:.45rem .7rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-size:.9rem}.ghost-link,.text-button{border:0;background:transparent;color:var(--muted);text-decoration:none}.text-button--danger{color:var(--danger)}.app-shell__main{min-height:calc(100vh - 68px)}.app-shell__main--login{display:grid;min-height:100vh;place-items:center;padding:1.25rem}.login-panel{display:grid;grid-template-columns:minmax(0,.9fr) minmax(320px,420px);gap:2rem;width:min(920px,100%);padding:2rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.login-panel__copy{align-self:center}.login-panel h1,.empty-state h1{margin:.45rem 0;font-size:clamp(2rem,5vw,4.5rem);line-height:1.05}.login-panel p{color:var(--muted);line-height:1.8}.login-form,.form-field{display:grid;gap:.85rem}.form-field span,.editor-fields span{color:var(--muted);font-size:.9rem}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text);outline:none}input,select{min-height:42px;padding:0 .75rem}.password-input{position:relative}.password-input input{padding-right:3.25rem}.password-input__toggle{position:absolute;display:grid;place-items:center;top:50%;right:.35rem;width:2.25rem;height:2.25rem;border:0;border-radius:var(--radius);background:transparent;color:var(--muted);padding:0;transform:translateY(-50%);transition:background-color .16s ease,color .16s ease}.password-input__toggle:hover{background:var(--accent-soft);color:var(--accent)}.password-input__toggle:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-soft)}textarea{resize:none}input[readonly],textarea[readonly]{cursor:default}input[readonly]{border-color:#ddd;background:#f6f6f6;color:var(--text)}textarea[readonly]{background:#fafafa;color:var(--code-text)}input[readonly]:focus,textarea[readonly]:focus{border-color:#ddd;box-shadow:none}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.primary-button,.secondary-button,.danger-button,.small-button,.icon-button{min-height:38px;border-radius:var(--radius);border:1px solid transparent;font-weight:700}.primary-button{background:var(--accent);color:#fff}.primary-button:hover:not(:disabled){background:var(--accent-strong)}.secondary-button,.small-button,.icon-button{border-color:var(--line);background:var(--surface);color:var(--text)}.danger-button{background:var(--danger-soft);color:var(--danger)}.form-error,.state-text--error{color:var(--danger)}.whiteboard-workspace{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:1rem;min-height:calc(100vh - 68px);padding:1rem}.workspace-sidebar,.editor-surface,.toolbar-panel,.list-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.workspace-sidebar{display:grid;grid-template-rows:auto minmax(0,1fr);gap:1rem;min-height:0;border:0;background:transparent}.toolbar-panel,.list-panel,.editor-surface{box-shadow:var(--shadow)}.toolbar-panel{display:grid;gap:.9rem;padding:1rem}.filter-row{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.list-panel{min-height:0;overflow:hidden}.list-panel__header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;border-bottom:1px solid var(--line);color:var(--list-muted);font-size:.86rem}.state-text{margin:0;padding:1rem;color:var(--muted)}.whiteboard-list{display:grid;gap:.28rem;max-height:calc(100vh - 296px);margin:0;padding:.55rem;overflow:auto;list-style:none}.whiteboard-list li{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.35rem;align-items:center;border:1px solid transparent;border-radius:var(--radius)}.whiteboard-list li:after{position:absolute;right:0;bottom:-1px;left:0;height:1px;background:#66706a1f;content:"";pointer-events:none}.whiteboard-list li:last-child:after{display:none}.whiteboard-list li.active{border-color:var(--accent);background:var(--accent-soft)}.whiteboard-list__main{display:grid;gap:.2rem;min-width:0;padding:.62rem .68rem;border:0;background:transparent;text-align:left}.whiteboard-list__title{overflow:hidden;color:var(--list-title);font-size:.9rem;font-weight:620;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.whiteboard-list__meta{color:var(--list-muted);font-size:.76rem;line-height:1.35}.whiteboard-list__actions{display:flex;gap:.18rem;align-self:start;padding-top:.42rem;padding-right:.35rem}.icon-button{width:28px;min-height:28px;padding:0;border-color:transparent;color:var(--control-muted);font-size:.82rem;font-weight:600}.icon-button:hover:not(:disabled){border-color:transparent;background:#dceee799;color:var(--accent-strong)}.editor-surface{display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0}.empty-state{align-self:center;justify-self:center;width:min(520px,100%);padding:2rem;text-align:center}.empty-state .primary-button{margin-top:1rem}.editor-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:end;padding:1rem;border-bottom:1px solid var(--line)}.editor-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,240px);gap:.8rem}.editor-fields label{display:grid;gap:.45rem}.editor-actions{display:flex;align-items:end;gap:.55rem}.whiteboard-textarea{min-height:0;padding:1rem;border:0;border-radius:0;background:#fcfdfc;color:var(--code-text);font-family:JetBrains Mono,SFMono-Regular,Consolas,Noto Sans Mono CJK SC,monospace;font-size:.92rem;font-weight:400;line-height:1.74;-moz-tab-size:2;tab-size:2}.toast-stack{position:fixed;right:1rem;bottom:1rem;z-index:50;display:grid;width:min(360px,calc(100vw - 2rem));gap:.6rem}.toast-item{display:flex;justify-content:space-between;gap:1rem;padding:.9rem;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.toast-item--error{border-left-color:var(--danger)}.toast-item--info{border-left-color:var(--warning)}.toast-item p{margin:.3rem 0 0;color:var(--muted)}.toast-item button{align-self:start;border:0;background:transparent;color:var(--muted)}@media(max-width:920px){.whiteboard-workspace,.login-panel,.editor-header,.editor-fields{grid-template-columns:1fr}.whiteboard-list{max-height:320px}.editor-actions{flex-wrap:wrap}}@media(max-width:640px){.app-header,.app-header__right{align-items:flex-start;flex-direction:column}.app-header__right{width:100%}.whiteboard-workspace{padding:.75rem}.filter-row{grid-template-columns:1fr}}
