/* PCAMS Secure Paper Inventory — v1.0.0 */
:root {
    --pi-blue:   #1e3a5f;
    --pi-teal:   #0e7490;
    --pi-green:  #16a34a;
    --pi-red:    #dc2626;
    --pi-orange: #d97706;
    --pi-purple: #7c3aed;
    --pi-border: #e2e8f0;
    --pi-bg:     #f8fafc;
    --pi-text:   #1e293b;
    --pi-muted:  #64748b;
}
.pcamsi-wrap { font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif; color: var(--pi-text); }
/* Header */
.pcamsi-header { display:flex; align-items:center; justify-content:space-between; background:var(--pi-blue); color:#fff; padding:14px 20px; border-radius:10px 10px 0 0; flex-wrap:wrap; gap:10px; }
.pcamsi-header h1 { margin:0; font-size:20px; color:#fff; }
.pcamsi-header-sub { font-size:12px; color:rgba(255,255,255,.7); display:block; margin-top:2px; }
.pcamsi-user-badge { background:rgba(255,255,255,.15); border-radius:20px; padding:4px 12px; font-size:12px; }
.pcamsi-clock { font-size:13px; font-weight:700; color:rgba(255,255,255,.85); font-variant-numeric:tabular-nums; }
/* Summary bar */
.pcamsi-summary-bar { display:grid; grid-template-columns:repeat(6,1fr); gap:0; border:1px solid var(--pi-border); border-top:none; }
@media(max-width:800px){ .pcamsi-summary-bar { grid-template-columns:repeat(3,1fr); } }
.pcamsi-sum-card { padding:14px 12px; text-align:center; border-right:1px solid var(--pi-border); border-bottom:4px solid; }
.pcamsi-sum-card:last-child { border-right:none; }
.pcamsi-sum-val { font-size:28px; font-weight:800; line-height:1; }
.pcamsi-sum-lbl { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.4px; color:var(--pi-muted); margin-top:4px; }
.pcamsi-sum-green  { border-bottom-color:var(--pi-green);  } .pcamsi-sum-green  .pcamsi-sum-val { color:var(--pi-green); }
.pcamsi-sum-blue   { border-bottom-color:var(--pi-blue);   } .pcamsi-sum-blue   .pcamsi-sum-val { color:var(--pi-blue); }
.pcamsi-sum-teal   { border-bottom-color:var(--pi-teal);   } .pcamsi-sum-teal   .pcamsi-sum-val { color:var(--pi-teal); }
.pcamsi-sum-red    { border-bottom-color:var(--pi-red);    } .pcamsi-sum-red    .pcamsi-sum-val { color:var(--pi-red); }
.pcamsi-sum-orange { border-bottom-color:var(--pi-orange); } .pcamsi-sum-orange .pcamsi-sum-val { color:var(--pi-orange); }
.pcamsi-sum-purple { border-bottom-color:var(--pi-purple); } .pcamsi-sum-purple .pcamsi-sum-val { color:var(--pi-purple); }
/* Tabs */
.pcamsi-tabs { display:flex; border-bottom:2px solid var(--pi-border); margin-top:16px; flex-wrap:wrap; gap:2px; }
.pcamsi-tab { background:none; border:none; border-bottom:3px solid transparent; margin-bottom:-2px; padding:10px 16px; font-size:13px; font-weight:600; cursor:pointer; color:var(--pi-muted); border-radius:4px 4px 0 0; transition:all .15s; }
.pcamsi-tab:hover { color:var(--pi-blue); background:var(--pi-bg); }
.pcamsi-tab-active { color:var(--pi-blue) !important; border-bottom-color:var(--pi-blue) !important; }
/* Panels */
.pcamsi-panel { padding:16px 0; }
.pcamsi-panel-toolbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; flex-wrap:wrap; gap:10px; }
.pcamsi-panel-toolbar h2 { margin:0; font-size:17px; color:var(--pi-blue); }
/* Inputs */
.pcamsi-input,.pcamsi-select,.pcamsi-textarea { width:100%; padding:8px 12px; border:1px solid var(--pi-border); border-radius:6px; font-size:13px; color:var(--pi-text); background:#fff; box-sizing:border-box; transition:border-color .15s,box-shadow .15s; }
.pcamsi-input:focus,.pcamsi-select:focus,.pcamsi-textarea:focus { outline:none; border-color:var(--pi-teal); box-shadow:0 0 0 3px rgba(14,116,144,.12); }
.pcamsi-textarea { resize:vertical; min-height:80px; font-family:inherit; }
.pcamsi-label { display:block; font-size:12px; font-weight:700; margin-bottom:4px; color:var(--pi-text); }
.pcamsi-req { color:var(--pi-red); }
.pcamsi-field { margin-bottom:14px; }
.pcamsi-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media(max-width:600px){ .pcamsi-grid-2 { grid-template-columns:1fr; } }
/* Buttons */
.pcamsi-btn { display:inline-flex; align-items:center; gap:6px; padding:8px 16px; border-radius:6px; font-size:13px; font-weight:600; cursor:pointer; border:1.5px solid transparent; transition:all .15s; white-space:nowrap; }
.pcamsi-btn-primary { background:var(--pi-blue); color:#fff; border-color:var(--pi-blue); } .pcamsi-btn-primary:hover { background:#16304f; }
.pcamsi-btn-outline  { background:#fff; color:var(--pi-blue); border-color:var(--pi-blue); } .pcamsi-btn-outline:hover { background:var(--pi-bg); }
.pcamsi-btn-success  { background:var(--pi-green); color:#fff; border-color:var(--pi-green); }
.pcamsi-btn-danger   { background:var(--pi-red); color:#fff; border-color:var(--pi-red); }
.pcamsi-btn-sm       { padding:5px 10px; font-size:12px; }
.pcamsi-btn:disabled { opacity:.55; cursor:not-allowed; }
/* Table */
.pcamsi-table-wrap { overflow-x:auto; border:1px solid var(--pi-border); border-radius:8px; }
.pcamsi-table { width:100%; border-collapse:collapse; font-size:13px; }
.pcamsi-table thead { background:#1e293b; color:#e2e8f0; }
.pcamsi-table th { padding:9px 12px; text-align:left; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.4px; white-space:nowrap; }
.pcamsi-table td { padding:9px 12px; border-bottom:1px solid var(--pi-border); vertical-align:top; }
.pcamsi-table tr:last-child td { border-bottom:none; }
.pcamsi-table tr:hover td { background:var(--pi-bg); }
.pcamsi-loading { color:var(--pi-muted); text-align:center; padding:20px; font-style:italic; }
/* Badges */
.pcamsi-badge { display:inline-block; padding:2px 7px; border-radius:10px; font-size:11px; font-weight:700; text-transform:uppercase; }
.pcamsi-badge-active   { background:#d1fae5; color:#065f46; }
.pcamsi-badge-depleted { background:#f1f5f9; color:#64748b; }
.pcamsi-badge-quarantine { background:#fef3c7; color:#92400e; }
.pcamsi-badge-pending  { background:#fee2e2; color:#991b1b; }
.pcamsi-badge-disposed { background:#f0fdf4; color:#166534; }
.pcamsi-badge-receive  { background:#dbeafe; color:#1d4ed8; }
.pcamsi-badge-issue    { background:#fef3c7; color:#92400e; }
.pcamsi-badge-spoilage { background:#fee2e2; color:#991b1b; }
.pcamsi-badge-return   { background:#ede9fe; color:#5b21b6; }
/* Filter row */
.pcamsi-filter-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:14px; padding:10px; background:var(--pi-bg); border-radius:6px; border:1px solid var(--pi-border); }
.pcamsi-filter-row .pcamsi-input,.pcamsi-filter-row .pcamsi-select { width:auto; }
/* Modal */
.pcamsi-modal { position:fixed; inset:0; z-index:99999; display:flex; align-items:flex-start; justify-content:center; padding:20px; overflow-y:auto; }
.pcamsi-modal-bg { position:fixed; inset:0; background:rgba(0,0,0,.55); }
.pcamsi-modal-box { position:relative; background:#fff; border-radius:10px; box-shadow:0 20px 60px rgba(0,0,0,.25); width:100%; overflow:hidden; }
.pcamsi-modal-header { background:var(--pi-blue); color:#fff; padding:13px 18px; display:flex; align-items:center; justify-content:space-between; }
.pcamsi-modal-header h2 { margin:0; font-size:15px; color:#fff; }
.pcamsi-modal-close { background:none; border:none; color:#fff; font-size:20px; cursor:pointer; opacity:.8; }
.pcamsi-modal-close:hover { opacity:1; }
.pcamsi-modal-body { padding:18px; max-height:80vh; overflow-y:auto; }
/* Alerts */
.pcamsi-error-box   { background:#fef2f2; border:1px solid #fecaca; border-radius:6px; padding:10px 14px; color:var(--pi-red); font-size:13px; }
.pcamsi-success-box { background:#f0fdf4; border:1px solid #bbf7d0; border-radius:6px; padding:10px 14px; color:#16a34a; font-size:13px; }
.pcamsi-admin-notice { background:#fef3c7; border:1px solid #fde68a; border-radius:6px; padding:10px 14px; font-size:13px; color:#92400e; }
.pcamsi-info-box { background:#eff6ff; border:1px solid #bfdbfe; border-radius:6px; padding:10px 14px; font-size:13px; color:#1d4ed8; }
/* Charts */
.pcamsi-charts-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.pcamsi-chart-wide  { grid-column:1/-1; }
@media(max-width:700px){ .pcamsi-charts-grid { grid-template-columns:1fr; } }
.pcamsi-chart-card  { background:#fff; border:1px solid var(--pi-border); border-radius:8px; padding:14px; }
.pcamsi-chart-card h3 { margin:0 0 10px; font-size:13px; color:var(--pi-blue); }
/* Security page shell */
#pcamsi-secure-page { max-width:1200px; margin:20px auto; padding:0 16px; }

/* ── Running balance & threshold ────────────────────────────────────────── */
.pcamsi-threshold-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:14px; }
@media(max-width:700px){ .pcamsi-threshold-grid { grid-template-columns:1fr; } }
.pcamsi-thresh-card { background:#fff; border:1px solid var(--pi-border); border-radius:8px; padding:14px; }
.pcamsi-thresh-label { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.4px; color:var(--pi-muted); margin-bottom:6px; }
.pcamsi-thresh-vals { display:flex; align-items:baseline; gap:8px; margin-bottom:8px; }
.pcamsi-thresh-actual { font-size:28px; font-weight:800; color:var(--pi-blue); }
.pcamsi-thresh-limit  { font-size:12px; color:var(--pi-muted); }
.pcamsi-thresh-bar-wrap { background:#e2e8f0; border-radius:4px; height:8px; overflow:hidden; }
.pcamsi-thresh-bar { height:100%; border-radius:4px; transition:width .4s; background:var(--pi-green); }
.thresh-warn  .pcamsi-thresh-bar { background:var(--pi-orange); }
.thresh-crit  .pcamsi-thresh-bar { background:var(--pi-red); }
.thresh-warn  .pcamsi-thresh-actual { color:var(--pi-orange); }
.thresh-crit  .pcamsi-thresh-actual { color:var(--pi-red); }
.pcamsi-thresh-config { background:#f8fafc; border:1px solid var(--pi-border); border-radius:8px; padding:14px; margin-bottom:14px; }
.pcamsi-grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
@media(max-width:700px){ .pcamsi-grid-3 { grid-template-columns:1fr; } }
/* Alert banner */
.pcamsi-alert-item { display:flex; align-items:flex-start; gap:10px; padding:10px 14px; border-radius:6px; margin-bottom:6px; font-size:13px; font-weight:600; }
.pcamsi-alert-critical { background:#fef2f2; border:1px solid #fca5a5; color:#991b1b; }
.pcamsi-alert-warning  { background:#fef3c7; border:1px solid #fde68a; color:#92400e; }
/* Running balance */
.pcamsi-rb-summary { display:grid; grid-template-columns:repeat(5,1fr); gap:10px; margin-bottom:0; }
@media(max-width:800px){ .pcamsi-rb-summary { grid-template-columns:repeat(2,1fr); } }
.pcamsi-rb-card { border-radius:8px; padding:12px; text-align:center; border-top:3px solid; background:#fff; border:1px solid var(--pi-border); }
.pcamsi-rb-val { font-size:22px; font-weight:800; }
.pcamsi-rb-lbl { font-size:10px; font-weight:700; text-transform:uppercase; color:var(--pi-muted); margin-top:4px; }
.pcamsi-sum-blue  .pcamsi-rb-val { color:var(--pi-blue); }
.pcamsi-sum-green .pcamsi-rb-val { color:var(--pi-green); }
.pcamsi-sum-teal  .pcamsi-rb-val { color:var(--pi-teal); }
.pcamsi-sum-red   .pcamsi-rb-val { color:var(--pi-red); }
/* Balance table net movement */
.pcamsi-net-pos { color:var(--pi-green); font-weight:700; }
.pcamsi-net-neg { color:var(--pi-red); font-weight:700; }
.pcamsi-closing-low  { background:#fef3c7 !important; }
.pcamsi-closing-crit { background:#fef2f2 !important; }
