:root{--bg: #f4f6f8;--surface: #ffffff;--border: #dfe3e8;--text: #1c2024;--muted: #6b7280;--accent: #0f6cbd;--accent-soft: #e7f0fa;--danger: #d64545;--success: #1a7f4b;--radius: 12px;--shadow: 0 1px 2px rgba(28, 32, 36, .06), 0 4px 12px rgba(28, 32, 36, .05)}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-text-size-adjust:100%}#app{max-width:720px;margin:0 auto;padding:12px 12px calc(24px + env(safe-area-inset-bottom))}h1{font-size:20px;margin:8px 0 16px}h2{font-size:15px;margin:0 0 12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:12px;box-shadow:var(--shadow)}.topbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px}.topbar h1{flex:1;min-width:0}.topbar__city{width:auto;max-width:45%;font-weight:600;background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.topbar__live{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.topbar__refresh{flex:none;padding:6px 10px;font-size:12px}.city-head{display:flex;align-items:center;gap:8px}.city-head select{flex:1;min-width:0}.city-head button{flex:none;white-space:nowrap}.grid{display:grid;gap:12px}.grid--2{grid-template-columns:1fr 1fr}.field{display:flex;flex-direction:column;gap:4px}.field>span{font-size:13px;color:var(--muted)}input,select{font:inherit;color:inherit;padding:9px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);width:100%}input:focus,select:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}button{font:inherit;cursor:pointer;border-radius:8px;border:1px solid var(--border);background:var(--surface);padding:9px 14px}button:hover{border-color:var(--accent)}.button--primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600;width:100%;padding:12px}.button--primary:hover{background:#0b5a9e}.button--ghost{border:none;background:transparent;color:var(--muted);padding:4px 8px}.button--ghost:hover{color:var(--danger)}.presets{display:grid;grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:8px}.preset{padding:4px;aspect-ratio:1 / 1;display:grid;place-items:center}.preset--active{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.preset canvas{width:100%;height:100%}.schema{width:100%;aspect-ratio:4 / 3;display:block;touch-action:manipulation}.hint{font-size:13px;color:var(--muted);margin:8px 0 0}.rows{display:flex;flex-direction:column;gap:2px}.row{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--border);font-size:14px}.row:last-child{border-bottom:none}.row__label{color:var(--muted);min-width:0}.row__value{font-variant-numeric:tabular-nums;white-space:nowrap}.row--total{font-size:17px;font-weight:700;padding-top:12px;border-top:2px solid var(--text);border-bottom:none}.row--total .row__label{color:var(--text)}.price{font-size:30px;font-weight:700;font-variant-numeric:tabular-nums}.price__meta{color:var(--muted);font-size:13px;margin-top:2px}.warning{background:#fff8e6;border:1px solid #f0d998;color:#7a5c07;border-radius:8px;padding:10px 12px;font-size:13px;margin-top:12px}details>summary{cursor:pointer;color:var(--accent);font-size:14px;margin-top:12px}.order-line{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.order-line:last-of-type{border-bottom:none}.order-line canvas{width:56px;height:56px;flex:none}.order-line__body{flex:1;min-width:0}.order-line__title{font-size:14px;font-weight:600}.order-line__meta{font-size:12px;color:var(--muted)}.toggle{display:flex;align-items:center;gap:8px;font-size:14px}.toggle input{width:auto}.extras-row{display:grid;grid-template-columns:1fr 72px 84px 64px 32px;gap:6px;align-items:center;margin-bottom:6px}.extras-row input,.extras-row select{padding:7px 8px;font-size:13px}.badge{display:inline-block;font-size:12px;padding:2px 8px;border-radius:20px;background:var(--accent-soft);color:var(--accent)}
