*{box-sizing:border-box}
:root{--bg:#f5f7f5;--s:#fff;--t:#1f2421;--m:#6b726d;--b:#e2e6e3;--b2:#cdd3cf;--a:#1e953d;--a2:#e8f4ea;--ink:#241e20;--hd:#241e20;
--red:#b91c1c;--redbg:#fde8e8;--amb:#b45309;--ambbg:#fef3c7;--blu:#1d4ed8;--blubg:#dbeafe;--grn:#15803d;--grnbg:#dcfce7;--r:10px;
--f:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
html,body{margin:0;background:var(--bg);color:var(--t);font:15px/1.45 var(--f)}
input,select,textarea,button{font:inherit;color:inherit}
a{color:var(--a);text-decoration:none}a:hover{text-decoration:underline}
h1{font-size:26px;margin:0 0 4px}h2{font-size:18px;margin:0 0 12px}h3{font-size:15px;margin:0 0 8px;text-transform:uppercase;letter-spacing:.04em;color:var(--m)}
.muted{color:var(--m)}.small{font-size:13px}
header{background:var(--s);border-bottom:3px solid var(--a);padding:10px 24px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;position:sticky;top:0;z-index:30}
.brand{display:flex;gap:16px;align-items:center}.logo{height:38px;display:block}
.ttl{font-size:19px;font-weight:700}.ttl a{color:var(--ink)}
.hnav{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.hnav a{padding:8px 12px;border-radius:8px;color:var(--t);font-weight:600}.hnav a.on{background:var(--a2);color:var(--a)}.hnav a:hover{text-decoration:none;background:#f0f2f0}
button{cursor:pointer;border-radius:8px;padding:8px 14px;border:1px solid var(--b2);background:var(--s)}
button.pri{background:var(--a);color:#fff;border-color:var(--a);font-weight:600}button.pri:hover{filter:brightness(1.07)}
button.ghost{border-color:transparent;color:var(--m)}button.ghost:hover,button.sec:hover{background:#f0f2f0}
button.danger{color:var(--red);border-color:#f3c4c4}button.sm{padding:4px 10px;font-size:13px}button:disabled{opacity:.5;cursor:default}
main{max-width:1280px;margin:20px auto;padding:0 24px 60px}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.kpi{background:var(--s);border:1px solid var(--b);border-radius:var(--r);padding:12px 16px;cursor:pointer;border-left:4px solid var(--b2)}
.kpi:hover{box-shadow:0 1px 4px rgba(0,0,0,.07)}
.kpi .l{font-size:13px;color:var(--m);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.kpi .v{font-size:30px;font-weight:700;margin-top:2px}
.kpi.k-acc{border-left-color:var(--grn)}.kpi.k-rej{border-left-color:var(--red)}.kpi.k-par{border-left-color:var(--amb)}.kpi.k-pen{border-left-color:var(--blu)}.kpi.k-tot{border-left-color:var(--ink)}
.panel{background:var(--s);border:1px solid var(--b);border-radius:var(--r);padding:16px 18px;margin-bottom:16px}
.cols2{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:space-between}
.filters{display:grid;grid-template-columns:2fr 1.3fr 1fr .9fr .9fr 1fr;gap:10px;align-items:end}
.filters label{margin:0 0 3px}
input,select,textarea{border:1px solid var(--b2);border-radius:7px;padding:7px 9px;background:var(--s);width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid #9fd3ab;border-color:var(--a)}
textarea{min-height:64px;resize:vertical}
label{display:block;font-size:12.5px;color:var(--m);margin:8px 0 3px;font-weight:600}
.tbl-wrap{background:var(--s);border:1px solid var(--b);border-radius:var(--r);overflow:auto}
table{width:100%;border-collapse:collapse}
th{background:var(--hd);color:#fff;text-align:left;font-weight:600;padding:9px 10px;white-space:nowrap;font-size:13.5px}
th.s{cursor:pointer}
td{padding:9px 10px;border-top:1px solid var(--b);vertical-align:middle}
tbody tr.click{cursor:pointer}tbody tr.click:hover{background:#f6faf6}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;white-space:nowrap}
.id{font-family:ui-monospace,Menlo,monospace;font-size:13px;background:#eef1ee;border-radius:5px;padding:2px 7px;font-weight:700;white-space:nowrap}
.st{font-size:12.5px;border-radius:999px;padding:2px 10px;white-space:nowrap;font-weight:600;display:inline-block}
.st-Accepted{background:var(--grnbg);color:var(--grn)}.st-Rejected{background:var(--redbg);color:var(--red)}
.st-PartiallyAccepted{background:var(--ambbg);color:var(--amb)}.st-Pending{background:var(--blubg);color:var(--blu)}
.tag{font-size:11.5px;border:1px solid var(--b2);border-radius:5px;padding:1px 6px;margin-right:3px;white-space:nowrap;color:var(--m)}
.tag.on{border-color:#9fd3ab;background:var(--a2);color:var(--a)}
.empty{padding:36px;text-align:center;color:var(--m)}
.hbar{display:grid;grid-template-columns:170px 1fr 34px;gap:10px;align-items:center;margin:7px 0;font-size:14px}
.hbar .tr{height:16px;background:#eef1ee;border-radius:4px;overflow:hidden;display:flex}.hbar .tr i{display:block;height:100%}
.legend{display:flex;gap:12px;font-size:12.5px;color:var(--m);flex-wrap:wrap}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px}
.modal{position:fixed;inset:0;background:rgba(17,24,39,.45);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow:auto;z-index:50}
.mbox{background:var(--s);border-radius:12px;max-width:900px;width:100%;padding:20px 22px}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#111827;color:#fff;padding:10px 18px;border-radius:8px;z-index:60}
.login{max-width:380px;margin:70px auto;background:var(--s);border:1px solid var(--b);border-radius:12px;padding:28px 28px 24px;text-align:center}
.login img{height:64px;margin-bottom:10px}.login form{text-align:left;margin-top:16px}
.err{color:var(--red);font-size:13.5px;margin-top:8px}
[hidden]{display:none!important}

/* ---- paper-style form (AGN100) ---- */
.sheet{background:var(--s);border:1px solid var(--b);border-radius:var(--r);padding:22px 26px;margin-bottom:16px}
.sheet-head{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid var(--ink);padding-bottom:10px;margin-bottom:14px;gap:12px}
.sheet-head img{height:44px}.sheet-head .t{font-size:20px;font-weight:800;letter-spacing:.03em;color:var(--ink);text-align:center;flex:1}
.sheet-head .stamp{border:2px dashed var(--b2);border-radius:8px;padding:6px 10px;min-width:170px}
.sheet-head .stamp label{margin:0 0 2px}
.rmc{font-weight:800;letter-spacing:.04em;margin:4px 0 8px;color:var(--ink)}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:4px 28px}
.yn{display:flex;gap:6px}.yn label{margin:0;display:flex;align-items:center;gap:6px;border:1px solid var(--b2);border-radius:7px;padding:6px 12px;color:var(--t);font-weight:500;cursor:pointer}
.yn input{width:auto;margin:0}.yn label:has(input:checked){background:var(--a2);border-color:var(--a);color:var(--a);font-weight:700}
table.lines th{background:#3a3436;font-size:12.5px;text-align:center}table.lines td{padding:3px 4px}
table.lines input{padding:5px 6px;border-radius:5px}table.lines td.n{text-align:center;font-weight:700;color:var(--m);width:34px}
table.lines .q{width:76px}table.lines .q input{text-align:right}
table.lines tr.sub th{background:#57504f;font-weight:500}
.note{font-style:italic;color:var(--m);margin:8px 0 14px}
.checks{border:1px solid var(--b);border-radius:8px;padding:10px 14px;background:#fafbfa}
.checks .ck{display:flex;align-items:center;gap:10px;padding:5px 0;margin:0;font-size:14.5px;color:var(--t);font-weight:500}
.checks .ck input[type=checkbox]{width:18px;height:18px;margin:0;accent-color:var(--a)}
.checks .ck input[type=text]{width:220px}
.formbar{position:sticky;bottom:0;background:rgba(245,247,245,.96);border-top:1px solid var(--b);padding:10px 0;display:flex;gap:8px;justify-content:flex-end;z-index:5}
.sheet-foot{display:flex;justify-content:space-between;font-size:12px;color:var(--m);border-top:1px solid var(--b);margin-top:16px;padding-top:6px}
/* detail (read-only sheet) */
.kv{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 28px}.kv>div{border-bottom:1px solid var(--b);padding:4px 0}.kv span{display:block;font-size:12px;color:var(--m);font-weight:600}
.kv b{font-weight:600}
.cbox{display:inline-block;width:16px;height:16px;border:1.5px solid var(--ink);border-radius:3px;text-align:center;line-height:13px;font-size:13px;font-weight:800;margin-right:8px;vertical-align:-2px}
.att{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.attcat{border:1px solid var(--b);border-radius:8px;padding:10px 12px;background:#fafbfa;min-height:110px}
.attcat h4{margin:0 0 6px;font-size:13.5px;display:flex;justify-content:space-between;align-items:center}
.file{display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:13px;padding:4px 0;border-top:1px dashed var(--b)}
.file a{word-break:break-all}.file .x{border:0;background:none;color:var(--m);padding:0 4px}
.upl{display:inline-block;font-size:12.5px;border:1px dashed var(--a);color:var(--a);border-radius:6px;padding:3px 9px;cursor:pointer;background:#fff}
.upl input{display:none}
.audit{font-size:13px}.audit div{padding:4px 0;border-top:1px solid var(--b)}
.banner{background:var(--redbg);color:var(--red);border:1px solid #f5b5b5;border-radius:8px;padding:8px 12px;margin-bottom:12px}
.pager{display:flex;gap:8px;justify-content:flex-end;align-items:center;margin-top:10px}
@media (max-width:1000px){.kpis{grid-template-columns:repeat(2,1fr)}.cols2,.fgrid,.kv{grid-template-columns:1fr}.att{grid-template-columns:1fr 1fr}.filters{grid-template-columns:1fr 1fr}}
@media (max-width:600px){header{padding:8px 12px}main{padding:0 10px 40px}.att{grid-template-columns:1fr}.sheet{padding:14px}.sheet-head{flex-wrap:wrap}}
@media print{
  @page{size:letter;margin:12mm}
  body{background:#fff;font-size:12px}.noprint,header,.formbar{display:none!important}main{margin:0;padding:0;max-width:none}
  .sheet{border:0;padding:0}.panel{border:0;padding:0}.attcat{min-height:0;background:#fff}
  th{background:#ddd!important;color:#000!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .st{border:1px solid #999}
}
table.lines td.qv{text-align:right;padding-right:14px;width:72px}
.panel{overflow-x:auto}
@media (max-width:600px){.brand .muted{display:none}.ttl{font-size:16px}.logo{height:30px}.hnav a,.hnav button{padding:6px 9px;font-size:14px}.kpi .v{font-size:24px}h1{font-size:22px}}
