:root{--accent:#2563eb;--accent-dark:#1d4ed8;--border:#dbe3ef;--canvas:#f4f7fb;--danger:#b91c1c;--ink:#172033;--muted:#64748b;--panel:#fff;--positive:#047857;--sidebar:#111827;--warning:#b45309;color:var(--ink);background:var(--canvas);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px}:root[data-theme=olive]{--accent:#66734f;--accent-dark:#4f5b3e;--border:#d9ddcf;--canvas:#f3f5f0;--ink:#20251d;--muted:#68705f;--panel:#fff;--positive:#46755a;--sidebar:#1d211b;--warning:#9a641f}*{box-sizing:border-box}body{background:var(--canvas);color:var(--ink);min-width:320px;margin:0}.app-loading-bar{z-index:100;background:#2563eb1f;height:3px;position:fixed;top:0;left:0;right:0;overflow:hidden}.app-loading-bar i{background:var(--accent);width:42%;height:100%;animation:1.15s cubic-bezier(.65,0,.35,1) infinite loading-track;display:block}button,.button,input,select,textarea{font:inherit;border:1px solid #c8d3e1;border-radius:6px;transition:border-color .14s,box-shadow .14s,background-color .14s,color .14s,transform .14s}button,.button{background:var(--panel);color:var(--ink);cursor:pointer;align-items:center;gap:8px;min-height:38px;padding:8px 12px;text-decoration:none;display:inline-flex}button:hover,.button:hover{border-color:var(--accent);box-shadow:0 2px 8px #0f172a14}button:active:not(:disabled),.button:active:not(:disabled){transform:translateY(1px)}button:focus-visible,.button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #2563eb24}button:disabled{cursor:wait;opacity:.6}.disabled-link{cursor:not-allowed;opacity:.55;pointer-events:none}input,select,textarea{background:var(--panel);width:100%;min-height:36px;padding:7px 9px}textarea{resize:vertical;min-height:96px}input[type=checkbox]{width:auto;min-height:auto}.app-shell{max-width:1480px;margin:0 auto;padding:28px}.app-layout{grid-template-columns:224px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--sidebar);color:#e5e7eb;grid-template-rows:auto auto minmax(0,1fr) auto;align-self:start;width:224px;height:100vh;min-height:0;padding:16px 12px 14px;display:grid;position:sticky;top:0}.sidebar-command{color:#dbe4ef;background:#ffffff12;border-color:#94a3b842;justify-content:flex-start;min-height:34px;margin:0 4px 7px;padding:6px 8px;font-size:12px}.sidebar-command:hover{color:#fff;background:#ffffff1f;border-color:#ffffff47}.sidebar-command span{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}kbd{color:inherit;background:#94a3b824;border:1px solid #94a3b84d;border-radius:4px;padding:4px 5px;font-family:inherit;font-size:10px;font-weight:760;line-height:1}.command-backdrop{z-index:120;background:#0f172a7a;justify-content:center;align-items:flex-start;padding:min(16vh,130px) 18px 24px;display:flex;position:fixed;inset:0}.command-dialog{background:var(--panel);border:1px solid var(--border);border-radius:8px;width:100%;max-width:620px;animation:.18s cubic-bezier(.16,1,.3,1) both command-enter;overflow:hidden;box-shadow:0 24px 70px #0f172a47}.command-search{border-bottom:1px solid var(--border);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:13px 14px;display:grid}.command-search>svg{color:var(--accent)}.command-search input{box-shadow:none;border:0;min-height:32px;padding:0;font-size:16px}.command-search input:focus-visible{box-shadow:none}.command-results{max-height:min(55vh,470px);padding:7px;overflow-y:auto}.command-group-label{color:var(--muted);text-transform:uppercase;padding:8px 9px 5px;font-size:10px;font-weight:800;display:block}.command-result{text-align:left;border-color:#0000;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;width:100%;min-height:52px;padding:7px 9px;display:grid}.command-result:hover,.command-result:focus-visible{background:color-mix(in srgb, var(--accent) 9%, var(--panel));border-color:color-mix(in srgb, var(--accent) 20%, transparent);box-shadow:none}.command-result-icon{background:color-mix(in srgb, var(--accent) 11%, var(--panel));color:var(--accent-dark);border-radius:6px;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.command-result-copy{gap:2px;min-width:0;display:grid}.command-result-copy strong{font-size:13px}.command-result-copy small,.command-empty,.command-footer{color:var(--muted);font-size:12px}.command-empty{text-align:center;padding:28px 12px}.command-loading{color:var(--muted);justify-content:center;align-items:center;gap:8px;padding:14px 12px;font-size:12px;display:flex}.command-footer{background:color-mix(in srgb, var(--canvas) 65%, var(--panel));border-top:1px solid var(--border);justify-content:flex-end;gap:16px;padding:8px 12px;display:flex}.app-toast{background:var(--panel);border:1px solid var(--border);border-left:4px solid var(--accent);z-index:130;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:10px;width:max-content;max-width:min(430px,100vw - 32px);padding:11px 10px 11px 12px;animation:.22s cubic-bezier(.16,1,.3,1) both toast-enter;display:grid;position:fixed;top:20px;right:20px;box-shadow:0 14px 38px #0f172a2e}.app-toast.success{border-left-color:var(--positive)}.app-toast.error{border-left-color:var(--danger)}.app-toast.success .app-toast-icon{color:var(--positive)}.app-toast.error .app-toast-icon{color:var(--danger)}.app-toast-icon{color:var(--accent);padding-top:2px}.app-toast-copy{gap:2px;min-width:0;display:grid}.app-toast-copy strong{font-size:13px}.app-toast-copy small{color:var(--muted);overflow-wrap:anywhere;line-height:1.4}.app-toast>button{border-color:#0000;justify-content:center;min-height:30px;padding:5px}.dashboard-skeleton{gap:18px;display:grid}.skeleton-stats{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;display:grid}.skeleton-block{background:#e8edf3;border-radius:6px;display:block;position:relative;overflow:hidden}.skeleton-block:after{content:"";background:linear-gradient(90deg,#0000,#ffffffc7,#0000);animation:1.25s ease-in-out infinite skeleton-shimmer;position:absolute;inset:0;transform:translate(-100%)}.skeleton-metric{height:106px}.skeleton-panel{gap:13px;display:grid}.skeleton-title{width:190px;height:22px}.skeleton-control{width:min(100%,520px);height:38px}.skeleton-row{width:100%;height:42px}@keyframes command-enter{0%{opacity:0;transform:translateY(-8px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes toast-enter{0%{opacity:0;transform:translateY(-10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes skeleton-shimmer{to{transform:translate(100%)}}.sidebar-brand{border-bottom:1px solid #94a3b83d;gap:6px;margin-bottom:10px;padding:0 6px 10px;display:grid}.sidebar-logo{object-fit:contain;object-position:left center;width:100%;max-width:156px;height:auto;max-height:34px;display:block}.sidebar-logo-card{background:#fff;border-radius:6px;margin-bottom:6px;padding:6px 7px;display:inline-flex}.sidebar-brand-content{gap:2px;min-width:0;display:grid}.sidebar-brand strong{color:#fff;font-size:14px;line-height:1.15}.sidebar-brand span,.sidebar-user span,.nav-group>span{color:#94a3b8;text-transform:uppercase;font-size:10px;font-weight:760}.main-content{min-width:0;padding:30px clamp(24px,2.4vw,40px) 48px}.main-content>:not(.topbar){animation:.28s cubic-bezier(.16,1,.3,1) both content-enter}.login-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.login-panel{background:#fff;border:1px solid #dbe3ef;border-radius:8px;gap:14px;width:100%;max-width:420px;padding:28px;display:grid;position:relative;overflow:hidden}.login-panel.has-error{animation:.32s ease-out auth-panel-shake}.auth-challenge-panel h1,.auth-challenge-panel>p{text-align:center}.auth-challenge-panel>p{max-width:320px;margin-left:auto;margin-right:auto}.auth-challenge-panel .notice{text-align:left}.auth-challenge-panel .otp-field{width:100%;max-width:350px;margin:2px auto}.auth-challenge-panel>button{justify-content:center}.public-layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:18px;display:grid}.public-layout .login-panel{max-width:none;position:sticky;top:18px}.public-layout .login-panel h1{font-size:22px}.login-panel p{color:#5f6f86;margin:-4px 0 4px}.login-qr{justify-self:center;width:100%;max-width:220px}.primary-passkey-button{color:#fff;background:#18212f;border-color:#18212f;justify-content:center}.primary-passkey-button:hover{background:#263449;border-color:#263449}.auth-fingerprint-active{animation:.9s ease-in-out infinite auth-fingerprint-pulse}.otp-field{cursor:text;display:block;position:relative}.otp-native-input{caret-color:#0000;opacity:.01;z-index:2;position:absolute;inset:0}.otp-slots{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;display:grid}.otp-slot{aspect-ratio:1;color:#18212f;background:#f8fafc;border:1px solid #cbd5e1;border-radius:6px;justify-content:center;align-items:center;min-width:0;font-size:20px;font-weight:760;transition:background-color .16s,border-color .16s,box-shadow .16s,transform .16s;display:flex}.otp-slot.active{background:#fff;border-color:#2563eb;transform:translateY(-2px);box-shadow:0 0 0 3px #2563eb21}.otp-slot.filled{background:#eff6ff;border-color:#93c5fd;animation:.22s ease-out otp-slot-fill}.auth-success-panel{place-items:center;min-height:300px}.auth-success{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:22px;width:100%;min-height:240px;animation:.36s cubic-bezier(.16,1,.3,1) both auth-success-enter;display:flex}.auth-success-visual{width:132px;height:132px;position:relative}.auth-success-mark,.auth-success-ring,.auth-particle{position:absolute;top:50%;left:50%}.auth-success-mark{color:#fff;z-index:2;background:#087a5b;border:1px solid #056248;border-radius:50%;justify-content:center;align-items:center;width:78px;height:78px;margin:-39px;animation:.52s cubic-bezier(.16,1,.3,1) .12s both auth-mark-pop;display:flex;box-shadow:0 14px 32px #087a5b3d}.auth-success-mark svg{stroke-dasharray:50;stroke-dashoffset:50px;animation:.38s ease-out .34s both auth-check-draw}.auth-success-ring{border:1px solid #087a5b59;border-radius:50%;transform:translate(-50%,-50%)scale(.35)}.auth-success-ring.inner{width:102px;height:102px;animation:.62s ease-out 90ms both auth-ring-expand}.auth-success-ring.outer{width:132px;height:132px;animation:.72s ease-out .16s both auth-ring-expand}.auth-particle{animation:auth-particle-burst .68s var(--particle-delay) cubic-bezier(.16, 1, .3, 1) both;background:#10b981;width:7px;height:7px;margin:-3px;transform:translate(0)rotate(0)scale(0)}.auth-particle.particle-1{background:#2563eb;border-radius:50%;width:6px;height:6px}.auth-particle.particle-2{background:#7dd3fc;width:9px;height:4px}.auth-success-copy{gap:5px;animation:.42s ease-out .36s both auth-copy-enter;display:grid}.auth-success-copy strong{color:#123c34;font-size:22px}.auth-success-copy span{color:#5f6f86;font-size:13px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes auth-panel-shake{0%,to{transform:translate(0)}30%{transform:translate(-5px)}65%{transform:translate(4px)}}@keyframes auth-fingerprint-pulse{0%,to{opacity:.55;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}@keyframes otp-slot-fill{0%{transform:scale(.88)}to{transform:scale(1)}}@keyframes auth-success-enter{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes auth-mark-pop{0%{opacity:0;transform:scale(.3)rotate(-18deg)}70%{opacity:1;transform:scale(1.08)rotate(2deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes auth-check-draw{to{stroke-dashoffset:0}}@keyframes auth-ring-expand{0%{opacity:0;transform:translate(-50%,-50%)scale(.35)}45%{opacity:.75}to{opacity:0;transform:translate(-50%,-50%)scale(1)}}@keyframes auth-particle-burst{0%{opacity:0;transform:translate(0)rotate(0)scale(0)}22%{opacity:1}to{opacity:0;transform:translate(var(--particle-x), var(--particle-y)) rotate(var(--particle-rotation)) scale(1)}}@keyframes auth-copy-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}.app-loading-bar i,.main-content>:not(.topbar),.notice,.contract-details-panel,.contract-report-details,.technician-mobile-details,.audit-event-details,.absence-manager-content,.technician-progress i,.contract-report-progress i,.login-panel.has-error,.auth-fingerprint-active,.otp-slot.filled,.auth-success,.auth-success-mark,.auth-success-mark svg,.auth-success-ring,.auth-particle,.auth-success-copy,.command-dialog,.app-toast,.skeleton-block:after{animation:none}.auth-particle,.auth-success-ring{display:none}.auth-success-mark svg{stroke-dashoffset:0}}@keyframes content-enter{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes details-enter{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes loading-track{0%{transform:translate(-110%)}to{transform:translate(340%)}}@keyframes progress-reveal{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes nav-icon-pop{0%{transform:scale(.86)}to{transform:scale(1)}}.topbar{justify-content:space-between;align-items:flex-start;gap:24px;min-height:74px;margin-bottom:24px;display:flex}h1,h2{margin:0}h1{color:var(--ink);font-size:32px;font-weight:790;line-height:1.08}h2{font-size:17px}.topbar p,.muted{color:#5f6f86;margin:7px 0 0;line-height:1.45}.sync-status{color:#64748b;flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;font-size:13px;display:flex}.sync-status strong{color:#253244}.sync-status.success:before{content:"";background:#10b981;border-radius:999px;width:8px;height:8px}.sync-status.error:before{content:"";background:#ef4444;border-radius:999px;width:8px;height:8px}.sync-status.partial:before{content:"";background:#f59e0b;border-radius:999px;width:8px;height:8px}.sync-warning{color:#b45309;font-weight:700}.sync-status.none:before{content:"";background:#94a3b8;border-radius:999px;width:8px;height:8px}.toolbar,.inline-actions{align-items:center;gap:10px;display:flex}.topbar .toolbar{background:#ffffffb8;border:1px solid #cbd5e1e6;border-radius:8px;padding:5px;box-shadow:0 5px 18px #0f172a0b}.topbar .toolbar>button{border-color:#0000}.topbar .toolbar>button:hover{background:#f8fafc;border-color:#cbd5e1}.topbar .toolbar .primary-action{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:720}.topbar .toolbar .primary-action:hover{background:var(--accent-dark);border-color:var(--accent-dark)}.topbar .toolbar .quiet-action{justify-content:center;width:38px;padding:8px}.toolbar input{width:150px}.month-picker{background:var(--panel);border:1px solid #cbd5e1;border-radius:7px;grid-template-columns:34px 178px 34px;align-items:center;padding:3px;display:grid;overflow:hidden}.month-picker button{background:0 0;border-color:#0000;justify-content:center;min-height:32px;padding:6px}.month-picker button:hover{background:color-mix(in srgb, var(--accent) 9%, var(--panel));box-shadow:none;border-color:#0000}.month-display{border-left:1px solid var(--border);border-right:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-height:32px;padding:4px 10px;display:grid;position:relative}.month-display strong{text-align:center;text-overflow:ellipsis;text-transform:capitalize;white-space:nowrap;font-size:13px;font-weight:760;line-height:1.1;overflow:hidden}.month-display input{cursor:pointer;opacity:0;width:100%;min-height:100%;padding:0;position:absolute;inset:0}.month-display input:focus{outline:none}.view-switcher,.nav-group{grid-auto-rows:max-content;align-content:start;gap:4px;display:grid}.view-switcher{scrollbar-width:none;min-height:0;padding-right:2px;overflow-y:auto}.view-switcher::-webkit-scrollbar{display:none}.nav-group{border-bottom:1px solid #94a3b82e;padding:0 0 10px}.nav-group:last-child{border-bottom:0}.nav-group>span{letter-spacing:0;margin:8px 9px 2px}.view-switcher button{color:#cbd5e1;text-overflow:ellipsis;white-space:nowrap;background:0 0;border-color:#0000;justify-content:flex-start;align-self:start;gap:7px;width:100%;min-height:32px;padding:5px 9px;font-size:13px;font-weight:720;overflow:hidden}.view-switcher button svg{flex:0 0 16px;transition:transform .15s}.view-switcher button:hover{color:#fff;background:#ffffff14;border-color:#0000}.view-switcher button.active{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 5px 14px #2563eb3d}.view-switcher button.active svg,.mobile-bottom-nav button.active svg{animation:.18s cubic-bezier(.16,1,.3,1) nav-icon-pop}.sidebar-user{border-top:1px solid #94a3b83d;gap:5px;padding:10px 6px 0;display:grid}.sidebar-sync{border-bottom:1px solid #94a3b833;gap:3px;margin-bottom:4px;padding:0 0 9px;display:grid}.sidebar-sync span{color:#aeb9c8;text-transform:uppercase;align-items:center;gap:6px;font-size:10px;font-weight:760;display:flex}.sidebar-sync i{background:#10b981;border-radius:50%;width:7px;height:7px;display:block}.sidebar-sync.error i{background:#ef4444}.sidebar-sync.partial i{background:#f59e0b}.sidebar-sync.none i{background:#94a3b8}.sidebar-sync strong{color:#f8fafc;font-size:12px;font-weight:720}.sidebar-sync small{color:#fbbf24;max-height:28px;font-size:10px;line-height:1.3;overflow:hidden}.sidebar-user strong{color:#fff;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sidebar-user button{color:#e5e7eb;background:#ffffff14;border-color:#94a3b859;justify-content:center;min-height:28px;padding:4px 7px;font-size:13px}.mobile-topbar,.mobile-bottom-nav,.mobile-nav-backdrop,.mobile-nav-close,.mobile-login-slot,.mobile-contract-cards,.mobile-report-cards,.admin-user-cards,.technician-mobile-cards,.technicians-mobile-controls,.contracts-result-meta,.mobile-action-label,.usage-mobile-controls{display:none}.desktop-login-slot{display:block}.notice{background:#fff7ed;border:1px solid #fed7aa;border-radius:6px;margin-bottom:18px;padding:12px 14px;animation:.22s cubic-bezier(.16,1,.3,1) both content-enter}.notice.compact{margin-top:16px}.executive-comment{color:#26364b;background:#fff;border:1px solid #dbe3ef;border-left:4px solid #2563eb;border-radius:8px;margin-bottom:18px;padding:16px 18px;line-height:1.55}.executive-comment strong{color:#0f172a}.stats{grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;margin-bottom:18px;display:grid}.executive-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.risk-stats{grid-template-columns:repeat(5,minmax(0,1fr))}.technician-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.contract-stats,.project-stats{grid-template-columns:repeat(6,minmax(0,1fr))}.integration-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.metric{background:var(--panel);border:1px solid var(--border);text-align:left;border-radius:8px;min-width:0;padding:16px 17px;transition:border-color .16s,box-shadow .16s,transform .16s;position:relative;overflow:hidden;box-shadow:0 5px 18px #0f172a0a}.metric:hover{border-color:#cbd8e8;transform:translateY(-1px);box-shadow:0 9px 24px #0f172a11}.metric .metric-label{color:#617085;align-items:center;gap:7px;font-size:13px;font-weight:680;line-height:1.25;display:flex}.metric-icon{color:#52637a;background:#eef3f9;border-radius:6px;flex:0 0 28px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.metric strong{font-variant-numeric:tabular-nums;letter-spacing:0;margin-top:10px;font-size:27px;line-height:1.12;display:block}.metric small{color:#64748b;margin-top:8px;font-size:12px;font-weight:700;display:block}.metric-button{cursor:pointer;align-items:stretch;width:100%;min-height:auto;display:block}.metric-button:hover,.metric-button.active{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.executive-stats .metric{min-height:118px}.executive-stats .metric strong{font-size:34px}.metric.warn strong{color:var(--warning)}.metric.danger strong{color:var(--danger)}.metric.money strong,.money-number{color:var(--positive);font-weight:760}.metric.primary:before,.metric.positive:before,.metric.warn:before,.metric.danger:before{content:"";height:3px;position:absolute;top:0;left:0;right:0}.metric.primary:before{background:var(--accent)}.metric.positive:before{background:#10b981}.metric.warn:before{background:#f59e0b}.metric.danger:before{background:#ef4444}.metric.primary .metric-icon{color:var(--accent);background:#eff6ff}.metric.positive .metric-icon{color:var(--positive);background:#ecfdf5}.metric.warn .metric-icon{color:var(--warning);background:#fff7ed}.metric.danger .metric-icon{color:var(--danger);background:#fef2f2}.metric.positive strong{color:var(--positive)}.workspace{grid-template-columns:minmax(0,1fr) 360px;gap:18px;margin-bottom:18px;display:grid}.executive-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;margin-bottom:18px;display:grid}.executive-drilldown{margin-bottom:18px}.drilldown-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.drilldown-summary-card{background:#f8fafc;border:1px solid #dbe3ef;border-radius:8px;padding:13px 14px}.drilldown-summary-card span{color:#64748b;font-size:13px;display:block}.drilldown-summary-card strong{color:#172033;margin-top:3px;font-size:22px;display:block}.drilldown-summary-card.warn strong{color:#b45309}.drilldown-summary-card.danger strong{color:#b91c1c}.drilldown-summary-card.money strong{color:#047857}.trend-kpis{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;display:grid}.trend-chart{grid-auto-columns:minmax(54px,1fr);grid-auto-flow:column;align-items:end;gap:12px;min-height:260px;padding-top:8px;display:grid;overflow-x:auto}.trend-column{grid-template-rows:auto 180px auto;align-items:center;gap:8px;min-width:54px;display:grid}.trend-value{color:#52637a;text-align:center;white-space:nowrap;font-size:12px;font-weight:760}.trend-bar-shell{background:#eef2f7;border-radius:8px;justify-content:center;align-items:end;width:100%;height:180px;display:flex;overflow:hidden}.trend-bar{background:#2563eb;border-radius:8px 8px 0 0;width:100%}.trend-bar.danger{background:#dc2626}.trend-bar.money{background:#059669}.trend-bar-shell.stacked{flex-direction:column-reverse;justify-content:end;align-items:end}.trend-bar.contract{background:#2563eb;border-radius:0}.trend-bar.non-contract{background:#38bdf8;border-radius:8px 8px 0 0}.trend-label{color:#64748b;font-size:12px;font-weight:700}.breakdown-panel{margin-bottom:18px}.breakdown-grid{grid-template-columns:minmax(0,1fr) 360px;gap:24px;display:grid}.breakdown-grid h3{color:#52637a;text-transform:uppercase;margin:0 0 8px;font-size:13px}.compact-list{gap:8px;display:grid}.compact-row{border-bottom:1px solid #e2e8f0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px 0;display:grid}.compact-row span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.compact-row small{color:#64748b;text-overflow:ellipsis;margin-top:2px;font-size:12px;font-weight:500;display:block;overflow:hidden}.compact-row strong{font-variant-numeric:tabular-nums}.bar-list,.ranked-list{gap:11px;display:grid}.bar-row{grid-template-columns:170px minmax(120px,1fr) 88px;align-items:center;gap:12px;display:grid}.bar-label{gap:2px;min-width:0;display:grid}.bar-label strong,.rank-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rank-name small{color:#64748b;text-overflow:ellipsis;margin-top:2px;font-size:12px;font-weight:500;display:block;overflow:hidden}.bar-label span{color:#64748b;font-size:12px}.bar-track{background:#eef2f7;border-radius:999px;height:12px;overflow:hidden}.bar-fill{background:#2563eb;border-radius:999px;height:100%}.bar-value{font-variant-numeric:tabular-nums;text-align:right;font-weight:760}.ranked-row{border-bottom:1px solid #e2e8f0;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 0;display:grid}.rank{color:#52637a;background:#eef2f7;border-radius:6px;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;font-weight:760;display:inline-flex}.ranked-row strong{font-variant-numeric:tabular-nums}.panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:20px;box-shadow:0 8px 26px #0f172a0b}.panel.wide{min-width:0}.panel-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.panel-heading h2{color:#172033;font-size:18px;font-weight:780}.collapsible-heading{border-bottom:1px solid #e2e8f0;margin-bottom:16px;padding-bottom:12px}.filters{gap:10px;display:flex}.filters select{min-width:170px}.billing-toolbar{grid-template-columns:minmax(260px,1fr) auto;align-items:center;gap:12px;margin-bottom:14px;display:grid}.billing-filters{gap:6px;display:flex}.billing-filters button{white-space:nowrap;min-height:36px}.billing-filters button.active{color:#fff;background:#2563eb;border-color:#2563eb}.billing-completeness,.billing-status{white-space:nowrap;border:1px solid #cbd5e1;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:760;display:inline-flex}.billing-completeness.complete,.billing-status.ok{color:#047857;background:#ecfdf5;border-color:#a7f3d0}.billing-completeness.incomplete,.billing-status.missing,.billing-status.zero{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.billing-status.adjusted{color:#b45309;background:#fff7ed;border-color:#fed7aa}.billing-table td small{color:#64748b;max-width:320px;margin-top:3px;display:block}.empty-table-cell{color:#64748b;text-align:center;padding:28px!important}.search-input{min-width:280px}.search-with-icon{background:var(--panel);border:1px solid #cbd5e1;border-radius:6px;align-items:center;gap:8px;width:min(560px,100%);max-width:560px;padding:0 10px;display:flex}.search-with-icon:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #2563eb1f}.search-with-icon svg{color:#64748b;flex:none}.search-with-icon input{border:0;min-width:0;padding-left:0}.search-with-icon input:focus{outline:none}.admin-tools{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.subtabs{border-bottom:1px solid #e2e8f0;flex-wrap:wrap;gap:8px;margin-bottom:16px;padding-bottom:12px;display:flex}.subtabs button{min-height:32px;padding:6px 11px}.subtabs button.active{color:#fff;background:#2563eb;border-color:#2563eb}.database-imports{max-width:640px}.mapping-admin{gap:18px;display:grid}.mapping-bulk-form{background:#f8fafc;border:1px solid #dbe3ef;border-radius:8px;grid-template-columns:minmax(260px,1fr) minmax(280px,1.4fr) minmax(220px,1fr) auto;gap:12px;padding:14px;display:grid}.mapping-bulk-form h2{margin-bottom:4px}.mapping-bulk-form button{justify-content:center;align-self:end}.jira-mappings-table{min-width:1120px}.integration-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;margin-top:8px;display:grid}.integration-grid h3,.integration-section h3{color:#52637a;text-transform:uppercase;margin:0 0 10px;font-size:13px}.integration-section{border-top:1px solid #e2e8f0;margin-top:18px;padding-top:18px}.clickup-integration-panel{grid-column:1/-1}.clickup-integration-panel .panel-heading>div p{margin:4px 0 0}.clickup-integration-stats{grid-template-columns:repeat(6,minmax(0,1fr))}.clickup-fields-table{min-width:760px}.clickup-tasks-table{min-width:1180px}.clickup-tasks-table td:first-child{min-width:220px}.clickup-tasks-table td:last-child{overflow-wrap:anywhere;max-width:420px}.clickup-tasks-table small{color:#64748b;margin-top:3px;display:block}.clickup-fields-table code{color:#334155;font-size:12px}.clickup-sync-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px;display:flex}.clickup-sync-toolbar .primary{color:#fff;background:#243b5a;border-color:#243b5a}.status-badge.warning{color:#9a3412;background:#fff7ed}.status-badge.danger{color:#b91c1c;background:#fef2f2}.clickup-sync-table{min-width:850px}.technician-mobile-switches{gap:8px;display:grid}.technician-desktop-tools{align-items:center;gap:8px;display:flex}.technician-desktop-tools select{min-width:150px}.definition-list{gap:10px;margin:0;display:grid}.definition-list div,.month-distribution div{border-bottom:1px solid #e2e8f0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px 0;display:grid}.definition-list dt{color:#64748b;font-weight:720}.definition-list dd{text-align:right;text-overflow:ellipsis;white-space:nowrap;max-width:360px;margin:0;font-weight:760;overflow:hidden}.month-distribution{gap:2px;display:grid}.month-distribution span{color:#253244}.month-distribution strong{font-variant-numeric:tabular-nums}.table-count{color:#52637a;background:#f1f5f9;border-radius:999px;padding:6px 10px;font-size:13px;font-weight:760}.table-scroll{scrollbar-color:#cbd5e1 transparent;scrollbar-width:thin;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:980px}th,td{text-align:left;vertical-align:middle;border-bottom:1px solid #e2e8f0;padding:11px 10px}th{color:#52637a;letter-spacing:0;text-transform:uppercase;z-index:1;background:#f8fafc;font-size:11px;font-weight:780;position:sticky;top:0}td{color:#253244;font-variant-numeric:tabular-nums;transition:background-color .12s}tbody tr:hover>td{background:#f8fbff}tbody tr:last-child>td{border-bottom-color:#0000}.clickable-row{cursor:pointer}.clickable-row:hover td{background:#f8fafc}.mobile-contract-card{text-align:left;background:#fff;border:1px solid #dbe3ef;border-radius:8px;gap:12px;width:100%;padding:13px;display:grid}.mobile-contract-card-toggle{text-align:left;background:0 0;border:0;gap:11px;width:100%;min-height:0;padding:0;display:grid}.mobile-contract-card-header{justify-content:space-between;align-items:start;gap:12px;display:flex}.mobile-contract-card-header>span{gap:4px;min-width:0;display:grid}.mobile-contract-card-header strong{line-height:1.25}.mobile-contract-card-header small{color:#64748b;text-transform:uppercase;font-size:12px;font-weight:700}.mobile-contract-card-header svg{flex:none;margin-top:2px;transition:transform .16s}.mobile-contract-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.mobile-contract-card-summary,.mobile-contract-card-grid{display:none}.mobile-contract-card-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.mobile-contract-card-summary span{color:#64748b;gap:2px;font-size:12px;display:grid}.mobile-contract-card-summary strong{color:#172033;font-size:17px}.mobile-contract-card-summary .negative-number strong{color:#b91c1c}.mobile-contract-card-summary .money-number strong{color:var(--positive)}.mobile-contract-progress{background:#e8edf4;border-radius:999px;height:5px;display:none;overflow:hidden}.mobile-contract-progress>span{border-radius:inherit;background:#2563eb;height:100%;display:block}.mobile-contract-progress>span.over{background:var(--positive)}.mobile-contract-card-grid span{color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;gap:2px;padding:8px;font-size:12px;display:grid}.mobile-contract-card-grid strong{color:#172033;font-size:18px}.mobile-contract-card-grid .money-number{color:#047857}.mobile-contract-card-grid .negative-number{color:#b91c1c}.mobile-contract-details{color:#fff;background:#25364f;border-color:#25364f;grid-column:1/-1;justify-content:center}.usage-heading-title{align-items:center;gap:8px;display:flex}.summary-table{min-width:1120px}.employee-table{min-width:760px;font-size:16px}.employee-table th,.employee-table td{padding:14px 12px}.employee-table td:nth-child(n+2){text-align:right}.numeric-header .sort-button{justify-content:flex-end}.sort-button{color:inherit;text-transform:uppercase;background:0 0;border:0;justify-content:flex-start;width:100%;min-height:auto;padding:0;font-size:12px;font-weight:760}.sort-button:hover{color:#2563eb;border-color:#0000}.sort-button.active{color:#172033}.sort-button svg{color:#94a3b8;flex:none}.technicians-table{min-width:1060px}.technicians-table th,.technicians-table td{padding:10px 8px}.technicians-table td:nth-child(n+2),.technicians-table th:nth-child(n+2){text-align:right}.technicians-table td:first-child,.technicians-table th:first-child{min-width:260px}.technicians-table th:nth-child(2),.technicians-table td:nth-child(2){width:88px}.technicians-table th{white-space:normal;line-height:1.15}.technician-toggle{color:inherit;background:0 0;border:0;justify-content:flex-start;width:100%;min-height:auto;padding:0;font-weight:700}.technician-toggle:disabled{cursor:default;opacity:1}.technician-toggle:hover{color:#2563eb;border-color:#0000}.target-toggle{white-space:nowrap;justify-content:flex-end;align-items:center;gap:6px;display:inline-flex}.target-toggle span{color:#52627a;min-width:22px;font-size:12px;font-weight:700}.absence-manager{background:#f8fafc;border-top:1px solid #dbe3ef;border-bottom:1px solid #dbe3ef;margin-bottom:14px}.absence-manager-heading{justify-content:space-between;align-items:center;min-height:58px;padding:8px 12px;display:flex}.absence-manager-toggle{background:0 0;border:0;align-items:center;gap:10px;padding:4px 0;display:inline-flex}.absence-manager-toggle:hover{color:#2563eb;border-color:#0000}.absence-manager-toggle>span{text-align:left;align-items:flex-start;gap:2px;display:grid}.absence-manager-toggle small,.absence-manager-actions p{color:#64748b;font-size:12px}.absence-manager-summary,.absence-manager-actions{align-items:center;gap:8px;display:flex}.absence-manager-content{border-top:1px solid #dbe3ef;gap:12px;padding:12px;animation:.2s cubic-bezier(.16,1,.3,1) both details-enter;display:grid}.absence-manager-actions{justify-content:space-between}.absence-manager-actions p{margin:0}.absence-form{background:#fff;border:1px solid #dbe3ef;border-radius:6px;grid-template-columns:minmax(180px,1.2fr) 140px 140px 120px minmax(160px,1fr) minmax(170px,auto) auto;align-items:end;gap:8px;padding:12px;display:grid}.absence-form>label:not(.checkbox-label){color:#52627a;text-transform:uppercase;gap:5px;font-size:11px;font-weight:800;display:grid}.absence-form input,.absence-form select,.absence-form button{min-width:0}.absence-target-checkbox{white-space:nowrap;margin-bottom:9px}.absence-table-wrap{background:#fff;border:1px solid #dbe3ef;border-radius:6px}.absence-table{min-width:820px}.absence-table th,.absence-table td{padding:9px 12px}.absence-table th:last-child,.absence-table td:last-child{text-align:right;width:52px}.rotated-icon{transform:rotate(180deg)}.technician-daily-row>td{background:#f8fafc;padding:0 12px 14px}.technician-daily-panel{border:1px solid #dbe3ef;border-radius:8px;gap:10px;padding:12px;display:grid}.compact-heading{margin-bottom:0}.compact-heading h3{margin:0;font-size:15px}.technician-person-summary{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;display:grid}.technician-person-summary>div,.technician-person-breakdown span{background:#fff;border:1px solid #dbe3ef;border-radius:8px;gap:4px;min-width:0;padding:10px;display:grid}.technician-person-summary span,.technician-person-breakdown small{color:#52627a;text-transform:uppercase;font-size:11px;font-weight:760}.technician-person-summary strong,.technician-person-breakdown strong{color:#172033;text-overflow:ellipsis;white-space:nowrap;font-size:17px;overflow:hidden}.technician-person-breakdown{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;display:grid}.technician-daily-table{min-width:980px;font-size:13px}.technician-hours-state{flex-direction:column;align-items:flex-end;gap:4px;display:inline-flex}.technician-hours-state>strong{font:inherit}.current-hours-note{color:#a16207;white-space:nowrap;align-items:center;gap:5px;font-size:11px;font-weight:750;display:inline-flex}.current-hours-note:before{content:"";background:#f59e0b;border-radius:50%;flex:none;width:6px;height:6px}.current-number{color:#b45309!important}.technician-daily-table th,.technician-daily-table td{padding:9px 10px}.technician-daily-table td:nth-child(n+2),.technician-daily-table th:nth-child(n+2){text-align:right}.admin-contracts-table{min-width:1500px;font-size:14px}.contracts-list{gap:8px;display:grid}.contract-list-item{background:#fff;border:1px solid #dbe3ef;border-radius:8px;overflow:hidden}.contract-list-item.expanded{border-color:#b8c7dd;box-shadow:0 10px 24px #0f172a0f}.contract-list-summary{text-align:left;border:0;border-radius:0;grid-template-columns:minmax(260px,1fr) auto 22px;align-items:center;gap:16px;width:100%;min-height:64px;padding:12px 16px;display:grid}.contract-list-summary:hover{background:#f8fafc;border-color:#0000}.contract-summary-main{gap:4px;min-width:0;display:grid}.contract-summary-main strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.contract-summary-main span{color:#64748b;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.contract-summary-meta{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.contract-chip{color:#334155;white-space:nowrap;background:#eef4fb;border:1px solid #dbe3ef;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:760}.contract-chip.success{color:#047857;background:#ecfdf5;border-color:#bbf7d0}.contract-chip.muted-chip{color:#64748b;background:#f1f5f9}.contract-summary-chevron{color:#64748b;transition:transform .16s}.contract-list-item.expanded .contract-summary-chevron{transform:rotate(180deg)}.contract-details-panel{background:#f8fafc;border-top:1px solid #dbe3ef;grid-template-columns:minmax(280px,2fr) 130px 120px repeat(3,minmax(130px,1fr)) repeat(2,minmax(160px,1fr)) 130px;gap:12px;padding:14px 16px 16px;animation:.2s cubic-bezier(.16,1,.3,1) both details-enter;display:grid}.contract-details-panel label{gap:5px;min-width:0;display:grid}.contract-details-panel label>span{color:#52627a;text-transform:uppercase;font-size:11px;font-weight:760}.contract-details-panel input,.contract-details-panel select{min-width:0}.contract-active-toggle{align-content:end;padding-bottom:4px}.contract-details-actions{justify-content:flex-end;align-items:end;gap:8px;display:flex}.projects-admin-table{min-width:1680px;font-size:14px}.projects-report-table{min-width:1320px}.projects-report-table small{color:#64748b;margin-top:2px;font-size:12px;display:block}.contract-create-form{background:#f8fafc;border:1px solid #dbe3ef;border-radius:8px;grid-template-columns:150px minmax(260px,2fr) 130px 110px 130px 145px 145px minmax(150px,1fr) minmax(150px,1fr) 110px auto;gap:10px;margin-bottom:14px;padding:12px;display:grid}.contract-terms-panel{background:#f8fafc;border:1px solid #dbe3ef;border-radius:8px;gap:14px;margin-top:18px;padding:16px;display:grid}.contract-list-item .contract-terms-panel{background:#fff;border-bottom:0;border-left:0;border-right:0;border-radius:0;margin-top:0}.contract-current-term{background:#ecfdf5;border:1px solid #bbf7d0;border-radius:8px;gap:4px;padding:12px 14px;display:grid}.contract-current-term span,.contract-term-form label>span,.term-edit-grid label>span{color:#52627a;text-transform:uppercase;font-size:11px;font-weight:760}.contract-current-term strong{color:#065f46}.term-warnings{gap:8px;display:grid}.contract-term-form{background:#f8fafc;border:1px solid #dbe3ef;border-radius:8px;grid-template-columns:145px 145px 130px 120px 130px minmax(160px,1fr) auto auto;gap:10px;padding:12px;display:grid}.contract-term-form label,.term-edit-grid label{gap:5px;min-width:0;display:grid}.contract-term-form button{justify-content:center}.contract-terms-timeline{gap:12px;display:grid;position:relative}.contract-term-card{grid-template-columns:18px minmax(0,1fr);gap:12px;display:grid}.term-timeline-marker{align-self:stretch;position:relative}.term-timeline-marker:before{content:"";background:#dbe3ef;width:2px;position:absolute;top:16px;bottom:-12px;left:8px}.contract-term-card:last-child .term-timeline-marker:before{display:none}.term-timeline-marker:after{content:"";background:#94a3b8;border:3px solid #fff;border-radius:999px;width:10px;height:10px;position:absolute;top:14px;left:3px;box-shadow:0 0 0 1px #dbe3ef}.contract-term-card.current .term-timeline-marker:after{background:#10b981;box-shadow:0 0 0 1px #34d399}.contract-term-card.future .term-timeline-marker:after{background:#2563eb;box-shadow:0 0 0 1px #93c5fd}.term-card-body{background:#fff;border:1px solid #dbe3ef;border-radius:8px;gap:12px;padding:12px;display:grid}.contract-term-card.current .term-card-body{border-color:#86efac}.term-card-heading{justify-content:space-between;align-items:start;gap:12px;display:flex}.term-card-heading>div{gap:3px;min-width:0;display:grid}.term-card-heading strong{color:#172033}.term-card-heading span:not(.contract-chip){color:#64748b;font-size:13px}.term-edit-grid{grid-template-columns:145px 145px 130px 120px 130px minmax(180px,1fr);gap:10px;display:grid}.term-base-grid{grid-template-columns:repeat(3,minmax(120px,1fr));gap:10px;display:grid}.term-base-grid span{background:#f8fafc;border:1px solid #dbe3ef;border-radius:8px;gap:3px;padding:10px;display:grid}.term-base-grid small{color:#64748b;font-size:12px}.term-card-actions{justify-content:flex-end;gap:8px;display:flex}.contract-terms-table{min-width:1080px;font-size:14px}.contract-terms-table th,.contract-terms-table td{vertical-align:middle}.contract-terms-table input{min-width:110px}.project-create-form{background:#f8fafc;border:1px solid #dbe3ef;border-radius:8px;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;margin-bottom:14px;padding:12px;display:grid}.project-create-form input:nth-child(2),.project-create-form input:nth-child(3){grid-column:span 2}.project-create-form button[type=submit]{justify-content:center}.project-create-form input,.project-create-form select,.projects-admin-table input,.projects-admin-table select,.contract-create-form input,.contract-create-form select{min-width:0}.checkbox-label{color:#253244;white-space:nowrap;align-items:center;gap:8px;min-height:36px;display:inline-flex}.admin-contracts-table th{z-index:1;background:#fff;line-height:1.05;position:sticky;top:0}.admin-contracts-table td{vertical-align:top;padding:12px 10px}.admin-contracts-table input,.projects-admin-table input,.projects-admin-table select{min-height:34px}.status-filter{flex-wrap:wrap;gap:8px;margin:0 0 14px;display:flex}.status-filter button{color:#253244;background:#fff;border:1px solid #cfd9e8;border-radius:8px;min-height:34px;padding:7px 12px;font-weight:700}.status-filter button.active{color:#fff;background:#172033;border-color:#172033}.admin-contracts-table input[type=date]{min-width:138px}.admin-contracts-table input[type=number]{min-width:86px}.admin-contracts-table th:first-child,.admin-contracts-table td:first-child{width:180px}.admin-contracts-table th:nth-child(2),.admin-contracts-table td:nth-child(2){width:310px}.admin-contracts-table th:nth-child(3),.admin-contracts-table td:nth-child(3){width:130px}.admin-contracts-table th:nth-child(4),.admin-contracts-table td:nth-child(4){width:170px}.admin-contracts-table th:nth-child(9),.admin-contracts-table td:nth-child(9),.admin-contracts-table th:nth-child(10),.admin-contracts-table td:nth-child(10){width:180px}.contract-id-cell span{max-width:170px;font-weight:650;line-height:1.25;display:block}.center-cell{text-align:center}.icon-button{justify-content:center;min-width:38px;padding:8px}.strong-number{font-weight:760}.negative-number{color:#b91c1c;font-weight:760}.drawer-backdrop{z-index:20;background:#0f172a47;position:fixed;inset:0}.details-drawer{background:#fff;grid-template-rows:auto auto auto minmax(0,1fr);gap:18px;width:min(720px,92vw);max-width:720px;height:100%;margin-left:auto;padding:24px;display:grid;overflow-y:auto;box-shadow:-18px 0 45px #0f172a2e}.drawer-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.drawer-header h2{font-size:20px;line-height:1.25}.drawer-header p{color:#64748b;margin:6px 0 0}.drawer-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.drawer-metrics .metric{padding:14px}.drawer-metrics .metric strong{font-size:22px}.drawer-money{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:8px;padding:13px 14px}.drawer-section h3{color:#52637a;text-transform:uppercase;margin:0 0 10px;font-size:13px}.worklog-list{gap:10px;display:grid}.worklog-item{border:1px solid #e2e8f0;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:12px;display:grid}.worklog-item span,.worklog-item p{color:#64748b}.worklog-item span{margin-top:3px;display:block}.worklog-item p{grid-column:1/-1;margin:0}.status-badge{white-space:nowrap;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:760;display:inline-flex}.status-badge.reported{color:#166534;background:#e8f5ee}.status-badge.exceeded{color:#166534;background:#dcfce7}.status-badge.not_reported{color:#9a3412;background:#fff7ed}.status-badge.active{color:#166534;background:#e8f5ee}.status-badge.paused{color:#1d4ed8;background:#eff6ff}.status-badge.done{color:#475569;background:#f1f5f9}.status-badge.archived{color:#64748b;background:#f8fafc}.status-badge.neutral{color:#334155;background:#eef2f7}.file-import{cursor:pointer;border:1px dashed #94a3b8;border-radius:8px;justify-content:center;align-items:center;gap:10px;min-height:82px;padding:16px;display:flex}.file-import input{display:none}.admin-separator{border-top:1px solid #e2e8f0;margin:22px 0}.admin-dashboard{min-width:0}.admin-tabs{scrollbar-width:none;background:#fff;border:1px solid #dbe3ef;border-radius:8px;align-items:center;gap:4px;padding:5px;display:flex;overflow-x:auto}.admin-tabs::-webkit-scrollbar{display:none}.admin-tabs button{color:#52637a;background:0 0;border-color:#0000;flex:none;align-items:center;gap:8px;min-height:38px;display:inline-flex}.admin-tabs button:hover{background:#f1f5f9}.admin-tabs button.active{color:#fff;background:#25364f;border-color:#25364f}.admin-tabs button small{color:#52637a;background:#eef2f7;border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:11px;font-weight:800;display:inline-flex}.admin-tabs button.active small{color:#fff;background:#ffffff29}.admin-content{gap:16px;padding-top:20px;display:grid}.admin-section-heading h2{margin:0;font-size:22px}.admin-section-heading p{color:#64748b;margin:4px 0 0}.admin-list-toolbar{justify-content:space-between;align-items:center;display:flex}.admin-list-toolbar>span{color:#64748b;font-size:14px}.admin-list-toolbar>span strong{color:#253244}.admin-content .table-scroll,.admin-content>.system-info{background:#fff;border:1px solid #dbe3ef;border-radius:8px}.admin-content>.system-info{max-width:760px;padding:16px}.audit-admin{gap:12px;display:grid}.audit-filters{grid-template-columns:minmax(240px,1fr) minmax(190px,240px) minmax(210px,280px);gap:10px;display:grid}.audit-filters .search-with-icon{width:100%;max-width:none}.audit-list{background:#fff;border:1px solid #dbe3ef;border-radius:8px;min-height:90px;overflow:hidden}.audit-event+.audit-event{border-top:1px solid #e2e8f0}.audit-event-summary{color:#253244;text-align:left;background:#fff;border:0;border-radius:0;grid-template-columns:145px 180px minmax(220px,1.2fr) minmax(180px,1fr) 120px 20px;align-items:center;gap:12px;width:100%;min-height:70px;padding:12px 14px;display:grid}.audit-event-summary:hover,.audit-event.expanded .audit-event-summary{background:#f8fafc}.audit-time,.audit-ip{color:#64748b;font-variant-numeric:tabular-nums;font-size:12px}.audit-action{color:#334155;background:#eef2f7;border-radius:999px;justify-self:start;padding:5px 8px;font-size:12px;font-weight:760}.audit-entity,.audit-actor{gap:3px;min-width:0;display:grid}.audit-entity strong,.audit-actor strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.audit-entity small,.audit-actor small{color:#64748b;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.audit-event-details{background:#f8fafc;border-top:1px solid #e2e8f0;gap:8px;padding:12px 14px 14px 171px;animation:.18s cubic-bezier(.16,1,.3,1) both details-enter;display:grid}.audit-change{grid-template-columns:170px minmax(0,1fr) 18px minmax(0,1fr);align-items:center;gap:10px;display:grid}.audit-change>strong{color:#52637a;text-transform:uppercase;font-size:12px}.audit-change>span{overflow-wrap:anywhere;background:#fff;border:1px solid #dbe3ef;border-radius:5px;min-height:34px;padding:7px 9px}.audit-change>svg{color:#94a3b8}.audit-metadata{color:#64748b;border-top:1px solid #dbe3ef;flex-wrap:wrap;gap:8px 18px;margin-top:4px;padding-top:10px;font-size:12px;display:flex}.audit-pagination{color:#64748b;justify-content:space-between;align-items:center;font-size:13px;display:flex}.audit-pagination>div{gap:6px;display:flex}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.system-info{gap:10px;display:grid}.system-info div{border-top:1px solid #e2e8f0;gap:3px;padding-top:10px;display:grid}.system-info div:first-child{border-top:0;padding-top:0}.system-info span{color:#64748b;text-transform:uppercase;font-size:12px;font-weight:760}.system-info strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.users-admin{gap:16px;display:grid}.account-settings{gap:16px;max-width:1040px;display:grid}.appearance-panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;grid-template-columns:minmax(220px,.7fr) minmax(420px,1.3fr);align-items:center;gap:18px;padding:18px;display:grid;box-shadow:0 7px 22px #0f172a0a}.appearance-heading{align-items:flex-start;gap:12px;display:flex}.appearance-heading>div{min-width:0}.appearance-heading p{margin:4px 0 0}.theme-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.theme-option{text-align:left;background:#fff;grid-template-columns:48px minmax(0,1fr) 18px;align-items:center;gap:10px;min-height:66px;padding:9px 11px;display:grid}.theme-option.active{border-color:var(--accent);box-shadow:0 0 0 3px #2563eb1c}:root[data-theme=olive] .theme-option.active{box-shadow:0 0 0 3px #66734f26}.theme-option>span:nth-child(2){gap:2px;min-width:0;display:grid}.theme-option small{color:#64748b;font-size:11px}.theme-option>svg{color:var(--accent)}.theme-preview{background:#f4f7fb;border:1px solid #dbe3ef;border-radius:6px;grid-template-rows:8px 1fr;grid-template-columns:13px 1fr;gap:3px;width:48px;height:42px;padding:4px;display:grid;overflow:hidden}.theme-preview i{border-radius:2px;display:block}.theme-preview i:first-child{background:#111827;grid-row:1/-1}.theme-preview i:nth-child(2){background:#fff}.theme-preview i:nth-child(3){background:#2563eb}.olive-preview{background:#f3f5f0;border-color:#d9ddcf}.olive-preview i:first-child{background:#1d211b}.olive-preview i:nth-child(3){background:#9da889}:root[data-theme=olive] .app-loading-bar{background:#66734f29}:root[data-theme=olive] button:focus-visible,:root[data-theme=olive] .button:focus-visible,:root[data-theme=olive] input:focus-visible,:root[data-theme=olive] select:focus-visible,:root[data-theme=olive] textarea:focus-visible,:root[data-theme=olive] .search-with-icon:focus-within{box-shadow:0 0 0 3px #66734f2b}:root[data-theme=olive] .topbar .toolbar,:root[data-theme=olive] .account-overview,:root[data-theme=olive] .security-method-panel,:root[data-theme=olive] .technician-mobile-card,:root[data-theme=olive] .contract-report-card{border-color:var(--border)}:root[data-theme=olive] .metric.primary .metric-icon,:root[data-theme=olive] .mobile-bottom-nav button.active,:root[data-theme=olive] .status-badge.paused{color:var(--accent-dark);background:#eef1e8}:root[data-theme=olive] .billing-filters button.active,:root[data-theme=olive] .subtabs button.active,:root[data-theme=olive] .status-filter button.active,:root[data-theme=olive] .admin-tabs button.active,:root[data-theme=olive] .bar-fill,:root[data-theme=olive] .trend-bar:not(.danger):not(.money),:root[data-theme=olive] .trend-bar.contract:not(.danger):not(.money),:root[data-theme=olive] .mobile-contract-progress>span:not(.over),:root[data-theme=olive] .contract-report-progress i:not(.over),:root[data-theme=olive] .technician-progress i:not(.complete){background:var(--accent);border-color:var(--accent)}:root[data-theme=olive] .sort-button:hover,:root[data-theme=olive] .technician-toggle:hover,:root[data-theme=olive] .absence-manager-toggle:hover{color:var(--accent)}.account-overview{background:#fff;border:1px solid #dbe3ef;border-radius:8px;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;display:grid}.account-avatar{color:#334155;background:#eef2f7;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.account-overview>div:nth-child(2){gap:2px;min-width:0;display:grid}.account-overview>div:nth-child(2) span{color:#64748b;overflow-wrap:anywhere}.account-security-status,.security-setting-heading{align-items:center;gap:8px;display:flex}.account-security-grid{grid-template-columns:minmax(300px,.8fr) minmax(480px,1.4fr);align-items:start;gap:16px;display:grid}.security-method-panel{background:#fff;border:1px solid #dbe3ef;border-radius:8px;gap:16px;padding:18px;display:grid}.security-setting-heading{justify-content:space-between;align-items:start}.security-method-title{align-items:flex-start;gap:12px;min-width:0;display:flex}.security-method-title>div{min-width:0}.security-method-icon{color:#334155;background:#eef2f7;border-radius:6px;flex:0 0 38px;justify-content:center;align-items:center;height:38px;display:flex}.security-method-title p{margin:4px 0 0}.security-method-actions{border-top:1px solid #e5eaf1;padding-top:14px;display:flex}.mfa-setup{grid-template-columns:120px minmax(0,1fr);align-items:center;gap:16px;display:grid}.mfa-setup img{background:#fff;border:1px solid #dbe3ef;border-radius:8px;width:120px;height:120px;padding:8px}.mfa-setup div{gap:10px;display:grid}.security-key-heading{justify-content:space-between;align-items:start;gap:16px;display:flex}.security-key-heading p{margin:4px 0 0}.security-key-list{border-bottom:1px solid #e5eaf1;display:grid}.security-key-row{border-bottom:1px solid #e5eaf1;grid-template-columns:22px minmax(0,1fr) 38px;align-items:center;gap:10px;padding:12px 0;display:grid}.security-key-row:last-child{border-bottom:0}.security-key-row span{gap:2px;min-width:0;display:grid}.security-key-row small{color:#64748b;overflow-wrap:anywhere}.security-key-add{gap:10px;display:grid}.security-key-form{grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;align-items:end;gap:10px;display:grid}.security-key-form label{gap:5px;min-width:0;display:grid}.security-key-form label>span{color:#52637b;text-transform:uppercase;font-size:11px;font-weight:780}.user-form{background:#fff;border:1px solid #dbe3ef;border-radius:8px;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) 130px minmax(160px,1fr) 150px auto;align-items:center;gap:10px;padding:14px;display:grid}.password-field{align-items:center;gap:8px;min-width:0;display:flex;position:relative}.password-field input{min-width:0}.password-input-wrap{align-items:center;gap:8px;width:100%;display:flex;position:relative}.password-help{color:#52637a;cursor:help;background:#eef2f7;border:1px solid #cbd5e1;border-radius:999px;flex:0 0 22px;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:760;display:inline-flex;position:relative}.password-help:focus{outline-offset:2px;outline:2px solid #93c5fd}.password-tooltip{color:#fff;opacity:0;pointer-events:none;visibility:hidden;z-index:30;background:#172033;border-radius:6px;width:260px;padding:9px 10px;font-size:12px;font-weight:520;line-height:1.35;transition:opacity .14s,transform .14s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(4px);box-shadow:0 12px 30px #0f172a38}.password-tooltip:after{content:"";border:6px solid #0000;border-top-color:#172033;position:absolute;top:100%;left:50%;transform:translate(-50%)}.password-help:hover .password-tooltip,.password-help:focus .password-tooltip{opacity:1;visibility:visible;transform:translate(-50%)translateY(0)}.users-table{min-width:860px}.users-table td:first-child{min-width:230px}.users-table td small{color:#64748b;margin-top:3px;font-size:12px;display:block}.users-table td:last-child{text-align:right}.user-card-drawer{grid-template-rows:auto auto auto minmax(0,1fr);width:min(560px,94vw);max-width:560px}.access-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.access-summary div{background:#f8fafc;border:1px solid #dbe3ef;border-radius:8px;padding:12px}.access-summary span{color:#64748b;text-transform:uppercase;font-size:12px;font-weight:760;display:block}.access-summary strong{margin-top:3px;font-size:20px;display:block}.user-card-form{align-content:start;gap:14px;display:grid}.user-card-form>label{color:#52637a;gap:6px;font-size:13px;font-weight:760;display:grid}.user-card-switches,.user-card-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.user-card-actions{border-top:1px solid #e2e8f0;justify-content:flex-end;padding-top:14px}.permission-checklist{border:1px solid #dbe3ef;border-radius:8px;gap:8px;margin:0;padding:12px;display:grid}.permission-checklist legend{color:#52637a;padding:0 6px;font-size:13px;font-weight:760}.group-picker-list{gap:8px;display:grid}.group-picker-row{border-bottom:1px solid #e2e8f0;grid-template-columns:auto minmax(0,1fr);align-items:flex-start;gap:10px;padding-bottom:8px;display:grid}.group-picker-row:last-child{border-bottom:0;padding-bottom:0}.group-picker-row input{margin-top:3px}.group-picker-row span{gap:2px;display:grid}.group-picker-row small{color:#64748b;line-height:1.35}.effective-access{background:#f8fafc;border:1px solid #dbe3ef;border-radius:8px;gap:9px;padding:12px;display:grid}.effective-access h3,.permission-section h4{color:#52637a;text-transform:uppercase;margin:0;font-size:13px}.access-chip-list{flex-wrap:wrap;gap:7px;display:flex}.access-chip-list span{color:#253244;background:#fff;border:1px solid #cbd5e1;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:720}.permissions-admin,.permission-groups{gap:12px;display:grid}.permission-group-card{border:1px solid #dbe3ef;border-radius:8px;gap:12px;padding:14px;display:grid}.permission-group-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.permission-group-header p{margin-top:4px}.permission-section-grid{gap:14px;display:grid}.permission-section{gap:8px;display:grid}.permission-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;display:grid}.checkbox-label{white-space:nowrap;align-items:center;gap:8px;display:flex}.checkbox-label input{width:auto;min-height:auto}.history{margin:16px 0 0;padding:0;list-style:none}.history li{border-top:1px solid #e2e8f0;gap:3px;padding:10px 0;display:grid}.history span{color:#64748b;font-size:13px}.empty{color:#64748b;align-items:center;gap:10px;min-height:80px;display:flex}@media (width<=980px){.app-layout{display:block}.sidebar{height:auto;min-height:auto;position:static}.main-content{padding:18px}.topbar,.workspace,.executive-grid,.public-layout{display:block}.toolbar{flex-wrap:wrap;align-items:stretch;margin-top:16px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.billing-toolbar{grid-template-columns:1fr}.billing-filters{flex-wrap:wrap}.trend-kpis,.bar-row{grid-template-columns:1fr}.bar-value{text-align:left}.breakdown-grid{grid-template-columns:1fr}.panel{margin-bottom:18px}.drawer-metrics{grid-template-columns:1fr 1fr}.worklog-item,.user-form,.account-security-grid{grid-template-columns:1fr}.appearance-panel{grid-template-columns:1fr;align-items:stretch;padding:14px}.theme-options{grid-template-columns:1fr}.technician-person-summary,.technician-person-breakdown{grid-template-columns:repeat(2,minmax(0,1fr))}.contract-list-summary{grid-template-columns:minmax(0,1fr) 22px}.contract-summary-chevron{grid-area:1/2}.contract-summary-meta{grid-column:1/-1;justify-content:flex-start}.contract-details-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.contract-details-panel label:first-child,.contract-details-actions{grid-column:1/-1}}@media (width<=768px){:root{font-size:14px}body{overflow-x:hidden}.app-layout{min-height:100vh;display:block}.mobile-topbar{z-index:30;background:#fffffff5;border-bottom:1px solid #dbe3ef;justify-content:space-between;align-items:center;gap:12px;min-height:58px;padding:8px 12px;display:flex;position:sticky;top:0}.mobile-topbar-title{gap:1px;min-width:0;display:grid}.mobile-topbar strong,.mobile-topbar span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mobile-topbar strong{color:#0f172a;font-size:17px;line-height:1.2}.mobile-topbar span{color:#64748b;text-transform:uppercase;font-size:10px;font-weight:700}.mobile-account-button{background:#eef2f7;border-color:#0000;flex:none;justify-content:center;width:40px;min-height:38px;padding:8px}.mobile-bottom-nav{padding:5px 6px calc(5px + env(safe-area-inset-bottom));z-index:35;background:#fffffffa;border-top:1px solid #dbe3ef;align-items:stretch;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-bottom-nav button{color:#64748b;background:0 0;border:0;border-radius:6px;flex:1 1 0;justify-items:center;gap:2px;min-width:0;min-height:48px;padding:5px 3px;font-size:10px;display:grid}.mobile-bottom-nav button.active{color:#1d4ed8;background:#eef4ff;font-weight:760}.mobile-bottom-nav button span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.mobile-nav-backdrop{z-index:40;background:#0f172a75;border:0;border-radius:0;min-height:0;padding:0;display:block;position:fixed;inset:0}.sidebar{z-index:50;grid-template-rows:auto auto minmax(0,1fr) auto;width:min(82vw,300px);max-width:300px;height:100vh;min-height:0;transition:transform .16s;display:grid;position:fixed;top:0;left:0;overflow:hidden;transform:translate(-105%)}.sidebar.open{transform:translate(0)}.command-backdrop{padding:70px 10px 20px}.command-results{max-height:55vh}.command-footer{display:none}.app-toast{width:auto;max-width:none;top:70px;left:12px;right:12px}.skeleton-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.skeleton-metric{height:88px}.sidebar-brand{justify-content:space-between;align-items:start;display:flex}.sidebar-brand>div{gap:3px;min-width:0;display:grid}.mobile-nav-close{color:#e5e7eb;background:#ffffff14;border-color:#94a3b859;flex:none;justify-content:center;width:32px;min-height:30px;padding:5px;display:inline-flex}.main-content{padding:14px 12px calc(78px + env(safe-area-inset-bottom))}.mobile-login-slot{margin-bottom:14px;display:block}.desktop-login-slot{display:none}.topbar{grid-template-columns:minmax(0,1fr);justify-content:stretch;align-items:stretch;gap:0;min-height:0;margin-bottom:12px;display:grid}.topbar>div:first-child,.view-admin .topbar,.view-account .topbar,.admin-refresh-toolbar{display:none}.sync-status{align-items:flex-start;margin-top:0;font-size:12px}.sync-status>span:not(.sync-warning){display:none}.report-toolbar{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:0;display:grid}.topbar .report-toolbar{box-shadow:none;background:0 0;border:0;padding:0}.report-toolbar>button,.report-toolbar>.button{display:none}.report-toolbar .month-picker{grid-column:1/-1}.desktop-action-label{display:none}.mobile-action-label{display:inline}.month-picker{grid-template-columns:40px minmax(0,1fr) 40px;padding:3px}.month-display{min-width:0;padding-inline:12px}.month-display strong{font-size:15px}.stats,.executive-stats,.risk-stats,.project-stats,.integration-stats,.trend-kpis{grid-template-columns:1fr}.metric{padding:14px}.metric strong,.executive-stats .metric strong{font-size:28px}.technician-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:14px}.technician-stats .metric{min-height:88px;padding:11px;box-shadow:0 4px 14px #0f172a0b}.technician-stats .metric span{font-size:10px;line-height:1.2}.technician-stats .metric strong{margin-top:7px;font-size:22px}.technician-stats .metric:last-child{grid-column:1/-1}.technician-stats .metric-icon{flex-basis:24px;width:24px;height:24px}.contract-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:14px}.contract-stats .metric{min-height:88px;padding:11px;box-shadow:0 4px 14px #0f172a0b}.contract-stats .metric span{font-size:10px;line-height:1.2}.contract-stats .metric strong{margin-top:7px;font-size:22px}.contract-stats .metric-icon{flex-basis:24px;width:24px;height:24px}.panel{padding:14px}.panel-heading{align-items:stretch;gap:10px;display:grid}.usage-panel,.technicians-panel{background:0 0;border:0;padding:0}.contracts-breakdown-panel{display:none}.contracts-report-panel{background:0 0;border:0;padding:0}.contracts-report-heading{margin-bottom:10px}.contracts-report-heading .filters{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.contracts-report-heading .search-input{background:#fff;grid-column:1/-1;max-width:none}.contracts-result-meta{color:#64748b;margin:0 0 8px;font-size:12px;font-weight:700;display:block}.mobile-report-cards{gap:10px;display:grid}.contracts-report-table{display:none}.contract-report-card{background:#fff;border:1px solid #dbe3ef;border-radius:8px;overflow:hidden}.contract-report-card.expanded{border-color:#b8c8df}.contract-report-toggle{color:inherit;text-align:left;background:0 0;border:0;border-radius:0;gap:10px;width:100%;padding:13px;display:grid}.contract-report-toggle:hover{border-color:#0000}.contract-report-heading-row{grid-template-columns:minmax(0,1fr) 18px;align-items:start;gap:8px;width:100%;display:grid}.contract-report-heading-row>span{gap:3px;min-width:0;display:grid}.contract-report-heading-row strong{color:#172033;overflow-wrap:anywhere;font-size:15px;line-height:1.25}.contract-report-heading-row small{color:#64748b;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.contract-report-heading-row>svg{color:#64748b;margin-top:2px;transition:transform .15s}.contract-report-badges{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.contract-report-badges>small{color:#52637a;background:#eef2f7;border-radius:999px;padding:4px 7px;font-size:10px;font-weight:760}.contract-report-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;display:grid}.contract-report-summary>span{gap:2px;display:grid}.contract-report-summary>span:last-child{text-align:right}.contract-report-summary small,.contract-report-kpis small,.contract-report-owners small{color:#64748b;font-size:10px}.contract-report-summary strong{color:#172033;font-size:19px}.contract-report-progress{background:#e8edf4;border-radius:999px;width:100%;height:5px;display:block;overflow:hidden}.contract-report-progress i{border-radius:inherit;background:#2563eb;height:100%;animation:.52s cubic-bezier(.16,1,.3,1) both progress-reveal;display:block}.contract-report-progress i.over{background:var(--positive)}.contract-report-details{border-top:1px solid #e2e8f0;gap:12px;padding:13px;animation:.2s cubic-bezier(.16,1,.3,1) both details-enter;display:grid}.contract-report-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.contract-report-kpis>span,.contract-report-owners>span{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;gap:4px;min-width:0;padding:9px;display:grid}.contract-report-kpis strong,.contract-report-owners strong{overflow-wrap:anywhere}.contract-report-owners{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.contract-report-footer{justify-content:space-between;align-items:center;gap:10px;display:flex}.contract-report-footer>span{color:#64748b;font-size:12px}.contract-report-footer button{color:#fff;background:#25364f;border-color:#25364f}.admin-user-cards{gap:8px;display:grid}.desktop-users-table{display:none}.admin-user-card{text-align:left;background:#fff;border:1px solid #dbe3ef;gap:10px;width:100%;padding:12px;display:grid}.admin-user-card-heading{grid-template-columns:minmax(0,1fr) 18px;align-items:start;gap:8px;width:100%;display:grid}.admin-user-card-heading>span{gap:3px;min-width:0;display:grid}.admin-user-card-heading strong{color:#172033;font-size:15px}.admin-user-card-heading small{color:#64748b;overflow-wrap:anywhere}.admin-user-card-heading>svg{color:#64748b;margin-top:2px}.admin-user-card-badges{flex-wrap:wrap;gap:6px;display:flex}.admin-user-card-security{border-top:1px solid #e2e8f0;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:10px;width:100%;padding-top:9px;display:grid}.admin-user-card-security>span{gap:2px;min-width:0;display:grid}.admin-user-card-security small{color:#64748b;font-size:10px}.admin-user-card-security strong{color:#334155;overflow-wrap:anywhere;font-size:12px}.technicians-heading{grid-template-columns:minmax(0,1fr);margin-bottom:8px}.technicians-heading .search-input{background:#fff;max-width:none}.technician-desktop-tools{display:none}.technicians-mobile-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:10px;display:grid}.technicians-mobile-controls select{min-width:0}.desktop-absence-manager,.desktop-technicians-table{display:none}.technician-mobile-cards{gap:10px;display:grid}.technician-mobile-card{background:#fff;border:1px solid #dbe3ef;border-radius:8px;overflow:hidden}.technician-mobile-card.expanded{border-color:#b8c8df}.technician-mobile-toggle{color:inherit;text-align:left;background:0 0;border:0;border-radius:0;grid-template-columns:minmax(0,1fr) auto;gap:11px;width:100%;padding:13px;display:grid}.technician-mobile-toggle:hover{border-color:#0000}.technician-mobile-heading{align-items:flex-start;gap:5px;min-width:0;display:grid}.technician-mobile-heading>strong{color:#172033;overflow-wrap:anywhere;font-size:16px;line-height:1.2}.technician-mobile-heading>small{border-radius:999px;justify-self:start;padding:3px 7px;font-size:10px;font-weight:760}.technician-mobile-heading>small.on-plan{color:#047857;background:#dcfce7}.technician-mobile-heading>small.behind{color:#a16207;background:#fef3c7}.technician-mobile-heading>small.excluded{color:#64748b;background:#eef2f7}.technician-mobile-toggle>svg{color:#64748b;margin-top:2px;transition:transform .15s}.technician-mobile-hours{gap:2px;display:grid}.technician-mobile-hours .current-hours-note,.technician-mobile-days .current-hours-note{justify-self:start;margin-top:2px}.technician-mobile-hours.align-right{text-align:right}.technician-mobile-hours small{color:#64748b;font-size:11px}.technician-mobile-hours strong{color:#172033;font-size:20px}.technician-progress{background:#e8edf4;border-radius:999px;grid-column:1/-1;height:5px;display:block;overflow:hidden}.technician-progress i{border-radius:inherit;background:#2563eb;height:100%;animation:.52s cubic-bezier(.16,1,.3,1) both progress-reveal;display:block}.technician-progress i.complete{background:#10b981}.technician-mobile-details{border-top:1px solid #e2e8f0;gap:14px;padding:13px;animation:.2s cubic-bezier(.16,1,.3,1) both details-enter;display:grid}.technician-mobile-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.technician-mobile-kpis>span{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;gap:4px;min-width:0;padding:10px;display:grid}.technician-mobile-kpis small,.technician-mobile-breakdown small,.technician-target-switch small,.technician-mobile-days small,.technician-mobile-absences small{color:#64748b;font-size:10px;line-height:1.25}.technician-mobile-kpis strong{font-size:16px}.technician-mobile-breakdown{border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;grid-template-columns:repeat(3,minmax(0,1fr));padding:10px 0;display:grid}.technician-mobile-breakdown span{text-align:center;gap:3px;min-width:0;display:grid}.technician-mobile-breakdown span+span{border-left:1px solid #e2e8f0}.technician-mobile-breakdown strong{font-size:15px}.technician-target-switch{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;justify-content:space-between;align-items:center;gap:12px;padding:10px;display:flex}.technician-target-switch>span{gap:2px;display:grid}.technician-target-switch input{flex:none;width:18px;height:18px}.technician-mobile-section-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.technician-mobile-section-heading>strong{color:#334155;text-transform:uppercase;font-size:12px}.technician-mobile-section-heading button{min-height:32px;padding:5px 9px}.technician-mobile-absences,.technician-mobile-days{gap:6px;display:grid}.technician-mobile-absences>div,.technician-mobile-days>div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;display:flex}.technician-mobile-absences span,.technician-mobile-days span{gap:2px;min-width:0;display:grid}.technician-mobile-absences strong{text-transform:capitalize}.technician-mobile-absences button{flex:none;justify-content:center;width:34px;min-height:32px;padding:5px}.technician-days-toggle{justify-content:center;width:100%;margin-top:2px}.technician-mobile-empty{color:#64748b;font-size:12px}.technician-mobile-absence-form{background:#f8fafc;border:1px solid #dbe3ef;border-radius:6px;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px;display:grid}.technician-mobile-absence-form>label:not(.checkbox-label){color:#52627a;text-transform:uppercase;gap:4px;font-size:10px;font-weight:760;display:grid}.technician-mobile-absence-form>label:nth-child(3),.technician-mobile-absence-form>.checkbox-label,.technician-mobile-absence-form>input,.technician-mobile-absence-form>button{grid-column:1/-1}.technician-mobile-absence-form>button{justify-content:center}.usage-panel-heading{grid-template-columns:minmax(0,1fr);width:100%;margin-bottom:8px}.usage-panel-heading .search-input{background:#fff;max-width:none}.usage-mobile-controls{grid-template-columns:minmax(0,1fr) 40px;gap:8px;margin-bottom:10px;display:grid}.usage-mobile-controls .icon-button{justify-content:center;width:40px;padding:8px}.filters,.admin-tools,.inline-actions,.mapping-bulk-form,.absence-form,.contract-term-form,.term-edit-grid{grid-template-columns:1fr;align-items:stretch;gap:8px;display:grid}.security-key-form,.account-security-grid{grid-template-columns:1fr}.security-method-panel{padding:14px}.security-setting-heading,.security-key-heading{flex-wrap:wrap;align-items:flex-start}.account-overview{grid-template-columns:42px minmax(0,1fr)}.account-security-status{flex-wrap:wrap;grid-column:1/-1;align-items:flex-start}.contract-list-summary{gap:10px;min-height:0;padding:12px}.contract-summary-main strong,.contract-summary-main span{white-space:normal}.contract-summary-meta{gap:5px}.contract-chip{font-size:11px}.contract-details-panel{grid-template-columns:1fr;padding:12px}.contract-active-toggle,.contract-details-actions{place-content:stretch;padding-bottom:0}.contract-details-actions{grid-template-columns:1fr;display:grid}.term-card-heading,.term-card-actions,.technician-person-summary,.technician-person-breakdown,.term-base-grid{grid-template-columns:1fr;justify-content:stretch;align-items:stretch;display:grid}.filters select,.search-input,.search-with-icon{width:100%;min-width:0}.table-scroll{-webkit-overflow-scrolling:touch;margin-left:-14px;margin-right:-14px;padding:0 14px;overflow-x:auto}.table-scroll table{min-width:760px}.table-scroll .admin-contracts-table,.table-scroll .projects-admin-table{min-width:1180px}.mobile-contract-cards{gap:10px;display:grid}.mobile-contract-card-summary,.mobile-contract-progress,.mobile-contract-card-grid.open{display:grid}.contract-usage-table{display:none}.public-layout,.workspace,.executive-grid,.breakdown-grid{grid-template-columns:1fr;display:grid}.public-layout .login-panel{order:-1;position:static}.login-shell{padding:14px}.login-panel{gap:9px;padding:22px}.mobile-login-slot .login-panel{padding:14px}.mobile-login-slot .login-panel h1{font-size:20px;line-height:1.15}.mobile-login-slot .login-panel p{overflow-wrap:anywhere;margin:-2px 0 2px;font-size:13px;line-height:1.35}.mobile-login-slot .login-panel input,.mobile-login-slot .login-panel button{min-height:34px}.drawer-backdrop{z-index:60}.details-drawer{box-shadow:none;border-radius:0;grid-template-rows:auto auto auto minmax(0,1fr);gap:14px;width:100vw;max-width:none;height:100vh;padding:18px 14px 28px}.drawer-header{gap:12px;display:grid}.drawer-header h2{font-size:19px}.drawer-header button{justify-self:start}.drawer-metrics{grid-template-columns:1fr 1fr}.drilldown-summary{grid-template-columns:1fr}.drawer-metrics .metric{padding:12px}.drawer-metrics .metric strong{font-size:20px}.drawer-money{line-height:1.4}.worklog-list{gap:8px}.worklog-item{background:#f8fafc;grid-template-columns:1fr;padding:11px}.worklog-item>div:last-of-type{border-top:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding-top:8px;display:flex}.worklog-item>div:last-of-type span{text-align:right;margin-top:0}.permission-grid{grid-template-columns:1fr}.checkbox-label{white-space:normal}}@media (width<=720px){.admin-tabs{grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow:visible}.admin-tabs button{justify-content:flex-start;align-items:center;width:100%;min-width:0;min-height:48px;padding-inline:10px}.admin-tabs button span{overflow-wrap:anywhere;text-align:left;white-space:normal;line-height:1.15}.admin-tabs button svg,.admin-tabs button small{flex:none}.access-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.access-summary strong,.access-summary span{overflow-wrap:anywhere;white-space:normal}.password-tooltip{width:min(260px,100vw - 48px);left:auto;right:0;transform:translateY(4px)}.password-tooltip:after{left:auto;right:5px;transform:none}.password-help:hover .password-tooltip,.password-help:focus .password-tooltip{transform:translateY(0)}.audit-filters{grid-template-columns:1fr}.audit-event-summary{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px 12px;padding:12px}.audit-action{grid-area:1/1}.audit-time{grid-area:1/2;padding-top:5px}.audit-entity{grid-area:2/1/auto/-1}.audit-actor{grid-area:3/1}.audit-ip{display:none}.audit-event-summary>svg{grid-area:3/2;align-self:center}.audit-event-details{padding:12px}.audit-change{grid-template-columns:1fr 18px 1fr}.audit-change>strong{grid-column:1/-1}}
