/* Techcombank-inspired palette; red is supplied by the user, gold is a UI accent.
   Darker action/link reds preserve small-text contrast. ReconFlow retains its identity. */
:root{--brand-red:#ed1c24;--action-red:#cc1720;--action-hover:#b5121b;--link-red:#b5121b;--focus-red:#b5121b;--gold:#b18a49;--gold-ink:#76541d;--gold-soft:#fbf4e7;--ink:#202020;--muted:#626262;--line:#e1e1e1;--bg:#f5f5f5;--nav:#171717;--amber:#89500d}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}h1,h2,h3,p{margin:0 0 14px}h1{font-size:32px;line-height:1.2;letter-spacing:-1px;font-weight:650}h2{font-size:18px;font-weight:650;letter-spacing:-.3px}h3{font-size:15px;font-weight:650;margin-top:22px}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border:1px solid #858585;background:white;border-radius:6px;color:var(--ink);font:inherit;font-weight:600;cursor:pointer;white-space:nowrap;min-height:42px}button:hover,.button:hover{background:#fff1f1;text-decoration:none}.primary{background:var(--action-red);border-color:var(--action-red);color:white}.primary:hover{background:var(--action-hover);color:white}.danger{background:#8e1c23;color:white;border-color:#8e1c23}.danger:hover{background:#74151c;color:white;border-color:#74151c}.text-button{border:0;background:none;padding:5px;min-height:32px}.muted{color:var(--muted)}.small{font-size:12px}.eyebrow{font-size:10px;letter-spacing:1.6px;color:var(--muted);font-weight:700;margin-bottom:12px}.lede{font-size:16px;color:var(--muted);max-width:760px;margin-bottom:28px}.sidebar{position:fixed;top:0;bottom:0;left:0;width:242px;background:var(--nav);color:#ededed;padding:28px 18px;display:flex;flex-direction:column}.wordmark{display:flex;align-items:center;gap:12px;font-size:22px;font-weight:750;letter-spacing:-.8px;color:var(--brand-red)}.wordmark>span{color:inherit;letter-spacing:-.5px}.sidebar .wordmark span{color:white}.workspace{font-size:9px;letter-spacing:1.6px;margin:32px 12px 12px;color:#b1b1b1}.sidebar nav{display:flex;flex-direction:column;gap:3px;overflow:auto}.sidebar nav a{padding:9px 13px;font-size:12px;border-radius:5px;color:#d0d0d0}.sidebar nav a:hover{background:#2b2b2b;text-decoration:none;color:white}.sidebar nav a[aria-current]{background:#3a2022;color:#ffffff;border-left:3px solid var(--brand-red);padding-left:10px}.sidebar-foot{margin-top:auto;padding:25px 12px 0;font-size:11px;color:#b1b1b1}.environment{font-size:9px;letter-spacing:1px;color:var(--gold)}.sidebar-foot p{margin-top:8px}.shell{margin-left:242px}.topbar{border-top:3px solid var(--brand-red);padding:16px 36px;border-bottom:1px solid var(--line);background:white;display:flex;justify-content:space-between;gap:20px;font-size:12px}.identity{display:flex;gap:20px;align-items:center}.badge.badge-measured{background:var(--gold-soft);border-color:#e3d2b4;color:var(--gold-ink)}.badge{display:inline-block;background:#f0f0f0;border:1px solid #dedede;color:#454545;font-size:10px;letter-spacing:.4px;font-weight:650;padding:4px 8px;border-radius:4px;vertical-align:middle}.identity .badge{margin-left:7px}main{max-width:1570px;margin:auto;padding:36px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:12px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:26px 0 30px;background:white;border:1px solid var(--line);border-radius:8px}.metrics article{padding:23px;border-right:1px solid var(--line)}.metrics article:last-child{border:0}.metrics article p{color:var(--muted);font-size:12px;margin-bottom:14px}.metrics strong{display:block;font-size:38px;font-weight:600;letter-spacing:-1px;font-variant-numeric:tabular-nums}.metrics small{font-size:18px;color:var(--muted);letter-spacing:0}.metrics article>span{font-size:10px;color:var(--muted);display:block;margin-top:8px}.panel{background:white;border:1px solid var(--line);border-radius:8px;padding:26px;margin-bottom:24px;min-width:0}.overview-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:24px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.section-heading h2{margin:0}.steps{list-style:none;padding:0;counter-reset:steps}.steps li{padding:15px 0;border-bottom:1px solid var(--line)}.steps p{color:var(--muted);font-size:12px;margin:6px 0}.run-list a{display:grid;grid-template-columns:80px 140px 80px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);align-items:center;font-size:12px}label{display:block;font-size:12px;font-weight:600;margin:16px 0}input,select,textarea{display:block;margin-top:7px;padding:10px 12px;border:1px solid #949494;border-radius:5px;width:100%;background:white;color:var(--ink);font:inherit}input[type=file]{font-size:12px}form{margin:0}form button{margin-top:5px}.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:16px}.inline-link,td a{color:var(--link-red);text-decoration:underline;text-underline-offset:3px}.empty{text-align:center;padding:45px 20px;color:var(--muted)}.empty h2,.empty h3{color:var(--ink);margin-top:0}.empty p{max-width:450px;margin:12px auto 24px}.chart-frame{position:relative;height:290px;width:100%;min-width:0;margin-top:22px}canvas{max-width:100%;max-height:290px}.table-panel{padding:22px 0}.table-panel>.section-heading{padding:0 24px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;padding:13px 24px;color:var(--muted);font-weight:600;background:#f7f7f7;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:15px 24px;border-bottom:1px solid #ececec;max-width:460px;vertical-align:top;font-variant-numeric:tabular-nums}tbody tr:hover{background:#fff8f8}td:first-child{font-weight:600}.table-panel>.actions{padding:0 24px}pre{background:#f6f6f6;padding:16px;border-radius:5px;font:12px/1.65 ui-monospace,SFMono-Regular,monospace;white-space:pre-wrap;overflow-wrap:anywhere;max-height:650px;overflow:auto}details{margin:16px 0}summary{cursor:pointer;font-weight:600;font-size:12px}.case-banner{display:flex;gap:12px;align-items:center;margin:20px 0}.evidence-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:20px 0}.evidence-grid div{background:white;padding:12px}.evidence-grid span{display:block;color:var(--muted);font-size:11px}.evidence-grid b{overflow-wrap:anywhere}.alert{color:#873b18;background:#fff1e3;padding:14px;border-left:3px solid #b56820}.success{color:#15664c;background:#ebf6f0;padding:14px}.projection>div{display:flex;justify-content:space-between;padding:18px 0;border-bottom:1px solid var(--line)}.projection strong{font-size:20px;font-variant-numeric:tabular-nums}.projection{margin:18px 0 26px}hr{border:0;border-top:1px solid var(--line);margin:26px 0}footer{font-size:10px;color:var(--muted);padding:10px 0 0;border-top:1px solid var(--line);margin-top:25px}.break{overflow-wrap:anywhere}.login-body{border-top:5px solid var(--brand-red);background:#f5f5f5;min-height:100dvh}.login-wrap{max-width:580px;padding:60px 25px}.login-wrap .wordmark{color:var(--brand-red);margin-bottom:40px}.login-wrap .wordmark span{color:var(--ink)}.login-wrap h1{font-size:44px;letter-spacing:-1.7px;margin:20px 0}.login-panel{border-top:3px solid var(--brand-red);margin-top:32px;padding:30px}.login-panel button{width:100%;margin:10px 0 20px}.skip{position:absolute;left:-10000px}.skip:focus{left:10px;top:10px;background:white;z-index:10;padding:15px}:focus-visible{outline:3px solid var(--focus-red);outline-offset:3px}.htmx-indicator{display:none}.htmx-request .htmx-indicator{display:inline}ul{padding-left:20px;list-style:disc}.login-wrap>p{color:var(--muted)}@media(min-width:1100px){.login-wrap{margin-left:12%;width:580px}}@media(max-width:1150px){.sidebar{width:208px}.shell{margin-left:208px}.topbar,main{padding:24px}.metrics{grid-template-columns:repeat(2,1fr)}.metrics article:nth-child(2){border-right:0}.overview-grid{grid-template-columns:1fr}.identity{gap:8px}.run-list a{grid-template-columns:70px 120px 70px}.run-list a>span:last-child{grid-column:1/-1}}@media(max-width:760px){.sidebar{position:static;width:auto;padding:18px}.sidebar nav{flex-direction:row;overflow:auto;gap:8px;margin-top:15px}.sidebar nav a{white-space:nowrap}.sidebar-foot,.workspace{display:none}.shell{margin:0}.topbar{border-top:3px solid var(--brand-red);padding:12px 18px;flex-direction:column;gap:6px}.identity{justify-content:space-between}main{padding:24px 16px}h1{font-size:26px}.page-heading{align-items:flex-start}.page-heading>.button{font-size:11px;padding:6px 10px}.panel{padding:20px}.metrics article{padding:18px}.metrics strong{font-size:30px}.evidence-grid{grid-template-columns:repeat(2,1fr)}.case-banner{flex-wrap:wrap}.login-wrap{padding-top:32px}.login-wrap h1{font-size:38px}.table-panel{padding:20px 0}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Bright brand red maintains a visible keyboard focus ring on charcoal navigation. */
.sidebar :focus-visible{outline-color:var(--brand-red)}
