.pharma-surface{--accent:#534ab7;--accent-light:#eeedfe;--accent-mid:#afa9ec;--accent-dark:#3c3489;--danger:#e24b4a;--danger-light:#fef0f0;--pharma-success:#16a34a;--success-light:#f0fdf4;--pharma-warning:#d97706;--warning-light:#fffbeb;--pharma-bg:#fff;--bg-2:#f8f8f6;--bg-3:#f1f0ed;--t1:#1a1a1a;--t2:#6b6b6b;--t3:#9a9a9a;--pharma-border:#00000014;--border-2:#00000026;--pharma-font:-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--mono:"SF Mono", "Cascadia Code", "Consolas", monospace;--r-sm:6px;--r-md:8px;--r-lg:12px;--success:var(--pharma-success);--warning:var(--pharma-warning);--border:var(--pharma-border);--bg:var(--pharma-bg);--font:var(--pharma-font);font-family:var(--pharma-font);color:var(--t1);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}.pharma-surface *,.pharma-surface :before,.pharma-surface :after{box-sizing:border-box}.pharma-surface button{font-family:inherit}.pharma-surface .t-page-title{letter-spacing:-.025em;font-size:1.375rem;font-weight:700;line-height:1.2}.pharma-surface .t-section{letter-spacing:-.015em;font-size:1rem;font-weight:600;line-height:1.3}.pharma-surface .t-label{letter-spacing:.01em;font-size:.8125rem;font-weight:500}.pharma-surface .t-caption{color:var(--t3);letter-spacing:.02em;font-size:.75rem}.pharma-surface .t-upper{text-transform:uppercase;letter-spacing:.06em;color:var(--t3);font-size:11px;font-weight:500}.pharma-surface .mono{font-family:var(--mono)}.pharma-surface .t-muted{color:var(--t2)}.pharma-surface .card{background:var(--pharma-bg);border:.5px solid var(--pharma-border);border-radius:var(--r-lg)}.pharma-surface .card-header{padding:14px 16px 0}.pharma-surface .card-body{padding:14px 16px}.pharma-surface .card-footer{border-top:.5px solid var(--pharma-border);background:var(--bg-2);border-radius:0 0 var(--r-lg) var(--r-lg);padding:10px 16px}.pharma-surface .kpi-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;display:grid}.dashboard-twocol{grid-template-columns:1fr}@media (min-width:768px){.dashboard-twocol{grid-template-columns:minmax(0,2fr) minmax(280px,1fr)}}.pharma-surface .kpi-card{background:var(--pharma-bg);border:.5px solid var(--pharma-border);border-radius:var(--r-lg);padding:16px}.pharma-surface .kpi-value{font-size:1.5rem;font-weight:700;font-family:var(--mono);letter-spacing:-.03em;margin-top:6px}.pharma-surface .kpi-sub{color:var(--t3);margin-top:4px;font-size:12px}.pharma-surface .btn{border-radius:var(--r-md);cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:6px;height:32px;padding:0 12px;font-size:13px;font-weight:500;transition:all .12s;display:inline-flex}.pharma-surface .btn-primary{background:var(--accent);color:#fff}.pharma-surface .btn-primary:hover{background:var(--accent-dark)}.pharma-surface .btn-outline{color:var(--t1);border:.5px solid var(--border-2);background:#fff}.pharma-surface .btn-outline:hover{background:var(--bg-2)}.pharma-surface .btn-ghost{color:var(--t2);background:0 0}.pharma-surface .btn-ghost:hover{background:var(--bg-2);color:var(--t1)}.pharma-surface .btn-danger{background:var(--danger-light);color:var(--danger)}.pharma-surface .btn-danger:hover{background:#fee2e2}.pharma-surface .btn-success{background:var(--success-light);color:var(--pharma-success)}.pharma-surface .btn-success:hover{background:#dcfce7}.pharma-surface .btn-lg{height:38px;padding:0 16px;font-size:14px}.pharma-surface .btn-sm{height:26px;padding:0 8px;font-size:12px}.pharma-surface .btn:disabled{opacity:.4;cursor:not-allowed}@media (max-width:639px){.pharma-surface .btn,.pharma-surface .btn-sm,.pharma-surface .btn-lg,.pharma-surface .input{height:auto;min-height:44px;padding-top:4px;padding-bottom:4px}}.pharma-surface .badge{letter-spacing:.02em;white-space:nowrap;border-radius:100px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.pharma-surface .badge-available{color:#15803d;background:#dcfce7}.pharma-surface .badge-reserved{background:var(--accent-light);color:var(--accent-dark)}.pharma-surface .badge-wip{color:#a16207;background:#fef9c3}.pharma-surface .badge-qc{color:#1d4ed8;background:#dbeafe}.pharma-surface .badge-quarantine{color:#b91c1c;background:#fee2e2}.pharma-surface .badge-pending{color:#374151;background:#f3f4f6}.pharma-surface .badge-approved{background:var(--success-light);color:var(--pharma-success)}.pharma-surface .badge-draft{background:var(--bg-3);color:var(--t2)}.pharma-surface .badge-danger{background:var(--danger-light);color:var(--danger)}.pharma-surface .badge-warning{background:var(--warning-light);color:var(--pharma-warning)}.pharma-surface .badge-info{color:#1d4ed8;background:#dbeafe}.pharma-surface .table-wrap{overflow-x:auto}.pharma-surface table{border-collapse:collapse;width:100%;font-size:13px}.pharma-surface thead tr{background:var(--bg-2)}.pharma-surface th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--t3);white-space:nowrap;padding:8px 12px;font-size:11px;font-weight:500}.pharma-surface th:first-child{padding-left:16px}.pharma-surface th:last-child{padding-right:16px}.pharma-surface td{border-bottom:.5px solid var(--pharma-border);padding:10px 12px}.pharma-surface td:first-child{padding-left:16px}.pharma-surface td:last-child{padding-right:16px}.pharma-surface tbody tr:last-child td{border-bottom:none}.pharma-surface tbody tr{transition:background 80ms}.pharma-surface tbody tr:hover{background:#fafafa}.pharma-surface tbody tr.clickable{cursor:pointer}.pharma-surface .col-r{text-align:right;font-family:var(--mono)}.pharma-surface .input{border:.5px solid var(--border-2);border-radius:var(--r-md);height:34px;font-size:13px;font-family:var(--pharma-font);background:var(--pharma-bg);color:var(--t1);outline:none;width:100%;padding:0 10px;transition:border .12s}.pharma-surface .input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #534ab71a}.pharma-surface .input-label{color:var(--t2);margin-bottom:4px;font-size:12px;font-weight:500}.pharma-surface .field{flex-direction:column;gap:4px;display:flex}.pharma-surface .step-row{border-bottom:.5px solid var(--pharma-border);align-items:center;gap:12px;padding:12px 16px;transition:background 80ms;display:flex}.pharma-surface .step-row:last-child{border-bottom:none}.pharma-surface .step-row.completed{background:#fafffe}.pharma-surface .step-num{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:11px;font-weight:600;display:flex}.pharma-surface .step-num.done{background:var(--success-light);color:var(--pharma-success)}.pharma-surface .step-num.active-step{background:var(--accent-light);color:var(--accent)}.pharma-surface .step-num.pending{background:var(--bg-3);color:var(--t3)}.pharma-surface .approval-step{border:.5px solid var(--pharma-border);border-radius:var(--r-md);background:var(--pharma-bg);align-items:center;gap:12px;padding:12px;display:flex}.pharma-surface .approval-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.pharma-surface .approval-connector{background:var(--pharma-border);width:2px;height:20px;margin-left:15px}.pharma-surface .modal-overlay{z-index:100;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.pharma-surface .modal{background:var(--pharma-bg);border-radius:var(--r-lg);flex-direction:column;width:90%;max-width:540px;max-height:85vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #0003}.pharma-surface .modal-header{border-bottom:.5px solid var(--pharma-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.pharma-surface .modal-body{flex:1;padding:20px;overflow-y:auto}.pharma-surface .modal-footer{border-top:.5px solid var(--pharma-border);background:var(--bg-2);justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.pharma-surface .page-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.pharma-surface .page-header-left{align-items:center;gap:10px;display:flex}.pharma-surface .back-btn{color:var(--t2);cursor:pointer;align-items:center;gap:4px;font-size:13px;display:flex}.pharma-surface .back-btn:hover{color:var(--t1)}.pharma-surface .content-grid{gap:16px;display:grid}.pharma-surface .tabs{border-bottom:.5px solid var(--pharma-border);gap:2px;margin-bottom:20px;display:flex}.pharma-surface .tab{color:var(--t2);cursor:pointer;border-bottom:2px solid #0000;margin-bottom:-.5px;padding:8px 14px;font-size:13px;font-weight:500;transition:all .12s}.pharma-surface .tab:hover{color:var(--t1)}.pharma-surface .tab.active{color:var(--accent);border-bottom-color:var(--accent)}.pharma-surface .tag{border-radius:4px;align-items:center;gap:3px;padding:2px 7px;font-size:11px;font-weight:500;display:inline-flex}.pharma-surface .progress-bar{background:var(--bg-3);border-radius:3px;height:6px;overflow:hidden}.pharma-surface .progress-fill{border-radius:3px;height:100%;transition:width .4s}.pharma-surface .scan-box{border:2px dashed var(--border-2);border-radius:var(--r-lg);text-align:center;background:var(--bg-2);padding:24px;transition:all .2s}.pharma-surface .scan-box.scanned{border-color:var(--pharma-success);background:var(--success-light);border-style:solid}.pharma-surface .chip{background:var(--bg-3);color:var(--t2);border-radius:100px;align-items:center;gap:4px;padding:3px 8px;font-size:12px;display:inline-flex}.pharma-surface .pulse-dot{animation:1.5s infinite pharma-surface-pulse}@keyframes pharma-surface-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.4)}}
