:root{--navy: #223555;--navy-dark: #13203a;--ink: #1e2a3b;--text: #2b3546;--label: #4a5260;--muted: #5f6670;--faint: #9aa0a8;--line: #e4e1d8;--line-soft: #f0ede6;--input-line: #dad6cc;--paper: #f5f4f0;--head: #f7f6f2;--surface: #ffffff;--gold: #b89b5e;--gold-ink: #6e5728;--gold-soft: #f1eadb;--danger: #c0392b;--warn-ink: #a23b1e;--ok-ink: #1a5e46;--ok-soft: #e6f3ef;--purple-ink: #53388a;--purple-soft: #efe9f7;--radius: 12px;font-family:Heebo,system-ui,sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0;background:var(--paper)}a{color:var(--navy)}a:hover{color:var(--navy-dark)}button,input,select,textarea{font:inherit}:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.app{display:flex;min-height:100vh}.sidebar{flex:0 0 232px;background:var(--surface);border-inline-end:1px solid var(--line);padding:24px 16px;display:flex;flex-direction:column;gap:20px}.brand{padding:0 8px 18px;border-bottom:2px solid var(--gold)}.brand strong{display:block;font-size:19px;font-weight:800;color:var(--navy)}.brand span{font-size:13px;color:var(--muted)}.nav{display:flex;flex-direction:column;gap:4px}.nav a{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 12px;border-radius:8px;text-decoration:none;color:var(--text);font-size:15px;font-weight:500}.nav a:hover{background:var(--head)}.nav a.active{background:var(--navy);color:#fff;font-weight:600}.nav a .grow{flex:1}.nav .count{font-size:12px;font-weight:600;background:var(--gold);color:#1b2740;border-radius:999px;padding:2px 8px}.nav a.soon{color:var(--faint)}.user-box{margin-top:auto;display:flex;align-items:center;gap:10px;padding:12px 8px 0;border-top:1px solid #ece9e1}.avatar{width:36px;height:36px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;flex:none}.user-box .who{display:flex;flex-direction:column;min-width:0;flex:1}.user-box .who b{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-box .who small{font-size:12px;color:var(--muted)}.link-btn{border:0;background:none;color:var(--navy);cursor:pointer;padding:4px;font-size:13px;text-decoration:underline}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{background:var(--surface);border-bottom:1px solid var(--line);padding:14px 32px;display:flex;flex-wrap:wrap;align-items:center;gap:16px;min-height:56px}.crumbs{font-size:14px;color:var(--muted)}.crumbs a{color:var(--muted);text-decoration:none}.crumbs b{color:var(--ink);font-weight:600}.env-pill{margin-inline-start:auto;font-size:12px;font-weight:600;color:var(--ok-ink);background:var(--ok-soft);border:1px solid #bfe0d2;border-radius:999px;padding:4px 10px}.btn.menu-btn{display:none}.content{padding:28px 32px 48px;display:flex;flex-direction:column;gap:20px;max-width:1320px;width:100%}.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px}.page-head>div:first-child{flex:1 1 260px}.page-head h1{margin:0;font-size:28px;font-weight:700;color:var(--navy)}.page-head p{margin:4px 0 0;font-size:15px;color:var(--muted)}.actions{display:flex;gap:10px;flex-wrap:wrap}.btn{min-height:44px;padding:0 16px;border-radius:8px;border:1px solid var(--input-line);background:var(--surface);color:var(--navy);font-size:15px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:8px}.btn:hover{background:var(--head)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{border:0;background:var(--navy);color:#fff;padding:0 18px}.btn.primary:hover{background:var(--navy-dark)}.btn.small{min-height:36px;font-size:14px;padding:0 12px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{min-height:40px;padding:0 14px;border-radius:999px;font-size:14px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:8px;background:var(--surface);color:var(--text);border:1px solid var(--input-line)}.chip[aria-pressed=true]{background:var(--navy);color:#fff;border-color:var(--navy)}.chip .dot{width:9px;height:9px;border-radius:50%}.chip .n{font-weight:500;opacity:.8}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.filters{padding:14px 16px;display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.field{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--label);font-weight:500;flex:1 1 150px}.field.wide{flex:2 1 240px}.field input,.field select,.input{min-height:42px;border:1px solid var(--input-line);border-radius:8px;padding:0 10px;font-size:14px;background:var(--surface);color:var(--ink)}.check{display:flex;align-items:center;gap:8px;min-height:42px;font-size:14px;color:var(--ink)}.check input{width:18px;height:18px;accent-color:var(--navy)}.sortbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.sortbar label{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--label);font-weight:600}.sortbar select{min-height:40px;border:1px solid var(--input-line);border-radius:8px;padding:0 10px;font-size:14px;background:#fff}.hint{font-size:12px;color:var(--muted)}.btn.more-toggle{display:none}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:14px}table.data th{background:var(--head);text-align:right;color:var(--label);font-weight:600;padding:12px 16px;border-bottom:1px solid var(--line);white-space:nowrap}table.data th.sortable{padding:0 8px}table.data th.sortable button{min-height:44px;padding:0 8px;border:0;background:transparent;font-weight:600;cursor:pointer;color:inherit}table.data th.sortable button.on{color:var(--navy)}table.data td{padding:11px 16px;border-bottom:1px solid var(--line-soft)}table.data tr:hover td{background:#fbfaf7}.nowrap{white-space:nowrap}.soft{color:var(--label)}.faint{color:var(--faint)}.warn{color:var(--warn-ink);font-weight:600}.from-form{color:var(--muted);font-style:italic}.lead-name{font-weight:600;text-decoration:none;font-size:15px}.name-cell{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.status-pill{display:inline-block;white-space:nowrap;font-size:13px;font-weight:600;border-radius:999px;padding:3px 10px}.tag{font-size:12px;font-weight:600;border-radius:6px;padding:2px 7px;display:inline-flex;align-items:center;gap:4px}.tag.fresh{color:#fff;background:#2f6db5}.tag.future{color:var(--purple-ink);background:var(--purple-soft)}.tag.link{color:var(--gold-ink);background:var(--gold-soft)}.stage{color:var(--purple-ink);font-weight:600;font-size:13px}.table-foot{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid var(--line);font-size:14px;color:var(--label)}.pager{margin-inline-start:auto;display:flex;gap:6px;flex-wrap:wrap}.pager button{width:40px;height:40px;border-radius:8px;font-weight:600;cursor:pointer;border:1px solid var(--input-line);background:#fff;color:var(--navy)}.pager button[aria-current=page]{border:0;background:var(--navy);color:#fff}.empty{padding:40px 16px;text-align:center;color:var(--muted)}.notice{padding:12px 16px;border-radius:10px;font-size:14px}.notice.error{background:#fbe7df;color:var(--warn-ink);border:1px solid #f1c7b6}.notice.info{background:var(--gold-soft);color:var(--gold-ink);border:1px solid #e6d8b8}.notice.ok{background:var(--ok-soft);color:var(--ok-ink);border:1px solid #bfe0d2}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.login .card{width:100%;max-width:420px;padding:32px 28px;display:flex;flex-direction:column;gap:18px}.login h1{margin:0;font-size:24px;color:var(--navy)}.login p{margin:0;color:var(--muted);font-size:15px}.login .btn{justify-content:center;width:100%}.login .dev{border-top:1px dashed var(--input-line);padding-top:16px;display:flex;flex-direction:column;gap:10px}@media (max-width: 860px){.app{flex-direction:column}.sidebar{display:none;flex:none;border-inline-end:0;border-bottom:1px solid var(--line);padding:12px 16px}.app.menu-open .sidebar{display:flex}.brand{display:none}.btn.menu-btn{display:inline-flex}.topbar{padding:10px 16px}.content{padding:20px 16px 40px}.page-head h1{font-size:24px}.env-pill{display:none}.chips{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.chip{flex:none}.btn.more-toggle{display:inline-flex}.filters .more{display:none}.filters.more-open .more{display:flex}}
