@import url('/css/tokens.css');
@import url('/css/components.css');
@import url('/css/production-theme.css');

.mb-4{margin-bottom:var(--space-4);}
.page-hidden{display:none!important;}
.toast-stack{position:fixed;right:18px;top:18px;z-index:120;display:grid;gap:10px;width:min(360px,calc(100vw - 36px));}
.toast{padding:12px 14px;border:1px solid var(--mist);border-left:4px solid var(--primary);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-2);}
.toast-success{border-left-color:var(--success);}
.toast-error{border-left-color:var(--critical);}
.toast-info{border-left-color:var(--primary);}
.toast-title{font-size:13px;font-weight:700;color:var(--ink);}
.toast-message{margin-top:2px;color:var(--slate);font-size:12px;}
.section-title{font-size:14px;color:var(--slate);text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--space-3);}
.alert{padding:12px 14px;border:1px solid var(--critical-soft);border-radius:var(--radius-md);background:var(--critical-soft);color:var(--critical-ink);}
.upload-files-grid{min-width:1480px;}
.upload-files-job-grid{min-width:980px;}
.grid-th-sortable{cursor:pointer;user-select:none;}
.grid-filter-actions{display:flex;align-items:center;gap:var(--space-2);}
.grid-icon-btn{width:30px;height:30px;display:inline-grid;place-items:center;border:1px solid var(--mist);border-radius:var(--radius-sm);background:var(--surface);color:var(--slate);cursor:pointer;}
.grid-icon-btn:hover{border-color:var(--primary);color:var(--primary);}
.grid-search-btn{background:var(--warning-soft);color:var(--warning-ink);border-color:transparent;}
.grid-search-btn:hover{background:var(--warning);color:var(--surface);border-color:var(--warning);}
.grid-clear-btn{background:var(--critical-soft);color:var(--critical-ink);border-color:transparent;}
.grid-clear-btn:hover{background:var(--critical);color:var(--surface);border-color:var(--critical);}
.grid-view-btn,.grid-upload-btn{background:var(--warning-soft);color:var(--warning-ink);border-color:transparent;}
.grid-view-btn:hover,.grid-upload-btn:hover{background:var(--warning);color:var(--surface);border-color:var(--warning);}
.money{text-align:right;font-variant-numeric:tabular-nums;}
.mono{font-family:var(--font-data);font-variant-numeric:tabular-nums;}
.cell-primary{color:var(--primary);font-weight:800;}
.cell-link{color:var(--primary);font-weight:800;text-decoration:none;}
.cell-link-btn{background:none;border:none;padding:0;font:inherit;cursor:pointer;}
.cell-link-btn:hover{text-decoration:underline;}
.cell-sub-inline{color:var(--slate);font-size:12.5px;font-weight:600;}
.muted{color:var(--slate);}
.small{font-size:12.5px;}
.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:var(--radius-pill);font-size:11.5px;font-weight:800;white-space:nowrap;}
.chip-success{background:var(--success-soft);color:var(--success-ink);}
.grid-pagination{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-4);flex-wrap:wrap;}
.grid-pagination-size{display:flex;align-items:center;gap:var(--space-2);}
.grid-pagination-size select{width:auto;}
.grid-pagination-nav{display:flex;align-items:center;gap:var(--space-2);}
.grid-pagination-nav select{width:auto;min-width:64px;}
.grid-row-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;}
.modal-backdrop{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:var(--space-5);background:rgba(15,23,42,.42);}
.modal-card{width:min(460px,calc(100vw - 32px));border:1px solid var(--mist);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-2);}
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--mist);}
.modal-head h2{font-size:16px;margin:0;}
.client-details-card .kv-stack{display:grid;gap:var(--space-2);padding:var(--space-4);}
.client-details-card .kv-stack>div{padding:var(--space-3);background:var(--paper);border-radius:var(--radius-sm);}
.client-details-card .kv-stack span{display:block;margin-bottom:2px;color:var(--slate);font-size:11px;}
.client-details-card .kv-stack strong{font-size:13px;}
.detail-content{max-width:1600px;margin:0 auto;}
.detail-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4);align-items:start;}
.detail-main{display:grid;gap:var(--space-4);}
.back-link{display:inline-block;margin-bottom:var(--space-2);color:var(--primary);font-size:12.5px;font-weight:600;text-decoration:none;}
.back-link:hover{text-decoration:underline;}
.detail-card h2{font-size:15px;}
.section-heading{display:flex;justify-content:space-between;margin-bottom:var(--space-4);}
.section-heading p{font-size:12.5px;color:var(--slate);margin-top:2px;}
.job-block{padding:var(--space-4) 0;border-top:1px solid var(--mist);}
.job-block:first-of-type{border-top:0;}
.job-heading{display:flex;align-items:flex-start;justify-content:flex-start;gap:var(--space-3);margin-bottom:var(--space-4);}
.job-heading-main{display:flex;flex:1;min-width:0;flex-direction:column;}
.job-heading-main small{color:var(--slate);font-size:12px;margin-top:2px;}
.job-select{display:flex;align-items:center;gap:var(--space-2);flex:none;}
.job-number{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--primary-soft);color:var(--primary-ink);font-size:12px;font-weight:600;}
.kv-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-2);}
.kv-grid>div{padding:var(--space-3);background:var(--paper);border-radius:var(--radius-sm);}
.kv-grid span{display:block;margin-bottom:2px;color:var(--slate);font-size:11px;}
.kv-grid strong{font-size:12.5px;}
.job-lines{margin-top:var(--space-3);}
.job-lines table{min-width:720px;}
.job-lines th,.job-lines td{text-align:left;}

.print-queue-section{margin-bottom:var(--space-4);}
.print-queue-section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0;}
.print-queue-section-select{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;}
.print-queue-section table{min-width:820px;}
.requirement-group-start td{border-top:2px solid var(--mist);}
.requirement-type-cell{vertical-align:middle;text-align:left;background:var(--mist-2);min-width:220px;}
.requirement-type-cell strong{display:block;font-weight:800;}
.requirement-error{color:var(--critical-ink);background:var(--critical-soft);font-weight:700;}
.upload-status-cell{min-width:260px;}
.upload-status{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:var(--slate);}
.status-dot{width:18px;height:18px;display:inline-grid;place-items:center;flex:none;border-radius:50%;background:var(--mist);color:var(--surface);}
.upload-status-success{color:var(--success-ink);}
.upload-status-success .status-dot{background:var(--success);}
.upload-status-success .status-dot::before{content:"✓";font-size:12px;line-height:1;}
.upload-status-error{color:var(--critical-ink);}
.upload-status-error .status-dot{background:var(--critical);}
.upload-status-error .status-dot::before{content:"×";font-size:13px;line-height:1;}
.upload-status-warning{color:var(--warning-ink);}
.upload-status-warning .status-dot{background:var(--warning);}
.upload-status-warning .status-dot::before{content:"!";font-size:12px;line-height:1;}
.upload-status-pending .status-dot{background:var(--slate);}
.upload-status-na{font-weight:600;color:var(--slate);}
.grid-upload-btn.is-busy{opacity:.65;cursor:wait;}
.job-submit-actions{display:flex;justify-content:center;margin-top:var(--space-4);}
.job-submit-actions .btn:disabled{opacity:.55;cursor:not-allowed;}
@media (max-width:720px){
  .topbar{align-items:flex-start;flex-direction:column;}
  .topbar .btn{width:100%;justify-content:center;}
  .kv-grid{grid-template-columns:1fr;}
}
