:root{--bg:#faf6f0;--surface:#fffdfb;--surface-2:#f7f2ea;--line:#eee7dd;--line-2:#f4efe7;--fg:#2b2622;--fg-2:#6b6259;--muted:#a89f94;--brand-500:#0f9b8e;--brand-600:#12a594;--brand-sf:#e4f5f2;--accent:#f0765b;--accent-sf:#fdeee9;--gold:#e0a43b;--gold-sf:#fbf1dc;--success:#3f9d5a;--success-sf:#e8f5ec;--warn:#c98a1e;--warn-sf:#fbf1dc;--danger:#d15b4a;--danger-sf:#fbeae6;--info:#0f9b8e;--info-sf:#e4f5f2;--radius-sm:10px;--radius-md:13px;--radius-lg:18px;--radius-xl:22px;--shadow-1:0 2px 4px #785a320d,0 8px 24px -14px #785a322e;--shadow-brand:0 8px 18px -8px #0f9b8e99;--shadow-accent:0 8px 18px -8px #f0765b99;--font-sans:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace;--ease:cubic-bezier(.4,0,.2,1);--dur-fast:.12s;--dur-base:.2s;--dur-slow:.32s}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}.app{grid-template-columns:258px 1fr;min-height:100vh;display:grid}body{background:radial-gradient(1200px 600px at 100% -8%, var(--brand-sf) 0, transparent 45%), radial-gradient(1000px 500px at -5% 0, var(--gold-sf) 0, transparent 40%), var(--bg);background-attachment:fixed}.side{background:linear-gradient(180deg, var(--surface) 0%, var(--surface-2) 100%);border-right:1px solid var(--line);flex-direction:column;gap:3px;padding:22px 15px;display:flex;box-shadow:1px 0 #785a3208,6px 0 30px -22px #785a3259}.brand{align-items:center;gap:11px;padding:6px 8px 20px;display:flex}.logo{background:linear-gradient(135deg, var(--brand-500), #14b8a6);color:#fff;border-radius:13px;place-items:center;width:40px;height:40px;font-weight:800;display:grid;box-shadow:0 6px 16px -6px #0f9b8e80}.logo.accent{background:linear-gradient(135deg, var(--accent), var(--gold));box-shadow:0 6px 16px -6px #f0765b80}.brand b{letter-spacing:-.3px;font-size:17px}.brand span{color:var(--muted);font-size:11px;font-weight:500;display:block}.nav-label{text-transform:uppercase;letter-spacing:.13em;color:var(--muted);padding:16px 12px 7px;font-size:10px;font-weight:800}.nav a,.nav button{text-align:left;width:100%;color:var(--fg-2);transition:background var(--dur-fast) var(--ease), color var(--dur-fast);background:0 0;border:none;border-radius:11px;align-items:center;gap:12px;padding:10px 13px;font-size:13.5px;font-weight:550;display:flex;position:relative}.nav a svg,.nav button svg{opacity:.6;width:17px;height:17px;transition:opacity var(--dur-fast)}.nav a:hover,.nav button:hover{background:var(--line-2);color:var(--fg)}.nav a:hover svg,.nav button:hover svg{opacity:.9}.nav a.on,.nav button.on{background:linear-gradient(135deg, var(--brand-sf), color-mix(in srgb, var(--surface) 82%, var(--brand-sf)));color:var(--brand-600);box-shadow:0 1px 2px #785a320d, inset 0 0 0 1px color-mix(in srgb, var(--brand-500) 14%, transparent);font-weight:700}.nav a.on:before,.nav button.on:before{content:"";background:linear-gradient(180deg, var(--brand-500), var(--brand-600));border-radius:0 4px 4px 0;width:4px;height:20px;position:absolute;top:50%;left:-15px;transform:translateY(-50%)}.nav a.on svg,.nav button.on svg{opacity:1;color:var(--brand-500)}.main{padding:22px 32px 60px;overflow:auto}.topbar{align-items:center;gap:16px;margin-bottom:24px;display:flex}.search{background:var(--surface);border:1px solid var(--line);max-width:420px;color:var(--muted);box-shadow:var(--shadow-1);border-radius:14px;flex:1;align-items:center;gap:10px;padding:11px 15px;font-size:13px;display:flex}.search svg{flex-shrink:0;width:16px;height:16px}.act svg{width:14px;height:14px}.btn svg{width:16px;height:16px}.kbd{background:var(--brand-sf);color:var(--brand-500);border-radius:6px;margin-left:auto;padding:2px 7px;font-size:10.5px;font-weight:700}.avatar{color:#fff;width:42px;height:42px;box-shadow:var(--shadow-1);background:linear-gradient(135deg, var(--accent), var(--gold));border-radius:13px;place-items:center;margin-left:auto;font-size:14px;font-weight:700;display:grid}h1{letter-spacing:-.7px;margin-bottom:3px;font-size:26px}.sub{color:var(--fg-2);font-size:13.5px}.row{justify-content:space-between;align-items:center;display:flex}.head{gap:16px;margin-bottom:22px}.btn{background:linear-gradient(135deg, var(--brand-500), var(--brand-600));color:#fff;box-shadow:var(--shadow-brand);transition:transform var(--dur-fast) var(--ease), opacity var(--dur-fast);border:none;border-radius:13px;align-items:center;gap:8px;padding:12px 19px;font-size:13px;font-weight:650;display:inline-flex}.btn:hover{opacity:.94}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.accent{background:linear-gradient(135deg, var(--accent), #ef6a4d);box-shadow:var(--shadow-accent)}.btn.ghost{background:var(--surface);color:var(--fg);border:1px solid var(--line);box-shadow:var(--shadow-1)}.btn.sm{border-radius:10px;padding:8px 13px;font-size:12.5px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 1px 2px #785a320a,0 4px 10px -6px #785a321f,0 18px 40px -28px #785a3247}.pad{padding:22px 24px}.grid{gap:18px;display:grid}.kpis{grid-template-columns:repeat(4,1fr);margin-bottom:18px}.two{grid-template-columns:1.6fr 1fr;align-items:start;margin-bottom:18px}.kpi{padding:20px 22px}.kpi .ic{border-radius:14px;place-items:center;width:44px;height:44px;margin-bottom:16px;display:grid}.ic.teal{background:var(--brand-sf);color:var(--brand-500)}.ic.coral{background:var(--accent-sf);color:var(--accent)}.ic.gold{background:var(--gold-sf);color:var(--gold)}.ic.ok{background:var(--success-sf);color:var(--success)}.kpi .lbl{color:var(--fg-2);font-size:12px;font-weight:600}.kpi .val{letter-spacing:-.8px;margin-top:3px;font-size:27px;font-weight:750}.kpi .chg{margin-top:6px;font-size:11.5px;font-weight:650}.up{color:var(--success)}.dn{color:var(--danger)}.ttl{letter-spacing:-.2px;font-size:15.5px;font-weight:700}.ttl-sub{color:var(--muted);margin-top:2px;font-size:12px}.link{color:var(--brand-500);font-size:12.5px;font-weight:650}table{border-collapse:collapse;width:100%;font-size:13px}thead th{text-align:left;text-transform:uppercase;letter-spacing:.07em;color:var(--fg-2);background:linear-gradient(180deg, var(--surface-2), color-mix(in srgb, var(--surface-2) 70%, var(--line)));border-bottom:1.5px solid var(--line);z-index:1;padding:13px 16px;font-size:10.5px;font-weight:800;position:sticky;top:0}td{border-top:1px solid var(--line-2);color:var(--fg-2);padding:13px 16px}tbody tr:first-child td{border-top:none}tbody tr:nth-child(2n) td{background:color-mix(in srgb, var(--surface-2) 45%, transparent)}tbody tr:hover td{background:var(--brand-sf)}tbody tr:last-child td{border-bottom:none}.name{color:var(--fg);font-weight:650}.mono{font-family:var(--font-mono);font-size:12px}.pill{border-radius:20px;align-items:center;gap:6px;padding:4px 11px;font-size:11px;font-weight:650;display:inline-flex}.p-ok{background:var(--success-sf);color:var(--success)}.p-run{background:var(--brand-sf);color:var(--brand-500)}.p-warn{background:var(--warn-sf);color:var(--warn)}.p-off{color:#8a8177;background:#f0ece5}.p-prov{background:var(--gold-sf);color:var(--gold)}.pill .d{background:currentColor;border-radius:50%;width:6px;height:6px}.meter{margin:0 0 15px}.meter .row{color:var(--fg-2);margin-bottom:7px;font-size:12.5px}.meter b{color:var(--fg);font-weight:650}.track{background:var(--line);border-radius:6px;height:9px;overflow:hidden}.fill{background:linear-gradient(90deg, var(--brand-500), #3cc0b2);height:100%;transition:width var(--dur-slow) var(--ease);border-radius:6px}.fill.coral{background:linear-gradient(90deg, var(--accent), #f59d86)}.fill.gold{background:linear-gradient(90deg, var(--gold), #eec06e)}.field{margin-bottom:14px}.field label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:7px;font-size:11px;font-weight:700;display:block}.field input,.field select{width:100%;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:11px 13px;font-family:inherit;font-size:13.5px}.field input:focus,.field select:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-sf);outline:none}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);background:var(--surface);color:var(--fg-2);border-radius:20px;padding:7px 13px;font-size:12.5px;font-weight:600}.chip.on{background:var(--brand-sf);color:var(--brand-500);border-color:#0000}.steps{flex-direction:column;gap:2px;display:flex}.step{align-items:center;gap:11px;padding:9px 4px;font-size:13px;display:flex}.step .dot{border-radius:50%;flex-shrink:0;place-items:center;width:22px;height:22px;font-size:12px;display:grid}.step .dot.ok{background:var(--success);color:#fff}.step .dot.run{background:var(--gold-sf);color:var(--gold)}.step .dot.pending{background:var(--line);color:var(--muted)}.step .dot.fail{background:var(--danger);color:#fff}.step .st-name{color:var(--fg);font-weight:600}.step .st-note{color:var(--muted);margin-left:auto;font-size:11.5px}.sec-h{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:4px 2px 12px;font-size:11px;font-weight:800}.tiles{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:12px;display:grid}.tile{background:var(--surface);border:1px solid var(--line);text-align:center;box-shadow:var(--shadow-1);transition:transform var(--dur-fast) var(--ease), box-shadow var(--dur-base) var(--ease), border-color var(--dur-base);border-radius:16px;flex-direction:column;align-items:center;gap:10px;padding:18px 12px 14px;display:flex}.tile:hover{border-color:var(--line);transform:translateY(-3px);box-shadow:0 10px 26px -14px #785a3266}.tile:disabled{opacity:.45;cursor:not-allowed;box-shadow:var(--shadow-1);transform:none}.tile .tico{border-radius:14px;place-items:center;width:46px;height:46px;display:grid}.tile .tico svg{width:22px;height:22px}.tile .tlabel{color:var(--fg);font-size:12px;font-weight:650;line-height:1.25}.tile.danger:hover{border-color:var(--danger)}.t-teal .tico{color:#0f9b8e;background:#e0f5f1}.t-blue .tico{color:#3b6fd4;background:#e5eefc}.t-violet .tico{color:#7a5bd0;background:#eee9fb}.t-amber .tico{color:#d38a1b;background:#fbf1dc}.t-rose .tico{color:#d1495b;background:#fce8ec}.t-green .tico{color:#3f9d5a;background:#e6f5ea}.t-slate .tico{color:#5b6672;background:#eceef1}.t-red .tico{color:#d15b4a;background:#fbe6e2}.rescards{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;display:grid}.rescard{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-1);border-radius:16px;padding:16px 18px}.rescard .rhead{align-items:center;gap:9px;margin-bottom:12px;display:flex}.rescard .rico{border-radius:10px;place-items:center;width:34px;height:34px;display:grid}.rescard .rico svg{width:17px;height:17px}.rescard .rname{color:var(--fg-2);font-size:12px;font-weight:700}.rescard .rval{letter-spacing:-.5px;font-size:19px;font-weight:750}.rescard .rval small{color:var(--muted);font-size:12px;font-weight:600}.rescard .rsub{color:var(--muted);justify-content:space-between;margin-top:8px;font-size:11px;display:flex}.panel.lift{transition:transform var(--dur-fast) var(--ease), box-shadow var(--dur-base) var(--ease)}.panel.lift:hover{transform:translateY(-2px);box-shadow:0 12px 30px -16px #785a326b}.kpi{position:relative;overflow:hidden}.kpi:after{content:"";background:radial-gradient(circle at 100% 0, var(--brand-sf) 0, transparent 70%);opacity:.5;pointer-events:none;width:120px;height:120px;position:absolute;inset:0 0 auto auto}.act{border:1px solid var(--line);background:var(--surface);border-radius:10px;place-items:center;width:31px;height:31px;margin-left:4px;display:inline-grid}.act:hover{background:var(--line-2)}.estimate{background:var(--brand-sf);border-radius:13px;padding:14px 16px}.empty{text-align:center;color:var(--muted);padding:48px 20px}.empty svg{opacity:.4;width:44px;height:44px;margin-bottom:12px}.spinner{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:15px;height:15px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toast{background:var(--fg);color:#fff;box-shadow:var(--shadow-1);z-index:100;border-radius:30px;padding:11px 20px;font-size:13px;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.ico-sm{flex-shrink:0;width:15px;height:15px}.ccip-footer{text-align:center;color:var(--muted);border-top:1px solid var(--line-2);margin-top:28px;padding:26px 0 6px;font-size:12px}.ccip-footer a{color:var(--brand-500);font-weight:650}.ccip-footer a:hover{text-decoration:underline}@media (width<=1100px){.app{grid-template-columns:1fr}.side{display:none}.kpis{grid-template-columns:repeat(2,1fr)}.two{grid-template-columns:1fr}}.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}
