:root{
  --forest:#0B2F25;--leaf:#0E3B2E;--moss:#145A3E;--sprout:#1F7A52;--mint:#7FE3B2;--sand:#F7F3EA;--sand2:#EFE8D8;
  --gold:#C9A14A;--clay:#C9622C;--ink:#0A1410;--ink2:#34433B;--gray:#66746C;--line:#E2E8E4;--white:#fff;
  --bg:#F7F3EA;--card:#fff;--okbg:#EEFBF3;--warnbg:#FFF1DA;--errbg:#FDE8DC;
  --serif:'Fraunces',Georgia,'Times New Roman',serif;--sans:'Inter','Segoe UI',system-ui,sans-serif;--mono:'JetBrains Mono',Consolas,monospace;--r:14px;
}
@media (prefers-color-scheme:dark){:root{--bg:#071F18;--card:#0B2F25;--ink:#EAF6EF;--ink2:#BFD3C8;--gray:#8FA79B;--line:#1B4637;--okbg:#0E3B2E;--warnbg:#3a2f12;--errbg:#3d2114}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink2);font:14px/1.5 var(--sans)}
h1,h2,h3{font-family:var(--serif);color:var(--ink);margin:0 0 .4em}h1{font-size:26px}h2{font-size:19px}h3{font-size:15px}
a{color:var(--sprout);text-decoration:none}a:hover{text-decoration:underline}
.boot{padding:40px;text-align:center}
header.top{background:var(--forest);color:#fff;display:flex;align-items:center;gap:16px;padding:10px 22px;position:sticky;top:0;z-index:5}
.brand{display:flex;align-items:center;gap:10px;color:#fff;font-weight:700}.brand:hover{text-decoration:none}
.mx{background:var(--mint);color:var(--forest);font-weight:800;border-radius:9px;padding:5px 8px;font-size:13px}
.brand small{display:block;color:var(--mint);font-weight:400;font-size:10px;letter-spacing:.08em}
header.top nav{display:flex;gap:4px;flex:1;flex-wrap:wrap}header.top nav a{color:#CFE5DA;padding:6px 10px;border-radius:8px}
header.top nav a:hover,header.top nav a.on{background:var(--leaf);color:#fff;text-decoration:none}
.who{color:#CFE5DA;font-size:12px;display:flex;gap:10px;align-items:center}
main{max-width:1180px;margin:0 auto;padding:24px 20px 60px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;margin-bottom:16px}
.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.tile{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px;color:inherit}
.tile:hover{border-color:var(--sprout);text-decoration:none;transform:translateY(-1px)}
.tile .ic{background:var(--forest);color:var(--mint);width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:20px;margin-bottom:10px}
label{display:block;font-weight:600;margin:10px 0 3px;color:var(--ink)}
input,select,textarea{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--ink);font:inherit}
textarea{font-family:var(--mono);font-size:12.5px;min-height:90px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--mint);border-color:var(--sprout)}
.row{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
button,.btn{background:var(--forest);color:#fff;border:0;padding:8px 14px;border-radius:9px;font:inherit;font-weight:600;cursor:pointer;display:inline-block}
button:hover{background:var(--moss);text-decoration:none}button:disabled{opacity:.5;cursor:not-allowed}
button.alt{background:transparent;color:var(--forest);border:1px solid var(--line)}
@media (prefers-color-scheme:dark){button.alt{color:var(--mint)}}
button.go{background:var(--sprout)}button.danger{background:var(--clay)}button.sm{padding:4px 9px;font-size:12px}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
table{border-collapse:collapse;width:100%}th{text-align:left;background:var(--forest);color:#fff;padding:6px 10px;font-size:12px}
td{padding:7px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px;flex-wrap:wrap}
.tabs a{padding:8px 14px;border-radius:9px 9px 0 0;color:var(--ink2)}.tabs a.on{background:var(--card);border:1px solid var(--line);border-bottom-color:var(--card);color:var(--ink);font-weight:700}
.badge{display:inline-block;padding:1px 9px;border-radius:99px;font-size:11px;font-weight:700;background:var(--line);color:var(--ink2)}
.badge.ok{background:var(--mint);color:var(--forest)}.badge.warn{background:var(--gold);color:#2b2108}.badge.error,.badge.interrupted{background:var(--clay);color:#fff}.badge.running{background:#3b82f6;color:#fff}
.msg{padding:10px 14px;border-radius:10px;margin:10px 0;border-left:4px solid var(--sprout);background:var(--okbg)}
.msg.warn{border-color:var(--gold);background:var(--warnbg)}.msg.err{border-color:var(--clay);background:var(--errbg)}
pre.log{background:var(--forest);color:#E6F7EE;padding:12px 14px;border-radius:10px;font:12px/1.5 var(--mono);max-height:430px;overflow:auto;white-space:pre-wrap;word-break:break-word}
pre.log .warn{color:#FFD27A}pre.log .error{color:#FF9B7A}pre.log .cmd{color:var(--mint)}pre.log .out{color:#BFD3C8}
code,.mono{font-family:var(--mono);font-size:12.5px}
.step{display:grid;grid-template-columns:34px 1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.step .n{width:30px;height:30px;border-radius:50%;background:var(--forest);color:var(--mint);display:grid;place-items:center;font-weight:700}
.muted{color:var(--gray)}.small{font-size:12px}
.auth{max-width:420px;margin:8vh auto}.auth .card{padding:26px}
.copy{background:var(--forest);color:var(--mint);padding:10px;border-radius:10px;font:12px var(--mono);word-break:break-all}
img.qr{display:block;margin:10px auto;background:#fff;padding:6px;border-radius:10px}
@media (max-width:640px){main{padding:14px 12px}header.top{flex-wrap:wrap}.step{grid-template-columns:30px 1fr}.step .acts{grid-column:1/-1}}

.authhead{text-align:center;margin-bottom:16px}.mx.big{font-size:20px}.mt{margin-top:10px}
button.sair{color:#fff;border-color:#2c5f4c}textarea.short{min-height:60px}
input.chk{width:auto}label.plain{font-weight:400}
