*{box-sizing:border-box}html{background:#0f1115}body{color:#e4e6eb;min-height:100vh;margin:0;font-family:Segoe UI,system-ui,-apple-system,Arial,sans-serif}a{color:#5b8cff}code{word-break:break-all;background:#0f1115;border:1px solid #262b3a;border-radius:4px;padding:.1rem .35rem;font-family:Consolas,Cascadia Mono,monospace;font-size:.85em}.bg-scene{z-index:-1;pointer-events:none;background:#0f1115;position:fixed;inset:0}.bg-scene canvas{width:100%;height:100%;position:absolute;inset:0}.app{max-width:1000px;margin:0 auto;padding:2rem 1.5rem 4rem}@media (width<=640px){.app{padding:1.25rem .75rem 3rem}}.muted{color:#8b91a5}.loading{text-align:center;padding:2rem 0}.card{background:#161922;border:1px solid #262b3a;border-radius:10px;box-shadow:0 8px 24px #00000059}.center-page{justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.empty-state{text-align:center;color:#8b91a5;padding:2.5rem 1.5rem}.empty-state p{margin:.3rem 0}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.25rem;animation:.4s fade-in-down;display:flex}.topbar h1{letter-spacing:.02em;margin:0;font-size:1.4rem;font-weight:600}.topbar h1 a{color:inherit;text-decoration:none}.user-menu{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.user-menu .username{color:#8b91a5;margin-right:.35rem;font-size:.85rem}.tabs{scrollbar-width:thin;gap:.35rem;margin-bottom:1rem;display:flex;overflow-x:auto}.tab{color:#8b91a5;white-space:nowrap;border-bottom:2px solid #0000;border-radius:10px 10px 0 0;align-items:baseline;gap:.45rem;padding:.55rem .9rem;text-decoration:none;transition:color .15s,background .15s,border-color .15s;display:inline-flex}.tab:hover{color:#e4e6eb;background:#1e2230b3}.tab.active{color:#e4e6eb;background:#161922cc;border-bottom-color:#5b8cff}.tab .tab-name{font-weight:600}.tab .tab-meta{color:#8b91a5;font-size:.75rem}.badge{color:#fff;text-align:center;background:#5b8cff;border-radius:999px;min-width:1.3rem;padding:0 .4rem;font-size:.7rem;font-weight:700;line-height:1.3rem;display:inline-block}.tab-error{color:#f87171;font-weight:700}.pill{color:#8eb0ff;white-space:nowrap;background:#5b8cff33;border-radius:999px;padding:.05rem .5rem;font-size:.7rem;font-weight:600;display:inline-block}.pill-new{color:#fff;background:#5b8cff}.pill-muted{color:#8b91a5;background:#1e2230}.notice{color:#fbbf24;background:#fbbf241f;border-radius:6px;padding:.6rem .9rem;font-size:.85rem}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}input,select,textarea,button{font:inherit}input[type=text],input[type=password],input[type=search],input[type=number],input:not([type]),select{color:#e4e6eb;background:#0f1115;border:1px solid #262b3a;border-radius:6px;min-width:0;padding:.55rem .7rem;font-size:.9rem}input[type=text]:focus,input[type=password]:focus,input[type=search]:focus,input[type=number]:focus,input:not([type]):focus,select:focus{border-color:#5b8cff;outline:none;box-shadow:0 0 0 3px #5b8cff33}input[type=text]:disabled,input[type=password]:disabled,input[type=search]:disabled,input[type=number]:disabled,input:not([type]):disabled,select:disabled{opacity:.5}input[type=file]{color:#8b91a5;font-size:.85rem}input[type=checkbox]{accent-color:#5b8cff;width:15px;height:15px;margin:0}.btn{color:#e4e6eb;cursor:pointer;background:#161922;border:1px solid #262b3a;border-radius:6px;justify-content:center;align-items:center;gap:.4rem;padding:.55rem 1rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:background .15s,filter .15s,border-color .15s;display:inline-flex}.btn:hover{background:#1e2230}.btn:disabled{opacity:.55;cursor:default}.btn svg{width:1rem;height:1rem}.btn-small{padding:.35rem .7rem;font-size:.8rem}.btn-primary{color:#fff;background:#5b8cff;border-color:#5b8cff;font-weight:600}.btn-primary:hover{filter:brightness(1.1);background:#5b8cff}.btn-danger{color:#f87171}.btn-danger:hover{background:#f871711f;border-color:#f8717166}.btn-primary.btn-danger{color:#fff;background:#f87171;border-color:#f87171}.btn-link{color:#8b91a5;cursor:pointer;background:0 0;border:none;padding:0;font-size:.8rem;text-decoration:underline}.btn-link:hover{color:#e4e6eb}.field{flex-direction:column;flex:1;gap:.3rem;display:flex}.field>span{color:#8b91a5;font-size:.78rem;font-weight:600}.field small{font-size:.75rem}.field-narrow{flex:0 0 7rem}.checkbox{color:#8b91a5;cursor:pointer;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.85rem;display:flex}input.inline-number{width:4.5rem;padding:.3rem .5rem}.form-error{color:#f87171;margin:0;font-size:.85rem}.hint{color:#8b91a5;margin:0;font-size:.85rem}.form-actions{justify-content:flex-end;align-items:center;gap:.5rem;margin-top:.4rem;display:flex}.form-grid{gap:.75rem;display:flex}@media (width<=640px){.form-grid{flex-direction:column}}fieldset{border:1px solid #262b3a;border-radius:6px;flex-direction:column;gap:.75rem;margin:0;padding:.75rem .9rem .9rem;display:flex}fieldset legend{color:#e4e6eb;padding:0 .35rem;font-size:.8rem;font-weight:600}.auth-box{flex-direction:column;gap:.9rem;width:320px;max-width:100%;padding:2rem;animation:.3s fade-in;display:flex}.auth-box h1{text-align:center;margin:0 0 .3rem;font-size:1.15rem}.auth-box .btn-link{align-self:center}.password-form,.add-form,.admin-form{flex-direction:column;gap:.85rem;display:flex}.or{text-align:center;color:#8b91a5;font-size:.8rem}.modal-backdrop{z-index:10;background:#05060ab3;justify-content:center;align-items:flex-start;padding:8vh 1rem 1rem;animation:.15s fade-in;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:#161922;border:1px solid #262b3a;border-radius:10px;width:540px;max-width:100%;padding:1.4rem 1.5rem;box-shadow:0 8px 24px #00000059}.modal h2{margin:0 0 1rem;font-size:1.05rem}.modal .modal-body p{margin:0 0 .6rem;line-height:1.45}.modal .modal-footer{justify-content:flex-end;gap:.5rem;margin-top:1.1rem;display:flex}.toolbar{flex-wrap:wrap;align-items:center;gap:.6rem .9rem;margin-bottom:.9rem;display:flex}.toolbar .search{flex:0 18rem}.toolbar .toolbar-spacer{flex:1}@media (width<=640px){.toolbar .search{flex:100%}.toolbar .toolbar-spacer{display:none}}.table{background:#161922;border:1px solid #262b3a;border-radius:10px;overflow:hidden;box-shadow:0 8px 24px #00000059}.table-head{border-bottom:1px solid #262b3a;grid-template-columns:minmax(0,1fr) 6rem 11rem 6.5rem;display:grid}.table-head .sortable{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:#8b91a5;cursor:pointer;background:0 0;border:none;padding:.85rem 1rem;font-size:.75rem;font-weight:600;transition:color .15s}.table-head .sortable:hover{color:#e4e6eb}.table-head .sortable.sort-asc:after{content:" ↑"}.table-head .sortable.sort-desc:after{content:" ↓"}@media (width<=640px){.table-head{display:none}}.empty{text-align:center;color:#8b91a5;padding:3rem 1rem;font-style:italic}.torrent{border-bottom:1px solid #262b3a;animation:.25s both fade-in}.torrent:last-child{border-bottom:none}.torrent.expanded{background:#1e223073}.torrent.expanded .chevron svg{transform:rotate(90deg)}.row{cursor:pointer;grid-template-columns:minmax(0,1fr) 6rem 11rem 6.5rem;align-items:center;transition:background .12s;display:grid}.row:hover{background:#1e2230}.row>div{min-width:0;padding:.65rem 1rem;font-size:.9rem}@media (width<=640px){.row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name name""meta actions";row-gap:.3rem;padding:.7rem .9rem}.row>div{padding:0}.row .col-name{grid-area:name}.row .col-size{display:none}.row .col-date{grid-area:meta;font-size:.78rem}.row .col-actions{grid-area:actions}}.col-name{align-items:center;gap:.5rem;display:flex}.col-name .name{overflow-wrap:anywhere;line-height:1.35}.chevron{color:#8b91a5;flex:none;display:inline-flex}.chevron svg{width:.9rem;height:.9rem;transition:transform .15s}.icon{opacity:.85;flex:none;width:1.1rem;height:1.1rem}.col-size,.col-date,.file-size{color:#8b91a5;font-variant-numeric:tabular-nums;white-space:nowrap}.col-actions{justify-content:flex-end;gap:.15rem;display:flex}.icon-btn,.icon-btn-placeholder{flex:none;justify-content:center;align-items:center;width:1.9rem;height:1.9rem;display:inline-flex}.icon-btn{color:#8b91a5;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:0;transition:background .12s,color .12s}.icon-btn svg{width:1.05rem;height:1.05rem}.icon-btn:hover{color:#e4e6eb;background:#5b8cff26}.icon-btn-danger:hover{color:#f87171;background:#f8717126}.state{flex:none;display:inline-flex}.state svg{width:.95rem;height:.95rem}.state-all{color:#4ade80}.state-some{color:#4ade80;opacity:.45}.status{flex-direction:column;gap:.25rem;display:flex}.status-text{font-size:.75rem}.status-error{color:#f87171}.progress{background:#262b3a;border-radius:2px;height:4px;display:block;overflow:hidden}.progress span{background:#5b8cff;height:100%;transition:width .4s;display:block}.details{flex-direction:column;align-items:flex-start;gap:.6rem;padding:.2rem 1rem .9rem 2.6rem;display:flex}@media (width<=640px){.details{padding:.2rem .9rem .9rem}}.details .meta{color:#8b91a5;opacity:.8;margin:0;font-size:.75rem}.files{width:100%;margin:0;padding:0;list-style:none}.files li{border-bottom:1px dashed #262b3ab3;align-items:center;gap:.5rem;padding:.3rem 0;font-size:.85rem;display:flex}.files li:last-child{border-bottom:none}.files li .name{overflow-wrap:anywhere;flex:1;min-width:0}.dot-new{background:#5b8cff;border-radius:50%;flex:none;width:.45rem;height:.45rem}.section-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.9rem;display:flex}.section-head h2{margin:0;font-size:1.05rem}.admin-row{border-bottom:1px solid #262b3a;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main actions""sub actions";align-items:center;gap:.25rem 1rem;padding:.8rem 1rem;display:grid}.admin-row:last-child{border-bottom:none}@media (width<=640px){.admin-row{grid-template-columns:1fr;grid-template-areas:"main""sub""actions"}}.admin-main{flex-wrap:wrap;grid-area:main;align-items:center;gap:.5rem;display:flex}.admin-sub{color:#8b91a5;overflow-wrap:anywhere;grid-area:sub;font-size:.8rem}.admin-actions{grid-area:actions;gap:.4rem;display:flex}.permissions .permission-row{justify-content:space-between;align-items:center;gap:1rem;font-size:.9rem;display:flex}.permissions .permission-row select{flex:0 0 15rem;max-width:60%}.settings-form{padding:1.2rem}.rpc-test{flex-wrap:wrap;align-items:center;gap:.6rem;font-size:.85rem;display:flex}.rpc-test .rpc-test-ok{color:#4ade80;overflow-wrap:anywhere}.rpc-test code{color:#e4e6eb}.test-results{flex-direction:column;gap:.5rem;margin:0 0 .8rem;padding:0;font-size:.9rem;list-style:none;display:flex}.test-results li{overflow-wrap:anywhere}.test-results .ok strong{color:#4ade80}.test-results .fail strong{color:#f87171}.host-key{background:#fbbf2414;border:1px solid #fbbf2466;border-radius:6px;padding:.8rem 1rem}.host-key p{margin:0 0 .5rem;font-size:.85rem}.host-key code{margin-bottom:.5rem;display:block}.audit-row{border-bottom:1px solid #262b3a;grid-template-columns:11rem 7rem minmax(0,1fr);gap:.75rem;padding:.55rem 1rem;font-size:.85rem;display:grid}.audit-row:last-child{border-bottom:none}.audit-row .audit-date{color:#8b91a5;font-variant-numeric:tabular-nums}.audit-row .audit-user{overflow-wrap:anywhere;font-weight:600}.audit-row .audit-action{overflow-wrap:anywhere}@media (width<=640px){.audit-row{grid-template-columns:1fr auto}.audit-row .audit-action{grid-column:1/-1}}.load-more{margin-top:.9rem}.section-hint{margin:-.4rem 0 .9rem;font-size:.82rem;line-height:1.45}.section-head-spaced{margin-top:2rem}.remote-servers{flex-direction:column;gap:.35rem;margin:.4rem 0 0;padding:0;list-style:none;display:flex}.remote-servers li{color:#e4e6eb;align-items:center;gap:.6rem;display:flex}.token-details{grid-template-columns:auto minmax(0,1fr);gap:.4rem .8rem;margin:0 0 .9rem;font-size:.85rem;display:grid}.token-details dt{color:#8b91a5}.token-details dd{margin:0}.token-details .token-value{-webkit-user-select:all;user-select:all}
