/* Hallmark · shape: app screen · genre: modern-minimal · theme: Cobalt (existing tool system)
 * nav: compact airport directory · signature: applicable parking prices beside a whole-minute plan · states: initial, dirty, invalid, priced, unknown, over limit
 * axes: light/grotesk-sans/cool · posture: restrained · contrast: rendered check passed · v2.0.0 */
/* Hallmark · pre-emit critique: P4 H4 E4 S5 R4 V4 · weakest: H, long parking restrictions are kept beside each estimate and stacked on phones. */
/* Hallmark · answered F4 · Reset has a neutral key face, only Calculate fees uses the cobalt primary fill. */
/* Hallmark · finish-review: subagent fix, 2 resolved; home tariff rows name their airport and the third guide occupies a deliberate full row. */
@import url('./tokens.css');
@import url('./base.css');
@import url('./fonts/fonts.css');
:root{--container:1280px;--gutter:32px;--color-error:oklch(42% .17 27);--font-body:'IBM Plex Sans',system-ui,sans-serif;--font-display:'Familjen Grotesk',system-ui,sans-serif;--control-height:44px}
html,body{overflow-x:clip}
body{line-height:1.6}
.container{max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
header{border-bottom:1px solid var(--color-rule)}
.topbar{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg)}
.brand{font-family:var(--font-display);font-size:20px;font-weight:600;text-decoration:none;white-space:nowrap}
nav{display:flex;align-items:center;gap:var(--space-lg)}
nav a{font-size:16px;white-space:nowrap}
a{color:var(--color-accent);text-underline-offset:.2em}
a:hover{text-decoration-thickness:2px}a:active{color:var(--color-accent-deep)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}
.skip{position:absolute;transform:translateY(-200%);padding:var(--space-sm);background:var(--color-paper)}.skip:focus-visible{transform:none;z-index:10}
main{padding-block:var(--space-xl) var(--space-2xl)}
h1,h2,h3{font-family:var(--font-display);color:var(--color-ink);font-weight:600;overflow-wrap:break-word;min-width:0;text-wrap:balance}
h1{font-size:32px;line-height:1.15;margin-bottom:var(--space-md);max-width:38ch}h2{font-size:24px;line-height:1.2;margin-bottom:20px}h3{font-size:20px;margin-bottom:var(--space-sm)}
p{margin-bottom:var(--space-md)}p:last-child{margin-bottom:0}
.intro{max-width:74ch;margin-bottom:var(--space-sm)}.checked{color:var(--color-ink-2);font-size:14px;margin-bottom:28px}
.workspace{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:32px;align-items:start}
.controls{background:var(--color-paper-2);padding:var(--space-lg);border:1px solid var(--color-rule);border-radius:var(--radius-card)}
.field{margin-bottom:var(--space-md)}label{display:block;font-size:14px;margin-bottom:var(--space-xs);font-weight:500}
input,select{width:100%;min-height:var(--control-height);padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-muted);border-radius:var(--radius-input);background:var(--color-key-face);color:var(--color-ink);caret-color:var(--color-accent);font-family:var(--font-body);font-size:16px}
input:hover,select:hover{background:var(--color-paper)}input:active,select:active{border-color:var(--color-ink)}
input[aria-invalid=true]{border-color:var(--color-error)}
.help{font-size:14px;color:var(--color-ink-2);margin-top:var(--space-2xs);min-height:1lh}.error{color:var(--color-error);min-height:1lh;font-size:14px}
.actions{display:flex;gap:var(--space-sm);flex-wrap:wrap;margin-top:var(--space-sm)}
button{min-height:var(--control-height);padding:var(--space-xs) var(--space-md);border:1px solid var(--color-key-edge);border-radius:var(--radius-input);background:var(--color-key-face);color:var(--color-ink);font-family:var(--font-body);font-size:16px;box-shadow:var(--shadow-key);cursor:pointer;white-space:nowrap;transition:transform var(--dur-micro) var(--ease-out)}
button:hover{transform:translateY(-1px)}button:active{transform:translateY(2px);box-shadow:var(--shadow-key-press)}
button.primary{background:var(--color-accent);color:var(--color-accent-ink);border-color:var(--color-accent-edge);box-shadow:var(--shadow-key-accent)}
button:disabled,input:disabled,select:disabled{opacity:.55;cursor:not-allowed}
.results{min-width:0}.plan-summary{font-weight:500}.cost{font-size:24px;line-height:1.25;font-variant-numeric:tabular-nums;display:block;margin-bottom:var(--space-sm);font-weight:500}
table{border-collapse:collapse;width:100%;font-size:16px}caption{text-align:left;margin-bottom:var(--space-md);font-weight:500}th{text-align:left;font-weight:500}thead th{font-size:14px;color:var(--color-ink-2);white-space:nowrap;padding-bottom:var(--space-sm)}
tbody th,td{vertical-align:top;padding:20px var(--space-md) 20px 0;border-top:1px solid var(--color-rule-2)}tbody th{width:22%}td:nth-child(2){width:26%}td:last-child{padding-right:0}td p,td a{font-size:14px;line-height:1.6}td p{margin-bottom:var(--space-sm)}td a{display:inline-block;padding-block:var(--space-2xs)}
.estimate-note{font-size:14px;color:var(--color-ink-2);margin-top:20px;max-width:75ch}
.content{margin-top:48px;padding-top:32px;border-top:1px solid var(--color-rule-2)}
.content-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px}.content p,.content li{font-size:16px}.content li{margin-bottom:var(--space-sm)}.content ul{padding-left:20px}
.content-grid>section:last-child:nth-child(odd){grid-column:1/-1}
.tariffs{margin-top:32px}.tariffs th{width:34%}.tariffs td{width:auto}.tariffs caption{font-size:20px}
details{border-top:1px solid var(--color-rule-2);padding-block:20px}summary{cursor:pointer;font-weight:500;min-height:44px;display:list-item}details p{margin-top:var(--space-md);max-width:75ch}
footer{border-top:1px solid var(--color-rule);padding-block:var(--space-lg) var(--space-xl);color:var(--color-ink-2)}footer p{font-size:14px;max-width:75ch}
.footer-links{display:flex;gap:var(--space-lg);flex-wrap:wrap;margin-bottom:var(--space-md)}.footer-links a{white-space:nowrap;font-size:16px}
.noscript{padding:var(--space-md);background:var(--color-paper-3);margin-block:var(--space-md)}
@media(max-width:60rem){.workspace{grid-template-columns:minmax(0,250px) minmax(0,1fr);gap:var(--space-lg)}.topbar{flex-wrap:wrap;padding-block:var(--space-md);gap:var(--space-sm)}nav{gap:20px}.content-grid{gap:var(--space-lg)}}
@media(max-width:48rem){:root{--gutter:20px}.workspace,.content-grid{grid-template-columns:minmax(0,1fr);gap:var(--space-lg)}main{padding-top:28px}h1{font-size:28px}nav{width:100%;justify-content:space-between;gap:var(--space-sm)}.controls{padding:20px}.field-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-md)}.field-grid .field{margin-bottom:0}thead{display:none}tbody,tr,td,tbody th{display:block;width:100%!important}tbody th{padding:20px 0 var(--space-sm);font-size:20px}td{border:0;padding:0 0 var(--space-md)}td::before{content:attr(data-label);display:block;font-size:14px;color:var(--color-ink-2);margin-bottom:var(--space-xs)}.tariffs td::before{content:none}.tariffs td{padding-bottom:20px}.cost{font-size:26px}.content{margin-top:32px}.content ul{padding-left:20px}}
@media(prefers-reduced-motion:reduce){button{transition:none}button:hover,button:active{transform:none}}
