:root{--bg:#070b11;--bg-elevated:#0d131c;--card:#111823;--border:#1c2634;--border-strong:#2b3849;--text:#e8eef6;--text-soft:#a6b3c4;--muted:#6f7d8f;--accent:#38a8ff;--accent-soft:rgba(56, 168, 255, 0.13);--accent-ring:rgba(56, 168, 255, 0.30);--btn:#1d63c9;--btn-hover:#2a74dd;--ember:#ff7a3c;--ember-soft:rgba(255, 122, 60, 0.14);--error:#ff6b6b;--error-soft:rgba(255, 107, 107, 0.13);--ok:#2ed3a7;--ok-soft:rgba(46, 211, 167, 0.13);--warn:#f5a524;--header-bg:#0d131c;--overlay-strong:rgba(0, 0, 0, 0.62);--chip-bg:rgba(255, 255, 255, 0.92);--chip-text:#0d131c;--hero-overlay:radial-gradient(ellipse 92% 88% at 50% 45%, rgba(7,11,17,0) 0%, rgba(7,11,17,0.45) 60%, var(--bg) 100%),linear-gradient(rgba(7,11,17,0.50), rgba(7,11,17,0.50));--app-overlay:linear-gradient(180deg, rgba(7,11,17,0.80) 0%, rgba(7,11,17,0.94) 38%, var(--bg) 70%);--shadow-sm:0 1px 2px rgba(0, 0, 0, 0.30);--shadow-md:0 4px 14px rgba(0, 0, 0, 0.34);--shadow-lg:0 18px 44px rgba(0, 0, 0, 0.46);--radius:12px;--radius-sm:8px;--radius-lg:16px}@media (prefers-color-scheme:light){:root:not([data-theme=dark]):not([data-theme=light]){--bg:#eef1f5;--bg-elevated:#ffffff;--card:#ffffff;--border:#dde3ea;--border-strong:#c3ccd9;--text:#16202c;--text-soft:#4a5769;--muted:#78859a;--accent:#0c7bc4;--accent-soft:#e4f2fb;--accent-ring:rgba(12, 123, 196, 0.22);--btn:#0c7bc4;--btn-hover:#0a68a6;--ember:#d2601f;--ember-soft:#fdeee5;--error:#d32f2f;--error-soft:#fdecec;--ok:#0f8a63;--ok-soft:#e6f6f0;--warn:#c2740a;--header-bg:#ffffff;--overlay-strong:rgba(15, 23, 42, 0.6);--chip-bg:rgba(255, 255, 255, 0.94);--chip-text:#16202c;--hero-overlay:radial-gradient(ellipse 92% 88% at 50% 45%, rgba(238,241,245,0) 0%, rgba(238,241,245,0.40) 60%, var(--bg) 100%);--app-overlay:linear-gradient(180deg, rgba(238,241,245,0.96) 0%, rgba(238,241,245,0.99) 26%, var(--bg) 50%);--shadow-sm:0 1px 2px rgba(22, 32, 44, 0.06);--shadow-md:0 4px 12px rgba(22, 32, 44, 0.08);--shadow-lg:0 12px 32px rgba(22, 32, 44, 0.12)}}:root[data-theme=light]{--bg:#eef1f5;--bg-elevated:#ffffff;--card:#ffffff;--border:#dde3ea;--border-strong:#c3ccd9;--text:#16202c;--text-soft:#4a5769;--muted:#78859a;--accent:#0c7bc4;--accent-soft:#e4f2fb;--accent-ring:rgba(12, 123, 196, 0.22);--btn:#0c7bc4;--btn-hover:#0a68a6;--ember:#d2601f;--ember-soft:#fdeee5;--error:#d32f2f;--error-soft:#fdecec;--ok:#0f8a63;--ok-soft:#e6f6f0;--warn:#c2740a;--header-bg:#ffffff;--overlay-strong:rgba(15, 23, 42, 0.6);--chip-bg:rgba(255, 255, 255, 0.94);--chip-text:#16202c;--hero-overlay:radial-gradient(ellipse 92% 88% at 50% 45%, rgba(238,241,245,0) 0%, rgba(238,241,245,0.40) 60%, var(--bg) 100%);--app-overlay:linear-gradient(180deg, rgba(238,241,245,0.96) 0%, rgba(238,241,245,0.99) 26%, var(--bg) 50%);--shadow-sm:0 1px 2px rgba(22, 32, 44, 0.06);--shadow-md:0 4px 12px rgba(22, 32, 44, 0.08);--shadow-lg:0 12px 32px rgba(22, 32, 44, 0.12)}:root[data-theme=dark]{--bg:#070b11;--bg-elevated:#0d131c;--card:#111823;--border:#1c2634;--border-strong:#2b3849;--text:#e8eef6;--text-soft:#a6b3c4;--muted:#6f7d8f;--accent:#38a8ff;--accent-soft:rgba(56, 168, 255, 0.13);--accent-ring:rgba(56, 168, 255, 0.30);--btn:#1d63c9;--btn-hover:#2a74dd;--ember:#ff7a3c;--ember-soft:rgba(255, 122, 60, 0.14);--error:#ff6b6b;--error-soft:rgba(255, 107, 107, 0.13);--ok:#2ed3a7;--ok-soft:rgba(46, 211, 167, 0.13);--warn:#f5a524;--header-bg:#0d131c;--overlay-strong:rgba(0, 0, 0, 0.62);--chip-bg:rgba(255, 255, 255, 0.92);--chip-text:#0d131c;--hero-overlay:radial-gradient(ellipse 92% 88% at 50% 45%, rgba(7,11,17,0) 0%, rgba(7,11,17,0.45) 60%, var(--bg) 100%),linear-gradient(rgba(7,11,17,0.50), rgba(7,11,17,0.50));--app-overlay:linear-gradient(180deg, rgba(7,11,17,0.80) 0%, rgba(7,11,17,0.94) 38%, var(--bg) 70%);--shadow-sm:0 1px 2px rgba(0, 0, 0, 0.30);--shadow-md:0 4px 14px rgba(0, 0, 0, 0.34);--shadow-lg:0 18px 44px rgba(0, 0, 0, 0.46)}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;scroll-behavior:smooth;font-size:115.25%}body{margin:0;font-family:Inter,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;letter-spacing:-.01em}header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:.85rem 1.5rem;background:var(--header-bg);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:.6rem}.brand img{width:30px;height:30px}header h1{font-size:1.05rem;font-weight:650;margin:0;letter-spacing:-.02em}.header-right{display:flex;align-items:center;gap:.9rem}#userbar{display:flex;align-items:center;gap:.9rem;font-size:.9rem}.theme-toggle{flex:none;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;padding:0;font-size:1.05rem;line-height:1;color:var(--text-soft);background:0 0;border:1px solid var(--border);border-radius:999px;box-shadow:none;cursor:pointer;transition:color .15s,border-color .15s,background .15s}.theme-toggle:hover{color:var(--text);border-color:var(--border-strong);background:var(--bg)}.theme-toggle:focus-visible{outline:2px solid var(--accent-ring);outline-offset:2px}.user-chip{display:flex;align-items:center;gap:.5rem;padding:.25rem .7rem .25rem .3rem;background:var(--accent-soft);border:1px solid transparent;border-radius:999px;cursor:pointer;box-shadow:none}.user-chip:hover{background:var(--accent-soft);border-color:var(--accent)}.user-chip #username-label{font-weight:600;color:var(--accent);font-size:.82rem}.avatar-sm{width:26px;height:26px;border-radius:50%;object-fit:cover;display:block}.back-link{display:inline-block;margin-bottom:.25rem;font-size:.9rem}.profile-avatar-row{display:flex;align-items:center;gap:1.25rem;margin-bottom:.5rem}.avatar-lg{width:84px;height:84px;border-radius:50%;object-fit:cover;border:2px solid var(--border);box-shadow:var(--shadow-sm);flex:0 0 auto}.profile-avatar-actions{display:flex;flex-direction:column;gap:.5rem;align-items:flex-start}.profile-avatar-actions .muted{margin:0}button.ghost{background:0 0;color:var(--text-soft);border:1px solid var(--border-strong);box-shadow:none}button.ghost:hover{background:var(--bg);color:var(--text);box-shadow:none}form.stacked{gap:.6rem;margin-top:1rem}form.stacked label{font-size:.8rem;font-weight:600;color:var(--text-soft)}form.stacked .muted{margin:0}.ok-msg{color:var(--ok);font-size:.85rem;font-weight:600;margin:0}main{max-width:min(1400px,96vw);margin:0 auto;padding:1.75rem 1.5rem 4rem;display:flex;flex-direction:column;gap:1.25rem}.narrow-content{max-width:640px}.card>form.inline,.card>form.stacked{max-width:640px}#profile-view{max-width:min(900px,96vw)}.card>h2{margin:0 0 1.15rem;padding-bottom:.6rem;border-bottom:1px solid var(--border);color:var(--text-soft)}.card>.card-head,.card>.gallery-head{align-items:baseline;margin:0 0 1.15rem;padding-bottom:.6rem;border-bottom:1px solid var(--border)}.card>.card-head>h2,.card>.gallery-head>h2{margin:0;color:var(--text-soft)}.tab-panel{gap:3.5rem}#profile-view>.back-link{align-self:flex-start}#admin-view>.tabnav,#app-view>.tabnav,#profile-view>.tabnav{background:var(--bg);border:0;border-bottom:1px solid var(--border);border-radius:0;box-shadow:none;padding:.35rem 0 0;gap:1.75rem;margin-bottom:1.6rem}#admin-view>.tabnav>.tabnav-btn,#app-view>.tabnav>.tabnav-btn,#profile-view>.tabnav>.tabnav-btn{flex:0 0 auto;padding:.55rem .15rem;border-radius:0;border-bottom:2px solid transparent;margin-bottom:-1px;color:var(--muted)}#admin-view>.tabnav>.tabnav-btn:hover,#app-view>.tabnav>.tabnav-btn:hover,#profile-view>.tabnav>.tabnav-btn:hover{background:0 0;color:var(--text)}#admin-view>.tabnav>.tabnav-btn.active,#app-view>.tabnav>.tabnav-btn.active,#profile-view>.tabnav>.tabnav-btn.active{background:0 0;color:var(--text);border-bottom-color:var(--accent)}.setting-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,20rem);gap:.8rem 2.5rem;align-items:start;padding:0 0 1.4rem;margin:0}.setting-row+.setting-row{padding-top:1.4rem;border-top:1px solid var(--border)}.setting-row:last-child{padding-bottom:0}.setting-label{font-size:.93rem;font-weight:600;color:var(--text)}.setting-hint{margin:.3rem 0 0;max-width:46rem;font-size:.82rem;color:var(--muted);line-height:1.5}.setting-hint a{color:var(--accent)}.setting-control{display:flex;flex-direction:column;gap:.55rem;min-width:0}.setting-control input,.setting-control select,.setting-control textarea{width:100%}.setting-control form{display:flex;flex-direction:column;gap:.55rem;margin:0}.setting-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.15rem}.setting-actions button{flex:0 0 auto}#admin-view .setting-row{grid-template-columns:minmax(0,1fr) minmax(280px,30rem)}.avatar-control{flex-direction:row;align-items:center;gap:.9rem}.avatar-control .profile-avatar-actions{display:flex;flex-direction:column;gap:.45rem}.avatar-control .avatar-lg{flex:0 0 auto}@media (max-width:820px){.setting-row{grid-template-columns:1fr;gap:.7rem}}.card{scroll-margin-top:120px}.card h2{margin:0 0 1rem;font-size:.78rem;font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}#auth-view{max-width:none;width:100%;padding:0;min-height:calc(100vh - 60px);align-items:center;justify-content:center;background:var(--hero-overlay),url('/assets/hero.png') no-repeat center center/cover}.auth-card{max-width:380px;width:100%;padding:2rem;background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:var(--radius-lg)}#app-view{position:relative;isolation:isolate}#app-view::before{content:'';position:fixed;inset:60px 0 0 0;z-index:-1;background:var(--app-overlay),url('/assets/appbg.png') no-repeat center top/cover;background-attachment:scroll;pointer-events:none}.banner{position:relative;padding:0;margin-bottom:.35rem}.banner-content{position:relative;z-index:1}.banner h2{margin:0 0 .25rem;font-size:1.5rem;font-weight:700;letter-spacing:-.02em;color:var(--text);text-transform:none}.banner p{margin:0;font-size:.92rem;color:var(--muted)}.auth-brand{text-align:center;margin-bottom:1.5rem}.auth-brand img{width:52px;height:52px;border-radius:13px;box-shadow:var(--shadow-md)}.auth-brand img.wordmark{width:180px;height:auto;border-radius:0;box-shadow:none;margin-bottom:.4rem}.auth-brand h2{margin:.7rem 0 .2rem;font-size:1.3rem;font-weight:700;color:var(--text);text-transform:none;letter-spacing:-.02em}.auth-brand p{margin:0;color:var(--muted);font-size:.88rem}.tabs{display:flex;gap:.3rem;margin-bottom:1.25rem;background:var(--bg);padding:4px;border-radius:var(--radius-sm);border:1px solid var(--border)}.tab{flex:1;background:0 0;border:none;color:var(--text-soft);padding:.5rem;border-radius:7px;cursor:pointer;font-size:.88rem;font-weight:550;transition:all .15s}.tab.active{background:var(--card);color:var(--text);box-shadow:var(--shadow-sm)}form{display:flex;flex-direction:column;gap:.7rem}form.inline{flex-direction:row}input,select,textarea{background:var(--bg-elevated);border:1px solid var(--border-strong);color:var(--text);padding:.62rem .8rem;border-radius:var(--radius-sm);font-size:.92rem;font-family:inherit;flex:1;transition:border-color .15s,box-shadow .15s}textarea{resize:vertical;line-height:1.5}input::placeholder,textarea::placeholder{color:var(--muted)}input:focus,select:focus,textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}button{background:var(--btn);color:#fff;border:none;padding:.62rem 1.1rem;border-radius:var(--radius-sm);cursor:pointer;font-size:.92rem;font-weight:600;font-family:inherit;transition:background .15s,transform 50ms}button:hover{background:var(--btn-hover)}button:active{transform:translateY(1px)}a,a:link,a:visited{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.link{background:0 0;border:none;color:var(--accent);cursor:pointer;padding:0;font-weight:600;text-decoration:none;box-shadow:none}.link:hover{background:0 0;text-decoration:underline;box-shadow:none}.muted{color:var(--muted);font-size:.82rem}.error{color:var(--error);font-size:.84rem;min-height:1rem;margin:0;font-weight:500}.field-hint{color:var(--muted);font-size:.78rem;margin:-.2rem 0 .1rem;line-height:1.35}.hidden{display:none!important}.card-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.card-head h2{margin:0}.quota-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.6rem}.quota-head strong{font-size:.95rem;font-weight:650}.quota-pending{margin:.7rem 0 0;font-size:.82rem;color:var(--text-soft);background:var(--accent-soft);border:1px solid var(--accent-ring);border-radius:var(--radius-sm);padding:.5rem .7rem}.quota-bar{height:9px;background:var(--bg);border-radius:999px;overflow:hidden;border:1px solid var(--border)}.quota-bar>div{height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,var(--accent),#60a5fa);transition:width .4s ease}.quota-bar>div.warn{background:linear-gradient(90deg,var(--warn),#fbbf24)}.quota-bar>div.full{background:linear-gradient(90deg,var(--error),#f87171)}.dropzone{border:2px dashed var(--border-strong);border-radius:var(--radius);padding:2.5rem 2rem;text-align:center;color:var(--text-soft);background:var(--bg);transition:border-color .2s,background .2s,transform .1s;cursor:pointer}.dropzone:hover{border-color:var(--accent);background:var(--accent-soft)}.dropzone.drag{border-color:var(--accent);background:var(--accent-soft);transform:scale(1.01)}.dropzone .dz-icon{font-size:2rem;margin-bottom:.4rem;opacity:.85}.dropzone p{margin:.2rem 0;font-weight:500}.dropzone.uploading{opacity:.55;pointer-events:none}.upload-progress{margin-top:.85rem;display:flex;flex-direction:column;gap:.4rem}.upload-progress .up-row{display:flex;align-items:center;gap:.55rem}.up-label{font-weight:600;font-size:.9rem;color:var(--text)}.up-file-label{font-size:.78rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.up-bar{height:8px;border-radius:999px;background:var(--border);overflow:hidden}.up-bar-file{height:5px;opacity:.9}.up-fill{height:100%;width:0%;border-radius:999px;background:var(--accent);transition:width .15s ease-out}.up-spinner{width:14px;height:14px;flex:none;border:2px solid var(--accent-ring);border-top-color:var(--accent);border-radius:50%;animation:up-spin .7s linear infinite}@keyframes up-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.up-spinner{animation:none}.up-fill{transition:none}}.library{display:flex;gap:1.25rem;align-items:flex-start}.folders{flex:0 0 185px;display:flex;flex-direction:column;gap:.5rem}.library-main{flex:1;min-width:0}.folder-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.folder-list li{display:flex;align-items:center;gap:6px;padding:.5rem .65rem;border-radius:var(--radius-sm);cursor:pointer;font-size:.88rem;font-weight:500;color:var(--text-soft);transition:background .12s,color .12s}.folder-list li:hover{background:var(--bg);color:var(--text)}.folder-list li.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.folder-list li .fname{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-list li.folder-node{padding-left:calc(.5rem + var(--depth,0) * .95rem)}.folder-list li .ftwisty{flex:0 0 auto;width:1.35rem;height:1.35rem;display:inline-flex;align-items:center;justify-content:center;background:0 0;border:none;box-shadow:none;padding:0;margin:0;color:var(--muted);font-size:.92rem;line-height:1;cursor:pointer;border-radius:var(--radius-sm);transition:background .12s,color .12s}.folder-list li button.ftwisty:hover{color:var(--text);background:var(--border);box-shadow:none}.folder-list li.folder-node.dragging{opacity:.45}.folder-list li.folder-section-head{margin-top:.5rem;padding:.4rem .6rem .2rem;font-size:.68rem;font-weight:650;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);cursor:default;background:0 0}.folder-list li.folder-section-head:hover{background:0 0;color:var(--muted)}.folder-list li.folder-section-head .fname{display:inline-flex;align-items:center;gap:.4rem;flex:0 0 auto}.folder-list li.shared-album-node .shared-album-by{flex:0 0 auto;margin:0 .35rem;font-size:.72rem;color:var(--muted)}.folder-list li.drop-ok{outline:2px solid var(--accent);outline-offset:-2px;background:var(--accent-soft)}.folder-list li.drop-bad{outline:2px dashed #dc2626;outline-offset:-2px;cursor:no-drop}.folder-list li .count{font-size:.72rem;font-weight:600;background:var(--bg);color:var(--muted);padding:1px 7px;border-radius:999px;border:1px solid var(--border)}.folder-list li.active .count{background:var(--card);color:var(--accent);border-color:transparent}.folder-list li .fbtn{background:0 0;border:none;box-shadow:none;color:var(--muted);padding:0 2px;font-size:.8rem;opacity:0;cursor:pointer;width:auto}.folder-list li:hover .fbtn{opacity:1}.folder-list li .fbtn:hover{color:var(--text);background:0 0;box-shadow:none}#folder-form{margin-top:.4rem;gap:.4rem}#folder-form input{font-size:.85rem;padding:.45rem .6rem}#folder-form button{width:auto;padding:.45rem .75rem;flex:0 0 auto}.friends-panel{margin-top:.9rem;padding-top:.7rem;border-top:1px solid var(--border)}.friends-head{display:flex;align-items:center;gap:.4rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;margin-bottom:.45rem}.friends-badge{background:var(--accent);color:#fff;font-size:.64rem;font-weight:700;min-width:16px;text-align:center;padding:0 5px;border-radius:999px;line-height:16px}#friend-add-form{gap:.4rem}#friend-add-form input{font-size:.82rem;padding:.42rem .6rem}#friend-add-form button{width:auto;padding:.42rem .7rem;flex:0 0 auto}.friend-requests{display:flex;flex-direction:column;gap:3px;margin-top:.5rem}.friend-req{display:flex;align-items:center;justify-content:space-between;gap:.3rem;background:var(--accent-soft);border-radius:var(--radius-sm);padding:.3rem .4rem .3rem .5rem;font-size:.82rem}.friend-req .fr-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fr-actions{display:flex;gap:2px;flex:0 0 auto}.fr-accept,.fr-decline{border:none;background:0 0;box-shadow:none;cursor:pointer;width:22px;height:22px;padding:0;border-radius:5px;font-size:.8rem}.fr-accept{color:var(--ok)}.fr-accept:hover{background:rgba(52,211,153,.16);box-shadow:none}.fr-decline{color:var(--error)}.fr-decline:hover{background:var(--error-soft);box-shadow:none}.friend-list{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-direction:column;gap:2px}.friend-row{display:flex;align-items:center;gap:.35rem;padding:.3rem .4rem .3rem .5rem;border-radius:var(--radius-sm);font-size:.85rem}.friend-row:hover{background:var(--bg)}.friend-row .fr-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.friend-row.pending .fr-name{color:var(--muted)}.fr-pending{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;flex:0 0 auto}.fr-cancel,.fr-remove{border:none;background:0 0;box-shadow:none;color:var(--muted);cursor:pointer;opacity:0;width:auto;padding:0 2px;font-size:.8rem;flex:0 0 auto}.friend-row:hover .fr-cancel,.friend-row:hover .fr-remove{opacity:1}.fr-cancel:hover,.fr-remove:hover{color:var(--error);background:0 0;box-shadow:none}.friend-empty{font-size:.78rem;padding:.3rem .1rem;list-style:none}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:.85rem}.thumb{position:relative;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border);background:var(--bg);box-shadow:var(--shadow-sm);transition:transform .15s,box-shadow .15s}.thumb{cursor:pointer;user-select:none}.thumb:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.gallery.masonry{display:block;column-width:160px;column-gap:.85rem}.gallery.masonry .thumb{aspect-ratio:var(--ar,1);width:100%;margin:0 0 .85rem;break-inside:avoid}.gallery.masonry .thumb img{object-fit:cover}.gallery.masonry .gallery-sentinel{column-span:all}.gallery-sentinel{grid-column:1/-1;height:1px;pointer-events:none}.thumb .check{position:absolute;top:6px;left:6px;width:20px;height:20px;border-radius:50%;background:var(--overlay-strong);color:transparent;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;border:1.5px solid rgba(255,255,255,.85);opacity:0;cursor:pointer;transition:opacity .12s,background .12s,transform .1s}.thumb:hover .check{opacity:1}.thumb .check:hover{background:var(--accent);border-color:var(--accent);transform:scale(1.1)}.thumb.selected{outline:3px solid var(--accent);outline-offset:-3px}.thumb.selected .check{opacity:1;background:var(--accent);color:#fff;border-color:var(--accent)}.thumb.selected img{filter:brightness(.92)}.selection-bar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem .4rem .75rem;margin-bottom:.25rem}.selection-bar #sel-count{font-weight:600;font-size:.88rem;color:var(--accent)}.sel-tools{display:flex;gap:.4rem}.sel-tools button{padding:.4rem .8rem;font-size:.82rem}.sel-tools button.ghost{background:0 0;color:var(--text-soft);border:1px solid var(--border-strong);box-shadow:none}.sel-tools button.ghost:hover{background:var(--bg);color:var(--text);box-shadow:none}.gallery-hint{margin:.75rem 0 0;font-size:.78rem}.menu{position:fixed;z-index:1000;min-width:168px;background:var(--card);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);padding:5px;display:flex;flex-direction:column;gap:1px}.menu button{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;text-align:left;background:0 0;color:var(--text);border:none;box-shadow:none;padding:.5rem .7rem;border-radius:7px;font-size:.86rem;font-weight:500}.menu button:hover{background:var(--accent-soft);color:var(--accent)}.menu button.danger{color:var(--error)}.menu button.danger:hover{background:var(--error-soft);color:var(--error)}.menu button:disabled{color:var(--muted);cursor:default}.menu button:disabled:hover{background:0 0}.menu .chev{color:var(--muted);font-size:.7rem}.menu .sep{height:1px;background:var(--border);margin:4px 6px}.security-banner{position:relative;z-index:1;--sev-rgb:220,38,38;display:flex;align-items:center;gap:.7rem;padding:.7rem 1.5rem;background:rgba(var(--sev-rgb),.12);border-bottom:1px solid rgba(var(--sev-rgb),.5);color:var(--text)}.security-banner.sev-info{--sev-rgb:37,99,235}.security-banner.sev-attention{--sev-rgb:217,119,6}.security-banner.sev-alert{--sev-rgb:220,38,38}.security-banner-icon{font-size:1.15rem;flex:none;line-height:1}.security-banner p{flex:1;margin:0;font-size:.85rem;line-height:1.4;color:var(--text-soft)}.security-banner strong{color:var(--text)}#security-banner-text{white-space:pre-wrap;overflow-wrap:anywhere}#security-banner-text strong{color:inherit}.security-banner-close{flex:none;background:0 0;border:none;box-shadow:none;color:var(--muted);font-size:1rem;line-height:1;padding:.15rem .35rem;margin:-.15rem -.35rem 0 0;cursor:pointer;border-radius:var(--radius-sm);align-self:flex-start}.security-banner-close:hover{color:var(--text);background:rgba(var(--sev-rgb),.18);box-shadow:none}@media (max-width:560px){.security-banner{padding:.6rem 1rem;align-items:flex-start}}.cookie-banner{position:fixed;left:50%;bottom:1.25rem;transform:translateX(-50%);z-index:1500;width:min(680px,calc(100vw - 2rem));display:flex;align-items:center;gap:1rem;padding:.85rem 1.1rem;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-lg)}.cookie-text{display:flex;align-items:center;gap:.7rem;flex:1;min-width:0}.cookie-emoji{font-size:1.5rem;flex:none}.cookie-text p{margin:0;font-size:.85rem;line-height:1.45;color:var(--text-soft)}.cookie-text a{color:var(--accent)}.cookie-btn{flex:none;background:var(--btn);color:#fff;border:none;padding:.55rem 1.05rem;border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;cursor:pointer}.cookie-btn:hover{background:var(--btn-hover)}@media (max-width:560px){.cookie-banner{flex-direction:column;align-items:stretch;text-align:left}.cookie-btn{width:100%}}.toast{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%);z-index:3500;background:var(--text);color:var(--bg);padding:.6rem 1.1rem;border-radius:999px;font-size:.85rem;font-weight:600;box-shadow:var(--shadow-lg)}.admin-toast{position:fixed;top:1.25rem;left:50%;transform:translateX(-50%);z-index:3600;display:inline-flex;align-items:center;gap:.4rem;background:var(--btn);color:#fff;border:none;padding:.6rem 1.1rem;border-radius:999px;font-size:.85rem;font-weight:600;cursor:pointer;box-shadow:var(--shadow-lg);animation:admin-toast-in .25s ease-out}.admin-toast:hover{background:var(--btn-hover)}@keyframes admin-toast-in{from{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%,0)}}@media (prefers-reduced-motion:reduce){.admin-toast{animation:none}}.empty-state{text-align:center;padding:1.5rem 1rem .5rem;color:var(--muted)}.empty-state img{width:150px;height:150px;opacity:.95;margin-bottom:.5rem}.empty-state p{margin:0;font-size:.9rem}.new-key{position:relative;background:var(--ok-soft);border:1px solid var(--ok);color:var(--ok);padding:.75rem .85rem;border-radius:var(--radius-sm);margin:.75rem 0 0}.new-key-title{margin:0 1.5rem .5rem 0;font-size:.8rem;font-weight:600}.new-key-row{display:flex;align-items:center;gap:.5rem}.new-key-row code{flex:1 1 auto;min-width:0;font-family:'SF Mono',ui-monospace,'Cascadia Code',Menlo,monospace;font-size:.78rem;line-height:1.5;word-break:break-all}.new-key-copy{flex:0 0 auto;background:var(--ok);color:#fff;border:none;padding:.35rem .7rem;border-radius:var(--radius-sm);font-size:.78rem;cursor:pointer}.new-key-copy:hover{filter:brightness(1.05)}.new-key-copy.copied{opacity:.85}.new-key-dismiss{position:absolute;top:.35rem;right:.4rem;background:0 0;border:none;color:var(--ok);font-size:1.1rem;line-height:1;padding:.15rem .35rem;cursor:pointer;opacity:.7}.new-key-dismiss:hover{opacity:1}.key-list{list-style:none;padding:0;margin:.85rem 0 0;display:flex;flex-direction:column;gap:.5rem}.key-list li{display:flex;align-items:center;justify-content:space-between;padding:.6rem .85rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.86rem}.key-list li.muted{background:0 0;border:0;padding:.15rem 0}.key-list .klabel{font-weight:550}.key-list code{font-family:'SF Mono',ui-monospace,'Cascadia Code',Menlo,monospace;color:var(--muted);font-size:.78rem;margin-left:.4rem;background:var(--card);padding:1px 6px;border-radius:5px;border:1px solid var(--border)}.key-list button{background:var(--error-soft);color:var(--error);padding:.35rem .7rem;font-size:.8rem;box-shadow:none}.key-list button:hover{background:#fee2e2;box-shadow:none}@media (max-width:620px){.library{flex-direction:column}.folders{flex:1;width:100%}}.breadcrumbs{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.6rem}.breadcrumbs .crumb-path{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;min-width:0}.breadcrumbs .crumb{background:0 0;border:none;box-shadow:none;padding:2px 4px;color:var(--accent);font-size:.85rem;font-weight:500;cursor:pointer;width:auto}.breadcrumbs .crumb:hover{text-decoration:underline;background:0 0;box-shadow:none}.breadcrumbs .crumb-current{color:var(--text);font-weight:600;cursor:default}.breadcrumbs .crumb-current:hover{text-decoration:none}.breadcrumbs .crumb-sep{color:var(--muted);font-size:.8rem}.breadcrumbs .crumb-toggle{display:inline-flex;align-items:center;gap:.5rem;font-size:.78rem;font-weight:500;color:var(--text-soft);white-space:nowrap;cursor:pointer;user-select:none;padding:.25rem .6rem .25rem .5rem;border:1px solid var(--border);border-radius:999px;background:var(--card);transition:border-color .14s,color .14s,background .14s}.breadcrumbs .crumb-toggle:hover{border-color:var(--accent);color:var(--text)}.breadcrumbs .crumb-toggle input{appearance:none;-webkit-appearance:none;box-sizing:border-box;position:relative;width:32px;height:18px;margin:0;flex:0 0 auto;background:var(--border);border-radius:999px;cursor:pointer;transition:background .16s}.breadcrumbs .crumb-toggle input::after{content:'';position:absolute;top:50%;left:2px;width:14px;height:14px;background:#fff;border-radius:50%;transform:translateY(-50%);transition:transform .16s;box-shadow:0 1px 2px rgba(0,0,0,.3)}.breadcrumbs .crumb-toggle input:checked{background:var(--accent)}.breadcrumbs .crumb-toggle input:checked::after{transform:translate(14px,-50%)}.breadcrumbs .crumb-toggle:has(input:checked){border-color:var(--accent);color:var(--accent)}.thumb.dragging{opacity:.45}.admin-link{font-weight:600}.table-scroll{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:.86rem}.admin-table th{text-align:left;font-size:.72rem;font-weight:650;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:.5rem .6rem;border-bottom:1px solid var(--border);white-space:nowrap}.admin-table td.num,.admin-table th.num{text-align:right}.admin-table th.actions-col{text-align:right}.admin-table td{padding:.6rem .6rem;border-bottom:1px solid var(--border);vertical-align:middle}.admin-table tr:last-child td{border-bottom:none}.admin-table tr:hover td{background:var(--bg)}.admin-table .u-avatar{width:30px;height:30px;border-radius:50%;object-fit:cover;display:block}.admin-table .u-name{font-weight:600}.admin-table .u-sub{color:var(--muted);font-size:.78rem}.admin-table .u-email{color:var(--text-soft)}.badge{display:inline-block;font-size:.7rem;font-weight:650;padding:2px 9px;border-radius:999px;background:var(--bg);color:var(--muted);border:1px solid var(--border)}.badge-admin{background:var(--accent-soft);color:var(--accent);border-color:transparent}.mini-quota{min-width:120px}.mini-bar{height:6px;background:var(--bg);border:1px solid var(--border);border-radius:999px;overflow:hidden}.mini-fill{height:100%;background:linear-gradient(90deg,var(--accent),#60a5fa)}.mini-fill.warn{background:linear-gradient(90deg,var(--warn),#fbbf24)}.mini-fill.full{background:linear-gradient(90deg,var(--error),#f87171)}.mini-text{font-size:.72rem;color:var(--muted);margin-top:2px;white-space:nowrap}.row-actions{display:flex;gap:4px;justify-content:flex-end;flex-wrap:nowrap;align-items:center}.row-actions button{display:inline-flex;align-items:center;gap:.35rem;padding:.34rem .72rem;font-size:.78rem;font-weight:600;background:var(--bg);background:color-mix(in srgb,var(--text-soft) 8%,transparent);color:var(--text-soft);border:1px solid transparent;border-radius:999px;box-shadow:none;white-space:nowrap;transition:background .14s,color .14s,border-color .14s}.row-actions button:hover{background:var(--accent-soft);color:var(--accent);border-color:transparent}.row-actions button.danger-btn{color:var(--error);background:var(--error-soft);background:color-mix(in srgb,var(--error) 9%,transparent)}.row-actions button.danger-btn:hover{background:var(--error-soft);color:var(--error);border-color:transparent}.row-actions button:disabled{opacity:.4;cursor:default}.row-actions button:disabled:hover{background:color-mix(in srgb,var(--text-soft) 8%,transparent);color:var(--text-soft);border-color:transparent}.row-actions button .tic{width:15px;height:15px}.row-more{position:relative}.row-more-btn{padding:.3rem .55rem;font-size:.95rem;line-height:1}.row-more-menu{position:fixed;z-index:400;min-width:168px;display:flex;flex-direction:column;gap:2px;padding:5px;background:var(--card);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-lg)}.row-more-menu[hidden]{display:none}.row-more-menu button,.row-more-menu button.danger-btn{width:100%;justify-content:flex-start;text-align:left;border-radius:var(--radius-sm);border-color:transparent;background:0 0}.row-more-menu button:hover{background:var(--accent-soft);color:var(--accent);border-color:transparent}.row-more-menu button.danger-btn:hover{background:var(--error-soft);color:var(--error);border-color:transparent}#admin-images-close{display:inline-block;margin-bottom:1rem}.admin-thumb{position:relative}.admin-thumb .thumb-del{position:absolute;top:5px;right:5px;width:24px;height:24px;padding:0;border-radius:6px;font-size:.8rem;line-height:1;background:rgba(220,38,38,.92);color:#fff;border:none;opacity:0;transition:opacity .15s;box-shadow:none}.admin-thumb:hover .thumb-del{opacity:1}.admin-thumb .thumb-owner{position:absolute;inset:auto 0 0 0;background:linear-gradient(180deg,rgba(0,0,0,0) 0,var(--overlay-strong) 100%);color:#fff;font-size:.68rem;font-weight:600;padding:10px 6px 4px;opacity:0;transition:opacity .15s;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-thumb:hover .thumb-owner{opacity:1}.tabnav{display:flex;position:sticky;top:60px;z-index:10}.tabnav-btn{flex:1;background:0 0;color:var(--text-soft);border:none;box-shadow:none;padding:.6rem 1rem;border-radius:var(--radius-sm);font-size:.9rem;font-weight:600}.tabnav-btn:hover{background:var(--bg);color:var(--text);box-shadow:none}.tabnav-btn.active{background:var(--accent-soft);color:var(--accent)}.tabnav-btn{display:flex;flex-flow:row wrap;align-items:center;justify-content:center;gap:2px .35rem;line-height:1.2}.tabnav-sub{flex-basis:100%;text-align:center;font-size:.66rem;font-weight:600;color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:0 7px}.tabnav-btn.active .tabnav-sub{background:var(--card)}@media (max-width:640px){.tabnav{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scroll-snap-type:x proximity}.tabnav-btn{flex:0 0 auto;white-space:nowrap;padding:.5rem .75rem;font-size:.85rem;scroll-snap-align:start}.tabnav .admin-back-tab{margin-left:.3rem;flex:0 0 auto;white-space:nowrap}.tabnav::-webkit-scrollbar{height:4px}.tabnav::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px}}.tab-panel{display:flex;flex-direction:column}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:0;border-block:1px solid var(--border)}.stat-card{padding:1.15rem 1.4rem;border-left:1px solid var(--border);text-align:center}.stat-card:first-child{border-left:0}.stat-num{font-size:1.75rem;font-weight:700;letter-spacing:-.02em}.stat-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-top:.2rem}.type-breakdown{display:flex;flex-direction:column;gap:.6rem}.type-row{display:grid;grid-template-columns:60px 1fr auto;align-items:center;gap:.75rem;font-size:.84rem}.type-name{font-weight:600}.type-bar{height:8px;background:var(--bg);border:1px solid var(--border);border-radius:999px;overflow:hidden}.type-fill{height:100%;background:linear-gradient(90deg,var(--accent),#60a5fa)}.type-count{color:var(--muted);font-size:.78rem;white-space:nowrap}.recent-strip{display:flex;gap:.6rem;flex-wrap:wrap}.recent-thumb{width:72px;height:72px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border);cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .15s}.recent-thumb:hover{transform:translateY(-2px)}.recent-thumb img{width:100%;height:100%;object-fit:cover;display:block}.gallery-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.gallery-head h2{margin:0}.gallery-controls{display:flex;gap:.5rem}.gallery-controls input[type=search]{width:180px;padding:.45rem .7rem;font-size:.85rem}.gallery-controls select{padding:.45rem .6rem;font-size:.85rem}.lightbox{position:fixed;inset:0;z-index:2000;background:rgba(0,0,0,.82);display:flex;align-items:center;justify-content:center;padding:2rem;backdrop-filter:blur(4px)}.lightbox-close{position:fixed;top:1rem;right:1.25rem;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;border:none;font-size:1.1rem;cursor:pointer;box-shadow:none;display:inline-flex;align-items:center;justify-content:center;line-height:1;padding:0}.lightbox-close:hover{background:rgba(255,255,255,.22)}.lightbox-inner{display:flex;gap:1.5rem;align-items:center;max-width:min(1000px,96vw);max-height:calc(100vh - 4rem);box-sizing:border-box;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow-lg)}.lightbox-inner img{flex:0 1 auto;min-width:0;min-height:0;max-width:100%;max-height:calc(100vh - 6.5rem);border-radius:var(--radius-sm);object-fit:contain;background:var(--bg)}.lightbox-meta{flex:0 0 auto;min-width:230px;max-width:280px}.lb-name{font-weight:650;font-size:1rem;margin-bottom:.85rem;word-break:break-word}.lb-dl{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;margin:0 0 1rem;font-size:.86rem}.lb-muted{color:var(--muted);font-size:.9em}.lb-inline-btn{margin-left:.4rem;padding:.05rem .4rem;font-size:.75rem;border-radius:6px;background:var(--bg);border:1px solid var(--border);color:var(--text-soft);cursor:pointer;box-shadow:none}.lb-inline-btn:hover{color:var(--text);border-color:var(--accent)}.upload-opts{display:flex;align-items:center;gap:.5rem;margin:.6rem 0 0;font-size:.86rem;color:var(--muted)}.upload-opts select{flex:0 0 auto;font:inherit;padding:.25rem .4rem;border-radius:var(--radius-sm);background:var(--bg);color:var(--text);border:1px solid var(--border)}.thumb-expiry{position:absolute;top:6px;left:6px;display:inline-flex;align-items:center;gap:3px;padding:2px 6px;border-radius:7px;font-size:.68rem;font-weight:600;line-height:1;background:rgba(10,14,20,.72);color:#fff;backdrop-filter:blur(3px);pointer-events:none}.thumb-expiry .tic{width:12px;height:12px}.thumb-hold{position:absolute;top:6px;left:6px;display:inline-flex;align-items:center;gap:3px;padding:2px 6px;border-radius:7px;font-size:.68rem;font-weight:700;line-height:1;background:rgba(180,83,9,.92);color:#fff;backdrop-filter:blur(3px);pointer-events:none}.thumb-hold .tic{width:12px;height:12px}.thumb-hold+.thumb-expiry{top:32px}.expiry-presets{display:flex;flex-wrap:wrap;gap:.4rem;margin:.75rem 0}.expiry-preset{padding:.35rem .75rem;font-size:.85rem}.expiry-custom{border-top:1px solid var(--border);padding-top:.85rem;margin-top:.25rem}.expiry-custom label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.4rem}.expiry-custom-row{display:flex;gap:.5rem}.expiry-custom-row input{flex:1;font:inherit;padding:.4rem .5rem;border-radius:var(--radius-sm);background:var(--bg);color:var(--text);border:1px solid var(--border);color-scheme:dark}.album-share section{margin:0 0 1.25rem}.album-share section:last-child{margin-bottom:0}.album-subfolders{margin:.6rem 0 0}.album-sub-head{margin:0 0 .4rem;font-size:.8rem;font-weight:500;color:var(--text-soft)}.album-sub-list{list-style:none;margin:0;padding:.25rem;max-height:210px;overflow-y:auto;border:1px solid var(--border);border-radius:10px;background:var(--bg-elevated)}.album-sub-item{margin:0}.album-sub-item label{display:flex;align-items:center;gap:.6rem;padding:.34rem .5rem;margin-left:calc(var(--depth,0) * 1.1rem);border-radius:7px;cursor:pointer;font-size:.9rem;color:var(--text-soft);transition:background .12s,color .12s}.album-sub-item label:hover{background:var(--accent-soft);color:var(--text)}.album-sub-item:has(input:checked) label{color:var(--text)}.album-sub-item input[type=checkbox],.scope-grid input[type=checkbox]{appearance:none;-webkit-appearance:none;box-sizing:border-box;flex:0 0 auto;width:18px;height:18px;margin:0;position:relative;border:1.5px solid var(--border-strong);border-radius:5px;background:var(--card);cursor:pointer;transition:background .14s,border-color .14s}.album-sub-item input[type=checkbox]:hover,.scope-grid input[type=checkbox]:hover{border-color:var(--accent)}.album-sub-item input[type=checkbox]:checked,.scope-grid input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}.album-sub-item input[type=checkbox]:checked::after,.scope-grid input[type=checkbox]:checked::after{content:'';position:absolute;left:50%;top:50%;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:translate(-50%,-58%) rotate(45deg)}.album-sub-item input[type=checkbox]:focus-visible,.scope-grid input[type=checkbox]:focus-visible{outline:2px solid var(--accent-ring);outline-offset:1px}.album-sub-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.album-sub-count{margin-left:auto;font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums}.album-recipient{margin-bottom:.5rem}.album-row-actions{display:inline-flex;gap:.4rem;align-items:center}.album-edit-panel{margin:.4rem 0 .2rem}.album-edit-save{margin-top:.5rem;text-align:right}.dm-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.8rem;flex-wrap:wrap}.dm-folders{display:inline-flex;gap:.4rem}.dm{display:flex;flex-direction:column;min-height:min(58vh,520px)}.dm-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem;flex:0 1 auto;max-height:min(64vh,600px);overflow-y:auto}#dm-empty{margin:auto}.dm-item{border:1px solid var(--border);border-radius:10px;background:var(--bg-elevated);overflow:hidden}.dm-item.dm-unread{border-color:var(--accent)}.dm-row{display:flex;align-items:center;gap:.6rem;width:100%;text-align:left;padding:.55rem .7rem;background:0 0;border:none;box-shadow:none;cursor:pointer;color:var(--text)}.dm-row:hover{background:var(--accent-soft);box-shadow:none}.dm-dot{flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:var(--accent)}.dm-who{flex:0 0 auto;font-size:.88rem}.dm-preview{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-soft);font-size:.86rem}.dm-item.dm-unread .dm-preview{color:var(--text);font-weight:500}.dm-time{flex:0 0 auto;font-size:.76rem;color:var(--muted);white-space:nowrap}.dm-receipt{color:var(--ok)}.dm-admin-badge{display:inline-block;padding:.02rem .4rem;border-radius:999px;font-size:.66rem;font-weight:650;text-transform:uppercase;letter-spacing:.03em;background:var(--accent-soft);color:var(--accent);vertical-align:middle}.dm-body{padding:.2rem .75rem .7rem;border-top:1px solid var(--border)}.dm-full{white-space:pre-wrap;word-break:break-word;font-size:.9rem;margin:.5rem 0 .6rem}.dm-actions{display:flex;gap:.5rem;justify-content:flex-end}.dm-compose{display:flex;flex-direction:column;gap:.6rem}.dm-compose textarea{width:100%;resize:vertical;font:inherit}.dm-compose-actions{display:flex;justify-content:flex-end}.album-link-box{margin-top:.5rem}.album-link-actions{display:flex;gap:.5rem;margin-top:.5rem}.album-list{list-style:none;padding:0;margin:0 0 1rem;display:flex;flex-direction:column;gap:.4rem}.album-item{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;width:100%;text-align:left;padding:.55rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);cursor:pointer}.album-item:hover{border-color:var(--accent)}.album-item .album-name{font-weight:600}.album-grid{margin-top:.5rem;max-height:62vh;overflow-y:auto}.modal-box.modal-wide{max-width:900px}.album-grid .thumb{position:relative}.album-grid .copybtn{position:absolute;top:6px;right:6px;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;border:1px solid rgba(255,255,255,.18);background:rgba(10,14,20,.6);color:#fff;cursor:pointer;opacity:0;transition:opacity .15s,background .15s;backdrop-filter:blur(3px);box-shadow:none}.album-grid .copybtn:focus-visible,.album-grid .thumb:hover .copybtn{opacity:1}.album-grid .copybtn:hover{background:var(--accent);border-color:var(--accent)}@media (hover:none){.album-grid .copybtn{opacity:.85}}.img-ctxmenu{position:fixed;z-index:200;min-width:180px;display:none;padding:.35rem;background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg)}.img-ctxmenu.open{display:block}.img-ctxmenu button{display:block;width:100%;text-align:left;padding:.5rem .65rem;border:0;background:0 0;color:var(--text);font:inherit;font-size:.88rem;border-radius:7px;cursor:pointer;box-shadow:none}.img-ctxmenu button:hover{background:var(--accent);color:#fff}.lb-dl dt{color:var(--muted);font-weight:600}.lb-dl dd{margin:0;text-align:right}.lb-link{display:flex;gap:.4rem}.lb-link input{flex:1;min-width:0;font-size:.78rem;font-family:ui-monospace,monospace;padding:.4rem .5rem}.lb-link button{padding:.4rem .7rem;font-size:.8rem;flex:0 0 auto}.lb-share{margin-top:.85rem;border-top:1px solid var(--border);padding-top:.85rem}.lb-share>button.full{width:100%}.lb-share-list{margin-top:.6rem}.lb-share-head{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 .35rem}.lb-share-empty{font-size:.8rem;margin:.4rem 0 0}.lb-share-row{display:flex;align-items:center;justify-content:space-between;font-size:.85rem;padding:.25rem 0}.lb-share-row .lb-revoke{padding:.2rem .55rem;font-size:.75rem}.thumb .thumb-share{position:absolute;left:6px;bottom:6px;background:rgba(0,0,0,.62);color:#fff;font-size:.7rem;padding:1px 6px;border-radius:999px;max-width:calc(100% - 12px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;pointer-events:none}.thumb .thumb-new{position:absolute;right:6px;top:6px;background:var(--accent);color:#fff;font-size:.62rem;font-weight:700;letter-spacing:.04em;padding:1px 6px;border-radius:999px;pointer-events:none}.thumb.no-select{cursor:zoom-in}@media (max-width:700px){.lightbox-inner{flex-direction:column;max-width:96vw}.lightbox-inner img{flex:0 1 auto;max-width:100%;max-height:55vh}.lightbox-meta{flex:0 0 auto;max-width:none;width:100%}}.api-docs h3{font-size:.95rem;margin:1.25rem 0 .6rem;font-weight:650}.api-docs code{font-family:ui-monospace,'Cascadia Code',monospace;font-size:.82rem;background:var(--bg);padding:1px 5px;border-radius:5px;border:1px solid var(--border)}.docs-table{width:100%;border-collapse:collapse;font-size:.84rem}.docs-table td{padding:.4rem .5rem;border-bottom:1px solid var(--border);vertical-align:middle}.docs-table tr:last-child td{border-bottom:none}.docs-table code{background:0 0;border:none;padding:0}.m{display:inline-block;font-size:.66rem;font-weight:700;padding:2px 6px;border-radius:5px;min-width:38px;text-align:center}.m-get{background:rgba(52,211,153,.16);color:var(--ok)}.m-post{background:var(--accent-soft);color:var(--accent)}.m-patch{background:rgba(251,191,36,.16);color:var(--warn)}.m-del{background:var(--error-soft);color:var(--error)}.code-block{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.85rem 1rem;font-size:.8rem;font-family:ui-monospace,monospace;overflow-x:auto;line-height:1.55;white-space:pre}.admin-back-tab{flex:0 0 auto;margin-left:auto;align-self:center;padding:0 .6rem}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:2.75rem}@media (max-width:720px){.two-col{grid-template-columns:1fr}}.mini-user-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.mini-user-list li{display:flex;align-items:center;gap:.6rem;font-size:.86rem}.mini-user-list .u-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;flex:0 0 auto}.mini-user-list .mu-name{flex:1;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:.4rem}.mini-user-list .mu-val{color:var(--muted);font-size:.78rem;white-space:nowrap}.mini-user-list .badge{font-size:.62rem;padding:1px 6px}.activity-feed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.act-item{display:flex;align-items:center;gap:.6rem;padding:.5rem .25rem;border-bottom:1px solid var(--border);font-size:.88rem}.act-item:last-child{border-bottom:none}.act-dot{flex:0 0 auto;font-size:.9rem;width:1.2rem;text-align:center;opacity:.85}.act-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.act-time{color:var(--muted);font-size:.78rem;white-space:nowrap;flex:0 0 auto}.sys-dl{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1.5rem;margin:0;font-size:.88rem}.sys-dl dt{color:var(--muted);font-weight:600}.sys-dl dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.sys-types{display:flex;flex-wrap:wrap;gap:.5rem}.sys-type-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .7rem;background:var(--bg);border:1px solid var(--border);border-radius:999px;font-size:.82rem;font-weight:600}.sys-type-chip code{font-size:.76rem;color:var(--muted)}.banner-field{display:flex;flex-direction:column;gap:.35rem}.banner-field>span{font-size:.82rem;font-weight:600;color:var(--muted)}.banner-field textarea{resize:vertical;min-height:2.6rem;font:inherit;flex:none}.banner-field select{max-width:16rem}button.full{width:100%}.or-divider{display:flex;align-items:center;gap:.75rem;margin:1rem 0;color:var(--muted);font-size:.8rem}.or-divider::after,.or-divider::before{content:'';flex:1;height:1px;background:var(--border)}.passkey-login .ghost{background:0 0;border:1px solid var(--border-strong);color:var(--text)}#twofa-step{margin-top:.5rem}.forgot-link{display:block;margin:.85rem auto 0;font-size:.82rem}#recover-result{display:flex;flex-direction:column;gap:.6rem;margin-top:.4rem}#recover-result .new-key-row{flex-direction:column;align-items:stretch;gap:.5rem}#recover-password{display:block;font-size:1rem;letter-spacing:.02em;text-align:center;padding:.6rem .5rem;word-break:break-all;user-select:all}.twofa-prompt{text-align:center}.twofa-alts{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-top:.85rem;font-size:.85rem}.primary-2fa{display:block;width:100%;margin:.5rem 0 0;padding:.6rem 1rem;font-size:.95rem;font-weight:600;color:#fff;background:var(--btn);border:none;border-radius:var(--radius-sm);text-decoration:none;cursor:pointer}.primary-2fa:hover{background:var(--btn-hover)}.sec-status{margin:0 0 1rem}.export-status{margin-top:.1rem}.danger-card{border-color:rgba(255,107,107,.35)}.danger-card h2{color:var(--error)}#admin-view .danger-card>h2,#profile-view .danger-card>h2{color:var(--error);border-bottom-color:rgba(255,107,107,.35)}.setting-control .danger-btn{background:var(--error);color:#fff;border:none}.setting-control .danger-btn:hover{background:var(--error);filter:brightness(1.1)}.resolve-form input{flex:1;padding:.62rem .8rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9rem}.resolve-result{margin-top:1.1rem}.resolve-status{padding:.6rem .85rem;border-radius:var(--radius-sm);font-size:.88rem;font-weight:550;margin-bottom:.9rem}.resolve-status.status-active{background:var(--ok-soft);color:var(--ok)}.resolve-status.status-retired{background:rgba(251,191,36,.16);color:var(--warn)}.resolve-body{display:flex;gap:1.1rem;align-items:flex-start}.resolve-thumb{width:132px;height:132px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);flex:none}.resolve-meta{flex:1;margin:0;display:flex;flex-direction:column;gap:.4rem}.resolve-meta .rr{display:flex;gap:.75rem}.resolve-meta dt{width:110px;flex:none;color:var(--text-soft);font-size:.82rem}.resolve-meta dd{margin:0;font-size:.88rem;word-break:break-all}.resolve-gone{color:var(--error);font-size:.88rem;font-weight:550}.resolve-actions{margin-top:1rem}.resolve-actions .danger-btn{background:var(--error);color:#fff;border:none}.resolve-actions .danger-btn:hover{background:var(--error);filter:brightness(1.1)}#passkey-list{margin-top:.85rem}#passkey-list li{display:flex;align-items:center;gap:.75rem}#passkey-list .klabel{font-weight:600}#passkey-list .muted{flex:1;font-size:.78rem}#passkey-list button{background:var(--error-soft);color:var(--error);padding:.3rem .7rem;font-size:.8rem;box-shadow:none}.badge-2fa{background:var(--ok-soft);color:var(--ok);border-color:transparent;margin-left:4px}.badge-warn{background:rgba(251,191,36,.16);color:var(--warn);border-color:transparent;margin-left:4px}.badge-suspended{background:var(--error-soft);color:var(--error);border-color:transparent;margin-left:4px}.msg-overlay{z-index:2600}.msg-box{max-width:460px;text-align:center}.msg-icon{font-size:2.2rem;margin-bottom:.4rem}.msg-box h3{margin:0 0 .6rem;font-size:1.15rem}.msg-context{font-size:.85rem;margin:0 0 .6rem}.msg-detail{margin:0 0 .85rem}.msg-id-table{width:100%;border-collapse:collapse;text-align:left;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;font-size:.84rem}.msg-id-table td,.msg-id-table th{padding:.4rem .7rem;border-bottom:1px solid var(--border)}.msg-id-table tr:last-child td,.msg-id-table tr:last-child th{border-bottom:none}.msg-id-table th{color:var(--text-soft);font-weight:600;white-space:nowrap;width:38%}.msg-id-table td{color:var(--text);word-break:break-all;font-family:ui-monospace,monospace;font-size:.8rem}.msg-body{text-align:left;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.85rem 1rem;margin:0 0 .75rem;white-space:pre-wrap;word-break:break-word;color:var(--text)}.msg-meta{font-size:.78rem;margin:0 0 1rem}.msg-box .dialog-actions{justify-content:space-between;align-items:center}.msg-remaining{font-size:.8rem}.msg-overlay.msg-warning{background:rgba(60,6,6,.72)}.msg-overlay.msg-warning::before{content:'';position:fixed;inset:0;pointer-events:none;box-shadow:inset 0 0 140px 30px rgba(217,52,43,.55);animation:klaxonPulse 1.25s ease-in-out infinite}.msg-warning .msg-box{border:2px solid #d9342b;box-shadow:0 0 0 1px rgba(217,52,43,.5),0 18px 50px rgba(0,0,0,.6)}.msg-warning .msg-icon{color:#ff5c4d;animation:klaxonIcon 1.25s ease-in-out infinite}.msg-warning h3{color:#ff6b5c}.msg-warning #msg-ack{background:#d9342b;border-color:#d9342b;color:#fff}.msg-warning #msg-ack:hover{background:#b8271f;border-color:#b8271f}@keyframes klaxonPulse{0%,100%{box-shadow:inset 0 0 100px 20px rgba(217,52,43,.35)}50%{box-shadow:inset 0 0 180px 50px rgba(217,52,43,.75)}}@keyframes klaxonIcon{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.12);opacity:1}}@media (prefers-reduced-motion:reduce){.msg-overlay.msg-warning::before{animation:none;box-shadow:inset 0 0 150px 35px rgba(217,52,43,.6)}.msg-warning .msg-icon{animation:none}}.badge-outcome{background:var(--accent-soft);color:var(--accent);border-color:transparent;margin-left:.3rem}.report-resolution{font-size:.76rem;margin-top:3px;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tic{display:inline-block;vertical-align:-.18em;flex:0 0 auto}.tabnav-btn .tic,button .tic{vertical-align:-.18em}.tabnav-label{display:inline-flex;align-items:center;gap:.35rem}.ico{display:inline-flex;align-items:center}.activity-filters{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:.9rem}.activity-window{margin:0 0 .85rem;font-size:.85rem}.activity-user-input{flex:1 1 200px;max-width:260px;padding:.4rem .7rem;font-size:.85rem;background:var(--bg);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm)}.activity-user-input:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.pager{display:flex;align-items:center;justify-content:center;gap:.9rem;margin-top:1rem}.pager-info{font-size:.82rem;color:var(--muted);font-variant-numeric:tabular-nums}.pager .ghost{padding:.35rem .9rem}.pager .ghost:disabled{opacity:.4;cursor:default}.report-link-row{display:flex;align-items:center;gap:6px;margin:2px 0}.report-link-btn{flex:0 0 auto;padding:0;font-size:.9rem;line-height:1;background:0 0;border:none}.report-link-text{word-break:break-all;font-size:.82rem}.tab-badge{display:inline-block;background:var(--error);color:#fff;font-size:.68rem;font-weight:700;line-height:1;padding:2px 6px;border-radius:999px;vertical-align:middle}.badge-open{background:rgba(251,191,36,.16);color:var(--warn);border-color:transparent}.badge-resolved{background:var(--ok-soft);color:var(--ok);border-color:transparent}.abuse-form{margin:1.25rem 0 1.5rem}.abuse-form label{font-size:.85rem;font-weight:600;color:var(--text-soft);margin-top:.4rem}.abuse-form input[type=email],.abuse-form select,.abuse-form textarea{width:100%;box-sizing:border-box}.abuse-form .req{color:var(--error)}.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}.abuse-success{margin:1.25rem 0 1.5rem;padding:1rem 1.25rem;background:var(--ok-soft);border:1px solid rgba(52,211,153,.4);border-radius:var(--radius-sm)}.abuse-success p{margin:0 0 .6rem;color:var(--text)}.report-filter{display:flex;gap:.4rem}.report-filter .ghost{padding:.3rem .7rem;font-size:.8rem}.report-filter .ghost.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.report-table{table-layout:fixed;width:100%}.report-table td,.report-table th{vertical-align:top;font-size:.82rem;padding:.5rem .45rem}.report-table .nowrap{white-space:normal}.report-table td:first-child,.report-table th:first-child{width:11%}.report-table td:nth-child(2),.report-table th:nth-child(2){width:9%}.report-table td:nth-child(3),.report-table th:nth-child(3){width:22%}.report-table td:nth-child(4),.report-table th:nth-child(4){width:21%}.report-table td:nth-child(5),.report-table th:nth-child(5){width:15%}.report-table td:nth-child(6),.report-table th:nth-child(6){width:7%}.report-table td:nth-child(7),.report-table th:nth-child(7){width:15%}.report-links{font-family:ui-monospace,monospace;font-size:.75rem;word-break:break-all}.report-desc{word-break:break-word}.report-reporter{word-break:break-all}.report-reporter .link{font-size:.75rem}.report-table .row-actions{flex-direction:column;align-items:stretch;gap:4px}.report-table .row-actions button{white-space:normal;padding:.3rem .4rem;font-size:.76rem}.email-section{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--border)}.email-section>label{font-size:.8rem;font-weight:600;color:var(--text-soft);display:block}.email-status{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin:.6rem 0 .9rem;font-size:.9rem}.email-addr{font-weight:600;word-break:break-all}.email-note{font-size:.85rem}.email-badge{font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:999px}.email-badge-verified{background:var(--ok-soft);color:var(--ok)}.email-badge-pending{background:rgba(251,191,36,.16);color:var(--warn)}.email-add{gap:.5rem;margin-top:0}.email-verify{margin-top:.9rem;padding:.85rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm)}.email-verify .muted{margin:0 0 .5rem;font-size:.83rem}.email-token-row{display:flex;gap:.5rem}.email-token-row input{flex:1;min-width:0}.email-pending-actions{display:flex;gap:1rem;margin-top:.6rem}.enroll-options{display:flex;flex-direction:column;gap:.6rem;margin:1rem 0}#enroll-logout{display:block;text-align:center;margin-top:1rem}.modal-overlay{position:fixed;inset:0;z-index:2500;background:rgba(0,0,0,.7);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:1.5rem}.modal-box{position:relative;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:1.5rem;max-width:420px;width:100%;max-height:90vh;overflow-y:auto}.modal-box h3{margin:0 0 .5rem;font-size:1.05rem}.modal-close{position:absolute;top:.75rem;right:.85rem;width:30px;height:30px;border-radius:50%;background:var(--bg);color:var(--text-soft);border:1px solid var(--border);box-shadow:none;display:inline-flex;align-items:center;justify-content:center;line-height:1;padding:0;font-size:.95rem}.modal-actions{display:flex;gap:.5rem;margin-top:1rem}.consent-box{max-width:520px}.consent-title{margin:0 0 .75rem;font-size:1.15rem;font-weight:700}.consent-intro{color:var(--text-soft);font-size:.92rem;line-height:1.55;margin:0 0 .75rem}.consent-intro a{color:var(--accent)}.consent-list{color:var(--text-soft);font-size:.9rem;line-height:1.5;margin:0 0 1rem;padding-left:1.2rem}.consent-list li{margin-bottom:.3rem}.consent-warning{background:var(--error-soft);border:1px solid rgba(248,113,113,.4);border-radius:var(--radius-sm);padding:.8rem .95rem;color:var(--text);font-size:.9rem;line-height:1.55;margin:0 0 1.25rem}.consent-actions{display:flex;gap:.6rem;justify-content:flex-end}.consent-actions button{min-width:110px}.qr-holder{margin:.75rem 0;text-align:center}.qr-link{display:inline-block;padding:.6rem 1rem;background:var(--accent-soft);color:var(--accent);border-radius:var(--radius-sm);font-weight:600;text-decoration:none}.totp-secret{text-align:center;margin:.5rem 0}.totp-secret code{font-size:1rem;letter-spacing:1px;background:var(--bg);padding:.4rem .7rem;border-radius:var(--radius-sm);border:1px solid var(--border)}.backup-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin:1rem 0}.backup-grid code{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.5rem;text-align:center;font-size:.9rem;letter-spacing:1px}.dialog-overlay{z-index:3000}.dialog-box{max-width:400px}.dialog-box.dialog-roomy{max-width:620px}.dialog-title{margin:0 0 .6rem;font-size:1.05rem;font-weight:650}.dialog-message{margin:0 0 .5rem;font-size:.92rem;line-height:1.5;color:var(--text)}.dialog-input{width:100%;margin-top:.75rem}.dialog-error{min-height:1rem;margin:.4rem 0 0}.dialog-error:empty{min-height:0}.dialog-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1.1rem}.dialog-actions button{padding:.5rem 1.1rem;font-size:.9rem}.dialog-actions .ghost{background:0 0;border:1px solid var(--border-strong);color:var(--text-soft);box-shadow:none}.dialog-actions .ghost:hover{background:var(--bg);color:var(--text);box-shadow:none}.dialog-actions .danger-btn{background:var(--error);color:#fff;border:none}.dialog-actions .danger-btn:hover{background:var(--error);filter:brightness(1.1)}#getting-started-btn{display:inline-flex;align-items:center;gap:.35rem}#getting-started-btn .ico{display:inline-flex}#getting-started-btn .ico svg{width:15px;height:15px}.welcome-box{max-width:460px}.welcome-title{display:inline-flex;align-items:center;gap:.45rem}.welcome-title .ico{color:var(--accent)}.welcome-steps{list-style:none;margin:1rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}.welcome-step{display:flex;align-items:center;gap:.75rem;width:100%;text-align:left;padding:.7rem .85rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text);box-shadow:none;cursor:pointer;transition:border-color .12s,background .12s,transform .12s}.welcome-step:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}.welcome-step:focus-visible{outline:2px solid var(--accent-ring);outline-offset:2px}.welcome-step-ico{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--accent-soft);color:var(--accent)}.welcome-step-ico svg{width:18px;height:18px}.welcome-step-text{display:flex;flex-direction:column;gap:.1rem;flex:1 1 auto;min-width:0}.welcome-step-title{font-weight:600;font-size:.95rem}.welcome-step-hint{font-size:.82rem;color:var(--text-soft);line-height:1.35}.welcome-step-arrow{flex:0 0 auto;color:var(--text-soft)}.welcome-step:hover .welcome-step-arrow{color:var(--accent)}.page{max-width:760px;margin:2.5rem auto 1rem;padding:0 1rem}.page h1{font-size:1.7rem;font-weight:700;letter-spacing:-.02em;margin:.5rem 0 1.25rem;color:var(--text)}.page-back{display:inline-block;margin-bottom:.5rem;color:var(--muted);text-decoration:none;font-size:.9rem;transition:color .15s}.page-back:hover{color:var(--accent)}.page-stub-note{color:var(--text-soft);font-size:.95rem}.page h3{font-size:1.05rem;font-weight:700;color:var(--text);margin:1.6rem 0 .5rem}.page p{color:var(--text-soft);line-height:1.6;margin:0 0 .75rem}.page ul{color:var(--text-soft);line-height:1.6;margin:0 0 .75rem;padding-left:1.2rem}.page li{margin-bottom:.35rem}.page code{background:var(--bg-elevated);border:1px solid var(--border);border-radius:5px;padding:.05rem .35rem;font-size:.85em}.faq-list{display:flex;flex-direction:column;gap:.6rem}.faq-item{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.faq-item>summary{list-style:none;cursor:pointer;padding:1rem 1.1rem;font-weight:600;color:var(--text-soft);display:flex;align-items:center;justify-content:space-between;gap:1rem;transition:color .15s,background .15s}.faq-item>summary::-webkit-details-marker{display:none}.faq-item>summary:hover{color:var(--text)}.faq-item>summary::after{content:"+";font-size:1.4rem;font-weight:400;line-height:1;color:var(--muted);transition:transform .2s ease,color .15s;flex:none}.faq-item[open]>summary{color:var(--text)}.faq-item[open]>summary::after{transform:rotate(45deg);color:var(--accent)}.faq-body{padding:0 1.1rem 1.1rem;color:var(--text-soft);font-size:.92rem;line-height:1.55}.faq-body p{margin:0}.faq-body code{background:var(--bg-elevated);border:1px solid var(--border);border-radius:5px;padding:.05rem .35rem;font-size:.85em}.site-footer{margin-top:3rem;border-top:1px solid var(--border);background:var(--bg-elevated);position:relative;z-index:1}.footer-inner{max-width:1100px;margin:0 auto;padding:2.25rem 1.5rem;display:grid;grid-template-columns:1fr auto 1fr;gap:2rem;align-items:start}.footer-col h4,.footer-contact h4{margin:0 0 .75rem;font-size:.95rem;font-weight:700;color:var(--text)}.footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.footer-col a{color:var(--text-soft);text-decoration:none;font-size:.9rem;transition:color .15s}.footer-col a:hover{color:var(--accent)}.footer-brand{text-align:center}.footer-brand img{width:128px;height:128px;margin:0 auto -.45rem;display:block}.footer-name{font-weight:700;font-size:1.1rem;color:var(--text);letter-spacing:-.01em}.footer-copy{margin-top:.2rem;font-size:.82rem;color:var(--muted)}.footer-version{margin-top:.1rem;font-size:.72rem;color:var(--muted);opacity:.75;font-family:ui-monospace,monospace}.footer-contact{text-align:right}.footer-contact ul{align-items:flex-end}@media (max-width:640px){.footer-inner{grid-template-columns:1fr;text-align:center;gap:1.75rem}.footer-contact{text-align:center}.footer-col ul,.footer-contact ul{align-items:center}}#blockdom-domain{font:inherit;resize:vertical;min-height:4.5rem}.blockdom-reason{max-width:26rem;word-break:break-word}.dialog-textarea{min-height:7rem;resize:vertical;font:inherit;line-height:1.45}.key-form{gap:.8rem}.key-form-row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.key-form-row>input,.key-form-row>select{flex:1 1 11rem;min-width:0}.key-form-row>input[type=date]{flex:0 1 11rem}.key-form-actions{justify-content:space-between}.scope-presets{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}.scope-presets button{padding:.3rem .65rem;font-size:.78rem}.scope-grid{display:grid;grid-template-columns:5.5rem repeat(5,minmax(0,1fr));gap:.45rem .2rem;align-items:center;padding:.65rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.84rem}.scope-head{text-align:center;color:var(--muted);font-size:.7rem;font-weight:650;text-transform:uppercase;letter-spacing:.05em;cursor:default}.scope-name{font-weight:600}.scope-cell{display:flex;justify-content:center;align-items:center;min-height:22px;margin:0;cursor:pointer}.scope-cell.na{color:var(--border-strong);cursor:default}.key-main{min-width:0}.key-main .badge{vertical-align:1px}.key-meta{font-size:.76rem;color:var(--muted);margin-top:.25rem;line-height:1.4}.key-list li.key-expired .klabel,.key-list li.key-expired code{opacity:.55}.new-key-meta{margin:.45rem 0 0;font-size:.76rem;opacity:.85}.docs-table th{padding:.4rem .5rem;text-align:left;font-size:.7rem;font-weight:650;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--border)}.scope-table td{vertical-align:top;min-width:7rem}.scope-table td:first-child{min-width:0}.sandbox{display:flex;flex-direction:column;gap:.7rem}.sb-row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.sb-row>input,.sb-row>select{min-width:0}#sb-key{flex:1 1 18rem;font-family:ui-monospace,'Cascadia Code',monospace;font-size:.82rem}.sb-as{flex:0 1 auto;white-space:nowrap}#sb-preset{flex:1 1 100%}#sb-method{flex:0 0 auto;width:auto;font-weight:600}#sb-path{flex:1 1 14rem;font-family:ui-monospace,'Cascadia Code',monospace;font-size:.84rem}#sb-send{flex:0 0 auto}#sb-file{flex:1 1 14rem;padding:.45rem .6rem}#sb-folder{flex:0 1 10rem}.sandbox textarea{width:100%;box-sizing:border-box;resize:vertical;min-height:5rem;font-family:ui-monospace,'Cascadia Code',monospace;font-size:.8rem;line-height:1.5}.sb-curl-wrap summary{cursor:pointer;font-size:.82rem}.sb-curl-wrap[open] summary{margin-bottom:.45rem}.sb-curl{margin:0;white-space:pre-wrap;word-break:break-all}.sb-status{font-size:.88rem;font-weight:650;font-variant-numeric:tabular-nums}.sb-status.ok{color:var(--ok)}.sb-status.warn{color:var(--warn)}.sb-status.err{color:var(--error)}.sb-headers{font-size:.76rem;color:var(--muted);font-family:ui-monospace,'Cascadia Code',monospace}.sb-response{margin:0;max-height:26rem;overflow:auto;white-space:pre-wrap;word-break:break-word}#sb-file::file-selector-button{background:var(--btn);color:#fff;border:0;border-radius:var(--radius-sm);padding:.42rem .8rem;margin-right:.75rem;cursor:pointer;font:inherit;font-size:.82rem;font-weight:600;transition:background .15s}#sb-file::file-selector-button:hover{background:var(--btn-hover)}#poll-question{text-transform:none;letter-spacing:0;font-size:1.2rem;font-weight:650;color:var(--text);margin-bottom:.5rem}.poll-form{gap:.9rem}.poll-options{display:flex;flex-direction:column;gap:.5rem}.poll-option{display:flex;align-items:center;gap:.7rem;padding:.7rem .9rem;cursor:pointer;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.95rem;transition:border-color .12s,background .12s}.poll-option:hover{border-color:var(--accent)}.poll-option:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}.check-inline input,.poll-option input{flex:0 0 auto;width:18px;height:18px;margin:0;padding:0;accent-color:var(--accent)}.poll-actions{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap}.poll-results{display:flex;flex-direction:column;gap:.7rem}.poll-summary{margin:0 0 .2rem}.poll-result-head{display:flex;justify-content:space-between;gap:1rem;font-size:.9rem;margin-bottom:.3rem}.poll-result-num{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.poll-mine .poll-result-head{font-weight:600}.check-inline{display:inline-flex;align-items:center;gap:.45rem;cursor:pointer;font-size:.88rem}.poll-ends{max-width:16rem;flex:none}.poll-admin-side{min-width:0}.poll-list-head{margin:1.4rem 0 .6rem;padding-bottom:.45rem;border-bottom:1px solid var(--border);font-size:.72rem;font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.poll-admin-list{display:flex;flex-direction:column;gap:.75rem}.poll-admin-item{padding:.75rem .9rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm)}.poll-admin-item .poll-results{gap:.5rem}.poll-admin-item .poll-result-head{font-size:.84rem;margin-bottom:.2rem}.poll-admin-item .row-actions button{padding:.3rem .65rem;font-size:.78rem}.poll-admin-head{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;margin-bottom:.7rem}.poll-admin-head>div:first-child{min-width:0;flex:1 1 auto}.poll-admin-head .row-actions{flex:0 0 auto}.poll-admin-q{font-weight:600;font-size:.94rem}.poll-admin-meta{font-size:.78rem;margin-top:.2rem}.poll-admin-desc{margin:.4rem 0 0}html.abuse-embed{color-scheme:dark;background:var(--card,#111823)}.abuse-embed body{min-height:0;background:var(--card,#111823)}.abuse-embed body::before{display:none}.abuse-embed body>:not(#page-view):not(script){display:none!important}.abuse-embed #page-view{margin:0;padding:0 1.25rem 1rem;width:100%}.abuse-embed #page-abuse{margin:0;padding:0;border:0;background:0 0;box-shadow:none;max-width:none}.abuse-embed #page-abuse>.page-back,.abuse-embed #page-abuse>h1{display:none}.abuse-embed .abuse-form{margin-top:.5rem}