:root{--bg:#f4f5f7;--card:#fff;--ink:#1d2430;--muted:#6b7380;--line:#d9dde3;--brand:#2f6f62;--warn:#b3261e;--ok:#1b7a3a}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-family:Segoe UI,Tahoma,Arial,sans-serif;font-size:16px}header{background:var(--brand);color:#fff;z-index:5;align-items:center;gap:12px;padding:10px 16px;display:flex;position:sticky;top:0}header button{color:#fff;background:#fff3;border-color:#fff6}main{max-width:1280px;margin:0 auto;padding:12px}.main,.card{min-width:0}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;margin-bottom:12px;padding:14px}h1,h2,h3,h4{margin:.2em 0 .6em}h3{color:var(--brand);font-size:1.05rem}.login{flex-direction:column;gap:12px;max-width:380px;margin:12vh auto;display:flex}label{color:var(--muted);flex-direction:column;gap:4px;font-size:.9rem;display:flex}label.inline{flex-direction:row;align-items:center;gap:8px;margin-bottom:8px}input,select,button{font:inherit;border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:8px;min-height:40px;padding:8px 10px}input:disabled{background:#f1f2f4}input.bad{border-color:var(--warn);background:#fdecea}input.wide{width:100%}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--brand);color:#fff;border-color:var(--brand)}button.icon{color:var(--warn);padding:2px 10px}.bar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.spacer{flex:1}.row{flex-wrap:wrap;align-items:end;gap:8px;margin-bottom:10px;display:flex}.grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.layout{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:12px;display:grid}.summary{position:sticky;top:60px}.scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{border:1px solid var(--line);text-align:center;white-space:nowrap;padding:4px 6px}th{background:#eef0f3}td input{width:100%;min-width:90px;min-height:34px;padding:4px 6px}td:first-child{width:36px;color:var(--muted)}tfoot td{background:#fafafa;font-weight:600}.totals td{background:#eef7f4;font-weight:700}output.calc{background:#f1f6f4;border-radius:6px;padding:6px;font-weight:600;display:block}dl{margin:0}dl>div{border-bottom:1px dashed var(--line);justify-content:space-between;padding:5px 0;display:flex}dt{color:var(--muted)}dd{font-variant-numeric:tabular-nums;margin:0;font-weight:600}.total dd,.total dt{color:var(--ink);font-size:1.15rem}.warn dd{color:var(--warn)}.badge{background:#e8eaee;border-radius:99px;padding:2px 10px;font-size:.82rem}.badge.submitted{background:#fff2cc}.badge.approved{color:var(--ok);background:#d7f0dd}.badge.returned{color:var(--warn);background:#fde0dd}.badge.missing{color:var(--muted);background:#eee}.ok{color:var(--ok)}.warnText{color:var(--warn)}.muted{color:var(--muted)}.small{font-size:.8rem}.empty,.center{text-align:center;color:var(--muted);padding:16px}.notice{background:#fff2cc;border-radius:8px;padding:10px}@media (width<=860px){.layout{grid-template-columns:minmax(0,1fr)}.summary{order:-1;position:static}main{padding:8px}}.print-only{display:none}@page{size:A4 landscape;margin:8mm}@media print{body{background:#fff;font-size:11px}header,.bar,button,.muted.small,.notice button{display:none!important}main{max-width:none;padding:0}.print-only{display:inline}h1.print-only{margin:0 0 6px;font-size:16px;display:block}input{display:none!important}.layout{display:block}.summary{page-break-inside:avoid;position:static}.card{break-inside:auto;border:1px solid #999;border-radius:0;margin-bottom:6px;padding:6px}h3{break-after:avoid;color:#000;margin:0 0 4px;font-size:12px}.scroll{overflow:visible!important}table{table-layout:auto;width:100%;font-size:10px}th,td{word-break:break-word;padding:2px 3px;white-space:normal!important}thead{display:table-header-group}tfoot{display:table-footer-group}tr{break-inside:avoid}td:first-child,th:first-child{width:24px}.noprint{display:none!important}.grid{grid-template-columns:repeat(5,1fr);gap:4px}label{color:#000;font-size:10px}output.calc{background:0 0;padding:0}}
