:root{--navy:#042851;--navy-2:#0b3a70;--orange:#fe5f02;--orange-tint:#ffebdd;--orange-line:#fdb98a;--bg:#f7f6f1;--card:#fff;--line:#dde3de;--line-strong:#c9d3cc;--muted:#56635c;--ok-bg:#e7f6ec;--ok:#1e6b3c;--warn-bg:#fef8ec;--warn:#7a3e06;--bad-bg:#fdecea;--bad:#8f2a1c;--wa:#1e8e4f;--radius:16px;--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}a,body{color:var(--navy)}button,input,select,textarea{font:inherit;color:inherit}img{max-width:100%}.app{max-width:560px;margin:0 auto;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg)}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:calc(10px + env(safe-area-inset-top, 0px)) 16px 10px;background:#fff;border-bottom:1px solid #ecebe4}.topbar img.logo{height:22px;width:auto;display:block}.topbar .right{display:flex;align-items:center;gap:8px}.content{flex:1 1;padding:16px 16px calc(96px + var(--safe-bottom));display:flex;flex-direction:column;gap:14px}.content.no-nav{padding-bottom:calc(32px + var(--safe-bottom))}.bottomnav{position:fixed;bottom:0;left:0;right:0;z-index:10;background:#fff;border-top:1px solid var(--line);padding:6px 8px calc(6px + var(--safe-bottom))}.bottomnav .inner{max-width:560px;margin:0 auto;display:flex;justify-content:space-around;gap:4px}.bottomnav a{flex:1 1;text-align:center;text-decoration:none;min-height:48px;display:flex;align-items:center;justify-content:center;border-radius:12px;font-size:13.5px;font-weight:700;color:var(--muted)}.bottomnav a.active{background:var(--orange-tint);color:var(--navy)}h1{font-size:24px;line-height:1.2;letter-spacing:-.02em}h1,h2{margin:0}h2{font-size:18px}p{margin:0;line-height:1.5}.muted{color:var(--muted)}.small{font-size:13px}.label{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:10px}.card.tint{background:var(--orange-tint);border-color:var(--orange-line)}.card.ok{background:var(--ok-bg);border-color:#b5dec2}.card.warn{background:var(--warn-bg);border-color:#f1ddb4}.card.bad{background:var(--bad-bg);border-color:#e8b4ac}a.card{color:inherit}.btn,a.card{text-decoration:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 18px;border:0;border-radius:14px;background:var(--orange);color:var(--navy);font-size:15px;font-weight:800;cursor:pointer}.btn:disabled{background:#b8c2bc;color:#fff;cursor:not-allowed}.btn.navy{background:var(--navy);color:#fff}.btn.wa{background:var(--wa);color:#fff}.btn.ghost{border:1px solid var(--line-strong);color:var(--navy)}.btn.danger,.btn.ghost{background:#fff;font-weight:700}.btn.danger{border:1px solid #e8b4ac;color:var(--bad)}.btn.block{width:100%}.btn.small{min-height:40px;font-size:13.5px;padding:0 12px}.field{display:flex;flex-direction:column;gap:6px}.input,select.input,textarea.input{width:100%;min-height:48px;border:1px solid var(--line-strong);border-radius:12px;padding:0 14px;background:#fff;font-size:16px}textarea.input{padding:12px 14px;min-height:90px;resize:vertical}.input:focus{outline:2px solid var(--orange);outline-offset:1px}.row{display:flex;gap:10px}.row>*{flex:1 1;min-width:0}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{min-height:42px;padding:0 14px;border-radius:999px;border:1px solid var(--line-strong);background:#fff;font-size:14px;font-weight:600;cursor:pointer}.chip.on{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:700}.pill{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:800;padding:4px 10px;border-radius:999px;background:#ecefec;color:#3c4842;white-space:nowrap}.pill.orange{background:var(--orange);color:var(--navy)}.pill.tint{background:var(--orange-tint);color:var(--navy)}.pill.navy{background:var(--navy);color:#fff}.pill.ok{background:var(--ok-bg);color:var(--ok)}.pill.warn{background:var(--warn-bg);color:var(--warn)}.pill.bad{background:var(--bad-bg);color:var(--bad)}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.tile{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:4px;min-height:72px}.tile strong{font-size:15px}.iconbtn{position:relative;width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:#fff;display:inline-flex;cursor:pointer;text-decoration:none}.badge-count,.iconbtn{align-items:center;justify-content:center}.badge-count{position:absolute;top:-5px;right:-5px;min-width:20px;height:20px;border-radius:10px;background:var(--orange);color:var(--navy);font-size:11.5px;font-weight:800;display:flex;padding:0 5px}.stepper{display:flex;align-items:center;gap:10px}.stepper button{width:44px;height:44px;border-radius:12px;border:1px solid var(--line-strong);background:#fff;font-size:20px;font-weight:700;cursor:pointer}.stepper button.plus{background:var(--orange);border-color:var(--orange)}.stepper .qty{width:32px;text-align:center;font-weight:800;font-size:17px}.error{background:var(--bad-bg);color:var(--bad)}.error,.notice{border-radius:12px;padding:12px 14px;font-size:14px}.notice{background:var(--navy);color:#fff}.list-row{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid #edf0ed;font-size:14px}.stars{display:flex;gap:6px}.stars button{width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:#fff;font-size:20px;color:#b8c2bc;cursor:pointer}.stars button.on{border-color:#e3a008;background:#fef3d7;color:#b7791f}.center{align-items:center}.center,.spinner{text-align:center}.spinner{padding:40px 0;color:var(--muted)}.checkbox{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.45}.checkbox input{width:22px;height:22px;flex:none;margin:0}.linkbtn{background:none;border:0;padding:0;font:inherit;color:var(--navy);font-weight:700;text-decoration:underline;cursor:pointer}.radio{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;font-size:14px;line-height:1.45}.radio input{width:20px;height:20px;flex:none;margin:1px 0 0}.radio.on{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy)}