:root{--red:#c91525;--red-dark:#9f0f1d;--bg:#f5f6f8;--panel:#fff;--text:#1f2937;--muted:#667085;--line:#e4e7ec;--good:#087443;--warn:#a15c00;--bad:#b42318;--soft-red:#fff0f1;--nav:#8f101a}
*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.login-screen{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#fff 0,#fff 55%,#f7dadd 100%);padding:24px}.login-card{width:min(430px,96vw);background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;box-shadow:0 18px 60px rgba(80,20,25,.14)}.login-logo{display:block;width:190px;max-height:100px;object-fit:contain;margin:0 auto 18px}.login-card h1{text-align:center;color:var(--red);margin:0}.login-card>p{text-align:center;color:var(--muted);margin:6px 0 24px}.login-card form{display:grid;gap:14px}.login-card label,.fields label{display:grid;gap:6px;font-size:13px;color:#475467}.setup-hint{margin-top:18px;padding:12px;border-radius:10px;background:#fff8e6;color:#7a4b00;font-size:13px;line-height:1.5}.wide{width:100%}.app-shell{min-height:100vh}.sidebar{position:fixed;left:0;top:0;bottom:0;width:245px;background:linear-gradient(180deg,var(--red-dark),#760d15);color:#fff;padding:18px;display:flex;flex-direction:column;z-index:3}.brand{display:flex;align-items:center;gap:12px;padding:4px 5px 22px;border-bottom:1px solid rgba(255,255,255,.15);margin-bottom:18px}.brand img{width:50px;height:50px;border-radius:12px;object-fit:cover}.brand b{display:block;font-size:16px}.brand small{display:block;color:#f1b9be;margin-top:3px}.sidebar nav{display:grid;gap:8px}.nav{border:0;background:transparent;color:#f8d7da;text-align:left;padding:12px 14px;border-radius:10px}.nav.active,.nav:hover{background:rgba(255,255,255,.13);color:#fff}.nav span{margin-left:9px}.user-box{margin-top:auto;padding:14px 10px;border-top:1px solid rgba(255,255,255,.14)}.user-box b,.user-box small{display:block}.user-box small{color:#efb9bd;margin-top:3px}.user-box button{margin-top:10px;border:0;background:transparent;color:#fff;padding:0;text-decoration:underline}.app-shell main{margin-left:245px;min-height:100vh;padding:28px 34px}.app-shell header{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:24px}.app-shell header h1{margin:0;font-size:28px}.app-shell header p{margin:5px 0 0;color:var(--muted)}.view{display:none}.view.active{display:block}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}.card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:0 2px 12px rgba(16,24,40,.03)}.card{padding:18px}.card span,.card small{display:block;color:var(--muted);font-size:13px}.card strong{display:block;font-size:25px;margin:8px 0}.panel{padding:20px;margin-bottom:18px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.panel-head h2{font-size:18px;margin:0 0 4px}.panel-head p{margin:0;color:var(--muted);font-size:13px}.fields{display:grid;gap:14px}.fields.three{grid-template-columns:2fr 1fr 1.3fr}.fields.two{grid-template-columns:1fr 1fr}.fields.one{grid-template-columns:1fr}.fields label{margin-bottom:14px}input,select,textarea{width:100%;border:1px solid #d0d5dd;border-radius:9px;padding:10px 11px;background:#fff;color:var(--text);outline:none}input:focus,select:focus,textarea:focus{border-color:#dd6b76;box-shadow:0 0 0 3px rgba(201,21,37,.08)}.checkline{display:flex!important;align-items:center;gap:8px;font-size:13px;color:#475467}.checkline input{width:auto}.primary,.secondary,.danger{border:0;border-radius:9px;padding:10px 14px;font-weight:700}.primary{background:var(--red);color:#fff}.primary:hover{background:var(--red-dark)}.secondary{background:#f2f4f7;color:#344054}.danger{background:#fee4e2;color:#b42318}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left;font-size:13px;white-space:nowrap}th{font-size:12px;color:#667085;background:#fafafa}tbody tr[data-click]{cursor:pointer}tbody tr[data-click]:hover{background:#fff7f7}.item-table-wrap{overflow-x:auto}.item-table{min-width:1550px}.item-table input,.item-table select{min-width:90px;padding:8px}.item-table .wide-input{min-width:180px}.item-table .check-cell input{width:auto}.remove-line{border:0;background:#fff0f1;color:var(--red);width:30px;height:30px;border-radius:8px}.line-ref{display:block;color:#667085;font-size:11px;margin-top:4px}.delta-up{color:var(--bad)}.delta-down{color:var(--good)}.total-strip{display:flex;justify-content:flex-end;gap:30px;align-items:center;padding:14px 4px 0;color:#475467}.total-strip strong{font-size:20px;color:var(--red)}.upload-row{display:grid;grid-template-columns:180px 1fr auto;gap:10px;align-items:center}.file-list{display:grid;gap:8px;margin-top:12px}.file-chip{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fafafa}.file-chip small{color:var(--muted)}.file-chip a{color:var(--red);text-decoration:none;font-weight:600}.file-chip button{border:0;background:transparent;color:var(--bad)}.sticky-actions{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:10px;background:rgba(245,246,248,.94);backdrop-filter:blur(8px);padding:14px 0;z-index:2}.code-pill{background:var(--soft-red);color:var(--red);border-radius:999px;padding:6px 10px;font-weight:700}.badge{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:700}.pending{background:#fff4e5;color:#8a4b00}.approved{background:#e8f7ef;color:#076b3d}.rejected{background:#fee4e2;color:#b42318}.revision{background:#fdf1d6;color:#8a5a00}.draft{background:#eef2f6;color:#475467}.search{max-width:320px}.admin-grid{display:grid;grid-template-columns:.8fr 1.4fr;gap:18px}.mini-form{display:grid;grid-template-columns:1fr 1.2fr 1fr 1fr auto;gap:8px;margin-bottom:16px}.modal{position:fixed;inset:0;background:rgba(15,23,42,.5);display:grid;place-items:center;padding:24px;z-index:20}.modal-card{position:relative;background:#fff;border-radius:18px;width:min(1100px,97vw);max-height:92vh;overflow:auto;padding:24px;box-shadow:0 25px 70px rgba(0,0,0,.22)}.close{position:absolute;right:14px;top:12px;border:0;background:#f2f4f7;width:34px;height:34px;border-radius:50%;font-size:22px}.detail-head{padding-right:45px}.detail-head h2{margin:0 0 4px}.detail-head p{margin:0;color:var(--muted)}.detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}.detail-item{padding:12px;border:1px solid var(--line);border-radius:10px}.detail-item span{display:block;color:var(--muted);font-size:11px;margin-bottom:4px}.approval-box{padding:16px;background:#fafafa;border:1px solid var(--line);border-radius:12px;margin:16px 0}.approval-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.audit-row{padding:10px 0;border-bottom:1px solid var(--line);font-size:12px}.audit-row span{color:var(--muted)}.toast{position:fixed;right:24px;bottom:24px;background:#111827;color:#fff;padding:12px 16px;border-radius:10px;z-index:30}.empty{text-align:center!important;color:var(--muted);padding:26px!important}.muted{color:var(--muted)}
@media(max-width:1100px){.cards{grid-template-columns:1fr 1fr}.fields.three{grid-template-columns:1fr 1fr}.admin-grid{grid-template-columns:1fr}.mini-form{grid-template-columns:1fr 1fr}.detail-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.sidebar{width:74px;padding:14px 10px}.brand>div,.nav span,.user-box b,.user-box small{display:none}.brand img{width:48px;height:48px}.nav{text-align:center}.app-shell main{margin-left:74px;padding:18px}.cards,.fields.three,.fields.two{grid-template-columns:1fr}.upload-row{grid-template-columns:1fr}.app-shell header{align-items:flex-start;flex-direction:column}.detail-grid{grid-template-columns:1fr}.mini-form{grid-template-columns:1fr}.panel-head{align-items:flex-start;flex-direction:column}.search{max-width:none}.total-strip{align-items:flex-end;flex-direction:column;gap:5px}}
