:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;color:#edeef7;background:#0c0d14;font-size:14px;--muted:#85889f;--line:#252735;--panel:#141620;--accent:#9b7bff}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}a{color:inherit;text-decoration:none}button{cursor:pointer;border:1px solid #343548;background:#242636;color:#edeef7;padding:11px 16px;border-radius:9px;font-weight:600;transition:.15s}button:hover{border-color:#9b7bff;background:#303044}button:disabled{opacity:.45;cursor:wait}.primary{background:#aa8aff;color:#151021;border-color:#aa8aff}.primary:hover{background:#bca3ff}.danger{color:#ff8fa3}.link{border:0;background:transparent;color:var(--muted);padding:4px}.muted,small{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--muted);font-weight:700}h1,h2,h3{letter-spacing:-.6px;margin:0 0 10px}h1{font-size:32px}h2{font-size:22px}h3{font-size:16px}p{line-height:1.6}.brand{display:flex;align-items:center;gap:11px;font-size:23px;font-weight:750}.brand-icon{display:inline-grid;place-items:center;flex-shrink:0;width:42px;height:42px;background:linear-gradient(145deg,#c5a9ff,#7754db);border-radius:13px;color:#1a1036;font-size:29px;font-weight:900}.brand small{display:block;font-size:8px;letter-spacing:2px;margin-top:5px}.nav-label{font-size:9px;letter-spacing:1.5px;color:#62657b;margin-top:50px}aside{width:242px;position:fixed;inset:0 auto 0 0;background:#11121c;border-right:1px solid var(--line);padding:34px 23px;display:flex;flex-direction:column}nav{display:grid;gap:7px;margin-top:12px}nav a{padding:14px 12px;border-radius:9px;color:#898da5;display:flex;gap:13px;align-items:center}nav a.active{background:#252034;color:#c1a7ff}nav a:hover{color:white;background:#1d1e2b}.aside-bottom{margin-top:auto;padding-top:26px;border-top:1px solid var(--line);display:flex;gap:9px;align-items:center;font-size:11px;flex-wrap:wrap}.dot{width:6px;height:6px;background:#69d8b0;border-radius:50%;display:inline-block}main{margin-left:242px;max-width:1750px;padding:0 44px}header{height:86px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;margin-bottom:38px}header span{margin:0 12px}.tag{font-size:9px;letter-spacing:1px;background:#21212f;border:1px solid #333448;color:#b7a4e7;padding:6px 9px;border-radius:5px}.heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:29px}.heading p{margin:5px 0 0;color:var(--muted)}.actions{display:flex;gap:10px;flex-wrap:wrap}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:22px 0 28px}.metric,.panel,.card{border:1px solid var(--line);background:var(--panel);border-radius:14px}.metric{padding:23px}.metric p{color:var(--muted);margin:0 0 18px;font-size:12px}.metric strong{display:block;font-size:35px;letter-spacing:-1.3px}.metric small{font-size:10px;display:block;margin-top:12px}.metric:first-child{background:linear-gradient(120deg,#27213d,#181625);border-color:#4a3b6c}.panel{padding:25px;margin-bottom:22px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.split{display:grid;grid-template-columns:2fr 1fr;gap:22px}.status-list{display:grid;gap:19px;margin-top:24px}.status-row{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:14px}.badge{font-size:10px;padding:5px 9px;border-radius:6px;color:#acafc2;background:#272a39;display:inline-block}.badge.ACTIVE,.good{color:#76d8b4;background:#18372f}.badge.COMPLETED{color:#b69bfd;background:#2c2344}.badge.FAILED,.bad{color:#ff96a8;background:#3b222e}.badge.PREPARING,.badge.CREATED{color:#ecc67e;background:#383020}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;color:#777c94;font-size:10px;font-weight:500;padding:12px 10px;border-bottom:1px solid var(--line);text-transform:uppercase}td{padding:17px 10px;border-bottom:1px solid #222431;vertical-align:middle}tbody tr:hover{background:#1b1d2a}.table-wrap{overflow:auto}.empty{text-align:center;padding:48px 16px;color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:17px}.gift-card{padding:14px;cursor:pointer}.gift-card:hover{border-color:#7e60bb}.gift-card img{width:100%;aspect-ratio:1;object-fit:contain;background:radial-gradient(ellipse,#30304a,#181a27);border-radius:10px;margin-bottom:14px}.gift-card h3{font-size:14px}.gift-card p{font-size:11px;margin:3px 0 8px;color:var(--muted)}.toolbar{display:flex;gap:12px;margin-bottom:23px;flex-wrap:wrap}.toolbar input{flex:1;min-width:180px}.toolbar select{width:220px}.pager{display:flex;justify-content:center;align-items:center;gap:18px;margin:25px}.banner{width:100%;border-radius:12px;background:#1a1b28}.label,label{display:block;color:#a0a4ba;font-size:12px;margin-bottom:17px}input,select,textarea{display:block;width:100%;background:#10121d;border:1px solid #303347;color:#eeeef8;border-radius:8px;padding:12px;margin-top:7px}input[type=range]{padding:0;accent-color:var(--accent)}input[type=checkbox]{display:inline-block;width:auto;margin-right:10px}textarea{min-height:85px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--accent)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid label{margin-bottom:0}.stack{display:grid;gap:18px}.record{padding:16px 0;border-bottom:1px solid var(--line)}.record p{margin:4px 0}.record .actions{margin-top:10px}.temp-row{display:flex;gap:16px;align-items:center}.temp-row input{flex:1}.temp-row output{min-width:35px;color:#c4aaff;font-size:23px}.login-shell{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 30%,#27203b,transparent 60%)}.login-card{width:min(420px,90vw);padding:35px;background:#151722;border:1px solid #323047;border-radius:22px}.login-card h1{font-size:40px}.login-card .brand-icon{margin-bottom:20px}.login-card button{width:100%;margin-top:10px}.login-card button span{float:right}#login-error{color:#ff8fa3}footer{font-size:10px;color:#61667d;border-top:1px solid var(--line);padding:25px 0;margin-top:40px}footer a{color:#9181b0}dialog{background:#161824;color:#eee;border:1px solid #42405b;border-radius:16px;padding:32px;width:min(900px,94vw);max-height:92vh}dialog::backdrop{background:#05060bcc;backdrop-filter:blur(5px)}.close{position:absolute;right:12px;top:10px;font-size:22px;background:transparent;border:0;padding:2px 10px}#toast{position:fixed;right:24px;bottom:24px;z-index:50;max-width:480px;padding:16px 22px;border:1px solid #7354b7;background:#2c2440;border-radius:10px;box-shadow:0 10px 30px #0008}pre{white-space:pre-wrap;overflow-wrap:anywhere;font:11px/1.6 ui-monospace,monospace;background:#0f111a;padding:16px;border-radius:9px}.inline-image{max-height:260px;max-width:100%;object-fit:contain}.model-layout{display:grid;grid-template-columns:240px 1fr;gap:24px}.progress-line{height:4px;background:linear-gradient(90deg,#a78aff,#4c365e);border-radius:4px;margin-top:22px}[hidden]{display:none!important}
@media(max-width:1000px){aside{width:190px;padding:25px 15px}main{margin-left:190px;padding:0 24px}.metrics{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}.heading{align-items:flex-start}}
@media(max-width:650px){aside{position:static;width:100%;padding:18px}.brand{font-size:20px}.nav-label,.aside-bottom{display:none}nav{display:flex;overflow:auto;gap:5px}nav a{padding:10px;white-space:nowrap;font-size:11px}main{margin:0;padding:0 18px}header{height:55px;margin-bottom:25px}header .tag{display:none}.heading{display:block}.heading .actions{margin-top:18px}h1{font-size:27px}.metric{padding:16px}.metric strong{font-size:28px}.grid{grid-template-columns:repeat(2,1fr)}.model-layout,.form-grid{grid-template-columns:1fr}.panel{padding:18px}}

.form-error{padding:16px;border:1px solid #ff7895;border-radius:10px;background:#3b222e;color:#ffd2dc;line-height:1.5;margin-bottom:18px;overflow-wrap:anywhere}.form-error:focus{outline:2px solid #ff7895;outline-offset:3px}

/* Keep wide tables inside their panels, including grid and dialog layouts. */
main,#view,.split>*,.model-layout>*,.form-grid>*,.panel,.table-wrap{min-width:0}
.split{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.panel-head{gap:16px;flex-wrap:wrap}.panel-head h2,.panel-head h3{margin-bottom:0}
.panel-head>a{white-space:nowrap}.record .actions{gap:10px}
h1,h2,h3,.record p,.status-row,.gift-card{overflow-wrap:anywhere}
.status-row{gap:12px}.status-row .badge{flex-shrink:0}
.table-wrap{max-width:100%;overscroll-behavior-x:contain}
th,td{line-height:1.5}td p{margin:6px 0}
td:last-child button{white-space:nowrap}
input,select,textarea{min-width:0;max-width:100%}
input[type=color]{height:44px;max-width:160px;padding:5px;cursor:pointer}
input[type=checkbox]{accent-color:var(--accent);width:18px;height:18px;vertical-align:middle}
.temp-row{flex-wrap:wrap}.temp-row input{min-width:100px}.temp-row output{white-space:nowrap}
button:disabled{cursor:not-allowed}
:focus-visible{outline:2px solid #c5a9ff;outline-offset:3px}
.gift-card:focus-visible{border-color:var(--accent)}
aside{overflow-y:auto}nav a[aria-current=page]{background:#252034;color:#c1a7ff}
dialog{padding:0;overflow:hidden;max-height:92dvh}
#modal-body{padding:32px;overflow:auto;max-height:calc(92dvh - 56px);overscroll-behavior:contain}
.close{position:relative;display:block;margin:6px 6px 6px auto;right:auto;top:auto;width:44px;height:44px;padding:0;line-height:1}
body:has(dialog[open]){overflow:hidden}
#toast{max-width:min(480px,calc(100vw - 32px));overflow-wrap:anywhere}
.pager{flex-wrap:wrap;gap:12px;margin:25px 0}.pager span{white-space:nowrap}
.badge.EXPIRED,.badge.CANCELLED{color:#c0c3d4;background:#2b2e3e}
@media(max-width:1000px){.split{grid-template-columns:minmax(0,1fr)}}
@media(max-width:650px){
  .aside-bottom{display:flex;margin-top:14px;padding-top:12px;gap:10px}
  .aside-bottom #logout{margin-left:auto;min-height:44px;padding:10px}
  nav{padding:4px 2px 10px;scrollbar-width:thin}nav a{min-height:44px}
  input,select,textarea{font-size:16px}
  .form-grid,.model-layout{grid-template-columns:minmax(0,1fr)}
  .panel-head{align-items:flex-start}.panel-head>button{width:100%}
  .toolbar input,.toolbar select{width:100%;flex-basis:100%;min-width:0}
  .grid{gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.gift-card{padding:10px}
  #modal-body{padding:18px}dialog{width:calc(100vw - 20px)}
  #toast{right:16px;bottom:16px;padding:14px 16px}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
