:root{color-scheme:dark;--font-heading:Baskerville,"Baskerville Old Face",Georgia,"Times New Roman",serif;--font-body:Arial,"Helvetica Neue",Helvetica,sans-serif;--bg:#0b1626;--surface:#122031;--surface-2:#18293d;--panel:var(--surface);--ink:#eef3f9;--body-ink:#c2cedd;--muted:#8595a8;--faint:#5f6e82;--border:#243549;--border-strong:#324558;--brand:#2680ff;--brand-hover:#4d97ff;--brand-soft:rgba(38,128,255,0.16);--brand-ink:#ffffff;--danger:#f87171;--warn-ink:#f3c97a;--chip-bg:#21344b;--ring:rgba(38,128,255,0.45);--shadow-sm:0 1px 2px rgba(0,0,0,0.3),0 1px 3px rgba(0,0,0,0.4);--shadow-md:0 12px 32px rgba(0,0,0,0.5);--radius:12px}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--body-ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;line-height:1.55}h1,h2,h3{font-family:var(--font-heading);color:var(--ink);font-weight:600;letter-spacing:.01em}a{color:var(--brand)}.btn{border:1px solid transparent;border-radius:100vw;padding:.55rem 1.25rem;font-family:var(--font-body);font-size:.875rem;font-weight:700;line-height:1;letter-spacing:.01em;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s,color .15s,transform .05s;white-space:nowrap}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring)}.btn.primary{background:var(--brand);color:var(--brand-ink);box-shadow:var(--shadow-sm)}.btn.primary:hover{background:var(--brand-hover)}.btn.ghost{background:transparent;border-color:var(--border-strong);color:var(--ink)}.btn.ghost:hover{background:rgba(255,255,255,.06);border-color:var(--brand);color:var(--brand)}.btn.danger{background:transparent;border-color:rgba(248,113,113,.4);color:var(--danger)}.btn.danger:hover{background:rgba(248,113,113,.12);border-color:rgba(248,113,113,.65)}.btn:disabled{opacity:.5;cursor:not-allowed}.logo{display:block;height:26px;width:auto;color:var(--ink)}.signin{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(1100px 620px at 50% -10%,#163763 0,#0d1f38 45%,#070f1c 100%)}.signin-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:2.75rem 2.5rem 2.25rem;text-align:center;max-width:420px;width:100%;box-shadow:var(--shadow-md);overflow:hidden}.signin-card:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,#2680ff,#4d97ff)}.signin-logo{height:42px;width:auto;color:var(--ink);margin:0 auto 1rem;display:block}.signin-card .product{font-family:var(--font-heading);font-size:1.45rem;color:var(--ink);margin:0 0 .4rem}.signin-desc{color:var(--muted);margin:0 0 1.6rem;font-size:.95rem}.signin-card .btn{width:100%;padding:.72rem 1rem;font-size:.95rem}.signin-tagline{font-family:var(--font-heading);font-style:italic;color:var(--faint);font-size:.9rem;margin:1.5rem 0 0;padding-top:1.1rem;border-top:1px solid var(--border)}.signin-card .spinner{width:34px;height:34px;margin:.35rem auto 1.4rem;border-radius:50%;border:3px solid var(--border-strong);border-top-color:var(--brand);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.signin-card .spinner{animation-duration:2.4s}}.app{max-width:920px;margin:0 auto;padding:1.5rem 1.5rem 4rem}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;justify-content:space-between;gap:1rem;margin:-1.5rem -1.5rem 1.75rem;padding:.9rem 1.5rem;background:rgba(11,22,38,.82);-webkit-backdrop-filter:saturate(180%) blur(10px);backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--border)}.brand,.topbar{display:flex;align-items:center}.brand{gap:.7rem;min-width:0}.divider{width:1px;height:22px;flex-shrink:0;background:var(--border-strong)}.brand .product{font-family:var(--font-heading);font-size:1.2rem;color:var(--ink);line-height:1}.tagline{font-size:.82rem}.tagline,.user{color:var(--muted)}.user{display:flex;align-items:center;gap:.75rem;font-size:.875rem}.user>span{max-width:20ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem 1.65rem;margin-bottom:1.25rem;box-shadow:var(--shadow-sm)}.panel h2{margin:0 0 1.15rem;font-size:1.3rem;display:flex;align-items:center;gap:.6rem}.help-toc{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin:0;padding:0;list-style:none}.panel p+p{margin-top:.85rem}.help-bullets{margin:.85rem 0 0;padding-left:1.25rem}.help-bullets li+li{margin-top:.4rem}.panel h2 .count{font-family:var(--font-body);font-size:.72rem;font-weight:700;color:var(--brand);background:var(--brand-soft);padding:.15rem .55rem;border-radius:100vw;letter-spacing:.02em}.field{margin-bottom:.95rem}.field label{display:block;font-size:.8rem;font-weight:700;margin-bottom:.35rem;color:var(--ink)}.field input[type=text],.upload input[type=text]{width:100%;padding:.62rem .8rem;border:1px solid var(--border-strong);border-radius:9px;font-size:.9rem;font-family:var(--font-body);color:var(--ink);background:var(--surface-2);transition:border-color .15s,box-shadow .15s}.field input[type=text]::placeholder,.upload input[type=text]::placeholder{color:var(--faint)}.field input[type=text]:focus,.upload input[type=text]:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--ring)}.field input[type=file],.upload input[type=file]{width:100%;font-size:.85rem;color:var(--muted)}.field input[type=file]::-webkit-file-upload-button,.upload input[type=file]::-webkit-file-upload-button{margin-right:.75rem;padding:.45rem .95rem;border:1px solid var(--border-strong);border-radius:100vw;background:var(--surface-2);font-weight:700;font-size:.82rem;color:var(--ink);cursor:pointer;-webkit-transition:background .15s,border-color .15s,color .15s;transition:background .15s,border-color .15s,color .15s}.field input[type=file]::file-selector-button,.upload input[type=file]::file-selector-button{margin-right:.75rem;padding:.45rem .95rem;border:1px solid var(--border-strong);border-radius:100vw;background:var(--surface-2);font-weight:700;font-size:.82rem;color:var(--ink);cursor:pointer;transition:background .15s,border-color .15s,color .15s}.field input[type=file]::-webkit-file-upload-button:hover,.upload input[type=file]::-webkit-file-upload-button:hover{border-color:var(--brand);color:var(--brand)}.field input[type=file]::file-selector-button:hover,.upload input[type=file]::file-selector-button:hover{border-color:var(--brand);color:var(--brand)}.error{color:var(--danger);font-size:.85rem;margin:0 0 .75rem}.empty{color:var(--muted);margin:0;padding:.4rem 0}.asset-list{list-style:none;margin:0;padding:0}.asset{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1rem;padding:.85rem .8rem;margin:0 -.8rem;border-radius:10px;border-bottom:1px solid var(--border);transition:background .12s}.asset:hover{background:rgba(38,128,255,.07)}.asset:last-child{border-bottom:none}.asset-main{min-width:0;flex:1 1 14rem}.asset-title{font-weight:700;color:var(--ink);text-decoration:none;display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}.asset-title:hover{color:var(--brand)}.asset-sub{display:block;font-size:.78rem;color:var(--muted);margin-top:.2rem}.asset-actions{display:flex;gap:.5rem;flex-shrink:0}.editor-panel{flex-basis:100%;width:100%;margin-top:.5rem;padding:1.15rem 1.25rem;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.editor-hint{margin:0 0 .9rem;font-size:.85rem;color:var(--muted)}.editor-actions{display:flex;gap:.5rem;margin-top:.85rem}.rule{margin:1rem 0;border:0;border-top:1px solid var(--border)}.chip{display:inline-flex;gap:.4rem;align-items:center;padding:.2rem .6rem;background:var(--chip-bg);color:var(--ink);border-radius:100vw;font-size:.85rem}.chip button{border:none;background:none;cursor:pointer;font-weight:700;color:inherit;line-height:1;padding:0}.share-editor{gap:1.15rem}.share-editor,.share-section{display:flex;flex-direction:column}.share-section-title{margin:0;font-size:.95rem;font-weight:700;color:var(--ink)}.share-section-hint{margin:.2rem 0 .7rem;font-size:.8rem;color:var(--muted)}.access-list{list-style:none;margin:.6rem 0 0;padding:0;display:flex;flex-direction:column;gap:.4rem}.access-row{display:flex;align-items:center;gap:.6rem;padding:.4rem .55rem;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.access-id{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;color:var(--ink)}.access-empty{margin:.6rem 0 0;font-size:.82rem;color:var(--faint)}.access-remove{flex-shrink:0;border:none;background:none;color:var(--muted);font-size:1.15rem;line-height:1;cursor:pointer;padding:0 .25rem;transition:color .12s}.access-remove:hover{color:var(--danger)}.access-remove:disabled{opacity:.4;cursor:not-allowed}.role-select{flex-shrink:0;padding:.35rem .6rem;border:1px solid var(--border-strong);border-radius:100vw;background:var(--surface-2);color:var(--ink);font-family:var(--font-body);font-size:.8rem;font-weight:700;cursor:pointer;transition:border-color .15s,box-shadow .15s}.role-select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--ring)}.role-select:disabled{opacity:.5;cursor:not-allowed}.share-toggle{display:flex;gap:.55rem;align-items:flex-start;font-size:.88rem;color:var(--body-ink)}.share-toggle input{margin-top:.15rem}.share-external{border-top:1px solid var(--border);padding-top:1.05rem}.share-external-toggle{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;padding:0;border:none;background:none;cursor:pointer;text-align:left}.share-external-meta{font-size:.78rem;font-weight:700;color:var(--muted);letter-spacing:.02em}.share-external-body{margin-top:.85rem}.picker-input{width:100%;box-sizing:border-box;padding:.62rem .8rem;border:1px solid var(--border-strong);border-radius:9px;font-size:.9rem;font-family:var(--font-body);color:var(--ink);background:var(--surface-2);transition:border-color .15s,box-shadow .15s}.picker-input::placeholder{color:var(--faint)}.picker-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--ring)}.picker-menu{list-style:none;margin:.25rem 0 0;padding:0;border:1px solid var(--border-strong);border-radius:9px;background:var(--surface);position:absolute;z-index:10;width:100%;max-height:14rem;overflow-y:auto;box-shadow:var(--shadow-md)}.picker-option{display:block;width:100%;text-align:left;padding:.5rem .75rem;border:none;background:none;color:var(--ink);cursor:pointer;transition:background .12s}.picker-option:hover{background:var(--brand-soft)}.notice{padding:.8rem .9rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);margin-bottom:.75rem}.notice code{word-break:break-all;color:var(--ink)}.notice.success{border-color:rgba(38,128,255,.45);background:var(--brand-soft)}.notice.warn{border-color:rgba(243,201,122,.4);background:rgba(243,201,122,.1)}.notice.warn p{color:var(--warn-ink)}.restore-version{margin-top:.6rem}.viewer{display:flex;flex-direction:column;height:100vh}.viewer-bar{justify-content:space-between;gap:1rem;padding:.6rem 1.1rem;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm)}.viewer-bar,.viewer-meta{display:flex;align-items:center}.viewer-meta{gap:.8rem;min-width:0}.back{display:inline-flex;align-items:center;gap:.45rem;color:var(--ink);text-decoration:none;font-weight:700;white-space:nowrap}.back:hover{color:var(--brand)}.back .logo{height:20px}.viewer-title{font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-sub{color:var(--muted);font-size:.8rem;white-space:nowrap}.viewer-actions{display:flex;align-items:center;gap:1.1rem;flex-shrink:0}.open-raw{color:var(--brand);text-decoration:none;font-size:.85rem;font-weight:700;white-space:nowrap}.open-raw:hover{text-decoration:underline}.viewer-bar.is-tinted .back,.viewer-bar.is-tinted .open-raw,.viewer-bar.is-tinted .viewer-title{color:inherit}.viewer-bar.is-tinted .viewer-sub{color:inherit;opacity:.72}.viewer-bar.is-tinted .back:hover,.viewer-bar.is-tinted .open-raw:hover{opacity:.78}.viewer-bar.is-tinted .divider{background:currentColor;opacity:.3}.asset-frame{flex:1 1;width:100%;border:none;background:#ffffff}.modal-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:1rem;background:rgba(4,10,20,.6)}.modal{max-width:30rem;width:100%;padding:1.25rem 1.4rem;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md)}.modal h3{margin:0 0 .6rem}.modal p{margin:0 0 .75rem}@media print{.viewer-bar{display:none}.viewer{height:auto}.asset-frame{height:100vh}}@media (max-width:560px){.asset{align-items:flex-start}.asset-actions{width:100%}.brand .tagline,.viewer-sub{display:none}}