:root{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#172033;background:#f4f6f9;
  --bg:#f4f6f9;--panel:#fff;--sidebar:#101826;--sidebar2:#172235;--text:#172033;--muted:#687386;
  --line:#dfe4eb;--line2:#cfd6df;--accent:#d63c46;--accent-dark:#b82f39;--blue:#2d6cdf;--good:#18864b;--warn:#a96800;--bad:#c9363f;
  --shadow:0 1px 2px rgba(16,24,38,.05),0 8px 24px rgba(16,24,38,.05);
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text)}body{min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}

/* auth */
.auth-shell{min-height:100vh;display:grid;place-items:center;padding:32px;background:#eef1f5}.auth-wrap{width:min(940px,100%);display:grid;grid-template-columns:1fr 430px;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:var(--shadow)}
.auth-brand{padding:64px;background:#101826;color:#fff;display:flex;flex-direction:column;justify-content:center}.logo,.sidebar-logo{display:flex;align-items:center;gap:12px}.logo span,.sidebar-logo span{width:38px;height:38px;border-radius:8px;background:var(--accent);display:grid;place-items:center;color:#fff;font-size:14px;font-weight:800;letter-spacing:.03em}.logo strong,.sidebar-logo strong{font-size:19px}.auth-brand h1{font-size:34px;line-height:1.15;margin:54px 0 12px;letter-spacing:-.025em}.auth-brand p{max-width:470px;color:#b5bfce;line-height:1.7;margin:0}.auth-status{display:flex;align-items:center;gap:8px;margin-top:48px;color:#9eabbc;font-size:13px}.auth-status i,.master-state i{width:8px;height:8px;border-radius:999px;background:#2caf69;display:inline-block}
.auth-card{padding:44px}.auth-tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:32px}.auth-tabs button{border:0;background:none;padding:10px 2px;margin-right:28px;color:var(--muted);font-weight:600;border-bottom:2px solid transparent}.auth-tabs button.active{color:var(--text);border-bottom-color:var(--accent)}.auth-form header{margin-bottom:24px}.auth-form h2{margin:0 0 7px;font-size:24px}.auth-form header p{margin:0;color:var(--muted);line-height:1.5}.auth-form label,.form-section label,.setup-form label{display:grid;gap:7px;font-size:13px;font-weight:600;color:#354054;margin-bottom:16px}.auth-form input,.form-section input,.form-section select,.form-section textarea,.setup-form input,.setup-form select,.console-send input{width:100%;border:1px solid var(--line2);border-radius:7px;background:#fff;color:var(--text);padding:10px 11px;outline:none}.auth-form input:focus,.form-section input:focus,.form-section select:focus,.form-section textarea:focus,.setup-form input:focus,.setup-form select:focus,.console-send input:focus{border-color:#8e9bae;box-shadow:0 0 0 3px rgba(45,108,223,.08)}.form-error{color:var(--bad);font-size:13px;min-height:18px;margin:10px 0 0}

/* shell */
.app{min-height:100vh;display:grid;grid-template-columns:230px 1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:230px;background:var(--sidebar);color:#fff;padding:22px 14px;display:flex;flex-direction:column;z-index:5}.sidebar-logo{padding:0 8px 22px;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-logo span{width:34px;height:34px}.sidebar-logo strong{font-size:17px}nav{margin-top:18px;display:grid;gap:3px}.nav-group{font-size:10px;text-transform:uppercase;letter-spacing:.11em;color:#768398;font-weight:700;padding:18px 11px 7px}nav button{border:0;background:transparent;color:#aeb9c9;text-align:left;border-radius:7px;padding:10px 11px;font-weight:550}nav button:hover{background:rgba(255,255,255,.05);color:#fff}nav button.active{background:var(--sidebar2);color:#fff}.sidebar-account{margin-top:auto;padding:14px 8px 2px;border-top:1px solid rgba(255,255,255,.08);display:grid;grid-template-columns:34px 1fr auto auto;align-items:center;gap:9px}.avatar{width:34px;height:34px;border-radius:50%;background:#26344a;display:grid;place-items:center;font-size:11px;font-weight:800}.sidebar-account strong{font-size:13px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-account small{display:block;color:#7f8da1;font-size:11px;margin-top:2px}.icon-btn{border:0;background:none;color:#8694a7;padding:4px;font-size:15px}.icon-btn:hover{color:#fff}
.main{grid-column:2;min-width:0}.topbar{height:84px;background:#fff;border-bottom:1px solid var(--line);padding:0 32px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:4}.topbar h1{margin:0;font-size:22px;letter-spacing:-.015em}.topbar p{margin:4px 0 0;color:var(--muted);font-size:13px}.top-actions{display:flex;gap:14px;align-items:center}.master-state{font-size:12px;color:#4f5b6e;display:flex;align-items:center;gap:7px}.content{padding:28px 32px 56px;max-width:1500px;margin:0 auto}

/* common */
.btn{border:1px solid var(--line2);background:#fff;color:#273247;border-radius:7px;padding:9px 13px;font-weight:600;font-size:13px}.btn:hover{background:#f8f9fb}.btn.primary{border-color:var(--accent);background:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-dark)}.btn.danger{border-color:#e5bfc2;color:var(--bad);background:#fff}.btn.danger:hover{background:#fff5f5}.btn:disabled{cursor:not-allowed;opacity:.5}.full{width:100%}.section-head{display:flex;align-items:end;justify-content:space-between;gap:18px;margin:30px 0 14px}.section-head h2{margin:0;font-size:17px}.section-head p{margin:5px 0 0;color:var(--muted);font-size:13px}.panel{background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 1px 2px rgba(16,24,38,.025)}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric{background:#fff;border:1px solid var(--line);border-radius:9px;padding:18px}.metric small{display:block;color:var(--muted);font-size:12px;margin-bottom:8px}.metric b{font-size:24px;letter-spacing:-.02em}.metric .metric-sub{font-size:11px;color:var(--muted);margin-top:5px}
.notice{border:1px solid #d9e3f3;background:#f6f9fe;border-radius:8px;padding:13px 14px;color:#46556c;font-size:13px;line-height:1.55}.empty{background:#fff;border:1px dashed var(--line2);border-radius:9px;padding:34px;text-align:center;color:var(--muted)}.empty h3{margin:0 0 7px;color:var(--text);font-size:16px}.empty p{margin:0;font-size:13px}.status{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:650}.status:before{content:"";width:7px;height:7px;border-radius:50%;background:#9aa4b2}.status.online:before{background:var(--good)}.status.error:before,.status.quota_exceeded:before{background:var(--bad)}.status.starting:before,.status.deploying:before,.status.restarting:before{background:var(--warn)}.tag{display:inline-block;padding:3px 7px;border-radius:5px;background:#eef1f5;color:#536075;font-size:11px;margin:1px 3px 1px 0}.mono,code{font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace}

/* products */
.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.product-card{background:#fff;border:1px solid var(--line);border-radius:9px;padding:20px;display:flex;flex-direction:column;min-height:265px}.product-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.product-kind{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}.product-price{font-size:20px;font-weight:750}.product-price small{font-size:11px;color:var(--muted);font-weight:500}.product-card h3{font-size:17px;margin:16px 0 7px}.product-card p{font-size:13px;color:var(--muted);line-height:1.5;margin:0}.feature-list{display:grid;gap:7px;margin:18px 0 20px;padding:0;list-style:none;font-size:12px;color:#435064}.feature-list li:before{content:"✓";color:var(--good);font-weight:800;margin-right:8px}.product-card .btn{margin-top:auto}.availability{font-size:11px;color:#7d8797;margin-top:8px;text-align:center}

/* services */
.service-list{display:grid;gap:10px}.service-row{background:#fff;border:1px solid var(--line);border-radius:9px;padding:15px 17px;display:grid;grid-template-columns:minmax(210px,1.6fr) minmax(130px,.8fr) minmax(130px,.8fr) minmax(170px,1fr) auto;gap:18px;align-items:center}.service-main{display:flex;align-items:center;gap:12px;min-width:0}.service-icon{width:38px;height:38px;border:1px solid var(--line);border-radius:8px;display:grid;place-items:center;background:#fafbfc;color:#4f5b6e;font-weight:800;font-size:12px;flex:0 0 auto}.service-name{min-width:0}.service-name strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.service-name small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.service-stat span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.service-stat strong{font-size:12px;font-weight:650}.usage{height:5px;background:#edf0f4;border-radius:999px;overflow:hidden;margin-top:6px}.usage i{display:block;height:100%;background:#718099}.usage i.warn{background:var(--warn)}.usage i.bad{background:var(--bad)}.service-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}.service-actions .btn{padding:7px 9px;font-size:12px}.service-detail{grid-column:1/-1;border-top:1px solid var(--line);padding-top:12px;display:flex;gap:18px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.service-detail b{color:#3b4658}

/* tables / workers */
.table-wrap{background:#fff;border:1px solid var(--line);border-radius:9px;overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;color:#687386;background:#f8f9fb;font-weight:650;border-bottom:1px solid var(--line);padding:10px 12px}td{padding:11px 12px;border-bottom:1px solid #edf0f3;vertical-align:middle}tr:last-child td{border-bottom:0}.worker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.worker-card{background:#fff;border:1px solid var(--line);border-radius:9px;padding:18px}.worker-head{display:flex;justify-content:space-between;align-items:flex-start}.worker-head h3{margin:0;font-size:16px}.worker-head p{margin:5px 0 0;color:var(--muted);font-size:12px}.worker-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0}.worker-stat{background:#f8f9fb;border-radius:7px;padding:10px}.worker-stat small{display:block;color:var(--muted);font-size:10px}.worker-stat b{display:block;margin-top:3px;font-size:13px}.worker-meta{font-size:12px;color:#5d697b;display:grid;gap:7px;margin:14px 0}

/* forms / dialogs */
dialog{border:0;padding:0;background:transparent}dialog::backdrop{background:rgba(12,18,28,.52)}.dialog{width:min(720px,calc(100vw - 30px));max-height:calc(100vh - 32px);overflow:auto;background:#fff;border-radius:10px;box-shadow:0 24px 70px rgba(10,18,30,.28)}.dialog.wide{width:min(900px,calc(100vw - 30px))}.dialog.small{width:min(520px,calc(100vw - 30px))}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 22px;border-bottom:1px solid var(--line)}.dialog-head h2{margin:0;font-size:19px}.dialog-head p{margin:5px 0 0;color:var(--muted);font-size:12px}.dialog-close{border:0;background:none;font-size:24px;color:#7a8595;padding:0 3px}.form-section{padding:20px 22px;border-bottom:1px solid var(--line)}.form-section-title{display:grid;grid-template-columns:150px 1fr;gap:14px;margin-bottom:16px}.form-section-title strong{font-size:13px}.form-section-title span{font-size:12px;color:var(--muted)}.form-grid{display:grid;gap:14px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.form-section label{margin-bottom:0}.form-section small{color:var(--muted);font-weight:400}.check-row{display:flex!important;align-items:flex-start;gap:10px!important;border:1px solid var(--line);border-radius:7px;padding:12px;margin-top:10px!important}.check-row input{width:auto!important;margin:3px 0 0}.check-row span{display:grid;gap:2px}.check-row small{font-size:11px;color:var(--muted)}.dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 22px}.dialog-actions>div{display:flex;gap:8px}.dialog-actions .form-error{margin:0}

/* packages */
.package-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.package-admin{background:#fff;border:1px solid var(--line);border-radius:9px;padding:17px}.package-admin header{display:flex;justify-content:space-between;gap:10px}.package-admin h3{margin:0;font-size:15px}.package-admin p{margin:7px 0;color:var(--muted);font-size:12px;line-height:1.45}.package-admin .pkg-price{font-weight:750}.package-admin footer{display:flex;gap:7px;margin-top:14px}.package-meta{font-size:11px;color:#697588;display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}

/* files / console / access */
.console{margin:0;padding:18px 20px;background:#0f1722;color:#d5dde8;min-height:360px;max-height:58vh;overflow:auto;font:12px/1.55 "SFMono-Regular",Consolas,monospace;white-space:pre-wrap}.console-send{display:flex;gap:8px;padding:13px;border-top:1px solid var(--line);background:#fff}.console-send input{flex:1}.file-toolbar{display:flex;gap:7px;flex-wrap:wrap;padding:13px 16px;border-bottom:1px solid var(--line)}.file-upload input{display:none}.file-list{min-height:250px}.file-row{display:grid;grid-template-columns:1fr 100px 160px;gap:12px;align-items:center;border-bottom:1px solid #edf0f3;padding:10px 16px;font-size:12px}.file-row:last-child{border-bottom:0}.file-name{display:flex;align-items:center;gap:9px;min-width:0}.file-name button{border:0;background:none;padding:0;color:#28364a;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-row-actions{display:flex;gap:6px;justify-content:flex-end}.editor{display:block;width:100%;min-height:480px;border:0;outline:0;padding:18px;background:#101826;color:#dce4ef;font:12px/1.55 "SFMono-Regular",Consolas,monospace;resize:vertical}.access-list{padding:18px 22px;display:grid;gap:10px}.access-item{display:grid;grid-template-columns:110px 1fr auto;gap:10px;align-items:center;border-bottom:1px solid #edf0f3;padding-bottom:10px}.access-item:last-child{border:0}.access-item span{font-size:12px;color:var(--muted)}.access-item code{font-size:12px;overflow-wrap:anywhere}.copy-mini{border:1px solid var(--line2);background:#fff;border-radius:5px;padding:5px 7px;font-size:11px}

/* setup */
.setup-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.8fr);gap:15px}.setup-card{background:#fff;border:1px solid var(--line);border-radius:9px;padding:20px}.setup-card h2{font-size:17px;margin:0 0 6px}.setup-card>p{color:var(--muted);font-size:12px;line-height:1.55}.setup-form{display:grid;grid-template-columns:repeat(2,1fr);gap:0 12px;margin-top:18px}.setup-form .wide{grid-column:1/-1}.command-box{position:relative;margin-top:12px;background:#101826;border-radius:7px;padding:15px 14px;color:#dbe3ee}.command-box pre{margin:0;padding-right:75px;white-space:pre-wrap;word-break:break-all;font:11px/1.55 "SFMono-Regular",Consolas,monospace}.copy-btn{position:absolute;right:8px;top:8px;border:1px solid #39485f;background:#1b283b;color:#fff;border-radius:5px;padding:6px 9px;font-size:11px}.setup-token{background:#f6f7f9;border:1px solid var(--line);border-radius:6px;padding:10px;word-break:break-all;font:11px/1.5 "SFMono-Regular",Consolas,monospace}.step-list{display:grid;gap:9px;margin-top:16px}.step-list div{display:flex;gap:10px;font-size:12px;color:#526075}.step-list b{color:#273247}

@media(max-width:1050px){.metric-grid{grid-template-columns:repeat(2,1fr)}.product-grid,.package-admin-grid{grid-template-columns:repeat(2,1fr)}.service-row{grid-template-columns:1fr 1fr auto}.service-row>.service-stat:nth-of-type(2){display:none}.worker-grid{grid-template-columns:1fr}.setup-layout{grid-template-columns:1fr}}
@media(max-width:760px){.auth-wrap{grid-template-columns:1fr}.auth-brand{display:none}.app{display:block}.sidebar{position:static;width:auto;min-height:auto;padding:12px}.sidebar-logo{border:0;padding:4px 6px 10px}nav{display:flex;overflow:auto;margin:0}.nav-group{display:none}nav button{white-space:nowrap}.sidebar-account{display:none}.main{grid-column:auto}.topbar{height:auto;padding:16px;position:static}.content{padding:16px}.metric-grid,.product-grid,.package-admin-grid{grid-template-columns:1fr}.service-row{grid-template-columns:1fr}.service-actions{justify-content:flex-start}.form-grid.two,.form-grid.four,.setup-form{grid-template-columns:1fr}.form-section-title{grid-template-columns:1fr}.auth-card{padding:28px 22px}.worker-stats{grid-template-columns:1fr 1fr}.master-state{display:none}}

/* v0.6 multi-brand, catalogue hierarchy and dark mode */
.auth-tools{display:flex;align-items:center;gap:8px;margin-bottom:20px;justify-content:flex-end}.compact-select{border:1px solid var(--line2);background:var(--panel);color:var(--text);border-radius:7px;padding:7px 9px;font-size:12px}.top-theme{min-width:34px;height:34px;border:1px solid var(--line2);border-radius:7px;background:var(--panel);color:var(--text)}
.section-head.first{margin-top:0}.section-head.compact{margin:0 0 18px}.form-panel{padding:20px}.form-panel .form-grid label{display:grid;gap:7px;font-size:13px;font-weight:600;color:#354054}.form-panel input,.form-panel select{width:100%;border:1px solid var(--line2);border-radius:7px;background:var(--panel);color:var(--text);padding:10px 11px}.form-panel .form-grid>div{display:flex;align-items:end}
.catalog-category{margin-bottom:34px}.catalog-category>.section-head{margin-top:0}.catalog-sub{margin:16px 0 25px}.catalog-sub>h3,.service-sub>h3{margin:0 0 10px;font-size:12px;text-transform:uppercase;letter-spacing:.075em;color:var(--muted);font-weight:750}.service-category{margin-bottom:32px}.service-category>.section-head{margin-top:0}.service-sub{margin:15px 0 24px}
.admin-group{margin-bottom:28px}.group-title{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px}.group-title h3{margin:0;font-size:15px}.group-title span{font-size:11px;color:var(--muted)}
.brand-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.brand-card{background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:17px;display:grid;grid-template-columns:46px 1fr auto;gap:14px;align-items:start}.brand-mark{width:46px;height:46px;border-radius:9px;background:var(--brand,var(--accent));color:#fff;display:grid;place-items:center;font-size:13px;font-weight:800;letter-spacing:.04em}.brand-card-main{min-width:0}.brand-card-head{display:flex;gap:12px;justify-content:space-between;align-items:center}.brand-card-head h3{margin:0;font-size:16px}.brand-card-main>p{margin:5px 0;color:var(--muted);font-size:12px}.brand-domains{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}.brand-domains code{padding:4px 6px;border-radius:5px;background:#f3f5f8;border:1px solid var(--line);font-size:10px}.brand-note{margin-top:16px}

html[data-theme="dark"]{color-scheme:dark;--bg:#0e131b;--panel:#151c26;--sidebar:#0a0f16;--sidebar2:#182230;--text:#e7ecf3;--muted:#929eaf;--line:#27313f;--line2:#344153;--blue:#72a2ff;--good:#4ec984;--warn:#e6a84a;--bad:#ef6d75;--shadow:0 1px 2px rgba(0,0,0,.2),0 10px 30px rgba(0,0,0,.18)}
html[data-theme="dark"] .auth-shell{background:#0b1017}html[data-theme="dark"] .auth-wrap,html[data-theme="dark"] .auth-card,html[data-theme="dark"] .topbar,html[data-theme="dark"] .panel,html[data-theme="dark"] .metric,html[data-theme="dark"] .product-card,html[data-theme="dark"] .service-row,html[data-theme="dark"] .table-wrap,html[data-theme="dark"] .worker-card,html[data-theme="dark"] .package-admin,html[data-theme="dark"] .dialog,html[data-theme="dark"] .setup-card,html[data-theme="dark"] .console-send,html[data-theme="dark"] .brand-card{background:var(--panel);color:var(--text)}
html[data-theme="dark"] .auth-brand{background:#090e15}html[data-theme="dark"] .auth-form label,html[data-theme="dark"] .form-section label,html[data-theme="dark"] .setup-form label,html[data-theme="dark"] .form-panel .form-grid label{color:#c8d0dc}
html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea,html[data-theme="dark"] .auth-form input,html[data-theme="dark"] .form-section input,html[data-theme="dark"] .form-section select,html[data-theme="dark"] .form-section textarea,html[data-theme="dark"] .setup-form input,html[data-theme="dark"] .setup-form select,html[data-theme="dark"] .console-send input{background:#101721;color:var(--text);border-color:var(--line2)}
html[data-theme="dark"] .btn{background:#18212d;color:#e2e8f0;border-color:var(--line2)}html[data-theme="dark"] .btn:hover{background:#202b39}html[data-theme="dark"] .btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}html[data-theme="dark"] .btn.primary:hover{background:var(--accent-dark)}html[data-theme="dark"] .btn.danger{background:#1c171b;border-color:#63363b;color:#ff858d}html[data-theme="dark"] .btn.danger:hover{background:#271a1e}
html[data-theme="dark"] .notice{background:#111b29;border-color:#283a51;color:#aebcd0}html[data-theme="dark"] .empty{background:var(--panel);border-color:var(--line2)}html[data-theme="dark"] .tag{background:#202a37;color:#adb8c8}html[data-theme="dark"] .service-icon,html[data-theme="dark"] .worker-stat,html[data-theme="dark"] th,html[data-theme="dark"] .setup-token{background:#101721;color:#b9c4d3}html[data-theme="dark"] td,html[data-theme="dark"] .file-row,html[data-theme="dark"] .access-item{border-color:#222d3a}html[data-theme="dark"] .usage{background:#273240}html[data-theme="dark"] .brand-domains code{background:#101721;border-color:var(--line);color:#c9d3df}html[data-theme="dark"] .file-name button{color:#dce4ee}html[data-theme="dark"] .copy-mini{background:#18212d;color:#d9e1eb;border-color:var(--line2)}html[data-theme="dark"] .dialog-close{color:#a8b3c2}

@media(max-width:900px){.brand-grid{grid-template-columns:1fr}}
@media(max-width:760px){.auth-tools{justify-content:flex-start}.brand-card{grid-template-columns:42px 1fr}.brand-card>.btn{grid-column:2}.top-actions .compact-select{max-width:105px}}
