:root{--bg:#f4f6fa;--surface:#fff;--text:#111827;--muted:#4b5563;--line:#d6dbe4;--primary:#1748c9;--primary-dark:#0f3596;--primary-soft:#e6edfd;--accent:#ff7a1a;--danger:#c62828;--warn-bg:#fff6e0;--warn-text:#7a4b00;--ok:#18794e;--radius:14px;--tap:52px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);word-break:keep-all;-webkit-tap-highlight-color:transparent;margin:0;font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,Roboto,sans-serif;font-size:17px;line-height:1.5}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.app{max-width:560px;min-height:100vh;padding-top:var(--safe-area-inset-top,env(safe-area-inset-top));margin:0 auto}.app.with-tabs{padding-bottom:calc(72px + var(--safe-area-inset-bottom,env(safe-area-inset-bottom)))}.screen{padding:0 16px 24px}.screen.has-bottom-bar{padding-bottom:calc(120px + var(--safe-area-inset-bottom,env(safe-area-inset-bottom)))}.header{z-index:5;padding:calc(6px + var(--safe-area-inset-top,env(safe-area-inset-top))) 8px 6px;margin:0 -16px 8px;margin-top:calc(-1 * var(--safe-area-inset-top,env(safe-area-inset-top)));background:var(--bg);border-bottom:1px solid var(--line);grid-template-columns:48px 1fr 48px;align-items:center;display:grid;position:sticky;top:0}.header h1{text-align:center;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:19px;overflow:hidden}.back{background:0 0;border:0;width:48px;height:48px;font-size:34px;line-height:1}.hero{padding:28px 4px 12px}.brand{color:var(--primary);align-items:center;gap:10px;font-size:28px;font-weight:800;display:flex}.brand-mark{width:44px;height:44px;display:block}.brand-word{width:auto;height:30px;display:block}.hero-text{margin:14px 0 4px;font-size:20px;font-weight:700;line-height:1.45}.hero-sub{color:var(--muted);margin:0}.mock-badge{background:var(--warn-bg);color:var(--warn-text);border-radius:99px;margin:8px 0 0;padding:2px 10px;font-size:14px;display:inline-block}.resume{width:100%;min-height:var(--tap);border:2px solid var(--primary);border-radius:var(--radius);background:var(--primary-soft);color:var(--primary-dark);text-align:left;justify-content:space-between;align-items:center;margin:12px 0 4px;padding:12px 16px;display:flex}.resume-count{white-space:nowrap;font-weight:700}.section-title{margin:20px 4px 10px;font-size:18px}.seg{border-radius:var(--radius);background:#e3e7ef;gap:6px;margin-bottom:14px;padding:5px;display:flex}.seg button{min-height:46px;color:var(--muted);background:0 0;border:0;border-radius:10px;flex:1;font-weight:700}.seg button.on{background:var(--surface);color:var(--primary);box-shadow:0 1px 3px #0000001f}.grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.district{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);text-align:left;flex-direction:column;align-items:flex-start;gap:2px;min-height:76px;padding:12px 14px;display:flex}.district:not(:disabled):active{background:var(--primary-soft)}.district-name{font-size:18px;font-weight:700}.district-count{color:var(--primary);font-size:15px;font-weight:600}.district:disabled{background:#eceff4}.district:disabled .district-name,.district:disabled .district-count{color:#8a93a3}.lead{margin:8px 4px 12px}.muted{color:var(--muted)}.note,.hint{color:var(--muted);margin:12px 4px;font-size:15px}.hint.center{text-align:center}.warn{border-radius:var(--radius);background:var(--warn-bg);color:var(--warn-text);margin:8px 0 12px;padding:12px 14px;font-size:15px}.center-msg{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:12px;padding:40px 16px;display:flex}.center-msg.error{color:var(--danger)}.center-msg p{margin:0}.spinner{border:4px solid var(--primary-soft);border-top-color:var(--primary);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.btn{min-height:var(--tap);border-radius:var(--radius);border:0;justify-content:center;align-items:center;padding:0 18px;font-weight:700;display:inline-flex}.btn.block{width:100%;margin:10px 0;display:flex}.btn.primary{background:var(--primary);color:#fff}.btn.primary:active{background:var(--primary-dark)}.btn.primary:disabled{background:#a9b4c9}.btn.secondary{background:var(--surface);border:1px solid var(--line);color:var(--text)}.btn.secondary:disabled{color:#9aa3b2}.btn.danger{background:var(--danger);color:#fff}.btn.text{color:var(--danger);background:0 0;font-weight:600}.btn.text.muted{color:var(--muted)}.btn.small{min-height:44px;padding:0 14px;font-size:16px}.btn.huge{min-height:72px;font-size:21px}.link{color:var(--primary);background:0 0;border:0;padding:6px 0;font-size:15px;font-weight:600}.row{align-items:stretch;gap:8px;display:flex}.row.gap>*{flex:1}.chips{scrollbar-width:none;gap:8px;margin:0 -16px;padding:2px 16px 10px;display:flex;overflow-x:auto}.chip{border:1px solid var(--line);background:var(--surface);white-space:nowrap;border-radius:99px;flex:none;min-height:42px;padding:0 14px;font-size:16px}.chip.on{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:700}.list-tools{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin:4px 0 10px;display:flex}.switch{align-items:center;gap:8px;min-height:44px;font-size:16px;display:inline-flex}.switch input,.realtor input{width:24px;height:24px;accent-color:var(--primary);flex:none}.realtor-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.realtor{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);cursor:pointer;align-items:center;gap:12px;min-height:64px;padding:10px 14px;display:flex}.realtor.static{cursor:default}.realtor.on{border-color:var(--primary);background:var(--primary-soft)}.realtor-body{flex-direction:column;flex:1;min-width:0;display:flex}.realtor-office{overflow-wrap:anywhere;font-weight:700}.realtor-meta{color:var(--muted);font-size:15px}.badge{color:var(--ok);background:#e8f5ee;border-radius:99px;flex:none;padding:2px 8px;font-size:13px;font-weight:700}.status{flex:none;font-size:14px;font-weight:700}.status-sent{color:var(--ok)}.status-skipped,.status-pending{color:var(--muted)}.status-optout{color:var(--danger)}.bottom-bar{z-index:10;max-width:560px;padding:8px 16px calc(8px + var(--safe-area-inset-bottom,env(safe-area-inset-bottom)));background:var(--surface);border-top:1px solid var(--line);margin:0 auto;position:fixed;bottom:0;left:0;right:0}.bottom-bar .btn.block{margin:4px 0}.bar-note{color:var(--warn-text);margin:4px 0;font-size:14px}.field{border:0;min-width:0;margin:0 0 16px;padding:0;display:block}.field legend,.label{margin-bottom:6px;padding:0;font-weight:700;display:block}.label-row{justify-content:space-between;align-items:baseline;display:flex}.field input:not([type=checkbox]),.field textarea{width:100%;min-height:var(--tap);background:var(--surface);border:1px solid #b8c0cf;border-radius:12px;padding:12px 14px}.field textarea{resize:vertical;line-height:1.55}.field input:focus,.field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.options{flex-wrap:wrap;gap:8px;display:flex}.option{border:1px solid var(--line);background:var(--surface);border-radius:12px;min-height:46px;padding:0 14px}.option.on{border-color:var(--primary);background:var(--primary);color:#fff;font-weight:700}.unit-toggle{border:1px solid #b8c0cf;border-radius:12px;flex:none;display:flex;overflow:hidden}.unit-toggle button{background:var(--surface);border:0;width:56px}.unit-toggle button.on{background:var(--primary);color:#fff;font-weight:700}.footer-preview{color:var(--muted);margin:6px 2px 0;font-size:15px}.bytes{color:var(--primary-dark);margin:4px 2px 0;font-weight:700}.bytes.bad{color:var(--danger)}.progress{background:#dde3ee;border-radius:99px;height:10px;margin:8px 0 6px;overflow:hidden}.progress-bar{background:var(--primary);height:100%;transition:width .3s}.progress-text{text-align:center;color:var(--muted);margin:0 0 12px;font-weight:600}.card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin:0 0 14px;padding:18px}.recipient{text-align:center}.recipient p{margin:2px 0}.recipient-office{overflow-wrap:anywhere;font-size:21px;font-weight:800}.recipient-rep{color:var(--muted)}.recipient-mobile{letter-spacing:.5px;color:var(--primary-dark);font-size:20px;font-weight:700}.confirm{border-radius:var(--radius);background:#fdecec;margin:10px 0;padding:14px}.confirm p{margin:0 0 10px}.message-preview{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin:14px 0;padding:0 14px}.message-preview summary{min-height:var(--tap);cursor:pointer;align-items:center;font-weight:700;display:flex}.message-preview pre{white-space:pre-wrap;font:inherit;margin:0 0 14px}.toast{left:16px;right:16px;bottom:calc(20px + var(--safe-area-inset-bottom,env(safe-area-inset-bottom)));z-index:20;border-radius:var(--radius);color:#fff;background:#1f2937;max-width:528px;margin:0 auto;padding:14px 16px;font-size:16px;position:fixed;box-shadow:0 6px 20px #00000040}.done{text-align:center}.done-icon{color:var(--ok);margin:0;font-size:44px}.done-title{margin:4px 0 16px;font-size:20px;font-weight:800}.stats{grid-template-columns:repeat(3,1fr);margin:0;display:grid}.stats dt{color:var(--muted);font-size:15px}.stats dd{margin:0;font-size:24px;font-weight:800}.history-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.history-item{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);text-align:left;justify-content:space-between;align-items:center;width:100%;min-height:68px;padding:12px 16px;display:flex}.history-item>span:first-child{flex-direction:column;display:flex}.history-district{font-weight:700}.history-date{color:var(--muted);font-size:15px}.history-count{color:var(--primary);white-space:nowrap;font-weight:700}.prose h2{margin:0 0 8px;font-size:18px}.prose ol,.prose ul{margin:0;padding-left:22px}.prose li+li{margin-top:6px}.links{padding:4px 0}.link-row{width:100%;min-height:var(--tap);text-align:left;background:0 0;border:0;padding:0 18px;font-weight:600;display:block}.link-row+.link-row{border-top:1px solid var(--line)}.source{color:var(--muted);margin:8px 4px;font-size:14px}.source p{margin:2px 0}.tabbar{z-index:10;max-width:560px;padding-bottom:var(--safe-area-inset-bottom,env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.tab{min-height:64px;color:var(--muted);background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:14px;font-weight:600;display:flex}.tab.active{color:var(--primary)}.tab-icon{place-items:center;height:26px;display:grid}.tab-icon svg{width:26px;height:26px}.signoff{align-items:center;gap:6px;display:flex}
