:root{--navy:#10283f;--deep:#081a2b;--blue:#1d6fa5;--bright:#2a8fca;--ink:#152536;--muted:#718096;--line:#dce4eb;--surface:#fff;--bg:#f2f5f7;--danger:#b42318;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;color:var(--ink);background:var(--bg)}button,input{font:inherit}.eyebrow{margin:0 0 18px;color:var(--bright);font-size:.72rem;font-weight:800;letter-spacing:.22em}
.login-page{display:grid;place-items:center;min-height:100vh;padding:32px;background:radial-gradient(circle at 12% 14%,rgba(42,143,202,.24),transparent 28%),linear-gradient(135deg,var(--deep) 0 48%,#edf2f5 48% 100%)}
.login-shell{display:grid;grid-template-columns:1.05fr .95fr;width:min(1020px,100%);min-height:610px;overflow:hidden;border-radius:22px;background:var(--surface);box-shadow:0 30px 80px rgba(3,18,30,.24)}
.login-brand{position:relative;display:flex;flex-direction:column;justify-content:flex-end;padding:70px;overflow:hidden;color:#fff;background:linear-gradient(155deg,#173a59,#0c2236)}
.login-brand:before,.login-brand:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.12);border-radius:50%}.login-brand:before{width:430px;height:430px;top:-180px;right:-210px}.login-brand:after{width:280px;height:280px;top:-105px;right:-135px}
.brand-mark{position:absolute;top:62px;left:70px;display:flex;align-items:flex-end;gap:5px;height:36px;transform:skew(-17deg)}.brand-mark span{width:11px;border-radius:2px;background:var(--bright)}.brand-mark span:nth-child(1){height:20px;opacity:.55}.brand-mark span:nth-child(2){height:28px;opacity:.78}.brand-mark span:nth-child(3){height:36px}
.login-brand h1{max-width:430px;margin:0;font-size:clamp(2.35rem,4.3vw,4rem);line-height:1.02;letter-spacing:-.045em}.brand-description{max-width:390px;margin:26px 0 0;color:#b9cad7;font-size:1rem;line-height:1.75}
.login-card{display:flex;flex-direction:column;justify-content:center;padding:70px 76px}.login-card__header h2{margin:0;color:var(--navy);font-size:2rem;letter-spacing:-.035em}.login-card__header>p:last-child{margin:12px 0 34px;color:var(--muted)}
.login-form{display:flex;flex-direction:column}.login-form>label:not(.remember-option){margin:0 0 8px;font-size:.82rem;font-weight:750}.field-wrap{position:relative;margin-bottom:6px}.field-wrap svg{position:absolute;top:50%;left:16px;width:19px;height:19px;transform:translateY(-50%);fill:none;stroke:#7b8a99;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.field-wrap input{width:100%;height:52px;padding:0 16px 0 48px;color:var(--ink);border:1px solid var(--line);border-radius:9px;outline:none;transition:border-color .2s,box-shadow .2s}.field-wrap input:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(29,111,165,.12)}
.field-error{min-height:23px;color:var(--danger);font-size:.75rem}.form-error{margin-bottom:16px;padding:0;color:var(--danger);font-size:.84rem}.form-error:empty,.form-error ul:empty{display:none}.form-error ul{margin:0;padding-left:18px}.remember-option{display:flex;align-items:center;gap:9px;margin:6px 0 24px;color:#526273;font-size:.84rem;cursor:pointer}.remember-option input{width:17px;height:17px;accent-color:var(--blue)}
.login-form button{display:flex;justify-content:center;gap:12px;align-items:center;height:52px;color:#fff;font-weight:750;border:0;border-radius:9px;background:var(--blue);cursor:pointer;transition:transform .2s,background .2s}.login-form button:hover{background:#165e8e;transform:translateY(-1px)}.support-text{margin:27px 0 0;color:#8a96a2;font-size:.75rem;text-align:center}
.app-page{min-height:100vh}.app-header{display:flex;align-items:center;justify-content:space-between;min-height:82px;padding:0 clamp(24px,5vw,72px);background:#fff;border-bottom:1px solid var(--line)}.app-logo{display:flex;align-items:center;color:var(--navy);text-decoration:none;font-size:.88rem;font-weight:850;letter-spacing:.13em}.app-logo small{margin-left:9px;padding-left:9px;color:var(--muted);font-size:.58rem;letter-spacing:.18em;border-left:1px solid var(--line)}
.app-logo__mark{display:flex;align-items:flex-end;gap:2px;height:21px;margin-right:10px;transform:skew(-15deg)}.app-logo__mark i{display:block;width:5px;background:var(--bright)}.app-logo__mark i:nth-child(1){height:11px;opacity:.55}.app-logo__mark i:nth-child(2){height:16px;opacity:.75}.app-logo__mark i:nth-child(3){height:21px}.user-area{display:flex;align-items:center;gap:12px}.user-avatar{display:grid;place-items:center;width:38px;height:38px;color:#fff;font-weight:750;border-radius:50%;background:var(--blue)}.user-data{display:flex;flex-direction:column;min-width:160px}.user-data strong{color:var(--navy);font-size:.83rem}.user-data span{margin-top:3px;color:var(--muted);font-size:.72rem}.logout-button{padding:8px 12px;color:var(--muted);border:0;background:transparent;cursor:pointer}.logout-button:hover{color:var(--blue)}
.app-content{display:grid;place-items:center;min-height:calc(100vh - 82px);padding:40px}.empty-state{text-align:center}.empty-state__icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 22px;color:var(--blue);font-size:1.4rem;border:1px solid #bdd4e3;border-radius:50%;background:#e8f2f8}.empty-state h1{margin:0;color:var(--navy);font-size:1.45rem;letter-spacing:-.025em}.empty-state p{margin:10px 0 0;color:var(--muted);font-size:.9rem}
@media(max-width:800px){.login-page{padding:18px;background:var(--deep)}.login-shell{grid-template-columns:1fr;min-height:auto}.login-brand{min-height:270px;padding:42px}.brand-mark{top:34px;left:42px}.login-brand h1{font-size:2.4rem}.brand-description{display:none}.login-card{padding:44px 42px 48px}}
@media(max-width:560px){.login-page{padding:0}.login-shell{min-height:100vh;border-radius:0}.login-brand{min-height:225px;padding:34px 28px}.brand-mark{top:28px;left:28px;transform:scale(.8) skew(-17deg);transform-origin:left top}.login-brand h1{font-size:2rem}.login-brand .eyebrow{margin-bottom:12px}.login-card{padding:38px 28px 42px}.app-header{align-items:flex-start;gap:18px;padding:19px 20px}.app-logo small,.user-avatar{display:none}.user-data{min-width:0;text-align:right}.user-data span{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-area{gap:4px}}

/* Dashboard */
.app-content:has(.dashboard-shell){display:block;min-height:calc(100vh - 82px);padding:0;background:#f4f7f9}.dashboard-shell{width:min(1220px,calc(100% - 48px));margin:0 auto;padding:50px 0 72px}.dashboard-kicker{margin:0 0 8px;color:var(--bright);font-size:.68rem;font-weight:850;letter-spacing:.2em}.dashboard-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:28px}.dashboard-intro h1{margin:0;color:var(--navy);font-size:clamp(1.8rem,3vw,2.5rem);letter-spacing:-.04em}.dashboard-intro>div>p:last-child{margin:10px 0 0;color:var(--muted);font-size:.9rem}.report-selector-wrap{min-width:310px}.report-selector-wrap label,.form-group label{display:block;margin-bottom:8px;color:#425466;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.report-selector,.form-group input{width:100%;height:48px;padding:0 42px 0 14px;color:var(--navy);font-weight:650;border:1px solid #d7e0e6;border-radius:9px;background:#fff;outline:none}.report-selector{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235b6b79' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center}.report-selector:focus,.form-group input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(29,111,165,.1)}
.filter-panel{padding:24px 26px;border:1px solid #dce5eb;border-radius:14px;background:#fff;box-shadow:0 8px 28px rgba(18,49,72,.05)}.filter-panel__heading{display:flex;align-items:center;gap:12px;margin-bottom:22px}.filter-panel__heading h2{margin:0;color:var(--navy);font-size:1rem}.filter-panel__heading p{margin:4px 0 0;color:var(--muted);font-size:.76rem}.filter-icon{display:grid;place-items:center;width:38px;height:38px;color:var(--blue);font-size:1.4rem;border-radius:9px;background:#eaf3f8}.report-filters{display:flex;align-items:flex-end;gap:18px}.filter-fields{display:grid;grid-template-columns:repeat(3,minmax(170px,1fr));flex:1;gap:16px}.filter-fields[hidden]{display:none}.form-group{position:relative}.form-group input{padding:0 14px;font-weight:500}.generate-button{display:flex;align-items:center;justify-content:center;gap:14px;height:48px;padding:0 24px;white-space:nowrap;color:#fff;font-weight:750;border:0;border-radius:9px;background:var(--blue);cursor:pointer}.generate-button:hover{background:#155e8e}.autocomplete-list{position:absolute;z-index:20;top:76px;left:0;right:0;max-height:230px;overflow:auto;padding:5px;border:1px solid #d7e0e6;border-radius:9px;background:#fff;box-shadow:0 14px 32px rgba(16,40,63,.15)}.autocomplete-list button{display:block;width:100%;padding:10px 12px;color:var(--navy);text-align:left;border:0;border-radius:6px;background:transparent;cursor:pointer}.autocomplete-list button:hover{background:#edf5f9}
.format-group{flex:0 0 118px}.format-selector{min-width:118px}.generate-button:disabled{opacity:.65;cursor:wait}
.summary-section{margin-top:42px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:20px}.section-heading h2{margin:0;color:var(--navy);font-size:1.55rem;letter-spacing:-.03em}.section-heading>span{color:var(--muted);font-size:.74rem}.summary-alert{margin-bottom:16px;padding:12px 16px;color:#8a4b0f;font-size:.8rem;border:1px solid #f3d6b4;border-radius:9px;background:#fff7ed}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:18px}.metric-card{position:relative;display:flex;flex-direction:column;padding:22px 24px;overflow:hidden;border:1px solid #dce5eb;border-radius:13px;background:#fff}.metric-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--blue)}.metric-card--good:before{background:#2d9b68}.metric-card--warning:before{background:#d17a24}.metric-card>span{color:#647687;font-size:.74rem;font-weight:700}.metric-card strong{margin:8px 0 3px;color:var(--navy);font-size:2rem;line-height:1}.metric-card small{color:#83909c;font-size:.7rem}.summary-table-card{overflow:hidden;border:1px solid #dce5eb;border-radius:14px;background:#fff}.summary-table-card__title{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;border-bottom:1px solid #e6ecef}.summary-table-card__title h3{margin:0;color:var(--navy);font-size:1rem}.summary-table-card__title p{margin:5px 0 0;color:var(--muted);font-size:.72rem}.live-pill{display:flex;align-items:center;gap:7px;padding:6px 10px;color:#327654;font-size:.66rem;font-weight:750;border-radius:20px;background:#eaf7f0}.live-pill i{width:6px;height:6px;border-radius:50%;background:#33a46f}.table-scroll{overflow-x:auto}.summary-table{width:100%;border-collapse:collapse}.summary-table th,.summary-table td{padding:15px 24px;text-align:right;border-bottom:1px solid #edf1f3}.summary-table th:first-child,.summary-table td:first-child{text-align:left}.summary-table th{color:#758493;font-size:.67rem;text-transform:uppercase;letter-spacing:.06em;background:#fafcfd}.summary-table td{color:#34495a;font-size:.8rem}.summary-table tr:last-child td{border-bottom:0}.summary-table .positive{color:#237c53}.summary-table .negative{color:#b66222}.summary-total td{font-weight:750;background:#f5f9fb}.availability{display:flex;align-items:center;justify-content:flex-end;gap:10px}.availability>span{width:92px;height:5px;overflow:hidden;border-radius:5px;background:#e6ecef}.availability>span i{display:block;height:100%;border-radius:5px;background:#2d9b68}.availability b{min-width:43px;font-size:.72rem}
.history-results{margin-top:42px}.history-table{min-width:1120px}.history-table th,.history-table td{text-align:left;white-space:nowrap}.history-table .history-location{max-width:340px;overflow:hidden;text-overflow:ellipsis}.status-chip{display:inline-flex;padding:5px 9px;color:#697783;font-size:.68rem;font-weight:750;border-radius:20px;background:#eef2f4}.status-chip--on{color:#237c53;background:#e9f7ef}.map-link{color:var(--blue);font-size:.74rem;font-weight:750;text-decoration:none}.map-link:hover{text-decoration:underline}.empty-result{padding:30px!important;color:var(--muted)!important;text-align:center!important}.history-results+.summary-section{margin-top:48px}
.report-loading{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;padding:24px;background:rgba(8,26,43,.58);backdrop-filter:blur(3px)}.report-loading[hidden]{display:none}.report-loading__card{width:min(560px,100%);padding:30px;border-radius:15px;background:#fff;box-shadow:0 28px 80px rgba(0,0,0,.25)}.report-loading__card p{margin:20px 0 0;color:var(--muted);font-size:.8rem;text-align:center}.skeleton{overflow:hidden;position:relative;border-radius:6px;background:#e8eef2}.skeleton:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.8),transparent);animation:skeleton-wave 1.25s infinite}.skeleton--title{width:44%;height:22px}.skeleton--line{width:68%;height:11px;margin-top:12px}.skeleton-table{display:grid;gap:9px;margin-top:28px}.skeleton--row{height:36px}@keyframes skeleton-wave{to{transform:translateX(100%)}}
@media(max-width:900px){.dashboard-intro{align-items:stretch;flex-direction:column}.report-selector-wrap{min-width:0;width:100%}.report-filters{align-items:stretch;flex-direction:column}.filter-fields{width:100%}.format-group{width:100%}.generate-button{align-self:flex-end}.metric-grid{grid-template-columns:1fr}.summary-table th,.summary-table td{padding:14px 16px}}
@media(max-width:640px){.dashboard-shell{width:min(100% - 28px,1220px);padding-top:30px}.filter-panel{padding:20px}.filter-fields{grid-template-columns:1fr}.generate-button{width:100%}.section-heading{align-items:flex-start;flex-direction:column;gap:8px}.availability>span{display:none}.summary-table th,.summary-table td{padding:13px 12px}.summary-table th:last-child,.summary-table td:last-child{display:none}}
