/* ── Reset ─────────────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-family:'Inter',system-ui,sans-serif;font-size:14px;color:#212529;background:#F8F9FA}
body{min-height:100vh}
button{font-family:inherit;cursor:pointer}
a{text-decoration:none}
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:#F8F9FA}
::-webkit-scrollbar-thumb{background:#DEE2E6;border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:#6C757D}

/* ── Design tokens ─────────────────────────────────────────────────────── */
:root{
  --primary:      #2E5A8C;
  --primary-light:#4A7DB8;
  --primary-dark: #1E3A5C;
  --success:      #28A745;
  --warning:      #FFC107;
  --danger:       #DC3545;
  --n100:#FFFFFF;
  --n200:#F8F9FA;
  --n300:#E9ECEF;
  --n400:#DEE2E6;
  --n500:#6C757D;
  --n900:#212529;
  --sidebar-w:    256px;
  --sidebar-coll: 64px;
  --topbar-h:     64px;
  --radius-sm:    4px;
  --radius-md:    8px;
  --radius-lg:    12px;
  --shadow-sm:    0 1px 2px rgba(0,0,0,.05);
  --shadow-md:    0 4px 6px rgba(0,0,0,.10);
  --shadow-lg:    0 10px 15px rgba(0,0,0,.10);
}

/* ── Buttons ─────────────────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  border:none;border-radius:var(--radius-sm);font-weight:500;font-family:inherit;
  cursor:pointer;transition:all .15s;white-space:nowrap;outline:none;
  text-decoration:none;
}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px;box-shadow:0 0 0 3px rgba(46,90,140,.2)}
.btn-xs {height:28px;padding:0 10px;font-size:12px}
.btn-sm {height:32px;padding:0 12px;font-size:12px}
.btn-md {height:40px;padding:0 16px;font-size:14px}
.btn-lg {height:48px;padding:0 24px;font-size:15px}
.btn-primary  {background:var(--primary);color:#fff}
.btn-primary:hover{background:var(--primary-dark)}
.btn-secondary{background:#fff;color:var(--primary);border:1px solid var(--primary)}
.btn-secondary:hover{background:#EFF6FF}
.btn-success  {background:var(--success);color:#fff}
.btn-success:hover{background:#218838}
.btn-danger   {background:var(--danger);color:#fff}
.btn-danger:hover{background:#c82333}
.btn-ghost    {background:transparent;color:var(--primary)}
.btn-ghost:hover{background:#EFF6FF}
.btn-warning  {background:var(--warning);color:var(--n900)}
.btn-warning:hover{background:#e0a800}

/* ── Badges ──────────────────────────────────────────────────────────── */
.badge{
  display:inline-flex;align-items:center;padding:2px 10px;
  border-radius:9999px;font-size:11px;font-weight:500;white-space:nowrap;
}
.badge-pending     {background:#FFF3CD;color:#856404}
.badge-in_progress {background:#CCE5FF;color:#004085}
.badge-approved,.badge-active,.badge-pass,.badge-resolved,.badge-verified
                   {background:#D4EDDA;color:#155724}
.badge-rejected,.badge-fail,.badge-overdue,.badge-blacklisted,.badge-lost_stolen,.badge-escalated
                   {background:#F8D7DA;color:#721C24}
.badge-completed,.badge-paid,.badge-awarded
                   {background:var(--success);color:#fff}
.badge-draft,.badge-normal,.badge-disposed,.badge-closed
                   {background:var(--n300);color:var(--n500)}
.badge-in_stock,.badge-sent,.badge-open,.badge-diagnostics
                   {background:#CCE5FF;color:#004085}
.badge-assigned    {background:#D4EDDA;color:#155724}
.badge-under_repair,.badge-suspended,.badge-in_repair,.badge-discrepancy
                   {background:#FFF3CD;color:#856404}
.badge-urgent      {background:#F8D7DA;color:#721C24}
.badge-delivered   {background:#E8D5F5;color:#6B21A8}

/* ── Cards ───────────────────────────────────────────────────────────── */
.card{
  background:#fff;border:1px solid var(--n300);border-radius:var(--radius-md);
  padding:24px;box-shadow:var(--shadow-sm);transition:box-shadow .15s;
}
.card:hover{box-shadow:var(--shadow-md)}
.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.card-title{font-size:16px;font-weight:600;color:var(--n900)}

/* ── Form inputs ─────────────────────────────────────────────────────── */
.form-input,.form-select,.form-textarea{
  height:40px;width:100%;padding:0 12px;
  border:1px solid var(--n400);border-radius:var(--radius-sm);
  font-size:14px;font-family:inherit;background:#fff;outline:none;
  transition:border-color .15s,box-shadow .15s;
}
.form-textarea{height:auto;padding:10px 12px;resize:none}
.form-input:focus,.form-select:focus,.form-textarea:focus{
  border-color:var(--primary);box-shadow:0 0 0 3px rgba(46,90,140,.15);
}
.form-input:disabled,.form-select:disabled,.form-textarea:disabled{
  background:var(--n200);opacity:.7;cursor:not-allowed;
}
.form-select{
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236C757D' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 10px center;
  padding-right:32px;cursor:pointer;
}
.form-label{display:block;font-size:13px;font-weight:500;color:#374151;margin-bottom:4px}
.form-field{display:flex;flex-direction:column;gap:4px;margin-bottom:16px}
.form-error{font-size:11px;color:var(--danger);margin-top:2px}

/* ── Tables ──────────────────────────────────────────────────────────── */
.tbl{width:100%;border-collapse:collapse}
.tbl-wrap{overflow-x:auto}
.tbl th{
  background:var(--n200);padding:10px 16px;text-align:left;
  font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;
  color:var(--n500);border-bottom:1px solid var(--n300);
}
.tbl td{padding:12px 16px;font-size:13px;border-bottom:1px solid var(--n300);color:var(--n900)}
.tbl tr:hover td{background:#F0F4F8}
.tbl tr:nth-child(even) td{background:#FAFBFC}
.tbl tr:nth-child(even):hover td{background:#F0F4F8}

/* ── Layout ──────────────────────────────────────────────────────────── */
.sidebar{
  position:fixed;top:0;left:0;height:100vh;
  width:var(--sidebar-w);background:var(--primary-dark);
  display:flex;flex-direction:column;z-index:30;
  transition:width .3s ease;
}
.sidebar.collapsed{width:var(--sidebar-coll)}
.topbar{
  position:fixed;top:0;right:0;
  left:var(--sidebar-w);height:var(--topbar-h);
  background:#fff;border-bottom:1px solid var(--n300);
  z-index:20;display:flex;align-items:center;
  padding:0 24px;gap:12px;
  box-shadow:var(--shadow-sm);transition:left .3s ease;
}
.topbar.collapsed{left:var(--sidebar-coll)}
.main-content{
  margin-left:var(--sidebar-w);margin-top:var(--topbar-h);
  padding:24px;min-height:calc(100vh - var(--topbar-h));
  transition:margin-left .3s ease;
}
.main-content.collapsed{margin-left:var(--sidebar-coll)}

/* ── Sidebar internals ───────────────────────────────────────────────── */
.sidebar-logo{
  display:flex;align-items:center;gap:12px;
  padding:20px 16px;border-bottom:1px solid var(--primary);flex-shrink:0;
}
.sidebar-logo.center{justify-content:center}
.logo-icon{
  width:32px;height:32px;background:var(--success);
  border-radius:var(--radius-sm);display:flex;align-items:center;
  justify-content:center;flex-shrink:0;
}
.sidebar-nav{flex:1;padding:12px 8px;overflow-y:auto}
.nav-item{
  display:flex;align-items:center;gap:12px;
  padding:10px 12px;border-radius:var(--radius-sm);
  color:#bfdbfe;font-size:14px;font-weight:500;
  cursor:pointer;transition:all .15s;margin-bottom:2px;
  position:relative;border:none;background:none;
  width:100%;text-align:left;font-family:inherit;
  border-left:3px solid transparent;
}
.nav-item:hover{background:var(--primary);color:#fff}
.nav-item.active{background:var(--primary);color:#fff;border-left-color:var(--success)}
.nav-item.center-item{justify-content:center;padding:10px 0}
.sidebar-footer{
  border-top:1px solid var(--primary);padding:16px;
  display:flex;align-items:center;gap:10px;flex-shrink:0;
}
.sidebar-footer.center{justify-content:center}
.collapse-btn{
  position:absolute;right:-12px;top:84px;
  width:24px;height:24px;background:#fff;
  border:1px solid var(--n300);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;box-shadow:var(--shadow-sm);z-index:5;
}
.collapse-btn:hover{background:var(--n200)}

/* ── Avatar ──────────────────────────────────────────────────────────── */
.avatar{
  border-radius:50%;background:var(--primary);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-weight:600;flex-shrink:0;
}
.avatar-sm{width:28px;height:28px;font-size:11px}
.avatar-md{width:36px;height:36px;font-size:13px}
.avatar-lg{width:44px;height:44px;font-size:15px}

/* ── Notification badge ──────────────────────────────────────────────── */
.notif-dot{
  position:absolute;top:-5px;right:-5px;
  width:16px;height:16px;background:var(--danger);
  border-radius:50%;font-size:9px;color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:700;
}

/* ── Dropdown menus ──────────────────────────────────────────────────── */
.dropdown{
  position:absolute;right:0;top:48px;
  background:#fff;border:1px solid var(--n300);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);
  z-index:50;overflow:hidden;
  animation:fadeIn .18s ease;
}
.dropdown-item{
  display:flex;align-items:center;gap:8px;
  width:100%;padding:10px 16px;border:none;background:none;
  font-size:13px;font-family:inherit;color:var(--n900);
  cursor:pointer;text-align:left;
}
.dropdown-item:hover{background:var(--n200)}
.dropdown-item.danger{color:var(--danger)}
.dropdown-item.danger:hover{background:#FEF2F2}

/* ── Notif dropdown ──────────────────────────────────────────────────── */
.notif-dd{width:320px}
.notif-item{
  display:flex;align-items:flex-start;gap:10px;
  padding:12px 16px;cursor:pointer;
  border-bottom:1px solid var(--n300);
  transition:background .1s;
}
.notif-item:hover{background:var(--n200)}
.notif-item.unread{background:#EFF6FF}

/* ── Toast ───────────────────────────────────────────────────────────── */
.toast-container{position:fixed;top:16px;right:16px;z-index:100;display:flex;flex-direction:column;gap:8px}
.toast{
  display:flex;align-items:flex-start;gap:10px;
  padding:12px 16px;border-radius:var(--radius-md);
  min-width:288px;max-width:380px;
  box-shadow:var(--shadow-lg);color:#fff;font-size:13px;
  animation:slideIn .3s ease;
}
.toast-success{background:#16A34A}
.toast-error  {background:var(--danger)}
.toast-warning{background:#D97706}
.toast-info   {background:var(--primary)}
.toast-close{margin-left:auto;opacity:.7;cursor:pointer;background:none;border:none;color:inherit;padding:0;font-size:16px;line-height:1}
.toast-close:hover{opacity:1}

/* ── Modal ───────────────────────────────────────────────────────────── */
.modal-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.5);
  z-index:50;display:flex;align-items:center;justify-content:center;
  padding:16px;
}
.modal-panel{
  background:#fff;border-radius:var(--radius-lg);
  width:100%;max-height:90vh;display:flex;flex-direction:column;
  box-shadow:0 20px 40px rgba(0,0,0,.2);animation:fadeIn .2s ease;
}
.modal-sm{max-width:480px}
.modal-md{max-width:640px}
.modal-lg{max-width:800px}
.modal-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 24px;border-bottom:1px solid var(--n300);flex-shrink:0;
}
.modal-title{font-size:18px;font-weight:600}
.modal-body{padding:24px;overflow-y:auto;flex:1}
.modal-footer{
  padding:16px 24px;border-top:1px solid var(--n300);
  display:flex;gap:8px;justify-content:flex-end;flex-shrink:0;
}
.modal-box{background:#fff;border-radius:12px;box-shadow:var(--shadow-lg);
  width:100%;max-width:480px;padding:28px}
.modal-actions{display:flex;gap:12px;justify-content:flex-end}

/* ── Login ───────────────────────────────────────────────────────────── */
.login-page{
  min-height:100vh;display:flex;flex-direction:column;
  align-items:center;justify-content:center;padding:24px;
  background:linear-gradient(135deg,var(--primary-dark) 0%,var(--primary) 100%);
}
.login-card{
  background:#fff;border-radius:var(--radius-lg);
  padding:32px;width:100%;max-width:400px;
  box-shadow:0 20px 40px rgba(0,0,0,.2);
}

/* ── Placeholder ─────────────────────────────────────────────────────── */
.placeholder-page{
  display:flex;flex-direction:column;align-items:center;
  justify-content:center;min-height:60vh;text-align:center;padding:24px;
}
.placeholder-icon{
  width:80px;height:80px;background:#EFF6FF;border-radius:50%;
  display:flex;align-items:center;justify-content:center;margin-bottom:24px;
}

/* ── Search box ──────────────────────────────────────────────────────── */
.search-box{
  display:flex;align-items:center;gap:8px;border:1px solid var(--n400);border-radius:8px;
  padding:0 12px;background:#fff;height:38px;flex:1;max-width:280px;
}
.search-box input{border:none;outline:none;font-size:13px;background:transparent;width:100%;color:var(--n900)}

/* ── Utilities ───────────────────────────────────────────────────────── */
.flex{display:flex}.flex-col{display:flex;flex-direction:column}
.items-center{align-items:center}.justify-between{justify-content:space-between}
.justify-end{justify-content:flex-end}
.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}
.flex-1{flex:1}.min-w-0{min-width:0}.flex-shrink-0{flex-shrink:0}
.w-full{width:100%}.relative{position:relative}
.text-sm{font-size:13px}.text-xs{font-size:11px}.text-base{font-size:15px}
.font-semibold{font-weight:600}.font-medium{font-weight:500}.font-bold{font-weight:700}
.text-muted{color:var(--n500)}.text-primary{color:var(--primary)}
.text-success{color:var(--success)}.text-danger{color:var(--danger)}
.text-white{color:#fff}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}
.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}
.ml-auto{margin-left:auto}
.p-4{padding:16px}.py-2{padding-top:8px;padding-bottom:8px}
.border-b{border-bottom:1px solid var(--n300)}.border-t{border-top:1px solid var(--n300)}
.rounded{border-radius:var(--radius-sm)}.rounded-lg{border-radius:var(--radius-lg)}
.rounded-full{border-radius:50%}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.link{color:var(--primary);cursor:pointer}.link:hover{text-decoration:underline}
.divider{border:none;border-top:1px solid var(--n300);margin:16px 0}
.pill{
  padding:5px 14px;border-radius:9999px;font-size:12px;
  font-weight:500;cursor:pointer;border:1px solid var(--n400);
  background:#fff;color:var(--n500);transition:all .15s;
}
.pill.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.pills{display:flex;gap:8px;flex-wrap:wrap}
.alert{
  display:flex;align-items:flex-start;gap:10px;
  padding:12px 16px;border-radius:var(--radius-sm);font-size:13px;
}
.alert-info   {background:#EFF6FF;border:1px solid #BFDBFE;color:#1E40AF}
.alert-warning{background:#FFFBEB;border:1px solid #FDE68A;color:#92400E}
.alert-danger {background:#FEF2F2;border:1px solid #FECACA;color:#991B1B}
.alert-success{background:#F0FDF4;border:1px solid #BBF7D0;color:#166534}
.info-row{display:flex;padding:10px 0;border-bottom:1px solid var(--n300)}
.info-label{width:40%;font-size:13px;color:var(--n500);font-weight:500}
.info-value{flex:1;font-size:13px;color:var(--n900)}
.chip{
  display:inline-flex;align-items:center;gap:4px;
  padding:3px 10px;border-radius:9999px;
  font-size:11px;background:var(--n200);color:var(--n500);
}
.text-h1{font-size:32px;font-weight:700;line-height:1.2;color:var(--n900)}
.text-h2{font-size:24px;font-weight:600;line-height:1.3;color:var(--n900)}
.text-h3{font-size:18px;font-weight:600;line-height:1.4;color:var(--n900)}
.text-caption{font-size:11px;font-weight:500;line-height:1.4;text-transform:uppercase;letter-spacing:.05em;color:var(--n500)}
.mobile-overlay{
  display:none;position:fixed;inset:0;
  background:rgba(0,0,0,.5);z-index:25;
}
.bottom-nav{
  display:none;position:fixed;bottom:0;left:0;right:0;
  height:60px;background:#fff;border-top:1px solid var(--n300);
  z-index:25;align-items:stretch;
}
.bottom-nav-item{
  flex:1;display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  gap:4px;font-size:10px;color:var(--n500);
  cursor:pointer;background:none;border:none;font-family:inherit;
  min-height:44px;
}
.bottom-nav-item.active{color:var(--primary)}

/* ── Animations ──────────────────────────────────────────────────────── */
@keyframes slideIn{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}
@keyframes fadeIn {from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideUpFade{from{opacity:0;transform:translateX(-50%) translateY(20px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}

/* ── Responsive ──────────────────────────────────────────────────────── */
@media(min-width:640px) and (max-width:1023px){
  .sidebar{width:var(--sidebar-coll)!important}
  .topbar{left:var(--sidebar-coll)!important}
  .main-content{margin-left:var(--sidebar-coll)!important}
  .grid-3,.grid-4{grid-template-columns:1fr 1fr}
}
@media(max-width:1023px){
  .sidebar{transform:translateX(-100%);transition:transform .3s ease;width:var(--sidebar-w)!important}
  .sidebar.mobile-open{transform:translateX(0)}
  .topbar{left:0!important}
  .main-content{margin-left:0!important}
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr}
  .bottom-nav{display:flex}
  .hide-mobile{display:none!important}
}

/* ── Phase 3 — Request Management CSS ─────────────────────────────────── */
.filter-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:20px}
.filter-pill{padding:6px 16px;border-radius:20px;border:1px solid var(--n400);background:#fff;
             font-size:13px;font-weight:500;color:var(--n500);cursor:pointer;transition:all .15s}
.filter-pill:hover{border-color:var(--primary);color:var(--primary)}
.filter-pill.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}
.page-title{font-size:22px;font-weight:700;color:var(--n900)}
.page-sub{font-size:13px;color:var(--n500);margin-top:2px}
.form-section{background:#fff;border:1px solid var(--n300);border-radius:10px;padding:24px;margin-bottom:20px}
.form-section-title{font-size:15px;font-weight:600;color:var(--n900);margin-bottom:16px;
                    padding-bottom:10px;border-bottom:1px solid var(--n300)}
.form-group{margin-bottom:16px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.radio-group{display:flex;gap:20px;margin-top:4px}
.radio-option{display:flex;align-items:center;gap:8px;cursor:pointer}
.radio-option input{accent-color:var(--primary);width:16px;height:16px}
.radio-option label{font-size:13px;color:var(--n900);cursor:pointer}
.cost-display{background:#EFF6FF;border:1px solid #BFDBFE;border-radius:8px;padding:10px 14px;
              font-size:18px;font-weight:700;color:var(--primary)}
.cost-label{font-size:11px;color:var(--primary);font-weight:500;text-transform:uppercase;letter-spacing:.5px}
.char-counter{font-size:11px;color:var(--n500);text-align:right;margin-top:2px}
.char-counter.warn{color:var(--warning)}
.char-counter.danger{color:var(--danger)}
.stepper{position:relative;padding-left:32px}
.step{position:relative;padding-bottom:24px}
.step:last-child{padding-bottom:0}
.step-line{position:absolute;left:-20px;top:20px;bottom:0;width:2px;background:var(--n300)}
.step:last-child .step-line{display:none}
.step-dot{position:absolute;left:-28px;top:4px;width:16px;height:16px;border-radius:50%;
          display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;
          border:2px solid var(--n400);background:#fff;z-index:1}
.step-dot.approved{background:var(--success);border-color:var(--success);color:#fff}
.step-dot.rejected{background:var(--danger);border-color:var(--danger);color:#fff}
.step-dot.pending.active{background:#fff;border-color:var(--primary);box-shadow:0 0 0 3px rgba(46,90,140,.2)}
.step-dot.pending{background:#fff;border-color:var(--n400)}
.step-header{font-size:13px;font-weight:600;color:var(--n900)}
.step-meta{font-size:11px;color:var(--n500);margin-top:2px}
.step-comment{font-size:12px;color:var(--n700,#4B5563);background:#F8F9FA;border-radius:6px;
              padding:8px 10px;margin-top:8px;border-left:3px solid var(--n400)}
.linked-record{display:flex;align-items:center;justify-content:space-between;
               padding:10px 0;border-bottom:1px solid var(--n300)}
.linked-record:last-child{border-bottom:none}
.history-item{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--n300)}
.history-item:last-child{border-bottom:none}
.history-dot{width:8px;height:8px;border-radius:50%;background:var(--primary);
             margin-top:5px;flex-shrink:0}
.history-body{flex:1}
.history-action{font-size:13px;color:var(--n900)}
.history-time{font-size:11px;color:var(--n500);margin-top:2px}
.pager{display:flex;align-items:center;justify-content:space-between;margin-top:16px;flex-wrap:wrap;gap:10px}
.pager-info{font-size:13px;color:var(--n500)}
.pager-controls{display:flex;align-items:center;gap:6px}
.pager-btn{height:32px;min-width:32px;padding:0 10px;border-radius:6px;border:1px solid var(--n400);
           background:#fff;font-size:12px;cursor:pointer;color:var(--n900);transition:all .15s}
.pager-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}
.pager-btn:disabled{opacity:.4;cursor:not-allowed}
.pager-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.detail-header{background:#fff;border:1px solid var(--n300);border-radius:10px;
               padding:20px 24px;margin-bottom:20px;display:flex;align-items:flex-start;
               justify-content:space-between;flex-wrap:wrap;gap:12px}
.detail-kv{display:flex;flex-direction:column;gap:3px;margin-bottom:14px}
.detail-kv:last-child{margin-bottom:0}
.detail-key{font-size:11px;font-weight:600;color:var(--n500);text-transform:uppercase;letter-spacing:.5px}
.detail-val{font-size:14px;color:var(--n900)}
.two-col-detail{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
.action-comment textarea{width:100%;box-sizing:border-box}
.empty-state{text-align:center;padding:48px 24px;color:var(--n500)}
.empty-state-icon{font-size:40px;margin-bottom:12px}
.empty-state p{font-size:14px}
.per-page-select{font-size:13px;border:1px solid var(--n400);border-radius:6px;
                 padding:4px 8px;background:#fff;color:var(--n900);cursor:pointer}
.tag-urgent{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;
            color:var(--danger)}
@media(max-width:768px){
  .form-row{grid-template-columns:1fr}
  .two-col-detail{grid-template-columns:1fr}
  .page-header{flex-direction:column;align-items:flex-start}
}

/* ── Phase 4 — Procurement Workflow CSS ─────────────────────────────── */
.sidebar-filter-panel{width:240px;flex-shrink:0;background:#fff;border:1px solid var(--n300);
  border-radius:10px;padding:20px;position:sticky;top:16px;align-self:flex-start}
.sidebar-filter-panel h3{font-size:13px;font-weight:700;color:var(--n900);
  text-transform:uppercase;letter-spacing:.5px;margin-bottom:16px}
.filter-group{margin-bottom:18px}
.filter-group:last-child{margin-bottom:0}
.filter-group-label{font-size:11px;font-weight:600;color:var(--n500);
  text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}
.filter-reset{font-size:12px;color:var(--primary);background:none;border:none;
  cursor:pointer;padding:0;float:right;font-weight:500}
.filter-reset:hover{text-decoration:underline}
.score-bar-wrap{position:relative;margin-top:4px}
.score-bar-track{height:6px;background:var(--n300);border-radius:3px;position:relative}
.score-bar-fill{height:6px;border-radius:3px;transition:width .3s}
.range-input{width:100%;margin-top:6px;accent-color:var(--primary)}
.toggle-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.toggle-row label{font-size:13px;color:var(--n900)}
.toggle-switch{position:relative;width:36px;height:20px;display:inline-block}
.toggle-switch input{opacity:0;width:0;height:0}
.toggle-slider{position:absolute;inset:0;background:var(--n400);border-radius:10px;
  cursor:pointer;transition:.2s}
.toggle-slider:before{content:'';position:absolute;width:14px;height:14px;left:3px;
  bottom:3px;background:#fff;border-radius:50%;transition:.2s}
.toggle-switch input:checked + .toggle-slider{background:var(--primary)}
.toggle-switch input:checked + .toggle-slider:before{transform:translateX(16px)}
.score-chip{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:700;
  padding:3px 10px;border-radius:20px}
.score-chip.green{background:#D4EDDA;color:#155724}
.score-chip.yellow{background:#FFF3CD;color:#856404}
.score-chip.red{background:#F8D7DA;color:#721C24}
.crit-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:5px}
.crit-dot.critical{background:var(--danger)}
.crit-dot.non-critical{background:var(--n400)}
.tabs-bar{display:flex;border-bottom:2px solid var(--n300);margin-bottom:24px}
.tab-btn{padding:10px 20px;font-size:14px;font-weight:500;color:var(--n500);
  background:none;border:none;cursor:pointer;border-bottom:2px solid transparent;
  margin-bottom:-2px;transition:all .15s}
.tab-btn:hover{color:var(--primary)}
.tab-btn.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}
.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.compliance-row{display:flex;align-items:center;justify-content:space-between;
  padding:10px 0;border-bottom:1px solid var(--n300)}
.compliance-row:last-child{border-bottom:none}
.compliance-label{font-size:13px;color:var(--n900)}
.compliance-badge{font-size:12px;font-weight:600;padding:3px 10px;border-radius:20px}
.compliance-badge.yes{background:#D4EDDA;color:#155724}
.compliance-badge.no{background:#F8D7DA;color:#721C24}
.stat-row{display:flex;gap:24px;margin-bottom:20px}
.stat-box{flex:1;background:#F8F9FA;border-radius:8px;padding:14px;text-align:center}
.stat-box-val{font-size:22px;font-weight:700;color:var(--primary)}
.stat-box-lbl{font-size:11px;color:var(--n500);margin-top:2px}
.score-trend-chart{width:100%;overflow-x:auto;margin-bottom:20px}
.running-avg{text-align:center;margin-bottom:20px}
.running-avg-num{font-size:52px;font-weight:800;line-height:1}
.running-avg-lbl{font-size:13px;color:var(--n500);margin-top:4px}
.alert-chip{display:inline-flex;align-items:center;gap:6px;background:#F8D7DA;
  color:#721C24;border-radius:8px;padding:8px 12px;font-size:13px;font-weight:500;
  margin-bottom:12px}
.doc-row{display:flex;align-items:center;justify-content:space-between;
  padding:12px 0;border-bottom:1px solid var(--n300)}
.doc-row:last-child{border-bottom:none}
.doc-icon{width:36px;height:36px;background:#EFF6FF;border-radius:8px;
  display:flex;align-items:center;justify-content:center;flex-shrink:0}
.doc-meta{flex:1;margin-left:12px}
.doc-name{font-size:13px;font-weight:600;color:var(--n900)}
.doc-size{font-size:11px;color:var(--n500);margin-top:2px}
.countdown-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;
  font-weight:600;padding:2px 8px;border-radius:20px}
.countdown-badge.red{background:#F8D7DA;color:#721C24}
.countdown-badge.amber{background:#FFF3CD;color:#856404}
.countdown-badge.green{background:#D4EDDA;color:#155724}
.countdown-badge.grey{background:var(--n300);color:var(--n500)}
.rfq-section-title{font-size:15px;font-weight:600;color:var(--n900);
  padding-bottom:10px;border-bottom:1px solid var(--n300);margin-bottom:16px;
  display:flex;align-items:center;gap:8px}
.vendor-checkbox-row{display:flex;align-items:center;justify-content:space-between;
  padding:10px 0;border-bottom:1px solid var(--n300)}
.vendor-checkbox-row:last-child{border-bottom:none}
.bid-row-recommended{background:#F0FFF4 !important}
.bid-row-recommended td{border-left:3px solid var(--success)}
.deviation-flag{background:#FFFBEB;color:#92400E;font-size:11px;font-weight:600;
  padding:2px 6px;border-radius:4px;border:1px solid #FCD34D}
.matrix-hdr{background:var(--n200);font-size:12px;font-weight:600;
  color:var(--n700,#374151);padding:8px 12px;border-bottom:1px solid var(--n300)}
.matrix-cell{padding:10px 12px;font-size:13px;border-bottom:1px solid var(--n300)}
.matrix-cell.best{color:var(--success);font-weight:700}
.matrix-cell.worst{color:var(--danger)}
.po-doc{background:#fff;border:1px solid var(--n300);border-radius:10px;padding:40px;
  max-width:800px;margin:0 auto}
.po-doc-header{display:flex;justify-content:space-between;align-items:flex-start;
  margin-bottom:32px;padding-bottom:20px;border-bottom:2px solid var(--n900)}
.po-company-name{font-size:20px;font-weight:800;color:var(--n900)}
.po-company-addr{font-size:12px;color:var(--n500);margin-top:4px;line-height:1.6}
.po-number{font-size:28px;font-weight:800;color:var(--primary);text-align:right}
.po-number-lbl{font-size:11px;color:var(--n500);text-align:right}
.po-section{margin-bottom:24px}
.po-section-title{font-size:12px;font-weight:700;text-transform:uppercase;
  letter-spacing:.5px;color:var(--n500);margin-bottom:10px;
  padding-bottom:6px;border-bottom:1px solid var(--n300)}
.po-kv{display:flex;gap:8px;margin-bottom:6px}
.po-kv-key{font-size:12px;color:var(--n500);min-width:120px}
.po-kv-val{font-size:13px;color:var(--n900);font-weight:500}
.po-condition{background:#FFF3CD;border:1px solid #FFC107;border-radius:8px;
  padding:12px 16px;font-size:13px;color:#856404;margin-top:16px}
.signature-row{display:flex;gap:40px;margin-top:32px;padding-top:20px;
  border-top:1px solid var(--n300)}
.signature-block{flex:1;text-align:center}
.signature-line{border-top:1px solid var(--n900);margin:32px auto 6px;width:80%}
.signature-name{font-size:12px;font-weight:600;color:var(--n900)}
.signature-role{font-size:11px;color:var(--n500)}
.with-sidebar{display:flex;gap:20px;align-items:flex-start}
.with-sidebar .main-area{flex:1;min-width:0}
@media(max-width:768px){
  .with-sidebar{flex-direction:column}
  .sidebar-filter-panel{width:100%;position:static}
  .profile-grid{grid-template-columns:1fr}
  .po-doc{padding:20px}
  .signature-row{flex-direction:column;gap:20px}
}
