:root{--purple:#3E2656;--lilac:#AC68BC;--lilac-soft:#f0eaf4;--lilac-text:#8a4c9c;--mint:#25D5BF;--canvas:#f5f3f7;--card:#fff;--border:#eae6ef;--ink:#2b1c3a;--muted:#8b8494;--ok-bg:#e2f6f1;--ok-tx:#0a5a4e;--warn-bg:#fdf1df;--warn-tx:#8a5a12;--info-bg:#efe6f4;--info-tx:#6d4a7a;--danger-bg:#fbe9e9;--danger-tx:#a5322f}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Parkinsans',sans-serif;background:var(--canvas);color:var(--ink);font-size:12.5px}
.app{display:flex;min-height:100vh}
.sidebar{width:212px;background:var(--purple);color:#fff;padding:18px 12px;display:flex;flex-direction:column;gap:4px;flex-shrink:0}
.logo{font-weight:700;font-size:14px;padding:6px 14px 16px;line-height:1.3}
.logo small{display:block;font-weight:400;font-size:10px;opacity:.55;margin-top:2px}
.nav-tab{display:flex;align-items:center;gap:10px;color:#fff;font-size:12px;padding:8px 14px;border-radius:8px;text-decoration:none}
.nav-tab:hover{background:rgba(172,104,188,.35)}
.nav-tab.active{background:var(--lilac)}
.nav-tab .badge{margin-left:auto;background:rgba(255,255,255,.18);border-radius:999px;font-size:10px;padding:1px 7px}
.spacer{flex:1}
.whoami{display:flex;align-items:center;gap:9px;padding:10px 14px;border-top:1px solid rgba(255,255,255,.12)}
.whoami .av{width:28px;height:28px;border-radius:50%;background:var(--lilac);display:flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:600;flex-shrink:0}
.whoami p{font-size:11.5px;font-weight:500}.whoami span{font-size:10px;opacity:.55}
.whoami form{margin-left:auto}
.main{flex:1;padding:22px 26px;max-width:1080px}
.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px;flex-wrap:wrap}
h1{font-size:21px;font-weight:700}
.sub{color:var(--muted);font-size:11.5px;margin-top:2px}
.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px;margin-bottom:14px}
.card h2{font-size:14px;font-weight:600;margin-bottom:12px}
.pill{border-radius:999px;font-size:11px;padding:4px 12px;border:1px solid transparent;cursor:pointer;background:transparent;color:var(--muted);font-family:inherit;text-decoration:none;display:inline-block}
.pill.active{background:var(--lilac);color:#fff}
.pill.bordered{border:1px solid var(--border)}
.pill-row{display:flex;gap:6px;flex-wrap:wrap}
.btn{background:var(--purple);color:#fff;border:none;border-radius:9px;padding:9px 15px;font-size:12px;font-weight:500;font-family:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:7px;text-decoration:none}
.btn.ghost{background:#fff;color:var(--purple);border:1px solid var(--border)}
.btn.small{padding:6px 12px;font-size:11px}
.status{border-radius:999px;font-size:10.5px;font-weight:500;padding:3px 10px;display:inline-block;white-space:nowrap}
.st-open{border:1px solid var(--border);color:var(--muted)}
.st-candidates_submitted{background:var(--info-bg);color:var(--info-tx)}
.st-interviewing{background:var(--lilac-soft);color:var(--lilac-text)}
.st-offer_out{background:var(--warn-bg);color:var(--warn-tx)}
.st-filled{background:var(--ok-bg);color:var(--ok-tx)}
.st-lost,.st-on_hold{background:var(--danger-bg);color:var(--danger-tx)}
.av{width:32px;height:32px;border-radius:50%;background:var(--lilac-soft);color:var(--lilac-text);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:11px;flex-shrink:0}
table{width:100%;border-collapse:collapse}
th{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:500;text-align:left;padding:0 8px 8px}
td{padding:9px 8px;border-top:1px solid var(--border);font-size:12px;vertical-align:middle}
td.num,th.num{text-align:right}
.name-b{font-weight:600}.dim{color:var(--muted)}
tr.me td{background:var(--lilac-soft)}
tr.link{cursor:pointer}tr.link:hover td{background:var(--canvas)}
.lb-deals{font-weight:700;font-size:17px}
.lb-pos{font-weight:700;font-size:15px;color:var(--muted)}
tr.first .lb-pos{color:var(--lilac)}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}
.stat{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px 16px}
.stat b{font-size:22px;font-weight:700;display:block}
.stat span{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.stat.hl{background:var(--purple);border-color:var(--purple);color:#fff}
.stat.hl span{color:rgba(255,255,255,.6)}
.two-col{display:grid;grid-template-columns:1.5fr 1fr;gap:14px}
label{display:block;font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:12px 0 5px}
input,select,textarea{width:100%;border:1px solid var(--border);border-radius:9px;padding:9px 11px;font-family:inherit;font-size:12px;background:#fff;color:var(--ink)}
textarea{resize:vertical;min-height:60px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--lilac);outline-offset:1px;border-color:transparent}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.toast{background:var(--ok-bg);color:var(--ok-tx);border-radius:10px;padding:10px 14px;font-size:12px;margin-bottom:14px}
.roundup{background:var(--lilac-soft);border-radius:10px;padding:14px 16px;margin:10px 0;font-size:12px;line-height:1.65}
.roundup .tag{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--lilac-text);font-weight:600;display:block;margin-bottom:6px}
.mini{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--border)}
.mini:last-child{border:none}
.mini .m{font-weight:600;font-size:12px}.mini .s{font-size:10.5px;color:var(--muted)}
.mini .r{margin-left:auto;font-size:10.5px;color:var(--muted);text-align:right;white-space:nowrap}
.note{border:1px dashed var(--lilac);border-radius:10px;padding:10px 14px;font-size:11px;color:var(--lilac-text);background:var(--lilac-soft);margin-bottom:16px}
.chart-note{font-size:10.5px;color:var(--muted);margin-top:8px}
.bar-wrap{display:flex;align-items:flex-end;gap:18px;height:150px;padding:8px 4px 0}
.bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}
.bar i{width:100%;max-width:56px;background:var(--lilac);opacity:.45;border-radius:6px}
.bar:last-child i{opacity:1}
.bar b{font-size:11px}.bar span{font-size:10px;color:var(--muted)}
.role-pill{border-radius:999px;font-size:10.5px;font-weight:500;padding:3px 10px;display:inline-block}
.r-consultant{background:var(--lilac-soft);color:var(--lilac-text)}
.r-line_manager{background:var(--warn-bg);color:var(--warn-tx)}
.r-director{background:var(--info-bg);color:var(--info-tx)}
.r-master_admin{background:var(--purple);color:#fff}
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--canvas)}
.login-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:28px;width:340px}
.login-card .logo2{font-weight:700;font-size:16px;color:var(--purple);margin-bottom:2px}
.err{background:var(--danger-bg);color:var(--danger-tx);border-radius:9px;padding:9px 12px;font-size:11.5px;margin-top:12px}
.board-page{min-height:100vh;background:var(--purple);color:#fff;padding:5vh 6vw;display:flex;flex-direction:column;font-family:'Parkinsans',sans-serif}
.board-page header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4vh}
.board-page h1{font-size:clamp(26px,3.4vw,44px)}
.board-page .month{color:var(--lilac);font-size:clamp(15px,1.8vw,24px);font-weight:600}
.b-head,.b-row{display:grid;grid-template-columns:5vw 1fr 7vw 7vw 7vw 7vw 10vw;align-items:center;gap:1.6vw}
.b-head{color:rgba(255,255,255,.4);font-size:clamp(10px,1vw,14px);text-transform:uppercase;letter-spacing:.08em;padding-bottom:1.5vh}
.b-head span:nth-child(n+3){text-align:right}
.b-row{padding:2.2vh 0;border-bottom:1px solid rgba(255,255,255,.12)}
.b-pos{font-size:clamp(26px,3.2vw,48px);font-weight:700;color:rgba(255,255,255,.45)}
.b-row.first .b-pos{color:var(--lilac)}
.b-name{font-size:clamp(20px,2.6vw,40px);font-weight:600}
.b-stat{font-size:clamp(16px,2vw,32px);font-weight:500;color:rgba(255,255,255,.55);text-align:right}
.b-count{font-size:clamp(30px,4vw,56px);font-weight:700;text-align:right}
.board-page footer{margin-top:auto;display:flex;justify-content:space-between;color:rgba(255,255,255,.4);font-size:clamp(10px,1vw,13px)}
@media (max-width:860px){.stat-grid{grid-template-columns:repeat(2,1fr)}.two-col,.form-grid{grid-template-columns:1fr}.sidebar{width:64px}.sidebar .logo,.nav-tab .txt,.whoami div,.nav-tab .badge{display:none}}
/* v1.0 production polish */
.week-strip{display:flex;gap:6px}
.week-strip .day{width:44px;border:1px solid var(--border);border-radius:10px;background:#fff;padding:6px 0 5px;text-align:center}
.week-strip .day span{display:block;font-size:9.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.week-strip .day b{font-size:13px;font-weight:600}
.week-strip .day.today{background:var(--lilac);border-color:var(--lilac)}
.week-strip .day.today span{color:rgba(255,255,255,.75)}
.week-strip .day.today b{color:#fff}
.week-strip .dots{display:flex;gap:2px;justify-content:center;height:5px;margin-top:2px}
.week-strip .dots i{width:4px;height:4px;border-radius:50%;background:var(--lilac)}
.week-strip .day.today .dots i{background:#fff}
.status-select{width:auto;border-radius:999px;font-size:10.5px;font-weight:500;padding:3px 22px 3px 10px;border:1px solid var(--border);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%238b8494'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}
.status-select.st-interviewing{background-color:var(--lilac-soft);color:var(--lilac-text);border-color:transparent}
.status-select.st-offer_out{background-color:var(--warn-bg);color:var(--warn-tx);border-color:transparent}
.status-select.st-filled{background-color:var(--ok-bg);color:var(--ok-tx);border-color:transparent}
.status-select.st-candidates_submitted{background-color:var(--info-bg);color:var(--info-tx);border-color:transparent}
.status-select.st-lost,.status-select.st-on_hold{background-color:var(--danger-bg);color:var(--danger-tx);border-color:transparent}
details summary::-webkit-details-marker{display:none}
.b-row{transition:transform .4s ease}
@media (max-width:1000px){.week-strip{display:none}}
.hub-link{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14)}
.hub-link:hover{background:rgba(172,104,188,.35)}
