
:root{--bg:#0c1220;--panel:#121b2e;--panel2:#17233a;--ink:#edf4ff;--mut:#aab7cb;--line:#2b3b59;--acc:#7cc7ff;--ok:#a8e6a1;--warn:#ffd27c;--bad:#ff8a8a;--white:#fff;--soft:#f5f7fb;--txt:#172033;--blue:#17345f;}
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;line-height:1.55;background:linear-gradient(180deg,#09101f,#12213a 52%,#f4f7fb 52%,#fff);color:var(--txt)}a{color:#0d5ea8;text-decoration:none}a:hover{text-decoration:underline}.wrap{max-width:1180px;margin:0 auto;padding:26px 18px}.hero{color:var(--ink);padding:34px 0 24px}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--acc);font-size:12px;font-weight:700}.hero h1{font-size:clamp(30px,5vw,56px);line-height:1.05;margin:10px 0 14px}.hero p{max-width:850px;color:#d8e5f8;font-size:18px}.grid{display:grid;gap:16px}.cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));}.card{background:#fff;border:1px solid #dbe3ef;border-radius:18px;padding:18px;box-shadow:0 12px 30px rgba(15,35,70,.08)}.dark{background:rgba(18,27,46,.92);border:1px solid #314364;color:var(--ink)}.dark p,.dark li{color:#d9e6f7}.badge{display:inline-block;padding:5px 10px;border-radius:999px;background:#e8f3ff;color:#0d548e;font-weight:700;font-size:12px}.badge.ok{background:#eaf8e9;color:#226b22}.badge.warn{background:#fff4dc;color:#8a5b00}.btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.btn{display:inline-flex;align-items:center;gap:8px;border:1px solid #cbd6e6;border-radius:12px;padding:10px 13px;background:#fff;font-weight:700}.btn.primary{background:#0d5ea8;color:#fff;border-color:#0d5ea8}.btn.darkbtn{background:#1c2c48;color:#fff;border-color:#3d5278}.section{margin:26px 0}.section h2{font-size:28px;color:#17345f}.table{width:100%;border-collapse:collapse;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 8px 22px rgba(10,30,60,.07)}.table th,.table td{border-bottom:1px solid #e1e7f0;padding:12px;text-align:left;vertical-align:top}.table th{background:#eaf0f8;color:#193457}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.panel{border:1px solid #dbe3ef;background:#fff;border-radius:18px;padding:18px}.kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.kpi div{background:#f5f8fc;border:1px solid #dbe3ef;border-radius:14px;padding:12px}.kpi strong{display:block;font-size:24px;color:#17345f}.checklist label{display:block;padding:9px 10px;margin:6px 0;border:1px solid #e1e7f0;border-radius:10px;background:#fafcff}.checklist input{margin-right:8px}.tabs{display:flex;flex-wrap:wrap;gap:8px}.tab{cursor:pointer;border:1px solid #cbd6e6;background:#fff;border-radius:999px;padding:9px 12px;font-weight:700}.tab.active{background:#17345f;color:#fff}.tabbody{display:none}.tabbody.active{display:block}.callout{border-left:5px solid #0d5ea8;background:#eef6ff;padding:14px 16px;border-radius:10px}.warnbox{border-left:5px solid #c07a00;background:#fff8e8;padding:14px 16px;border-radius:10px}.footer{padding:28px 0;color:#52637c;font-size:14px}.search{width:100%;border:1px solid #cbd6e6;border-radius:12px;padding:12px 14px;font-size:16px}.topnav{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.topnav a{color:#d8e5f8;border:1px solid #314364;border-radius:999px;padding:8px 11px}.ui-shell{background:#f7f9fd;border:1px solid #dbe3ef;border-radius:18px;overflow:hidden}.ui-head{display:flex;justify-content:space-between;gap:10px;align-items:center;background:#11213a;color:white;padding:14px 16px}.ui-body{display:grid;grid-template-columns:280px 1fr;gap:0}.side{background:#fff;border-right:1px solid #dbe3ef;padding:15px}.main{padding:18px}.drop{border:2px dashed #9cb3d0;background:#f2f7fd;border-radius:16px;text-align:center;padding:22px}.statusline{display:flex;gap:10px;flex-wrap:wrap}.pill{border-radius:999px;background:#eef3f9;padding:6px 10px;font-size:12px;font-weight:700}.okpill{background:#eaf8e9;color:#226b22}.warnpill{background:#fff4dc;color:#8a5b00}@media(max-width:780px){.ui-body{grid-template-columns:1fr}.side{border-right:0;border-bottom:1px solid #dbe3ef}.hero h1{font-size:34px}.wrap{padding:20px 14px}}
@media print{body{background:#fff}.hero{color:#000}.topnav,.btns,.tabs,.footer{display:none}.card,.panel,.table{box-shadow:none}.dark{background:#fff;color:#000}.dark p,.dark li{color:#000}}

.release{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.release .step{background:#fff;border:1px solid #dbe3ef;border-radius:16px;padding:15px}.num{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#17345f;color:#fff;font-weight:800}.good{color:#226b22;font-weight:800}.mini{font-size:13px;color:#52637c}.route{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#0e1728;color:#ddecff;border-radius:14px;padding:12px;white-space:pre-wrap;overflow-wrap:anywhere}.modelgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.modelcard{border:1px solid #dbe3ef;border-radius:18px;background:#fff;padding:16px;box-shadow:0 10px 25px rgba(15,35,70,.07)}.modelcard h3{margin:.2em 0;color:#17345f}.metricbar{height:10px;border-radius:999px;background:#e7eef8;overflow:hidden}.metricbar span{display:block;height:100%;background:#0d5ea8}.stickyqa{position:sticky;top:8px}.codebox{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#f5f7fb;border:1px solid #d7deea;border-radius:12px;padding:10px;overflow-wrap:anywhere}

.modecard ul{margin:.5em 0 .2em 1.2em}.accent{border-color:#f1c879;background:#fffdf6}.pro .ui-head{background:linear-gradient(90deg,#0d2746,#17345f)}.scoretbl input{width:88px;border:1px solid #cbd6e6;border-radius:9px;padding:8px;font-weight:700}.resultbox{border:1px solid #cbd6e6;background:#f6fbff;border-radius:14px;padding:14px;margin-top:12px;font-size:18px}

.selftest.pass td{background:#f0fff0}.selftest.fail td{background:#fff0f0}.caprow label{display:block;margin:5px 0}.qaok{font-weight:800;color:#226b22}.qablock{font-weight:800;color:#8a5b00}.edugrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.edugrid .box{border:1px solid #dbe3ef;background:#fff;border-radius:16px;padding:14px}.gradebig{font-size:32px;color:#17345f}.livebanner{border:1px solid #bcd4ef;background:#edf7ff;border-radius:16px;padding:14px;margin:12px 0}.livebanner strong{color:#17345f}


/* v3.0 KLT 4.14 full working page */
.workgrid{display:grid;grid-template-columns:1.15fr .85fr;gap:16px}.workpanel{background:#fff;border:1px solid #dbe3ef;border-radius:18px;padding:16px;box-shadow:0 10px 25px rgba(15,35,70,.06)}.formrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:10px 0}.field label{display:block;font-weight:800;color:#17345f;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;border:1px solid #cbd6e6;border-radius:12px;padding:11px 12px;font:inherit;background:#fff}.field textarea{min-height:250px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px}.dropzone{border:2px dashed #9cb3d0;background:#f6fbff;border-radius:16px;padding:16px;text-align:center;margin:10px 0}.dropzone.drag{background:#eaf6ff;border-color:#0d5ea8}.metricgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}.metric{background:#f5f8fc;border:1px solid #dbe3ef;border-radius:14px;padding:12px}.metric b{display:block;font-size:24px;color:#17345f}.gauge{height:12px;background:#e5ecf7;border-radius:999px;overflow:hidden}.gauge span{display:block;height:100%;background:linear-gradient(90deg,#0d5ea8,#5bb6ff);width:0}.gaplist{list-style:none;margin:0;padding:0}.gaplist li{border:1px solid #e1e7f0;border-left:5px solid #c07a00;background:#fffaf0;border-radius:10px;padding:9px 11px;margin:8px 0}.gaplist li.ok{border-left-color:#288a2e;background:#f3fff3}.reportbox{white-space:pre-wrap;background:#0e1728;color:#ddecff;border-radius:14px;padding:14px;min-height:160px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-wrap:anywhere}.smallbtn{border:1px solid #cbd6e6;background:#fff;border-radius:10px;padding:8px 10px;cursor:pointer;font-weight:700}.smallbtn.primary{background:#0d5ea8;color:#fff;border-color:#0d5ea8}.rubric{display:grid;gap:8px}.rubrow{display:grid;grid-template-columns:1fr 72px 82px;gap:8px;align-items:center;border:1px solid #e1e7f0;border-radius:12px;padding:8px;background:#fff}.rubrow input{width:82px;border:1px solid #cbd6e6;border-radius:9px;padding:7px}.switchbox{display:flex;gap:8px;flex-wrap:wrap}.switchbox label{border:1px solid #dbe3ef;border-radius:999px;padding:8px 10px;background:#fff;font-weight:700}.statuscard{border:1px solid #dbe3ef;border-radius:16px;padding:14px;background:#fff}.statuscard.good{background:#f3fff3;border-color:#b9e4b9}.statuscard.warn{background:#fff9e8;border-color:#f0d28a}.statuscard.bad{background:#fff0f0;border-color:#ffb0b0}.flow{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.flow div{background:#f5f8fc;border:1px solid #dbe3ef;border-radius:14px;padding:10px}.kbd{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#eef3f9;border:1px solid #dbe3ef;border-radius:6px;padding:2px 5px}.logtable td,.logtable th{font-size:13px}.hidden{display:none!important}@media(max-width:900px){.workgrid{grid-template-columns:1fr}.rubrow{grid-template-columns:1fr 62px 72px}.field textarea{min-height:210px}}
