:root{color:#142434;font-synthesis:none;--navy:#073b58;--navy-2:#0a4a6b;--green:#059669;--green-2:#10b981;--line:#dfe7ef;--muted:#67788a;--danger:#c62828;--shadow:0 12px 34px #0e2a4214;background:#f4f7fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:#f4f7fb;margin:0}a{color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}.login-page{background:#f8fafc;grid-template-columns:1.05fr .95fr;min-height:100vh;display:grid}.login-visual{color:#fff;background:linear-gradient(145deg,#063952,#075985 55%,#0f766e);flex-direction:column;justify-content:center;padding:8vw;display:flex}.login-logo{background:#10b981;border-radius:20px;place-items:center;width:72px;height:72px;font-weight:900;display:grid;box-shadow:0 20px 45px #001d2f55}.login-visual h1{margin:28px 0 12px;font-size:48px;line-height:1.04}.login-visual p{color:#d7edf7;max-width:620px;font-size:19px;line-height:1.6}.login-points{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.login-points span{background:#ffffff12;border:1px solid #ffffff3b;border-radius:999px;padding:10px 14px}.login-card{background:#fff;border:1px solid #e5edf4;border-radius:24px;place-self:center;width:min(430px,88%);padding:42px;box-shadow:0 28px 80px #092e4624}.eyebrow{letter-spacing:.16em;color:#059669;font-size:12px;font-weight:900}.login-card h2{margin:10px 0 4px;font-size:34px}.login-card>p{color:var(--muted);margin-top:0}.login-card label,.form-grid label,.approval-form label,.payment-form label{color:#33465a;gap:7px;font-size:13px;font-weight:800;display:grid}.login-card label{margin:18px 0}.login-card input,.form-grid input,.form-grid select,.form-grid textarea,.approval-form input,.approval-form select,.approval-form textarea,.payment-form input,.payment-form select,.filter-bar input,.filter-bar select,.month-input{color:#10263a;background:#fff;border:1px solid #ccd8e3;border-radius:10px;outline:none;width:100%;padding:11px 12px;transition:all .18s}.login-card input:focus,.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.approval-form input:focus,.approval-form select:focus,.approval-form textarea:focus,.payment-form input:focus,.payment-form select:focus,.filter-bar input:focus,.filter-bar select:focus{border-color:#0ea5a5;box-shadow:0 0 0 3px #0ea5a51d}.primary-btn,.secondary-btn,.danger-btn{border:0;border-radius:10px;justify-content:center;align-items:center;padding:12px 16px;font-weight:850;text-decoration:none;display:inline-flex}.primary-btn{color:#fff;background:linear-gradient(135deg,#059669,#0d9488);box-shadow:0 8px 20px #0596692d}.primary-btn.compact{padding:10px 14px}.secondary-btn{color:#23445a;background:#fff;border:1px solid #cbd8e3}.danger-btn{color:#a51f1f;background:#fff1f1;border:1px solid #f0c5c5}.app-shell{grid-template-columns:260px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#fff;z-index:5;background:linear-gradient(#063a56,#07334c);flex-direction:column;height:100vh;padding:22px 18px;display:flex;position:sticky;top:0;box-shadow:8px 0 28px #062c4017}.brand{border-bottom:1px solid #ffffff1f;align-items:center;gap:11px;padding-bottom:22px;display:flex}.brand-icon{background:#10b981;border-radius:14px;place-items:center;width:50px;height:50px;font-weight:950;display:grid}.brand strong{font-size:15px;display:block}.brand span{letter-spacing:.08em;color:#acd0df;font-size:10px}.sidebar nav{gap:6px;margin-top:24px;display:grid}.sidebar nav a{color:#d2e4ed;border-radius:11px;align-items:center;gap:12px;padding:12px 13px;font-size:14px;font-weight:750;text-decoration:none;display:flex}.sidebar nav a:hover,.sidebar nav a.active{color:#fff;background:#ffffff16}.nav-icon{color:#6ee7c4;place-items:center;width:22px;height:22px;font-weight:900;display:grid}.sidebar-user{border-top:1px solid #ffffff1f;grid-template-columns:42px 1fr;align-items:center;gap:10px;margin-top:auto;padding-top:18px;display:grid}.avatar{color:#fff;background:linear-gradient(135deg,#10b981,#0e7490);border-radius:50%;place-items:center;width:42px;height:42px;font-weight:900;display:grid}.avatar.large{width:58px;height:58px;font-size:20px}.sidebar-user strong{font-size:13px;display:block}.sidebar-user span{color:#9bc6d7;font-size:10px}.sidebar-user button{color:#fff;background:0 0;border:1px solid #ffffff38;border-radius:9px;grid-column:1/-1;margin-top:7px;padding:9px}.main{min-width:0}.topbar{z-index:4;background:#fff;border-bottom:1px solid #e3e9ef;justify-content:space-between;align-items:center;height:86px;padding:17px 30px;display:flex;position:sticky;top:0}.topbar h1{margin:0;font-size:18px}.topbar p{color:var(--muted);margin:4px 0 0;font-size:12px}.live{color:#047857;font-size:13px;font-weight:850}.live i{background:#10b981;border-radius:50%;width:9px;height:9px;margin-right:7px;display:inline-block;box-shadow:0 0 0 5px #10b9811b}.page{padding:28px 30px 48px}.page-header{justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px;display:flex}.page-header h2{margin:0;font-size:29px;line-height:1.1}.page-header p{color:var(--muted);margin:6px 0 0}.page-actions{align-items:center;gap:10px;display:flex}.month-input{width:150px}.pill-count{color:#075985;background:#e1f3fb;border-radius:999px;padding:8px 12px;font-size:13px;font-weight:850}.stats-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:20px;display:grid}.stat-card{background:#fff;border:1px solid #e2eaf1;border-radius:16px;gap:14px;min-width:0;padding:18px;display:flex;box-shadow:0 5px 22px #102e420b}.stat-icon{color:#1665a5;background:#e8f3ff;border-radius:12px;flex:0 0 42px;place-items:center;width:42px;height:42px;font-weight:900;display:grid}.tone-green .stat-icon{color:#05875e;background:#e4f8ef}.tone-amber .stat-icon{color:#a86600;background:#fff4d8}.tone-purple .stat-icon{color:#6941c6;background:#f0eaff}.tone-navy .stat-icon{color:#073b58;background:#e7eef4}.stat-card span{color:var(--muted);font-size:12px;display:block}.stat-card strong{white-space:nowrap;margin:3px 0 2px;font-size:22px;display:block}.stat-card small{color:#8795a3;font-size:11px}.content-card{box-shadow:var(--shadow);background:#fff;border:1px solid #e2eaf1;border-radius:16px;padding:20px}.content-card.flush{padding:0}.card-title{justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px;display:flex}.card-title h3{margin:0;font-size:18px}.card-title p{color:var(--muted);margin:4px 0 0;font-size:12px}.text-link{color:#0b7d72;font-size:13px;font-weight:800;text-decoration:none}.table-scroll{overflow:auto}.data-table{border-collapse:collapse;width:100%;min-width:760px}.data-table th{color:#657587;text-transform:uppercase;letter-spacing:.05em;text-align:left;white-space:nowrap;background:#f7f9fb;border-bottom:1px solid #e2e8ef;padding:12px;font-size:11px}.data-table td{vertical-align:middle;border-bottom:1px solid #edf1f4;padding:13px 12px;font-size:13px}.data-table tr:last-child td{border-bottom:0}.data-table strong{font-size:13px}.data-table small{color:#7b8a98;max-width:280px;margin-top:4px;display:block}.job-ref{color:#075985;font-weight:900;text-decoration:none}.badge,.money-status{letter-spacing:.02em;color:#50606f;white-space:nowrap;background:#e6ebef;border-radius:999px;align-items:center;padding:5px 9px;font-size:10px;font-weight:900;display:inline-flex}.badge-pending{color:#8b5a00;background:#fff2cb}.badge-assigned{color:#1759a5;background:#dcecff}.badge-en_route{color:#9a4300;background:#fce7d5}.badge-on_site{color:#6c35a7;background:#efe6ff}.badge-completed{color:#14794f;background:#ddf7e9}.badge-cancelled{color:#a12222;background:#fee2e2}.badge-confirmed{color:#0f766e;background:#dff7f5}.money-status.paid{color:#14794f;background:#ddf7e9}.money-status.partial{color:#8b5a00;background:#fff2cb}.money-status.unpaid{color:#a12222;background:#fee2e2}.row-action{color:#0c7f74;white-space:nowrap;font-weight:850;text-decoration:none}.empty-state{text-align:center;color:#718190;gap:6px;padding:28px;display:grid}.empty-state.large{background:#fff;border:1px dashed #cbd8e3;border-radius:16px;place-content:center;min-height:170px}.empty-state strong{color:#2e4355;font-size:17px}.alert{border-radius:10px;margin:0 0 16px;padding:12px 14px;font-size:13px;font-weight:700}.alert.error{color:#9d2020;background:#fee9e9;border:1px solid #f6caca}.alert.success{color:#126d49;background:#e5f8ee;border:1px solid #c3ecd7}.pending-list{gap:16px;display:grid}.approval-card{box-shadow:var(--shadow);background:#fff;border:1px solid #dfe7ef;border-radius:17px;grid-template-columns:minmax(300px,.9fr) minmax(420px,1.1fr);display:grid;overflow:hidden}.approval-summary{background:linear-gradient(145deg,#f7fafc,#eef6f8);padding:22px}.approval-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.approval-summary h3{margin:18px 0 6px}.approval-summary p{color:#5f7080}.mini-grid{grid-template-columns:repeat(3,1fr);gap:9px;margin-top:20px;display:grid}.mini-grid div{background:#fff;border:1px solid #e1e8ee;border-radius:10px;padding:10px}.mini-grid span{color:#7d8c99;font-size:10px;display:block}.mini-grid strong{margin-top:4px;font-size:12px;display:block}.approval-form{grid-template-columns:1fr 1fr;gap:12px;padding:22px;display:grid}.span-2{grid-column:1/-1}.filter-bar{background:#fff;border:1px solid #e0e8ef;border-radius:14px;grid-template-columns:2fr repeat(4,minmax(130px,1fr));gap:10px;margin-bottom:14px;padding:12px;display:grid}.detail-layout{grid-template-columns:minmax(0,1.65fr) minmax(320px,.75fr);align-items:start;gap:18px;display:grid}.profile-layout{grid-template-columns:minmax(0,1.4fr) minmax(300px,.6fr)}.side-stack{gap:18px;display:grid}.form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.form-grid textarea{resize:vertical}.form-grid input:disabled,.form-grid select:disabled,.form-grid textarea:disabled{color:#536473;background:#f4f6f8}.form-actions{gap:10px;margin-top:18px;display:flex}.finance-summary{grid-template-columns:1fr 1fr;gap:10px;display:grid}.finance-summary.vertical{grid-template-columns:1fr}.finance-summary>div{background:#f8fafb;border:1px solid #e2e9ef;border-radius:11px;padding:12px}.finance-summary span{color:#738391;font-size:11px;display:block}.finance-summary strong{margin:4px 0;font-size:18px;display:block}.payment-form{gap:10px;display:grid}.two-column-sections{grid-template-columns:1.2fr .8fr;gap:18px;margin-top:18px;display:grid}.link-danger{color:#b42318;background:0 0;border:0;font-weight:800}.timeline{gap:15px;display:grid}.timeline-item{grid-template-columns:18px 1fr;gap:10px;display:grid}.timeline-item i{background:#10b981;border-radius:50%;width:10px;height:10px;margin-top:5px;box-shadow:0 0 0 4px #10b9811f}.timeline-item p{color:#5f7080;margin:3px 0;font-size:13px}.timeline-item small{color:#8a98a5}.today-grid{gap:14px;display:grid}.today-card{background:#fff;border:1px solid #e0e8ef;border-radius:16px;grid-template-columns:110px 1fr;gap:0;text-decoration:none;display:grid;overflow:hidden;box-shadow:0 6px 24px #112e440e}.time-block{color:#076e62;background:linear-gradient(160deg,#e2f8f0,#e5f2fb);align-content:start;padding:22px;display:grid}.time-block strong{font-size:25px}.time-block span{font-size:12px}.today-card>div:last-child{padding:19px 22px}.today-card h3{margin:12px 0 5px}.today-card p{color:#586b7b;margin:0}.job-foot{color:#7a8996;gap:18px;margin-top:14px;font-size:12px;display:flex}.calendar-nav{align-items:center;gap:12px;display:flex}.calendar-nav button{background:#fff;border:1px solid #cad7e2;border-radius:9px;padding:8px 12px}.calendar{box-shadow:var(--shadow);background:#fff;border:1px solid #dee7ee;border-radius:16px;overflow:hidden}.weekdays,.calendar-grid{grid-template-columns:repeat(7,1fr);display:grid}.weekdays div{text-align:center;color:#647586;background:#f7f9fb;border-bottom:1px solid #dfe7ef;padding:10px;font-size:11px;font-weight:900}.calendar-day{border-bottom:1px solid #e6ecf1;border-right:1px solid #e6ecf1;min-height:145px;padding:8px}.calendar-day.blank{background:#f8fafb}.day-number{font-size:12px;font-weight:900}.calendar-job{background:#e9f4ff;border-left:3px solid #2783c5;border-radius:7px;margin-top:7px;padding:6px 7px;font-size:10px;text-decoration:none;display:grid}.calendar-job span,.calendar-job small{color:#586b7b}.engineer-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.engineer-card{box-shadow:var(--shadow);background:#fff;border:1px solid #dfe7ef;border-radius:17px;padding:20px;text-decoration:none;transition:all .18s}.engineer-card:hover{transform:translateY(-2px);box-shadow:0 17px 38px #0f334b1f}.engineer-head{align-items:center;gap:13px;display:flex}.engineer-head h3{margin:0}.engineer-head p{color:#738391;margin:3px 0;font-size:12px}.employment{color:#087752;background:#e4f8ef;border-radius:999px;padding:4px 7px;font-size:9px;font-weight:900;display:inline-flex}.employment.on_leave{color:#8b5a00;background:#fff2cb}.employment.inactive{color:#a12222;background:#fee2e2}.engineer-stats{grid-template-columns:repeat(2,1fr);gap:8px;margin-top:18px;display:grid}.engineer-stats div{background:#f7f9fb;border:1px solid #e7edf2;border-radius:9px;padding:9px}.engineer-stats span{color:#7d8b98;font-size:10px;display:block}.engineer-stats strong{margin-top:3px;display:block}.profile-link{color:#0b7d72;margin-top:16px;font-size:12px;font-weight:850;display:block}.engineer-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.tabs{background:#e9eff4;border-radius:11px;gap:6px;width:max-content;margin-bottom:14px;padding:5px;display:flex}.tabs button{color:#5e6f7e;background:0 0;border:0;border-radius:8px;padding:9px 14px;font-weight:800}.tabs button.active{color:#073b58;background:#fff;box-shadow:0 4px 12px #102c4212}.loading{text-align:center;padding:60px}.jobs-table{min-width:1250px}@media (width<=1250px){.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.engineer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-bar{grid-template-columns:1.6fr repeat(2,1fr)}.approval-card,.detail-layout,.two-column-sections{grid-template-columns:1fr}}@media (width<=900px){.app-shell{grid-template-columns:1fr}.sidebar{height:auto;padding:12px;position:static}.brand{padding-bottom:12px}.sidebar nav{margin-top:12px;display:flex;overflow:auto}.sidebar nav a{white-space:nowrap}.sidebar-user{display:none}.topbar{height:auto;padding:14px 16px}.page{padding:20px 14px 40px}.page-header{flex-direction:column;align-items:flex-start}.page-actions{flex-wrap:wrap;width:100%}.stats-grid,.engineer-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-bar,.form-grid,.approval-form,.mini-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.engineer-grid{grid-template-columns:1fr}.calendar-day{min-height:95px}.login-page{grid-template-columns:1fr}.login-visual{display:none}.login-card{margin:40px auto}.today-card{grid-template-columns:85px 1fr}}@media (width<=560px){.stats-grid,.engineer-summary{grid-template-columns:1fr}.weekdays div{padding:7px 2px;font-size:9px}.calendar-day{padding:4px}.calendar-job{font-size:8px}.topbar p{display:none}.page-header h2{font-size:24px}}.service-badges{flex-wrap:wrap;gap:7px;margin-top:8px;display:flex}.service-badges.compact{gap:5px;margin-top:7px}.service-badge{border:1px solid #0000;border-radius:8px;align-items:center;min-height:27px;padding:5px 9px;font-size:10px;font-weight:900;line-height:1.25;display:inline-flex;box-shadow:0 2px 7px #0d2e440f}.service-badges.compact .service-badge{min-height:23px;padding:4px 7px;font-size:9px}.service-electrical{color:#08734d;background:#dff7ea;border-color:#9fdfbd}.service-energy{color:#185aa4;background:#e3efff;border-color:#a9c9f5}.service-gas{color:#9b4c00;background:#fff0dc;border-color:#f4c98f}.service-pat{color:#6639a7;background:#f0e8ff;border-color:#cfb8f5}.service-fire{color:#a42222;background:#ffe7e7;border-color:#f4b2b2}.service-emergency{color:#08776e;background:#dcf7f5;border-color:#9ddfd9}.service-extinguisher{color:#7d5a00;background:#fff5cc;border-color:#efd87c}.service-risk{color:#7f243b;background:#f4e3e7;border-color:#ddb1bc}.service-asbestos{color:#3f505d;background:#e9edf0;border-color:#cbd4da}.service-general{color:#245d73;background:#e7f3f7;border-color:#bfdce7}.services-cell{min-width:200px}.mini-grid .services-cell{overflow:hidden}.mini-grid .services-cell .service-badges{max-height:92px;padding-right:2px;overflow:auto}.invoice-panel{background:linear-gradient(155deg,#fff,#f3fbf8);border-top:4px solid #079d70}.invoice-number-display{background:#fff;border:1px solid #d9e8e2;border-radius:13px;gap:4px;padding:15px;display:grid}.invoice-number-display span{color:#728391;font-size:11px}.invoice-number-display strong{color:#073b58;font-size:24px}.invoice-number-display small{color:#6b7c89}.invoice-actions{flex-wrap:wrap;gap:9px;margin-top:13px;display:flex}.invoice-actions .primary-btn,.invoice-actions .secondary-btn{flex:1;min-width:120px}.invoice-help{color:#9b5e00;background:#fff4d8;border-radius:8px;margin:10px 0 0;padding:8px 10px;font-size:11px}.invoice-filter{grid-template-columns:minmax(260px,2fr) minmax(180px,.7fr)}.row-buttons{align-items:center;gap:9px;display:flex}.button-link{cursor:pointer;background:0 0;border:0;padding:0;font-family:inherit}.money-status.issued{color:#185aa4;background:#e3efff}.money-status.void{color:#3f505d;background:#e9edf0}.money-status.not_issued{color:#5b6872;background:#e9edf0}.data-table .service-badges{max-width:330px}.calendar-job strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (width<=900px){.invoice-filter{grid-template-columns:1fr}.invoice-actions{flex-direction:column}.invoice-actions .primary-btn,.invoice-actions .secondary-btn{width:100%}}
