:root{--dark:#102e2a;--green:#1b7456;--mint:#def4e9;--line:#dfe9e4;--bg:#f6f9f7;--muted:#687b74;--danger:#ad3343}*{box-sizing:border-box}body{margin:0;font:15px/1.5 system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:var(--dark);background:var(--bg)}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}.top{background:var(--dark);color:white;padding:13px max(16px,calc((100vw - 1100px)/2));display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:flex;align-items:center;gap:12px}.brand strong{font-size:17px}.brand em{font-weight:400;font-style:normal;color:#a9e5ca}.brand small{display:block;color:#b3cfc4;font-size:11px}.logo{display:grid;place-items:center;background:var(--green);border:1px solid #6aae96;border-radius:12px;width:41px;height:41px;font-size:27px}.pilot{font-size:10px;font-weight:700;border:1px solid #52816c;padding:5px 8px;border-radius:20px;white-space:nowrap}.container{max-width:1100px;margin:auto;padding:30px 18px}.auth-grid{display:grid;grid-template-columns:1.1fr .85fr;align-items:center;gap:44px;min-height:65vh}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--green)}h1{font-size:clamp(30px,5vw,50px);letter-spacing:-.04em;line-height:1.15;margin:10px 0 16px}h1 span{color:var(--green)}h2{font-size:21px;margin:0 0 10px}h3{margin:0 0 6px}.intro>p{color:var(--muted);max-width:500px}.feature{display:flex;gap:10px;margin-top:12px;font-size:14px}.feature span{font-weight:900;color:var(--green)}.panel{background:white;border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:0 10px 34px #173c2910}.tabs{display:flex;gap:8px;padding:4px;background:#f0f5f1;border-radius:12px;margin-bottom:22px}.tabs button{border:0;background:transparent;flex:1;padding:12px 7px;color:var(--muted);border-radius:9px;font-weight:650}.tabs .active{background:white;color:var(--dark);box-shadow:0 1px 5px #0001}.stack{display:grid;gap:17px}label{display:grid;gap:6px;font-size:13px;font-weight:650}label small{font-weight:400;color:var(--muted)}input,select{border:1px solid #cbd9d1;border-radius:10px;padding:12px;min-width:0;width:100%;background:white;color:var(--dark)}input:focus,select:focus{outline:2px solid #a2d8bc;border-color:var(--green)}.primary,.secondary{border-radius:10px;padding:11px 16px;font-weight:750}.primary{background:var(--green);color:white;border:1px solid var(--green)}.primary:hover{background:#12563f}.secondary{background:white;color:var(--dark);border:1px solid var(--line)}.small{padding:8px 12px;font-size:13px}.muted{color:var(--muted)}.tiny{font-size:12px}.heading{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:25px}.heading h1{margin:0}.heading p{margin:6px 0}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:26px}.metric{background:white;border:1px solid var(--line);border-radius:14px;padding:16px;display:grid;gap:4px}.metric strong{font-size:27px;line-height:1.15}.metric small{color:var(--muted)}.section-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.section-title h2{margin:0}.cards{display:grid;gap:10px;margin-bottom:20px}.server-card{padding:16px;background:white;border:1px solid var(--line);border-radius:14px;display:flex;align-items:center;gap:12px}.server-icon{background:var(--mint);color:var(--green);border-radius:12px;display:grid;place-items:center;flex:0 0 44px;height:44px;font-size:23px}.server-info{flex:1;min-width:0}.server-info strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.server-info small{color:var(--muted);overflow-wrap:anywhere}.server-card select{max-width:135px;padding:8px;font-size:13px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.formgrid h3,.formgrid .actions,.formgrid p{grid-column:1/-1}.actions{display:flex;gap:10px;flex-wrap:wrap}.subtle{font-size:12px;color:var(--muted)}.pending{border-color:#edddaa;background:#fffdf6}.user-row{background:white;border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.user-row .server-info{flex-basis:225px}.user-row .actions{align-items:center}.user-row select{width:auto;padding:8px}.pill{display:inline-block;background:var(--mint);border-radius:99px;padding:3px 9px;font-size:11px;font-weight:700}.notice{border:1px solid #d5c9a6;background:#fff9e9;border-radius:12px;padding:12px 15px;margin-bottom:18px}.notice.error{background:#fff0f2;border-color:#f0c5cd;color:#7c2434}.empty{border:1px dashed #b2cec0;border-radius:13px;padding:25px;text-align:center;color:var(--muted);background:#fff}footer{border-top:1px solid var(--line);margin-top:36px;padding-top:18px;font-size:12px;color:var(--muted);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}[hidden]{display:none!important}@media(max-width:760px){.auth-grid{grid-template-columns:1fr;min-height:0;gap:22px}.intro h1{font-size:34px}.intro>p{font-size:13px}.container{padding:18px 14px}.auth-panel{padding:17px}.pilot{font-size:9px}.summary{gap:8px}.metric{padding:12px}.metric strong{font-size:20px}.metric small{font-size:10px}.server-card{padding:12px}.server-card select{max-width:118px}.formgrid{grid-template-columns:1fr}.formgrid h3,.formgrid .actions,.formgrid p{grid-column:auto}.section-title h2{font-size:19px}}@media(max-width:380px){.top{padding:12px}.brand strong{font-size:14px}.pilot{font-size:9px}.heading h1{font-size:28px}.heading button{padding:8px 10px;font-size:12px}}

.term-screen{background:#0a1317;border-radius:16px;padding:10px;min-height:65dvh;display:flex;flex-direction:column;gap:10px;color:#def5e9}
.term-screen[hidden]{display:none}
.term-header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
#terminal-output{flex:1;min-height:50dvh;overflow:hidden;touch-action:pan-y}
.term-keys{display:flex;overflow-x:auto;gap:6px;padding:3px;white-space:nowrap}
.term-keys button{padding:8px 10px;border:1px solid #406860;border-radius:10px;background:#183b36;color:white}
.term-screen .muted{color:#97aaa7}
@media(max-width:640px){.term-screen{margin:0 -12px;padding:8px}.term-header strong{font-size:13px}#terminal-output{min-height:55dvh}}

.ssh-dialog{border:1px solid #52746d;border-radius:18px;background:#132d2a;color:#eafff9;max-width:min(94vw,420px);width:100%;padding:24px;box-shadow:0 15px 60px #0009}
.ssh-dialog::backdrop{background:#071c1cb5}
.ssh-dialog h2{margin:0}
.ssh-dialog input{max-width:100%}

#app-view.term-active .heading{display:none}

.storage-panel{margin:18px 0 24px}.storage-panel progress,.sftp-screen progress{width:100%;height:12px;accent-color:#257d60;margin:12px 0}.storage-panel .cards{margin-top:15px}.upload-label{cursor:pointer;display:inline-flex;background:#174a3c;border-radius:10px;padding:11px 16px;color:#fff;font-weight:650;font-size:14px}.storage-file{display:flex;align-items:center;gap:10px}.storage-file .server-info{min-width:0}.storage-file .actions{margin-left:auto}.sftp-screen{margin-bottom:26px}.sftp-screen .actions label{flex:1;min-width:140px}.sftp-screen .actions input{width:100%}.sftp-screen .cards{margin-top:18px}.sftp-screen .panel{margin-top:16px}.sftp-screen #sftp-file{width:100%}.sftp-screen button:disabled,.storage-panel button:disabled{opacity:.55;cursor:not-allowed}

/* NTC-03: compact responsive billing choices */
.billing-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin:.8rem 0}
.billing-choices[hidden]{display:none}
.billing-plan{display:flex;flex-direction:column;gap:.55rem;padding:1rem;border:1px solid #426b62;border-radius:12px;background:#133f38}
.billing-plan span{font-size:.78rem;color:#b5c8c2}
.billing-plan b{font-size:1.2rem}
.billing-plan button{margin-top:auto}
@media(max-width:600px){.billing-choices{grid-template-columns:1fr}.billing-plan{display:grid;grid-template-columns:1fr auto;align-items:center}.billing-plan span{grid-column:1}.billing-plan b{grid-column:2;grid-row:1}.billing-plan button{grid-column:1/3}}
/* NTC-04: clean mobile-first operations dashboard; no external assets. */
.ops-view{margin:30px 0 22px;border-top:1px solid var(--line);padding-top:25px}
.ops-title{align-items:end}.ops-title h2{margin:2px 0 0}
.ops-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0 20px}
.ops-metrics .metric{min-width:0}.ops-metrics .metric strong{font-size:clamp(17px,2.5vw,25px);overflow-wrap:anywhere}
.ops-overview{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:12px;margin-bottom:19px}
.ops-overview .panel{padding:18px;min-width:0}.ops-overview h3{font-size:15px;margin-bottom:15px}
.ops-trend{display:flex;align-items:end;justify-content:space-between;gap:2px;height:140px;max-width:100%;padding:0 1px}
.ops-day{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:end;gap:3px}
.ops-bars{display:flex;align-items:end;justify-content:center;gap:2px;height:calc(100% - 24px);width:100%}
.ops-bars i{width:min(42%,12px);min-height:2px;border-radius:3px 3px 0 0}
.ops-reg{background:#257c60}.ops-pay{background:#e0aa59}.ops-day small{font-size:9px;transform:rotate(-30deg);white-space:nowrap;margin-top:4px}
.ops-statuses{display:grid;gap:7px}.ops-status{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:7px 0;font-size:13px}
.ops-status strong{white-space:nowrap}.ops-tabs{display:flex;overflow-x:auto;gap:8px;padding:7px;background:#edf4ef;border-radius:13px;margin:16px 0;scrollbar-width:thin}
.ops-tabs button{border:0;border-radius:9px;background:transparent;padding:11px 13px;white-space:nowrap;font-weight:700;color:#4c6c62;font-size:13px}
.ops-tabs button.active{background:white;color:#124d3b;box-shadow:0 2px 8px #0001}
.ops-filter-row{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-bottom:15px}.ops-filter-row label{flex:1;min-width:140px}.ops-filter-row button{margin-bottom:1px}
.ops-user .server-info p{margin:7px 0}.ops-controls{display:grid;gap:8px;flex-basis:260px}.ops-controls select{width:100%;max-width:100%}.ops-controls .actions{gap:6px}
.ops-small-meter{height:6px;background:#e0eae3;border-radius:99px;overflow:hidden;margin:9px 0 5px}.ops-small-meter span{display:block;height:100%;background:#227b58;border-radius:99px;max-width:100%}
.ops-pager{display:flex;align-items:center;justify-content:center;gap:12px;margin:16px 0}
.ops-log{display:grid;grid-template-columns:minmax(130px,180px) 1fr;gap:6px 13px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;margin-bottom:8px;background:white;overflow-wrap:anywhere}
.ops-log small{grid-column:2;color:var(--muted);font-size:11px}.ops-log time{font-size:12px;color:var(--muted)}
#ops-readiness ul{padding-left:21px;font-size:13px;color:var(--muted)}
@media(max-width:760px){.ops-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.ops-overview{grid-template-columns:1fr}.ops-trend{height:130px}.ops-filter-row button{width:100%}.ops-controls{flex-basis:100%;width:100%}.ops-log{grid-template-columns:1fr}.ops-log small{grid-column:1}.ops-title h2{font-size:20px}}

/* NTC-05 closed-beta mobile admin */
.beta-code{border:1px solid #bdd8c4;border-radius:10px;background:#eff8ef;padding:12px;margin:14px 0;display:grid;gap:9px}
.beta-code[hidden]{display:none}
.beta-code code{overflow-wrap:anywhere;user-select:text;font-size:13px}
.beta-check{display:grid;gap:9px;padding:12px;margin:9px 0;border:1px solid var(--line);border-radius:11px;background:white}
.beta-check small{display:block;color:var(--muted);margin-top:4px}
.beta-check .actions{display:flex;align-items:center;gap:8px}
.beta-check .actions select{min-width:0;flex:1}
.beta-check label{display:grid;gap:4px}
@media(max-width:600px){#ops-beta-invite-form{flex-direction:column;align-items:stretch}#ops-beta-invite-form label{width:100%}}
