:root{
  --rose:#B76E79; --plum:#5A2E3A; --blush:#F4C7C3; --cream:#FBF4EC;
  --berry:#C2566A; --porcelain:#FFF8F2; --nude:#E9C7B8;
  --rose-text:#9A4F5B; --berry-text:#A33A50; --field:#8C5A66;
  --serif:'Playfair Display',Georgia,serif; --sans:'Lato',system-ui,sans-serif;
  --accent:'Courier Prime','Courier New',monospace;
}
*{box-sizing:border-box}
body{margin:0;background:var(--cream);color:var(--plum);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--berry-text)}
:focus-visible{outline:3px solid var(--plum);outline-offset:2px}
h1,h2,h3{font-family:var(--serif);font-weight:700;margin:0 0 .4em;color:var(--plum)}
.hidden{display:none!important}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.topbar{background:rgba(251,244,236,.96);border-bottom:1px solid var(--blush);position:sticky;top:0;z-index:5;backdrop-filter:blur(8px)}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;max-width:1180px;margin:0 auto}
.brand{font-family:var(--serif);font-weight:700;font-size:1.15rem}
.brand span{font-family:var(--accent);font-size:.78rem;color:var(--rose-text);font-weight:700;margin-left:8px;letter-spacing:.04em}
.userchip{font-family:var(--accent);font-size:.82rem;color:var(--field)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--plum);color:var(--cream)!important;padding:10px 18px;border-radius:999px;border:2px solid var(--plum);font-weight:700;font-size:.92rem;cursor:pointer;font-family:var(--sans);text-decoration:none}
.btn:hover{background:var(--berry-text);border-color:var(--berry-text)}
.btn.ghost{background:transparent;color:var(--plum)!important}
.btn.ghost:hover{background:var(--plum);color:var(--cream)!important}
.btn.sm{padding:7px 12px;font-size:.82rem}
.btn.ok{background:#2f6b4f;border-color:#2f6b4f}
.btn.ok:hover{background:#24553f;border-color:#24553f}
.btn.warn{background:#8a6a1f;border-color:#8a6a1f}
.btn.danger{background:var(--berry-text);border-color:var(--berry-text)}
.btn.send{background:#3d5a80;border-color:#3d5a80}
.btn:disabled{opacity:.45;cursor:not-allowed}

/* Gate screens — no task markup in these views */
.gate{min-height:calc(100vh - 60px);display:flex;align-items:center;justify-content:center;padding:40px 20px}
.gate-card{background:var(--porcelain);border:1px solid var(--blush);border-radius:22px;padding:40px 36px;max-width:440px;width:100%;box-shadow:0 18px 40px rgba(90,46,58,.1);text-align:center}
.gate-card .eyebrow{font-family:var(--accent);font-weight:700;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:var(--rose-text);margin:0 0 10px}
.gate-card p{margin:0 0 1.1em;color:var(--field)}
.gate-card .note{font-size:.88rem;opacity:.9;border-left:3px solid var(--rose);padding-left:12px;text-align:left;margin-top:22px}

.banner{background:#fff3cd;border:1px solid #e6d28a;color:#5a4a18;padding:10px 16px;border-radius:12px;font-size:.9rem;margin:16px 0}
.banner.sample{background:#fde8ec;border-color:var(--blush);color:var(--plum)}
.banner.safety{background:#e8f0fe;border-color:#b6c9ef;color:#1a3a6b}

.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 8px}
.tab{background:var(--porcelain);border:1.5px solid var(--blush);border-radius:999px;padding:8px 16px;font-weight:700;cursor:pointer;font-family:var(--sans);color:var(--plum)}
.tab.active{background:var(--plum);color:var(--cream);border-color:var(--plum)}
.tab .count{font-family:var(--accent);font-size:.78rem;margin-left:6px;opacity:.85}

.filters{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 16px}
.chip{background:var(--porcelain);border:1px solid var(--blush);border-radius:999px;padding:6px 14px;font-weight:700;font-size:.88rem;cursor:pointer}
.chip.active{background:var(--blush);border-color:var(--rose)}

.board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:28px}
@media(max-width:960px){.board{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.board{grid-template-columns:1fr}}
.col{background:var(--porcelain);border:1px solid var(--blush);border-radius:16px;padding:12px;min-height:220px}
.col h3{font-size:1rem;display:flex;justify-content:space-between;align-items:baseline}
.col h3 small{font-family:var(--accent);font-size:.78rem;color:var(--rose-text);font-weight:700}
.card{background:var(--cream);border:1px solid var(--blush);border-radius:12px;padding:12px;margin:0 0 10px;cursor:grab}
.card .title{font-weight:700;font-size:.95rem;margin:0 0 8px}
.card .meta{display:flex;flex-wrap:wrap;gap:6px;font-size:.78rem}
.tag{background:#fff;border:1px solid var(--blush);border-radius:999px;padding:2px 8px;font-family:var(--accent);font-weight:700}
.tag.firm-m{background:#efe6f0}
.tag.firm-b{background:#fde8ec}
.tag.rec{background:#e8f5ee;border-color:#b7dcc6}
.tag.sample{background:#fff;color:var(--berry-text);border-color:var(--berry)}
.tag.due{color:var(--field)}

.panel{background:var(--porcelain);border:1px solid var(--blush);border-radius:16px;padding:16px;margin-bottom:20px}
.panel h2{font-size:1.35rem}
.approval{background:var(--cream);border:1px solid var(--blush);border-radius:14px;padding:14px 16px;margin:0 0 12px}
.approval.outreach{border-left:4px solid #3d5a80}
.approval .kind{font-family:var(--accent);font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--rose-text);margin:0 0 4px}
.approval .title{font-weight:700;margin:0 0 6px}
.approval .summary{margin:0 0 10px;color:var(--field);font-size:.92rem}
.approval .row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.approval .safety{font-size:.85rem;background:#e8f0fe;border-radius:8px;padding:8px 10px;margin:0 0 10px;color:#1a3a6b}
.approval .status{font-family:var(--accent);font-size:.8rem;font-weight:700}
.add-form{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:8px;align-items:end}
@media(max-width:800px){.add-form{grid-template-columns:1fr 1fr}}
label{display:block;font-weight:700;font-size:.82rem;margin-bottom:4px}
input,select{width:100%;padding:9px 11px;border:1.5px solid var(--field);border-radius:10px;background:#fff;color:var(--plum);font:inherit}
.foot{font-size:.82rem;color:var(--field);padding:8px 0 28px}
