/* Insurance Tracker · Calm Studio */
:root{
  --f-display:"Newsreader",Georgia,serif;
  --f-body:"Public Sans",system-ui,sans-serif;
  --f-num:"Newsreader",Georgia,serif;
  --fs:16px; --fs-s:15px; --fs-t:16px;
  --h1:46px; --h1-p:34px;
  --h2:24px;
  --gap:24px; --gap-l:32px; --card-pad:26px;
  --btn-h:48px; --btn-sm:44px;
  --r-btn:999px; --r-card:16px; --r-sm:12px; --r-modal:20px; --r-input:12px;
  --page:#F7F4EE; --card:#FFFFFF; --soft:#EFEAE0; --soft2:#FBF9F5;
  --ink:#1E2421; --ink2:#45504A; --muted:#5C665F; --line:#ECE6DB; --line2:#D6CDBE;
  --accent:#2E5E4E; --accent-h:#234A3D; --on-accent:#FFFFFF; --accent-soft:#E6EFEA; --accent-t:#24503F;
  --link:#24503F; --focus:#2E5E4E;
  --meets:#2C6A4F; --meets-bg:#E4EFE8; --soon:#875611; --soon-bg:#F5EBD9;
  --review:#4A5878; --review-bg:#E7EAF2; --nomeet:#9C3D25; --nomeet-bg:#F6E4DD;
  --none:#59625C; --none-bg:#EEEBE4;
  --side-bg:#EFEAE1; --side-ink:#1E2421; --side-muted:#4F5953; --side-on:#FFFFFF; --side-line:#E2DBCF;
  --pro-bg:#9C3D25; --pro-ink:#FFFFFF;
  --scrim:rgb(30 36 33/.42);
  --shadow:0 1px 2px rgb(60 45 20/.05),0 10px 28px -14px rgb(60 45 20/.16);
  --shadow-pop:0 30px 80px -20px rgb(40 30 15/.35);
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--page);color:var(--ink);font-family:var(--f-body);font-size:var(--fs);line-height:1.5;-webkit-font-smoothing:antialiased}
body.has-layer{overflow:hidden}
h1,h2,h3,p,ul,ol,dl,dd,figure,fieldset{margin:0;padding:0}
fieldset{border:0;min-width:0}
ul,ol{list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--link);text-underline-offset:3px}
a:hover{color:var(--ink)}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
[tabindex="-1"]:focus{outline:none}
.ic{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.ic.s{width:16px;height:16px}
.ic.l{width:26px;height:26px}
.num{font-family:var(--f-num);font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}
.ink2{color:var(--ink2)}
.small{font-size:var(--fs-s)}
.strong{font-weight:700}
.nowrap{white-space:nowrap}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:-1px;padding:0;border:0}
.skip{position:absolute;left:12px;top:-80px;z-index:100;background:var(--card);padding:10px 16px;border-radius:12px;font-weight:700}
.skip:focus{top:12px;box-shadow:var(--shadow-pop)}

/* ---------- app frame ---------- */
.app{display:grid;grid-template-columns:264px minmax(0,1fr);min-height:100vh;background:linear-gradient(to right,var(--side-bg) 263px,var(--side-line) 263px 264px,var(--page) 264px)}
.brand-txt{display:flex;align-items:center;gap:8px;min-width:0}
.side .brand-txt{flex-direction:column;align-items:flex-start;gap:4px}
.main{min-width:0}
.page{max-width:1180px;margin:0 auto;padding:44px 48px 72px}
.page.narrow{max-width:900px}
.mtop,.bnav{display:none}

/* brand */
.brand{display:flex;align-items:center;gap:12px;color:var(--side-ink);text-decoration:none;flex:none;min-width:0}
.brand:hover{color:var(--side-ink)}
.brand-mark{width:36px;height:36px;border-radius:12px;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;flex:none}
.brand-name{font-family:var(--f-display);font-weight:600;font-size:20px;line-height:1.05;white-space:nowrap}

/* side nav */
.side{position:sticky;top:0;height:100vh;overflow-y:auto;background:var(--side-bg);color:var(--side-ink);padding:24px 14px;display:flex;flex-direction:column;gap:22px;border-right:1px solid var(--side-line)}
.side .brand{padding:0 8px}
.side-org{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding:0 12px;border:1px solid var(--side-line);border-radius:var(--r-sm);font-size:var(--fs-s);font-weight:600;color:var(--side-ink);background:transparent}
.snav{display:flex;flex-direction:column;gap:2px}
.snav a{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 12px;border-radius:var(--r-sm);color:var(--side-muted);text-decoration:none;font-weight:500}
.snav a:hover{color:var(--side-ink);background:rgb(255 255 255/.5)}
.snav a.on{background:var(--side-on);color:var(--side-ink);font-weight:600}
.snav .badge{margin-left:auto}
.side-foot{margin-top:auto;position:relative;padding-top:12px;border-top:1px solid var(--side-line);font-size:var(--fs-s);line-height:1.3}
.side-foot b{display:block}
.user-btn{display:flex;align-items:center;gap:10px;width:100%;min-height:56px;padding:6px 8px;border:0;border-radius:var(--r-sm);background:transparent;text-align:left;color:var(--side-ink)}
.user-btn:hover{background:rgb(255 255 255/.6)}
.user-btn .rb{flex:1;min-width:0}
.user-menu{position:absolute;left:0;right:0;bottom:calc(100% + 6px);background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-pop);padding:6px}
.user-menu[hidden]{display:none}
.user-menu button{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:0 12px;border:0;border-radius:10px;background:transparent;font-weight:600;color:var(--ink);text-align:left}
.user-menu button:hover{background:var(--soft)}
/* sign in */
body.signed-out .app{grid-template-columns:minmax(0,1fr);background:var(--page)}
body.signed-out .side,body.signed-out .mtop,body.signed-out .bnav{display:none!important}
.signin{min-height:100vh;display:grid;place-items:center;padding:40px 16px}
.signin-card{width:min(440px,100%);display:flex;flex-direction:column;gap:18px;padding:36px 36px 30px}
.signin-brand{margin-bottom:8px}
.title.signin-title{font-size:29px;margin-bottom:4px}
.or{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:var(--fs-s)}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--line2)}
.note[hidden]{display:none}

/* mobile top + bottom nav */
.mtop{align-items:center;justify-content:space-between;gap:8px;padding:0 12px 0 16px;height:64px;background:var(--page);border-bottom:1px solid var(--side-line);position:sticky;top:0;z-index:20}
.mtop .brand-name{font-size:19px}
.mtop .brand-mark{width:32px;height:32px}
.bnav{position:fixed;left:0;right:0;bottom:0;z-index:20;grid-template-columns:repeat(5,minmax(0,1fr));height:76px;padding-bottom:env(safe-area-inset-bottom);background:var(--card);border-top:1px solid var(--side-line)}
.bnav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:12.5px;font-weight:700;color:var(--muted);text-decoration:none;position:relative;min-width:0}
.bnav a.on{color:var(--accent)}
.bnav .dot{position:absolute;top:10px;left:calc(50% + 8px);min-width:18px;height:18px;border-radius:9px;background:var(--accent);color:#fff;font-size:11px;display:grid;place-items:center;padding:0 5px}

/* ---------- page head ---------- */
.phead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px 24px;flex-wrap:wrap;margin-bottom:var(--gap-l)}
.phead>div:first-child{min-width:0}
.eyebrow{font-size:var(--fs-s);color:var(--muted);margin-bottom:6px;font-weight:500}
.title{font-family:var(--f-display);font-size:var(--h1);font-weight:500;letter-spacing:-.015em;line-height:1.08}
.crumb{font-size:var(--fs-s);margin-bottom:6px;display:flex;gap:8px;align-items:center;color:var(--muted)}
.crumb a{min-height:24px}
.actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--btn-h);padding:0 20px;border-radius:var(--r-btn);border:1px solid var(--line2);background:var(--card);color:var(--ink);font-weight:600;font-size:var(--fs-t);white-space:nowrap;text-decoration:none;line-height:1.1;transition:background-color .12s,border-color .12s}
.btn:hover{background:var(--soft);color:var(--ink)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn.primary:hover{background:var(--accent-h);color:var(--on-accent)}
.btn.sm{min-height:var(--btn-sm);padding:0 16px;font-size:var(--fs-s)}
.btn.ghost{background:transparent;border-color:transparent}
.btn.ghost:hover{background:var(--soft)}
.btn.block{width:100%}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.linkbtn{text-align:left;background:none;border:0;padding:0;color:var(--link);font-weight:600;text-decoration:underline;text-underline-offset:3px;min-height:44px}
.x{width:44px;height:44px;border-radius:999px;display:grid;place-items:center;border:0;background:transparent;color:var(--ink2);flex:none}
.x:hover{background:var(--soft)}

/* ---------- cards + grids ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow);padding:var(--card-pad);min-width:0}
.card.flush{padding:0;overflow:hidden}
.card-h{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.card-h a{font-size:var(--fs-s);font-weight:700;min-height:44px;display:inline-flex;align-items:center}
.h2{font-family:var(--f-display);font-size:var(--h2);font-weight:500;letter-spacing:-.005em;line-height:1.15}
.h3{font-weight:700;font-size:var(--fs);line-height:1.3}
.count{font-family:var(--f-num);font-weight:600;color:var(--muted);font-size:18px;margin-left:4px}
.grid{display:grid;gap:var(--gap)}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.stack{display:flex;flex-direction:column;gap:var(--gap)}
.row-gap{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.mt{margin-top:var(--gap)}

/* ---------- chips, badges, avatars ---------- */
.chip{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 12px;border-radius:999px;font-size:var(--fs-s);font-weight:600;white-space:nowrap;border:0;line-height:1.1}
.chip.meets{color:var(--meets);background:var(--meets-bg)}
.chip.soon{color:var(--soon);background:var(--soon-bg)}
.chip.review{color:var(--review);background:var(--review-bg)}
.chip.nomeet{color:var(--nomeet);background:var(--nomeet-bg)}
.chip.none{color:var(--none);background:var(--none-bg)}
.chip.accent{color:var(--accent-t);background:var(--accent-soft)}
.chip.plain{color:var(--ink2);background:var(--soft)}
.days{font-family:var(--f-num);font-weight:600;font-size:19px;font-variant-numeric:tabular-nums;white-space:nowrap}
.days.soon{color:var(--soon)}
.days.due{color:var(--nomeet)}
.pro{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;background:var(--pro-bg);color:var(--pro-ink);font-size:12px;font-weight:700;letter-spacing:.02em;line-height:1;flex:none}
.badge{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 7px;border-radius:12px;background:var(--accent);color:var(--on-accent);font-size:12.5px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1}
.av{width:34px;height:34px;border-radius:50%;display:inline-grid;place-items:center;font-size:12px;font-weight:700;background:var(--soft);color:var(--ink2);flex:none;letter-spacing:.02em}
.av.l{width:44px;height:44px;font-size:15px}
.av.me{background:var(--accent-soft);color:var(--accent-t)}
.who{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-s);color:var(--ink2);white-space:nowrap;min-width:0}
.unassigned{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-s);font-weight:700;color:var(--soon);white-space:nowrap}

/* ---------- dashboard ---------- */
.hero{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:var(--gap);margin-bottom:var(--gap-l);position:relative;border-radius:24px}
.hero.dragging{outline:3px dashed var(--accent);outline-offset:8px}
.hero.dragging::after{content:"Drop it here";position:absolute;inset:0;border-radius:22px;background:rgb(230 239 234/.92);display:grid;place-items:center;font-family:var(--f-display);font-size:34px;color:var(--accent-t);pointer-events:none}
.tile{position:relative;display:flex;flex-direction:column;gap:8px;padding:28px 30px 30px;border-radius:22px;text-decoration:none;min-height:224px;transition:transform .12s ease-out,box-shadow .12s}
.tile:hover{transform:translateY(-1px)}
.tile:focus-visible{outline-offset:4px}
.tile-ic{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;margin-bottom:auto}
.tile-k{font-size:var(--fs-s);font-weight:700;letter-spacing:.02em;margin-top:28px}
.tile-t{font-family:var(--f-display);font-size:34px;font-weight:500;line-height:1.1;letter-spacing:-.01em}
.tile-s{font-size:17px}
.tile-go{position:absolute;top:28px;right:28px;width:48px;height:48px;border-radius:50%;display:grid;place-items:center}
.tile-primary{background:var(--accent);color:var(--on-accent);box-shadow:0 18px 40px -22px rgb(46 94 78/.8)}
.tile-primary:hover{color:var(--on-accent);background:var(--accent-h)}
.tile-primary .tile-ic,.tile-primary .tile-go{background:rgb(255 255 255/.14)}
.tile-primary .tile-k{color:#CFE0D8}
.tile-primary .tile-s{color:#DCE8E2}
.tile-second{background:var(--card);color:var(--ink);border:2px dashed var(--line2)}
.tile-second:hover{color:var(--ink);border-color:var(--accent)}
.tile-second .tile-ic{background:var(--accent-soft);color:var(--accent)}
.tile-second .tile-go{background:var(--soft);color:var(--ink2)}
.tile-second .tile-k{color:var(--muted)}
.tile-second .tile-t{font-size:30px}
.tile-second .tile-s{color:var(--ink2)}

.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--card);border-radius:var(--r-card);border:1px solid var(--line);box-shadow:var(--shadow);margin-bottom:var(--gap-l);overflow:hidden}
.kpi{padding:22px 26px;border-left:1px solid var(--line);text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:4px;min-width:0;transition:background-color .12s}
.kpi:first-child{border-left:0}
.kpi:hover{color:inherit;background:var(--soft2)}
.kpi:focus-visible{outline-offset:-3px}
.kv{font-family:var(--f-num);font-size:46px;font-weight:500;line-height:1.05;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.kl{font-size:var(--fs-s);font-weight:600;color:var(--muted)}

.dlist>li{display:grid;grid-template-columns:minmax(0,1fr) 190px 84px 168px 160px;gap:16px;align-items:center;padding:14px 0;border-top:1px solid var(--line)}
.dlist>li:first-child{border-top:0;padding-top:4px}
.dlist .dn{font-weight:700;min-width:0}
.dlist .da{display:flex;justify-content:flex-end}

.rowlist>li{border-top:1px solid var(--line)}
.rowlist>li:first-child{border-top:0}
.rowbtn{display:flex;align-items:center;gap:14px;width:100%;min-height:60px;padding:12px 12px;margin:0 -12px;width:calc(100% + 24px);background:transparent;border:0;border-radius:12px;text-align:left;color:inherit}
.rowbtn:hover{background:var(--soft2)}
.rowbtn .rb{flex:1;min-width:0}
.rt{font-weight:700;color:var(--ink);line-height:1.3}
.rs{font-size:var(--fs-s);color:var(--muted);line-height:1.4;margin-top:2px}
.subrow{display:flex;align-items:center;gap:12px;padding:12px 0;flex-wrap:wrap}
.subrow .rb{flex:1 1 140px;min-width:0}
.subrow .chip{flex:none}
.empty{display:flex;gap:10px;align-items:center;color:var(--ink2);font-size:var(--fs-s);padding:12px 14px;border-radius:12px;background:var(--soft2)}
.empty .ic{color:var(--meets)}

/* ---------- tables ---------- */
.tbl{width:100%;border-collapse:collapse}
.tbl th{text-align:left;font-size:14px;font-weight:600;color:var(--muted);padding:14px 16px;border-bottom:1px solid var(--line2);white-space:nowrap}
.tbl td{padding:12px 16px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl .n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tbl tbody tr{cursor:pointer;transition:background-color .1s}
.tbl tbody tr:hover td{background:var(--soft2)}
.tbl .linkbtn{color:var(--ink);text-decoration:none;font-weight:700;text-align:left;min-height:44px}
.tbl .linkbtn:hover{text-decoration:underline}
.lockt{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-weight:600;font-size:var(--fs-s)}
.only-narrow{display:none}

/* phone cards */
.pcards{display:flex;flex-direction:column;gap:10px}
.pcard{display:flex;flex-direction:column;gap:6px;width:100%;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:14px 16px;box-shadow:var(--shadow);color:inherit}
.pcard .line{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}

/* ---------- renewals page ---------- */
.rn-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1.1fr) 88px 200px 170px;gap:16px;align-items:center}
.sect{margin-bottom:var(--gap)}
.cr-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1.2fr) 120px 170px;gap:16px;align-items:center}
.cr-row .c5{justify-self:start}

/* ---------- received ---------- */
.toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:space-between;margin-bottom:var(--gap)}
.seg{display:inline-flex;background:var(--soft);border-radius:999px;padding:4px;gap:4px;flex-wrap:wrap;max-width:100%}
.seg button{border:0;background:transparent;min-height:44px;padding:0 16px;border-radius:999px;font-weight:600;color:var(--ink2);font-size:var(--fs-s);display:inline-flex;align-items:center;gap:8px}
.seg button[aria-pressed="true"]{background:var(--card);color:var(--ink);box-shadow:0 1px 2px rgb(0 0 0/.14)}
.seg .count{font-size:15px;margin:0}
.sublist>li{display:grid;grid-template-columns:28px minmax(0,1fr) auto 104px;grid-template-areas:"pick name chip act";gap:6px 16px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.sublist>li:first-child{border-top:0;padding-top:0}
.sublist>li.sel{background:var(--accent-soft);margin:0 -14px;padding-left:14px;padding-right:14px;border-radius:var(--r-sm);border-top-color:transparent}
.sublist .pickc{grid-area:pick}
.sublist .rb{grid-area:name;min-width:0}
.sublist .chipc{grid-area:chip}
.sublist .actc{grid-area:act;display:flex;justify-content:flex-end}
.pick{width:24px;height:24px;accent-color:var(--accent);margin:0}
.selbar{position:sticky;bottom:16px;z-index:5;display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:16px;padding:12px 12px 12px 20px;background:var(--ink);color:#fff;border-radius:999px;box-shadow:var(--shadow-pop)}
.selbar b{margin-right:auto}
.selbar .btn.ghost{color:#fff}
.selbar .btn.ghost:hover{background:rgb(255 255 255/.12)}
.selbar .btn.primary{background:#fff;color:var(--accent-t);border-color:#fff}

/* ---------- forms ---------- */
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field label,.lab{font-weight:700;font-size:var(--fs-s);color:var(--ink)}
.lab-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;min-height:26px}
.input{min-height:var(--btn-h);border:1px solid var(--line2);border-radius:var(--r-input);background:var(--card);padding:0 14px;color:var(--ink);width:100%;font-size:16px}
.input:focus{border-color:var(--accent)}
select.input{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink2) 50%),linear-gradient(135deg,var(--ink2) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:36px}
textarea.input{padding:12px 14px;min-height:120px;resize:vertical;line-height:1.55}
textarea.tall{min-height:200px;overflow:hidden}
.hint{font-size:var(--fs-s);color:var(--muted)}
.err{display:flex;gap:8px;align-items:center;color:var(--nomeet);font-weight:600;font-size:var(--fs-s)}
.fgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}
.fgrid.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.span2{grid-column:1 / -1}
.legend{font-weight:700;font-size:var(--fs-s);color:var(--ink);margin-bottom:8px;padding:0}
.chips{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.chip.cov{min-height:44px;padding:0 4px 0 14px}
.chip-x{width:36px;height:36px;border-radius:50%;border:0;background:transparent;color:inherit;display:grid;place-items:center}
.chip-x:hover{background:rgb(255 255 255/.7)}
.chip-add{min-height:44px;padding:0 16px;border-radius:999px;border:1.5px dashed var(--line2);background:transparent;color:var(--ink2);font-weight:600;font-size:var(--fs-s);display:inline-flex;align-items:center;gap:6px}
.add-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;width:100%;margin-top:4px}
.add-row .input{flex:1 1 220px;width:auto}
.echip{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px 0 12px;border-radius:999px;border:1px solid var(--line2);background:var(--card);font-size:var(--fs-s);font-weight:600;color:var(--ink2);cursor:pointer;user-select:none}
.echip input{width:20px;height:20px;accent-color:var(--accent);margin:0;flex:none}
.echip:has(input:checked){background:var(--accent-soft);border-color:var(--accent);color:var(--accent-t)}
.echip:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}
.ai-tag{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;font-weight:600;color:var(--accent-t);background:var(--accent-soft);border-radius:999px;padding:2px 8px;white-space:nowrap}
.ai-tag .ic{width:13px;height:13px}
.ai-check{border-color:var(--nomeet)!important;box-shadow:0 0 0 3px var(--nomeet-bg)}
.check-hint{display:flex;gap:6px;align-items:center;font-size:var(--fs-s);color:var(--nomeet);font-weight:600}
.rc{display:flex;gap:12px;align-items:center;border:1px solid var(--line2);border-radius:14px;padding:12px 16px;min-height:64px;cursor:pointer;background:var(--card);min-width:0}
.rc input{width:20px;height:20px;accent-color:var(--accent);margin:0;flex:none}
.rc:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.rc:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}
.rc b{display:flex;gap:6px;align-items:center}
.rc .rb{min-width:0}
.rc .small{display:block}
.toggle{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:999px;border:1.5px solid var(--line2);background:var(--card);color:var(--ink2);font-weight:600;font-size:var(--fs-s);cursor:pointer}
.toggle input{width:20px;height:20px;accent-color:var(--accent);margin:0}
.toggle:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--accent-t)}
.toggle:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}
.check{display:flex;gap:10px;align-items:center;min-height:44px}
.check input{width:22px;height:22px;accent-color:var(--accent);flex:none;margin:0}
.more{border:1px solid var(--line);border-radius:14px;background:var(--soft2)}
.more summary{list-style:none;display:flex;align-items:center;gap:10px;min-height:52px;padding:0 16px;cursor:pointer;font-weight:600}
.more summary::-webkit-details-marker{display:none}
.more summary .ic{transition:transform .15s}
.more[open] summary .ic{transform:rotate(90deg)}
.more .more-b{padding:4px 16px 18px;display:flex;flex-direction:column;gap:16px}
.note{display:flex;gap:10px;align-items:center;font-size:var(--fs-s);color:var(--ink2);background:var(--soft2);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 14px}
.sr:focus-visible + label{outline:3px solid var(--focus);outline-offset:2px}

/* ---------- certificate desk ---------- */
.steps3{display:flex;gap:6px;flex-wrap:wrap}
.steps3 li{display:inline-flex;align-items:center;gap:8px;padding:6px 14px 6px 6px;border-radius:999px;background:var(--soft);font-size:14px;font-weight:600;color:var(--ink2)}
.steps3 .sn{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--card);font-size:12.5px}
.steps3 li.done{background:var(--meets-bg);color:var(--meets)}
.steps3 li.now{background:var(--accent);color:var(--on-accent)}
.steps3 li.now .sn{background:rgb(255 255 255/.18)}
.choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:var(--gap)}
.choice{display:flex;flex-direction:column;align-items:flex-start;gap:10px;text-align:left;padding:22px;border-radius:18px;border:1.5px solid var(--line2);background:var(--card);color:var(--ink);box-shadow:var(--shadow);min-height:176px;transition:border-color .12s,background-color .12s}
.choice:hover{border-color:var(--accent)}
.choice .ci{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}
.choice b{font-family:var(--f-display);font-weight:500;font-size:23px;line-height:1.15}
.choice .small{color:var(--muted)}
.choice[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}
.choice[aria-pressed="true"] .ci{background:var(--accent);color:var(--on-accent)}
.desk-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:var(--gap)}
.desk-foot .btn.primary{margin-left:auto}
.card .desk-foot{margin-top:20px}
.drop{border:2px dashed var(--line2);border-radius:var(--r-card);padding:20px;display:flex;gap:16px;align-items:center;flex-wrap:wrap;background:var(--soft2)}
.drop .rb{flex:1 1 180px;min-width:0}
.ri{width:44px;height:44px;border-radius:var(--r-sm);display:grid;place-items:center;flex:none;background:var(--soft);color:var(--ink2)}
.ri.meets{background:var(--meets-bg);color:var(--meets)}
.reading{display:flex;align-items:center;gap:12px;font-weight:700;color:var(--accent-t);min-height:48px;margin-left:auto}
.spin{width:24px;height:24px;border:3px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;flex:none}
@keyframes spin{to{transform:rotate(360deg)}}
.a-input .seg{margin-bottom:18px}
.need-list>li{display:flex;flex-direction:column;gap:8px;padding:12px 0;border-top:1px solid var(--line)}
.need-list>li:first-child{border-top:0;padding-top:0}
.done-card{display:flex;flex-direction:column;align-items:flex-start;gap:20px}
.done-ic{width:64px;height:64px;border-radius:50%;background:var(--meets-bg);color:var(--meets);display:grid;place-items:center}
.kv-list{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 18px}
.kv-list dt{color:var(--muted);font-size:var(--fs-s)}
.kv-list dd{margin:0;font-weight:600;color:var(--ink);min-width:0;overflow-wrap:anywhere}
.msgbox{white-space:pre-wrap;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--soft2);padding:14px 16px;line-height:1.55;overflow-wrap:anywhere}

/* ---------- add policy ---------- */
.dropzone{border:2px dashed var(--accent);border-radius:24px;background:var(--accent-soft);padding:56px 28px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:18px;transition:background-color .12s}
.dropzone.dragging{background:#D6E6DD}
.drop-ic{width:76px;height:76px;border-radius:22px;background:var(--card);color:var(--accent);display:grid;place-items:center;box-shadow:var(--shadow)}
.center{justify-content:center;text-align:center}
.pol-grid{display:grid;grid-template-columns:360px minmax(0,1fr);gap:var(--gap);align-items:start}
.pdf{background:var(--soft);border-radius:14px;padding:20px}
.pg{background:var(--card);aspect-ratio:8.5/11;border-radius:4px;box-shadow:0 1px 3px rgb(40 30 15/.12);padding:24px 22px;display:flex;flex-direction:column;gap:9px;overflow:hidden}
.ln{height:7px;border-radius:4px;background:var(--line)}
.hl{border-radius:5px;padding:4px 7px;font-size:11.5px;font-weight:600;color:var(--accent-t);background:var(--accent-soft);box-shadow:inset 0 0 0 1.5px var(--accent);align-self:flex-start}
.hl.warn{color:var(--nomeet);background:var(--nomeet-bg);box-shadow:inset 0 0 0 1.5px var(--nomeet)}
.filerow{display:flex;align-items:center;gap:12px;margin-bottom:14px;min-width:0}
.filerow .rb{min-width:0}
.filerow .rt{overflow-wrap:break-word;font-size:15px}
.savebar{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}

/* ---------- renewal drawer ---------- */
.stepper5{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.stepper5 button{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 2px;min-height:76px;border:0;background:transparent;border-radius:12px;font-size:13.5px;font-weight:600;color:var(--muted);text-align:center;line-height:1.2}
.stepper5 button:hover{background:var(--soft2)}
.stepper5 .dot{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--soft);color:var(--muted);font-size:13px;font-weight:700}
.stepper5 .done .dot{background:var(--meets);color:#fff}
.stepper5 .done{color:var(--meets)}
.stepper5 .now .dot{background:var(--accent);color:#fff;box-shadow:0 0 0 5px var(--accent-soft)}
.stepper5 .now{color:var(--ink)}
.composer{border:1px solid var(--line2);border-radius:16px;background:var(--soft2);padding:16px;display:flex;flex-direction:column;gap:14px}
.to{display:flex;align-items:center;gap:10px;font-size:var(--fs-s);color:var(--ink2);flex-wrap:wrap}
.tpl{min-height:44px;padding:0 14px;border-radius:999px;border:1.5px solid var(--line2);background:var(--card);font-weight:600;font-size:var(--fs-s);color:var(--ink2)}
.tpl[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-t)}
.tl li{display:grid;grid-template-columns:20px minmax(0,1fr);gap:12px;padding-bottom:16px;position:relative}
.tl li::before{content:"";position:absolute;left:9px;top:22px;bottom:0;width:2px;background:var(--line)}
.tl li:last-child{padding-bottom:0}
.tl li:last-child::before{display:none}
.tl .td{width:20px;height:20px;border-radius:50%;border:2px solid var(--meets);background:var(--card);margin-top:2px}
.tl .td.new{border-color:var(--accent);background:var(--accent)}
.tl .when{font-size:14px;color:var(--muted);font-weight:600}
.meta-line{display:flex;gap:8px 14px;flex-wrap:wrap;align-items:center;color:var(--ink2);font-size:var(--fs-s)}

/* ---------- layers (drawer, modal) ---------- */
.scrim{position:fixed;inset:0;background:var(--scrim);z-index:50;display:flex;opacity:0;transition:opacity .15s ease-out}
.scrim.in{opacity:1}
.scrim-drawer{justify-content:flex-end}
.scrim-modal{align-items:center;justify-content:center;padding:24px}
.drawer{width:min(580px,100%);height:100%;background:var(--card);display:flex;flex-direction:column;box-shadow:var(--shadow-pop);transform:translateX(28px);transition:transform .16s ease-out}
.modal{width:min(580px,100%);max-height:calc(100dvh - 48px);background:var(--card);border-radius:var(--r-modal);display:flex;flex-direction:column;box-shadow:var(--shadow-pop);transform:translateY(10px);transition:transform .16s ease-out}
.scrim.in .drawer,.scrim.in .modal{transform:none}
.layer-h{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 16px 6px 28px}
.layer-h .h2{padding-top:8px;font-size:27px}
.layer-h .sub{color:var(--muted);font-size:var(--fs-s);margin-top:4px}
.layer-b{flex:1;overflow:auto;padding:12px 28px 24px;display:flex;flex-direction:column;gap:22px}
.layer-f{display:flex;gap:12px;justify-content:flex-end;align-items:center;flex-wrap:wrap;padding:16px 28px 20px;border-top:1px solid var(--line)}
.layer-f .spacer{margin-right:auto}

/* toasts */
.toasts{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:80;display:flex;flex-direction:column;gap:8px;align-items:center;width:max-content;max-width:calc(100% - 32px);pointer-events:none}
.toast{display:flex;align-items:center;gap:10px;background:var(--ink);color:#fff;padding:12px 18px;border-radius:14px;box-shadow:var(--shadow-pop);font-weight:600;opacity:0;transform:translateY(8px);transition:opacity .15s,transform .15s}
.toast.in{opacity:1;transform:none}
.toast .ic{color:#B3CBC0}

/* team + roles */
.peoplelist>li{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid var(--line);flex-wrap:wrap}
.peoplelist>li:first-child{border-top:0;padding-top:0}
.peoplelist .rb{flex:1 1 160px;min-width:0}
.peoplelist .pr{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.roles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.role{display:flex;align-items:center;gap:10px;padding:12px 14px;min-height:56px;border:1px solid var(--line2);border-radius:var(--r-sm);background:var(--card);cursor:pointer;font-weight:600}
.role input{width:20px;height:20px;accent-color:var(--accent);margin:0}
.role:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--accent-t)}
.role:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}
.actlist>li{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.actlist>li:first-child{border-top:0;padding-top:0}
.actlist .rb{flex:1;min-width:0}
.morelist a,.morelist button{display:flex;align-items:center;gap:14px;width:100%;min-height:60px;padding:0 4px;color:var(--ink);text-decoration:none;font-weight:600;background:none;border:0;border-top:1px solid var(--line);text-align:left}
.morelist li:first-child a{border-top:0}
.morelist .chev{margin-left:auto;color:var(--muted)}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .dlist>li{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"n d a" "o s a"}
  .dlist .dn{grid-area:n}.dlist .do{grid-area:o}.dlist .dd{grid-area:d}.dlist .ds{grid-area:s;justify-self:end}.dlist .da{grid-area:a}
  .rn-row{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"n d s" "c o s"}
  .rn-row .c1{grid-area:n}.rn-row .c2{grid-area:c}.rn-row .c3{grid-area:d}.rn-row .c4{grid-area:o}.rn-row .c5{grid-area:s}
}
@media (max-width:900px){
  .cr-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"n s" "c d";gap:4px 12px}
  .cr-row .c1{grid-area:n}.cr-row .c2{grid-area:c}.cr-row .c3{grid-area:d;justify-self:end;font-size:var(--fs-s);color:var(--muted)}.cr-row .c5{grid-area:s;justify-self:end}
}
@media (max-width:1100px){
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi:nth-child(3){border-left:0}
  .kpi:nth-child(n+3){border-top:1px solid var(--line)}
  .g2{grid-template-columns:minmax(0,1fr)}
  .pol-grid{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:999px){
  .hero{grid-template-columns:minmax(0,1fr)}
  .only-wide{display:none}
  .only-narrow{display:flex}
  .choices{grid-template-columns:minmax(0,1fr)}
  .choice{min-height:0;flex-direction:row;align-items:center;padding:18px}
  .choice .ci{flex:none}
  .choice b{font-size:21px}
}
@media (max-width:759.98px){
  .app{grid-template-columns:minmax(0,1fr);background:var(--page)}
  .side{display:none}
  .mtop{display:flex}
  .bnav{display:grid}
  .page{padding:22px 16px 112px}
  .signin-card{padding:26px 20px 22px}
  .signin{padding:24px 16px;align-items:start}
  .title{font-size:var(--h1-p)}
  .phead{margin-bottom:22px}
  :root{--gap:16px;--gap-l:22px;--card-pad:18px}
  .tile{min-height:0;padding:20px 20px 22px;gap:6px}
  .tile-ic{width:46px;height:46px;margin-bottom:6px}
  .tile-k{margin-top:4px}
  .tile-t{font-size:27px;padding-right:44px}
  .tile-second .tile-t{font-size:24px}
  .tile-s{font-size:16px}
  .tile-go{top:20px;right:20px;width:44px;height:44px}
  .tile-second{flex-direction:row;flex-wrap:wrap;align-items:center;column-gap:14px}
  .tile-second .tile-ic{margin:0}
  .tile-second .tile-k{display:none}
  .tile-second .tile-t{flex:1;padding-right:0}
  .tile-second .tile-s{flex-basis:100%}
  .tile-second .tile-go{display:none}
  .kpi{padding:14px 16px}
  .kv{font-size:36px}
  .dlist>li{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"n d" "o s" "a a";gap:8px 12px}
  .dlist .da{justify-content:stretch}
  .dlist .da .btn{width:100%}
  .rn-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"n d" "c c" "o s";gap:6px 12px}
  .sublist>li{grid-template-columns:28px minmax(0,1fr) auto;grid-template-areas:"pick name act" "pick chip act";gap:6px 12px}
  .sublist .chipc{justify-self:start}
  .sublist .actc .btn{padding:0 14px}
  .subrow{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"n a" "c a";gap:6px 12px}
  .subrow .rb{grid-area:n}.subrow .chip{grid-area:c;justify-self:start}.subrow .btn{grid-area:a}
  .selbar{bottom:88px;border-radius:20px}
  .fgrid,.fgrid.c3{grid-template-columns:minmax(0,1fr)}
  .seg{display:flex;border-radius:18px}
  .seg button{flex:1 1 auto;justify-content:center}
  .a-input .seg button{flex-basis:100%;justify-content:flex-start}
  .desk-foot .btn{flex:1}
  .steps3 li{padding:4px 10px 4px 4px;font-size:13px}
  .scrim-drawer{align-items:flex-end}
  .drawer{height:auto;max-height:92dvh;border-radius:20px 20px 0 0;transform:translateY(28px)}
  .scrim-modal{align-items:flex-end;padding:0}
  .modal{border-radius:20px 20px 0 0;max-height:92dvh;transform:translateY(28px)}
  .layer-h{padding:14px 10px 4px 18px}
  .layer-h .h2{font-size:24px}
  .layer-b{padding:8px 18px 20px}
  .layer-f{padding:12px 18px calc(12px + env(safe-area-inset-bottom))}
  .layer-f .btn{flex:1}
  .stepper5 button{font-size:12px;padding:6px 0}
  .stepper5 .dot{width:28px;height:28px}
  .toasts{bottom:92px}
  .roles{grid-template-columns:minmax(0,1fr)}
  .dropzone{padding:32px 18px}
  .dropzone .row-gap{flex-direction:column;align-items:stretch;width:100%}
  .savebar .btn{flex:1}
  .tbl-sc{display:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation-duration:.01ms!important}
}
