/* 생산 확인 (MES) — DOOSAN design standard (ds.css tokens: navy bar, cream page, company blue #1476bc, Pretendard), tuned for floor tablets:
   quiet surfaces, one strong colour per action, big touch targets only where people tap. */
[hidden]{display:none!important}
@font-face{font-family:"Pretendard Variable";src:url(/assets/PretendardVariable.woff2) format("woff2-variations");font-weight:45 920;font-display:swap}
:root{
  --font:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR","Segoe UI",sans-serif;
  --bg:#f6f4ee;--card:#fff;--soft:#f1f4f7;--line:#e2e6ea;--line2:#cfd7de;
  --ink:#122837;--ink2:#35495b;--muted:#6a7a87;
  --blue:#1476bc;--blue2:#0f5f9c;--blue-bg:#e6f0f8;--bar:#122837;
  --green:#1d8a55;--green-bg:#e3f4ea;--red:#c8372d;--red-bg:#fbe9e7;--amber:#c27400;--amber-bg:#fdf1de;
  --r:14px;--r-sm:10px;--shadow:0 1px 2px rgba(18,40,55,.05),0 6px 20px rgba(18,40,55,.06);--focus:#3b93d6;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#0f1a22;--card:#172530;--soft:#1e2f3b;--line:#2b3e4c;--line2:#41586a;--ink:#e6eef4;--ink2:#b9cad6;--muted:#94a8b7;
  --blue:#5fb0ec;--blue2:#8cc8f3;--blue-bg:#17324a;--bar:#0c1820;
  --green:#3fae74;--green-bg:#183326;--red:#e5675e;--red-bg:#3b2220;--amber:#d9952f;--amber-bg:#3a2d1b;--shadow:0 6px 22px rgba(0,0,0,.35);color-scheme:dark}}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 var(--font);-webkit-text-size-adjust:100%;word-break:keep-all}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.muted{color:var(--muted)}

/* top bar: slim navy, underline tabs */
header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:18px;padding:0 20px;min-height:52px;background:var(--bar);color:#fff}
.brand{display:flex;align-items:baseline;gap:10px;white-space:nowrap}
.brand b{font-size:16px;font-weight:800;letter-spacing:.08em}
.brand #ttl{font-size:15px;font-weight:600;color:#cfe2f2}
.brand .who{font-size:12px;color:#8fb0c8;font-weight:500}
nav{display:flex;align-items:stretch;gap:2px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;align-self:stretch}nav::-webkit-scrollbar{display:none}
nav button,nav a button{background:none;border:0;border-bottom:2px solid transparent;border-radius:0;color:#b9d0e2;font-size:14px;font-weight:600;padding:0 12px;height:100%;min-height:52px;white-space:nowrap}
nav button:hover{color:#fff;background:none;border-color:transparent}
nav button.on,nav button.on:hover{color:#fff;border-bottom-color:#fff}
nav select{align-self:center;background:transparent;color:#fff;border:1px solid rgba(255,255,255,.3);font-size:13px;padding:4px 8px}
nav b{align-self:center;padding:0 10px;color:#fff;font-size:13px;letter-spacing:.04em}
nav a{display:flex;text-decoration:none}
.tools{display:flex;gap:8px;align-items:center;margin-left:auto}
.tools select{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:8px;font-size:13px;padding:5px 8px}
.tools select option,nav select option{color:#111}
.pill{background:var(--amber);color:#fff;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;cursor:pointer}

main{padding:20px;max-width:1320px;margin:0 auto}

/* surfaces */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;margin-bottom:14px;box-shadow:var(--shadow)}
.card h2,.head h2{margin:0;font-size:20px;font-weight:700;letter-spacing:-.01em}
.card h3{margin:0 0 10px;font-size:15px;font-weight:700;color:var(--ink2)}
.head{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:12px}
.grid>.card{margin:0}
.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));align-items:start}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.right{margin-left:auto}

/* controls */
button{font:inherit;font-weight:600;font-size:14px;cursor:pointer;border-radius:var(--r-sm);border:1px solid var(--line2);background:var(--card);color:var(--ink);padding:8px 14px;transition:background .12s,border-color .12s,transform .06s}
button:hover{border-color:var(--blue);background:var(--blue-bg)}
button:active{transform:scale(.98)}
button:disabled{opacity:.45;cursor:default}
button.pri{background:var(--blue);border-color:var(--blue);color:#fff}button.pri:hover{background:var(--blue2);border-color:var(--blue2)}
button.ok{background:var(--green);border-color:var(--green);color:#fff}
button.bad{background:var(--red);border-color:var(--red);color:#fff}
button.warn{background:var(--amber);border-color:var(--amber);color:#fff}
button.ok:hover,button.bad:hover,button.warn:hover{filter:brightness(1.07)}
button.ok:hover{background:var(--green);border-color:var(--green)}button.bad:hover{background:var(--red);border-color:var(--red)}button.warn:hover{background:var(--amber);border-color:var(--amber)}
input,select,textarea{font:inherit;font-size:15px;color:var(--ink);background:var(--card);border:1px solid var(--line2);border-radius:var(--r-sm);padding:8px 10px;min-width:0}
input:focus,select:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px var(--blue-bg)}
input[type=checkbox]{width:20px;height:20px;accent-color:var(--blue)}

/* floor buttons: big, flat, one colour each */
.big{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0 12px}
.big button{font-size:30px;font-weight:800;padding:28px 6px;border-radius:18px;border:0;box-shadow:0 2px 0 rgba(0,0,0,.1)}
.big2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.big2 button{font-size:22px;font-weight:800;padding:22px 6px;border-radius:18px;border:0;box-shadow:0 2px 0 rgba(0,0,0,.1)}

/* figures */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:10px}
.stat{background:var(--soft);border-radius:12px;padding:10px 12px}
.stat .k{font-size:12px;font-weight:600;color:var(--muted);letter-spacing:.02em}
.stat .v{font-size:28px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.15;margin-top:2px}
.stat .v small{font-size:14px;color:var(--muted);font-weight:500;letter-spacing:0}
.v.red{color:var(--red)}.v.green{color:var(--green)}
.order{font-size:16px;color:var(--ink2);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.order b{font-size:18px;color:var(--ink)}

/* defect / line pickers */
.defgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.defgrid button{text-align:left;padding:12px;min-height:66px;font-size:16px;border-radius:12px}
.defgrid .grp{grid-column:1/-1;font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--muted);margin-top:6px}
.linegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}
.linegrid button{font-size:24px;font-weight:800;padding:16px 0;border-radius:12px}

/* tables */
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{border-bottom:1px solid var(--line);padding:8px;text-align:left;vertical-align:middle}
th{color:var(--muted);font-weight:600;font-size:12px;letter-spacing:.02em}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}
tr:last-child td{border-bottom:0}
td button{padding:5px 10px;font-size:13px;white-space:nowrap}
td input:not([type=checkbox]),td select{width:100%;padding:6px 8px;font-size:14px}
.card{overflow-x:auto}
.void td{text-decoration:line-through;color:var(--muted)}

/* banners, dialogs, toast */
.banner{background:var(--amber-bg);color:var(--ink);border:1px solid var(--line2);border-left:4px solid var(--amber);border-radius:12px;padding:10px 14px;margin:0 0 12px;display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;font-weight:600}
.modal{position:fixed;inset:0;background:rgba(10,22,32,.5);backdrop-filter:blur(2px);display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px 16px;z-index:20;overflow:auto}
.modal .box{background:var(--card);border-radius:18px;padding:20px;width:min(780px,100%);box-shadow:0 20px 60px rgba(0,0,0,.25)}
.modal h2{margin:0 0 12px;font-size:20px}
.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.form label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:600;color:var(--muted)}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--bar);color:#fff;padding:12px 18px;border-radius:12px;z-index:30;max-width:90vw;font-weight:600;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.code{font-size:52px;letter-spacing:10px;font-weight:800;text-align:center;padding:16px;background:var(--blue-bg);color:var(--blue2);border-radius:14px;font-variant-numeric:tabular-nums}

/* board cards */
.lc{cursor:pointer;transition:transform .08s,box-shadow .12s}
.lc:hover{transform:translateY(-1px);box-shadow:0 2px 4px rgba(18,40,55,.06),0 12px 28px rgba(18,40,55,.1)}
.lc h3{margin:0 0 6px;font-size:16px;display:flex;justify-content:space-between;align-items:baseline;color:var(--ink)}
.lc h3 .muted{font-weight:500;font-size:12px!important;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lc .row{font-size:13px;color:var(--ink2);gap:12px}
.lc .row b{color:var(--ink)}
.lc.idle{box-shadow:none;background:transparent;border-style:dashed}.lc.idle h3{margin:0 0 2px;color:var(--ink2)}.lc.idle .muted{font-size:13px}
.bar{height:6px;background:var(--soft);border-radius:6px;overflow:hidden;margin:8px 0}
.bar i{display:block;height:100%;background:var(--green);border-radius:6px}.bar i.low{background:var(--red)}.bar i.mid{background:var(--amber)}
video{width:100%;max-height:50vh;background:#000;border-radius:12px}

/* phones */
@media (max-width:760px){
  header{flex-wrap:wrap;gap:0 10px;padding:6px 12px 0;min-height:0}
  .brand{order:1;padding:4px 0}.brand .who{display:none}.tools{order:2}
  nav{order:3;flex:1 1 100%;margin:0 -12px;padding:0 4px}
  nav button,nav a button{min-height:40px;padding:0 10px}
  main{padding:12px}.card{padding:14px}
  .big button{font-size:24px;padding:22px 4px}.big2 button{font-size:19px;padding:18px 4px}
  .stat .v{font-size:24px}
}

/* TV board: read from across the line */
body.tv header{display:none}body.tv main{max-width:none;padding:2.4vh 2vw}body.tv{background:var(--bar);min-height:100vh}
body.tv .tvh{color:#fff}body.tv .banner{color:var(--ink)}
.tvh{display:flex;justify-content:space-between;align-items:baseline;font-size:4.2vh;font-weight:800;margin-bottom:2vh;letter-spacing:-.01em}
.tvg{display:grid;grid-template-columns:repeat(4,1fr);gap:1.6vh}.tvl{display:grid;grid-template-columns:repeat(auto-fill,minmax(22vw,1fr));gap:1.4vh}
.tvc{background:var(--card);border-radius:2vh;padding:2.2vh 2.4vh}.tvc .k{font-size:2.6vh;font-weight:600;color:var(--muted)}
.tvc .v{font-size:11vh;font-weight:800;line-height:1.05;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.tvl .tvc .v{font-size:7vh}
.tvc .v small{font-size:4vh;color:var(--muted);font-weight:600}
.tvc .v.red,.tvt td.red{color:var(--red)}.tvc .v.green{color:var(--green)}
.tvb{font-size:4vh;margin-top:1.6vh}
.tvt{margin-top:2vh;font-size:3.6vh;font-weight:700;background:var(--card);border-radius:2vh;overflow:hidden}.tvt th,.tvt td{text-align:center;padding:1vh}.tvt th{font-size:2.4vh}
