:root{--ink:#13211a;--ink-2:#56655c;--ink-3:#8a978f;--line:#e3e9e4;--line-strong:#cfd8d1;--surface:#fff;--bg:#eef2ef;--brand:#1b7a4b;--brand-ink:#0e4a2e;--brand-tint:#e2f0e8;--target:#d9761a;--target-tint:#fbeada;--neutral:#8a978f;--neutral-tint:#eaeeeb;--r-sm:9px;--r:14px;--r-lg:20px;--pad:16px;--shadow-1:0 1px 2px #13211a0f, 0 1px 3px #13211a0d;--shadow-2:0 6px 20px #13211a1a;--tabbar-h:68px;--font:-apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.5}h1,h2,h3,p,ul,fieldset{margin:0}ul{padding:0;list-style:none}button{font-family:inherit}.app{background:var(--bg);max-width:480px;min-height:100vh;padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + 12px);margin:0 auto;position:relative}.appbar{z-index:20;-webkit-backdrop-filter:saturate(1.4)blur(10px);backdrop-filter:saturate(1.4)blur(10px);border-bottom:1px solid var(--line);background:#ffffffe0;padding:10px 18px 12px;position:sticky;top:0}.appbar .eyebrow{letter-spacing:.14em;color:var(--brand);text-transform:uppercase;font-size:11.5px;font-weight:700}.appbar h1{letter-spacing:-.02em;color:var(--ink);margin-top:1px;font-size:20px;font-weight:800}.screen{padding:16px}.preview-flag{color:#96591a;text-align:center;background:repeating-linear-gradient(-45deg,#fff6e6,#fff6e6 10px,#fdefd6 10px 20px);border-bottom:1px solid #f0dcbc;padding:5px;font-size:12px;font-weight:600}.tabbar{width:100%;max-width:480px;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);z-index:30;background:#fffffff0;grid-template-columns:repeat(5,1fr);align-items:center;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tab{color:var(--ink-3);flex-direction:column;align-items:center;gap:4px;padding:6px 0;font-size:11px;font-weight:600;text-decoration:none;display:flex}.tab svg{width:23px;height:23px}.tab.is-active,.tab.tab-cta{color:var(--brand)}.tab.tab-cta .icon-wrap{background:var(--brand);color:#fff;border-radius:11px;justify-content:center;align-items:center;width:34px;height:34px;margin-top:-2px;display:flex;box-shadow:0 4px 10px #1b7a4b4d}.tab.tab-cta svg{width:20px;height:20px}.pill{white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:12px;font-weight:700;display:inline-flex}.pill:before{content:"";border-radius:50%;width:6px;height:6px}.pill.handled{background:var(--brand-tint);color:var(--brand-ink)}.pill.handled:before{background:var(--brand)}.pill.target{background:var(--target-tint);color:#94520f}.pill.target:before{background:var(--target)}.pill.licensed{background:var(--neutral-tint);color:#5b665f}.pill.licensed:before{background:var(--neutral)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-1)}.searchbar{gap:8px;margin-bottom:12px;display:flex}.searchbar input{border:1px solid var(--line-strong);background:var(--surface);border-radius:12px;flex:1;height:46px;padding:0 14px;font-size:16px}.filter-toggle{color:var(--ink-2);cursor:pointer;align-items:center;gap:6px;margin-bottom:14px;font-size:13px;font-weight:600;display:inline-flex}.client-list{flex-direction:column;gap:10px;display:flex}.client-row{text-align:left;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--neutral);border-radius:var(--r);width:100%;box-shadow:var(--shadow-1);cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:13px 15px;transition:transform 60ms,box-shadow .15s;display:flex}.client-row:active{transform:scale(.99)}.client-row.handled{border-left-color:var(--brand)}.client-row.target{border-left-color:var(--target)}.client-row .rowmain{flex-direction:column;gap:3px;min-width:0;margin-right:auto;display:flex}.client-row .name{letter-spacing:-.01em;font-size:16px;font-weight:700}.client-row .meta{color:var(--ink-3);font-size:12.5px}.client-row .chev{color:var(--ink-3);flex-shrink:0}.list-count{color:var(--ink-3);margin:2px 2px 12px;font-size:13px;font-weight:600}.form{flex-direction:column;gap:18px;display:flex}.form-section{flex-direction:column;gap:12px;display:flex}.section-title{letter-spacing:.1em;color:var(--brand);text-transform:uppercase;margin:4px 2px 0;font-size:12px;font-weight:800}.field{flex-direction:column;gap:6px;display:flex}.field>.label{color:var(--ink-2);font-size:12.5px;font-weight:700}.field input,.field select{border:1px solid var(--line-strong);background:var(--surface);height:46px;color:var(--ink);border-radius:11px;width:100%;padding:0 13px;font-size:16px}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-hint{color:var(--ink-3);background:var(--neutral-tint);border-radius:10px;padding:8px 12px;font-size:12.5px;font-weight:600}.placesearch{flex-direction:column;gap:8px;display:flex}.placesearch .row{gap:8px;display:flex}.placesearch input{border:1px solid var(--line-strong);border-radius:11px;flex:1;height:46px;padding:0 13px;font-size:16px}.placesearch .search-btn{background:var(--brand);color:#fff;cursor:pointer;border:none;border-radius:11px;height:46px;padding:0 18px;font-size:15px;font-weight:700}.placesearch .results{flex-direction:column;gap:6px;display:flex}.placesearch .results button{text-align:left;background:var(--brand-tint);cursor:pointer;border:1px solid #cfe4d8;border-radius:10px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.placesearch .results .r-name{color:var(--brand-ink);font-weight:700}.placesearch .results small{color:var(--ink-2);font-size:12px}.picker-group{border:none;padding:0}.picker-legend{color:var(--ink);align-items:center;gap:7px;margin-bottom:9px;padding:0;font-size:13px;font-weight:800;display:flex}.picker-legend:before{content:"";background:var(--brand);border-radius:2px;width:4px;height:15px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1.5px solid var(--line-strong);color:var(--ink-2);background:var(--surface);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:5px;padding:9px 14px;font-size:14px;font-weight:600;transition:all .12s;display:inline-flex;position:relative}.chip input{opacity:0;pointer-events:none;position:absolute}.chip:has(input:checked){background:var(--brand);border-color:var(--brand);color:#fff}.chip .star{color:var(--target);font-size:11px}.chip:has(input:checked) .star{color:#ffe0b8}.chip-writein{border:1.5px dashed var(--line-strong);color:var(--ink-3);border-radius:999px;align-items:center;gap:6px;padding:5px 8px 5px 13px;font-size:13px;font-weight:600;display:inline-flex}.chip-writein input{width:90px;color:var(--ink);border:none;border-bottom:1.5px solid var(--line-strong);background:0 0;outline:none;padding:4px 0;font-size:14px}.chip-writein input:focus{border-bottom-color:var(--brand)}.btn-primary{background:var(--brand);color:#fff;letter-spacing:-.01em;cursor:pointer;border:none;border-radius:14px;height:52px;font-size:16px;font-weight:800;box-shadow:0 6px 16px #1b7a4b47}.btn-primary:active{transform:translateY(1px)}.btn-primary:disabled{background:var(--neutral);box-shadow:none;cursor:not-allowed}.detail-head{border-radius:var(--r-lg);background:linear-gradient(140deg, var(--brand) 0%, var(--brand-ink) 100%);color:#fff;padding:20px 18px}.detail-head .biztype{opacity:.8;letter-spacing:.08em;font-size:12px;font-weight:700}.detail-head h1{letter-spacing:-.03em;margin:3px 0 6px;font-size:27px;font-weight:800}.detail-head .addr{opacity:.9;font-size:13.5px}.detail-head .facts{gap:16px;margin-top:14px;display:flex}.detail-head .fact .v{font-size:17px;font-weight:800}.detail-head .fact .k{opacity:.8;font-size:11px}.detail-section{margin-top:20px}.detail-section>h2{letter-spacing:.1em;color:var(--brand);text-transform:uppercase;margin:0 2px 10px;font-size:12px;font-weight:800}.prod-list{flex-wrap:wrap;gap:8px;display:flex}.prod-tag{background:var(--neutral-tint);color:var(--ink);border-radius:999px;align-items:center;gap:5px;padding:7px 12px;font-size:13.5px;font-weight:600;display:inline-flex}.prod-tag.own{background:var(--brand-tint);color:var(--brand-ink)}.prod-tag .cat{color:var(--ink-3);font-size:11px}.prod-tag.own .cat{color:var(--brand)}.visit-list{flex-direction:column;gap:8px;display:flex}.visit-item{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px}.visit-item .date{color:var(--brand);font-size:12px;font-weight:700}.visit-item .req{margin-top:2px;font-size:14.5px}.dash-head{padding:4px 2px 18px}.dash-head .eyebrow{letter-spacing:.1em;color:var(--target);text-transform:uppercase;font-size:12px;font-weight:700}.dash-head h1{letter-spacing:-.02em;margin-top:3px;font-size:24px;font-weight:800}.gauge-card{margin-bottom:14px;padding:20px}.gauge-card .big{letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:var(--brand);font-size:52px;font-weight:800;line-height:1}.gauge-card .big .unit{margin-left:2px;font-size:24px}.gauge-card .label{color:var(--ink-2);margin-bottom:12px;font-size:13px;font-weight:700}.gauge-card.alt .big{color:var(--target)}.track{background:var(--neutral-tint);border-radius:999px;height:14px;margin-top:4px;overflow:hidden}.track .fill{background:var(--brand);border-radius:999px;height:100%}.gauge-card.alt .track .fill{background:var(--target)}.gauge-card .frac{color:var(--ink-3);margin-top:8px;font-size:12.5px;font-weight:600}.legend-row{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.map-note{color:var(--ink-3);background:var(--neutral-tint);border-radius:10px;margin-bottom:12px;padding:8px 12px;font-size:12.5px;font-weight:600}.marker-list{flex-direction:column;gap:8px;display:flex}.marker-item{background:var(--surface);border:1px solid var(--line);border-radius:12px;justify-content:space-between;align-items:center;padding:12px 14px;font-weight:600;display:flex}.map-wrap{position:relative}.map-canvas{width:100%;height:calc(100vh - 52px - var(--tabbar-h) - 24px);min-height:360px}.map-legend{z-index:10;border:1px solid var(--line);box-shadow:var(--shadow-1);background:#ffffffeb;border-radius:999px;gap:6px;padding:6px 8px;display:flex;position:absolute;top:12px;left:12px}.map-pin{cursor:pointer;border:2.5px solid #fff;border-radius:50%;width:16px;height:16px;box-shadow:0 1px 4px #13211a73}.map-pin.handled{background:var(--brand)}.map-pin.notHandled{background:var(--target)}.map-pin.licensedOnly{background:var(--neutral)}.location-picker{flex-direction:column;gap:6px;display:flex}.location-picker-canvas{border-radius:12px;width:100%;height:240px;overflow:hidden}.location-picker-coords{color:var(--ink-3);font-size:12.5px;font-weight:600}.login{background:linear-gradient(160deg, var(--brand) 0%, var(--brand-ink) 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--surface);border-radius:var(--r-lg);width:100%;max-width:360px;box-shadow:var(--shadow-2);padding:28px 22px 24px}.login-brand{letter-spacing:.14em;color:var(--brand);text-transform:uppercase;font-size:12px;font-weight:700}.login-card h1{letter-spacing:-.02em;margin-top:2px;font-size:24px;font-weight:800}.login-sub{color:var(--ink-3);margin:4px 0 20px;font-size:13.5px}.login-card form{flex-direction:column;gap:14px;display:flex}.login-error{color:#b3341a;background:#fbe7e2;border-radius:9px;padding:9px 12px;font-size:13px;font-weight:600}.appbar-row{justify-content:space-between;align-items:flex-end;display:flex}.header-actions{flex-shrink:0;gap:8px;display:flex}.logout-btn{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:12.5px;font-weight:600}.state-msg{text-align:center;color:var(--ink-2);padding:40px 24px;font-size:14.5px;line-height:1.7}.state-msg.error{color:#b3341a}.rep-picker{width:100%;max-width:360px;margin:0 auto}.rep-picker h1{letter-spacing:-.02em;margin-bottom:18px;font-size:22px;font-weight:800}.rep-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.rep-btn{border:1px solid var(--line-strong);background:var(--surface);height:52px;color:var(--ink);cursor:pointer;border-radius:14px;font-size:15px;font-weight:700}.rep-btn:active{transform:scale(.98)}.rep-admins{flex-direction:column;gap:8px;margin-top:18px;display:flex}.rep-btn-admin{background:var(--neutral-tint);color:var(--ink-2)}.unit-rows{flex-direction:column;gap:8px;margin-top:8px;display:flex}.unit-row{grid-template-columns:1.5fr .8fr .8fr .8fr auto;align-items:center;gap:6px;display:grid}.unit-row select,.unit-row input{border:1px solid var(--line-strong);background:var(--surface);height:44px;color:var(--ink);border-radius:10px;width:100%;padding:0 10px;font-size:13.5px}.unit-amount{color:var(--brand-ink);white-space:nowrap;text-align:right;min-width:74px;font-size:13px;font-weight:700}.unit-actions{gap:8px;margin:10px 0 4px;display:flex}.unit-actions .btn-primary{flex:1;height:44px}.btn-secondary{border:1px solid var(--line-strong);background:var(--surface);height:44px;color:var(--ink-2);cursor:pointer;border-radius:11px;flex:1;font-size:14px;font-weight:700}.entry-list{flex-direction:column;gap:8px;margin-top:12px;display:flex}.entry-item{background:var(--surface);border:1px solid var(--line);border-radius:12px;align-items:center;gap:10px;padding:10px 12px;font-size:13px;display:flex}.entry-item .date{color:var(--brand);flex-shrink:0;font-weight:700}.entry-item .name{flex:1;font-weight:600}.entry-item .qty{color:var(--ink-3);font-size:12px}.entry-item .amount{color:var(--brand-ink);white-space:nowrap;font-weight:700}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
