/* CabPurser web demo: an app shell, mobile-first. Colours and type come from
   tokens.css + style.css (light and dark both); nothing here sets a raw colour. */
body.demo .dock{display:none}
body.demo{padding-bottom:calc(64px + env(safe-area-inset-bottom))}
.d-wrap{max-width:720px;margin:0 auto;padding:0 var(--pad)}
.d-top{border-bottom:1px solid var(--rule-2);background:var(--panel)}
.d-bar{display:flex;align-items:center;justify-content:space-between;min-height:48px}
.d-carrier-name{font-weight:700}
.d-badge{font-family:var(--mono);font-size:var(--t--1);letter-spacing:var(--track-label);text-transform:uppercase;
  color:var(--green);background:var(--green-soft);border:1px solid var(--green);border-radius:999px;padding:2px 10px}
.d-carrier{display:flex;justify-content:space-between;gap:var(--s3);padding-bottom:var(--s2);color:var(--ink-3);font-size:var(--t--1)}
.d-view{padding:var(--s4) 0 var(--s5)}
.d-view h1{font-size:var(--t-3);letter-spacing:var(--track-display);margin:0 0 var(--s1)}
.d-view h2{font-size:var(--t-1);margin:var(--s4) 0 var(--s2)}
.d-lede{color:var(--ink-2);margin:0 0 var(--s4)}
.d-card{background:var(--panel);border:1px solid var(--rule);border-radius:14px;padding:var(--s3);margin:0 0 var(--s3)}
.d-card header{background:none;border:0;padding:0;margin:0;position:static;display:flex;justify-content:space-between;align-items:baseline;gap:var(--s2)}
.d-card header span{font-family:var(--mono);color:var(--ink-3);font-size:var(--t--1)}
.d-pending{border-color:var(--caution);background:var(--caution-bg)}
.d-sub{color:var(--ink-2);margin:var(--s1) 0 var(--s2);font-size:var(--t--1)}
.d-legs,.d-list{list-style:none;margin:0;padding:0}
.d-legs li,.d-list li{display:flex;align-items:baseline;gap:var(--s2);padding:var(--s1) 0;border-top:1px solid var(--rule)}
.d-legs li span:first-child,.d-list li span:first-child{flex:1;min-width:0}
.d-legs time{font-family:var(--mono);font-size:var(--t--1);color:var(--ink-3)}
.d-list small{display:block;color:var(--ink-3);font-size:var(--t--1)}
.d-num{font-family:var(--mono);white-space:nowrap}
.d-form{display:grid;gap:var(--s3);background:var(--sunk);border-radius:14px;padding:var(--s3);margin-top:var(--s4)}
.d-form h2{margin:0}
.d-form label{display:grid;gap:var(--s1);font-size:var(--t--1);color:var(--ink-2)}
.d-form input,.d-form select{font:inherit;font-size:16px;color:var(--ink);background:var(--panel);border:1px solid var(--rule-2);
  border-radius:10px;padding:10px 12px;min-height:44px;width:100%;box-sizing:border-box}
.d-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3)}
.d-row{display:flex;gap:var(--s2);flex-wrap:wrap}
.d-btn{font:inherit;font-weight:600;min-height:44px;padding:0 var(--s4);border-radius:10px;border:1px solid var(--green);
  background:var(--green);color:var(--on-green);cursor:pointer}
.d-btn.d-quiet{background:transparent;color:var(--green)}
.d-btn[disabled],.d-btn[aria-busy="true"]{opacity:.6;cursor:progress}
.d-btn:focus-visible,.d-form input:focus-visible,.d-form select:focus-visible,.d-tabbar a:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.d-empty{color:var(--ink-3)}
.d-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s2)}
.d-stats div,.d-total{background:var(--panel);border:1px solid var(--rule);border-radius:14px;padding:var(--s2) var(--s3)}
.d-stats span,.d-total span{display:block;font-size:var(--t--1);color:var(--ink-3)}
.d-stats b{font-family:var(--mono);font-size:var(--t-1)}
.d-total{margin:var(--s3) 0;border-color:var(--green);background:var(--green-soft)}
.d-total b{font-family:var(--mono);font-size:var(--t-3);color:var(--green)}
.d-warn{background:var(--caution-bg);border-left:3px solid var(--caution);padding:var(--s2) var(--s3);border-radius:6px;font-size:var(--t--1)}
.d-scroll{overflow-x:auto;margin:0 0 var(--s3);-webkit-overflow-scrolling:touch}
.d-table{width:100%;border-collapse:collapse;font-size:var(--t--1)}
.d-table th,.d-table td{padding:var(--s1) var(--s2);border-bottom:1px solid var(--rule);text-align:right;white-space:nowrap}
.d-table th[scope="row"],.d-table thead th:first-child{text-align:left}
.d-table td{font-family:var(--mono)}
.d-reset{margin-top:var(--s3)}
.async-ok{color:var(--green);margin:0}
.async-error,.async-field-error{color:var(--caution);margin:0;font-size:var(--t--1)}
.d-tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;justify-content:center;background:var(--panel);
  border-top:1px solid var(--rule-2);padding-bottom:env(safe-area-inset-bottom)}
.d-tabbar a{flex:1;max-width:240px;text-align:center;padding:var(--s3) 0;min-height:44px;color:var(--ink-2);text-decoration:none;font-weight:600;position:relative}
.d-tabbar a[aria-current="page"]{color:var(--green);box-shadow:inset 0 2px 0 var(--green)}
.d-dot:not(:empty){display:inline-block;margin-left:6px;min-width:18px;padding:0 5px;border-radius:9px;background:var(--caution);
  color:var(--on-green);font-size:12px;line-height:18px}
@media (min-width:900px){.d-view{padding-top:var(--s5)}}
body.demo > header{position:static}
