:root{color-scheme:light;--surface-1: #fcfcfb;--surface-2: #ffffff;--page: #f4f4f1;--text-primary: #0b0b0b;--text-secondary: #52514e;--text-muted: #898781;--gridline: #e1e0d9;--border: rgba(11,11,11,.1);--border-strong: rgba(11,11,11,.16);--accent: #2a78d6;--accent-soft: #e8f0fb;--good: #0ca30c;--good-soft: #e5f6e5;--warning: #b8790a;--warning-soft: #fdf1d9;--critical: #d03b3b;--critical-soft: #fbe7e7;--watch: #ec835a;--watch-soft: #fdece4;--shadow: 0 1px 2px rgba(11,11,11,.04), 0 8px 24px rgba(11,11,11,.06)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--surface-1: #1a1a19;--surface-2: #212120;--page: #0d0d0d;--text-primary: #ffffff;--text-secondary: #c3c2b7;--text-muted: #898781;--gridline: #2c2c2a;--border: rgba(255,255,255,.1);--border-strong: rgba(255,255,255,.18);--accent: #3987e5;--accent-soft: #16283d;--good: #17b317;--good-soft: #123318;--warning: #eda100;--warning-soft: #3a2c0c;--critical: #e66767;--critical-soft: #3a1616;--watch: #ec835a;--watch-soft: #3a2013;--shadow: 0 1px 2px rgba(0,0,0,.3), 0 8px 24px rgba(0,0,0,.4)}}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--page);color:var(--text-primary);font-family:system-ui,-apple-system,Segoe UI,Malgun Gothic,Apple SD Gothic Neo,sans-serif;-webkit-font-smoothing:antialiased}#app{max-width:1180px;margin:0 auto;padding:20px 20px 64px}.app-loading{min-height:calc(100vh - 84px);display:grid;place-items:center;color:var(--text-muted)}.login-shell{min-height:calc(100vh - 84px);display:grid;place-items:center;padding:28px 0}.login-card{width:min(100%,430px);background:var(--surface-2);border:1px solid var(--border);border-radius:18px;padding:38px;box-shadow:var(--shadow);text-align:center}.login-brand{width:66px;height:66px;margin:0 auto 18px;border-radius:18px;display:grid;place-items:center;background:var(--accent);color:#fff;font-size:17px;font-weight:800;letter-spacing:.04em}.login-kicker{margin:0 0 8px;color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.12em}.login-card h1{margin:0;font-size:24px;letter-spacing:-.025em}.login-copy{margin:10px 0 26px;color:var(--text-secondary);font-size:13.5px;line-height:1.55}.login-form{text-align:left}.login-form label{display:block;margin:0 0 6px;color:var(--text-secondary);font-size:12px;font-weight:700}.login-form input{width:100%;margin-bottom:15px;padding:12px 13px;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface-1);color:var(--text-primary);font:inherit;outline:none}.login-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.login-error{margin:-3px 0 12px;color:var(--critical);font-size:12.5px;line-height:1.4}.login-button{width:100%;padding:12px;border:0;border-radius:10px;background:var(--accent);color:#fff;font-size:14px;font-weight:700;cursor:pointer}.login-button:disabled{opacity:.55;cursor:wait}.login-help{margin:20px 0 0;color:var(--text-muted);font-size:11.5px;line-height:1.5}.session-banner{background:var(--accent-soft);color:var(--accent);border:1px solid var(--border);border-radius:10px;padding:10px 16px;font-size:13px;margin-bottom:16px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.session-banner b{color:var(--text-primary)}.session-banner .spacer{flex:1}.session-banner button{flex:none}header.top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}header.top h1{font-size:20px;font-weight:700;margin:0;letter-spacing:-.01em;cursor:pointer}header.top .sub{font-size:13px;color:var(--text-secondary);margin-top:2px}.header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.search-wrap{position:relative;min-width:220px}.search-wrap input{width:100%;padding:9px 12px 9px 34px;border-radius:9px;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text-primary);font-size:14px;outline:none}.search-wrap input:focus{border-color:var(--accent)}.search-wrap svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--text-muted)}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:10px;margin-bottom:18px}.stat-tile{background:var(--surface-1);border:1px solid var(--border);border-radius:12px;padding:14px 16px;cursor:pointer;transition:border-color .15s ease;min-width:0}.stat-tile:hover{border-color:var(--border-strong)}.stat-tile.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.stat-tile .num{font-size:26px;font-weight:700;font-variant-numeric:proportional-nums;line-height:1.1}.stat-tile .label{font-size:12.5px;color:var(--text-secondary);margin-top:4px;display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}.dot.all{background:var(--text-muted)}.dot.active{background:var(--good)}.dot.prospect{background:var(--accent)}.dot.hold{background:var(--warning)}.dot.churned{background:var(--critical)}.dot.watch{background:var(--watch)}.dot.neutral{background:var(--text-muted)}.dot.g1{background:#e87ba4}.dot.g2{background:#4a3aa7}.dot.g3{background:#1baf7a}.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}.chip{padding:6px 12px;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface-1);color:var(--text-secondary);font-size:13px;cursor:pointer;white-space:nowrap}.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.result-count{margin-left:auto;font-size:12.5px;color:var(--text-muted)}.primary-btn{background:var(--accent);color:#fff;border:none;border-radius:9px;padding:9px 14px;font-size:13.5px;cursor:pointer;font-weight:600;white-space:nowrap}.primary-btn:hover{opacity:.9}.primary-btn:disabled{opacity:.4;cursor:not-allowed}.secondary-btn{background:var(--surface-2);color:var(--text-secondary);border:1px solid var(--border-strong);border-radius:9px;padding:9px 14px;font-size:13.5px;cursor:pointer;font-weight:600;white-space:nowrap}.secondary-btn:hover{background:var(--surface-1)}.table-scroll{overflow-x:auto;border-radius:12px}table.roster{width:100%;min-width:760px;border-collapse:collapse;background:var(--surface-1);border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:var(--shadow)}table.roster thead th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:600;padding:10px 14px;border-bottom:1px solid var(--gridline);background:var(--surface-2)}table.roster tbody tr{cursor:pointer;border-bottom:1px solid var(--gridline);border-top:2px solid transparent}table.roster tbody tr:last-child{border-bottom:none}table.roster tbody tr:hover{background:var(--accent-soft)}table.roster tbody tr.drag-over{border-top:2px solid var(--accent)}table.roster tbody tr.dragging{opacity:.35}table.roster tbody tr.flash-new{animation:flashRow 1.8s ease-out}@keyframes flashRow{0%{background:var(--accent-soft)}to{background:transparent}}table.roster td{padding:10px 14px;font-size:13.5px;vertical-align:middle}td.name-cell{font-weight:600;white-space:nowrap}td.rep-cell,td.region-cell{color:var(--text-secondary);white-space:nowrap}td.latest-cell{color:var(--text-secondary);max-width:340px}td.arrow-cell{text-align:right;color:var(--text-muted)}.pagination{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:16px;flex-wrap:wrap}.page-btn{min-width:34px;height:34px;padding:0 8px;border-radius:8px;border:1px solid var(--border-strong);background:var(--surface-1);color:var(--text-secondary);font-size:13px;cursor:pointer;font-variant-numeric:tabular-nums}.page-btn:hover:not(:disabled){background:var(--surface-2)}.page-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700;cursor:default}.page-btn:disabled{opacity:.4;cursor:not-allowed}.page-ellipsis{padding:0 4px;color:var(--text-muted);font-size:13px}td.priority-cell{width:68px}.rank-wrap{display:flex;align-items:center;gap:4px}.rank-num{font-weight:700;font-variant-numeric:tabular-nums;font-size:13px;color:var(--text-secondary);min-width:22px;text-align:right;background:none;border:none;cursor:pointer;padding:3px 5px;border-radius:6px;font-family:inherit}.rank-num:hover{background:var(--surface-2);color:var(--text-primary)}.rank-num.static{cursor:default}.rank-num.static:hover{background:none;color:var(--text-secondary)}.rank-input{width:42px;font-weight:700;font-variant-numeric:tabular-nums;font-size:13px;text-align:center;border:1px solid var(--accent);border-radius:6px;padding:2px 4px;background:var(--surface-1);color:var(--text-primary);font-family:inherit}.drag-handle{cursor:grab;color:var(--text-muted);font-size:16px;line-height:1;padding:6px;-webkit-user-select:none;user-select:none}.drag-handle:active{cursor:grabbing}.drag-handle.disabled{opacity:.3;cursor:not-allowed}.latest-wrap{display:flex;align-items:center;gap:6px;min-width:0}.latest-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.recency-tag{flex:none;font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:999px;white-space:nowrap}.recency-tag.fresh{background:var(--good-soft);color:var(--good)}.recency-tag.normal{background:#89878126;color:var(--text-secondary)}.recency-tag.stale{background:var(--critical-soft);color:var(--critical)}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.badge .dot{width:6px;height:6px}.badge.active{background:var(--good-soft);color:var(--good)}.badge.prospect{background:var(--accent-soft);color:var(--accent)}.badge.hold{background:var(--warning-soft);color:var(--warning)}.badge.churned{background:var(--critical-soft);color:var(--critical)}.badge.watch{background:var(--watch-soft);color:var(--watch)}.badge.neutral{background:#89878126;color:var(--text-secondary)}.badge.g1{background:#e87ba429;color:#c23e74}.badge.g2{background:#4a3aa729;color:#7166d9}.badge.g3{background:#1baf7a29;color:#128a5e}.empty-state{text-align:center;padding:50px 20px;color:var(--text-muted);font-size:14px}.back-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:1px solid var(--border-strong);color:var(--text-secondary);border-radius:8px;padding:7px 12px;font-size:13px;cursor:pointer;margin-bottom:14px}.back-btn:hover{background:var(--surface-1)}.detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px;flex-wrap:wrap}.detail-title{font-size:22px;font-weight:700;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.detail-meta{color:var(--text-secondary);font-size:13.5px;margin-top:6px}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--gridline);margin-bottom:16px}.tab-btn{padding:10px 16px;font-size:13.5px;font-weight:600;color:var(--text-secondary);background:none;border:none;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.tab-btn:hover{color:var(--text-primary)}.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent)}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:8px}.panel-head h3{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0}.add-btn{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:7px 12px;font-size:12.5px;cursor:pointer;font-weight:600}.add-btn:hover{opacity:.9}.edit-link-btn{background:none;border:1px solid var(--border-strong);color:var(--text-secondary);border-radius:8px;padding:6px 11px;font-size:12.5px;cursor:pointer}.edit-link-btn:hover{background:var(--surface-2)}.edit-link-btn.danger{color:var(--critical);border-color:#d03b3b59}.edit-link-btn.danger:hover{background:var(--critical-soft);border-color:var(--critical)}.add-form{background:var(--surface-1);border:1px solid var(--border-strong);border-radius:10px;padding:14px;margin-bottom:14px}.add-form .field{margin-bottom:8px}.add-form label{display:block;font-size:11.5px;color:var(--text-muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:.03em}.add-form input[type=date],.add-form input[type=text],.add-form input[type=password],.add-form select{width:100%;border-radius:8px;border:1px solid var(--border-strong);padding:7px 10px;font-size:13px;background:var(--surface-2);color:var(--text-primary);font-family:inherit}.add-form textarea{width:100%;min-height:64px;border-radius:8px;border:1px solid var(--border-strong);padding:8px 10px;font-family:inherit;font-size:13.5px;resize:vertical;background:var(--surface-2);color:var(--text-primary)}.add-form .two-col{display:grid;grid-template-columns:1fr 1fr;gap:8px}.add-form .three-col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.form-actions{display:flex;gap:8px;justify-content:flex-end;align-items:center;margin-top:6px}.form-hint{font-size:11.5px;color:var(--text-muted);margin-right:auto}.form-error{color:var(--critical);font-size:12.5px;margin-right:auto}.btn-primary{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:7px 14px;font-size:13px;cursor:pointer;font-weight:600}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:none;border:1px solid var(--border-strong);color:var(--text-secondary);border-radius:8px;padding:7px 14px;font-size:13px;cursor:pointer}.btn-danger{background:var(--critical);color:#fff;border:none;border-radius:8px;padding:7px 14px;font-size:13px;cursor:pointer;font-weight:600}.entry-card{background:var(--surface-1);border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin-bottom:10px}.entry-card.editing{border:1px solid var(--accent);box-shadow:0 0 0 1px var(--accent) inset;background:var(--accent-soft)}.edit-mode-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);margin-bottom:10px}.add-form.editing{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.entry-date{font-size:15.5px;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.entry-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0;margin-top:10px;border-top:1px solid var(--gridline)}@media(max-width:760px){.entry-grid{grid-template-columns:1fr}.entry-col{border-left:none!important;border-top:1px solid var(--gridline)}.entry-col:first-child{border-top:none}}.entry-col{padding:10px 12px;min-width:0}.entry-col+.entry-col{border-left:1px solid var(--gridline)}.entry-col.next{background:var(--accent-soft)}.entry-label{display:block;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:6px}.entry-col.result .entry-label{color:var(--good)}.entry-col.next .entry-label{color:var(--accent)}.entry-text{font-size:13.5px;color:var(--text-primary);white-space:pre-line;line-height:1.55;word-break:break-word}.entry-text.empty{color:var(--text-muted);font-style:normal}.person-card{background:var(--surface-1);border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin-bottom:10px}.person-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:6px}.person-name{font-weight:700;font-size:14px}.person-actions{display:flex;gap:4px;flex:none}.icon-btn{background:none;border:1px solid var(--border-strong);color:var(--text-secondary);border-radius:6px;width:26px;height:26px;font-size:12px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.icon-btn:hover{background:var(--surface-2)}.icon-btn.danger:hover{background:var(--critical-soft);color:var(--critical);border-color:var(--critical)}.icon-btn:disabled{opacity:.3;cursor:not-allowed}.info-row{display:flex;justify-content:space-between;gap:10px;padding:4px 0;font-size:13px}.info-row .k{color:var(--text-muted);flex:none}.info-row .v{text-align:right;color:var(--text-primary);word-break:break-word}.info-section{margin-bottom:22px}.info-section h3{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0 0 10px}.meta-card{background:var(--surface-1);border:1px solid var(--border);border-radius:10px;padding:4px 14px}.meta-card .info-row{border-bottom:1px solid var(--gridline);padding:9px 0}.meta-card .info-row:last-child{border-bottom:none}.meta-card select{width:200px}.plan-options{display:flex;gap:8px;flex-wrap:wrap}.plan-opt{padding:6px 12px;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text-secondary);font-size:12.5px;cursor:pointer}.plan-opt.on{background:var(--good-soft);border-color:var(--good);color:var(--good);font-weight:700}.plan-opt.readonly{cursor:default}.setting-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:10px 14px;border-bottom:1px solid var(--gridline)}.setting-row:last-child{border-bottom:none}.setting-label{flex:1;font-size:13.5px;font-weight:600}.setting-usage{font-size:12px;color:var(--text-muted);flex:none}.color-trigger{width:16px;height:16px;padding:0;box-sizing:border-box;flex:none;border:2px solid transparent;cursor:pointer;border-radius:50%;position:relative}.color-trigger:after{content:"";position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px;border-radius:50%;border:1px dashed transparent}.color-trigger:hover:after{border-color:var(--border-strong)}.color-popover{display:flex;align-items:center;flex-wrap:wrap;gap:7px;flex:1 0 100%;padding:10px 14px 10px 40px;margin:4px -14px -10px;background:var(--surface-2);border-top:1px dashed var(--border-strong)}.color-popover-label{font-size:11px;color:var(--text-muted);width:100%;margin-bottom:2px}.color-swatch{width:18px;height:18px;border-radius:50%;padding:0;box-sizing:border-box;border:2px solid transparent;cursor:pointer;flex:none}.color-swatch:hover{transform:scale(1.15)}.color-swatch.is-selected{border-color:var(--text-primary);box-shadow:0 0 0 2px var(--surface-2)}.setting-list{background:var(--surface-1);border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:10px}.setting-inline-form{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:12px 14px}.setting-inline-form input{flex:1;min-width:120px;border-radius:8px;border:1px solid var(--border-strong);padding:7px 10px;font-size:13px;background:var(--surface-2);color:var(--text-primary)}.settings-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px;align-items:start}@media(max-width:900px){.settings-grid{grid-template-columns:1fr}}.confirm-row{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--gridline);background:var(--critical-soft);font-size:12.5px;color:var(--text-primary);flex-wrap:wrap}.confirm-row .msg{flex:1;min-width:160px}.account-form-title{font-size:16px;margin-bottom:14px}.password-rule{margin:-2px 0 12px;color:var(--text-muted);font-size:11.5px}.add-form label.admin-check{display:flex;align-items:center;gap:7px;text-transform:none;letter-spacing:0;cursor:pointer}.add-form label.admin-check input{width:auto}.account-reset-form input{min-width:180px}.user-chip{font-size:13px;color:var(--text-secondary);display:flex;align-items:center;gap:8px}.user-chip b{color:var(--text-primary)}#toast-root{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:999}.toast{background:var(--text-primary);color:var(--page);padding:10px 18px;border-radius:999px;font-size:13px;box-shadow:var(--shadow);white-space:nowrap}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:6px}@media(max-width:520px){#app{padding:14px 12px 44px}.login-shell{min-height:calc(100vh - 58px);padding:12px 0}.login-card{padding:30px 22px;border-radius:15px}.session-banner>span:first-child{display:none}}
