:root{color-scheme:light;--font: "Segoe UI Variable Text", "Segoe UI", Roboto, system-ui, -apple-system, sans-serif;--mono: "Cascadia Mono", "JetBrains Mono", Consolas, ui-monospace, monospace;--bg: #f6f8f7;--surface: #ffffff;--surface-2: #edf2ef;--surface-3: #e1e9e4;--hover: rgba(27, 31, 29, .06);--pressed: rgba(27, 31, 29, .1);--text: #1b1f1d;--muted: #5d6762;--outline: #dfe5e1;--outline-strong: #c4ccc7;--primary: #188038;--on-primary: #ffffff;--primary-container: #ceead6;--on-primary-container: #0d652d;--danger: #d93025;--danger-container: #fce8e6;--warn: #e37400;--scrim: rgba(0, 0, 0, .42);--shadow-1: 0 1px 2px rgba(0, 0, 0, .12), 0 1px 3px 1px rgba(0, 0, 0, .06);--shadow-2: 0 2px 6px 2px rgba(0, 0, 0, .1), 0 1px 2px rgba(0, 0, 0, .16);--shadow-3: 0 8px 28px rgba(0, 0, 0, .18);--r-sm: 8px;--r-md: 12px;--r-lg: 20px;--r-xl: 28px;--ease: cubic-bezier(.2, 0, 0, 1)}:root[data-theme=dark]{color-scheme:dark;--bg: #131314;--surface: #1e1f20;--surface-2: #282a2c;--surface-3: #333537;--hover: rgba(227, 227, 227, .07);--pressed: rgba(227, 227, 227, .12);--text: #e3e3e3;--muted: #a8b0aa;--outline: #3c4043;--outline-strong: #5f6368;--primary: #81c995;--on-primary: #0a3818;--primary-container: #0f5223;--on-primary-container: #c4eed0;--danger: #f28b82;--danger-container: #5c1d19;--warn: #fdd663;--scrim: rgba(0, 0, 0, .6);--shadow-1: 0 1px 2px rgba(0, 0, 0, .5);--shadow-2: 0 2px 8px rgba(0, 0, 0, .5);--shadow-3: 0 10px 32px rgba(0, 0, 0, .6)}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;font:14px/1.5 var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}#app{min-height:100%}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--primary)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}svg.i{width:24px;height:24px;fill:currentColor;flex:none}svg.i.sm{width:18px;height:18px}svg.i.lg{width:32px;height:32px}.muted{color:var(--muted)}.mono{font-family:var(--mono)}.grow{flex:1;min-width:0}.row{display:flex;align-items:center;gap:8px}.col{display:flex;flex-direction:column;gap:12px}.wrap{flex-wrap:wrap}.spacer{flex:1}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 20px;border-radius:20px;border:1px solid var(--outline-strong);background:transparent;color:var(--primary);font-weight:600;cursor:pointer;transition:background .15s var(--ease),box-shadow .15s var(--ease);white-space:nowrap}.btn:hover{background:var(--hover)}.btn:active{background:var(--pressed)}.btn:disabled{opacity:.5;cursor:default}.btn.filled{background:var(--primary);color:var(--on-primary);border-color:transparent}.btn.filled:hover{box-shadow:var(--shadow-1);filter:brightness(1.06)}.btn.tonal{background:var(--primary-container);color:var(--on-primary-container);border-color:transparent}.btn.text{border-color:transparent;padding:0 12px}.btn.danger.filled{background:var(--danger);color:#fff}.btn.block{width:100%;height:48px;border-radius:24px;font-size:15px}.btn.sm{height:32px;padding:0 14px;font-size:13px}.icon-btn{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;border:0;background:transparent;color:var(--muted);cursor:pointer;flex:none}.icon-btn:hover{background:var(--hover);color:var(--text)}.icon-btn.active{color:var(--primary)}.icon-btn.sm{width:32px;height:32px}.icon-btn.sm svg.i{width:18px;height:18px}.fab{position:fixed;right:24px;bottom:24px;z-index:20;display:inline-flex;align-items:center;gap:12px;height:56px;padding:0 20px 0 16px;border:0;border-radius:16px;background:var(--primary-container);color:var(--on-primary-container);box-shadow:var(--shadow-2);font-weight:600;font-size:15px;cursor:pointer}.fab:hover{box-shadow:var(--shadow-3)}@media(min-width:901px){.fab{display:none}}.field{display:flex;flex-direction:column;gap:6px}.field>span{font-size:12px;font-weight:600;color:var(--muted)}.input,.field input,.field select,.field textarea{width:100%;min-height:48px;padding:12px 14px;border-radius:var(--r-md);border:1px solid var(--outline-strong);background:var(--surface);outline:none;transition:border-color .15s,box-shadow .15s}.field textarea{resize:vertical;min-height:96px}.input:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.input-wrap{position:relative;display:flex;align-items:center}.input-wrap input{padding-right:96px}.input-wrap .adorn{position:absolute;right:4px;display:flex;gap:0}.code-input{text-align:center;font-size:28px!important;letter-spacing:12px;font-weight:600;font-family:var(--mono)}.check{display:flex;align-items:center;gap:10px;cursor:pointer;user-select:none}.check input{width:18px;height:18px;accent-color:var(--primary)}.switch{position:relative;width:52px;height:32px;flex:none}.switch input{opacity:0;width:100%;height:100%;margin:0;cursor:pointer;position:absolute;z-index:1}.switch span{position:absolute;inset:0;border-radius:16px;background:var(--surface-3);border:2px solid var(--outline-strong);transition:.2s var(--ease)}.switch span:after{content:"";position:absolute;top:6px;left:6px;width:16px;height:16px;border-radius:50%;background:var(--outline-strong);transition:.2s var(--ease)}.switch input:checked+span{background:var(--primary);border-color:var(--primary)}.switch input:checked+span:after{left:22px;top:2px;width:24px;height:24px;background:var(--on-primary)}.switch input:disabled+span{opacity:.5}.chips{display:flex;gap:8px;overflow-x:auto;padding:2px 0 6px;scrollbar-width:none}.chip{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 14px;border-radius:8px;border:1px solid var(--outline-strong);background:transparent;color:var(--text);cursor:pointer;white-space:nowrap;font-size:13px;font-weight:500}.chip:hover{background:var(--hover)}.chip.on{background:var(--primary-container);color:var(--on-primary-container);border-color:transparent}.chip svg.i{width:18px;height:18px}.badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:11px;background:var(--surface-2);color:var(--muted);font-size:12px;font-weight:600}.badge.warn{background:var(--danger-container);color:var(--danger)}.auth{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:radial-gradient(1200px 600px at 10% -10%,var(--primary-container),transparent 60%),var(--bg)}.auth-card{width:min(440px,100%);background:var(--surface);border-radius:var(--r-xl);padding:40px 36px 28px;box-shadow:var(--shadow-1);border:1px solid var(--outline)}.auth-card .logo{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;background:var(--primary-container);color:var(--primary);margin:0 auto 18px}.auth-card .logo svg.i{width:36px;height:36px}.auth-card h1{font-size:26px;font-weight:500;text-align:center;margin:0 0 6px}.auth-card .sub{text-align:center;color:var(--muted);margin:0 0 24px}.auth-card form{display:flex;flex-direction:column;gap:14px}.auth-links{display:flex;flex-direction:column;align-items:center;gap:2px;margin-top:14px}.divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px;margin:6px 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--outline)}.rules{display:flex;flex-wrap:wrap;gap:6px;margin:-4px 0 0;padding:0;list-style:none}.rules li{font-size:12px;padding:2px 10px;border-radius:12px;background:var(--surface-2);color:var(--muted)}.rules li.met{background:var(--primary-container);color:var(--on-primary-container)}.error-box{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--r-md);background:var(--danger-container);color:var(--danger);font-size:13px}.shell{display:grid;grid-template-columns:264px 1fr;min-height:100vh}.drawer{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:12px 12px 16px;gap:4px}.brand{display:flex;align-items:center;gap:10px;padding:8px 12px 16px;font-size:20px;font-weight:500}.brand .mark{width:36px;height:36px;border-radius:12px;background:var(--primary);color:var(--on-primary);display:grid;place-items:center}.brand .mark svg.i{width:22px;height:22px}.new-btn{display:inline-flex;align-items:center;gap:12px;height:56px;padding:0 24px 0 18px;margin:0 0 12px 4px;align-self:flex-start;border:0;border-radius:16px;background:var(--surface);box-shadow:var(--shadow-1);color:var(--text);font-weight:600;font-size:15px;cursor:pointer}.new-btn:hover{box-shadow:var(--shadow-2);background:var(--surface)}:root[data-theme=dark] .new-btn{background:var(--surface-2)}.nav-item{display:flex;align-items:center;gap:16px;height:48px;padding:0 16px 0 18px;border-radius:24px;border:0;background:transparent;color:var(--text);font-weight:500;cursor:pointer;text-align:left;width:100%}.nav-item:hover{background:var(--hover)}.nav-item.on{background:var(--primary-container);color:var(--on-primary-container);font-weight:700}.nav-item .count{margin-left:auto;font-size:12px;color:var(--muted);font-weight:600}.nav-item.on .count{color:inherit}.drawer .bottom{margin-top:auto;display:flex;flex-direction:column;gap:4px}.main{min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:8px;padding:10px 20px 10px 8px;background:var(--bg)}.search{flex:1;max-width:720px;display:flex;align-items:center;gap:4px;height:48px;padding:0 6px 0 4px;border-radius:24px;background:var(--surface-2);transition:background .15s,box-shadow .15s}.search:focus-within{background:var(--surface);box-shadow:var(--shadow-1)}.search input{flex:1;min-width:0;border:0;background:transparent;outline:none;font-size:16px;height:100%}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--primary);color:var(--on-primary);font-weight:600;border:0;cursor:pointer;flex:none}.sync-dot{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);padding:0 8px;white-space:nowrap}.sync-dot.err{color:var(--danger);cursor:pointer}.content{padding:8px 28px 120px;width:100%;max-width:1280px}.page-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:6px 0 14px}.page-head h1{font-size:22px;font-weight:500;margin:0}.bottom-nav{display:none}.menu{position:fixed;z-index:60;min-width:220px;padding:8px 0;border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--shadow-3);border:1px solid var(--outline)}:root[data-theme=dark] .menu{background:var(--surface-2)}.menu button{display:flex;align-items:center;gap:14px;width:100%;height:44px;padding:0 18px;border:0;background:transparent;cursor:pointer;text-align:left}.menu button:hover{background:var(--hover)}.menu .menu-head{padding:8px 18px 10px;border-bottom:1px solid var(--outline);margin-bottom:6px}.menu .danger{color:var(--danger)}@media(max-width:900px){.shell{grid-template-columns:1fr}.drawer{display:none}.topbar{padding:8px 12px}.content{padding:4px 14px 140px}.bottom-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;z-index:30;height:76px;padding:10px 0 12px;background:var(--surface-2);border-top:1px solid var(--outline)}.bottom-nav button{display:flex;flex-direction:column;align-items:center;gap:4px;border:0;background:transparent;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer}.bottom-nav button .pill{width:60px;height:32px;border-radius:16px;display:grid;place-items:center}.bottom-nav button.on{color:var(--text)}.bottom-nav button.on .pill{background:var(--primary-container);color:var(--on-primary-container)}.fab{bottom:92px;right:16px}.topbar>.spacer{display:none}.search{max-width:none}.page-head .btn.filled{display:none}.health{gap:8px}.health .card{padding:12px}.health strong{font-size:22px}}.card{background:var(--surface);border-radius:var(--r-lg);border:1px solid var(--outline)}.list{background:var(--surface);border-radius:var(--r-lg);border:1px solid var(--outline);overflow:hidden}.list-head{padding:14px 20px 6px;font-size:13px;font-weight:700;color:var(--primary)}.list-row{display:flex;align-items:center;gap:16px;min-height:64px;padding:8px 12px 8px 20px;cursor:pointer;border-top:1px solid var(--outline);background:transparent;width:100%;border-left:0;border-right:0;border-bottom:0;text-align:left}.list-row:first-child{border-top:0}.list-row:hover{background:var(--hover)}.list-row.on{background:var(--primary-container)}.list-row .title{font-size:15px;font-weight:500}.list-row .sub{font-size:13px;color:var(--muted)}.list-row .actions{display:flex;gap:2px;opacity:0;transition:opacity .15s}.list-row:hover .actions,.list-row:focus-within .actions{opacity:1}.av{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;flex:none;font-weight:600;font-size:17px;color:#fff;overflow:hidden}.av.lg{width:72px;height:72px;font-size:30px}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:64px 24px;gap:10px}.empty .art{width:120px;height:120px;border-radius:50%;display:grid;place-items:center;background:var(--primary-container);color:var(--primary);margin-bottom:8px}.empty .art svg.i{width:56px;height:56px}.empty h2{margin:0;font-size:20px;font-weight:500}.empty p{margin:0;max-width:420px;color:var(--muted)}.split{display:grid;grid-template-columns:minmax(320px,1fr) minmax(360px,440px);gap:20px;align-items:start}.split.single{grid-template-columns:1fr}.detail{position:sticky;top:76px;padding:24px}.detail .hero{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;margin-bottom:18px}.detail .hero h2{margin:0;font-size:22px;font-weight:500}.kv{display:flex;align-items:center;gap:8px;padding:10px 4px 10px 14px;border-radius:var(--r-md);background:var(--surface-2);margin-bottom:10px}.kv .label{font-size:12px;color:var(--muted)}.kv .value{font-size:15px;word-break:break-all}.health{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.health .card{padding:16px;cursor:pointer}.health .card:hover{background:var(--hover)}.health strong{font-size:26px;font-weight:500;display:block}.health .bad strong{color:var(--danger)}.strength{display:flex;gap:4px;align-items:center;margin-top:6px;font-size:12px;color:var(--muted)}.strength i{flex:1;height:4px;border-radius:2px;background:var(--surface-3)}.strength.s1 i:nth-child(-n+1){background:var(--danger)}.strength.s2 i:nth-child(-n+2){background:var(--warn)}.strength.s3 i:nth-child(-n+3){background:#f9ab00}.strength.s4 i:nth-child(-n+4){background:#1e8e3e}.suggest{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:70;max-height:320px;overflow-y:auto;background:var(--surface);border:1px solid var(--outline);border-radius:var(--r-md);box-shadow:var(--shadow-3);padding:6px 0}:root[data-theme=dark] .suggest{background:var(--surface-2)}.suggest button{display:flex;align-items:center;gap:12px;width:100%;padding:8px 14px;border:0;background:transparent;text-align:left;cursor:pointer}.suggest button:hover,.suggest button.hl{background:var(--hover)}.suggest .av{width:32px;height:32px;font-size:14px}.generator{padding:14px;border-radius:var(--r-md);background:var(--surface-2);display:flex;flex-direction:column;gap:10px}.generator .pw{font-family:var(--mono);font-size:16px;word-break:break-all}.generator input[type=range]{flex:1;accent-color:var(--primary)}.otp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.otp{display:flex;align-items:center;gap:14px;padding:16px 12px 16px 18px;cursor:pointer;position:relative;background:var(--surface);border:1px solid var(--outline);border-radius:var(--r-lg);text-align:left;width:100%}.otp:hover{background:var(--hover)}.otp .issuer{font-size:13px;color:var(--muted)}.otp .code{font-family:var(--mono);font-size:32px;letter-spacing:2px;color:var(--primary);line-height:1.2;font-variant-numeric:tabular-nums}.otp.urgent .code{color:var(--danger);animation:blink 1s steps(2) infinite}.otp .copied{position:absolute;right:64px;top:12px;font-size:12px;font-weight:600;color:var(--primary);opacity:0;transition:opacity .2s}.otp.flash .copied{opacity:1}@keyframes blink{50%{opacity:.55}}.ring{width:28px;height:28px;flex:none;transform:rotate(-90deg)}.ring circle{fill:none;stroke-width:14}.ring .track{stroke:var(--surface-3)}.ring .bar{stroke:var(--primary);stroke-dasharray:44;transition:stroke-dashoffset .5s linear}.otp.urgent .ring .bar{stroke:var(--danger)}.composer{max-width:600px;margin:4px auto 28px;border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-2)}.composer .closed{display:flex;align-items:center;padding:4px 6px 4px 16px;cursor:text;color:var(--muted);font-weight:500;height:48px}.composer .closed span{flex:1}.note-input{width:100%;border:0;outline:none;background:transparent;padding:10px 16px;resize:none}.note-input.title{font-size:17px;font-weight:500;padding-top:14px}.note-input.body{min-height:46px;font-size:15px;line-height:1.5}.note-tools{display:flex;align-items:center;gap:2px;padding:4px 8px 6px}.note-tools .when{font-size:12px;color:var(--muted);padding:0 8px}.masonry{columns:240px;column-gap:16px}.section-label{font-size:11px;font-weight:700;letter-spacing:1px;color:var(--muted);margin:10px 4px 8px}.note{break-inside:avoid;margin:0 0 16px;border:1px solid var(--outline);border-radius:var(--r-md);background:var(--surface);cursor:default;position:relative;transition:box-shadow .15s;display:inline-block;width:100%}.note:hover{box-shadow:var(--shadow-2)}.note .inner{padding:12px 16px 8px;cursor:pointer}.note h3{margin:0 0 6px;font-size:16px;font-weight:500;word-wrap:break-word}.note p{margin:0;white-space:pre-wrap;word-wrap:break-word;max-height:320px;overflow:hidden;font-size:14px}.note ul{list-style:none;margin:0;padding:0}.note li{display:flex;gap:8px;align-items:flex-start;font-size:14px;padding:1px 0}.note li.done{text-decoration:line-through;color:var(--muted)}.note .labels{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.note .labels span{font-size:11px;padding:2px 8px;border-radius:10px;background:#00000014}:root[data-theme=dark] .note .labels span{background:#ffffff1f}.note .tools{display:flex;gap:0;padding:0 4px 4px;opacity:0;transition:opacity .15s}.note:hover .tools,.note:focus-within .tools{opacity:1}.note .pin{position:absolute;right:4px;top:4px;opacity:0}.note:hover .pin,.note .pin.active{opacity:1}.masonry.list-mode{columns:auto;max-width:600px;margin:0 auto}.palette{display:flex;flex-wrap:wrap;gap:6px;padding:8px;max-width:260px}.swatch{width:32px;height:32px;border-radius:50%;border:2px solid transparent;cursor:pointer;background:var(--surface);outline:1px solid var(--outline-strong)}.swatch.on{border-color:var(--primary);outline-color:var(--primary)}.checklist-row{display:flex;align-items:center;gap:6px;padding:0 8px}.checklist-row input[type=text]{flex:1;border:0;outline:none;background:transparent;padding:6px 4px;font-size:15px}.checklist-row.done input[type=text]{text-decoration:line-through;color:var(--muted)}.checklist-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary)}.nc-coral{--nc: #faafa8}.nc-peach{--nc: #f39f76}.nc-sand{--nc: #fff8b8}.nc-mint{--nc: #e2f6d3}.nc-sage{--nc: #b4ddd3}.nc-fog{--nc: #d4e4ed}.nc-storm{--nc: #aeccdc}.nc-dusk{--nc: #d3bfdb}.nc-blossom{--nc: #f6e2dd}.nc-clay{--nc: #e9e3d4}.nc-chalk{--nc: #efeff1}:root[data-theme=dark] .nc-coral{--nc: #77172e}:root[data-theme=dark] .nc-peach{--nc: #692b17}:root[data-theme=dark] .nc-sand{--nc: #7c4a03}:root[data-theme=dark] .nc-mint{--nc: #264d3b}:root[data-theme=dark] .nc-sage{--nc: #0c625d}:root[data-theme=dark] .nc-fog{--nc: #256377}:root[data-theme=dark] .nc-storm{--nc: #284255}:root[data-theme=dark] .nc-dusk{--nc: #472e5b}:root[data-theme=dark] .nc-blossom{--nc: #6c394f}:root[data-theme=dark] .nc-clay{--nc: #4b443a}:root[data-theme=dark] .nc-chalk{--nc: #232427}[class*=nc-].note,[class*=nc-].composer,.dialog[class*=nc-]{background:var(--nc);border-color:transparent}.swatch[class*=nc-]{background:var(--nc)}.doc-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.doc-toolbar .chips{flex:1;min-width:200px}.doc-toolbar select.input{width:auto;min-height:40px;padding:6px 10px}.doc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.doc{border:1px solid var(--outline);border-radius:var(--r-md);background:var(--surface);overflow:hidden;cursor:pointer;display:flex;flex-direction:column;transition:box-shadow .15s;text-align:left;padding:0;width:100%}.doc:hover{box-shadow:var(--shadow-2)}.doc .thumb{aspect-ratio:3 / 4;background:var(--surface-2);display:grid;place-items:center;color:var(--primary);overflow:hidden;position:relative}.doc .thumb img{width:100%;height:100%;object-fit:cover;object-position:top}.doc .thumb svg.i{width:48px;height:48px}.doc .pages{position:absolute;right:8px;bottom:8px;background:#0009;color:#fff;font-size:11px;padding:1px 7px;border-radius:6px}.doc .meta{display:flex;align-items:center;gap:4px;padding:8px 4px 8px 12px}.doc .meta .name{font-weight:500;font-size:14px}.doc .meta small{color:var(--muted);font-size:12px}.doc-thumb-sm{width:40px;height:52px;border-radius:6px;background:var(--surface-2);display:grid;place-items:center;overflow:hidden;flex:none;color:var(--primary)}.doc-thumb-sm img{width:100%;height:100%;object-fit:cover}.viewer-body{display:grid;place-items:center;background:var(--surface-2);border-radius:var(--r-md);min-height:300px;overflow:auto}.viewer-body img{max-width:100%;max-height:70vh}.viewer-body iframe{width:100%;height:72vh;border:0;background:#fff}.viewer-body pre{width:100%;margin:0;padding:16px;white-space:pre-wrap;font-family:var(--mono);font-size:13px;max-height:70vh;overflow:auto}.scan{position:fixed;inset:0;z-index:80;background:#0b0b0b;color:#fff;display:flex;flex-direction:column}.scan header{display:flex;align-items:center;gap:8px;padding:10px 12px}.scan header .icon-btn{color:#fff}.scan .stage{flex:1;min-height:0;display:grid;place-items:center;position:relative;overflow:hidden}.scan video{max-width:100%;max-height:100%}.scan .frame{position:absolute;inset:10%;border:2px dashed rgba(255,255,255,.55);border-radius:16px;pointer-events:none}.scan footer{display:flex;align-items:center;gap:12px;padding:12px 16px 18px}.scan .shutter{width:72px;height:72px;border-radius:50%;border:5px solid #fff;background:#ffffff40;cursor:pointer;margin:0 auto}.scan .shutter:hover{background:#fff6}.scan .strip{display:flex;gap:8px;overflow-x:auto;flex:1;min-width:0}.scan .strip button{width:52px;height:68px;border-radius:6px;overflow:hidden;border:2px solid transparent;padding:0;background:#222;cursor:pointer;flex:none}.scan .strip button.on{border-color:#81c995}.scan .strip img{width:100%;height:100%;object-fit:cover}.scan .btn{color:#fff;border-color:#fff6}.scan .btn.filled{background:#81c995;color:#0a3818}.scan .chip{color:#fff;border-color:#ffffff59}.scan .chip.on{background:#81c995;color:#0a3818}.crop-wrap{position:relative;display:inline-block;touch-action:none}.crop-wrap canvas{display:block;max-width:none;max-height:none}.crop-wrap svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.crop-wrap polygon{fill:#81c9952e;stroke:#81c995;stroke-width:2}.handle{position:absolute;width:28px;height:28px;margin:-14px 0 0 -14px;border-radius:50%;background:#fff;border:3px solid #81c995;cursor:grab;touch-action:none}.scan .tools{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;padding:8px 12px 0}dialog.dialog{border:0;padding:0;border-radius:var(--r-xl);background:var(--surface);color:var(--text);width:min(560px,calc(100vw - 24px));max-height:calc(100vh - 32px);box-shadow:var(--shadow-3)}:root[data-theme=dark] dialog.dialog{background:var(--surface-2)}dialog.dialog.wide{width:min(960px,calc(100vw - 24px))}dialog.dialog::backdrop{background:var(--scrim)}dialog.dialog>header{display:flex;align-items:center;gap:8px;padding:20px 16px 4px 24px}dialog.dialog>header h2{flex:1;margin:0;font-size:22px;font-weight:500;min-width:0}dialog.dialog>.body{padding:12px 24px 8px;overflow-y:auto;max-height:calc(100vh - 180px);display:flex;flex-direction:column;gap:14px}dialog.dialog>footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 20px 20px}dialog.dialog.note-dialog>.body{padding:0 0 4px;gap:0}dialog.dialog.note-dialog{border-radius:var(--r-md)}#toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%);z-index:100;display:flex;align-items:center;gap:16px;min-width:280px;max-width:calc(100vw - 32px);padding:12px 12px 12px 18px;border-radius:6px;background:#303030;color:#f2f2f2;box-shadow:var(--shadow-3);font-size:14px;animation:toast-in .2s var(--ease)}#toast button{border:0;background:transparent;color:#81c995;font-weight:700;cursor:pointer;padding:6px 8px}@keyframes toast-in{0%{transform:translate(-50%,20px);opacity:0}}@media(max-width:900px){#toast{bottom:96px}}.settings{max-width:760px;display:flex;flex-direction:column;gap:16px}.settings section{padding:8px 0}.settings h2{font-size:16px;font-weight:600;margin:8px 20px 4px;color:var(--primary)}.setting{display:flex;align-items:center;gap:16px;padding:12px 20px;min-height:64px}.setting+.setting{border-top:1px solid var(--outline)}.setting .t{font-weight:500}.setting .d{font-size:13px;color:var(--muted)}.setting select{width:auto;min-height:40px;padding:6px 10px;border-radius:var(--r-sm);border:1px solid var(--outline-strong);background:var(--surface)}.pair-code{font-family:var(--mono);font-size:13px;padding:10px 12px;border-radius:var(--r-sm);background:var(--surface-2);word-break:break-all;user-select:all}.digits{display:flex;justify-content:center;gap:10px;margin:4px 0}.digits input.digit{width:48px;height:58px;padding:0;text-align:center;font-size:24px;font-weight:600;font-family:var(--mono);border-radius:12px;border:1.5px solid var(--outline-strong);background:var(--surface);color:var(--text);outline:none;caret-color:var(--primary);transition:border-color .15s,box-shadow .15s,background .15s}.digits input.digit:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-container)}.digits input.digit.filled{background:var(--surface-2);border-color:var(--primary)}.digits input.digit[type=password]{font-size:28px}@media(max-width:380px){.digits{gap:6px}.digits input.digit{width:42px;height:52px}}.admin-stats .card{cursor:default}.admin-stats .card:hover{background:var(--surface)}.admin-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin-bottom:16px}.admin-plan{padding:20px 24px;display:flex;flex-direction:column;gap:12px}.admin-plan h2,.admin-user h2{margin:0;font-size:18px;font-weight:600}.admin-plan p{margin:-6px 0 0}.admin-user{padding:20px 24px;display:flex;flex-direction:column;gap:12px}.admin-note{max-width:760px;font-size:13px}.steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}:focus:not(:focus-visible){outline:none}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}dialog:focus,dialog:focus-visible,[tabindex="-1"]:focus{outline:none}.list-row:focus-visible,.otp:focus-visible,.note .inner:focus-visible,.doc:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none}.note-input:focus,.checklist-row input:focus{outline:none;box-shadow:none}.saved-hint{font-size:12px;color:var(--primary);padding:0 6px}.setting.col{flex-direction:column;align-items:stretch;gap:12px}.setting.col .field input{max-width:420px}.composing~.empty,.composing+.empty{display:none}.ad-tabs{margin-bottom:16px}.ad-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.ad-kpi{padding:18px 20px;display:flex;flex-direction:column;gap:2px}.ad-kpi strong{font-size:30px;font-weight:500;font-variant-numeric:tabular-nums}.ad-charts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.ad-chart{margin:0;padding:18px 20px}.ad-chart figcaption{display:flex;justify-content:space-between;gap:8px;margin-bottom:12px;font-size:14px}.ad-plot{display:grid;grid-template-columns:auto 1fr;gap:8px;height:160px}.ad-y{display:flex;flex-direction:column;justify-content:space-between;font-size:11px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}.ad-plot svg{width:100%;height:160px;overflow:visible}.ad-bar path{fill:var(--primary)}.ad-bar .ad-hit{fill:transparent}.ad-bar:hover path{opacity:.8}.ad-grid{stroke:var(--outline);stroke-width:1;vector-effect:non-scaling-stroke;stroke-dasharray:3 3}.ad-base{stroke:var(--outline-strong);stroke-width:1;vector-effect:non-scaling-stroke}.ad-x{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin:6px 0 0 28px}.ad-table{margin-top:10px;font-size:12px;color:var(--muted)}.ad-table summary{cursor:pointer}.ad-table table{width:100%;margin-top:6px;border-collapse:collapse}.ad-table td,.ad-table th{padding:2px 6px;text-align:left}.ad-tip{position:fixed;z-index:90;pointer-events:none;background:var(--text);color:var(--bg);padding:6px 10px;border-radius:8px;font-size:12px;font-weight:600;box-shadow:var(--shadow-2)}.ad-items{padding:18px 20px;display:flex;flex-direction:column;gap:10px}.ad-hbar{display:grid;grid-template-columns:200px 1fr 60px;align-items:center;gap:12px;font-size:14px}.ad-hbar div{height:12px}.ad-hbar i{display:block;height:100%;background:var(--primary);border-radius:0 4px 4px 0}.ad-hbar b{text-align:right;font-variant-numeric:tabular-nums}.ad-search{margin-bottom:12px}.ad-search .search{max-width:none;background:var(--surface);border:1px solid var(--outline)}.ad-table-wrap{overflow-x:auto}.ad-users{width:100%;border-collapse:collapse;font-size:14px}.ad-users th{text-align:left;font-size:12px;color:var(--muted);font-weight:600;padding:12px 14px;border-bottom:1px solid var(--outline);white-space:nowrap}.ad-users td{padding:10px 14px;border-bottom:1px solid var(--outline);white-space:nowrap}.ad-users tr:last-child td{border-bottom:0}.ad-users tr:hover td{background:var(--hover)}.ad-suspended td{opacity:.65}.ad-actions{text-align:right;width:48px}.ad-pager{margin-top:10px}.ad-form{padding:16px 20px;display:flex;flex-direction:column;gap:14px}.ad-form h2,.settings form .card h2{margin:0}.announcement{display:flex;align-items:center;gap:10px;padding:10px 16px;margin:0 28px 10px;border-radius:var(--r-md);background:var(--primary-container);color:var(--on-primary-container);font-size:14px}.announcement.warn{background:color-mix(in srgb,var(--warn) 18%,var(--surface, transparent));color:inherit;flex-wrap:wrap}.announcement.warn .grow{flex:1 1 260px}@media(max-width:900px){.ad-kpis{grid-template-columns:1fr 1fr}.ad-charts{grid-template-columns:1fr}.ad-hbar{grid-template-columns:120px 1fr 48px}.announcement{margin:0 14px 10px}}.ad-kpi strong{display:flex;align-items:baseline;gap:8px}.ad-delta{font-size:12px;font-weight:700;padding:2px 6px;border-radius:8px}.ad-delta.up{color:var(--primary);background:var(--primary-container, var(--surface-2))}.ad-delta.down{color:var(--danger);background:var(--danger-container)}.ad-warn .ad-bar path{fill:var(--danger)}.ad-two{display:grid;grid-template-columns:3fr 2fr;gap:12px;margin-bottom:16px}.ad-stat-table{padding:18px 20px}.ad-stat-table h3{margin:0 0 8px;font-size:15px}.ad-stat-table td:not(:first-child),.ad-stat-table th:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}.small{font-size:12px}.ad-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.ad-filters .search{min-width:220px;max-width:none;background:var(--surface);border:1px solid var(--outline)}.ad-filters select,.ad-size select{height:40px;border-radius:20px;padding:0 12px;border:1px solid var(--outline);background:var(--surface);color:inherit;font:inherit}.ad-users tbody tr[data-email]{cursor:pointer}.ad-users tbody tr[data-email]:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.ad-pager{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px}.ad-size{display:inline-flex;align-items:center;gap:6px;font-size:13px}.ad-size select{height:32px}.ad-pages{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.ad-pages .btn{min-width:36px;justify-content:center}.ad-next svg{transform:rotate(180deg)}.ad-gap{padding:0 4px;color:var(--muted)}.badge.plus{background:var(--primary);color:var(--on-primary)}.ad-user-badges{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.ad-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px;margin-bottom:8px}.ad-facts div{display:flex;flex-direction:column;gap:2px;min-width:0}.ad-facts span{font-size:12px}.ad-facts b{font-weight:600;overflow-wrap:anywhere}.ad-user h3{font-size:14px;margin:18px 0 8px}.ad-strip{display:grid;grid-template-columns:repeat(30,1fr);gap:3px}.ad-strip i{height:18px;border-radius:4px;background:var(--surface-2)}.ad-strip i.on{background:var(--primary)}.ad-devices{list-style:none;margin:0;padding:0;display:grid;gap:4px}.ad-devices li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid var(--outline)}.ad-devices li span{display:flex;align-items:center;gap:8px;min-width:0}.ad-note{width:100%;min-height:80px;resize:vertical;border-radius:12px;border:1px solid var(--outline);background:var(--surface);color:inherit;font:inherit;padding:10px 12px;box-sizing:border-box}.ad-user footer{flex-wrap:wrap}.btn.danger{color:var(--danger)}.ad-skeleton{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.ad-skeleton i{height:96px;border-radius:16px;background:linear-gradient(90deg,var(--surface-2),var(--surface),var(--surface-2));background-size:200% 100%;animation:ad-shimmer 1.2s linear infinite}@keyframes ad-shimmer{to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.ad-skeleton i{animation:none}}@media(max-width:900px){.ad-two,.ad-charts{grid-template-columns:1fr}.ad-kpis,.ad-skeleton{grid-template-columns:repeat(2,1fr)}.ad-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.ad-facts{grid-template-columns:1fr}.ad-filters .search{min-width:100%}}.plan-card{display:flex;flex-direction:column;gap:14px;padding:16px 18px;margin:4px 20px 20px;border-radius:18px;background:linear-gradient(135deg,var(--surface-2),var(--surface));border:1px solid var(--outline)}.plan-card.is-plus{background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 16%,var(--surface)),var(--surface));border-color:color-mix(in srgb,var(--primary) 40%,var(--outline))}.plan-card.warn{border-color:var(--danger)}.plan-top{display:flex;align-items:flex-start;gap:14px}.plan-top .t{font-weight:650;font-size:16px}.plan-top .d{color:var(--muted);font-size:14px;margin-top:2px}.plan-icon{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--primary);color:var(--on-primary)}.plan-usage{display:grid;gap:6px}.plan-bar{height:8px;border-radius:4px;background:var(--outline);overflow:hidden}.plan-bar i{display:block;height:100%;width:0;background:var(--primary);border-radius:4px;transition:width .4s ease}.plan-perks{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:14px}.plan-perks li{display:flex;align-items:center;gap:8px}.plan-perks svg{color:var(--primary)}.plan-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}@media(prefers-reduced-motion:reduce){.plan-bar i{transition:none}}.qf-body{margin:0;background:transparent;overflow:hidden}.qf{height:100vh;display:flex;flex-direction:column;background:var(--surface);color:var(--text);border:1px solid var(--outline);border-radius:14px;overflow:hidden;box-sizing:border-box}.qf-head{display:flex;align-items:center;gap:12px;padding:14px 12px 10px 16px;user-select:none}.qf-head b{display:block;font-size:13px;color:var(--muted);font-weight:600}.qf-head small{display:block;font-size:15px;font-weight:600;color:var(--text);max-width:300px}.qf-mark{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--primary-container);color:var(--on-primary-container);flex:none}.qf-search{display:flex;align-items:center;gap:10px;margin:4px 14px 8px;padding:0 14px;height:44px;border-radius:22px;background:var(--surface-2);color:var(--muted)}.qf-search input{flex:1;border:0;outline:0;background:transparent;color:var(--text);font:inherit;font-size:15px;min-width:0}.qf-list{flex:1;overflow-y:auto;padding:2px 8px 8px}.qf-row{display:flex;align-items:center;gap:12px;width:100%;padding:9px 10px;border:0;border-radius:12px;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.qf-row:hover,.qf-row.hl{background:var(--surface-2)}.qf-row.hl{box-shadow:inset 0 0 0 1px var(--outline-strong)}.qf-row .grow{min-width:0;display:flex;flex-direction:column}.qf-t{font-weight:600}.qf-row small{color:var(--muted);font-size:12.5px}.qf-av{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--primary);color:var(--surface);font-weight:700;flex:none}.qf-tag{font-size:11px;font-weight:600;padding:3px 8px;border-radius:10px;background:var(--primary-container);color:var(--on-primary-container)}.qf-empty{color:var(--muted);padding:18px 12px;margin:0;line-height:1.5}.qf-locked{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--muted)}.qf-locked svg{width:36px;height:36px}.qf-foot{display:flex;gap:16px;justify-content:center;padding:8px 12px 10px;border-top:1px solid var(--outline);color:var(--muted);font-size:12px}.qf-foot kbd{font:inherit;font-size:11px;padding:1px 6px;margin-right:3px;border-radius:5px;border:1px solid var(--outline-strong)}.setting kbd{font:inherit;font-size:12px;padding:1px 6px;border-radius:5px;border:1px solid var(--outline-strong)}.settings-tabs{display:flex;gap:4px;padding:4px;border-radius:999px;background:var(--surface-2);overflow-x:auto;scrollbar-width:none;position:sticky;top:0;z-index:2}.settings-tabs button{flex:1 0 auto;border:0;background:transparent;color:var(--muted);font:inherit;font-weight:600;font-size:14px;padding:9px 16px;border-radius:999px;cursor:pointer;white-space:nowrap}.settings-tabs button:hover{color:var(--text)}.settings-tabs button.on{background:var(--surface);color:var(--primary);box-shadow:0 1px 3px #0000001f}.settings-panel{display:flex;flex-direction:column;gap:16px}
