:root{--bg: #0b0d10;--bg-elev: #14181d;--bg-elev-2: #1c2128;--text: #f5f7fa;--text-dim: #9aa4ad;--border: #2a313a;--accent: var(--theme-color, #DC2626);--accent-soft: color-mix(in srgb, var(--accent) 18%, transparent);--success: #22c55e;--warn: #f59e0b;--danger: #ef4444;--radius: 14px;--radius-sm: 8px;--shadow: 0 4px 24px rgba(0, 0, 0, .35);--max-w: 540px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "PingFang HK", "PingFang TC", "Microsoft JhengHei", "Heiti TC", sans-serif;--font-mono: "SF Mono", "Cascadia Mono", "JetBrains Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.5;min-height:100dvh;overscroll-behavior-y:none}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;font-size:1rem;cursor:pointer;border:none;background:none;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.skip-link{position:absolute;top:-40px;left:8px;background:var(--accent);color:#fff;padding:8px 12px;border-radius:var(--radius-sm);z-index:100}.skip-link:focus{top:8px}.container{max-width:var(--max-w);margin:0 auto;padding:16px}.app-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--bg-elev)}.app-header .title{font-size:1.05rem;font-weight:600;margin:0}.app-header .lang{color:var(--text-dim);font-size:.85rem}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:12px}.fare-display{background:linear-gradient(180deg,var(--accent-soft),transparent),var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:28px 20px 20px;margin-bottom:12px;text-align:center;position:relative;overflow:hidden}.fare-display .label{font-size:.85rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}.fare-display .amount{font-family:var(--font-mono);font-size:clamp(3rem,14vw,4.5rem);font-weight:700;line-height:1.05;letter-spacing:-.02em;color:var(--text);margin:4px 0 8px;font-variant-numeric:tabular-nums}.fare-display .amount .symbol{font-size:.55em;color:var(--text-dim);margin-right:4px;font-weight:500}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.metric{background:var(--bg-elev-2);border-radius:var(--radius-sm);padding:10px 8px;text-align:center}.metric .label{font-size:.7rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}.metric .value{font-family:var(--font-mono);font-size:1.1rem;font-weight:600;margin-top:2px;font-variant-numeric:tabular-nums}.gps-bar{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg-elev-2);border-radius:var(--radius-sm);margin-top:10px;font-size:.85rem}.gps-bar.ok{color:var(--success)}.gps-bar.warn{color:var(--warn)}.gps-bar.bad{color:var(--danger)}.gps-bar .dot{width:8px;height:8px;border-radius:50%;background:currentColor;display:inline-block;margin-right:6px}.field{display:block;margin-bottom:12px}.field label{display:block;font-size:.85rem;color:var(--text-dim);margin-bottom:6px}.field select,.field input[type=number]{width:100%;padding:10px 12px;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:inherit;font-size:1rem}.surcharges{display:grid;gap:8px}.surcharge-row{display:flex;align-items:center;justify-content:space-between;padding:12px;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.surcharge-row .info{flex:1;min-width:0}.surcharge-row .info strong{display:block;font-size:.95rem}.surcharge-row .info small{color:var(--text-dim);font-size:.78rem;line-height:1.3}.surcharge-row .control{margin-left:12px}.surcharge-row input[type=checkbox]{width:22px;height:22px;cursor:pointer;accent-color:var(--accent)}.surcharge-row input[type=number]{width:80px;padding:6px 8px;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:var(--font-mono);text-align:right}.actions{position:sticky;bottom:0;display:flex;gap:8px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(180deg,transparent,var(--bg) 30%);margin-top:16px}.btn{flex:1;padding:16px;font-size:1.05rem;font-weight:600;border-radius:var(--radius);text-align:center}.btn-primary{background:var(--accent);color:#fff}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--bg-elev-2);color:var(--text);border:1px solid var(--border)}.btn-danger{background:var(--danger);color:#fff}.breakdown{padding:0}.breakdown summary{cursor:pointer;padding:12px 16px;font-weight:600;list-style:none;display:flex;justify-content:space-between;align-items:center}.breakdown summary::-webkit-details-marker{display:none}.breakdown summary:after{content:"▼";font-size:.7em;color:var(--text-dim);transition:transform .2s}.breakdown[open] summary:after{transform:rotate(180deg)}.breakdown ul{list-style:none;padding:0 16px 12px;margin:0}.breakdown li{display:flex;justify-content:space-between;padding:6px 0;border-top:1px dashed var(--border);font-family:var(--font-mono);font-size:.9rem;font-variant-numeric:tabular-nums}.breakdown li.total{border-top:2px solid var(--accent);padding-top:10px;margin-top:4px;font-weight:700}.muted{color:var(--text-dim);font-size:.85rem}.note{padding:10px 12px;background:var(--bg-elev-2);border-left:3px solid var(--accent);border-radius:6px;font-size:.85rem;color:var(--text-dim);margin:12px 0}.app-footer{padding:24px 16px calc(80px + env(safe-area-inset-bottom));text-align:center;font-size:.85rem;color:var(--text-dim)}.app-footer a{color:var(--text-dim);text-decoration:underline}.app-footer .legal{margin-top:8px;font-size:.78rem}.install-hint{display:none;padding:10px 12px;background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--radius-sm);font-size:.85rem;margin-bottom:12px;position:relative}.install-hint.show{display:block}.install-hint .dismiss{position:absolute;top:6px;right:8px;color:var(--text-dim);font-size:1.2rem;cursor:pointer}.prose h1{font-size:1.5rem;margin-top:0}.prose h2{font-size:1.15rem;margin-top:1.5em}.prose p,.prose li{font-size:.95rem;line-height:1.65}.prose table{width:100%;border-collapse:collapse;margin:12px 0;font-family:var(--font-mono);font-size:.85rem}.prose th,.prose td{padding:8px;border:1px solid var(--border);text-align:left}.prose th{background:var(--bg-elev-2)}
