@font-face{font-family:NST;font-weight:400;src:url(assets/fonts/NotoSansThai-400.ttf)}
@font-face{font-family:NST;font-weight:600;src:url(assets/fonts/NotoSansThai-600.ttf)}
@font-face{font-family:NST;font-weight:700;src:url(assets/fonts/NotoSansThai-700.ttf)}
:root{--navy:#0a2a63;--navy2:#04122e;--gold1:#f6d79a;--gold2:#d9a85a;--gold3:#b8873e;--bg:#eef2f8;--ink:#0d1b33;--mut:#5b6b85;--line:#d6deea}
*{box-sizing:border-box}
body{margin:0;font-family:NST,system-ui,sans-serif;color:var(--ink);background:radial-gradient(ellipse at 70% 0%,#fff,transparent 55%),var(--bg);font-size:14px}
.bar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 22px;
  background:linear-gradient(120deg,var(--navy2),var(--navy));color:#fff;box-shadow:0 6px 20px #04122e33}
.brand{display:flex;align-items:baseline;gap:14px}.brand b{font-family:Georgia,serif;font-size:26px;letter-spacing:1px}.brand span{opacity:.9}
.bar-actions{display:flex;gap:10px;flex-wrap:wrap}
.btn{border:1px solid #ffffff55;border-radius:12px;padding:9px 16px;font:inherit;font-weight:600;cursor:pointer;background:#ffffff14;color:#fff}
.btn.gold{background:linear-gradient(116deg,#fff4d6,var(--gold1) 40%,var(--gold2) 75%,#f6e7cb);color:#1b1408;border-color:#fff4d6}
.btn:disabled{opacity:.45;cursor:not-allowed}
.history .btn.ghost{color:var(--navy);border-color:var(--line);background:#fff}
.layout{display:grid;grid-template-columns:minmax(330px,430px) 1fr;gap:20px;padding:20px 22px;align-items:start}
.panel{background:linear-gradient(180deg,#ffffffd9,#f6f9fea6);border:1px solid #fff;border-radius:18px;box-shadow:0 10px 30px #1f408019,inset 0 1px 0 #fff;padding:6px 18px 16px;backdrop-filter:blur(16px)}
.panel h2{font-size:15px;margin:14px 0 8px;color:var(--navy)}
section+section{border-top:1px solid var(--line)}
label{display:block;font-size:12.5px;color:var(--mut);margin:7px 0}
input,select{display:block;width:100%;margin-top:3px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;font:inherit;color:var(--ink);background:#fff}
input:focus,select:focus{outline:2px solid #2f6fed55;border-color:#2f6fed}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.row3{display:grid;grid-template-columns:1.4fr .8fr 1fr;gap:10px}
.copies{display:flex;flex-direction:column;gap:6px}.chk{display:flex;gap:8px;align-items:center;color:var(--ink)}.chk input{width:auto;margin:0}
.msg{display:block;color:#c0392b;font-size:12px;min-height:0}.hint{color:var(--mut);font-size:12px}
.preview-wrap{position:sticky;top:76px}
.preview-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.pill{border-radius:999px;padding:4px 12px;font-size:12.5px;font-weight:600}.pill.ok{background:#dcf5e3;color:#1e6b36}.pill.warn{background:#fff1d6;color:#8a5a12}
#pages{display:flex;flex-direction:column;gap:18px;max-height:calc(100vh - 130px);overflow:auto;padding:4px 4px 30px}
/* sheet: exact A4 in points so the official field coordinates line up */
.sheet{position:relative;width:595.28pt;height:841.89pt;background:#fff;box-shadow:0 10px 30px #1f408026;flex:0 0 auto;zoom:.92}
.sheet .form{position:absolute;inset:0;width:100%;height:100%}
.ov{position:absolute;inset:0}
.fld{position:absolute;display:flex;align-items:flex-end;padding:0 2pt 1.2pt;white-space:nowrap;overflow:hidden;font-size:9.6pt;line-height:1;color:var(--navy);font-weight:600}
.fld.c{justify-content:center}.fld.r{justify-content:flex-end}.fld.b{font-weight:700}
.fld.fit{font-size:9.2pt}
.fld.dg{justify-content:center;align-items:center;padding:0;font-size:9.5pt;font-weight:700}
.fld.words{background:#f1f3f7;align-items:center;font-size:9.8pt}
.tick{position:absolute;width:12.6pt;height:12.6pt}
.tick::after{content:"";position:absolute;left:3.6pt;top:.4pt;width:3.6pt;height:8pt;border:solid var(--navy);border-width:0 2pt 2pt 0;transform:rotate(40deg)}
.cover{position:absolute;background:#fff;display:flex;align-items:center;font-size:9pt;color:#111;white-space:nowrap}
.cover b{margin-right:4pt}
.history{margin:0 22px 30px}
.feed{margin:20px 22px 0}
.feed-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.feed-head small{font-weight:400;color:var(--mut);font-size:12px;margin-left:6px}
.feed-sum{display:flex;gap:8px;flex-wrap:wrap}
.kpi{border-radius:12px;padding:6px 12px;background:#fff;border:1px solid var(--line);font-size:12.5px;color:var(--mut)}
.kpi b{display:block;font-size:16px;color:var(--navy)}
.feed-scroll{overflow-x:auto}
.feed table{width:100%;border-collapse:collapse;font-size:13px;min-width:760px}
.feed th,.feed td{padding:8px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
.feed th{color:var(--mut);font-weight:600;font-size:12px}
.feed td.r,.feed th.r{text-align:right}
.feed td .sub{display:block;color:var(--mut);font-size:11.5px;max-width:260px;overflow:hidden;text-overflow:ellipsis}
.feed tr.sel td{background:#eef4ff}
.tag{display:inline-block;border-radius:999px;padding:2px 9px;font-size:11.5px;font-weight:600}
.tag.ok{background:#dcf5e3;color:#1e6b36}.tag.wait{background:#fff1d6;color:#8a5a12}
.btn.sm{padding:5px 12px;font-size:12.5px;border-radius:10px;background:linear-gradient(116deg,#fff4d6,var(--gold1) 40%,var(--gold2) 75%,#f6e7cb);color:#1b1408;border-color:#f0d7a3}
.lock{color:#8a5a12}
.history table{width:100%;border-collapse:collapse;font-size:13px}
.history th,.history td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:left}.history .r{text-align:right}
.history .empty{color:var(--mut);text-align:center}
.lnk{border:none;background:none;color:#2f6fed;cursor:pointer;font:inherit}
.hist-actions{display:flex;gap:12px;align-items:center;margin-top:10px;flex-wrap:wrap}
@media (max-width:980px){.layout{grid-template-columns:1fr;padding:14px}.bar{flex-wrap:wrap;padding:10px 14px}.history{margin:0 14px 24px;overflow-x:auto}.feed{margin:14px 14px 0}.preview-wrap{position:static}#pages{max-height:none;overflow:visible}
  .sheet{zoom:.58}#pages{align-items:center}.brand span{display:none}}
@media (max-width:520px){.sheet{zoom:.43}.row3{grid-template-columns:1fr 1fr}.bar-actions .btn{padding:8px 11px;font-size:13px}}
@media print{
  @page{size:A4;margin:0}
  body{background:#fff}
  .bar,.panel,.history,.feed,.preview-head{display:none!important}
  .layout{display:block;padding:0}.preview-wrap{position:static}
  #pages{display:block;max-height:none;overflow:visible;padding:0}
  .sheet{zoom:1;box-shadow:none;page-break-after:always;break-after:page}
  .sheet:last-child{page-break-after:auto;break-after:auto}
  .fld.words{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
