:root{--bg: #FAF6EE;--surface: #FFFDF8;--ink: #1E2A22;--ink-2: #5B6A5F;--ink-3: #8A968C;--line: #E8E1D2;--line-2: #F1EBDD;--accent: #1F7A4D;--accent-ink: #175E3B;--accent-soft: #E4F0E7;--s-neutral-fg: #5B6A5F;--s-neutral-bg: #EFEBE0;--s-amber-fg: #8A5312;--s-amber-bg: #F7EBD3;--s-blue-fg: #1D5E96;--s-blue-bg: #E1ECF6;--s-violet-fg: #5B3F97;--s-violet-bg: #ECE6F6;--s-green-fg: #1F7A4D;--s-green-bg: #E1F0E6;--s-red-fg: #A5382A;--s-red-bg: #F7E4E0;--serif: "Newsreader", Georgia, "Times New Roman", serif;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--serif);font-weight:500;letter-spacing:-.01em}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.brand{display:flex;align-items:baseline;gap:9px}.brand-mark{font-family:var(--serif);font-size:1.15rem;font-weight:600;color:var(--accent-ink)}.brand-sub{font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.btn-primary{font:inherit;font-weight:600;color:#fff;background:var(--accent);border:0;border-radius:9px;padding:11px 16px;cursor:pointer;width:100%;transition:background .12s}.btn-primary:hover:not(:disabled){background:var(--accent-ink)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{font:inherit;font-size:.86rem;color:var(--ink-2);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:7px 13px;cursor:pointer}.btn-ghost:hover:not(:disabled){border-color:var(--accent);color:var(--accent-ink)}.btn-ghost:disabled{opacity:.45;cursor:not-allowed}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:30px 28px;box-shadow:0 8px 30px #1e2a220f;display:flex;flex-direction:column;gap:12px}.auth-title{font-size:1.7rem;margin:12px 0 0}.auth-dek{color:var(--ink-2);font-size:.92rem;margin:0 0 6px}.field{display:flex;flex-direction:column;gap:5px;font-size:.82rem;color:var(--ink-2)}.field input{font:inherit;font-family:var(--mono);font-size:.9rem;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:9px;padding:10px 12px}.field input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.auth-error{background:var(--s-red-bg);color:var(--s-red-fg);font-size:.84rem;padding:9px 12px;border-radius:8px}.auth-foot{color:var(--ink-3);font-size:.76rem;text-align:center;margin:4px 0 0}.app-shell{min-height:100vh}.app-header{display:flex;align-items:center;justify-content:space-between;padding:16px 28px;border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:5}.app-main{max-width:1180px;margin:0 auto;padding:26px 28px 60px}.page-head{margin-bottom:20px}.page-title{font-size:1.9rem;margin:0}.page-dek{color:var(--ink-2);font-size:.92rem;max-width:62ch;margin:6px 0 0}.banner-error{background:var(--s-red-bg);color:var(--s-red-fg);padding:11px 14px;border-radius:10px;margin-bottom:16px;font-size:.88rem}.table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.leads-table{border-collapse:collapse;width:100%;font-size:13.5px}.leads-table thead th{text-align:left;font-family:var(--sans);font-size:.68rem;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);font-weight:600;padding:11px 14px;border-bottom:1px solid var(--line);background:#fbf7ef;white-space:nowrap}.leads-table th.num,.leads-table td.num{text-align:right}.leads-table tbody td{padding:10px 14px;border-bottom:1px solid var(--line-2);vertical-align:middle;white-space:nowrap}.leads-table tbody tr:last-child td{border-bottom:0}.leads-table tbody tr:hover{background:#fbf8f1}.cell-name{font-weight:600}.cell-email,.cell-batch{max-width:220px;overflow:hidden;text-overflow:ellipsis}.table-msg{text-align:center;color:var(--ink-3);padding:40px 14px!important;font-family:var(--sans)}.leads-table th:last-child,.leads-table td:last-child{position:sticky;right:0;background:var(--surface);box-shadow:-8px 0 8px -8px #1e2a2226}.leads-table thead th:last-child{background:#fbf7ef;z-index:2}.leads-table tbody tr:hover td:last-child{background:#fbf8f1}.tabs{display:flex;gap:6px;margin-bottom:14px}.tab{font:inherit;font-size:.84rem;color:var(--ink-2);background:transparent;border:1px solid var(--line);border-radius:999px;padding:6px 14px;cursor:pointer;display:inline-flex;align-items:center;gap:7px}.tab:hover{border-color:var(--accent);color:var(--accent-ink)}.tab-active{background:var(--surface);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.tab:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.tab-count{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:.7rem;font-weight:600;background:var(--line-2);color:var(--ink-2);border-radius:999px;padding:1px 7px}.tab-count-due{background:var(--s-amber-bg);color:var(--s-amber-fg)}.tab-count-overdue{background:var(--s-red-bg);color:var(--s-red-fg)}.status-cell{display:inline-flex;align-items:center;gap:8px}.status-trigger{font-family:var(--mono);font-size:.74rem;font-weight:600;letter-spacing:.02em;border:1px solid transparent;border-radius:7px;padding:5px 24px 5px 10px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%235B6A5F' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center;white-space:nowrap}.status-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.popover{position:fixed;z-index:40;width:272px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 34px #1e2a2229;padding:14px;display:flex;flex-direction:column;gap:10px}.pop-field{display:flex;flex-direction:column;gap:4px}.pop-label{display:flex;align-items:baseline;justify-content:space-between;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-weight:600}.pop-select,.pop-date,.pop-note{font:inherit;font-size:.86rem;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:8px;padding:7px 10px;width:100%}.pop-note{font-size:.84rem;resize:vertical;min-height:46px;font-family:var(--sans)}.pop-select:focus,.pop-date:focus,.pop-note:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.pop-count{font-family:var(--mono);font-size:.66rem;text-transform:none;letter-spacing:0}.pop-clear{font:inherit;font-size:.66rem;text-transform:lowercase;letter-spacing:0;color:var(--s-red-fg);background:none;border:0;cursor:pointer;padding:0;text-decoration:underline}.pop-hint{font-size:.74rem;color:var(--ink-2)}.pop-hint-warn{color:var(--s-red-fg)}.pop-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:2px}.pop-btn{width:auto;padding:7px 14px;font-size:.84rem}.cell-followup{min-width:92px}.fu{display:flex;flex-direction:column;gap:3px;align-items:flex-start}.fu-none{color:var(--ink-3)}.fu-date{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:.78rem;font-weight:600;border-radius:6px;padding:2px 8px;color:var(--ink-2);background:var(--line-2)}button.fu-date{border:0;cursor:pointer;font-weight:600}button.fu-date:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.fu-has-note:after{content:" ·note";font-weight:400;opacity:.75;font-size:.68rem}.fu-overdue .fu-date{color:var(--s-red-fg);background:var(--s-red-bg)}.fu-due .fu-date{color:var(--s-amber-fg);background:var(--s-amber-bg)}.fu-note{font-size:.76rem;color:var(--ink-2);white-space:normal;max-width:220px;line-height:1.4}.pager{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:18px}.pager-label{font-family:var(--mono);font-size:.78rem;color:var(--ink-2)}.spinner{width:26px;height:26px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}@media(max-width:620px){.app-main,.app-header{padding-left:16px;padding-right:16px}.page-title{font-size:1.55rem}}
