:root{font-family:Onest,sans-serif;color:#242032;background:#f3eff8;font-synthesis:none;--bg:#f3eff8;--paper:#fff;--line:#e5dfee;--ink:#242032;--muted:#797487;--violet:#6845b5;--violet-soft:#eee6fb;--green:#137a57;--green-soft:#e4f5ec;--red:#b64b61;--red-soft:#fcebf0;--amber:#8a5a22;--amber-soft:#f9efd9}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 90% -8%,#e5d5fa 0,transparent 32%),var(--bg)}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--violet);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.app-shell{width:min(100%,760px);min-height:100vh;margin:auto;padding:calc(30px + env(safe-area-inset-top)) 20px calc(34px + env(safe-area-inset-bottom))}
.hero{padding:5px 2px 29px}
.hero-title-row{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:28px}
h1,h2,p{margin:0}
h1{font-size:clamp(47px,11vw,70px);font-weight:800;line-height:1;letter-spacing:-.065em}
.title-dot{color:var(--violet)}
.hero-progress-number{padding-bottom:3px;color:#968e9f;font-size:19px;font-weight:600;letter-spacing:-.045em;white-space:nowrap}
.hero-progress-number strong{color:var(--ink);font-size:31px;font-weight:800}
.hero-progress-number span:last-child{color:#817a8c}
.progress-track{height:9px;overflow:hidden;border-radius:99px;background:#e2dbe9}
.progress-track span{display:block;width:0;height:100%;border-radius:99px;background:#6845b5;transition:width .4s cubic-bezier(.2,.75,.3,1)}
.hero-footer{display:flex;justify-content:space-between;margin-top:10px;color:#857c91;font-size:11px;font-weight:700;letter-spacing:.08em}
.toolbar{padding:22px 0 24px;border-top:1px solid #e3ddec}
.search-field{height:52px;display:flex;align-items:center;gap:12px;padding:0 15px;border:1px solid var(--line);border-radius:15px;background:var(--paper);box-shadow:0 4px 16px rgba(75,48,113,.035);transition:border-color .2s}
.search-field:focus-within{border-color:#a692ce}
.search-field svg{width:19px;height:19px;flex:none;fill:none;stroke:#9c94aa;stroke-width:2;stroke-linecap:round}
.search-field input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font-size:15px}
.search-field input::placeholder{color:#a09aaa}
.search-field input::-webkit-search-cancel-button{cursor:pointer}
.search-field kbd{color:#b3aebd;font-family:inherit;font-size:19px}
.status-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:15px}
.filter-chip{display:flex;align-items:center;justify-content:space-between;gap:7px;min-width:0;min-height:43px;padding:0 13px;border:1px solid var(--line);border-radius:11px;background:#fff;color:#6d657a;font-size:13px;font-weight:650;white-space:nowrap;transition:background .18s,color .18s,border-color .18s}
.filter-chip span{display:grid;place-items:center;min-width:20px;height:20px;padding:0 4px;border-radius:6px;background:#f0ecf4;color:#81798c;font-size:11px}
.filter-chip.is-active{border-color:var(--violet);background:var(--violet);color:#fff;box-shadow:0 5px 11px rgba(104,69,181,.16)}
.filter-chip.is-active span{background:#8668c8;color:#fff}
.select-row{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:13px}
.select-wrap{position:relative}
.select-wrap::after{content:"⌄";position:absolute;right:14px;top:7px;color:#968da3;font-size:19px;pointer-events:none}
.select-wrap select{width:100%;height:41px;padding:0 32px 0 12px;appearance:none;border:1px solid var(--line);border-radius:11px;background:#fff;color:#665f72;font-size:12px;font-weight:650}
.list-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:2px 0 15px}
.list-heading h2{font-size:23px;font-weight:750;letter-spacing:-.045em}
.list-heading h2 span:last-child{margin-left:5px;color:#a49aaf;font-size:16px;font-weight:600;letter-spacing:0}
.add-button{display:flex;align-items:center;gap:6px;min-height:35px;padding:5px 11px;border:1px solid #d9c9ee;border-radius:10px;background:#e9def8;color:#563594;font-size:12px;font-weight:750;white-space:nowrap}
.add-button span:first-child{font-size:20px;font-weight:500;line-height:13px}
.add-button:hover{background:#e1d2f5}
.lead-list{display:grid;gap:11px}
.lead-card{position:relative;overflow:hidden;padding:17px 17px 15px;border:1px solid #e6e0ed;border-radius:19px;background:#fff;box-shadow:0 7px 24px rgba(68,43,94,.04);animation:card-in .26s both}
.lead-card::before{content:"";position:absolute;left:0;top:17px;bottom:17px;width:3px;border-radius:0 4px 4px 0;background:#c9bbdf}
.lead-card[data-status="followup"]::before{background:#d5a85f}
.lead-card[data-status="sold"]::before{background:#48a882}
.lead-card[data-status="declined"]::before{background:#d8788e}
.card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.card-heading{min-width:0}
.card-index{color:#a49aac;font-size:10px;font-weight:750;letter-spacing:.11em}
.card-title{margin:5px 0 0;color:#2b2535;font-size:18px;font-weight:760;line-height:1.22;letter-spacing:-.02em;overflow-wrap:anywhere}
.card-meta{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;color:#8b8492;font-size:12px}
.card-meta span+span::before{content:"·";margin-right:5px;color:#ada4b6}
.card-status{flex:none;max-width:110px;padding:6px 9px;border:1px solid #e4deeb;border-radius:8px;background:#f4f0f7;color:#817689;font-size:11px;font-weight:700;text-align:center;white-space:nowrap}
.lead-card[data-status="followup"] .card-status{border-color:#f0deb6;background:var(--amber-soft);color:var(--amber)}
.lead-card[data-status="sold"] .card-status{border-color:#c5e7d5;background:var(--green-soft);color:var(--green)}
.lead-card[data-status="declined"] .card-status{border-color:#f4d3dc;background:var(--red-soft);color:var(--red)}
.card-address{display:flex;align-items:center;gap:6px;margin-top:13px;color:#786f82;font-size:12px;line-height:1.35}
.card-address svg,.card-links svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.card-address.is-missing{color:#aaa1b0}
.card-divider{height:1px;margin:16px 0 12px;background:#eee9f2}
.result-label{color:#a39aac;font-size:10px;font-weight:750;letter-spacing:.12em}
.result-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:9px}
.result-option{min-width:0;min-height:42px;padding:4px 3px;border:1px solid #e1dbe8;border-radius:9px;background:#fff;color:#625b6d;font-size:11px;font-weight:720;line-height:1.1;transition:background .15s,border-color .15s,color .15s}
.result-option:hover{border-color:#b5a0d1;background:#faf7ff}
.result-option[aria-pressed="true"]{border-color:#ded6e8;background:#f0ebf5;color:#665879}
.result-option[data-value="followup"][aria-pressed="true"]{border-color:#e2c78e;background:#f8eacb;color:#754a13}
.result-option[data-value="sold"][aria-pressed="true"]{border-color:#80c5a1;background:#dff4e9;color:#126d4b}
.result-option[data-value="declined"][aria-pressed="true"]{border-color:#e8a7b6;background:#fbe4ea;color:#a63e56}
.card-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px}
.note-trigger{min-width:0;max-width:74%;display:flex;align-items:center;gap:7px;padding:3px 0;border:0;background:transparent;color:#918999;font-size:12px;text-align:left}
.note-trigger span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.note-trigger.has-note{color:#4b405c}
.note-trigger svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.card-links{display:flex;align-items:center;gap:12px}
.card-links a,.card-links button{display:flex;align-items:center;gap:4px;padding:3px 0;border:0;background:transparent;color:#8b7aa1;font-size:12px;text-decoration:none;white-space:nowrap}
.card-links a:hover,.card-links button:hover,.note-trigger:hover{color:var(--violet)}
.show-more{display:block;width:100%;min-height:43px;margin-top:13px;border:1px solid #d9cbe9;border-radius:12px;background:#ede5f7;color:#5c3b9d;font-size:13px;font-weight:750}
.show-more[hidden]{display:none}
.sync-banner{margin-bottom:14px;padding:12px 14px;border:1px solid #e6d3a9;border-radius:12px;background:#fcf4e2;color:#735620;font-size:12px;line-height:1.4}
.sync-banner[hidden],.empty-state[hidden]{display:none}
.empty-state{padding:48px 20px;text-align:center;color:var(--ink)}
.empty-state span{font-size:17px;font-weight:750}
.empty-state p{margin-top:8px;color:var(--muted);font-size:13px}
.empty-state button{margin-top:18px;padding:10px 14px;border:1px solid #dbcceb;border-radius:10px;background:#fff;color:var(--violet);font-weight:700}
.empty-state button[hidden]{display:none}
.app-footer{display:flex;justify-content:flex-end;padding:31px 1px 0;color:#9a90a5;font-size:11px;font-weight:600}
.app-dialog{width:min(calc(100% - 28px),470px);max-height:min(85vh,760px);padding:0;border:1px solid #e4dcec;border-radius:21px;background:#fff;color:var(--ink);box-shadow:0 30px 90px rgba(46,24,80,.23)}
.app-dialog::backdrop{background:rgba(38,25,55,.48);backdrop-filter:blur(5px)}
.dialog-content{padding:22px;overflow:auto}
.dialog-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:20px}
.eyebrow{color:#9988af;font-size:10px;font-weight:750;letter-spacing:.12em}
.dialog-head h2{margin-top:6px;font-size:20px;font-weight:750;letter-spacing:-.04em}
.icon-button{width:32px;height:32px;display:grid;place-items:center;border:1px solid #e4ddea;border-radius:9px;background:#f4f0f8;color:#82758f;font-size:23px;line-height:1}
.dialog-content label{display:block;margin-top:15px;color:#655c71;font-size:12px;font-weight:700}
.dialog-content input,.dialog-content select,.dialog-content textarea{display:block;width:100%;margin-top:7px;padding:11px 12px;border:1px solid #ded5e6;border-radius:11px;background:#fbf9fd;color:var(--ink);font-size:14px;outline:0}
.dialog-content input:focus,.dialog-content select:focus,.dialog-content textarea:focus{border-color:#a98dcf}
.dialog-content input::placeholder,.dialog-content textarea::placeholder{color:#aaa1b3}
.dialog-content textarea{resize:vertical;min-height:130px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.field-hint{margin-top:9px;color:#9c92a6;font-size:11px}
.dialog-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:23px}
.primary-button{min-height:43px;padding:0 16px;border:0;border-radius:10px;background:var(--violet);color:#fff;font-size:13px;font-weight:750}
.delete-button{margin-right:auto;padding:8px 0;border:0;background:transparent;color:var(--red);font-size:12px;font-weight:700}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));z-index:5;max-width:calc(100% - 36px);padding:10px 14px;border:1px solid #d9cce5;border-radius:11px;background:#fff;color:var(--ink);font-size:12px;text-align:center;box-shadow:0 12px 30px rgba(44,25,65,.16);opacity:0;pointer-events:none;transform:translate(-50%,12px);transition:opacity .2s,transform .2s}
.toast.is-visible{opacity:1;transform:translate(-50%,0)}
@keyframes card-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:400px){.app-shell{padding-left:15px;padding-right:15px}.hero-progress-number{font-size:16px}.hero-progress-number strong{font-size:27px}.card-title{font-size:17px}.lead-card{padding:16px 14px 14px}.result-option{font-size:11px}.card-links{gap:8px}}
@media(max-width:345px){.result-options{grid-template-columns:repeat(2,1fr)}.result-option{font-size:11px}.card-status{font-size:10px;padding:6px 7px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
