@import "https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&display=swap";:root{color:#172b3f;background:#f3f7fa;font-family:Be Vietnam Pro,Arial,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}.app{min-height:100vh;display:flex}.sidebar{color:#dce9f3;background:#102b42;flex-direction:column;flex:none;width:268px;height:100vh;min-height:100vh;padding:28px 16px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;padding:0 12px 48px;display:flex}.brandmark{color:#fff;background:#21b6b1;border-radius:13px;place-items:center;width:43px;height:43px;display:grid}.brand strong{letter-spacing:.02em;color:#fff;font-size:18px}.brand em{color:#a9c3d0;font-size:14px;font-style:normal;font-weight:500}.brand small,.sidebar-bottom small{color:#9bb3c4;margin-top:4px;font-size:12px;display:block}.nav-label{letter-spacing:.13em;color:#819caf;padding:0 16px 13px;font-size:11px;font-weight:700}nav{gap:5px;display:grid}nav button{color:#bbcfdd;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:14px;width:100%;padding:13px 15px;font-size:14px;font-weight:600;display:flex}nav button:hover,nav button.active{color:#fff;background:#26475d}nav button.active{box-shadow:inset 3px 0 #28c4ba}.sidebar-bottom{border-top:1px solid #315064;align-items:center;gap:10px;min-width:0;margin-top:auto;padding:20px 9px 0;display:flex}.sidebar-bottom>div:last-child{min-width:0}.sidebar-bottom strong{color:#fff;font-size:13px}.sidebar-bottom small{white-space:nowrap;text-overflow:ellipsis;max-width:165px;overflow:hidden}.avatar{color:#fff;background:#378b96;border-radius:50%;flex:none;place-items:center;width:37px;height:37px;font-weight:700;display:grid}.main{flex:1;min-width:0}.topbar{color:#506779;background:#fff;border-bottom:1px solid #e0e9ef;align-items:center;height:74px;padding:0 clamp(22px,4vw,58px);font-size:14px;font-weight:600;display:flex}.topbar span{color:#adbcc7;padding:0 10px}.topbar time{color:#718797;margin-left:auto;font-size:13px;font-weight:500}.content{max-width:1370px;margin:auto;padding:42px clamp(22px,4vw,58px) 70px}.heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:32px;display:flex}.eyebrow{color:#168c91;letter-spacing:.14em;margin-bottom:9px;font-size:12px;font-weight:800}h1{letter-spacing:-.035em;color:#142d42;margin:0;font-size:clamp(28px,3vw,39px);line-height:1.22}p{margin:0}.heading p{color:#708597;margin-top:10px;font-size:14px;line-height:1.6}.primary,.small-primary{color:#fff;white-space:nowrap;background:#167f88;border:0;border-radius:10px;justify-content:center;align-items:center;gap:9px;padding:13px 18px;font-size:14px;font-weight:700;display:inline-flex;box-shadow:0 4px 11px #167f8820}.primary:hover,.small-primary:hover{background:#106c76}.small-primary{padding:9px 12px;font-size:13px}.secondary{color:#496272;background:#fff;border:1px solid #d6e3ea;border-radius:9px;padding:10px 14px;font-size:13px;font-weight:700}.secondary:hover{background:#f2f8fa}.stats{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:26px;display:grid}.stats>div{background:#fff;border:1px solid #e2ebf0;border-radius:14px;flex-direction:column;padding:19px 23px;display:flex;box-shadow:0 7px 25px #15334a06}.stats span{color:#667e90;font-size:13px;font-weight:600}.stats strong{color:#173c54;margin:11px 0;font-size:32px;line-height:1.25}.stats small{color:#9aacb8;font-size:12px}.panel{background:#fff;border:1px solid #e0e9ef;border-radius:15px;min-width:0;box-shadow:0 9px 30px #18364b08}.panel-head{border-bottom:1px solid #eaf0f4;justify-content:space-between;align-items:center;gap:12px;padding:24px 25px;display:flex}.panel h2{letter-spacing:-.02em;margin:0;font-size:18px}.panel-head p{color:#8aa0ad;margin-top:5px;font-size:13px}.trip{border-bottom:1px solid #edf2f5;padding:23px 26px}.trip:last-child{border:0}.trip-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.trip-id{letter-spacing:.05em;color:#287e8b;font-size:12px;font-weight:800}.trip-id span{color:#91a2ae;letter-spacing:0;font-weight:500}.status{color:#9b6a14;white-space:nowrap;background:#fff3dd;border-radius:20px;padding:7px 10px;font-size:12px;font-weight:700}.status.confirmed{color:#287457;background:#e0f5ed}.status.rejected{color:#a54b46;background:#fae9e7}.trip-route{flex-wrap:wrap;align-items:center;gap:14px;margin:17px 0 12px;font-size:18px;display:flex}.trip-route span{color:#2aabb0}.trip-meta{color:#637c8d;flex-wrap:wrap;gap:21px;font-size:13px;display:flex}.purpose{color:#667e90;margin-top:12px;font-size:13px}.assignment{color:#19606b;background:#ecf8f7;border-radius:9px;flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;padding:11px 13px;font-size:13px;font-weight:600;display:flex}.assignment i{background:#a2d4d2;width:1px;height:17px;margin:0 5px}.trip-note{color:#647b89;margin-top:11px;font-size:13px}.textbutton{color:#087d86;background:0 0;border:0;padding:15px 0 0;font-size:13px;font-weight:700}.empty{color:#91a8b5;text-align:center;flex-direction:column;align-items:center;gap:12px;padding:70px 24px;font-size:14px;display:flex}.empty strong{color:#3d596c;font-size:16px}.empty.compact{padding:35px 20px;line-height:1.6}.resource-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.resource{border-bottom:1px solid #edf2f5;align-items:center;gap:12px;padding:17px 22px;display:flex}.resource:last-child{border:0}.resource-icon{color:#168b91;background:#e8f5f6;border-radius:11px;flex:none;place-items:center;width:42px;height:42px;display:grid}.resource-info{flex-direction:column;gap:4px;min-width:0;display:flex}.resource-info strong{font-size:14px}.resource-info span,.resource-info small{color:#6e8796;font-size:12px}.availability{color:#237251;white-space:nowrap;background:#e1f5ec;border:0;border-radius:20px;margin-left:auto;padding:8px 10px;font-size:11px;font-weight:700}.availability.unavailable{color:#788894;background:#f1f2f3}.footnote{color:#8b9faa;margin-top:18px;font-size:12px;line-height:1.6}.overlay{z-index:10;background:#0b2438a8;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.dialog{background:#fff;border-radius:17px;width:min(700px,100%);max-height:min(92vh,850px);overflow:auto;box-shadow:0 25px 75px #0c203950}.dialog-head{border-bottom:1px solid #e8eef2;justify-content:space-between;align-items:start;padding:27px 30px 21px;display:flex}.dialog-head h2{letter-spacing:-.03em;margin:0;font-size:24px}.iconbutton{background:#edf3f6;border:0;border-radius:8px;place-items:center;width:32px;height:32px;display:grid}.dialog-body{padding:26px 30px 29px}.form-grid{grid-template-columns:1fr 1fr;gap:19px 17px;display:grid}.form-grid label{color:#415e70;flex-direction:column;gap:8px;font-size:13px;font-weight:700;display:flex}.form-grid .wide{grid-column:1/-1}.optional{color:#9baeb9;font-weight:400}.form-grid input,.form-grid select,.form-grid textarea{color:#19364a;background:#fff;border:1px solid #ccdce5;border-radius:9px;outline:none;width:100%;min-height:44px;padding:12px 13px;font-size:14px}.form-grid textarea{resize:vertical;min-height:86px}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:#1b9da4;box-shadow:0 0 0 3px #1b9da41c}.dialog-actions{border-top:1px solid #e9eff3;justify-content:flex-end;gap:10px;margin-top:25px;padding-top:21px;display:flex}.summary{color:#506d7c;background:#f2f8fa;border:1px solid #dfebef;border-radius:11px;flex-direction:column;gap:9px;margin-bottom:24px;padding:16px;font-size:13px;line-height:1.5;display:flex}.summary strong{color:#163c52;font-size:16px}.alert{color:#a14837;background:#fff0ec;border:1px solid #f1cbc1;border-radius:9px;margin-bottom:18px;padding:12px 15px;font-size:13px}.dialog-error{margin:17px 30px 0}.toast{color:#fff;z-index:30;background:#14556a;border-radius:10px;padding:13px 18px;font-size:13px;position:fixed;top:20px;right:22px;box-shadow:0 12px 30px #102b4233}@media (max-width:900px){.sidebar{width:215px}.resource-grid{grid-template-columns:1fr}}@media (max-width:680px){.app{display:block}.sidebar{width:100%;height:auto;min-height:0;padding:14px 15px;position:static}.brand{padding:0 0 12px}.nav-label,.sidebar-bottom{display:none}nav{display:flex}nav button{width:auto;padding:9px 10px;font-size:12px}.topbar{height:55px;padding:0 20px;font-size:12px}.topbar time{display:none}.content{padding:27px 18px 50px}.heading{flex-direction:column;align-items:start;margin-bottom:23px}.stats{gap:8px}.stats>div{padding:14px 12px}.stats span,.stats small{font-size:11px}.stats strong{font-size:25px}.panel-head,.trip{padding:19px}.trip-route{font-size:16px}.trip-meta{gap:9px}.resource{padding:15px}.dialog-head,.dialog-body{padding:20px}.form-grid{grid-template-columns:1fr}.dialog-error{margin:14px 20px 0}.dialog-actions{flex-wrap:wrap}}.riders{color:#286473;background:#f0f9f9;border-left:3px solid #18a3a7;border-radius:0 8px 8px 0;margin-top:12px;padding:10px 13px;font-size:13px;line-height:1.55}.riders strong{color:#15576a}.share-preview{color:#527386;background:#eef7fa;border:1px solid #d5e8ef;border-radius:10px;margin:0 0 21px;padding:14px 16px;font-size:13px;line-height:1.55}.share-preview strong{color:#23546b;margin-bottom:8px;display:block}.share-preview div+div{margin-top:5px}.share-check{color:#31576b;align-items:flex-start;gap:10px;margin-top:20px;font-size:13px;font-weight:600;line-height:1.55;display:flex}.share-check input{accent-color:#168c91;flex:none;width:18px;height:18px;margin-top:2px}.role-panel{max-width:950px}.role-form{grid-template-columns:2fr 1fr auto;align-items:end;gap:14px;padding:23px 25px;display:grid}.role-form label{color:#456477;flex-direction:column;gap:8px;font-size:13px;font-weight:700;display:flex}.role-form input,.role-form select{color:#19364a;background:#fff;border:1px solid #ccdce5;border-radius:9px;min-width:0;height:44px;padding:0 12px;font-size:14px}.role-list{border-top:1px solid #eaf0f4}.role-list>div{border-bottom:1px solid #eef2f5;justify-content:space-between;gap:12px;padding:14px 25px;font-size:13px;display:flex}.role-list>div:last-child{border:0}.role-list strong{color:#197e87}@media (max-width:680px){.role-form{grid-template-columns:1fr;padding:20px}.role-list>div{overflow-wrap:anywhere;padding:13px 20px}}.signout{color:#afd5de;text-align:center;border:1px solid #355a6a;border-radius:8px;margin:14px 10px 0;padding:10px 9px;font-size:12px;font-weight:700;text-decoration:none;display:block}.signout:hover{color:#fff;background:#26475d}.login-screen{background:#eaf3f7;place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:#fff;border:1px solid #dce8ed;border-radius:18px;width:100%;max-width:440px;padding:34px;box-shadow:0 15px 50px #17344714}.login-card h1{margin:25px 0 12px;font-size:28px}.login-card p{color:#637c8d;margin-bottom:23px;font-size:15px;line-height:1.7}.login-card a{text-decoration:none}.day-switch{background:#e5eef2;border-radius:11px;gap:5px;width:max-content;margin:0 0 22px;padding:5px;display:flex}.day-switch button{color:#587386;background:0 0;border:0;border-radius:8px;padding:10px 18px;font-size:14px;font-weight:700}.day-switch button.active{color:#176e7d;background:#fff;box-shadow:0 2px 8px #17344718}.driver-details{background:#f4f8fa;border-radius:11px;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:17px 0;padding:17px;display:grid}.driver-details div{flex-direction:column;gap:5px;min-width:0;display:flex}.driver-details strong{color:#7891a0;font-size:12px}.driver-details span{color:#28485d;overflow-wrap:anywhere;font-size:14px;line-height:1.5}.complete-button{margin-top:3px}.status.completed{color:#4169a6;background:#e5edfb}.resource-edit{margin-left:auto;padding:8px}.resource-edit+.availability{margin-left:0}.form-hint{color:#748e9e;margin:0;font-size:12px;line-height:1.5}@media (max-width:680px){.sidebar{padding-bottom:12px}.signout{margin:12px 0 0;padding:8px}.driver-details{grid-template-columns:1fr}.resource-edit{font-size:12px}}.role-form.with-driver{grid-template-columns:1.5fr 1fr 1.3fr auto}@media (max-width:680px){.role-form.with-driver{grid-template-columns:1fr}}.login-form{text-align:left;gap:18px;margin-top:24px;display:grid}.login-form label,.account-reset label{gap:8px;font-size:14px;font-weight:600;display:grid}.login-form input,.account-reset input{color:#122b40;background:#fff;border:1px solid #d8e0e6;border-radius:8px;width:100%;padding:12px}.login-form .primary{justify-content:center}.owner-setup{text-align:left;border-top:1px solid #dce3e8;margin-top:24px;padding-top:18px;font-size:13px}.owner-setup summary{cursor:pointer;color:#53697a}.owner-setup p{font-size:13px}.login-card{width:calc(100% - 32px);max-width:460px!important}.account-form{padding:24px}.accounts-panel{margin-top:24px}.account-actions{flex-wrap:wrap;gap:8px;display:flex}.account-row{flex-wrap:wrap}.account-actions .secondary{padding:8px 10px;font-size:12px}.account-reset{max-width:520px}.signout{text-align:left;cursor:pointer;color:inherit;font:inherit;background:0 0;border:0}.sidebar>.signout{color:#c5d4e0;padding:10px 24px}.account-form input:disabled{color:#647686;background:#f1f4f6}@media (max-width:700px){.account-actions{width:100%}.account-form{padding:18px}.login-screen{padding:24px 0}}.request-actions,.change-actions{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.change-review{background:#edf5f8;border:1px solid #c6dce6;border-radius:10px;gap:12px;margin:16px 0;padding:18px;display:grid}.change-review label{gap:8px;font-size:14px;display:grid}.change-review input{background:#fff;border:1px solid #c6dce6;border-radius:6px;padding:10px}.change-review small{color:#566b78;font-size:13px}.change-table,.report-table{border-collapse:collapse;text-align:left;width:100%;font-size:14px}.change-table td,.change-table th,.report-table td,.report-table th{vertical-align:top;white-space:pre-line;border-bottom:1px solid #dfe7ec;padding:12px 16px}.change-table th,.report-table th{color:#294554;background:#f4f7f9}.table-scroll{overflow-x:auto}.passenger-fields{border:1px solid #dce6ec;border-radius:8px;grid-template-columns:1fr 1fr;gap:12px;padding:16px;display:grid}.passenger-fields legend{padding:0 6px;font-size:14px;font-weight:600}.change-notice{background:#eef5f8;border-radius:8px;padding:14px;font-size:14px}.journey-riders{gap:12px;margin:18px 0;display:grid}.journey-riders>div{background:#f5f8fa;border-left:3px solid #17817c;gap:6px;padding:14px;font-size:14px;display:grid}.journey-riders span{color:#536977}.odometer-summary{flex-wrap:wrap;gap:12px 24px;padding:16px 0;font-size:14px;display:flex}.odometer-form{align-items:end;gap:18px;margin-top:12px;display:flex}.odometer-form label{flex:1;gap:8px;max-width:350px;font-size:14px;display:grid}.odometer-form input,.report-controls input{color:#183546;background:#fff;border:1px solid #cbd9e2;border-radius:8px;padding:12px}.report-controls{flex-wrap:wrap;align-items:end;gap:14px;display:flex}.report-controls label{gap:8px;font-size:14px;display:grid}.report-grid{margin-top:24px}.status.cancelled{color:#607080;background:#eef0f2}.status.in-progress{color:#8c5600;background:#fff0d5}.day-switch{flex-wrap:wrap}@media (max-width:650px){.passenger-fields{grid-template-columns:1fr}.odometer-form{flex-direction:column;align-items:stretch}.report-controls{width:100%}.change-table td,.change-table th,.report-table td,.report-table th{padding:10px}.change-actions{gap:10px}}.attendance-editor,.attendance-summary{background:#f3faf9;border:1px solid #c7dedc;border-radius:10px;margin:18px 0;padding:20px}.attendance-title{justify-content:space-between;align-items:start;gap:16px;display:flex}.attendance-title h3,.attendance-summary h3{color:#194d48;margin:0;font-size:17px}.attendance-title p,.attendance-summary p{color:#536b6b;font-size:14px;line-height:1.6}.attendance-title>strong{white-space:nowrap;font-size:14px}.attendance-group{background:#fff;border:1px solid #d7e7e5;border-radius:8px;margin:18px 0;padding:16px}.attendance-group legend{padding:0 8px;font-size:14px;font-weight:600}.attendance-group-heading{color:#536b6b;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;font-size:14px;display:flex}.attendance-row{background:#f6f8fa;border-radius:8px;grid-template-columns:100px minmax(150px,1fr) 140px auto;align-items:end;gap:12px;margin:12px 0;padding:12px;display:grid}.attendance-row.selected{background:#e7f4f0}.attendance-row>label{gap:6px;font-size:14px;display:grid}.attendance-row input:not([type=checkbox]),.attendance-row select{color:#173b39;background:#fff;border:1px solid #cbdcd9;border-radius:6px;width:100%;padding:10px}.attendance-row .attendance-check{cursor:pointer;align-self:center;align-items:center;gap:8px;display:flex}.attendance-check input{accent-color:#17817b;width:20px;height:20px}.attendance-removed{flex-wrap:wrap;align-items:center;gap:12px;font-size:14px;display:flex}.attendance-summary ul{padding-left:20px;font-size:14px;line-height:1.9}.attendance-summary summary{cursor:pointer;color:#536b6b;font-size:14px}.actual-added{color:#226257;background:#d0e9e3;border-radius:5px;margin-left:8px;padding:1px 7px;font-size:12px;display:inline-block}.actual-request{color:#24604d;background:#e8f5f0;border-radius:8px;gap:5px;margin:12px 0;padding:12px 14px;font-size:14px;display:grid}@media (max-width:850px){.attendance-row{grid-template-columns:1fr 1fr}.attendance-row .attendance-check{grid-column:1/-1}.attendance-title{flex-direction:column}.attendance-group{padding:12px}}@media (max-width:500px){.attendance-row{grid-template-columns:1fr}.attendance-editor,.attendance-summary{padding:14px}.attendance-row .secondary{justify-self:start}}.request-filters{border-bottom:1px solid #e2e8ed;padding:0 24px 20px}.filter-tabs{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.filter-tabs button{color:#234255;cursor:pointer;background:#fff;border:1px solid #cad7e0;border-radius:7px;padding:10px 14px;font-size:14px}.filter-tabs button.selected{color:#fff;background:#17384b;border-color:#17384b}.filter-tabs button span{margin-left:6px;font-weight:700}.filter-fields{grid-template-columns:2fr repeat(4,1fr);gap:12px;display:grid}.filter-fields label,.panel-head label{flex-direction:column;gap:6px;min-width:0;font-size:14px;display:flex}.filter-fields input,.filter-fields select,.panel-head select{background:#fff;border:1px solid #cad7e0;border-radius:6px;width:100%;padding:10px;font-size:14px}.panel-head select{max-width:360px}.filter-caption{color:#536b7a;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;font-size:14px;display:flex}.request-flags{flex-wrap:wrap;gap:6px;margin:10px 0;display:flex}.request-flags:empty{display:none}.flag{color:#234255;background:#e8f0f6;border-radius:4px;padding:5px 8px;font-size:14px}.flag.urgent{color:#934b09;background:#fff0dc}.report-tabs{margin-bottom:22px}.multiline{white-space:pre-line}.report-table td{vertical-align:top;min-width:90px}.report-table td .multiline{min-width:180px;display:inline-block}.report-stats{padding:0 22px}.report-stats strong{overflow-wrap:anywhere}@media (max-width:1000px){.filter-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-fields label:first-child{grid-column:1/-1}}@media (max-width:600px){.request-filters{padding:0 16px 16px}.filter-fields{grid-template-columns:minmax(0,1fr)}.filter-caption{flex-direction:column;align-items:flex-start}.panel-head label{width:100%}.filter-tabs button{padding:9px}.report-stats{padding:0 14px}.panel-head{flex-wrap:wrap}}.list-pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-top:18px;font-size:14px;display:flex}.list-pagination>div{gap:8px;display:flex}.compact-filters .filter-toolbar{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.compact-filters .filter-tabs{gap:8px;margin:0}.filter-search{flex:1;min-width:210px;max-width:380px;margin-left:auto}.filter-search input{border:1px solid #cad7e0;border-radius:7px;width:100%;padding:11px 13px;font-size:14px}.more-filters{margin-top:12px}.more-filters summary{cursor:pointer;color:#486678;width:fit-content;padding:4px 0;font-size:14px}.more-filters[open] summary{margin-bottom:16px}.filter-active{color:#137e83;font-weight:600}.compact-filters .filter-fields{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.compact-filters .filter-fields label:first-child{grid-column:auto}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.trip-time{border:0;min-width:0;margin:0;padding:0}.trip-time legend{color:#486678;margin-bottom:10px;padding:0;font-size:14px;font-weight:600}.trip-time-fields{grid-template-columns:minmax(130px,1.8fr) minmax(60px,.75fr) minmax(60px,.75fr);gap:8px;display:grid}.trip-time-fields label{min-width:0;font-size:14px}.trip-time-fields input,.trip-time-fields select{width:100%;min-width:0;padding-left:10px;padding-right:10px}@media (max-width:600px){.filter-search{width:100%;max-width:none;margin-left:0}.compact-filters .filter-toolbar{gap:10px}.trip-time-fields{grid-template-columns:minmax(120px,1.8fr) minmax(55px,.75fr) minmax(55px,.75fr)}}.secondary.danger{color:#ad3131;border-color:#e6bcbc}.secondary.danger:hover:not(:disabled){background:#fff1f1}
