:root{--app-font:"Segoe UI",sans-serif;--bs-body-font-family:var(--app-font);--navy:#101d35;--navy-2:#172845;--primary:#5b6cf9;--primary-dark:#4656dc;--canvas:#f4f6fa;--card:#fff;--text:#172033;--muted:#738095;--line:#e5e9f1;--green:#19a974;--red:#e24c5e;--amber:#e79b26;--cyan:#219ebc;--shadow:0 4px 18px rgba(23,32,51,.06);--sidebar:250px}
*,*::before,*::after{box-sizing:border-box;font-family:var(--app-font)!important}html,body{min-height:100%}body{margin:0;color:var(--text);background:var(--canvas);font-size:14px}.app-shell{padding-left:var(--sidebar)}
.app-sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);z-index:1040;display:flex;flex-direction:column;color:#d8e1f1;background:linear-gradient(180deg,var(--navy),#0b172b);box-shadow:8px 0 30px rgba(16,29,53,.08)}
.brand{height:78px;display:flex;align-items:center;gap:12px;padding:0 22px;color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.07)}.brand:hover{color:#fff}.brand-mark{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;color:#fff;font-size:14px;font-weight:700;background:linear-gradient(135deg,#6677ff,#8a5cf5);box-shadow:0 7px 20px rgba(91,108,249,.32)}.brand strong,.auth-brand strong{font-size:17px;font-weight:700;display:block;letter-spacing:-.3px}.brand small,.auth-brand small{display:block;color:#8290a8;font-size:10px;letter-spacing:1.35px;text-transform:uppercase;margin-top:2px}
.side-nav{padding:18px 12px;overflow:auto;flex:1}.nav-caption{padding:14px 13px 7px;color:#687893;font-size:10px;font-weight:700;letter-spacing:1.25px}.side-nav a{display:flex;align-items:center;gap:12px;height:44px;padding:0 13px;margin:3px 0;color:#aebbd0;text-decoration:none;border-radius:9px;font-weight:500;transition:.18s}.side-nav a:hover{color:#fff;background:rgba(255,255,255,.055)}.side-nav a.active{color:#fff;background:linear-gradient(90deg,rgba(91,108,249,.28),rgba(91,108,249,.12));box-shadow:inset 3px 0 #7583ff}.nav-icon{width:22px;text-align:center;color:#8f9db5;font-size:20px}.side-nav a.active .nav-icon{color:#96a2ff}
.avatar{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:#5b6cf9;color:#fff;font-weight:700}
.app-main{min-height:100vh}.app-topbar{height:78px;position:sticky;top:0;z-index:1020;display:flex;align-items:center;padding:0 34px;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.menu-toggle{display:none;border:0;background:none;font-size:22px;margin-right:12px}.topbar-title{display:flex;flex-direction:column}.topbar-title small{font-size:9px;letter-spacing:1.4px;color:#9aa4b5;font-weight:700}.topbar-title strong{font-size:18px;font-weight:700;margin-top:2px}.topbar-meta{margin-left:auto;display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.today{margin-left:17px;padding-left:20px;border-left:1px solid var(--line);font-weight:600}.live-dot{width:7px;height:7px;border-radius:50%;background:#24b47e;box-shadow:0 0 0 4px rgba(36,180,126,.12)}.app-content{padding:28px 34px 50px;max-width:1700px;margin:auto}
.topbar-user{margin-left:20px;padding-left:20px;border-left:1px solid var(--line)}.topbar-user-toggle{display:flex;align-items:center;gap:9px;padding:5px 7px;border:0;border-radius:10px;background:transparent;color:var(--text);text-align:left}.topbar-user-toggle:hover,.topbar-user-toggle[aria-expanded="true"]{background:#f3f5fa}.topbar-user-copy strong,.topbar-user-copy small{display:block;line-height:1.25}.topbar-user-copy strong{font-size:12px}.topbar-user-copy small{margin-top:2px;color:var(--muted);font-size:10px}.user-chevron{margin-left:3px;color:#8792a5}.topbar-user .dropdown-menu{min-width:205px;margin-top:9px;padding:7px;border:1px solid var(--line);border-radius:11px;box-shadow:0 12px 32px rgba(23,32,51,.13)}.topbar-user .dropdown-item{display:flex;align-items:center;gap:8px;padding:9px 11px;border-radius:7px;font-size:12px;font-weight:600}.topbar-user form{margin:0}.topbar-user form .dropdown-item{width:100%;border:0;background:transparent}.profile-detail-card{max-width:720px}.profile-detail-heading{display:flex;align-items:center;gap:14px;padding-bottom:20px;border-bottom:1px solid var(--line)}.profile-detail-avatar{width:54px;height:54px;display:grid;place-items:center;border-radius:15px;background:#eceeff;color:#4d5ee2;font-size:21px;font-weight:700}.profile-detail-heading h4{margin:0 0 4px}.profile-detail-heading span{color:var(--muted);font-size:12px}.profile-detail-list{margin-top:20px}.change-password-card{max-width:620px}
h1,h2,h3,h4,h5{letter-spacing:-.35px}h2{font-size:24px;font-weight:700;margin-bottom:20px!important}.card{border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);background:var(--card)}.card-header{background:#fff;border-bottom:1px solid var(--line);padding:15px 18px;font-weight:700;border-radius:13px 13px 0 0!important}.card-body{padding:20px}.row.g-3.mb-4>.col .card .card-body{padding:17px}.row.g-3.mb-4>.col .card small,.row.g-3.mb-4>.col .card .text-muted{color:var(--muted)!important;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.45px}.row.g-3.mb-4>.col .fs-3{font-size:26px;font-weight:700;color:var(--text);margin-top:5px}
.table-responsive{border-radius:11px}.table{margin:0;color:var(--text);vertical-align:middle}.table>:not(caption)>*>*{padding:13px 14px;border-bottom-color:#edf0f5}.table thead th{background:#f8f9fc;color:#69758a;font-size:10px;text-transform:uppercase;letter-spacing:.6px;font-weight:700;border-bottom:1px solid var(--line);white-space:nowrap}.table tbody tr{transition:.15s}.table-hover tbody tr:hover{background:#fafbff}.table a{color:#3f52d9;text-decoration:none;font-weight:600}.table a:hover{color:#2637af}.table-sm>:not(caption)>*>*{padding:11px 12px}
.form-control,.form-select{min-height:42px;border:1px solid #dce1ea;border-radius:9px;font-size:13px;color:var(--text);box-shadow:none}.form-control:focus,.form-select:focus{border-color:#8f9afb;box-shadow:0 0 0 3px rgba(91,108,249,.11)}textarea.form-control{min-height:95px}.form-label,label{color:#566277;font-size:12px;font-weight:600;margin-bottom:6px}.card.card-body>form,.card-body>form{margin:0}.btn{min-height:40px;padding:8px 16px;border-radius:9px;font-size:13px;font-weight:600}.btn-sm{min-height:32px;padding:5px 11px}.btn-primary{border-color:var(--primary);background:var(--primary);box-shadow:0 4px 10px rgba(91,108,249,.2)}.btn-primary:hover{border-color:var(--primary-dark);background:var(--primary-dark)}.btn-outline-primary{color:#4d5ee2;border-color:#bdc5ff}.btn-outline-primary:hover{background:#5969ee;border-color:#5969ee}.btn-light{background:#f3f5f8;border-color:#e6e9ef}.btn-danger,.btn-outline-danger{border-radius:9px}
.status-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:700;white-space:nowrap;text-transform:uppercase;letter-spacing:.25px;background:#f0f2f6;color:#687386}.status-pill i{width:5px;height:5px;border-radius:50%;background:currentColor}.status-pill.new{background:#eff1f5;color:#687386}.status-pill.assigned{background:#eceeff;color:#5866dc}.status-pill.editing{background:#e7f7fb;color:#1685a0}.status-pill.waiting{background:#fff4dc;color:#bc7813}.status-pill.revision{background:#ffeaed;color:#cf4053}.status-pill.done{background:#e4f7ef;color:#13845c}.status-pill.cancelled{background:#eeeef0;color:#6b6b72}
.pagination{gap:4px}.page-link{min-width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px!important;color:#667085;font-size:12px}.page-item.active .page-link{background:var(--primary);border-color:var(--primary)}.alert,.app-alert{border:0;border-radius:10px}.app-alert{display:flex;align-items:center;gap:10px;padding:12px 15px;margin-bottom:18px}.app-alert.success{color:#147252;background:#e8f8f1}.app-alert.danger{color:#b33143;background:#ffeaed}.app-alert>span{font-weight:800}.app-alert>div{flex:1}.app-alert button{border:0;background:transparent;color:inherit;font-size:19px}.text-danger{font-size:12px}.validation-summary-valid{display:none}
.auth-shell{min-height:100vh;background:radial-gradient(circle at 20% 20%,rgba(91,108,249,.16),transparent 32%),radial-gradient(circle at 80% 80%,rgba(39,166,190,.1),transparent 30%),#f4f6fb}.auth-content{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px}.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:2px}.auth-brand small{color:#8993a5}.auth-content>.row{width:100%;margin:22px 0!important}.auth-content .card{border:0;box-shadow:0 18px 55px rgba(24,34,56,.11)}.auth-content .card-body{padding:32px!important}.auth-content h3{text-align:center;font-size:22px;margin-bottom:25px!important}.auth-footer{color:#9aa3b2;font-size:11px;margin-top:2px}.sidebar-backdrop{display:none}
dl.row{margin-bottom:0}dt{color:#7b8698;font-size:11px;text-transform:uppercase;letter-spacing:.4px}dd{font-weight:500;padding-bottom:10px}.list-group-item{border-color:var(--line);font-size:12px}.badge{font-weight:600}
.requirement-html{line-height:1.65;color:#303b4d;overflow-wrap:anywhere}.requirement-html p{margin:0 0 10px}.requirement-html p:last-child{margin-bottom:0}.requirement-html strong{font-weight:700;color:#1c2739}.requirement-html ul,.requirement-html ol{padding-left:20px;margin:8px 0 12px}.requirement-html a{color:#4057d6;text-decoration:underline}.requirement-html img{max-width:100%;height:auto;border-radius:8px}
.job-detail-actions{padding-top:16px;margin-top:4px;border-top:1px solid var(--line)}
.send-qc-card{border-color:#dfe3ff}.send-qc-card .card-header{color:#3545bd}.qc-step{display:inline-grid;place-items:center;width:28px;height:28px;margin-right:8px;border-radius:8px;background:#eceeff;color:#4c5add;font-size:10px;font-weight:800}
.import-preview-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:18px}.import-preview-header h2{margin-bottom:12px!important}.import-summary{display:flex;align-items:center;flex-wrap:wrap;gap:9px}.import-summary span{padding:6px 10px;border-radius:8px;font-size:13px;font-weight:700}.import-summary strong{font-size:15px}.summary-total{color:#3545bd;background:#eceeff}.summary-valid{color:#137b56;background:#e4f7ef}.summary-duplicate,.summary-warning{color:#a9680c;background:#fff4dc}.summary-error{color:#c7394d;background:#ffeaed}.import-actions{display:flex;flex-shrink:0;gap:8px}
.import-row-result{min-width:210px}.import-row-result>div{margin-top:6px;color:#a82f40;font-size:11px;font-weight:600;line-height:1.4}.import-row-result>div.warning-text{color:#94600e}.import-result-badge{display:inline-block;padding:4px 8px;border-radius:7px;font-size:10px;font-weight:700;text-transform:uppercase}.import-result-badge.valid{color:#137b56;background:#e4f7ef}.import-result-badge.duplicate,.import-result-badge.warning{color:#a9680c;background:#fff4dc}.import-result-badge.error{color:#c7394d;background:#ffeaed}
.assign-toolbar{display:flex;align-items:center;gap:10px;padding:13px 15px;margin-bottom:12px;border:1px solid var(--line);border-radius:11px;background:#fff;box-shadow:var(--shadow)}.assign-toolbar-label{min-width:210px;margin-right:auto}.assign-toolbar-label strong,.assign-toolbar-label small{display:block}.assign-toolbar-label strong{font-size:13px}.assign-toolbar-label small{margin-top:2px;color:var(--muted);font-size:11px}.assign-toolbar .form-select{width:220px}.assign-confirm-modal{border:0;border-radius:14px;box-shadow:0 20px 55px rgba(23,32,51,.18)}.assign-confirm-modal .modal-header,.assign-confirm-modal .modal-footer{border-color:var(--line)}.assign-confirm-modal .modal-body{text-align:center;padding:26px}.assign-confirm-icon{width:48px;height:48px;display:grid;place-items:center;margin:0 auto 14px;border-radius:50%;background:#e4f7ef;color:#13845c;font-size:22px;font-weight:800}.assign-confirm-modal p{margin-bottom:10px;color:var(--muted)}.assign-confirm-modal p strong{color:var(--text)}.assign-employee-name{display:inline-block;padding:8px 14px;border-radius:8px;background:#eceeff;color:#4656dc;font-weight:700}
.job-action-toggle{width:32px;height:32px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#657187;font-size:20px;line-height:1}.job-action-toggle:hover,.job-action-toggle[aria-expanded="true"]{border-color:#bdc5ff;background:#f3f4ff;color:#4656dc}.job-action-menu .dropdown-menu{min-width:210px;padding:6px;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px rgba(23,32,51,.13)}.job-action-menu .dropdown-item{display:flex;align-items:center;gap:9px;padding:9px 10px;border:0;border-radius:7px;background:transparent;color:var(--text);font-size:12px;font-weight:600}.job-action-menu .dropdown-item:hover{background:#f3f5fa;color:#4656dc}.job-action-menu .dropdown-item span{width:16px;color:#758199;text-align:center}
.table tbody tr.job-missing-download>td{background:#fff9e8}.table-hover tbody tr.job-missing-download:hover>td{background:#fff4d6}.missing-download-badge{display:inline-block;margin-left:8px;padding:3px 7px;border-radius:6px;background:#fff0c2;color:#9a650d;font-size:9px;font-weight:700;text-transform:uppercase;white-space:nowrap}
@media(max-width:991px){.app-shell{padding-left:0}.app-sidebar{transform:translateX(-105%);transition:.24s}.app-sidebar.open{transform:translateX(0)}.menu-toggle{display:block}.sidebar-backdrop{position:fixed;inset:0;background:rgba(10,20,38,.4);z-index:1030}.sidebar-backdrop.show{display:block}.app-content{padding:22px 18px}.app-topbar{height:68px;padding:0 18px}.topbar-meta{display:none}.topbar-user{margin-left:auto;padding-left:0;border-left:0}}
@media(max-width:575px){.app-content{padding:18px 12px}.topbar-title small{display:none}.topbar-title strong{font-size:16px}h2{font-size:20px}.card-body{padding:15px}.auth-content{padding:18px}.auth-content .card-body{padding:24px!important}.row.g-3.mb-4>.col{min-width:50%}.table>:not(caption)>*>*{padding:10px}.btn{padding:8px 12px}.import-preview-header{display:block}.import-actions{margin-top:14px}.import-actions .btn{flex:1}.import-summary{gap:6px}.import-summary span{font-size:12px}.topbar-user-copy,.user-chevron{display:none}.topbar-user-toggle{padding:3px}.profile-detail-card{max-width:100%}.assign-toolbar{align-items:stretch;flex-direction:column}.assign-toolbar-label{min-width:0;margin-right:0}.assign-toolbar .form-select{width:100%}}
