:root{color-scheme:dark;--bg:#0b0d10;--panel:#11151a;--card:#151a20;--line:#252c35;--muted:#94a0ad;--text:#eef3f8;--accent:#6ea8fe;--good:#5bd28a;--warn:#f7c45c;--bad:#ff7474}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}a{color:inherit}.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:#0e1115;border-right:1px solid var(--line);padding:24px 18px;display:flex;flex-direction:column;gap:30px}.brand{display:flex;align-items:center;gap:10px;font-size:18px}.brand-mark{width:54px;height:54px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(135deg,#7aa7ff,#8b7cff);font-weight:800;color:#fff}.smallmark{width:34px;height:34px;border-radius:10px;font-size:12px}.sidebar nav a{display:block;padding:10px 12px;border-radius:9px;text-decoration:none;color:var(--muted)}.sidebar nav a.active{background:#171d24;color:#fff}.userbox{margin-top:auto;border-top:1px solid var(--line);padding-top:18px;display:grid;grid-template-columns:36px 1fr;gap:10px;align-items:center}.userbox img{width:36px;height:36px;border-radius:50%}.userbox strong,.userbox span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.userbox span{color:var(--muted);font-size:12px}.userbox form{grid-column:1/-1}.linkbtn{background:none;border:0;padding:0;color:var(--muted);cursor:pointer}.content{padding:34px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.topbar h1,.logs-page h1{margin:0;font-size:30px}.topbar p,.logs-page>p{margin:5px 0 0;color:var(--muted)}.button,button{border:1px solid var(--line);background:#171d24;color:var(--text);border-radius:9px;padding:9px 13px;text-decoration:none;cursor:pointer;font:inherit}.button.primary,button.primary{background:var(--accent);border-color:var(--accent);color:#07101e;font-weight:700}.button.ghost{background:transparent}.button.wide{display:block;text-align:center;width:100%}.button.small{padding:7px 10px}.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:22px}.stat{background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:17px}.stat span{display:block;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.stat strong{display:block;font-size:22px;margin-top:5px}.stat .pathtext{font-size:14px;overflow-wrap:anywhere}.sites-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:15px}.site-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;min-width:0}.site-head{display:flex;justify-content:space-between;gap:16px}.site-head h2{margin:2px 0;font-size:21px}.site-head a{color:var(--accent);text-decoration:none}.eyebrow{font-size:11px;color:var(--muted);letter-spacing:.1em}.status{height:max-content;padding:4px 8px;border-radius:999px;font-size:12px;border:1px solid var(--line)}.status.running{color:var(--good)}.status.partial{color:var(--warn)}.status.stopped,.status.degraded{color:var(--bad)}.facts{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:20px 0}.facts div{min-width:0}.facts dt{color:var(--muted);font-size:11px}.facts dd{margin:2px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.replica-row{display:flex;gap:7px;margin-bottom:16px}.replica{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:#20262e;color:var(--muted);font-size:12px}.replica.running{background:#153421;color:var(--good)}.replica.exited{background:#351d1d;color:var(--bad)}.actions,.card-footer{display:flex;gap:8px;flex-wrap:wrap}.actions form{display:inline}.card-footer{border-top:1px solid var(--line);margin-top:15px;padding-top:15px;justify-content:space-between;align-items:center}.scale{display:flex;gap:7px;align-items:center}.scale label{color:var(--muted)}.scale input{width:62px}.danger{color:var(--bad)}input,select{width:100%;border:1px solid var(--line);background:#0f1318;color:var(--text);border-radius:9px;padding:10px 11px;font:inherit}dialog{width:min(720px,calc(100% - 24px));border:1px solid var(--line);border-radius:15px;background:var(--card);color:var(--text);padding:0}dialog::backdrop{background:rgba(0,0,0,.7)}.create-form{padding:20px}.dialog-head{display:flex;justify-content:space-between;gap:20px}.dialog-head h2{margin:0}.dialog-head p{color:var(--muted);margin:5px 0}.iconbtn{font-size:24px;background:transparent;border:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:20px 0}.form-grid label{font-weight:600}.form-grid label span{display:block;color:var(--muted);font-size:12px;font-weight:400;margin-bottom:5px}.form-grid .full{grid-column:1/-1}.check{display:flex;gap:10px;align-items:center}.check input{width:auto}.check span{margin:0!important}.dialog-actions{display:flex;justify-content:flex-end;gap:9px}.empty{grid-column:1/-1;border:1px dashed var(--line);border-radius:14px;padding:40px;text-align:center;color:var(--muted)}.login-body{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(390px,100%);background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:28px;text-align:center}.login-card .brand-mark{margin:auto}.login-card h1{font-size:30px;margin:15px 0 5px}.login-card p{color:var(--muted);margin:0 0 20px}.login-card .small{font-size:12px;margin-top:16px}.logs-page{max-width:1100px;margin:auto;padding:34px}.logbox{margin-top:18px;background:var(--panel);border:1px solid var(--line);border-radius:13px;overflow:hidden}.logbox h2{font-size:14px;padding:12px 15px;margin:0;border-bottom:1px solid var(--line)}pre{margin:0;padding:15px;white-space:pre-wrap;overflow-wrap:anywhere;color:#cbd6e2;max-height:500px;overflow:auto}@media(max-width:800px){.shell{display:block}.sidebar{position:static;border-right:0;border-bottom:1px solid var(--line);padding:14px 18px;gap:14px}.sidebar nav{display:none}.userbox{margin-top:0;grid-template-columns:36px 1fr auto}.userbox form{grid-column:auto}.content{padding:20px}.summary-grid{grid-template-columns:1fr}.sites-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.topbar{align-items:flex-start}.facts{grid-template-columns:1fr}.card-footer{align-items:flex-start}.scale{width:100%}}
.auth-form{display:grid;gap:14px;text-align:left;margin-top:18px}.auth-form label{display:grid;gap:6px;font-weight:600}.setup-card{width:min(450px,100%)}.errorbox{margin:14px 0;padding:11px 12px;border:1px solid #653232;background:#2a1616;color:#ffb1b1;border-radius:10px;text-align:left}.qr-wrap{background:#fff;border-radius:14px;padding:14px;margin:18px auto;width:min(280px,100%)}.qr-wrap img{display:block;width:100%;height:auto}.secret-details{margin:10px 0 18px;text-align:left;color:var(--muted)}.secret-details code{display:block;margin-top:8px;padding:10px;background:#0f1318;border:1px solid var(--line);border-radius:8px;overflow-wrap:anywhere;color:var(--text)}
.notice{border:1px solid var(--line);border-radius:11px;padding:11px 14px;margin-bottom:18px;background:var(--panel)}.notice.success{border-color:#275d3a;color:#a7ebbe;background:#102619}.upload-box{margin:20px 0 15px}.folder-picker{min-height:170px;border:1px dashed #3b4654;border-radius:14px;background:#0f1318;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:5px;padding:24px;cursor:pointer}.folder-picker:hover{border-color:var(--accent)}.folder-picker input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.folder-picker strong{font-size:17px}.folder-picker>span:not(.folder-icon){color:var(--muted);font-size:13px}.folder-icon{font-size:32px;line-height:1;color:var(--accent);margin-bottom:5px}.upload-summary{margin-top:10px;padding:10px 12px;border-radius:9px;background:#0f1318;border:1px solid var(--line);color:var(--muted)}.upload-replace{margin:14px 0}.upload-hint{color:var(--muted);font-size:12px;margin:12px 0 20px}.upload-hint code{color:var(--text)}button:disabled{opacity:.55;cursor:wait}
