:root{color-scheme:dark;--bg:#080d15;--panel:#111926;--panel2:#151f2e;--panel3:#1b293b;--line:#293448;--text:#e8edf5;--muted:#90a0b7;--primary:#69b7ff;--green:#6fe0af;--red:#fa8088}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:14px}button,input,select{font:inherit}button{background:var(--panel2);border:1px solid var(--line);border-radius:8px;color:var(--text);padding:9px 13px;cursor:pointer}button:hover{background:#263348}button:disabled{opacity:.4;cursor:not-allowed}input,select{width:100%;padding:11px 12px;background:#0c1420;border:1px solid #334154;border-radius:8px;color:var(--text);outline:none}input:focus,select:focus{border-color:var(--primary)}label{display:block;color:#b7c3d5;font-size:12px;margin:15px 0 0}label input{display:block;margin-top:7px}.hidden{display:none!important}.primary{background:#397cce;border-color:#579ae7;font-weight:700}.primary:hover{background:#428de8}.error{color:#ff9fa6;display:block;margin-top:13px}.login-screen{display:grid;min-height:100vh;place-items:center;background:radial-gradient(ellipse at 50% 15%,#1e3553 0%,#0c1420 45%,#080d15 90%)}.auth-card{width:min(450px,94vw);border:1px solid #304158;border-radius:18px;background:#111b2b;padding:35px;box-shadow:0 30px 100px #0006}.auth-card h1{margin:5px 0 8px;font-size:25px;letter-spacing:-.8px}.auth-card p{color:var(--muted);line-height:1.5;margin-bottom:24px}.auth-card .primary{width:100%;margin-top:22px;padding:13px}.mark{height:46px;width:46px;display:grid;place-items:center;font-size:25px;font-weight:700;color:#b9e3ff;background:#23436b;border-radius:12px;margin-bottom:21px}.app{display:grid;grid-template-columns:270px minmax(0,1fr);height:100vh;min-height:500px}.sidebar{background:#101824;border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.brand{display:flex;align-items:center;gap:12px;padding:28px 21px 24px;font-weight:800;letter-spacing:1.2px}.brand small{display:block;font-size:10px;letter-spacing:3.8px;color:var(--muted);margin-top:2px}.brand-icon{font-size:24px;display:grid;place-items:center;width:39px;height:39px;border-radius:11px;background:#244668;color:#ace2ff}.sidebar-title{color:#8393a9;font-size:10px;letter-spacing:1.5px;font-weight:800;padding:23px 18px 11px}.sidebar-title.line{display:flex;justify-content:space-between;align-items:center;padding-bottom:8px}.sidebar-title button{padding:2px 10px;font-size:18px}.environment-list{overflow-y:auto;flex:1;padding-bottom:15px}.environment{display:flex;gap:10px;align-items:center;background:none;border:1px solid transparent;border-radius:10px;width:calc(100% - 20px);margin:3px 10px;padding:11px;text-align:left}.environment.active{background:#1d324b;border-color:#365a86}.env-icon{display:grid;place-items:center;flex-shrink:0;background:#1b3b38;border-radius:9px;height:33px;width:33px;font-size:18px;color:#81e7c1}.host-icon{background:#4a262d;color:#ffb4b6}.env-copy{min-width:0;flex:1}.env-copy b,.env-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.env-copy b{font-size:12px}.env-copy small{color:var(--muted);font-size:10px;margin-top:4px}.tag{font-size:9px;border:1px solid #37694e;background:#153d2c;color:#7cf0b5;padding:4px;border-radius:5px}.tag.red{border-color:#8a4047;background:#4a2027;color:#ff9fa4}.tag.off{background:#393a40;border-color:#595d68;color:#c6cbd3}.sidebar-footer{padding:14px;border-top:1px solid var(--line);display:flex;gap:8px}.sidebar-footer button{flex:1;font-size:12px}.main{min-width:0;display:flex;flex-direction:column}.topbar{min-height:90px;display:flex;align-items:center;justify-content:space-between;padding:15px 27px;border-bottom:1px solid var(--line)}.topbar strong{font-size:19px}.topbar p{color:var(--muted);font-size:12px;margin:5px 0}.topbar-actions{display:flex;align-items:center;gap:16px}.topbar-actions #logged-user{color:var(--muted);font-size:12px}.status{color:var(--green);font-size:12px}.workspace{padding:24px;min-height:0;flex:1;display:flex;flex-direction:column;gap:15px}.toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.toolbar-actions{display:flex;gap:7px;flex-wrap:wrap}.toolbar button{font-size:12px}.segmented{display:flex;gap:3px;border:1px solid var(--line);border-radius:10px;background:#121e2e;padding:4px}.segmented button{border:none;background:transparent}.segmented button.selected{background:#2a4665}.danger-text{color:#ff9b9d}.terminal-pane,.files-pane{border:1px solid var(--line);background:#0a111b;border-radius:13px;overflow:hidden;min-height:0;flex:1;display:flex;flex-direction:column}.tabs{display:flex;align-items:center;gap:3px;padding:8px 10px;background:#152031;overflow-x:auto;min-height:52px}.tab{white-space:nowrap;border-radius:7px;background:#1b2939;border:1px solid transparent;padding:8px 10px;display:flex;gap:10px;align-items:center;font-size:12px}.tab.selected{background:#304a69;border-color:#4777a6}.tab-close{font-size:15px;color:#bdc8d6;padding:0 2px}.terminals{flex:1;position:relative;min-height:0;padding:15px}.terminal-instance{height:100%;width:100%;position:absolute;inset:15px;width:calc(100% - 30px);height:calc(100% - 30px)}.terminal-instance.hidden{display:none}.terminal-instance .xterm{height:100%;padding:6px}.hint{color:#8e9eb2;font-size:12px;padding:10px 18px}.files-tools{display:flex;gap:9px;padding:12px;background:#152031;align-items:center}.files-tools #current-path{flex:1;min-width:90px}.files-tools button{white-space:nowrap}.button-label{cursor:pointer;border:1px solid var(--line);padding:10px 12px;border-radius:8px;background:var(--panel2);font-size:12px;white-space:nowrap;margin:0}.file-list{padding:16px;overflow:auto;flex:1}.file-row{display:flex;align-items:center;gap:9px;border-bottom:1px solid #1b2c41;padding:10px 5px}.file-row .file-name{flex:1;text-align:left;border:none;background:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-row .file-name:hover{color:var(--primary)}.file-row .small-action{font-size:11px;padding:6px 8px}.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:#000b;padding:18px}.modal{width:min(510px,96vw);background:#172232;border:1px solid #3b4f68;border-radius:14px;box-shadow:0 20px 100px #0009;padding:23px;max-height:85vh;overflow:auto}.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.modal-heading h2{margin:0;font-size:20px}.modal-heading button{border:0;background:none;font-size:18px}.modal-actions{margin-top:24px;display:flex;justify-content:flex-end;gap:9px}.modal p{line-height:1.6;color:#b9c6d6}.modal .warn{border:1px solid #855146;background:#372523;color:#ffbd9e;padding:12px;border-radius:9px}.modal pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px;max-height:300px;overflow-y:auto}.toast{position:fixed;right:20px;bottom:20px;background:#233b50;padding:15px 20px;border:1px solid #407da2;border-radius:9px;max-width:400px;z-index:101}.toast.error-toast{border-color:#c66974;background:#512d35}@media(max-width:820px){.app{grid-template-columns:190px minmax(0,1fr)}.brand{font-size:12px;padding:20px 10px}.topbar{padding:13px}.workspace{padding:10px}.topbar-actions{gap:6px}.topbar-actions .status{display:none}.files-tools{flex-wrap:wrap}.files-tools #current-path{order:-1;flex-basis:100%}}@media(max-width:600px){.app{grid-template-columns:130px minmax(0,1fr)}.sidebar-title{padding-left:8px;font-size:9px}.environment{padding:6px;margin:3px 4px;width:calc(100% - 8px)}.env-icon,.brand-icon,.environment .tag{display:none}.topbar strong{font-size:14px}.topbar p{font-size:10px}.topbar-actions #logged-user{display:none}.sidebar-footer{flex-direction:column;padding:5px}.workspace{padding:5px}}

/* Cadastro e troca de autenticador totalmente pela interface */
.setup-card{width:min(510px,95vw);margin:24px auto}
.setup-card h2{font-size:17px;margin:10px 0}
.setup-card form{margin-top:12px}
.setup-card .primary{display:block;width:100%;margin-top:20px}
.qr-image{display:block;width:225px;height:225px;max-width:100%;object-fit:contain;margin:16px auto;background:white;border:9px solid white;border-radius:12px}
.manual-secret{margin:12px 0;color:#c2d2e3;font-size:12px}
.manual-secret summary{cursor:pointer;padding:8px 0}
.manual-secret code{display:block;margin-top:8px;font-size:12px;overflow-wrap:anywhere;background:#0a111b;border-radius:7px;padding:12px;user-select:all}
.manual-secret button{margin:9px 0}
.small-note{font-size:12px!important;color:#aebdd0!important;line-height:1.6!important}
.subtle-button{margin-top:9px;width:100%;background:transparent}
@media(max-width:600px){#security-open{max-width:85px;padding:6px;font-size:11px}.setup-card{padding:22px}}

/* Initial authentication: preserve Postal's checking state, never flash login. */
[hidden]{display:none!important}
.boot-card{text-align:center}
.boot-card .mark{margin-left:auto;margin-right:auto}
.boot-card p{margin-bottom:18px}
.boot-spinner{height:26px;width:26px;border:3px solid #324961;border-top-color:var(--primary);border-radius:50%;margin:20px auto 6px;animation:boot-spin .8s linear infinite}
@keyframes boot-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.boot-spinner{animation:none;border-top-color:#89c6ff}}
