@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(./literata-cyrillic-ext-standard-normal.C5tfwALZ.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(./literata-cyrillic-standard-normal.DgmypKXX.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(./literata-greek-ext-standard-normal.DGm64vGR.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(./literata-greek-standard-normal.DFglUmAd.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(./literata-vietnamese-standard-normal.Gqw5JQlq.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(./literata-latin-ext-standard-normal.STiTPs0F.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(./literata-latin-standard-normal.BHZsWIlc.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(./literata-cyrillic-ext-standard-italic.5yUt4G_9.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(./literata-cyrillic-standard-italic.Bj0ndbyp.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(./literata-greek-ext-standard-italic.DFpO5j-Z.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(./literata-greek-standard-italic.CHERNRFq.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(./literata-vietnamese-standard-italic.BdcrZMcO.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(./literata-latin-ext-standard-italic.4y8iAqqs.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(./literata-latin-standard-italic.CJ93D38p.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Karla Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./karla-latin-ext-wght-normal.Dq0rrjgs.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Karla Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./karla-latin-wght-normal.C3-ma4ov.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink: #1a1a1a;--ink-soft: #4a4642;--ink-faint: #8a847c;--paper: #faf8f5;--paper-raised: #f2ede5;--paper-line: #e3dcd0;--accent: #b3541e;--accent-soft: #f1e0d2;--danger: #a3311a;--danger-soft: #f6e3de;--ok: #3a6b46;--font-serif: "Literata Variable", ui-serif, Georgia, serif;--font-sans: "Karla Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--text-xs: .75rem;--text-sm: .8125rem;--text-base: 1rem;--text-lg: 1.375rem;--text-xl: 2rem;--text-2xs: .6875rem;--text-md: 1.125rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-8: 3rem;--radius: 8px;--radius-sm: 5px}*{box-sizing:border-box}html,body{padding:0;margin:0}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-serif);font-optical-sizing:auto;font-weight:500;line-height:1.2;margin:0 0 var(--space-2)}h1{font-size:var(--text-xl)}h2{font-size:var(--text-lg)}h3{font-size:var(--text-base)}p{margin:0 0 var(--space-3);max-width:70ch;color:var(--ink-soft)}a{color:var(--accent)}button{font-family:inherit;font-size:var(--text-base);cursor:pointer}input,select{font-family:inherit;font-size:var(--text-base)}code,.mono{font-family:SF Mono,ui-monospace,Menlo,Consolas,monospace;font-size:.875em}.page{max-width:960px;margin:0 auto;padding:var(--space-6) var(--space-5) var(--space-8)}.page-header{margin-bottom:var(--space-8);display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.section{margin-bottom:var(--space-6)}.section:last-child{margin-bottom:0}.nav{background:var(--ink);color:var(--paper)}.nav-inner{max-width:960px;margin:0 auto;padding:var(--space-3) var(--space-5);display:flex;align-items:center;gap:var(--space-5);overflow-x:auto;scrollbar-width:none}.nav-inner::-webkit-scrollbar{display:none}.nav-brand{font-family:var(--font-serif);font-optical-sizing:auto;font-size:var(--text-md);font-weight:500;font-style:italic;color:var(--paper);text-decoration:none;margin-right:var(--space-2);flex-shrink:0}.nav-links{display:flex;flex-shrink:0;gap:var(--space-4);list-style:none;margin:0;padding:0}.nav-links a{display:inline-block;color:#cfc9c0;text-decoration:none;white-space:nowrap;font-size:var(--text-sm);padding:var(--space-2) 0;border-bottom:2px solid transparent}.nav-links a:hover{color:var(--paper)}.nav-links a.active{color:var(--paper);border-bottom-color:var(--accent)}.nav-signout{margin-left:auto;flex-shrink:0;background:transparent;border:none;color:#cfc9c0;font-size:var(--text-sm);padding:var(--space-2) 0}.nav-signout:hover{color:var(--paper)}.bottom-nav{display:none}@media(max-width:640px){.nav{display:none}.page{padding-bottom:calc(var(--space-8) + 56px + env(safe-area-inset-bottom))}.bottom-nav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--ink);border-top:1px solid #33302c;padding-bottom:env(safe-area-inset-bottom)}}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:var(--space-2) 0;border:none;background:transparent;color:#9a948a;text-decoration:none;font-size:var(--text-2xs);font-family:inherit}.bottom-nav-icon{width:22px;height:22px}.bottom-nav-item.active{color:var(--paper)}.bottom-nav-item.active .bottom-nav-icon{color:var(--accent)}.more-sheet-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.more-sheet-list a,.more-sheet-signout{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-2);color:var(--ink);text-decoration:none;font-size:var(--text-base);background:transparent;border:none;border-bottom:1px solid var(--paper-line);text-align:left}.more-sheet-list li:last-child a,.more-sheet-list li:last-child .more-sheet-signout{border-bottom:none}.more-sheet-list a.active{color:var(--accent)}.more-sheet-signout{color:var(--danger)}.more-sheet-icon{width:20px;height:20px;flex-shrink:0;color:var(--ink-faint)}.more-sheet-list a.active .more-sheet-icon{color:var(--accent)}.more-sheet-signout .more-sheet-icon{color:var(--danger)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);border:1px solid var(--paper-line);background:var(--paper);color:var(--ink);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);font-weight:500;transition:border-color .15s ease,background .15s ease}.btn:hover{border-color:var(--ink-faint)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-accent{background:var(--accent);border-color:var(--accent);color:var(--paper)}.btn-accent:hover{background:#9a4718;border-color:#9a4718}.btn-ghost{border-color:transparent;background:transparent}.btn-danger{color:var(--danger);border-color:var(--danger-soft)}.btn-danger:hover{border-color:var(--danger);background:var(--danger-soft)}.state-block{padding:var(--space-6) var(--space-4);text-align:center;color:var(--ink-faint);border:1px dashed var(--paper-line);border-radius:var(--radius)}.error-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);background:var(--danger-soft);color:var(--danger);border:1px solid #e3bfb2;border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);font-size:var(--text-base)}.key-form{max-width:360px;padding:var(--space-5);border:1px solid var(--paper-line);border-radius:var(--radius);background:var(--paper-raised)}.key-form p{margin-bottom:var(--space-4)}.key-form-row{display:flex;gap:var(--space-2);margin-bottom:var(--space-3)}.key-form-row:last-child{margin-bottom:0}.key-form input[type=password]{flex:1;padding:var(--space-2) var(--space-3);border:1px solid var(--paper-line);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink)}.key-form input[type=password]:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.progress-list{display:flex;flex-direction:column;gap:var(--space-3)}.progress-row{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--paper-raised);border:1px solid var(--paper-line);border-radius:var(--radius)}.progress-cover{flex:0 0 auto;width:44px;height:60px;border-radius:3px;object-fit:cover;background:var(--paper-line)}.progress-cover-fallback{flex:0 0 auto;width:44px;height:60px;border-radius:3px;background:var(--ink-faint);color:var(--paper);display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-optical-sizing:auto;font-style:italic;font-weight:500;font-size:var(--text-md)}.progress-main{flex:1;min-width:0}.progress-title{font-family:var(--font-serif);font-optical-sizing:auto;font-size:var(--text-base);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.progress-meta{font-size:var(--text-sm);color:var(--ink-faint);display:flex;gap:var(--space-2);flex-wrap:wrap}.progress-bar{margin-top:var(--space-2);height:6px;border-radius:3px;background:var(--paper-line);overflow:hidden}.progress-fill{height:100%;background:var(--accent);border-radius:3px}.progress-pct{flex:0 0 auto;width:56px;text-align:right;font-variant-numeric:tabular-nums;color:var(--ink-soft);font-size:var(--text-sm)}.shelf-tab{border:1px solid var(--paper-line);background:var(--paper);color:var(--ink-soft);border-radius:999px;padding:var(--space-1) var(--space-4);font-size:var(--text-sm)}.shelf-tab:hover{border-color:var(--ink-faint)}.shelf-tab.active{background:var(--ink);border-color:var(--ink);color:var(--paper)}.list-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-4)}.bulk-bar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--accent-soft);border:1px solid var(--paper-line);border-radius:var(--radius-sm)}.bulk-count{font-weight:600;font-size:var(--text-sm);color:var(--accent)}.bulk-move{display:inline-flex;align-items:center;gap:var(--space-2)}.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-4)}.book-card{display:flex;flex-direction:column;background:var(--paper-raised);border:1px solid var(--paper-line);border-radius:var(--radius);overflow:hidden}.book-card.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.book-cover-wrap{position:relative}.checkbox.book-select{position:absolute;top:var(--space-2);left:var(--space-2);z-index:1}.checkbox.book-select .checkbox-box{background:#faf8f5d9;box-shadow:0 1px 3px #1a1a1a40}.checkbox.book-select .checkbox-box[data-state=checked]{background:var(--accent)}.book-cover{width:100%;aspect-ratio:2 / 3;object-fit:cover;background:var(--paper-line);display:block}.book-cover-fallback{width:100%;aspect-ratio:2 / 3;display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-optical-sizing:auto;font-style:italic;font-size:2rem;font-weight:500;color:var(--paper);background:var(--accent)}.book-info{padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2);flex:1}.shelf-select{flex:1;min-width:0;padding:1px var(--space-1);border:1px solid var(--paper-line);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);font-size:var(--text-base)}.btn-block{width:100%;padding:var(--space-1) var(--space-3);font-size:var(--text-sm)}.book-actions{display:flex;gap:var(--space-2)}.book-actions .btn{flex:1}.book-title{font-family:var(--font-serif);font-optical-sizing:auto;font-weight:500;font-size:var(--text-base);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.book-author{font-family:var(--font-serif);font-optical-sizing:auto;font-style:italic;font-size:var(--text-sm);color:var(--ink-faint)}.book-footer{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding-top:var(--space-2);font-size:var(--text-xs);color:var(--ink-faint)}.shelf-badge{display:inline-block;padding:1px var(--space-2);border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:var(--text-2xs);font-weight:600;text-transform:uppercase;letter-spacing:.02em}.dropzone{border:2px dashed var(--paper-line);border-radius:var(--radius);padding:var(--space-6) var(--space-4);text-align:center;color:var(--ink-faint);background:var(--paper-raised);transition:border-color .15s ease,background .15s ease}.dropzone.dragover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.dropzone input[type=file]{display:none}.dropzone p{margin-bottom:var(--space-2)}.upload-shelf-row{margin-top:var(--space-3);display:flex;align-items:center;gap:var(--space-2)}.upload-list{margin-top:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.upload-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--paper-line);border-radius:var(--radius-sm);font-size:var(--text-sm);background:var(--paper)}.upload-status{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.02em}.upload-status.pending{color:var(--ink-faint)}.upload-status.uploading{color:var(--accent)}.upload-status.done{color:var(--ok)}.upload-status.error{color:var(--danger)}.modal-field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-3);font-size:var(--text-sm);color:var(--ink-soft)}.modal-field input{padding:var(--space-2) var(--space-3);border:1px solid var(--paper-line);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink)}.modal-field input:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.settings-grid{display:grid;grid-template-columns:1fr;gap:var(--space-5);max-width:640px}.settings-card{padding:var(--space-5);background:var(--paper-raised);border:1px solid var(--paper-line);border-radius:var(--radius)}.settings-card h2{margin-bottom:var(--space-3)}.settings-card ol{margin:0 0 var(--space-3);padding-left:1.25rem}.settings-card li{margin-bottom:var(--space-2)}.code-row{display:flex;align-items:center;gap:var(--space-2);background:var(--paper);border:1px solid var(--paper-line);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-2)}.code-row code{flex:1;overflow-x:auto;white-space:nowrap}.hint{font-size:var(--text-sm);color:var(--ink-faint)}.warning{font-size:var(--text-sm);color:var(--danger);background:var(--danger-soft);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);margin:var(--space-2) 0}.passkey-list{list-style:none;margin:0 0 var(--space-4);padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.passkey-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3);background:var(--paper);border:1px solid var(--paper-line);border-radius:var(--radius-sm)}.passkey-info{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.passkey-name{font-weight:500}.passkey-meta{font-size:var(--text-sm);color:var(--ink-faint)}.passkey-actions{display:flex;flex-shrink:0;gap:var(--space-2)}.passkey-rename-form{display:flex;align-items:center;gap:var(--space-2)}.passkey-rename-form input{padding:var(--space-1) var(--space-2);border:1px solid var(--paper-line);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a1a1a73;z-index:30}.dialog-content{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:31;width:calc(100% - 2 * var(--space-4));max-width:420px;background:var(--paper);border:1px solid var(--paper-line);border-radius:var(--radius);padding:var(--space-5);box-shadow:0 8px 30px #1a1a1a33}.dialog-content:focus-visible{outline:2px solid var(--accent-soft)}.dialog-title{font-family:var(--font-serif);font-optical-sizing:auto;font-weight:500;font-size:var(--text-lg);line-height:1.2;margin:0 0 var(--space-2)}.dialog-desc{color:var(--ink-soft);margin:0 0 var(--space-4);font-size:var(--text-base)}.dialog-footer{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-4)}.dialog-content-sm{max-width:380px}.btn.confirm-action-danger{background:var(--danger);border-color:var(--danger);color:var(--paper)}.btn.confirm-action-danger:hover{background:#8a2915;border-color:#8a2915}.toast-viewport{position:fixed;z-index:40;bottom:var(--space-5);right:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2);max-width:min(360px,calc(100vw - 2 * var(--space-4)));pointer-events:none}.toast{pointer-events:auto;text-align:left;border:1px solid var(--paper-line);border-left-width:3px;background:var(--paper);color:var(--ink);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);font-family:inherit;font-size:var(--text-sm);box-shadow:0 4px 16px #1a1a1a24}.toast-success{border-left-color:var(--ok)}.toast-error{border-left-color:var(--danger)}.toast-info{border-left-color:var(--accent)}@media(max-width:640px){.toast-viewport{left:var(--space-4);right:var(--space-4);bottom:calc(var(--space-4) + 56px + env(safe-area-inset-bottom));max-width:none}}.toggle-group{display:inline-flex;flex-wrap:wrap}.toggle-group-pills{display:flex;gap:var(--space-2);margin-bottom:var(--space-5)}.toggle-group-pills .toggle-item{border:1px solid var(--paper-line);background:var(--paper);color:var(--ink-soft);border-radius:999px;padding:var(--space-1) var(--space-4);font-family:inherit;font-size:var(--text-sm);cursor:pointer}.toggle-group-pills .toggle-item:hover{border-color:var(--ink-faint)}.toggle-group-pills .toggle-item[data-state=on]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.toggle-group-segmented{gap:0;border:1px solid var(--paper-line);border-radius:var(--radius-sm);overflow:hidden;margin-bottom:var(--space-3)}.toggle-group-segmented .toggle-item{padding:var(--space-1) var(--space-3);background:var(--paper);color:var(--ink-soft);border:none;font:inherit;cursor:pointer}.toggle-group-segmented .toggle-item[data-state=on]{background:var(--accent);color:var(--paper)}.checkbox{display:inline-flex;align-items:center;gap:var(--space-2);cursor:pointer}.checkbox-disabled{cursor:not-allowed;opacity:.5}.checkbox-box{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;border:1px solid var(--paper-line);border-radius:var(--radius-sm);background:var(--paper);color:var(--paper);cursor:inherit;padding:0;transition:background .12s ease,border-color .12s ease}.checkbox-box[data-state=checked],.checkbox-box[data-state=indeterminate]{background:var(--accent);border-color:var(--accent)}.checkbox-box:focus-visible{outline:2px solid var(--accent-soft);outline-offset:1px}.checkbox-indicator{display:inline-flex;width:14px;height:14px}.checkbox-indicator svg{width:14px;height:14px}.checkbox-label{font-size:var(--text-sm);color:var(--ink-soft)}.alert{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);border:1px solid;border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);font-size:var(--text-base)}.alert-message{min-width:0}.alert-action{flex-shrink:0}.alert-error,.alert-warning{background:var(--danger-soft);color:var(--danger);border-color:#e3bfb2}.alert-success{background:#e4efe6;color:var(--ok);border-color:#c4ddc9}.alert-info{background:var(--accent-soft);color:var(--accent);border-color:#e3c9b3}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a1a1a73;z-index:30}.sheet-content{position:fixed;left:0;right:0;bottom:0;z-index:31;background:var(--paper);border-top-left-radius:var(--radius);border-top-right-radius:var(--radius);padding:var(--space-2) var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom));box-shadow:0 -8px 30px #1a1a1a33}.sheet-grip{width:36px;height:4px;border-radius:999px;background:var(--paper-line);margin:var(--space-2) auto var(--space-3)}.sheet-title{font-family:var(--font-serif);font-optical-sizing:auto;font-weight:500;font-size:var(--text-base);margin:0 0 var(--space-2);padding:0 var(--space-2)}
