:root{--bg:#fdfcfa;--fg:#1d1d1f;--muted:#6b6b70;--accent:#2f6fde;--surface:#fff;--border:#d9d8d4;--danger:#b3261e;--on-accent:#fff;color:var(--fg);background:var(--bg);font-family:system-ui,sans-serif;line-height:1.5}@media (prefers-color-scheme:dark){:root{--bg:#17171a;--fg:#ececf0;--muted:#9a9aa2;--accent:#7aa7ff;--surface:#212126;--border:#3a3a42;--danger:#ffb4ab;--on-accent:#0b1a33}}body{background:var(--bg);margin:0}.page{max-width:42rem;margin:0 auto;padding:1rem}h1{margin:.5rem 0 1rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:1rem}.card h2{margin-top:0}.field{flex-direction:column;gap:.25rem;margin-bottom:1rem;display:flex}label{font-weight:600}input{font:inherit;border:1px solid var(--border);background:var(--bg);min-height:44px;color:var(--fg);border-radius:.5rem;padding:0 .75rem}button{font:inherit;border:1px solid var(--border);background:var(--surface);min-width:44px;min-height:44px;color:var(--fg);cursor:pointer;border-radius:.5rem;padding:0 1.25rem}button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}button:disabled{opacity:.6;cursor:progress}input:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.hint{color:var(--muted);margin-top:-.5rem;font-size:.9rem}.error{color:var(--danger);font-weight:600}.actions{flex-wrap:wrap;gap:.75rem;display:flex}.signed-in{margin:0 0 1rem;font-size:1.1rem}.status{color:var(--muted);font-size:.85rem}.offline-status{background:color-mix(in srgb, var(--accent) 12%, transparent);border-radius:999px;margin:0 0 .75rem;padding:.25rem .75rem;font-size:.85rem;display:inline-block}.offline-status[hidden]{display:none}a{color:var(--accent)}a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.outlet{margin-top:1rem}a.button{color:var(--fg);box-sizing:border-box;text-decoration:none}label.button,a.button{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:.5rem;align-items:center;min-height:44px;padding:0 1.25rem;display:inline-flex}label.button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}input.visually-hidden:focus-visible+label.button{outline:3px solid var(--accent);outline-offset:2px}.store-head{justify-content:space-between;align-items:center;gap:1rem;display:flex}.store-head h2{margin:0}.status-line{color:var(--muted);margin:.5rem 0}.status-line:empty{display:none}.upload-errors{padding-left:1.25rem}.empty{color:var(--muted);font-size:.9rem}.file-nav{flex-wrap:wrap;align-items:center;gap:.25rem 1rem;display:flex}.file-nav .back{align-items:center;gap:.25rem;min-height:44px;display:inline-flex}.upload-row{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.mirror-field{align-items:center;gap:.5rem;min-height:44px;margin-top:.5rem;display:flex}.mirror-field input{width:1.25rem;height:1.25rem;margin:0}.mirror-field label{cursor:pointer}.drop-active{outline:3px dashed var(--accent);outline-offset:4px}.confirm-items{overflow-wrap:anywhere;max-height:40vh;padding-left:1.25rem;overflow-y:auto}.folder-field{flex-direction:column;flex:12rem;gap:.25rem;display:flex}.file-tree ul{margin:0;padding:0;list-style:none}.file-tree>ul{margin-top:.5rem}.file-tree ul ul{border-left:1px solid var(--border);margin-left:.9rem;padding-left:1rem}.tree-folder,.tree-file{box-sizing:border-box;overflow-wrap:anywhere;border-radius:.4rem;align-items:center;gap:.4rem;width:100%;min-height:44px;padding:0 .5rem;display:flex}.tree-folder{text-align:left;background:0 0;border:none;font-weight:600}.tree-folder:before{content:"▸";color:var(--muted);width:1em;transition:transform .15s;display:inline-block}.tree-folder[aria-expanded=true]:before{transform:rotate(90deg)}.tree-folder:hover,.tree-file:hover{background:color-mix(in srgb, var(--accent) 10%, transparent)}.tree-file{text-decoration:none}.tree-file[aria-current=page]{background:color-mix(in srgb, var(--accent) 16%, transparent);font-weight:700}.file-tree li.has-actions{grid-template-columns:minmax(0,1fr) auto;display:grid}.file-tree li.has-actions>ul,.folder-actions{grid-column:1/-1}.folder-actions{display:contents}.folder-actions-toggle{min-width:44px;min-height:44px;color:var(--muted);background:0 0;border:none;border-radius:.4rem;padding:0;font-size:1.2rem}.folder-actions-toggle:hover{background:color-mix(in srgb, var(--accent) 10%, transparent)}.folder-menu,.move-form{border:1px solid var(--border);border-radius:.5rem;flex-wrap:wrap;grid-column:1/-1;gap:.5rem;margin:.25rem 0 .5rem;padding:.5rem;display:flex}.folder-menu[hidden],.move-form[hidden]{display:none}.move-form{flex-direction:column;align-items:stretch}.move-form .error,.file-actions .error{margin:0}.file-tools{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.5rem 0;display:flex}.tools-status{color:var(--muted)}.file-actions{flex-direction:column;gap:.5rem;margin:.5rem 0 1rem;display:flex}.file-actions .move-form{max-width:32rem;margin:0}.breadcrumb ol{color:var(--muted);flex-wrap:wrap;margin:.25rem 0 .5rem;padding:0;list-style:none;display:flex}.breadcrumb li{overflow-wrap:anywhere;align-items:center;display:inline-flex}.breadcrumb li+li:before{content:"/";margin:0 .5rem}.breadcrumb a{align-items:center;min-height:44px;display:inline-flex}.breadcrumb [aria-current=page]{color:var(--fg);font-weight:600}.unresolved-link{color:var(--muted);cursor:help;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.drawer-head{justify-content:space-between;align-items:center;gap:1rem;display:flex}.drawer-head h2{margin:0;font-size:1.1rem}.files-drawer{z-index:10;box-sizing:border-box;background:var(--surface);border-right:1px solid var(--border);visibility:hidden;width:min(85vw,22rem);padding:1rem;transition:transform .2s,visibility .2s;position:fixed;inset:0 auto 0 0;overflow-y:auto;transform:translate(-100%);box-shadow:0 0 2rem #00000040}.files-drawer.open{visibility:visible;transform:none}@media (width>=900px){.page{max-width:68rem}.file-layout{grid-template-columns:18rem minmax(0,1fr);align-items:start;gap:1.5rem;display:grid}.files-drawer{z-index:auto;border:1px solid var(--border);width:auto;max-height:calc(100vh - 2rem);box-shadow:none;visibility:visible;border-radius:.75rem;transition:none;position:sticky;top:1rem;transform:none}.files-toggle,.drawer-close{display:none}.file-page{max-width:46rem}}.join-body{margin-bottom:1rem}.join-qr{aspect-ratio:1;width:min(100%,18rem);height:auto;image-rendering:pixelated;background:#fff;border-radius:.5rem;margin:.5rem 0;display:block}.countdown{color:var(--muted);font-variant-numeric:tabular-nums}.join-status{font-size:1.1rem;font-weight:600}.copy-row{gap:.5rem;display:flex}.copy-row input{flex:auto;min-width:0;font-family:ui-monospace,monospace;font-size:.85rem}.notice{background:color-mix(in srgb, var(--accent) 12%, transparent);border-radius:.5rem;padding:.75rem}.signed-in-card .actions{margin-top:.5rem}.scanner{z-index:20;box-sizing:border-box;color:#fff;background:#000;flex-direction:column;gap:.75rem;padding:1rem;display:flex;position:fixed;inset:0}.scanner-view{flex:auto;justify-content:center;align-items:center;min-height:0;display:flex}.scanner video{border-radius:.5rem;max-width:100%;max-height:100%}.scanner-hint{text-align:center;margin:0}.scanner .error{color:#ffb4ab}.scanner .actions{justify-content:center}.toasts{z-index:30;flex-direction:column;gap:.5rem;width:max-content;max-width:calc(100vw - 2rem);display:flex;position:fixed;bottom:1rem;left:50%;transform:translate(-50%)}.toast{background:var(--fg);color:var(--bg);border-radius:.5rem;margin:0;padding:.75rem 1rem;font-weight:600;box-shadow:0 .5rem 1.5rem #00000040}.toast a{min-height:44px;color:inherit;align-items:center;margin:-.75rem 0;text-decoration:underline;display:inline-flex}button.danger{border-color:var(--danger);color:var(--danger)}select{font:inherit;border:1px solid var(--border);background:var(--bg);min-height:44px;color:var(--fg);border-radius:.5rem;padding:0 .5rem}select:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.passkeys-page .back{align-items:center;gap:.25rem;min-height:44px;display:inline-flex}.passkey-list{margin:0;padding:0;list-style:none}.passkey{border-top:1px solid var(--border);padding:.75rem 0}.passkey:first-child{border-top:none}.passkey-head{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.passkey-label{overflow-wrap:anywhere;font-weight:600}.badge{background:color-mix(in srgb, var(--accent) 16%, transparent);border-radius:1rem;padding:.1rem .5rem;font-size:.8rem;font-weight:600}.passkey-role{margin:.25rem 0}.passkey-meta{color:var(--muted);margin:.25rem 0 .5rem;font-size:.9rem}.rename-form{flex-direction:column;gap:.25rem;margin-top:.5rem;display:flex}.rename-form[hidden]{display:none}.rename-row{flex-wrap:wrap;gap:.5rem;display:flex}.rename-row input{flex:10rem;min-width:0}.leave-store,.delete-store{border-top:1px solid var(--border);margin-top:1rem;padding-top:1rem}.confirm-dialog{border:1px solid var(--border);background:var(--surface);max-width:min(28rem,100vw - 2rem);color:var(--fg);border-radius:.75rem}.confirm-dialog::backdrop{background:#0006}.confirm-dialog .actions{justify-content:flex-end}.delete-store h3{margin:0 0 .5rem;font-size:1rem}.danger:disabled{opacity:.5;cursor:not-allowed}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.markdown{--hl-keyword:#cf222e;--hl-string:#0a3069;--hl-title:#8250df;--hl-number:#0550ae;--hl-built-in:#953800;--hl-comment:#6e7781;--hl-addition-fg:#116329;--hl-addition-bg:#dafbe1;--hl-deletion-fg:#82071e;--hl-deletion-bg:#ffebe9}@media (prefers-color-scheme:dark){.markdown{--hl-keyword:#ff7b72;--hl-string:#a5d6ff;--hl-title:#d2a8ff;--hl-number:#79c0ff;--hl-built-in:#ffa657;--hl-comment:#8b949e;--hl-addition-fg:#aff5b4;--hl-addition-bg:#033a16;--hl-deletion-fg:#ffdcd7;--hl-deletion-bg:#67060c}}.markdown .hljs{color:var(--fg)}.markdown :is(.hljs-keyword,.hljs-doctag,.hljs-template-tag,.hljs-type,.hljs-selector-tag){color:var(--hl-keyword)}.markdown :is(.hljs-string,.hljs-regexp,.hljs-meta .hljs-string){color:var(--hl-string)}.markdown :is(.hljs-title,.hljs-title.function_,.hljs-title.class_,.hljs-section){color:var(--hl-title)}.markdown :is(.hljs-number,.hljs-literal,.hljs-attr,.hljs-attribute,.hljs-variable,.hljs-template-variable,.hljs-meta,.hljs-selector-id,.hljs-selector-class,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-symbol,.hljs-link){color:var(--hl-number)}.markdown :is(.hljs-built_in,.hljs-name,.hljs-tag,.hljs-params,.hljs-property){color:var(--hl-built-in)}.markdown .hljs-tag{color:var(--fg)}.markdown .hljs-tag .hljs-name{color:var(--hl-keyword)}.markdown .hljs-params{color:var(--fg)}.markdown :is(.hljs-comment,.hljs-quote){color:var(--hl-comment);font-style:italic}.markdown .hljs-addition{color:var(--hl-addition-fg);background:var(--hl-addition-bg)}.markdown .hljs-deletion{color:var(--hl-deletion-fg);background:var(--hl-deletion-bg)}.markdown .hljs-section,.markdown .hljs-strong{font-weight:600}.markdown .hljs-emphasis{font-style:italic}.markdown figure.mermaid-diagram{border:1px solid var(--border);background:var(--surface);text-align:center;border-radius:.5rem;margin:0 0 1rem;padding:.75rem;overflow-x:auto}.markdown figure.mermaid-diagram svg{max-width:100%;height:auto}.markdown .mermaid-error{color:var(--danger);margin:-.5rem 0 1rem;font-size:.9em}.markdown{overflow-wrap:break-word;max-width:44rem;color:var(--fg);margin:0 auto;font-size:1.0625rem;line-height:1.65}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.markdown :is(p,ul,ol,blockquote,pre,table,hr,details){margin:0 0 1rem}.markdown :is(h1,h2,h3,h4,h5,h6){margin:1.75rem 0 .75rem;scroll-margin-top:1rem;line-height:1.25}.markdown h1{font-size:1.85rem}.markdown h2{border-bottom:1px solid var(--border);padding-bottom:.25rem;font-size:1.45rem}.markdown h3{font-size:1.2rem}.markdown :is(h4,h5,h6){font-size:1rem}.markdown h6{color:var(--muted)}.markdown a{color:var(--accent);text-underline-offset:.15em;text-decoration:underline}.markdown a:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:2px}.markdown :is(ul,ol){padding-left:1.5rem}.markdown li+li{margin-top:.25rem}.markdown li>:is(ul,ol){margin:.25rem 0 0}.markdown li:has(>input[type=checkbox]){text-indent:-1.75rem;margin-left:-1.5rem;padding-left:1.75rem;list-style:none}.markdown input[type=checkbox]{vertical-align:-.125rem;text-indent:0;width:1rem;height:1rem;min-height:0;accent-color:var(--accent);margin:0 .75rem 0 0;padding:0}.markdown blockquote{border-left:4px solid var(--border);color:var(--muted);margin-left:0;margin-right:0;padding:.25rem 1rem}.markdown blockquote>:last-child{margin-bottom:0}.markdown :is(code,kbd,samp,pre){font-family:ui-monospace,Cascadia Code,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.markdown :not(pre)>code{border:1px solid var(--border);background:var(--surface);border-radius:.3rem;padding:.1em .35em}.markdown pre{border:1px solid var(--border);background:var(--surface);tab-size:2;border-radius:.5rem;padding:.85rem 1rem;line-height:1.45;overflow-x:auto}.markdown pre code{font-size:inherit;white-space:pre;background:0 0;border:0;padding:0}.markdown table{border-collapse:collapse;width:max-content;max-width:100%;display:block;overflow-x:auto}.markdown :is(th,td){border:1px solid var(--border);vertical-align:top;padding:.4rem .75rem}.markdown :is(th,td):not([align]){text-align:start}.markdown th{background:var(--surface);font-weight:600}.markdown tbody tr:nth-child(2n){background:color-mix(in srgb, var(--surface) 60%, var(--bg))}.markdown hr{border:0;border-top:1px solid var(--border);height:0}.markdown del{color:var(--muted)}
