:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#153447;background:#f4f7f9;font-synthesis:none;--city-blue: #0079be;--city-blue-dark: #005f94;--city-blue-light: #62cbe8;--city-green: #71973e;--city-green-dark: #54752c;--city-navy: #153447;--city-background: #f4f7f9;--city-border: #c5d3dc;--muted-text: #617480;--white: #ffffff}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--city-background)}a{color:var(--city-blue-dark)}button,.button-link{display:inline-block;padding:.75rem 1rem;border:0;border-radius:.55rem;background:var(--city-blue);color:var(--white);font:inherit;font-weight:750;text-align:center;text-decoration:none;cursor:pointer;transition:background-color .15s ease,transform .15s ease,box-shadow .15s ease}button:hover,.button-link:hover{background:var(--city-blue-dark);color:var(--white);box-shadow:0 4px 12px #0079be38}button:active,.button-link:active{transform:translateY(1px)}button:focus-visible,.button-link:focus-visible,a:focus-visible{outline:3px solid rgba(98,203,232,.55);outline-offset:3px}button:disabled{opacity:.65;cursor:not-allowed}button.secondary,.secondary{border:1px solid rgba(255,255,255,.65);background:transparent;color:var(--white)}button.secondary:hover,.secondary:hover{background:#ffffff1f;color:var(--white);box-shadow:none}.secondary.dark{border-color:var(--city-blue);color:var(--city-blue-dark)}.secondary.dark:hover{background:#0079be14;color:var(--city-blue-dark)}.app-header{display:flex;min-height:88px;align-items:center;justify-content:space-between;gap:1rem;padding:1rem clamp(1rem,4vw,4rem);border-bottom:5px solid var(--city-blue);background:var(--city-navy);color:var(--white)}.brand{display:grid;color:var(--white);text-decoration:none}.brand:hover{color:var(--white)}.brand strong{margin-top:.2rem;font-size:1.35rem}.app-header nav{display:flex;align-items:center;gap:1.2rem}.app-header nav>a{color:var(--white);font-weight:650;text-decoration:none}.app-header nav>a:hover{text-decoration:underline;text-underline-offset:.3rem}.eyebrow{color:var(--city-blue-light);font-size:.74rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase}.hero,.dashboard,.page{width:min(1180px,calc(100% - 2rem));margin:3rem auto}.narrow{width:min(930px,calc(100% - 2rem))}.hero{display:flex;min-height:500px;align-items:center;padding:clamp(2rem,7vw,5rem);border-radius:1.25rem;background:radial-gradient(circle at 88% 20%,rgba(98,203,232,.32),transparent 32%),linear-gradient(120deg,var(--city-navy) 0%,var(--city-blue-dark) 55%,var(--city-blue) 100%);color:var(--white);box-shadow:0 24px 60px #1534472e}.hero>div{max-width:650px}.hero h1,.welcome h1{margin:.5rem 0;font-size:clamp(2rem,5vw,4rem);line-height:1.05}.hero p{max-width:600px;color:#e4f3f8;font-size:1.05rem;line-height:1.65}.dashboard{display:grid;gap:2rem}.welcome,.panel,.table-wrap,.empty{padding:2rem;border:1px solid rgba(197,211,220,.55);border-radius:1rem;background:var(--white);box-shadow:0 8px 30px #15344714}.welcome p,.page-heading p,.cards span{color:var(--muted-text)}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.workflow-approver-grid{display:grid;gap:1.25rem}.heading-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.75rem}.date-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.date-grid .full{grid-column:1 / -1}.field-help{margin:0;color:var(--muted-text);font-size:.88rem}.section-heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.section-heading-row h2{margin:.35rem 0 0}.authorization-status{padding:.4rem .7rem;border-radius:999px;background:#e5eef3;color:var(--city-navy);font-size:.82rem;font-weight:800}.authorization-status.active{background:#eaf4df;color:var(--city-green-dark)}.authorization-status.expiring-soon{background:#fff4d6;color:#805b00}.authorization-status.expired{background:#fde7e7;color:#9b1c1c}.authorization-status.returned{background:#e9e4f5;color:#513b78}.authorization-filters{display:flex;flex-wrap:wrap;gap:.65rem;margin-bottom:1rem}.authorization-filters button{display:inline-flex;align-items:center;gap:.5rem}.authorization-filters button span{min-width:1.5rem;padding:.1rem .4rem;border-radius:999px;background:#ffffff40}.table-scroll{overflow-x:auto}.table-panel table{width:100%;border-collapse:collapse}.table-panel th,.table-panel td{padding:.85rem;border-bottom:1px solid #dbe5ea;text-align:left;vertical-align:top}.table-panel td small{display:block;margin-top:.3rem;color:var(--muted-text)}.return-panel{max-width:720px;margin-top:1rem}.renewal-label{color:var(--city-blue);font-weight:800}.renewal-link{font-weight:700}@media(max-width:650px){.date-grid{grid-template-columns:1fr}}.workflow-approver-card{display:grid;gap:1rem;padding:2rem;border:1px solid rgba(197,211,220,.75);border-radius:1rem;background:var(--white);box-shadow:0 8px 30px #15344714}.workflow-approver-card h2{margin:.35rem 0}.workflow-approver-card p,.workflow-approver-card small{color:var(--muted-text)}.workflow-approver-card>button{justify-self:start}.alert.warning{border-color:#d69e2e;background:#fffaf0;color:#744210}.cards article{display:flex;min-height:180px;flex-direction:column;align-items:flex-start;gap:.7rem;padding:1.35rem;border:1px solid rgba(197,211,220,.55);border-top:4px solid var(--city-blue);border-radius:.9rem;background:var(--white);box-shadow:0 8px 25px #15344712}.cards article:nth-child(2){border-top-color:var(--city-green)}.cards strong{font-size:1.15rem}.cards span{flex:1}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.page-heading h2{margin:.25rem 0;font-size:2rem}.panel{margin-bottom:1rem}.revision-entry{display:grid;gap:.35rem;padding:1rem 0;border-bottom:1px solid rgba(197,211,220,.55)}.revision-entry:last-child{border-bottom:0}.revision-entry small{color:var(--muted-text)}.revision-entry p{margin:.25rem 0 0}.panel h3{margin-top:0;color:var(--city-navy)}.form-grid,.details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.25rem}.form-grid label{display:grid;gap:.4rem;color:#324b5d;font-weight:700}.full{grid-column:1 / -1}input,select,textarea{width:100%;padding:.72rem;border:1px solid var(--city-border);border-radius:.45rem;background:var(--white);color:var(--city-navy);font:inherit}input:focus,select:focus,textarea:focus{border-color:var(--city-blue);outline:3px solid rgba(98,203,232,.3)}.section-heading{display:flex;align-items:center;justify-content:space-between}.text-button{padding:.25rem;background:transparent}.text-button:hover{background:transparent;box-shadow:none}.danger{color:#a53030}.check{display:flex;align-items:flex-start;gap:.75rem;line-height:1.5}.check input{width:auto;margin-top:.3rem}.form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin:1.2rem 0 3rem}.alert{margin-bottom:1rem;padding:1rem 1.25rem;border-radius:.6rem}.alert.error{border:1px solid #f2b8b8;background:#fde8e8;color:#8b2020}.alert.success{border:1px solid #bad09e;background:#eef6e7;color:#3f6120}.table-wrap{overflow-x:auto;padding:0}table{width:100%;min-width:760px;border-collapse:collapse}th,td{padding:1rem;border-bottom:1px solid #e3e8eb;text-align:left}th{color:#536774;font-size:.8rem;letter-spacing:.05em;text-transform:uppercase}td small{display:block;margin-top:.25rem;color:#697985}.status{display:inline-block;padding:.35rem .6rem;border-radius:999px;background:#e5f4fa;color:var(--city-blue-dark);font-size:.82rem;font-weight:750}.status.large{font-size:.95rem}.status.approved,.status.completed{background:#e8f1df;color:var(--city-green-dark)}.status.denied,.status.rejected,.status.cancelled{background:#fde8e8;color:#8b2020}.empty{padding:4rem 2rem;text-align:center}.details{margin:0}.details div{padding:.5rem 0}.details dt{color:#647785;font-size:.8rem;font-weight:750;letter-spacing:.04em;text-transform:uppercase}.details dd{margin:.25rem 0 0;line-height:1.5}.details.driver+.details.driver{margin-top:1rem;padding-top:1rem;border-top:1px solid #dce3e8}.timeline{margin:0;padding:0;list-style:none}.timeline li{position:relative;margin-left:.6rem;padding:0 0 1.5rem 1.8rem;border-left:3px solid var(--city-border)}.timeline li:last-child{border-left-color:transparent}.timeline li:before{position:absolute;top:2px;left:-8px;width:13px;height:13px;border-radius:50%;background:#aab8c2;content:""}.timeline li.pending:before{background:var(--city-blue-light)}.timeline li.approved{border-left-color:var(--city-green)}.timeline li.approved:before{background:var(--city-green)}.timeline li.denied:before,.timeline li.rejected:before{background:#a53030}.timeline li div{display:grid;gap:.2rem}.timeline span,.timeline small{color:#657682}.timeline p{margin:.4rem 0 0}@media(max-width:760px){.cards,.form-grid,.details{grid-template-columns:1fr}.full{grid-column:auto}.app-header{align-items:flex-start}.app-header nav{flex-direction:column;align-items:flex-end;gap:.5rem}.app-header nav>a{display:none}.page-heading{flex-direction:column}.form-actions{flex-direction:column-reverse}.form-actions>*{width:100%}}.person-search{position:relative}.person-search>label{display:grid;gap:.4rem;color:#324b5d;font-weight:700}.selected-person-email{display:block;margin-top:.35rem;color:var(--city-green-dark);font-weight:650}.person-search-results{position:absolute;z-index:20;top:calc(100% + .35rem);right:0;left:0;overflow:hidden;max-height:320px;border:1px solid var(--city-border);border-radius:.55rem;background:var(--white);box-shadow:0 12px 30px #15344729}button.person-search-result{display:grid;width:100%;gap:.2rem;padding:.8rem 1rem;border:0;border-bottom:1px solid #e3e8eb;border-radius:0;background:var(--white);color:var(--city-navy);text-align:left}button.person-search-result:last-child{border-bottom:0}button.person-search-result:hover,button.person-search-result:focus{background:#eef7fb;color:var(--city-navy);box-shadow:none}.person-search-result span{color:var(--muted-text);font-size:.85rem;font-weight:500}.person-search-message{padding:.9rem 1rem;color:var(--muted-text)}.error-text{color:#8b2020}.table-wrapper{overflow-x:auto}.table-panel{padding:0;overflow:hidden}.empty-state{padding:4rem 2rem;text-align:center}.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}.decision-panel>label{display:grid;gap:.5rem;font-weight:700}.optional{color:var(--muted-text);font-size:.85rem;font-weight:500}.decision-actions{margin-bottom:0}.muted{color:var(--muted-text)}.routing-actions{margin-bottom:0}.warning-panel{border-left:4px solid #d6a026}.department-chips{display:flex;flex-wrap:wrap;gap:.55rem}button.department-chip{padding:.45rem .7rem;border:1px solid #d6a026;background:#fff8e7;color:#6c500d;font-size:.9rem}button.department-chip:hover{background:#f8e9bd;color:#4e3908;box-shadow:none}.row-actions{white-space:nowrap}.row-actions .text-button+.text-button{margin-left:.65rem}.table-message{padding:1rem 2rem}.report-controls{display:grid;grid-template-columns:minmax(240px,2fr) repeat(3,minmax(150px,1fr));gap:1rem}.report-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.report-summary article{display:grid;gap:.3rem;padding:1.15rem;border-radius:.9rem;background:var(--city-navy);color:#fff}.report-summary strong{font-size:1.8rem}.report-summary span{color:#d9e6ec}.report-grid{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(380px,1.25fr);gap:1rem;margin-top:1rem}.report-grid table{width:100%;border-collapse:collapse}.report-grid th,.report-grid td{padding:.65rem;border-bottom:1px solid #dbe5ea;text-align:left}.history-list{display:grid;gap:.8rem;padding:0;list-style:none}.history-list li{display:grid;gap:.25rem;padding-bottom:.8rem;border-bottom:1px solid #dbe5ea}.history-list span,.history-list small{color:var(--muted-text)}.audit-json{max-width:560px;max-height:260px;overflow:auto;white-space:pre-wrap;font-size:.78rem}@media(max-width:900px){.report-controls,.report-summary,.report-grid{grid-template-columns:1fr 1fr}}@media print{.app-header nav,.no-print,.return-panel,button,.table-panel td:last-child,.table-panel th:last-child{display:none!important}body{background:#fff}.page{max-width:none;padding:0}.panel{box-shadow:none;break-inside:avoid}.report-summary{grid-template-columns:repeat(4,1fr)}.report-grid{grid-template-columns:1fr 1fr}}
