:root{--ink:#132238;--muted:#677487;--line:#e5e9ef;--paper:#fff;--wash:#f5f7fa;--navy:#102a43;--blue:#176bce;--aqua:#00a6a6;--orange:#f08c46;--danger:#c63e42;--shadow:0 20px 48px rgba(22,37,57,.09)}
.login-page{background:linear-gradient(135deg,#0f2c48,#176b8e);min-height:100vh}.login-shell{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:24px}.login-card{background:#fff;border-radius:22px;box-shadow:0 36px 100px rgba(0,0,0,.25);max-width:460px;padding:42px;width:100%}.login-logo{display:block;margin:0 0 30px;max-height:66px;max-width:150px;object-fit:contain}.login-tabs{background:#edf1f6;border-radius:10px;display:grid;grid-template-columns:1fr 1fr;margin:26px 0 20px;padding:4px}.login-tabs button{background:transparent;border:0;border-radius:8px;color:var(--muted);font-size:12px;font-weight:750;min-height:39px}.login-tabs button.active{background:#fff;box-shadow:0 2px 8px rgba(17,37,61,.12);color:var(--navy)}.login-form{display:grid;gap:15px}.login-help{color:var(--muted);font-size:11px;line-height:1.45;margin:0}.login-submit{margin-top:5px;width:100%}
.portal-user{align-items:center;display:flex;gap:12px;margin-left:auto}.portal-user span{color:#d5e4f0;font-size:13px;font-weight:700}.portal-page{max-width:1300px}.portal-booking{grid-template-columns:70px 34px minmax(230px,1.5fr) minmax(140px,.8fr) 110px}
*{box-sizing:border-box}html{background:var(--wash)}body{margin:0;background:var(--wash);color:var(--ink);font-family:Arial,Helvetica,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.52}.hidden{display:none!important}.app-shell{min-height:100vh}
.topbar{align-items:center;background:var(--navy);color:#fff;display:flex;gap:28px;min-height:72px;padding:0 34px}.brand{align-items:center;display:flex;min-width:215px;text-decoration:none}.brand-logo{display:block;height:auto;max-height:62px;object-fit:contain;width:118px}.topnav{display:flex;gap:5px;margin-right:auto}.nav-item{background:transparent;border:0;border-radius:9px;color:#b8c6d7;font-size:13px;font-weight:700;padding:10px 13px}.nav-item.active{background:rgba(255,255,255,.11);color:#fff}.role-switch{align-items:center;display:flex;gap:9px}.role-label{color:#aabbd0;font-size:12px}.segmented{background:rgba(0,0,0,.24);border-radius:9px;display:flex;padding:3px}.segmented button{background:transparent;border:0;border-radius:7px;color:#adbbcc;font-size:12px;font-weight:700;padding:7px 10px}.segmented button.active{background:#fff;color:var(--navy)}.avatar{align-items:center;background:#e7f2ff;border:2px solid rgba(255,255,255,.22);border-radius:50%;color:var(--blue);display:flex;font-size:12px;font-weight:800;height:36px;justify-content:center;width:36px}
.page{margin:0 auto;max-width:1580px;padding:31px 34px 48px}.page-heading{align-items:flex-end;display:flex;justify-content:space-between;margin-bottom:24px}.eyebrow{color:var(--blue);font-size:11px;font-weight:800;letter-spacing:.14em;margin:0 0 8px;text-transform:uppercase}h1{font-size:clamp(28px,3vw,42px);letter-spacing:-.04em;line-height:1;margin:0}.subtitle{color:var(--muted);font-size:14px;margin:10px 0 0}.heading-actions{display:flex;gap:10px}.btn{align-items:center;border:0;border-radius:10px;display:inline-flex;font-size:13px;font-weight:750;gap:8px;justify-content:center;min-height:42px;padding:0 16px}.btn-primary{background:var(--blue);box-shadow:0 8px 18px rgba(23,107,206,.22);color:#fff}.btn-secondary{background:#fff;border:1px solid var(--line);color:var(--ink)}
.metrics{display:grid;gap:14px;grid-template-columns:repeat(4,1fr);margin-bottom:18px}.metric{background:#fff;border:1px solid var(--line);border-radius:14px;padding:17px 18px}.metric-top{align-items:center;color:var(--muted);display:flex;font-size:12px;justify-content:space-between}.metric-icon{align-items:center;background:#eef5ff;border-radius:8px;color:var(--blue);display:flex;height:30px;justify-content:center;width:30px}.metric-icon.warning{background:#fff1dd;color:#a75916}.metric-icon.success{background:#e7f6f2;color:#137866}.metric strong{display:block;font-size:27px;letter-spacing:-.04em;margin-top:9px}.metric small{color:var(--muted);font-size:11px}
.workspace{display:grid;gap:18px;grid-template-columns:minmax(0,1fr) 300px}.panel{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}.panel.loading{opacity:.58;pointer-events:none}.panel-head{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:12px;justify-content:space-between;padding:18px 20px}.panel-title{font-size:15px;font-weight:780;margin:0}.panel-note{color:var(--muted);font-size:11px;margin:4px 0 0}.filters{display:flex;gap:8px}.filter{background:var(--wash);border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:12px;min-height:36px;padding:0 9px}.filter.search{min-width:210px}.daybar{align-items:center;background:#f8fafc;border-bottom:1px solid var(--line);display:flex;gap:10px;padding:11px 20px}.daybar strong{font-size:12px}.daybar span{color:var(--muted);font-size:11px}.day-count{background:#e9eef4;border-radius:20px;color:var(--muted)!important;margin-left:auto;padding:4px 8px}
.booking-list{display:flex;flex-direction:column}.booking{align-items:center;border-bottom:1px solid var(--line);display:grid;gap:9px;grid-template-columns:108px 70px minmax(128px,.8fr) minmax(210px,1.45fr) minmax(132px,.8fr) 112px 112px 70px;padding:13px 18px;transition:background .15s}.booking:last-child{border-bottom:0}.booking-open{cursor:pointer}.booking:hover{background:#f7fbff}.booking-time strong,.service-code strong{display:block;font-size:14px;letter-spacing:-.02em}.booking-time span,.service-code span{color:var(--muted);display:block;font-size:10px;margin-top:4px}.service-code strong{color:var(--blue);font-size:12px;letter-spacing:.04em}.route,.client,.agency{min-width:0}.route strong,.client strong,.agency strong{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route span,.client span,.agency span{color:var(--muted);display:block;font-size:10px;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.passenger-summary{color:var(--muted);display:grid;font-size:10px;gap:4px;line-height:1.1}.passenger-summary strong{color:var(--ink)}.status-select,.status{border:0;border-radius:20px;display:inline-flex;font-size:10px;font-weight:800;justify-content:center;padding:7px 8px;width:100%}.status.pending,.status-select.pending{background:#fff1dd;color:#a75916}.status.approved,.status-select.approved{background:#e7f6f2;color:#137866}.status.assigned,.status-select.assigned{background:#e9f1ff;color:#2b64b0}.status.completed,.status-select.completed{background:#e9f8f5;color:#087f74}.status.cancelled,.status-select.cancelled{background:#fcebec;color:#a73238}.row-actions{display:flex;gap:5px;justify-content:flex-end}.icon-button{align-items:center;background:#f1f4f8;border:0;border-radius:8px;color:var(--muted);display:flex;height:32px;justify-content:center;width:32px}.icon-button:hover{background:#e4ecf7;color:var(--blue)}.icon-button.delete:hover{background:#fcebec;color:var(--danger)}.empty{color:var(--muted);font-size:13px;padding:58px 20px;text-align:center}.empty strong{color:var(--ink);display:block;font-size:16px;margin-bottom:7px}
.side-panel{align-self:start}.quick-date{background:linear-gradient(140deg,#133b5e,#0b6c7e);color:#fff;padding:21px}.quick-date .month{color:#a8d8dd;font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.date-line{align-items:baseline;display:flex;gap:10px;margin-top:9px}.day-number{font-size:46px;font-weight:780;letter-spacing:-.06em;line-height:1}.weekday{color:#d3e8eb;font-size:13px}.side-content{padding:18px}.progress-row{align-items:center;display:flex;font-size:11px;justify-content:space-between;margin-bottom:8px}.progress-row span{color:var(--muted)}.progress-track{background:#e9edf2;border-radius:20px;height:7px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,var(--aqua),var(--blue));border-radius:inherit;height:100%;width:0}.alert{background:#fff7ed;border:1px solid #f5dfc6;border-radius:11px;margin-top:18px;padding:13px}.alert strong{display:block;font-size:11px}.alert span{color:#8b6d52;display:block;font-size:10px;line-height:1.45;margin-top:4px}.agenda{margin-top:18px}.agenda h3{font-size:12px;margin:0 0 12px}.legend{display:grid;gap:9px}.legend span{align-items:center;color:var(--muted);display:flex;font-size:11px;gap:8px}.dot{border-radius:50%;display:inline-block;height:8px;width:8px}.dot.pending{background:#d9822b}.dot.approved{background:#16826d}.dot.assigned{background:#3f7dcc}.dot.completed{background:#00a6a6}.dot.cancelled{background:#c63e42}
.overlay{align-items:center;background:rgba(11,27,45,.58);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:20}.modal{background:#fff;border-radius:18px;box-shadow:0 30px 100px rgba(0,0,0,.28);max-height:calc(100vh - 40px);max-width:780px;overflow:auto;width:100%}.modal-small{max-width:620px}.modal-head{align-items:flex-start;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding:22px 24px}.modal-head h2{font-size:21px;letter-spacing:-.03em;margin:0}.modal-head p{color:var(--muted);font-size:12px;margin:6px 0 0}.close{background:var(--wash);border:0;border-radius:8px;color:var(--muted);font-size:20px;height:34px;width:34px}.form{padding:22px 24px 24px}.form-grid{display:grid;gap:15px;grid-template-columns:repeat(2,1fr)}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}.field label{color:#47566a;font-size:11px;font-weight:750}.field input,.field select,.field textarea{background:#fbfcfd;border:1px solid #dfe4ea;border-radius:9px;color:var(--ink);min-height:42px;outline:none;padding:0 11px}.field textarea{min-height:75px;padding-top:10px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(23,107,206,.1)}.form-actions{align-items:center;border-top:1px solid var(--line);display:flex;gap:9px;justify-content:flex-end;margin-top:20px;padding-top:18px}.form-error{color:#b33b35;font-size:11px;margin-right:auto}.toast{background:var(--navy);border-radius:10px;bottom:24px;box-shadow:var(--shadow);color:#fff;font-size:13px;left:50%;padding:12px 18px;position:fixed;transform:translateX(-50%);z-index:40}
.type-icon.city{background:#f0ecff;color:#7048b8}.conditional-fields{display:grid;gap:15px;grid-column:1/-1;grid-template-columns:repeat(2,1fr)}.grid-break{grid-column:1/-1;height:0}.vehicle-field{grid-column:1}
@media(max-width:1180px){.topnav{display:none}.workspace{grid-template-columns:1fr}.side-panel{display:none}.booking{grid-template-columns:60px 34px minmax(180px,1fr) minmax(130px,.7fr) 110px 84px}.agency{display:none}}
@media(max-width:780px){.topbar{min-height:64px;padding:0 16px}.brand{margin-right:auto;min-width:0}.brand-logo{max-height:52px;width:99px}.role-label,.avatar{display:none}.page{padding:24px 14px 36px}.page-heading{align-items:flex-start;flex-direction:column;gap:18px}.metrics{grid-template-columns:repeat(2,1fr)}.heading-actions{width:100%}.heading-actions .btn{flex:1}.panel-head{align-items:flex-start;flex-direction:column}.filters{display:grid;grid-template-columns:1fr 1fr;width:100%}.filter.search{grid-column:1/-1;min-width:0}.booking{grid-template-columns:52px 30px minmax(0,1fr) 92px;padding:13px 12px}.client,.agency,.row-actions{display:none}.form-grid,.conditional-fields{grid-template-columns:1fr}.field.full{grid-column:auto}}
.btn{transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}.btn:hover{filter:brightness(1.08);transform:translateY(-4px) scale(1.035);box-shadow:0 14px 24px rgba(16,42,67,.23)}.btn:active{transform:translateY(1px) scale(.97);box-shadow:none}.btn-primary{background:linear-gradient(135deg,#176bce,#0759bb);box-shadow:0 8px 18px rgba(23,107,206,.30)}.btn-client{background:linear-gradient(135deg,#00a6a6,#087f74);box-shadow:0 8px 18px rgba(0,166,166,.28);color:#fff}.btn-admin{align-self:end;background:linear-gradient(135deg,#7048b8,#4d2c93);box-shadow:0 8px 18px rgba(112,72,184,.24);color:#fff}.btn-mini{background:#eef4fb;color:var(--blue);font-size:11px;min-height:33px;padding:0 10px}.modal-access{max-width:940px}.access-body{display:grid;gap:25px;padding:24px}.access-section{border:1px solid var(--line);border-radius:13px;padding:17px}.access-section-head{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:13px}.access-section h3{font-size:15px;margin:0}.access-section p{color:var(--muted);font-size:11px;margin:5px 0 0}.access-list{border:1px solid var(--line);border-radius:10px;max-height:240px;overflow:auto}.access-row{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:14px;justify-content:space-between;padding:12px}.access-row:last-child{border-bottom:0}.access-row strong{display:block;font-size:12px}.access-row span{color:var(--muted);display:block;font-size:10px;margin-top:4px}.access-actions{display:flex;gap:7px}.access-tag{background:#eee7ff;border-radius:20px;color:#7048b8!important;font-weight:800;padding:6px 9px}.access-empty{color:var(--muted);font-size:12px;padding:18px;text-align:center}.access-form{align-items:end;display:grid;gap:12px;grid-template-columns:1fr 180px auto;margin-top:14px}@media(max-width:780px){.access-form{grid-template-columns:1fr}.access-row{align-items:flex-start;flex-direction:column}.access-actions{width:100%}.access-actions .btn{flex:1}}
.nav-item{text-decoration:none}.access-page{max-width:1480px}.access-layout{align-items:start;display:grid;gap:18px;grid-template-columns:350px minmax(0,1fr)}.access-create-card{position:sticky;top:20px}.access-create-card .form{display:grid;gap:15px}.access-create-card small{color:var(--muted);font-size:10px;line-height:1.35}.password-row{display:flex;gap:8px}.password-row input{min-width:0;width:100%}.password-row .btn{flex:none}.access-save{margin-top:4px;width:100%}.access-directory{display:grid;gap:18px}.clients-directory{min-height:300px}.directory-table{overflow-x:auto}.directory-head,.directory-row{display:grid;gap:12px;grid-template-columns:1.1fr 1fr 1fr 1.35fr;min-width:680px;padding:13px 18px}.directory-head{background:#f7f9fc;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.directory-row{align-items:center;border-top:1px solid var(--line);font-size:12px}.directory-row strong{font-size:12px}.directory-row code{background:#f0ecff;border-radius:6px;color:#59349b;font-family:Arial,sans-serif;font-size:12px;font-weight:800;padding:6px 8px;width:max-content}.directory-row em{background:#e8f4ff;border-radius:20px;color:#176bce;font-size:10px;font-style:normal;font-weight:800;padding:6px 8px}.directory-actions{display:flex;gap:7px}.directory-actions .btn{width:max-content}@media(max-width:980px){.access-layout{grid-template-columns:1fr}.access-create-card{position:static}}@media(max-width:780px){.access-layout{gap:14px}.access-page{padding:24px 14px}.directory-head,.directory-row{min-width:620px}.access-create-card .form{padding:18px}}
.status-active,.status-inactive{border-radius:12px;display:inline-block;font-size:9px;margin-left:5px;padding:3px 6px;vertical-align:middle}.status-active{background:#e7f6f2;color:#137866}.status-inactive{background:#fcebec;color:#a73238}.btn-danger{background:#fcebec;color:#a73238}.btn-danger:hover{background:#d94a50;color:#fff}
.topbar{gap:24px;min-height:92px;padding:15px 34px}.brand{min-width:120px}.brand-logo{max-height:62px}.topnav{margin-right:0}.connected-users{align-items:center;display:flex;flex:1;gap:8px;justify-content:center;min-height:36px;overflow:hidden}.presence-person{align-items:center;color:#d9e5ef;display:flex;font-size:11px;font-weight:700;gap:5px;max-width:142px;white-space:nowrap}.presence-person i{align-items:center;border:2px solid rgba(255,255,255,.28);border-radius:50%;color:#fff;display:flex;font-size:10px;font-style:normal;height:28px;justify-content:center;width:28px}.presence-person b{overflow:hidden;text-overflow:ellipsis}.presence-empty{color:#8fa8c0;font-size:11px}.session-controls{align-items:center;display:flex;gap:8px;margin-left:auto}.session-user{color:#fff;font-size:13px;font-weight:800}.logout-session{background:rgba(255,255,255,.1);color:#fff}.logout-session:hover{background:rgba(255,255,255,.2)}@media(max-width:1180px){.connected-users{display:none}}@media(max-width:780px){.topbar{min-height:82px;padding:15px 16px}.session-user{display:none}.logout-session{padding:9px}.brand-logo{max-height:52px}}
.topnav .nav-item:not(:disabled),.logout-session{transition:background .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease}.topnav .nav-item:not(:disabled):hover,.logout-session:hover{background:#e18428;color:#fff;transform:translateY(-4px) scale(1.06);box-shadow:0 10px 19px rgba(0,0,0,.26)}.topnav .nav-item.active{background:#d9822b;color:#fff;box-shadow:0 6px 14px rgba(217,130,43,.30)}.topnav .nav-item:not(:disabled):active,.logout-session:active{transform:translateY(1px) scale(.96);box-shadow:none}.session-controls{gap:20px}.logout-session{padding-left:16px;padding-right:16px}
.connections-row{grid-template-columns:1.1fr .8fr 1.2fr 1.2fr .75fr!important;min-width:760px}
.date-line{position:relative}.current-clock{color:#fff;font-size:22px;font-weight:800;letter-spacing:-.04em;margin-left:auto;padding-right:2px}
.filters{flex:1;justify-content:flex-end;min-width:0}.filter-locator{min-width:165px}.filter-client{min-width:185px}.filters select.filter{min-width:130px}@media(max-width:780px){.filter-locator,.filter-client,.filters select.filter{min-width:0}.filters{grid-template-columns:1fr 1fr}.filter-locator,.filter-client{grid-column:auto}}
.panel-head:has(.filters){padding:16px 20px}.panel-head .filters{align-items:center;flex-wrap:wrap;justify-content:space-between;width:100%}.panel-head .filters .filter{flex:1 1 140px;min-width:0}.panel-head .filters #month-filter{flex-basis:190px;min-width:190px}.panel-head .filters .filter-locator{flex-basis:165px}.panel-head .filters .filter-client{flex-basis:185px}@media(max-width:780px){.panel-head:has(.filters){padding:14px}.panel-head .filters{display:grid;grid-template-columns:1fr}.panel-head .filters .filter,.panel-head .filters #month-filter,.panel-head .filters .filter-locator,.panel-head .filters .filter-client{min-width:0;width:100%}}
.portal-cancel-button{background:#fff0f1;border:1px solid #f0cfd3;border-radius:8px;color:#b4232b;cursor:pointer;font-size:11px;font-weight:800;min-height:32px;padding:0 10px}.portal-cancel-button:hover{background:#fce4e7;color:#94232b}
.booking-tab[data-service-tab="fulfilled"],.booking-tab[data-portal-tab="fulfilled"]{background:#ecf8f2;border-color:#c6e8d8;color:#087b68}.booking-tab.active[data-service-tab="fulfilled"],.booking-tab.active[data-portal-tab="fulfilled"]{border-color:#addcc7;box-shadow:0 -3px 0 #0b9576;color:#087b68}
.backup-panel{margin-top:18px}.backups-row{grid-template-columns:150px 210px minmax(0,1fr) 125px!important;min-width:650px}
.backup-recovery-body{padding:18px 24px 24px}.backup-recovery-list{border:1px solid var(--line);border-radius:11px;max-height:420px;overflow:auto}.backup-recovery-item{align-items:center;border-bottom:1px solid var(--line);display:grid;gap:12px;grid-template-columns:1fr auto;padding:14px}.backup-recovery-item:last-child{border-bottom:0}.backup-recovery-item strong{display:block;font-size:13px}.backup-recovery-item span{color:var(--muted);display:block;font-size:11px;margin-top:4px}.backup-recovery-item time{color:#087b68;font-weight:800}
.service-delete-button{background:#fff0f1;border:1px solid #f0cfd3;border-radius:8px;color:#b4232b;cursor:pointer;font-size:11px;font-weight:800;min-height:32px;padding:0 10px}.service-delete-button:hover{background:#fce4e7;color:#94232b}
.row-actions .icon-button{transition:background .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}.row-actions .icon-button:not(.delete):not(.restore){background:#e8f1ff;color:#176bce}.row-actions .icon-button.delete{background:#fcebec;border:1px solid #efc0c5;color:#c1272d}.row-actions .icon-button:hover{box-shadow:0 7px 14px rgba(16,42,67,.16);transform:translateY(-3px) scale(1.08)}.row-actions .icon-button.delete:hover{background:#f8dfe2;color:#9f2028}.btn-danger{background:#c1272d;box-shadow:0 8px 18px rgba(193,39,45,.24);color:#fff}.btn-danger:hover{background:#a71f27}.delete-service-message{color:#47566a;font-size:14px;line-height:1.5;margin:0}
@media(min-width:1181px){.booking{grid-template-columns:96px 68px minmax(115px,.8fr) minmax(180px,1.35fr) minmax(95px,.65fr) minmax(120px,.8fr) 100px 110px 80px}.row-actions{flex-wrap:wrap;gap:8px;justify-content:flex-start;min-width:80px}.row-actions .icon-button{flex:0 0 32px}}
.heading-actions .btn{align-items:center;display:inline-flex;gap:8px;text-decoration:none}.heading-actions a.btn{text-decoration:none}.button-icon{font-size:17px;line-height:1}
.topnav .nav-item:not(:disabled):hover{background:rgba(173,204,235,.22);color:#fff}.topnav .nav-item.active:hover{background:#d9822b;color:#fff}.logout-session:hover{background:#e18428;color:#fff}
.service-date-field{grid-column:1}@media(max-width:780px){.service-date-field{grid-column:auto}}
.app-date-picker{position:relative}.app-date-picker input{padding-right:42px}.app-calendar-trigger{align-items:center;background:transparent;border:0;color:#102a43;cursor:pointer;display:flex;font-size:17px;height:42px;justify-content:center;position:absolute;right:0;top:0;width:42px}.app-calendar-popover{background:#fff;border:1px solid #dbe5ef;border-radius:12px;box-shadow:0 14px 34px rgba(16,42,67,.2);padding:12px;position:absolute;right:0;top:calc(100% + 6px);width:280px;z-index:60}.app-calendar-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.app-calendar-header button{background:#edf5ff;border:0;border-radius:7px;color:#176bce;cursor:pointer;font-size:23px;height:30px;line-height:1;width:30px}.app-calendar-header strong{font-size:13px}.app-calendar-days,.app-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}.app-calendar-days{color:#63758a;font-size:10px;font-weight:800;margin-bottom:5px}.calendar-day{background:transparent;border:0;border-radius:7px;color:#17324d;cursor:pointer;font-size:12px;height:31px}.calendar-day:hover{background:#e8f2ff;color:#0b63ce}.calendar-day.is-selected{background:#176bce;color:#fff}.calendar-day.is-today{box-shadow:inset 0 0 0 1px #176bce}.calendar-empty{height:31px}
.booking-tabs{background:#f8fafc;border-bottom:1px solid var(--line);display:flex;gap:6px;padding:9px 18px}.booking-tab{background:transparent;border:0;border-radius:8px;color:var(--muted);cursor:pointer;font-size:12px;font-weight:750;padding:8px 13px}.booking-tab:hover{background:#eaf2fb;color:var(--blue)}.booking-tab.active{background:#e7f0fb;color:var(--blue)}.booking{gap:12px;grid-template-columns:112px 76px minmax(132px,.85fr) minmax(205px,1.45fr) minmax(110px,.7fr) minmax(140px,.9fr) 112px 112px 70px;padding:15px 18px}.service-code strong{font-size:14px}.booking-time strong{font-size:15px}.booking-time span,.agency span,.route span,.client span{font-size:11px;font-weight:650;margin-top:5px}.booking-time span{color:#315474}.agency strong{color:#0b63ce;font-size:13px}.agency span{color:#536d86}.route strong{align-items:center;display:flex;gap:7px}.route-type-icon{align-items:center;background:#edf5ff;border-radius:7px;color:var(--blue);display:inline-flex;font-size:15px;font-style:normal;height:28px;justify-content:center;width:28px}.route-type-icon.port{background:#e9f8f5;color:#087f74}.route-type-icon.road{background:#fff3e8;color:#c66322}.route-type-icon.city{background:#f0ecff;color:#7048b8}.flight-info{display:grid;gap:5px;min-width:0}.flight-info span{color:#a75916;font-size:10px;font-weight:800;text-transform:uppercase}.flight-info strong{color:#9a4f12;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.passenger-summary{font-size:11px;gap:6px}.client span{color:#53708c}.booking .flight-empty{visibility:hidden}
.cancellation-note{color:#a73238;display:block;font-size:10px;font-style:normal;font-weight:700;line-height:1.3;margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.booking-tabs{background:#f7f9fc;gap:5px;padding:12px 20px 0}.booking-tab{background:#eaf1fa;border:1px solid #d7e2ef;border-bottom:0;border-radius:11px 11px 0 0;font-size:12px;font-weight:850;margin-bottom:-1px;padding:10px 17px;position:relative}.booking-tab[data-service-tab="active"],.booking-tab[data-portal-tab="active"]{color:#075fc9}.booking-tab[data-service-tab="cancelled"],.booking-tab[data-portal-tab="cancelled"]{background:#fff0f1;border-color:#f0cfd3;color:#b4232b}.booking-tab:hover{transform:translateY(-2px)}.booking-tab.active{background:#fff;border-color:#cfddeb;box-shadow:0 -3px 0 #176bce;color:#075fc9;z-index:1}.booking-tab.active[data-service-tab="cancelled"],.booking-tab.active[data-portal-tab="cancelled"]{border-color:#eebdc3;box-shadow:0 -3px 0 #c63e42;color:#b4232b}
.portal-filters{align-items:center;background:#f7f9fc;display:flex;gap:8px;justify-content:flex-end;padding:12px 18px 0}.portal-filters .filter{min-width:170px}.locator-value{color:#7846c6;font-weight:850;letter-spacing:.015em}.icon-button.restore{background:#e4f6f0;color:#087b68}.icon-button.restore:hover{background:#c9ede2;color:#056150}
@media (max-width:700px){.portal-filters{align-items:stretch;flex-direction:column}.portal-filters .filter{min-width:0;width:100%}}
.client-directory-row{cursor:pointer}.client-directory-row:hover{background:#f7fbff}
.portal-create-action{display:flex;justify-content:flex-end;margin:18px 0}.portal-create-action .btn{align-items:center;display:inline-flex;gap:8px}
