@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;700&display=swap";.role-login{--rl-ink:#18243b;--rl-green:#07533f;--rl-border:#dbe7ee;--rl-soft:#f1f8fc;min-height:100dvh;display:grid;grid-template-columns:minmax(350px,40%) minmax(0,60%);background:#eff7fb;color:var(--rl-ink);font-family:var(--font-body,"DM Sans",sans-serif)}.role-login *{box-sizing:border-box}.role-login button,.role-login input{font:inherit}.role-login button{cursor:pointer}.role-login button:focus-visible,.role-login a:focus-visible,.role-login input:focus-visible{outline:3px solid #369ed1;outline-offset:3px}.role-login-hero{min-height:100dvh;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(1.6rem,3vw,3.4rem);background:linear-gradient(180deg,#f1f9fde0,#f1f9fdc7 37%,#f1f9fd0a 66%,#024330c7),url(/login-civic-avenue.jpg) center 58%/cover no-repeat}.role-login-brand{display:flex;align-items:center;gap:.7rem;color:#12323b}.role-login-brand img{width:54px;height:54px}.role-login-brand strong{display:block;font-size:1.55rem;letter-spacing:-.04em;line-height:1}.role-login-brand small{display:block;font-size:.72rem;margin-top:.25rem}.role-login-message{max-width:34rem;padding-top:4.2rem;align-self:flex-start}.role-login-kicker{text-transform:uppercase;color:#0b7459;font-size:.72rem;font-weight:750;letter-spacing:.13em}.role-login-message h1{font-size:clamp(2.55rem,3.7vw,4.2rem);line-height:1.05;letter-spacing:-.055em;margin:.45rem 0 1rem;text-wrap:balance}.role-login-message h1 span{color:#086343}.role-login-message>p:not(.role-login-kicker){max-width:26rem;font-size:1rem;line-height:1.55;margin-bottom:1.4rem}.role-login-message ul{padding:0;margin:0;list-style:none;display:grid;gap:.7rem}.role-login-message li{display:flex;align-items:center;gap:.7rem}.role-login-message li>svg{background:#e3f8ed;color:#087553;border-radius:50%;padding:.47rem;width:2.25rem;height:2.25rem;flex:none}.role-login-message li strong,.role-login-message li small{display:block}.role-login-message li strong{font-size:.88rem}.role-login-message li small{font-size:.75rem;color:#4c6370;margin-top:.1rem}.role-login-quote{max-width:29rem;color:#fff;font-size:.94rem;line-height:1.45;font-weight:600;border-left:3px solid #9ee5c1;padding-left:1rem}.role-login-side{min-width:0;min-height:100dvh;display:flex;flex-direction:column;padding:1.2rem clamp(1rem,2.5vw,2.8rem);background:linear-gradient(135deg,#f4fbff,#edf6fb)}.role-login-top{display:flex;justify-content:flex-end;align-items:center;gap:1.5rem;font-size:.72rem;color:#607084;min-height:2.1rem}.role-language{display:flex;align-items:center;gap:.5rem;padding:.48rem .7rem;background:#fff;border:1px solid var(--rl-border);border-radius:8px;color:#26374c;font-weight:600}.role-login-card{width:min(100%,1040px);margin:auto;background:#fff;border:1px solid #dfebf1;border-radius:18px;box-shadow:0 12px 34px #2a536c1a;padding:clamp(1.25rem,2.25vw,2.4rem)}.role-login-heading{text-align:center;margin-bottom:1.4rem}.role-login-heading h2,.role-login-auth h2{font-size:clamp(1.6rem,2.25vw,2.45rem);letter-spacing:-.04em;margin:0 0 .25rem}.role-login-heading p,.role-login-auth>p{margin:0;color:#526680;font-size:.97rem;line-height:1.5}.role-login-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem}.role-choice{position:relative;text-align:left;min-height:10.3rem;display:flex;flex-direction:column;align-items:flex-start;padding:1rem;border:1px solid #d9e5ed;border-radius:9px;background:#fff;color:var(--rl-ink);transition:transform .18s,border-color .18s,box-shadow .18s}.role-choice:hover{transform:translateY(-2px);border-color:#6ab899;box-shadow:0 5px 15px #0a4e3f1a}.role-choice:active{transform:translateY(0)}.role-choice-icon{width:3.3rem;height:3.3rem;border-radius:50%;display:grid;place-items:center;background:#087d59;color:#fff;margin-bottom:.65rem}.role-choice--blue .role-choice-icon,.role-choice-icon--blue{background:#2d77d7}.role-choice--orange .role-choice-icon,.role-choice-icon--orange{background:#e58c20}.role-choice--purple .role-choice-icon,.role-choice-icon--purple{background:#8a59c7}.role-choice--red .role-choice-icon,.role-choice-icon--red{background:#df5864}.role-choice--teal .role-choice-icon,.role-choice-icon--teal{background:#0f8ca6}.role-choice--pink .role-choice-icon,.role-choice-icon--pink{background:#ca4e96}.role-choice--slate .role-choice-icon,.role-choice-icon--slate{background:#65738e}.role-choice strong{font-size:1rem;line-height:1.15}.role-choice small{font-size:.76rem;line-height:1.4;color:#536781;margin-top:.32rem;max-width:11rem}.role-choice-arrow{position:absolute;right:.65rem;bottom:.65rem;border-radius:50%;padding:.18rem;background:#e9f3fb;color:#25549a;width:1.55rem;height:1.55rem}.role-choice:first-child{border-color:#84c8ab;background:#f3fbf7}.role-login-field{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;margin-top:1rem;padding-top:.9rem;border-top:1px solid #e7eff4;font-size:.74rem;color:#65758c}.role-login-field>span{font-weight:700;text-transform:uppercase;letter-spacing:.07em;margin-right:.5rem}.role-login-field button{border:1px solid #dbe7ef;background:#f8fbfd;color:#183f43;border-radius:6px;min-height:2rem;padding:.3rem .55rem;display:inline-flex;align-items:center;gap:.3rem;font-size:.75rem}.role-login-field button:hover{background:#eaf5f0}.role-login-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;padding:.75rem .9rem;border-radius:8px;background:#edf7fb;font-size:.75rem}.role-login-foot span,.role-login-foot a{display:inline-flex;align-items:center;gap:.45rem}.role-login-foot span{font-weight:700;color:#225b4a}.role-login-foot a,.role-login-legal a{color:#153e83;text-decoration:none;font-weight:600}.role-login-foot a:hover,.role-login-legal a:hover{text-decoration:underline}.role-login-legal{display:flex;justify-content:space-between;gap:1rem;padding:.8rem 0 0;color:#63768a;font-size:.7rem}.role-login-auth{max-width:30rem;margin:0 auto;padding:1rem 0;min-height:33rem}.role-login-back{display:inline-flex;align-items:center;gap:.3rem;border:none;background:none;color:#365c73;padding:0;margin-bottom:2rem;font-size:.83rem}.role-login-auth .role-choice-icon{margin-bottom:1rem}.role-login-auth>p{margin-bottom:1.5rem}.role-login-auth form{display:grid;gap:.55rem}.role-login-auth label{font-size:.8rem;font-weight:700;color:#374963;margin-top:.3rem}.role-login-auth input{width:100%;height:3rem;padding:0 .8rem;border:1px solid #bfccd4;border-radius:7px;background:#fff;color:#223047;font-size:.9rem}.role-login-submit{height:3rem;display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:.85rem;background:#07553e;color:#fff;border:0;border-radius:7px;font-weight:700}.role-login-submit:hover{background:#064531}.role-login-submit:disabled{opacity:.65;cursor:wait}.role-login-demo,.role-login-citizen{display:flex;align-items:center;justify-content:center;width:100%;min-height:2.7rem;margin-top:.9rem;border:1px solid #92c8ad;border-radius:7px;background:#f3faf6;color:#09523c;font-weight:700;font-size:.78rem;text-decoration:none}.role-login-demo:hover,.role-login-citizen:hover{background:#e7f5ec}.role-login-auth .role-login-contact{font-size:.76rem;margin:1.2rem 0 0;color:#6c7d89}.role-login-error{display:flex;align-items:center;gap:.45rem;background:#fff3f2;border:1px solid #f0b7b3;color:#9c2f29;border-radius:7px;padding:.75rem;margin-bottom:.8rem;font-size:.8rem}@media (max-width:1180px){.role-login{grid-template-columns:35% 65%}.role-login-hero{padding:1.4rem}.role-login-message h1{font-size:2.4rem}.role-login-card{padding:1.15rem}.role-choice{min-height:9.4rem;padding:.75rem}.role-choice small{font-size:.7rem}}@media (max-width:850px){.role-login{display:block}.role-login-hero{min-height:22rem;padding:1.4rem;background-position:center 66%}.role-login-message{padding:1rem 0}.role-login-message h1{font-size:2.6rem}.role-login-message ul,.role-login-quote{display:none}.role-login-side{min-height:0;padding:1rem}.role-login-top{margin-bottom:.7rem}.role-login-card{margin:0 auto}.role-login-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.role-choice{min-height:9rem}.role-login-legal{padding-bottom:.6rem}}@media (max-width:490px){.role-login-hero{min-height:18rem}.role-login-brand strong{font-size:1.25rem}.role-login-message h1{font-size:2.15rem}.role-login-message>p:not(.role-login-kicker){font-size:.83rem}.role-login-grid{gap:.5rem}.role-choice{min-height:8.8rem;padding:.65rem}.role-choice-icon{width:2.7rem;height:2.7rem}.role-choice-icon svg{width:1.3rem}.role-choice strong{font-size:.86rem}.role-choice small{font-size:.66rem}.role-login-foot,.role-login-legal{flex-direction:column;align-items:flex-start}}@media (max-width:490px){.role-login-hero{min-height:17rem;background-image:linear-gradient(180deg,#f6fbfdf7,#f6fbfded 52%,#f6fbfdb8),url(/login-civic-avenue.jpg)}.role-login-message{padding:.55rem 0 0}.role-login-message h1{font-size:2rem;margin:.3rem 0 .5rem}.role-login-message>p:not(.role-login-kicker){font-size:.9rem;line-height:1.4;margin:0;max-width:19rem}.role-login-side{padding:.8rem}.role-login-top{justify-content:space-between;gap:.6rem;font-size:.7rem}.role-login-card{padding:1rem;border-radius:13px}.role-login-heading{margin-bottom:1rem}.role-login-heading h2{font-size:1.35rem}.role-login-heading p{font-size:.89rem}.role-login-grid{grid-template-columns:minmax(0,1fr);gap:.55rem}.role-choice{min-height:5.4rem;padding:.7rem .8rem;display:grid;grid-template-columns:2.75rem minmax(0,1fr) 1.65rem;grid-template-rows:auto auto;column-gap:.7rem;align-content:center;align-items:center}.role-choice-icon{grid-column:1;grid-row:1/3;width:2.75rem;height:2.75rem;margin:0}.role-choice strong{grid-column:2;grid-row:1;font-size:.95rem;line-height:1.2}.role-choice small{grid-column:2;grid-row:2;font-size:.79rem;line-height:1.3;margin-top:.1rem;max-width:none}.role-choice-arrow{grid-column:3;grid-row:1/3;position:static;width:1.6rem;height:1.6rem}.role-login-field{align-items:stretch}.role-login-field>span{width:100%;margin:0 0 .2rem}.role-login-field button{min-height:2.6rem;font-size:.78rem}.role-login-foot{gap:.5rem;font-size:.76rem}.role-login-foot a{min-height:2.4rem}.role-login-auth{min-height:0;padding:.25rem 0}.role-login-back{min-height:2.5rem;margin-bottom:1rem}.role-login-auth h2{font-size:1.55rem}.role-login-auth>p{font-size:.85rem}.role-login-auth input,.role-login-submit{min-height:3.1rem;font-size:1rem}}@media (prefers-reduced-motion:reduce){.role-choice{transition:none}.role-choice:hover{transform:none}}.role-login-auth select{width:100%;height:3rem;padding:0 .8rem;border:1px solid #bfccd4;border-radius:7px;background:#fff;color:#223047;font-size:.9rem}.role-login-single-account{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;min-height:3rem;padding:.65rem .8rem;border:1px solid #c9e3d6;border-radius:7px;background:#f2faf5;color:#183f43;font-size:.88rem}.role-login-single-account strong{font-weight:750}.role-login-single-account span{color:#65758c;font-size:.76rem}.role-login-demo{min-height:3rem;border-color:#0d7355;background:#eaf7ef;color:#07533f;font-size:.9rem}.role-login-demo:disabled{opacity:.6;cursor:wait}@media (min-width:851px){.role-login-message ul{background:#f6fcfde6;border:1px solid rgba(174,208,211,.65);border-radius:14px;padding:.85rem 1rem;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.role-login-message li strong{color:#173a3e}.role-login-message li small{color:#42616b}}:root{--color-primary: #0F0F32;--color-primary-dark: #08081F;--color-primary-light: #E7E8F8;--color-secondary: #5B7CFA;--color-secondary-dark: #334FCC;--color-secondary-light: #E8EDFF;--color-accent: #36C5B4;--color-accent-dark: #128579;--color-accent-light: #DDF9F5;--color-success: #16a34a;--color-warning: #f59e0b;--color-danger: #e24a4a;--color-info: #5B7CFA;--color-gray-50: #f8fafc;--color-gray-100: #eef4f8;--color-gray-200: #dbe5ec;--color-gray-300: #b9c8d4;--color-gray-400: #8da1b1;--color-gray-500: #65798a;--color-gray-600: #485b6b;--color-gray-700: #2d3d4d;--color-gray-800: #172637;--color-gray-900: #0F0F32;--color-bg: #F3F6FA;--color-bg-elevated: rgba(255, 255, 255, .94);--color-surface-soft: rgba(247, 251, 249, .92);--color-text-primary: #11142D;--color-text-secondary: #52677a;--color-text-muted: #91a2b2;--color-border: rgba(151, 171, 187, .42);--color-border-light: rgba(201, 216, 226, .62);--shadow-sm: 0 10px 30px rgba(15, 35, 52, .08);--shadow-md: 0 18px 46px rgba(15, 35, 52, .13);--shadow-lg: 0 28px 70px rgba(15, 35, 52, .18);--shadow-xl: 0 34px 92px rgba(15, 35, 52, .28);--font-display: "DM Sans", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--font-body: "DM Sans", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, monospace;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--transition-fast: .15s ease;--transition-base: .22s ease;--transition-slow: .34s ease}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh;font-family:var(--font-body);color:var(--color-text-primary);line-height:1.6;overflow-x:hidden;background:linear-gradient(115deg,rgba(15,15,50,.08),transparent 34%),linear-gradient(250deg,rgba(91,124,250,.12),transparent 31%),linear-gradient(180deg,#f3f6fa,#f8fafc)}body::selection{color:#fff;background:var(--color-primary)}button,input,select,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent}*{scrollbar-width:none;-ms-overflow-style:none}*::-webkit-scrollbar{width:0;height:0;display:none}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:900;line-height:1.12;letter-spacing:0;color:var(--color-text-primary)}h1{font-size:2.35rem}h2{font-size:1.8rem}h3{font-size:1.35rem}h4{font-size:1.08rem}h5{font-size:1rem}h6{font-size:.925rem}p{margin-bottom:var(--spacing-md)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.6rem;padding:.68rem 1.05rem;color:var(--color-text-primary);font-size:.875rem;font-weight:800;line-height:1.2;text-decoration:none;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);white-space:nowrap}.btn:disabled{opacity:.52;cursor:not-allowed;transform:none}.btn-primary{color:#fff;background:linear-gradient(135deg,#222456,#0f0f32 58%,#08081f);box-shadow:0 16px 34px #0f0f323d}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 22px 46px #0f0f3252}.btn-secondary{color:#fff;background:linear-gradient(135deg,#7e96ff,#5b7cfa 58%,#334fcc);box-shadow:0 16px 34px #5b7cfa33}.btn-secondary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 22px 46px #5b7cfa47}.btn-outline{color:var(--color-text-primary);background:#ffffffc2;border-color:var(--color-border);box-shadow:inset 0 1px #fffc}.btn-outline:hover:not(:disabled),.btn-ghost:hover:not(:disabled){color:var(--color-primary);background:#fff;border-color:#5b7cfa73;box-shadow:var(--shadow-sm)}.btn-ghost{color:var(--color-text-secondary);background:transparent}.btn-sm{min-height:2rem;padding:.4rem .75rem;font-size:.8rem}.btn-lg{min-height:3.05rem;padding:.9rem 1.4rem;font-size:.96rem}.card,.chart-card,.complaints-section,.filters-section,.map-section,.vehicles-table-container,.rp-content,.rp-filters,.active-route-section{position:relative;overflow:hidden;background:linear-gradient(180deg,#fffffff7,#f6fbf9e6),var(--color-bg-elevated);border:1px solid rgba(255,255,255,.7);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm),inset 0 1px #ffffffdb;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.card:before,.chart-card:before,.complaints-section:before,.filters-section:before,.map-section:before,.vehicles-table-container:before,.rp-content:before,.rp-filters:before,.active-route-section:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--color-secondary),var(--color-accent),var(--color-primary));opacity:.85}.card:hover,.chart-card:hover,.vehicles-table-container:hover{box-shadow:var(--shadow-md),inset 0 1px #ffffffdb}.card-header,.section-header,.modal-header,.detail-panel-header,.side-panel-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--color-border-light)}.card-body{padding:var(--spacing-lg)}.card-footer{padding:var(--spacing-lg);background:#f2f8f6c7;border-top:1px solid var(--color-border-light)}.form-group{margin-bottom:var(--spacing-lg)}.form-label,.rp-filter-label{display:block;margin-bottom:.45rem;color:#314a46;font-size:.76rem;font-weight:900;letter-spacing:.055em;text-transform:uppercase}.form-input,.form-select,.form-textarea,.search-input,.rp-date-input,.vehicles-search-bar input,.search-box input{width:100%;min-height:2.85rem;padding:.7rem .95rem;color:var(--color-text-primary);font-size:.92rem;background:#ffffffdb;border:1px solid rgba(159,184,179,.5);border-radius:var(--radius-md);box-shadow:inset 0 1px #ffffffb8;transition:box-shadow var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast)}.form-input:focus,.form-select:focus,.form-textarea:focus,.search-input:focus,.rp-date-input:focus,.vehicles-search-bar input:focus,.search-box input:focus{outline:none;background:#fff;border-color:#0aa79db3;box-shadow:0 0 0 4px #0aa79d29,inset 0 1px #fffffff2}.form-textarea{min-height:104px;resize:vertical}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .72rem;font-size:.7rem;font-weight:900;line-height:1;border:1px solid transparent;border-radius:999px;letter-spacing:.045em;text-transform:uppercase}.badge-pending,.badge-open{color:#8a4a05;background:#fff4d8;border-color:#f8d68a}.badge-waiting_verification,.badge-in-progress{color:#2456b7;background:#e8f0ff;border-color:#c6dbff}.badge-closed{color:#475569;background:#f1f5f9;border-color:#e2e8f0}.badge-assigned,.badge-low{color:#0b5f99;background:#dcf5ff;border-color:#b5e8ff}.badge-resolved,.badge-success,.badge-active{color:#08734b;background:#dbfbeb;border-color:#aef0cf}.badge-rejected,.badge-high,.badge-danger,.badge-inactive{color:#b42323;background:#ffe6e6;border-color:#ffc5c5}.badge-medium,.badge-warning,.badge-unassigned{color:#a84a0b;background:#fff0e5;border-color:#ffd2b6}.stat-card,.admin-stat-card,.stat-card-gov,.driver-stat-card{position:relative;overflow:hidden;background:linear-gradient(145deg,#fffffffa,#eff9f6e0),var(--color-bg-elevated);border:1px solid rgba(255,255,255,.78);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm),inset 0 1px #ffffffe6;transition:transform var(--transition-fast),box-shadow var(--transition-fast),border-color var(--transition-fast)}.stat-card:hover,.admin-stat-card:hover,.stat-card-gov:hover,.driver-stat-card:hover{transform:translateY(-3px);border-color:#0aa79d47;box-shadow:var(--shadow-md),inset 0 1px #ffffffe6}.stat-card:before,.admin-stat-card:before,.stat-card-gov:before,.driver-stat-card:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:linear-gradient(180deg,var(--color-secondary),var(--color-primary))}.stat-card:after,.admin-stat-card:after,.stat-card-gov:after,.driver-stat-card:after{content:"";position:absolute;inset:0 0 auto auto;width:140px;height:140px;background:linear-gradient(135deg,#0f0f321a,#36c5b41a);clip-path:polygon(34% 0,100% 0,100% 66%,64% 100%,0 74%,0 28%);pointer-events:none}.stat-value,.admin-stat-value{color:var(--color-text-primary);font-family:var(--font-mono);font-size:2.15rem;font-weight:900;line-height:1;margin-bottom:.4rem}.stat-label,.admin-stat-label{color:var(--color-text-secondary);font-size:.74rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.data-table,.complaints-table,.vehicles-table,.rp-table{width:100%;border-collapse:separate;border-spacing:0;color:var(--color-text-primary)}.data-table thead th,.complaints-table thead th,.vehicles-table thead th,.rp-table thead th{position:sticky;top:0;z-index:1;padding:.9rem 1rem;color:#3f5652;font-size:.72rem;font-weight:900;letter-spacing:.065em;text-align:left;text-transform:uppercase;background:linear-gradient(180deg,#f4faf8fa,#ebf4f1f0);border-bottom:1px solid var(--color-border-light)}.data-table tbody td,.complaints-table tbody td,.vehicles-table tbody td,.rp-table tbody td{padding:.95rem 1rem;border-bottom:1px solid rgba(209,224,219,.62);vertical-align:middle}.data-table tbody tr,.complaints-table tbody tr,.vehicles-table tbody tr,.rp-table tbody tr{transition:background var(--transition-fast),transform var(--transition-fast)}.data-table tbody tr:hover,.complaints-table tbody tr:hover,.vehicles-table tbody tr:hover,.rp-table tbody tr:hover,.complaints-table tbody tr.selected{background:#0aa79d12}.tab-bar,.tab-buttons,.rp-tabs{display:flex;gap:.4rem;padding:.42rem;background:#ffffffb8;border:1px solid rgba(255,255,255,.78);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);overflow-x:auto}.tab-button,.rp-tab{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:2.4rem;padding:.58rem 1rem;color:var(--color-text-secondary);font-size:.86rem;font-weight:900;white-space:nowrap;background:transparent;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}.tab-button:hover,.rp-tab:hover{color:var(--color-text-primary);background:#0aa79d14}.tab-button.active,.rp-tab.active{color:#fff;background:linear-gradient(135deg,var(--color-secondary-dark),var(--color-secondary));box-shadow:0 14px 28px #0aa79d38}.modal-overlay,.assign-modal{-webkit-backdrop-filter:blur(18px) saturate(1.05);backdrop-filter:blur(18px) saturate(1.05);background:linear-gradient(135deg,#081716c2,#1129269e),#08171694}.modal,.modal-content,.assign-modal-content,.detail-panel,.side-panel{background:linear-gradient(180deg,#fffffffa,#f6fbf9f5),#fff;border:1px solid rgba(255,255,255,.76);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl)}.btn-icon,.header-icon-btn,.modal-close,.modal-close-btn,.side-panel-close,.btn-action{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast)}.btn-icon:hover,.header-icon-btn:hover,.modal-close:hover,.modal-close-btn:hover,.side-panel-close:hover,.btn-action:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.loading-state,.rp-loading-state,.empty-state,.rp-empty-state,.rp-error-state{color:var(--color-text-secondary)}.map-section,.leaflet-container{border-radius:var(--radius-xl)}.leaflet-container{overflow:hidden;font-family:var(--font-body);border:1px solid rgba(255,255,255,.8);box-shadow:inset 0 1px #ffffffc2}.leaflet-control-zoom a{color:var(--color-text-primary)!important;border:0!important}.leaflet-popup-content-wrapper{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid rgba(255,255,255,.82)}.leaflet-popup-tip{box-shadow:var(--shadow-sm)}.complaint-pin{filter:drop-shadow(0 10px 16px rgba(8,23,22,.32))}.complaint-popup-card{min-width:230px}.complaint-proof{width:100%;height:150px;object-fit:cover;overflow:hidden;border-radius:var(--radius-md);border:1px solid var(--color-border-light)}.complaint-proof-empty{display:grid;place-items:center;min-height:126px;color:var(--color-text-tertiary);border:1px dashed var(--color-border);border-radius:var(--radius-md);background:#f5f8fcd1;font-weight:700}.evidence-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem}.evidence-card{display:grid;gap:.45rem;color:inherit;text-decoration:none}.evidence-card img{width:100%;aspect-ratio:16 / 10;object-fit:cover;border:1px solid var(--color-border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background:var(--color-surface-muted)}.evidence-card span{font-size:.78rem;color:var(--color-text-secondary);font-weight:700}.zone-map-legend{background:#ffffffe6!important;border:1px solid rgba(255,255,255,.8)!important;border-radius:var(--radius-lg)!important;box-shadow:var(--shadow-md)!important;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.route-hero,.admin-hero,.driver-hero,.gov-hero{background:linear-gradient(135deg,#0f2033f5,#17384ee6),linear-gradient(90deg,#0f0f3229,#36c5b424);border:1px solid rgba(255,255,255,.16);border-radius:var(--radius-xl);box-shadow:0 26px 70px #08171647}.font-mono{font-family:var(--font-mono)}.font-display{font-family:var(--font-display)}.text-primary{color:var(--color-primary)}.text-secondary{color:var(--color-secondary)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-danger{color:var(--color-danger)}.text-muted{color:var(--color-text-muted)}.bg-primary{background:var(--color-primary)}.bg-secondary{background:var(--color-secondary)}.bg-success{background:var(--color-success)}.bg-warning{background:var(--color-warning)}.bg-danger{background:var(--color-danger)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{to{transform:rotate(360deg)}}.animate-fade-in{animation:fadeIn var(--transition-base) ease-out}.animate-slide-in{animation:slideInRight var(--transition-slow) ease-out}@media (max-width: 900px){h1{font-size:1.8rem}h2{font-size:1.45rem}h3{font-size:1.15rem}.stat-value,.admin-stat-value{font-size:1.5rem}.btn{min-height:2.35rem}.data-table thead th,.complaints-table thead th,.vehicles-table thead th,.rp-table thead th,.data-table tbody td,.complaints-table tbody td,.vehicles-table tbody td,.rp-table tbody td{padding:.75rem}}@media (max-width: 640px){html{font-size:15px}body{background:linear-gradient(180deg,#eef5f8,#f8fafc)}h1{font-size:1.55rem}h2{font-size:1.28rem}h3{font-size:1.05rem}.btn,.btn-lg,.btn-sm{width:100%;min-height:2.65rem;padding:.7rem .9rem;white-space:normal}.card,.chart-card,.complaints-section,.filters-section,.map-section,.vehicles-table-container,.rp-content,.rp-filters,.active-route-section{border-radius:16px;padding:1rem}.stats-grid,.admin-stats-grid,.metrics-grid,.dashboard-grid,.reports-grid,.vehicles-grid,.filters-grid,.form-grid,.route-grid,.charts-grid,.summary-grid{grid-template-columns:1fr!important;gap:.85rem!important}.stat-card,.admin-stat-card,.metric-card{min-height:auto;padding:1rem;border-radius:16px}.stat-value,.admin-stat-value{font-size:1.65rem}.map-container,.leaflet-container{min-height:320px;border-radius:14px}.map-section .leaflet-container,.complaint-map,.driver-map{height:min(58vh,430px)!important}.data-table,.complaints-table,.vehicles-table,.rp-table{min-width:720px}.data-table-container,.complaints-table-container,.vehicles-table-container,.rp-table-wrap,.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}.modal,.modal-content,.form-modal,.vehicle-modal{width:min(100%,calc(100vw - 1rem));max-height:86svh;border-radius:20px}}:root{--color-primary: #153d38;--color-primary-dark: #0e2c28;--color-primary-light: #e8f1ee;--color-secondary: #24675b;--color-secondary-dark: #17483f;--color-secondary-light: #e8f1ee;--color-accent: #a56c20;--color-accent-dark: #79501c;--color-accent-light: #faf2e4;--color-info: #28618a;--color-bg: #f5f9fc;--color-bg-elevated: #fff;--color-surface-soft: #f8f9f7;--color-text-primary: #202e2a;--color-text-secondary: #56635d;--color-text-muted: #65736c;--color-border: #dce7ec;--color-border-light: #ebf0f3;--shadow-sm: 0 1px 2px #203c2810;--shadow-md: 0 4px 14px #203c2812;--shadow-lg: 0 16px 48px #14282020;--radius-lg: 8px;--radius-xl: 10px;--font-body: "DM Sans", "Segoe UI", sans-serif;--font-display: var(--font-body)}body{background:var(--color-bg)}*{scrollbar-width:thin;scrollbar-color:#a9b5ac transparent}*::-webkit-scrollbar{display:block;width:8px;height:8px}*::-webkit-scrollbar-thumb{background:#a9b5ac;border-radius:4px}#root{font-size:1rem}#root h1,#root h2,#root h3,#root h4{font-weight:700;letter-spacing:-.025em}#root h1{font-size:clamp(1.5rem,2.2vw,2rem);line-height:1.2}#root h2{font-size:1.35rem}#root h3{font-size:1.05rem}#root :is(button,a,input,select,textarea,summary):focus-visible{outline:3px solid #a56c20;outline-offset:3px}#root .skip-link{position:fixed;top:-100px;left:16px;z-index:2000;padding:12px 20px;background:#fff;color:#153d38}#root .skip-link:focus{top:12px}#root .dashboard-shell{display:grid;grid-template-columns:232px minmax(0,1fr);background:var(--color-bg);min-height:100dvh}#root .dashboard-shell:before,#root .dashboard-sidebar:before{display:none}#root .dashboard-sidebar{position:sticky;top:0;align-self:start;width:232px;height:100dvh;min-height:0;margin:0;padding:20px 12px 16px;display:flex;flex-direction:column;gap:0;border:0;border-right:1px solid #13554c;border-radius:0;background:#063d36;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;overflow-y:auto}#root .dashboard-logo{order:0;margin:0 0 20px;padding:0 6px 20px;gap:10px;border-bottom:1px solid #2c665a}#root .dashboard-logo-icon{width:40px;height:40px;border-radius:8px;background:#13705d;box-shadow:none}#root .dashboard-logo-text h3{font-size:1.1rem;letter-spacing:-.035em}#root .dashboard-logo-text p{font-size:.61rem;color:#bddacf;letter-spacing:.035em;text-transform:none}#root .sidebar-nav{order:1;display:block;flex:1!important;width:100%;margin:0 0 24px;padding:0;background:transparent;border:0;border-radius:0;overflow:visible}#root .sidebar-nav-label{display:block;padding:0 10px;color:#b5d5ca;font-size:.69rem;margin-bottom:10px;letter-spacing:.09em}#root .nav-item{width:100%;min-height:44px;padding:10px 11px;margin:0 0 3px;gap:11px;border-radius:5px;color:#e3f1e9;font-size:.88rem;font-weight:500;transform:none}#root .nav-item:hover{background:#14574c;color:#fff;transform:none}#root .nav-item.active{background:#147361;color:#fff;border-color:transparent;box-shadow:inset 3px 0 #d6f7e6;font-weight:700}#root .nav-item.active .nav-icon{color:#fff}#root .dashboard-user-card{order:2;flex:none!important;margin:auto 0 10px;padding:14px 8px;background:transparent;border:0;border-top:1px solid #36564a;border-radius:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}#root .dashboard-user-info{margin-bottom:8px}#root .dashboard-user-avatar{width:32px;height:32px;flex-shrink:0;border-radius:50%;background:#277867;font-size:.8rem}#root .dashboard-user-details h4{max-width:144px;font-size:.9rem}#root .dashboard-user-details p{max-width:144px;font-size:.78rem}#root .dashboard-user-badge{background:#1d695a!important;box-shadow:none;border-radius:3px;font-size:.6rem;color:#dce9df}#root .logout-btn{order:3;flex:none!important;width:100%;margin:0;min-height:42px;padding:10px;background:transparent;box-shadow:none;border:1px solid #456354;border-radius:5px;color:#dce9df;font-weight:500}#root .logout-btn:hover{background:#274e41}#root .dashboard-main{min-height:100dvh}#root .dashboard-header{position:relative;top:auto;margin:0;padding:13px 28px;min-height:68px;background:#fff;border:0;border-bottom:1px solid var(--color-border);border-radius:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;color:var(--color-text-primary);gap:22px}#root .dashboard-header-left{flex:0 1 auto;min-width:150px}#root .dashboard-header-left h1{color:var(--color-text-primary);font-size:1.22rem;margin-bottom:1px;line-height:1.2}#root .dashboard-header-left p{color:var(--color-text-secondary);font-size:.72rem}#root .dashboard-section-search{position:relative;flex:0 1 420px;margin-left:auto;display:flex;align-items:center;gap:9px;min-width:160px;padding:0 13px;height:42px;background:#f7fbfe;color:#587388;border:1px solid #dce8f0;border-radius:6px}#root .dashboard-section-search:focus-within{border-color:#448776;box-shadow:0 0 0 3px #bee9d862}#root .dashboard-section-search input{width:100%;min-width:0;height:100%;border:0;outline:0;background:transparent;color:#203b37;font:inherit;font-size:.88rem}#root .dashboard-section-search input:focus-visible{outline:0}#root .dashboard-section-results{position:absolute;z-index:100;left:0;right:0;top:calc(100% + 5px);max-height:300px;overflow-y:auto;padding:5px;background:#fff;border:1px solid #dce8f0;border-radius:7px;box-shadow:0 12px 30px #0d473322}#root .dashboard-section-results button{display:flex;align-items:center;gap:9px;width:100%;min-height:40px;padding:7px 10px;border:0;border-radius:4px;background:#fff;color:#203b37;text-align:left;cursor:pointer}#root .dashboard-section-results button:hover,#root .dashboard-section-results button:focus-visible{background:#eaf6f2}#root .dashboard-section-results p{margin:0;padding:10px;color:#51665f;font-size:.82rem}#root .header-icon-btn{width:40px;height:40px;background:#fff;color:#3f5548;border:1px solid var(--color-border);border-radius:6px;box-shadow:none}#root .header-icon-btn:hover{background:#edf3e9;color:#183b33}#root .header-account-btn{display:flex;align-items:center;justify-content:flex-start;gap:9px;width:auto;min-width:150px;max-width:240px;padding:5px 10px 5px 6px;border-color:transparent}#root .header-profile-thumb{display:flex;align-items:center;justify-content:center;width:33px;height:33px;flex:0 0 33px;border-radius:50%;overflow:hidden}#root .header-profile-initial{color:#fff;background:#6684a4;font-size:.78rem;font-weight:700}#root .header-account-copy{display:grid;min-width:0;line-height:1.2;text-align:left}#root .header-account-copy strong,#root .header-account-copy small{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#root .header-account-copy strong{font-size:.77rem;color:#203b37}#root .header-account-copy small{font-size:.68rem;color:#6d7e79}#root .dashboard-content{width:100%;max-width:1660px;margin:0 auto;padding:22px 28px 48px;min-width:0}#root :is(.card,.chart-card,.complaints-section,.filters-section,.map-section,.vehicles-table-container,.rp-content,.rp-filters,.active-route-section){background:#fff;border:1px solid var(--color-border);border-radius:8px;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}#root :is(.card,.chart-card,.complaints-section,.filters-section,.map-section,.vehicles-table-container,.rp-content,.rp-filters,.active-route-section):before{display:none}#root :is(.card,.complaints-section,.vehicles-table-container,.rp-content){overflow-x:auto}#root :is(.card,.chart-card):hover{box-shadow:none}#root :is(.btn,.tab-button,.rp-tab,.quick-login-btn){font-weight:600;border-radius:5px;box-shadow:none;transform:none;min-height:44px;font-size:.95rem}#root .btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}#root .btn-primary:hover:not(:disabled){background:var(--color-primary-dark);box-shadow:none;transform:none}#root :is(.btn-secondary,.btn-outline){background:#fff;border-color:#a6b4ab;color:var(--color-primary)}#root :is(.btn-secondary,.btn-outline):hover:not(:disabled){background:#e8f1ee;box-shadow:none;transform:none}#root button:active:not(:disabled){filter:brightness(.94)}#root button:disabled{cursor:not-allowed;opacity:.55}#root :is(.btn-icon,.modal-close,.side-panel-close,.btn-action){min-width:36px;min-height:36px;border-radius:5px;box-shadow:none}#root :is(.form-input,.form-select,.form-textarea,.search-input,.rp-date-input){border:1px solid #9dac9f;border-radius:5px;background:#fff;color:#202e2a;box-shadow:none;min-height:44px;font-weight:400}#root .form-label{color:#36483d;font-size:.9rem;font-weight:600;text-transform:none;letter-spacing:0}#root :is(.tab-bar,.tab-buttons,.rp-tabs){display:flex;gap:4px;padding:0;margin-bottom:24px;background:transparent;border:0;border-bottom:1px solid var(--color-border);border-radius:0;box-shadow:none;overflow-x:auto}#root :is(.tab-button,.rp-tab){padding:12px 16px;background:transparent;color:#56635d;border:0;border-bottom:3px solid transparent;border-radius:0;white-space:nowrap}#root :is(.tab-button.active,.rp-tab.active){background:transparent;color:#153d38;border-bottom-color:#24675b;box-shadow:none}#root :is(.tab-button,.rp-tab):hover{background:#e8ede6}#root :is(.admin-stats-grid,.stats-grid){grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}#root :is(.stat-card,.admin-stat-card,.stat-card-gov,.driver-stat-card){background:#fff;color:#202e2a;border:1px solid var(--color-border);border-radius:8px;padding:20px;box-shadow:none;transform:none}#root :is(.stat-card,.admin-stat-card,.stat-card-gov,.driver-stat-card):before,#root :is(.stat-card,.admin-stat-card,.stat-card-gov,.driver-stat-card):after{display:none}#root :is(.stat-icon,.admin-stat-icon){background:#eef2eb;color:#24675b;width:36px;height:36px;border-radius:6px;margin-bottom:16px;box-shadow:none}#root .warning .admin-stat-icon{background:#fbf1df;color:#8a541b}#root .success .admin-stat-icon{background:#e8f1ee;color:#24675b}#root :is(.stat-value,.admin-stat-value){font-size:2rem;font-family:var(--font-body);font-variant-numeric:tabular-nums;font-weight:700;color:#202e2a}#root :is(.stat-label,.admin-stat-label){font-size:.78rem;letter-spacing:0;text-transform:none;color:#56635d;font-weight:500;opacity:1}#root .charts-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:20px;margin-bottom:24px}#root .chart-card{min-width:0;padding:22px}#root :is(.data-table,.complaints-table,.vehicles-table,.rp-table){border:0;border-radius:0;font-size:.82rem;font-variant-numeric:tabular-nums}#root :is(.data-table,.complaints-table,.vehicles-table,.rp-table) th{background:#f3f5f0;color:#4c5f51;padding:12px 16px;font-size:.7rem;font-weight:600;letter-spacing:.035em;border-bottom:1px solid var(--color-border)}#root :is(.data-table,.complaints-table,.vehicles-table,.rp-table) td{padding:13px 16px;border-bottom:1px solid #e8ece5}#root :is(.data-table,.complaints-table,.vehicles-table,.rp-table) tbody tr:hover{background:#f7f9f4}#root .badge{border-radius:4px;letter-spacing:0;font-weight:600;box-shadow:none}#root .register-summary{color:#56635d;font-size:.78rem;margin:4px 0 16px}#root .register-table-scroll{width:100%;overflow-x:auto}#root .register-table{min-width:1080px}#root .register-table td{vertical-align:top}#root .register-table td:first-child{white-space:nowrap;font-size:.76rem;font-weight:600}#root .register-issue-meta{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:230px}#root .register-issue-meta span{border-radius:3px!important;font-size:.7rem!important}#root .register-table td:nth-child(3){min-width:170px}#root .filter-row{gap:16px;flex-wrap:wrap}#root .filter-group{display:flex;flex-direction:column;align-items:stretch;min-width:150px;gap:6px}#root .filter-group label{font-size:.78rem;font-weight:600}#root .filter-group select{min-height:42px;border:1px solid #9dac9f;border-radius:5px}#root :is(.modal,.modal-content,.assign-modal-content,.detail-panel,.side-panel,.shell-panel){background:#fff;border-radius:8px;box-shadow:var(--shadow-lg);-webkit-backdrop-filter:none;backdrop-filter:none}#root .side-panel{max-width:100vw}#root .side-panel :is(.side-panel-header,.side-panel-content,.detail-field,.detail-value){min-width:0;overflow-wrap:anywhere}#root .side-panel .complaint-zone-actions{flex-wrap:wrap}#root .side-panel .complaint-zone-actions select{flex:1 1 170px!important;min-width:0}#root .side-panel .complaint-zone-actions button{flex:0 0 auto;min-height:44px}#root .side-panel .complaint-zone-error{margin:8px 0 0;color:#8c2720;font-size:.9rem;line-height:1.4}#root .detail-panel{box-sizing:border-box;max-width:100vw;overflow-wrap:anywhere}#root .detail-panel .government-zone-actions{flex-wrap:wrap}#root .detail-panel .government-zone-actions select{flex:1 1 170px!important;min-width:0;min-height:44px}#root .detail-panel .government-zone-actions button{min-height:44px}#root .government-zone-error{margin:8px 0 0;color:#8c2720;font-size:.9rem;line-height:1.4}#root .government-rejection-actions{flex-wrap:wrap;min-width:0}#root .government-rejection-actions textarea{flex:1 1 210px!important;min-width:0}#root .government-rejection-actions button{min-height:44px}@media (max-width: 600px){#root .mobile-complaint-table tr.verification-remarks-row{margin-top:-14px;border-top:0}#root .mobile-complaint-table tr.verification-remarks-row td:first-child{display:block;border-bottom:0;font-size:.9rem;font-weight:400}#root .mobile-complaint-table tr.verification-remarks-row .government-rejection-actions{width:100%;box-sizing:border-box}#root .mobile-complaint-table tr.verification-remarks-row td:before{content:none}}#root .assign-modal-content{box-sizing:border-box;max-width:calc(100vw - 16px);overflow-wrap:anywhere}#root button.contractor-card{display:block;width:100%;background:#fff;color:inherit;text-align:left;font:inherit}#root button.contractor-card:hover{background:#edf3e9}#root button.contractor-card:disabled{opacity:.65;cursor:wait}#root .government-escalation-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:16px}#root .government-escalation-actions button{flex:1 1 140px;white-space:normal}#root .assign-modal-content #escalation-reason{display:block;width:100%;margin-top:6px}#root .rp-export-notice{margin:0;padding:10px 20px;background:#fff8e8;color:#6d521d;border-inline:1px solid var(--color-border);font-size:.9rem}#root .modal .form-actions{flex-wrap:wrap}#root .modal .form-actions button{flex:1 1 140px;min-width:0;white-space:normal}#root .zone-boundary-actions{flex-wrap:wrap;min-width:0}#root .zone-boundary-actions button{min-height:44px;white-space:normal}#root .map-no-location{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:230px;padding:24px;border:1px dashed #a6b7ad;border-radius:8px;background:#f7faf6;color:#315344;text-align:center}#root .map-no-location p{max-width:46ch;margin:0;color:#52665a;line-height:1.5}#root .government-map-section{height:auto;padding:0}#root .government-map-section h3{flex-wrap:wrap}#root .government-map-section .map-container{height:clamp(260px,52vh,520px)}#root .government-map-section .map-no-location{height:100%;box-sizing:border-box;border:0}#root .government-map-summary{margin:0;padding:12px 18px;color:#52665a;font-size:.82rem;line-height:1.4}#root .record-link{padding:4px 0;border:0;background:transparent;color:#174f70;font:inherit;font-weight:650;text-align:left;text-decoration:underline;cursor:pointer}#root .list-more-button{display:block;width:min(100%,360px);margin:16px auto 0}#root .role-complaint-dialog{max-width:100%;overflow-wrap:anywhere}#root .role-action-error,#root .role-action-success{padding:12px 14px;border-radius:6px;line-height:1.45}#root .role-action-error{color:#8c2720;background:#fff1ef;border:1px solid #e9b7b0}#root .role-action-success{color:#214f35;background:#eff8ef;border:1px solid #b5d7b8}#root .visually-hidden-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#root .upload-zone:focus-within{outline:3px solid #2a7862;outline-offset:3px}#root .attendance-export-note{margin:2px 0 12px;color:#52665a;font-size:.85rem;line-height:1.45}@media (max-width: 600px){#root .modal-overlay .modal{box-sizing:border-box;width:calc(100vw - 16px);max-width:none;max-height:calc(100dvh - 16px);padding:16px}}#root :is(.error-message,.error-banner){background:#fff1ef;color:#9c2c23;border:1px solid #e9b7b0;border-radius:6px;box-shadow:none}#root :is(.empty-state,.rp-empty-state){padding:40px 24px;color:#56635d}#root .category-chart-scroll{max-height:370px;overflow:auto}#root .status-breakdown{display:grid;gap:14px;padding:10px 0}#root .status-breakdown-row>div{display:flex;justify-content:space-between;margin-bottom:8px;font-size:.85rem}#root .status-breakdown-row strong{font-variant-numeric:tabular-nums}#root .status-track{height:8px;background:#edf0ea;border-radius:2px;overflow:hidden}#root .status-track span{display:block;height:100%;background:var(--status-color)}#root .login-container{min-height:100dvh;height:auto;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);background:#f4f5f2;overflow:visible;padding:0}#root .login-container:before,#root .login-container:after,#root .login-hero:before,#root .login-hero:after{display:none}#root .login-hero{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:clamp(32px,6vw,88px);min-height:100dvh;background:#183b33;border:0;border-radius:0;box-shadow:none;position:relative}#root .civic-wordmark{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:70px;color:#fff;font-weight:700;font-size:1.15rem}#root .civic-wordmark span{font-size:.7rem;font-weight:400;color:#b4c9ba;padding-left:10px;border-left:1px solid #55725e}#root .civic-eyebrow{color:#d7bf87;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:18px}#root .login-hero-title{color:#f1f3e9;font-size:clamp(2.3rem,4.1vw,4rem);line-height:1.12;letter-spacing:-.045em;margin-bottom:22px;text-shadow:none}#root .login-hero-subtitle{color:#c0d0c3;font-size:1rem;line-height:1.7;max-width:46ch;margin-bottom:38px}#root .login-hero-features{display:grid;grid-template-columns:1fr;gap:0;width:100%;max-width:470px}#root .hero-feature{display:flex;flex-direction:row;align-items:flex-start;padding:17px 0;gap:16px;background:transparent;border:0;border-top:1px solid #365748;border-radius:0;box-shadow:none;transform:none}#root .hero-feature-icon{background:transparent;border:0;width:26px;min-width:26px;height:26px;box-shadow:none}#root .hero-feature-icon svg{color:#c6b78d;stroke:currentColor;width:20px}#root .hero-feature-text h4{color:#edf2e9;font-size:.85rem;margin-bottom:5px}#root .hero-feature-text p{color:#b4c9ba;font-size:.78rem;line-height:1.6;margin:0}#root .login-form-container{position:relative;inset:auto;transform:none;width:100%;min-width:0;display:flex;justify-content:center;align-items:flex-start;padding:48px 32px;background:transparent;height:auto;max-height:none;overflow:visible}#root .login-form-wrapper{width:100%;max-width:430px;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;max-height:none;overflow:visible}#root .login-form-header{display:block;text-align:left;margin-bottom:32px}#root .login-logo{display:none}#root .login-form-header h2{font-size:1.6rem;margin-bottom:10px}#root .login-form-header p{font-size:.88rem;color:#56635d}#root .login-form .form-group{margin-bottom:22px}#root .login-form .form-input{padding:12px}#root .login-form .btn{min-height:48px}#root .citizen-qr-panel{background:#fff;border:1px solid var(--color-border);border-radius:6px;box-shadow:none;padding:16px;margin-top:32px;gap:16px}#root .citizen-qr-code{padding:0;border:0;box-shadow:none;border-radius:0}#root .citizen-qr-code svg{width:84px;height:84px}#root .citizen-qr-copy h4{font-size:.82rem}#root .citizen-qr-copy p{font-size:.76rem}#root .citizen-qr-copy a{padding:0;background:transparent;color:#153d38;font-size:.8rem;text-decoration:underline}#root .quick-login-section{margin-top:24px;padding-top:20px;border-top:1px solid var(--color-border)}#root .quick-login-section summary{cursor:pointer;font-size:.8rem;font-weight:600;color:#56635d}#root .demo-help{margin:14px 0;font-size:.76rem;color:#56635d}#root .quick-login-btn{background:#fff;border:1px solid var(--color-border);font-size:.74rem;color:#354e40}#root :is(.commissioner-stat-card,.engineer-stat-card,.contractor-stat-card,.status-card,.planned-route-card,.jobs-container){background:#fff;color:#202e2a;border:1px solid var(--color-border);border-radius:8px;box-shadow:none}#root :is(.commissioner-stat-card,.engineer-stat-card,.contractor-stat-card):before,#root :is(.commissioner-stat-card,.engineer-stat-card,.contractor-stat-card):after{display:none}#root :is(.commissioner-stat-card,.engineer-stat-card,.contractor-stat-card):hover{transform:none;box-shadow:none;border-color:#809989}#root button.engineer-stat-card{display:block;width:100%;text-align:left;font:inherit;cursor:pointer}#root :is(.commissioner-stat-value,.engineer-stat-value,.contractor-stat-info h3,.driver-stat-info h3){color:#202e2a;font-size:2rem;font-weight:700;font-variant-numeric:tabular-nums}#root :is(.commissioner-stat-label,.engineer-stat-label,.contractor-stat-info p,.driver-stat-info p){color:#56635d;font-size:.8rem;text-transform:none;letter-spacing:0}#root :is(.commissioner-stat-icon,.engineer-stat-icon){background:#eef2eb;color:#24675b;border-radius:6px;box-shadow:none}#root .danger :is(.commissioner-stat-icon,.engineer-stat-icon){background:#fff1ef;color:#9c2c23}#root .warning :is(.commissioner-stat-icon,.engineer-stat-icon){background:#fbf1df;color:#8a541b}#root .workspace-loading{max-width:640px;margin:15vh auto;padding:32px}#root .workspace-loading p{margin:12px 0 28px;color:#56635d}#root .workspace-loading-line{height:44px;background:#e1e7dd;margin-bottom:14px;border-radius:6px}#root .workspace-loading-line:last-child{width:65%}#root .rp-header{background:#fff;border:1px solid var(--color-border);border-radius:8px 8px 0 0;padding:24px;gap:16px;flex-wrap:wrap}#root .rp-header h1{color:#202e2a}#root .rp-header h2{margin:0;color:#202e2a;font-size:1.2rem}#root .rp-header-sub{color:#56635d}#root .report-picker{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:20px 24px;background:#fff;border:1px solid var(--color-border);border-top:0}#root .report-picker label{font-weight:600}#root .report-picker select{width:min(100%,320px)}#root .report-picker p{margin:0;font-size:.8rem;color:#56635d}#root :is(.rp-back-btn,.rp-export-btn,.rp-reset-btn){color:#153d38;background:#fff;border:1px solid #a6b4ab;border-radius:5px;min-height:42px}#root :is(.rp-back-btn,.rp-export-btn,.rp-reset-btn):hover{color:#153d38;background:#edf3e9}#root .rp-apply-btn{background:#153d38;border-radius:5px;min-height:42px}#root .rp-apply-btn:hover{background:#0e2c28}#root .rp-tabs-wrap{scrollbar-width:thin}#root .rp-tabs-wrap::-webkit-scrollbar{display:block;height:8px}#root .profile-save-btn{background:#153d38;color:#fff;border-radius:5px;box-shadow:none}#root .profile-secondary-btn{border-radius:5px;box-shadow:none}@media (max-width: 1100px){#root :is(.admin-stats-grid,.stats-grid){grid-template-columns:repeat(2,minmax(0,1fr))}#root .charts-grid{grid-template-columns:minmax(0,1fr)}#root .dashboard-content{padding:20px}#root .login-hero{padding:40px}}@media (max-width: 760px){#root .dashboard-shell{display:block}#root .dashboard-sidebar{position:relative;display:grid;grid-template-columns:1fr auto;grid-template-areas:"brand logout" "nav nav";width:100%;height:auto;padding:16px;gap:12px}#root .dashboard-logo{grid-area:brand;margin:0;padding:0;border:0}#root .dashboard-user-card{display:none}#root .logout-btn{grid-area:logout;width:auto}#root .sidebar-nav{grid-area:nav;display:flex;overflow-x:auto;margin:0;gap:5px}#root .sidebar-nav-label{display:none}#root .nav-item{width:auto;flex-shrink:0;margin:0}#root .dashboard-header{padding:22px 16px}#root .dashboard-content{padding:16px 12px 32px}#root .login-container{grid-template-columns:1fr}#root .login-hero{min-height:0;padding:28px 24px}#root .civic-wordmark{margin-bottom:28px}#root .login-hero-title{font-size:2.5rem}#root .login-hero-subtitle{margin-bottom:0;font-size:.9rem}#root .login-hero-features{display:none}#root .login-form-container{padding:32px 24px 48px}}@media (prefers-reduced-motion: reduce){#root *,#root *:before,#root *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}#root{line-height:1.55}#root :is(.dashboard-content,.dashboard-main,.card,.chart-card,.complaints-section,.map-section,.filters-section){min-width:0}#root :is(.stat-label,.admin-stat-label,.engineer-stat-label,.commissioner-stat-label,.contractor-stat-info p,.driver-stat-info p,.filter-group label,.register-summary){font-size:.9rem;line-height:1.4}#root :is(.data-table,.complaints-table,.vehicles-table,.rp-table){font-size:.9rem}#root :is(.data-table,.complaints-table,.vehicles-table,.rp-table) th{font-size:.82rem}#root :is(.badge,.job-detail,.job-card p,.detail-section p){font-size:.9rem}#root .quick-login-btn,#root .quick-login-section summary{font-size:.9rem;line-height:1.4}#root .demo-help,#root .citizen-qr-copy p,#root .citizen-qr-copy a{font-size:.88rem;line-height:1.45}#root .dashboard-user-badge{font-size:.75rem;line-height:1.3}#root .dashboard-logo-text p{font-size:.75rem}#root :is(input,select,textarea){max-width:100%;font-size:max(16px,1rem)}#root :is(button,[role=button],summary){touch-action:manipulation}#root :is(.mobile-nav-toggle,.mobile-nav-close,.mobile-nav-backdrop){display:none}#root .dashboard-header{display:flex;align-items:center;min-width:0}#root .dashboard-header .dashboard-header-left{flex:0 1 auto;min-width:0}#root .dashboard-header-left h1{overflow-wrap:anywhere}#root .dashboard-header-actions{flex:0 0 auto}#root .dashboard-sidebar{overscroll-behavior:contain}#root .dashboard-user-details p{overflow-wrap:anywhere}#root :is(.card,.chart-card,.complaints-section,.jobs-container){max-width:100%}@media (max-width: 980px){#root .dashboard-shell{display:block}#root .dashboard-sidebar{position:fixed;inset:0 auto 0 0;z-index:1002;width:min(320px,86vw);height:100dvh;padding:24px 16px;display:flex;transform:translate(-105%);visibility:hidden;transition:transform .2s ease,visibility .2s ease;overflow-y:auto;box-shadow:8px 0 32px #10282035}#root .dashboard-sidebar.mobile-open{transform:translate(0);visibility:visible}#root .dashboard-sidebar .dashboard-user-card{width:100%;height:auto;min-width:0;padding:14px 8px;display:block;background:transparent;border-radius:0}#root .dashboard-sidebar .dashboard-user-info{display:flex;gap:9px;align-items:center}#root .dashboard-sidebar .dashboard-user-details{display:block;min-width:0}#root .dashboard-sidebar .dashboard-user-badge{display:inline-block}#root .dashboard-sidebar .logout-btn{display:flex;justify-content:flex-start;width:100%;height:auto;min-height:46px;padding:10px 12px}#root .dashboard-sidebar .logout-btn span{width:auto;font-size:.95rem;overflow:visible}#root .sidebar-nav{display:block;overflow:visible}#root .dashboard-user-card{display:block}#root .logout-btn{width:100%}#root .mobile-nav-backdrop.mobile-nav-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1001;width:100%;border:0;background:#0c211db8}#root .mobile-nav-toggle,#root .mobile-nav-close{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border:1px solid var(--color-border);border-radius:6px;background:#fff;color:var(--color-primary)}#root .mobile-nav-toggle{flex:none;margin-right:8px}#root .mobile-nav-close{position:absolute;right:14px;top:18px}#root .dashboard-header{padding:14px 20px;flex-wrap:wrap}#root .dashboard-header .dashboard-header-left{flex:1 1 auto}#root .dashboard-section-search{order:3;flex:1 0 100%;margin-left:0}#root .dashboard-header-actions{margin-left:auto}#root .dashboard-content{padding:20px}}@media (max-width: 600px){#root .dashboard-header{gap:8px;padding:14px}#root .dashboard-header-left h1{font-size:1.25rem}#root .dashboard-header-left p{display:none}#root .dashboard-header-actions{gap:4px}#root .dashboard-header .header-icon-btn{width:38px;height:38px}#root .dashboard-header .header-account-btn{min-width:0;padding:2px;justify-content:center}#root .header-account-copy{display:none}#root .dashboard-section-search{height:42px}#root .dashboard-content{padding:14px 12px 32px}#root :is(.admin-stats-grid,.stats-grid,.commissioner-stats-grid,.engineer-stats-grid,.contractor-stats-grid,.driver-stats){grid-template-columns:repeat(2,minmax(0,1fr))}#root :is(.stat-card,.admin-stat-card,.commissioner-stat-card,.engineer-stat-card,.contractor-stat-card,.driver-stat-card){padding:14px}#root :is(.stat-value,.admin-stat-value,.commissioner-stat-value,.engineer-stat-value){font-size:1.5rem}#root :is(.tab-bar,.tab-buttons,.rp-tabs){overflow-x:auto;scrollbar-width:thin}}#root .contractor-workspace{display:flex;flex-direction:column;gap:18px}#root .contractor-workspace>.contractor-stats{order:0}#root .contractor-workspace>.jobs-container{order:1}#root .contractor-workspace>.main-grid{order:2}#root .contractor-work-hint{color:var(--color-text-secondary);margin:0 0 16px;font-size:.95rem}#root .contractor-job-search{display:grid;gap:6px;color:#314d40;font-size:.9rem;font-weight:700}#root .contractor-job-search input{width:100%;min-height:48px;padding:10px 13px;border:1px solid #9fb4a7;border-radius:6px;background:#fff}#root .contractor-job-filters{display:flex;gap:6px;overflow-x:auto;margin:14px 0 18px;padding-bottom:6px;scrollbar-width:thin}#root .contractor-job-filters button{flex:none;min-height:44px;padding:8px 13px;border:1px solid #c8d7ce;border-radius:6px;background:#fff;color:#2b5948;font:inherit;font-weight:650;cursor:pointer}#root .contractor-job-filters button.selected{border-color:#145348;background:#145348;color:#fff}#root .job-card{outline-offset:3px}#root .job-card:focus-visible{outline:3px solid #a56c20}#root .job-card .job-actions button{min-height:44px}@media (max-width: 760px){#root .contractor-workspace,#root .jobs-container,#root .jobs-list,#root .job-detail-panel{width:100%;min-width:0}#root .jobs-container{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}#root .jobs-list,#root .job-detail-panel{padding:18px}#root .job-detail-panel{position:static}#root .job-details{grid-template-columns:1fr}#root .job-header{gap:10px;flex-wrap:wrap}#root .job-id{overflow-wrap:anywhere}#root .job-card{padding:16px}#root .contractor-work-hint{max-width:32ch}#root .contractor-workspace>.main-grid{display:block}#root .contractor-workspace>.main-grid>:not(:first-child){display:none}}#root .simple-help{max-width:1100px}#root .simple-help-intro{margin-bottom:24px}#root .simple-help-intro h2{margin:0 0 6px;font-size:clamp(1.35rem,2vw,1.7rem);color:#183b33}#root .simple-help-intro p{margin:0;color:#52645c}#root .simple-help-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:14px}#root .simple-help-card{display:flex;align-items:flex-start;gap:14px;min-height:145px;padding:20px;color:#173c33;background:#fff;border:1px solid #c8d8ce;border-radius:8px;text-decoration:none}#root .simple-help-card:hover,#root .simple-help-card:focus-visible{border-color:#196351;background:#f3faf5}#root .simple-help-card>span:nth-child(2){flex:1}#root .simple-help-card strong{display:block;font-size:1.05rem;margin-bottom:8px}#root .simple-help-card small{display:block;color:#4f6259;font-size:.92rem;line-height:1.5}#root .simple-help-number{display:inline-grid;place-items:center;width:30px;height:30px;flex:none;background:#e4f1e9;border-radius:50%;font-weight:700}#root .simple-help-note{margin-top:24px;padding:20px;background:#fff;border:1px solid #c8d8ce;border-radius:8px}#root .simple-help-note h3{margin:0 0 14px;font-size:1.1rem}#root .simple-help-note dl{margin:0}#root .simple-help-note dl div{display:grid;grid-template-columns:minmax(130px,190px) 1fr;gap:10px;padding:10px 0;border-top:1px solid #e7eee9}#root .simple-help-note dt{font-weight:700}#root .simple-help-note dd{margin:0;color:#4f6259}@media (max-width: 600px){#root .simple-help-note dl div{display:block}}#root .complaint-list-more{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:16px 4px;color:#52645c;font-size:.9rem}@media (max-width: 760px){#root .mobile-complaint-table,#root .mobile-complaint-table tbody,#root .mobile-complaint-table tr{display:block;width:100%;min-width:0}#root .mobile-complaint-table thead{display:none}#root .mobile-complaint-table tr{margin:0 0 14px;padding:12px;border:1px solid #cbd9cf;border-radius:8px;background:#fff}#root .mobile-complaint-table td{display:flex;align-items:flex-start;gap:10px;width:100%;min-width:0;padding:8px 0;border:0;overflow-wrap:anywhere}#root .mobile-complaint-table td:before{content:attr(data-label);flex:0 0 84px;color:#52645c;font-weight:700;font-size:.82rem}#root .mobile-complaint-table td:first-child{color:#153d38;font-size:1rem;font-weight:800;border-bottom:1px solid #e6eee8}#root .mobile-complaint-table td:first-child:before{content:none}#root .mobile-complaint-table td[data-label=Actions]{flex-wrap:wrap}#root .mobile-complaint-table td[data-label=Actions]:before{content:none}#root .mobile-complaint-table td .complaint-location{min-width:0}#root .mobile-complaint-table td .truncate{white-space:normal;overflow-wrap:anywhere}}#root .attendance-page{padding:24px;max-width:1280px}#root .attendance-report{padding:24px;background:#fff;border:1px solid #cbd9cf;border-radius:8px}#root .attendance-intro{display:flex;justify-content:space-between;align-items:start;gap:16px}#root .attendance-intro h2{margin:0 0 5px;font-size:1.4rem}#root .attendance-intro p{margin:0 0 18px;color:#52645c}#root .attendance-controls,#root .attendance-downloads{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:16px 0}#root .attendance-controls label{display:grid;gap:5px;font-weight:650;min-width:min(100%,200px)}#root .attendance-controls :is(input,select){min-height:46px;padding:9px 12px;border:1px solid #9fb4a7;border-radius:6px;background:#fff}#root .attendance-downloads{padding-top:14px;border-top:1px solid #e3ece6}#root .attendance-downloads span{font-weight:650}#root .attendance-count{margin:18px 0 12px;font-weight:700}#root .attendance-empty{padding:20px;background:#f5f8f6;border-radius:6px}#root .attendance-error{padding:12px 16px;color:#8d2626;background:#fff1f0;border:1px solid #e8b6b2;border-radius:6px}#root .attendance-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,350px),1fr));gap:14px}#root .attendance-card{padding:18px;border:1px solid #cbd9cf;border-radius:8px;min-width:0}#root .attendance-card-heading{display:flex;align-items:start;justify-content:space-between;gap:12px}#root .attendance-card-heading h3{margin:0;font-size:1.1rem}#root .attendance-card-heading span{color:#53665b}#root .attendance-card-heading .attendance-present{color:#15513c;background:#e2f3e8;padding:4px 9px;border-radius:4px;font-size:.83rem;font-weight:700}#root .attendance-card dl{margin:16px 0}#root .attendance-card dl div{display:grid;grid-template-columns:80px minmax(0,1fr);gap:8px;margin:9px 0;overflow-wrap:anywhere}#root .attendance-card dt{color:#53665b}#root .attendance-card dd{margin:0}#root .attendance-card dd small{display:block;color:#53665b}#root .attendance-proof-button{min-height:44px}#root .attendance-proof-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:grid;place-items:center;padding:12px;background:#10251cc9}#root .attendance-proof-dialog{width:min(100%,720px);max-height:95dvh;overflow:auto;padding:18px;background:#fff;border-radius:8px}#root .attendance-proof-dialog>div{display:flex;justify-content:space-between;align-items:start;gap:14px}#root .attendance-proof-dialog h2{margin:0;font-size:1.2rem}#root .attendance-proof-dialog p{margin:2px 0 12px}#root .attendance-proof-dialog img{display:block;max-width:100%;max-height:75dvh;margin:auto;object-fit:contain}@media (max-width: 600px){#root .attendance-page{padding:12px}#root .attendance-report{padding:16px}#root .attendance-intro{flex-wrap:wrap}#root .attendance-controls label{flex:1 1 100%}#root .attendance-downloads span{width:100%}#root .attendance-card{padding:16px}}#root .driver-welcome{background:#e9f4ec;color:#173d34;border:1px solid #cadbd0;border-radius:8px;padding:22px 24px;margin-bottom:16px}#root .driver-welcome-content h2{font-size:clamp(1.35rem,2.5vw,1.7rem);line-height:1.25}#root .driver-welcome-content p{color:#4b6256}#root .driver-welcome-icon{background:#15513f;width:62px;height:62px}#root .driver-next-step{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px;padding:22px 24px;background:#fff;border:1px solid #b6d2bf;border-left:5px solid #15513f;border-radius:8px}#root .driver-next-step>div{min-width:0}#root .driver-next-step h2{margin:3px 0 5px;font-size:1.35rem}#root .driver-next-step p{margin:0;color:#4d6258}#root .driver-step-label{color:#15513f;font-size:.8rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}#root .driver-next-step :is(.btn-start-route,.btn-end-route){flex:none;min-width:150px;min-height:48px;padding:10px 18px;border-radius:6px;box-shadow:none}#root .driver-next-step .btn-start-route{background:#15513f}#root .driver-next-step .btn-end-route{background:#963b30}#root .driver-next-step .driver-step-message{margin-top:10px;color:#763322;font-weight:650}#root .driver-attendance-section{padding:22px 24px;margin-bottom:16px;border:1px solid #cadbd0;border-radius:8px;background:#fff}#root .driver-attendance-heading{display:flex;justify-content:space-between;gap:16px;align-items:start}#root .driver-attendance-heading h2{margin:0 0 5px;font-size:1.3rem}#root .driver-attendance-heading p{margin:0 0 12px;color:#53675c}#root .driver-attendance-state{flex:none;padding:5px 9px;background:#fff4e3;color:#87530d;border-radius:4px;font-weight:700;font-size:.85rem}#root .driver-attendance-state.is-present{background:#e2f3e8;color:#15513c}#root .driver-attendance-note{max-width:70ch;margin:0 0 14px}#root .driver-attendance-section video{width:min(100%,400px);border-radius:6px}#root .driver-attendance-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}#root .driver-attendance-actions button{min-height:48px}#root .driver-attendance-result{display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px}#root .driver-attendance-result strong{color:#15513c}#root .driver-attendance-result button{min-height:44px}#root .driver-attendance-message{padding:10px 12px;margin-bottom:0;background:#edf6ef;border-radius:6px}#root .driver-attendance-proof{margin-top:14px}#root .driver-attendance-proof img{display:block;max-width:100%;max-height:400px;margin-top:10px}#root .driver-attendance-report-list>div{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:12px 0;border-bottom:1px solid #e4ece6}#root .worker-attendance{padding:22px 24px!important;border-radius:8px!important;margin-bottom:16px!important}#root .worker-attendance h2{margin-top:0;font-size:1.3rem}#root .worker-attendance p{max-width:70ch}#root .driver-stats,#root .planned-route-card,#root .active-route-section{margin-bottom:16px}#root .driver-stat-card{padding:16px}#root .driver-stat-icon{width:48px;height:48px}#root .driver-stat-icon svg{width:26px;height:26px}#root .driver-map-empty{margin:16px 0 0;padding:16px;color:#53675c;background:#f5f8f6;border-radius:6px}@media (max-width: 760px){#root .driver-welcome,#root .driver-next-step,#root .driver-attendance-section,#root .worker-attendance{padding:16px!important}#root .driver-welcome-icon{display:none}#root .driver-next-step{display:block}#root .driver-next-step :is(.btn-start-route,.btn-end-route){width:100%;margin-top:14px}#root .driver-attendance-heading{flex-wrap:wrap;gap:4px}#root .driver-attendance-state{margin-bottom:10px}#root .driver-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}#root .driver-stat-card{display:block;padding:14px;min-width:0}#root .driver-stat-icon{margin-bottom:8px}#root .planned-route-card,#root .active-route-section,#root .profile-card,#root .status-card{padding:16px}#root .planned-route-grid{grid-template-columns:minmax(0,1fr)}#root .driver-route-map{height:240px}#root .route-history{padding:14px}}#root .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#root .fleet-hero{grid-template-columns:minmax(0,1fr);margin-bottom:16px}#root .fleet-hero-panel{color:#173d34;background:#e9f4ec;border:1px solid #cadbd0;border-radius:8px;box-shadow:none}#root .fleet-hero-panel h2{color:#173d34;font-size:1.45rem}#root .fleet-hero-panel p{color:#52645c;max-width:65ch}#root .fleet-metric{background:#fff;border:1px solid #cadbd0;border-radius:6px}#root .fleet-metric strong{color:#173d34}#root .fleet-metric span{color:#53675c;font-size:.82rem;text-transform:none;letter-spacing:0}#root .vehicles-header{margin:0 0 16px;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none}#root .vehicles-search-bar{min-height:48px;border:1px solid #9fb4a7;border-radius:6px;background:#fff}#root .vehicles-search-bar:focus-within{outline:3px solid #9ec9a9;outline-offset:2px}#root .btn-add-vehicle{min-height:48px;background:#15513f;border-radius:6px;box-shadow:none;font-weight:700}#root .vehicles-table-container{margin:0;background:#fff;border:1px solid #cadbd0;border-radius:8px;box-shadow:none}#root .vehicles-result-count{margin:0;padding:14px 16px 0;color:#52645c;font-size:.9rem;font-weight:650}#root .fleet-notice{margin:0 0 14px;padding:11px 14px;color:#184534;background:#e9f4ec;border:1px solid #b8d6c0;border-radius:6px}#root .fleet-dialog{border-radius:8px;box-shadow:0 16px 50px #122e2840}#root .fleet-dialog .modal-buttons button{min-height:46px;border-radius:6px;font-weight:700}#root .fleet-dialog .btn-modal-submit{background:#15513f}#root .fleet-dialog .btn-modal-cancel{background:#edf2ef}#root .fleet-form-error{padding:10px 12px;color:#8d2626;background:#fff1f0;border:1px solid #e8b6b2;border-radius:6px}#root .fleet-route-toggle{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:48px;margin-bottom:12px;padding:11px 14px;text-align:left;font:inherit;font-weight:700;color:#15513f;background:#f0f7f1;border:1px solid #bdd5c3;border-radius:6px;cursor:pointer}#root .fleet-route-toggle span{color:#52645c;font-size:.87rem;font-weight:500;overflow-wrap:anywhere}#root .fleet-route-field{display:grid;gap:5px;min-width:0;font-size:.9rem;font-weight:650}#root .fleet-history-details{margin:12px 0}#root .fleet-history-details summary{display:flex;align-items:center;gap:8px;min-height:44px;padding:9px 12px;font-weight:700;cursor:pointer}#root .fleet-history-details summary:after{content:"+";margin-left:auto;font-size:1.2rem}#root .fleet-history-details[open] summary:after{content:"−"}#root .mobile-vehicle-table .btn-action span{display:none}#root .mobile-vehicle-table .btn-action{min-width:44px;min-height:44px;border-radius:6px}@media (max-width: 760px){#root .fleet-hero-panel{padding:16px}#root .fleet-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}#root .fleet-metric{padding:8px}#root .fleet-metric strong{font-size:1.15rem}#root .vehicles-header{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}#root .vehicles-search-bar{min-width:0;width:100%}#root .btn-add-vehicle{width:100%;justify-content:center}#root .mobile-vehicle-table,#root .mobile-vehicle-table tbody,#root .mobile-vehicle-table tr{display:block;width:100%;min-width:0}#root .mobile-vehicle-table thead{display:none}#root .mobile-vehicle-table tr{padding:12px 16px;border-bottom:1px solid #d9e4dc}#root .mobile-vehicle-table td{display:flex;align-items:start;gap:10px;width:100%;min-width:0;padding:7px 0;border:0;overflow-wrap:anywhere}#root .mobile-vehicle-table td:before{content:attr(data-label);flex:0 0 92px;font-weight:700;color:#52645c;font-size:.83rem}#root .mobile-vehicle-table td:first-child{font-size:1rem;border-bottom:1px solid #e5eee7}#root .mobile-vehicle-table td:first-child:before{content:none}#root .mobile-vehicle-table td[data-label=Actions]{display:block}#root .mobile-vehicle-table td[data-label=Actions]:before{display:block;margin-bottom:6px}#root .mobile-vehicle-table .vehicle-actions{display:flex;flex-wrap:wrap;gap:7px}#root .mobile-vehicle-table .btn-action{display:inline-flex;gap:5px;align-items:center;width:auto;height:auto;padding:9px 11px;font-size:.85rem}#root .mobile-vehicle-table .btn-action span{display:inline}}
