:root{
  --gold:#c2922a; --gold-soft:#e7d9a3; --ink:#1b2434; --ink-2:#2c3548;
  --parchment:#eef1f6; --paper:#ffffff; --line:#e3e7ee; --muted:#697587;
  --green:#2f8a57; --amber:#cc8a1a; --red:#c0492f; --blue:#2f5fa8; --slate:#5a6472; --purple:#6b4c9a;
  --shadow:0 1px 2px rgba(27,36,52,.06),0 8px 24px rgba(27,36,52,.07);
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'DM Sans',system-ui,sans-serif;background:var(--parchment);color:var(--ink);line-height:1.45;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:'Cormorant Garamond',serif;font-weight:600;letter-spacing:.2px}
button{font-family:inherit;cursor:pointer}
.hidden{display:none!important}

/* ---- top bar ---- */
header{background:var(--ink);color:#fff;border-bottom:3px solid var(--gold);position:sticky;top:0;z-index:50}
.hdr{max-width:1640px;margin:0 auto;padding:12px 24px;display:flex;align-items:center;gap:20px}
.brand{display:flex;align-items:center;gap:11px}
.logo{width:36px;height:36px;border:2px solid var(--gold);border-radius:9px;display:grid;place-items:center;color:var(--gold);font-family:'Cormorant Garamond';font-size:22px;font-weight:700}
.brand h1{font-size:22px;color:#fff;line-height:1}
.tabs{display:flex;gap:2px;margin-left:8px}
.tab{background:none;border:none;color:#bdb7a8;padding:9px 15px;border-radius:8px;font-size:14px;font-weight:500}
.tab:hover{color:#fff;background:rgba(255,255,255,.06)}
.tab.on{color:var(--ink);background:var(--gold)}
.hdr .right{margin-left:auto;display:flex;align-items:center;gap:12px}
.search{padding:9px 13px;border:1px solid #3a3a3a;background:#141414;color:#fff;border-radius:9px;font-family:inherit;font-size:13.5px;width:230px}
.search:focus{outline:none;border-color:var(--gold)}
.btn{padding:9px 15px;border-radius:9px;border:none;font-size:13.5px;font-weight:600}
.btn-gold{background:var(--gold);color:var(--ink)} .btn-gold:hover{background:#d9b43a}
.btn-ghost{background:rgba(255,255,255,.08);color:#fff} .btn-ghost:hover{background:rgba(255,255,255,.16)}
.btn-sec{background:var(--paper);color:var(--ink-2);border:1px solid var(--line)} .btn-sec:hover{background:#eaeef4}
.btn-danger{background:#fbe9e4;color:var(--red);border:1px solid #f0c5b9}
.btn-sm{padding:6px 11px;font-size:12.5px;border-radius:7px}
.user{position:relative}
.avatar{width:34px;height:34px;border-radius:50%;background:var(--gold);color:var(--ink);display:grid;place-items:center;font-weight:700;font-size:13px;border:none}
.menu{position:absolute;right:0;top:42px;background:var(--paper);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);min-width:180px;padding:6px;z-index:60}
.menu button{display:block;width:100%;text-align:left;background:none;border:none;padding:9px 12px;border-radius:7px;font-size:13.5px;color:var(--ink-2)}
.menu button:hover{background:var(--parchment)}
.menu .who{padding:9px 12px;border-bottom:1px solid var(--line);margin-bottom:4px}
.menu .who b{display:block;font-size:14px} .menu .who span{font-size:11.5px;color:var(--muted)}

.wrap{max-width:1640px;margin:0 auto;padding:20px 24px 70px}
.viewbar{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.viewbar h2{font-size:24px}
.viewbar .grow{flex:1}
select.flt{padding:8px 11px;border:1px solid var(--line);border-radius:8px;font-family:inherit;font-size:13px;background:var(--paper)}
.muted{color:var(--muted);font-size:13px}

/* ---- board ---- */
.board{display:flex;gap:14px;overflow-x:auto;padding-bottom:14px;align-items:flex-start}
.col{background:#e9edf4;border-radius:12px;min-width:270px;width:270px;flex:0 0 auto;max-height:calc(100vh - 190px);display:flex;flex-direction:column}
.col-h{padding:12px 14px 8px;display:flex;align-items:center;gap:8px;position:sticky;top:0}
.col-h .dot{width:9px;height:9px;border-radius:50%}
.col-h h3{font-size:16px;flex:1}
.col-h .ct{background:#fff;border-radius:20px;font-size:12px;font-weight:600;color:var(--muted);padding:1px 9px}
.col-body{padding:0 10px 12px;overflow-y:auto;flex:1;min-height:30px}
.col.drag-over{outline:2px dashed var(--gold);outline-offset:-4px}
.card{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:11px 12px;margin-bottom:9px;box-shadow:0 1px 2px rgba(0,0,0,.04);cursor:grab}
.card:hover{border-color:var(--gold-soft);box-shadow:var(--shadow)}
.card.dragging{opacity:.4}
.card .loc{font-weight:600;font-size:13.5px;display:flex;align-items:center;gap:6px}
.card .st{font-size:10px;background:var(--ink);color:#fff;border-radius:4px;padding:1px 5px;font-weight:600}
.card .proj{font-size:11.5px;color:var(--muted);margin-top:1px}
.card .meta{display:flex;align-items:center;gap:6px;margin-top:9px;flex-wrap:wrap}
.pill{display:inline-block;font-size:10.5px;padding:2px 8px;border-radius:20px;background:#e9edf4;color:var(--ink-2);white-space:nowrap}
.pri{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:2px 7px;border-radius:5px}
.pri.High{background:#f7ddd5;color:var(--red)} .pri.Normal{background:#eef0ed;color:var(--slate)} .pri.Low{background:#eef0ed;color:#9a9486}
.who-chip{margin-left:auto;display:flex;align-items:center;gap:5px}
.ini{width:22px;height:22px;border-radius:50%;background:var(--slate);color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center}
.due{font-size:11px;color:var(--muted);margin-top:7px;display:flex;align-items:center;gap:5px}
.due.soon{color:var(--red);font-weight:600} .due.near{color:var(--amber);font-weight:600}

/* ---- progress bar ---- */
.prog{height:6px;background:#e3e8f0;border-radius:4px;overflow:hidden;margin-top:9px}
.prog.sm{height:5px;margin-top:7px}
.prog-fill{height:100%;border-radius:4px;transition:width .5s cubic-bezier(.2,.8,.2,1)}
.prog-row{display:flex;align-items:center;gap:8px;margin-top:9px}
.prog-row .prog{flex:1;margin-top:0}
.prog-pct{font-size:10.5px;font-weight:700;color:var(--muted);min-width:30px;text-align:right}

/* ---- team view ---- */
.team-bar{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.board.team .col{min-width:300px;width:300px;background:#e7ebf2}
.atty-head{padding:12px 14px 10px}
.atty-top{display:flex;align-items:center;gap:10px}
.atty-av{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;color:#fff;font-weight:700;font-size:14px;flex:0 0 auto}
.atty-name{font-family:'Cormorant Garamond';font-size:18px;font-weight:600;flex:1;line-height:1.1}
.atty-acts{display:flex;gap:3px;opacity:0;transition:.15s}
.col:hover .atty-acts{opacity:1}
.atty-acts button{width:24px;height:24px;border:none;background:rgba(0,0,0,.06);border-radius:6px;font-size:12px;color:var(--muted);display:grid;place-items:center}
.atty-acts button:hover{background:rgba(0,0,0,.12);color:var(--ink)}
.atty-stats{display:flex;gap:14px;margin-top:9px;font-size:11.5px;color:var(--muted)}
.atty-stats b{color:var(--ink);font-size:15px;font-family:'Cormorant Garamond';font-weight:700}
.atty-load{margin-top:9px}
.atty-load .lbl{display:flex;justify-content:space-between;font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin-bottom:4px}
.phase-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:9px}
.phase-chip{font-size:9.5px;font-weight:600;padding:2px 6px;border-radius:10px;color:#fff;opacity:.9}
.col.unassigned{background:#eef1f6;border:1px dashed var(--line)}

/* ---- table ---- */
.panel{background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:6px 0}
table{width:100%;border-collapse:collapse;font-size:13px}
thead th{text-align:left;padding:11px 12px;border-bottom:2px solid var(--gold);font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);cursor:pointer;white-space:nowrap;position:sticky;top:62px;background:var(--paper);z-index:5}
thead th:hover{color:var(--ink)}
tbody td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
tbody tr{cursor:pointer} tbody tr:hover{background:#f4f8fd}
.loc-c{font-weight:600;white-space:nowrap}
.dt{font-size:12px;white-space:nowrap}.dt.f{color:var(--red);font-weight:600}.dt.na{color:#b8b2a2}
.statuscell{max-width:340px;font-size:12px;color:var(--ink-2);line-height:1.4}
.empty{text-align:center;padding:50px;color:var(--muted)}

/* ---- KPIs / dashboard ---- */
.kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-bottom:20px}
.kpi{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:15px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--gold)}
.kpi .num{font-family:'Cormorant Garamond';font-size:36px;font-weight:700;line-height:1}
.kpi .lab{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;margin-top:6px}
.kpi.alert::before{background:var(--red)}.kpi.alert .num{color:var(--red)}
.kpi.warn::before{background:var(--amber)}.kpi.warn .num{color:var(--amber)}
.dgrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.dpanel{background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:16px 18px}
.dpanel h3{font-size:19px;margin-bottom:12px}
.bars{display:flex;flex-direction:column;gap:8px}
.bar-row{display:grid;grid-template-columns:120px 1fr 32px;align-items:center;gap:10px;cursor:pointer}
.bar-label{font-size:12.5px;color:var(--ink-2);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bar-track{background:#e9edf4;border-radius:6px;height:18px;overflow:hidden}
.bar-fill{height:100%;background:linear-gradient(90deg,var(--gold),var(--gold-soft));border-radius:6px}
.dgrid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:18px}
.funnel{display:flex;flex-direction:column;gap:7px}
.fn{display:grid;grid-template-columns:90px 1fr 28px;align-items:center;gap:10px}
.fn .fn-l{font-size:12px;color:var(--ink-2);text-align:right;display:flex;align-items:center;gap:6px;justify-content:flex-end}
.fn .fn-dot{width:9px;height:9px;border-radius:50%}
.fn .fn-track{height:22px;background:#e9edf4;border-radius:6px;overflow:hidden}
.fn .fn-fill{height:100%;border-radius:6px;opacity:.85}
.fn .fn-v{font-size:12.5px;font-weight:700;color:var(--muted)}
.wl{display:flex;flex-direction:column;gap:10px}
.wl-row{display:grid;grid-template-columns:120px 1fr 34px;align-items:center;gap:10px;cursor:pointer}
.wl-av{display:flex;align-items:center;gap:7px;overflow:hidden}
.wl-ini{width:24px;height:24px;border-radius:6px;color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center;flex:0 0 auto}
.wl-nm{font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:1100px){.dgrid3{grid-template-columns:1fr}}
.bar-val{font-size:12.5px;font-weight:600;color:var(--muted)}

/* ---- calendar / agenda ---- */
.agenda{display:flex;flex-direction:column;gap:1px}
.agmonth{font-family:'Cormorant Garamond';font-size:20px;font-weight:600;margin:16px 0 6px;color:var(--ink-2)}
.ag{display:grid;grid-template-columns:70px 1fr auto;gap:14px;align-items:center;padding:11px 8px;border-bottom:1px solid var(--line);cursor:pointer}
.ag:hover{background:#f4f8fd}
.ag-date{text-align:center;border-radius:8px;padding:5px 2px;background:#e9edf4}
.ag-date .d{font-family:'Cormorant Garamond';font-size:20px;font-weight:700;line-height:1}
.ag-date .mo{font-size:10px;text-transform:uppercase;color:var(--muted)}
.ag.overdue .ag-date{background:#f6ddd5}.ag.overdue .ag-date .d{color:var(--red)}
.ag.soon .ag-date{background:#f8eed5}.ag.soon .ag-date .d{color:var(--amber)}
.tag{font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;padding:3px 9px;border-radius:20px;background:#e9edf4;color:var(--slate)}

/* ---- editor slide-over ---- */
.scrim{position:fixed;inset:0;background:rgba(26,26,26,.45);z-index:100;opacity:0;pointer-events:none;transition:.2s}
.scrim.open{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;bottom:0;width:540px;max-width:94vw;background:var(--parchment);z-index:101;transform:translateX(100%);transition:transform .25s cubic-bezier(.3,.8,.3,1);display:flex;flex-direction:column;box-shadow:-10px 0 40px rgba(0,0,0,.2)}
.drawer.open{transform:translateX(0)}
.drawer-h{background:var(--ink);color:#fff;padding:16px 20px;display:flex;align-items:center;gap:12px}
.drawer-h h2{color:#fff;font-size:21px;flex:1}
.drawer-h .x{background:rgba(255,255,255,.1);color:#fff;border:none;width:32px;height:32px;border-radius:8px;font-size:18px}
.drawer-b{flex:1;overflow-y:auto;padding:18px 20px}
.fg{margin-bottom:14px}
.fg label{display:block;font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:5px}
.fg input,.fg select,.fg textarea{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:8px;font-family:inherit;font-size:14px;background:var(--paper)}
.fg textarea{min-height:80px;resize:vertical}
.fg input:focus,.fg select:focus,.fg textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,162,39,.15)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.section-t{font-family:'Cormorant Garamond';font-size:18px;font-weight:600;margin:20px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.chiprow{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.qchip{font-size:12px;padding:5px 10px;border:1px solid var(--line);border-radius:20px;background:var(--paper);color:var(--ink-2)}
.qchip:hover{border-color:var(--gold);background:#eef4fc}
.activity{display:flex;flex-direction:column;gap:0}
.act{padding:9px 0;border-bottom:1px solid var(--line);font-size:12.5px}
.act .a-h{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;margin-bottom:2px}
.act .a-t{color:var(--ink-2)}
.act.note .a-t{background:#eef4fc;border-left:2px solid var(--gold);padding:6px 9px;border-radius:0 6px 6px 0}
.drawer-f{padding:14px 20px;border-top:1px solid var(--line);background:var(--paper);display:flex;gap:10px;align-items:center}
.drawer-f .grow{flex:1}

/* ---- toast / modal ---- */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--ink);color:#fff;padding:12px 20px;border-radius:10px;font-size:14px;z-index:200;opacity:0;transition:.25s;box-shadow:0 8px 30px rgba(0,0,0,.3)}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.err{background:var(--red)}
.modal-scrim{position:fixed;inset:0;background:rgba(26,26,26,.5);z-index:150;display:grid;place-items:center;padding:20px}
.modal{background:var(--parchment);border-radius:14px;max-width:460px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.modal-h{background:var(--ink);color:#fff;padding:14px 20px;border-radius:14px 14px 0 0;font-family:'Cormorant Garamond';font-size:20px}
.modal-b{padding:20px}
.modal-f{padding:0 20px 20px;display:flex;gap:10px;justify-content:flex-end}
@media(max-width:1100px){.kpis{grid-template-columns:repeat(3,1fr)}.dgrid{grid-template-columns:1fr}}

/* ===== refined additions (drawer detail, donut, dashboard banner, feed) ===== */
.brand-sub{font-size:10.5px;color:var(--gold-soft);letter-spacing:.6px;text-transform:uppercase;margin-top:2px}
.logo{font-family:'Cormorant Garamond'}

/* drawer detail view */
.dv-head{background:linear-gradient(135deg,#243049,#1b2434);color:#fff;padding:18px 22px 20px;position:relative}
.dv-head .dv-close{position:absolute;top:14px;right:16px;background:rgba(255,255,255,.12);color:#fff;border:none;width:30px;height:30px;border-radius:8px;font-size:17px}
.dv-head .dv-close:hover{background:rgba(255,255,255,.22)}
.dv-id{font-size:10.5px;letter-spacing:.6px;text-transform:uppercase;color:#9fb0cf;display:flex;justify-content:space-between;padding-right:38px}
.dv-title{font-family:'Cormorant Garamond';font-size:26px;font-weight:700;line-height:1.1;margin-top:6px}
.dv-counsel{font-size:12.5px;color:#c3cee0;margin-top:3px}
.dv-pills{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px;align-items:center}
.dv-pill{font-size:11px;font-weight:600;padding:3px 10px;border-radius:20px;background:rgba(255,255,255,.14);color:#fff}
.dv-edit{margin-left:auto;background:#fff;color:var(--ink);border:none;border-radius:8px;padding:7px 14px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:5px}
.dv-edit:hover{background:#eef1f6}
.dv-body{padding:18px 22px}
.dv-sec{margin-bottom:20px}
.dv-sec-h{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:600;margin-bottom:10px;display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--line);padding-bottom:7px}
.achips{display:flex;flex-wrap:wrap;gap:8px}
.achip{display:flex;align-items:center;gap:7px;background:var(--parchment);border-radius:20px;padding:3px 12px 3px 3px;font-size:13px;font-weight:500}
.achip .ini{width:24px;height:24px;border-radius:50%}
.dates-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.date-card{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--paper)}
.date-card .dc-l{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}
.date-card .dc-v{font-size:14px;font-weight:600;margin-top:3px}
.date-card.due .dc-v{color:var(--red)}
.dv-prog-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.dv-prog-h .pc{font-size:18px;font-weight:700;font-family:'Cormorant Garamond'}
.dv-prog .prog{height:9px;margin-top:0}
.next-action{background:#fdf6e3;border-left:3px solid var(--gold);border-radius:0 8px 8px 0;padding:11px 14px;font-size:13.5px;color:var(--ink-2)}
.next-action.empty{background:var(--parchment);border-left-color:var(--line);color:var(--muted);font-style:italic}
/* timeline */
.timeline{position:relative;padding-left:18px}
.timeline::before{content:"";position:absolute;left:4px;top:4px;bottom:4px;width:2px;background:var(--line)}
.tl{position:relative;padding:0 0 14px 0}
.tl::before{content:"";position:absolute;left:-18px;top:4px;width:9px;height:9px;border-radius:50%;background:var(--gold);border:2px solid var(--paper)}
.tl.note::before{background:var(--blue)} .tl.system::before{background:var(--slate)}
.tl-h{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-bottom:2px}
.tl-t{font-size:13px;color:var(--ink-2)}

/* dashboard banner + feed + donut */
.greet{background:linear-gradient(135deg,#243049,#1b2434);color:#fff;border-radius:14px;padding:22px 26px;margin-bottom:18px;box-shadow:var(--shadow)}
.greet .eyebrow{font-size:11px;letter-spacing:.7px;text-transform:uppercase;color:var(--gold-soft);display:flex;align-items:center;gap:7px}
.greet h2{font-size:30px;color:#fff;margin:6px 0 4px}
.greet p{font-size:13.5px;color:#c3cee0;max-width:640px}
.greet .g-actions{margin-top:14px;display:flex;gap:10px}
.donut-wrap{display:flex;align-items:center;gap:18px}
.donut-wrap svg{flex:0 0 auto}
.donut-legend{display:flex;flex-direction:column;gap:6px;font-size:12.5px;overflow-y:auto;max-height:180px}
.donut-legend .lg{display:flex;align-items:center;gap:8px;cursor:pointer}
.donut-legend .lg .sw{width:10px;height:10px;border-radius:3px;flex:0 0 auto}
.donut-legend .lg .ln{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.donut-legend .lg .lc{font-weight:700;color:var(--muted)}
.feed{display:flex;flex-direction:column;gap:0;max-height:430px;overflow-y:auto}
.feed-item{display:grid;grid-template-columns:10px 1fr;gap:10px;padding:9px 2px;border-bottom:1px solid var(--line)}
.feed-item:last-child{border-bottom:none}
.feed-dot{width:9px;height:9px;border-radius:50%;background:var(--gold);margin-top:5px}
.feed-item.note .feed-dot{background:var(--blue)} .feed-item.system .feed-dot{background:var(--slate)}
.feed-t{font-size:13px;font-weight:500;cursor:pointer}
.feed-t:hover{color:var(--gold)}
.feed-m{font-size:11px;color:var(--muted);margin-top:1px;display:flex;gap:7px;align-items:center;flex-wrap:wrap}

/* ===== sections: matters/diligence/extensions/contacts/attorneys ===== */
.mt-bar{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.srch{padding:9px 13px;border:1px solid var(--line);border-radius:9px;font-family:inherit;font-size:13.5px;background:var(--paper);min-width:240px}
.srch:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,162,39,.15)}
.chip-a{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:2px 9px 2px 2px;border-radius:20px;white-space:nowrap;margin:1px 0}
.chip-ini{width:18px;height:18px;border-radius:50%;color:#fff;font-size:8.5px;font-weight:700;display:grid;place-items:center}
.badge-phase{display:inline-block;font-size:11px;font-weight:600;padding:3px 10px;border-radius:20px;white-space:nowrap}

/* diligence table */
table.dil th{font-size:10px}
.dil-cell{font-size:11px;color:var(--ink-2);white-space:nowrap}
.dil-cell.na{color:#c2c8d1}
.dil-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;vertical-align:middle}

/* extension cards */
.ext-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ext-card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:16px;box-shadow:var(--shadow);position:relative;cursor:pointer;transition:.15s}
.ext-card:hover{border-color:var(--gold-soft);box-shadow:0 6px 22px rgba(27,36,52,.1)}
.ext-card.soon{border-color:#f0cda0;background:#fffaf2}
.ext-card.over{border-color:#f0c5b9;background:#fdf3f1}
.ext-badge{position:absolute;top:12px;right:12px;font-size:10px;font-weight:700;color:var(--amber);background:#fbeed3;padding:3px 8px;border-radius:20px}
.ext-badge.over{color:var(--red);background:#f7ddd5}
.ext-name{font-family:'Cormorant Garamond';font-size:19px;font-weight:700;padding-right:60px;line-height:1.1}
.ext-exp{margin-top:14px}
.ext-date{font-family:'Cormorant Garamond';font-size:22px;font-weight:700;margin-top:2px}
.ext-rem{font-size:12px;color:var(--muted);margin-top:2px}
.ext-rem.soon{color:var(--amber);font-weight:600} .ext-rem.over{color:var(--red);font-weight:600}
.ext-used{margin-top:13px}
.ext-used .lbl{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-bottom:4px}

/* contacts */
.pills{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px}
.cpill{border:1px solid var(--line);background:var(--paper);border-radius:20px;padding:6px 14px;font-size:12.5px;color:var(--muted)}
.cpill.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.con-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.con-card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:14px 16px;box-shadow:var(--shadow);cursor:pointer;transition:.15s}
.con-card:hover{border-color:var(--gold-soft)}
.con-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.con-name{font-weight:700;font-size:14.5px}
.con-rolebadge{font-size:10px;font-weight:600;padding:2px 8px;border-radius:20px;white-space:nowrap}
.con-firm{font-size:12px;color:var(--muted);margin-top:1px}
.con-line{font-size:12px;margin-top:7px;color:var(--ink-2)}
.con-line a{color:var(--blue);text-decoration:none}
.con-matter{font-size:11.5px;color:var(--muted);margin-top:9px;border-top:1px solid var(--line);padding-top:8px}

/* attorneys roster */
.roster{display:flex;flex-direction:column;gap:2px}
.rost-row{display:flex;align-items:center;gap:12px;padding:11px 6px;border-bottom:1px solid var(--line)}
.rost-row:last-child{border-bottom:none}
.cnt-badge{background:var(--parchment);border-radius:20px;font-size:12px;font-weight:700;color:var(--muted);padding:2px 11px}
.ic{width:30px;height:30px;border:1px solid var(--line);background:var(--paper);border-radius:8px;color:var(--muted);font-size:13px}
.ic:hover{border-color:var(--gold);color:var(--ink)}
.ic.del:hover{border-color:var(--red);color:var(--red)}

/* drawer: diligence checklist + contacts */
.dchk{margin-top:12px;display:flex;flex-direction:column;gap:0}
.dchk-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}
.dchk-row:last-child{border-bottom:none}
.dchk-t{font-size:13px;font-weight:600}
.dchk-n{font-size:11.5px;color:var(--muted);margin-top:1px}
.dil-badge{font-size:10px;font-weight:700;padding:3px 9px;border-radius:20px;white-space:nowrap}
.dil-badge.s-Complete{background:#dff0e4;color:var(--green)}
.dil-badge.s-UnderReview{background:#fbeed3;color:var(--amber)}
.dil-badge.s-InProgress{background:#dde8f6;color:var(--blue)}
.dil-badge.s-NotStarted{background:#eceff3;color:var(--slate)}
.dv-cons{display:flex;flex-direction:column;gap:8px}
.dv-con{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;border:1px solid var(--line);border-radius:9px;padding:9px 11px}
@media(max-width:1100px){.ext-grid,.con-grid{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.ext-grid,.con-grid{grid-template-columns:1fr}}

/* ===== notifications, rail, assignments, settings ===== */
.bell{position:relative;background:rgba(255,255,255,.08);border:none;color:#fff;width:36px;height:36px;border-radius:9px;font-size:16px}
.bell:hover{background:rgba(255,255,255,.16)}
.bell-badge{position:absolute;top:-4px;right:-4px;background:var(--red);color:#fff;font-size:10px;font-weight:700;min-width:17px;height:17px;border-radius:9px;display:grid;place-items:center;padding:0 4px}
.nt{padding:10px 8px;border-bottom:1px solid var(--line);cursor:pointer;border-radius:6px}
.nt:hover{background:var(--parchment)}
.nt.unread{background:#fdf6e3}
.nt-t{font-size:13.5px;font-weight:500}
.nt-m{font-size:11px;color:var(--muted);margin-top:2px}

/* board attorney rail */
.atty-rail{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--paper);border:1px solid var(--line);border-radius:11px;padding:10px 12px;margin-bottom:14px;box-shadow:var(--shadow)}
.rail-lbl{font-size:11.5px;color:var(--muted);font-weight:600;margin-right:4px}
.rail-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:20px;padding:3px 11px 3px 3px;font-size:12px;font-weight:600;cursor:grab;background:var(--paper)}
.rail-chip:hover{border-color:var(--gold)}
.rail-chip .ini{width:20px;height:20px;border-radius:50%;font-size:9px}
.card.atty-target{outline:2px dashed var(--gold);outline-offset:-3px;background:#fdf6e3}

/* assignments editor */
.asg-row{display:flex;align-items:center;gap:9px;padding:7px 0;border-bottom:1px solid var(--line)}
.asg-row .ini{width:26px;height:26px;border-radius:50%;font-size:10px}
.asg-name{flex:1;font-size:13.5px;font-weight:600}
.asg-role{padding:6px 9px;border:1px solid var(--line);border-radius:7px;font-family:inherit;font-size:12.5px;background:var(--paper)}
.asg-add{margin-top:10px}
.asg-add select{width:100%;padding:9px 11px;border:1px dashed var(--line);border-radius:8px;font-family:inherit;font-size:13.5px;background:var(--parchment);color:var(--ink-2)}
.achip-role{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;background:rgba(0,0,0,.07);border-radius:10px;padding:1px 7px;margin-left:5px;color:var(--muted)}

/* my work + alert banner */
.alert-banner{background:#fdf6e3;border:1px solid var(--gold-soft);color:#7a5e12;border-radius:9px;padding:9px 13px;font-size:13px;font-weight:600;cursor:pointer;margin-bottom:12px}
.alert-banner:hover{background:#fbeed3}
.mywork-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.mw-card{border:1px solid var(--line);border-radius:10px;padding:11px 12px;cursor:pointer;background:var(--paper)}
.mw-card:hover{border-color:var(--gold-soft);box-shadow:var(--shadow)}
.mw-t{font-weight:600;font-size:13.5px}
.mw-m{display:flex;gap:5px;margin-top:6px;flex-wrap:wrap}
@media(max-width:1100px){.mywork-grid{grid-template-columns:1fr 1fr}}

/* ===== date picker + import dropzone ===== */
.datewrap{position:relative;display:flex;align-items:center}
.datewrap > input{flex:1;padding-right:34px}
.datebtn{position:absolute;right:4px;background:none;border:none;font-size:15px;cursor:pointer;padding:3px;line-height:1;border-radius:6px}
.datebtn:hover{background:var(--parchment)}
.datehidden{position:absolute;right:6px;bottom:0;width:26px;height:1px;opacity:0;pointer-events:none;border:none;padding:0}
.dropzone{border:2px dashed var(--line);border-radius:11px;padding:28px 16px;text-align:center;color:var(--muted);cursor:pointer;font-size:13.5px;background:var(--parchment)}
.dropzone:hover,.dropzone.drag-over{border-color:var(--gold);background:#fdf6e3;color:var(--ink-2)}

/* diligence task editor */
.diltask{display:flex;flex-direction:column;gap:0}
.dt-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--line)}
.dt-row:last-child{border-bottom:none}
.dt-l{flex:1;font-size:13px;font-weight:500}

/* alert rules editor */
.alrule{border:1px solid var(--line);border-radius:9px;padding:10px 12px;margin-bottom:8px}
.alrule-h{font-size:13.5px}
.alrule-b{display:flex;align-items:center;gap:14px;margin-top:7px;font-size:12.5px;flex-wrap:wrap}
.ck{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.alrule-b select{padding:5px 8px;border:1px solid var(--line);border-radius:6px;font-family:inherit;font-size:12.5px}
.alrule-extra{margin-top:8px;font-size:12px;color:var(--muted)}
.alrule-extra input{margin-top:3px;width:180px}
