
:root{--bg:#F5F3EC;--ink:#1E2B25;--muted:#56605A;--line:#DAD6CA;--green:#1D6A4C;--greenSoft:#E3EFE8;--orange:#B5521A;--orangeSoft:#FBEADC;--white:#FFFFFF}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',system-ui,sans-serif;-webkit-text-size-adjust:100%}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--green)}
#app{max-width:460px;margin:0 auto;min-height:100vh;padding:24px 18px 32px;display:flex;flex-direction:column;gap:16px;position:relative}
h1,h2,.display{font-family:'Bricolage Grotesque',sans-serif;letter-spacing:-.4px;margin:0}
h1{font-size:28px;line-height:1.1}
h2{font-size:19px}
p{margin:0}
.muted{color:var(--muted)}
.small{font-size:13px}
.row{display:flex;align-items:center;gap:10px}
.between{justify-content:space-between}
.col{display:flex;flex-direction:column;gap:8px}
.grow{flex-grow:1}
.card{background:var(--white);border:1.5px solid var(--line);border-radius:16px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.btn{height:54px;border-radius:16px;border:none;background:var(--green);color:#fff;font-size:17px;font-weight:700;width:100%;display:flex;align-items:center;justify-content:center;gap:8px}
.btn.orange{background:var(--orange)}
.btn.outline{background:#fff;color:var(--green);border:1.5px solid var(--green)}
.btn.small{height:44px;font-size:15px;border-radius:12px}
.btn[disabled]{opacity:.4;cursor:not-allowed}
.link{background:none;border:none;padding:4px 0;color:var(--green);font-weight:600;text-decoration:underline;font-size:15px}
.icon-btn{width:44px;height:44px;border-radius:12px;background:#fff;border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;flex-shrink:0}
label.f{display:flex;flex-direction:column;gap:4px;font-size:14px;font-weight:600;min-width:0}
.in{height:46px;border:1.5px solid #CFCABD;border-radius:12px;padding:0 12px;font-size:16px;background:#fff;width:100%;min-width:0}
select.in{padding:0 8px;font-weight:700;background:var(--greenSoft);border-color:var(--green)}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.grid3{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:8px}
.chips{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}
.chip{height:54px;border-radius:10px;border:2px solid var(--line);background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:0 2px}
.chip b{font-size:13px}
.chip span{font-size:11px;color:var(--muted);line-height:1.1;text-align:center}
.chip.on{border-color:var(--green);background:var(--greenSoft)}
.chip.on-o{border-color:var(--orange);background:var(--orangeSoft)}
.opt{height:50px;border-radius:14px;border:2px solid var(--line);background:#fff;padding:0 16px;display:flex;align-items:center;justify-content:space-between;font-size:17px;font-weight:700;width:100%}
.opt.on{border-color:var(--green);background:var(--greenSoft)}
.dot{width:12px;height:12px;border-radius:3px;display:inline-block;flex-shrink:0}
.steps{display:grid;gap:6px}
.bar{height:6px;border-radius:3px;background:var(--line)}
.bar.on{background:var(--green)}
.big{border-radius:20px;padding:18px 16px;min-height:150px;display:flex;flex-direction:column;justify-content:space-between;color:#fff;text-align:left;border:none}
.big .t{font-family:'Bricolage Grotesque',sans-serif;font-size:22px;font-weight:700;line-height:1.05}
.pill{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:6px 12px;font-size:14px;font-weight:700}
.dark{background:var(--ink);color:#fff;border-radius:16px;padding:12px 14px}
.soft{background:var(--greenSoft);border-radius:14px;padding:10px 12px;font-size:14px;line-height:1.4}
.softo{background:var(--orangeSoft);border-radius:14px;padding:10px 12px;font-size:14px;line-height:1.4}
.overlay{position:fixed;inset:0;background:rgba(30,43,37,.5);display:flex;flex-direction:column;justify-content:flex-end;z-index:20}
.sheet{background:#fff;border-radius:24px 24px 0 0;padding:22px 20px 26px;display:flex;flex-direction:column;gap:14px;max-width:460px;width:100%;margin:0 auto;position:relative;max-height:92vh;overflow:auto}
.x{position:absolute;top:12px;right:12px;width:44px;height:44px;border-radius:50%;border:none;background:#F0EDE5;display:flex;align-items:center;justify-content:center}
.num{width:32px;height:32px;border-radius:50%;color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.toast{position:fixed;left:50%;transform:translateX(-50%);top:14px;background:var(--ink);color:#fff;border-radius:14px;padding:12px 16px;font-size:15px;font-weight:600;z-index:30;max-width:90vw;box-shadow:0 6px 24px rgba(0,0,0,.2)}
.tip{position:absolute;right:0;bottom:calc(100% + 8px);width:260px;background:var(--ink);color:#fff;border-radius:12px;padding:10px 12px;font-size:13px;line-height:1.4;font-weight:500;z-index:5}
.stepper{display:flex;align-items:center;gap:8px}
.stepper button{width:44px;height:44px;border-radius:12px;border:1.5px solid var(--green);background:#fff;color:var(--green);font-size:22px;font-weight:700}
.stepper .v{min-width:90px;text-align:center;font-weight:700}
.section-title{font-size:17px;font-weight:700;margin-top:4px}
.empty{font-size:14px;color:var(--muted);padding:6px 2px}

.banner{border-radius:14px;padding:12px 14px;font-size:14px;line-height:1.4}
.banner.warn{background:var(--orangeSoft);border:1.5px solid var(--orange)}
.banner.info{background:var(--greenSoft)}
.note{font-size:14px;line-height:1.4;background:var(--bg);border-radius:10px;padding:8px 10px;font-style:italic}
textarea.in{height:auto;padding:10px 12px;resize:none;line-height:1.35}
.code-in{letter-spacing:8px;font-size:24px;text-align:center;font-weight:700}
.footer-links{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin-top:8px}
