@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,400;12..96,500;12..96,600;12..96,700&family=Inter:wght@400;450;500;600;700&display=swap');

/* =============================================================================
   IVIRA TEAM WORKSPACE - design system
   A calm, clinical, trustworthy interface for a US pharmacy operations team.
   Display: Bricolage Grotesque | UI/body: Inter
   ============================================================================= */
:root{
  /* Brand blues - confident, medical, never candied */
  --blue:#5C9BD6; --blue-2:#3E83C7; --blue-3:#2A6FB5; --blue-4:#1F5C9C;
  --blue-soft:#EAF2FB; --blue-mist:#F4F8FD; --blue-ring:rgba(46,112,184,.22);

  /* Ink / navy */
  --navy:#102C49; --navy-2:#16395E; --navy-3:#1E4B79;
  --heading:#102C49; /* heading/ink text; decoupled from --navy accent so dark mode can invert it */
  --rail:#0C2740; --rail-2:#12324F; --rail-line:rgba(150,186,222,.16); --rail-line-2:rgba(150,186,222,.28);
  --rail-text:#C5D6E8; --rail-text-2:#8AA6C4; --rail-text-3:#5E7C9C;

  /* Neutrals */
  --bg:#F5F8FC; --surface:#FFFFFF; --surface-2:#F1F6FB; --surface-3:#E9F1F9;
  --body-top:#F8FBFE; --surface-panel:rgba(255,255,255,.92); --surface-card:rgba(255,255,255,.94);
  --ink:#14304D; --ink-2:#475F78; --ink-3:#64798F; --muted:#8497AB;
  --line:#E5ECF4; --line-2:#D3DFEC; --line-3:#C2D2E2;

  /* Semantic */
  --green:#2E9D6B; --green-soft:#E3F2EB; --green-ink:#1E6B49;
  --amber:#CF931F; --amber-soft:#FAF0D9; --amber-ink:#86600F;
  --coral:#DA564E; --coral-soft:#FBE9E7; --coral-ink:#A6362F;
  --announce:#E0A12D; --announce-2:#F0B84E; --announce-soft:#FFF4DA; --announce-ink:#72500A;

  /* Task status psychology */
  --task-pending:#B97817; --task-pending-soft:#FFF2D9; --task-pending-ink:#6B4307;
  --task-progress:#5F7186; --task-progress-soft:#EEF3F7; --task-progress-ink:#334558;
  --task-blocked:#D0443E; --task-blocked-soft:#FBE3E0; --task-blocked-ink:#8F251F;
  --task-completed:#2F9465; --task-completed-soft:#E3F3EA; --task-completed-ink:#1F6648;

  /* Task category system */
  --task-cycles:#8B5CF6;
  --task-inbound-call:#38BDF8;
  --task-documents:#10B981;
  --task-pa:#EC4899;
  --task-pfr:#F97316;
  --task-rejects:#EF4444;
  --task-pioneer:#1E40AF;

  /* Radius scale - tightened for a more precise, professional read */
  --r-lg:16px; --r:12px; --r-sm:9px; --r-xs:6px; --r-pill:999px;

  /* Elevation - layered, low-opacity, daylight-soft */
  --sh-xs:0 1px 2px rgba(16,43,73,.05);
  --sh-sm:0 1px 3px rgba(16,43,73,.06),0 1px 2px rgba(16,43,73,.04);
  --sh:0 4px 16px -4px rgba(16,43,73,.10),0 2px 6px -3px rgba(16,43,73,.06);
  --sh-md:0 12px 30px -8px rgba(16,43,73,.14),0 4px 10px -4px rgba(16,43,73,.07);
  --sh-lg:0 26px 64px -14px rgba(16,43,73,.24),0 8px 22px -10px rgba(16,43,73,.12);

  /* Motion */
  --t-fast:.14s; --t:.22s; --t-slow:.34s;
  --ease:cubic-bezier(.4,0,.2,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-soft:cubic-bezier(.33,1,.68,1);
}

/* =============================================================================
   DARK MODE (opt-in via data-theme="dark"; light remains the default)
   Token overrides + a few component fixes where light values were hardcoded.
   ============================================================================= */
[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0B1B2C; --surface:#102438; --surface-2:#16304A; --surface-3:#1C3A57;
  --body-top:#0B1B2C; --surface-panel:var(--surface); --surface-card:var(--surface);
  --ink:#E7EEF6; --ink-2:#AEC2D6; --ink-3:#90A6BC; --muted:#7F95AC;
  --heading:#F2F7FC;
  --line:#243D55; --line-2:#2E4A64; --line-3:#3A5871;
  --blue-soft:#15314B; --blue-mist:#122A40; --blue-ring:rgba(92,155,214,.40);
  --green-soft:#11331F; --green-ink:#74D3A4;
  --amber-soft:#33290F; --amber-ink:#E6C067;
  --coral-soft:#3A1E1B; --coral-ink:#F0998F;
  --announce-soft:#35280D; --announce-ink:#F3CD75;
  --task-pending-soft:#33250C; --task-pending-ink:#F0C979;
  --task-progress-soft:#182637; --task-progress-ink:#C1CCDA;
  --task-blocked-soft:#3F1A18; --task-blocked-ink:#FFA59D;
  --task-completed-soft:#113322; --task-completed-ink:#86D9AE;
  --sh-xs:0 1px 2px rgba(0,0,0,.40);
  --sh-sm:0 1px 3px rgba(0,0,0,.45),0 1px 2px rgba(0,0,0,.35);
  --sh:0 4px 16px -4px rgba(0,0,0,.55),0 2px 6px -3px rgba(0,0,0,.40);
  --sh-md:0 12px 30px -8px rgba(0,0,0,.60),0 4px 10px -4px rgba(0,0,0,.40);
  --sh-lg:0 26px 64px -14px rgba(0,0,0,.70),0 8px 22px -10px rgba(0,0,0,.50);
}
[data-theme="dark"] body{background:var(--bg);}
/* Primary buttons read better as a bright blue than dark navy on a dark surface */
[data-theme="dark"] .btn-primary{background:var(--blue-3);border-color:var(--blue-3);color:#fff;}
[data-theme="dark"] .btn-primary:hover{background:var(--blue-4);border-color:var(--blue-4);}
/* Surfaces that were hardcoded to light values */
[data-theme="dark"] .side-block,
[data-theme="dark"] .card,
[data-theme="dark"] .auth-card,
[data-theme="dark"] .modal,
[data-theme="dark"] .filters,
[data-theme="dark"] .report-toolbar,
[data-theme="dark"] .loading-card,
[data-theme="dark"] .reminder-alert-card,
[data-theme="dark"] .shift-alert-card,
[data-theme="dark"] .aivira-card,
[data-theme="dark"] .kcard.readonly,
[data-theme="dark"] .trow.readonly{background:var(--surface);}
[data-theme="dark"] .kcard.status-progress{background:color-mix(in srgb,var(--task-progress-soft) 54%,var(--surface));}
[data-theme="dark"] .kcard.status-pending{background:color-mix(in srgb,var(--task-pending-soft) 30%,var(--surface));}
[data-theme="dark"] .kcard.status-blocked{background:color-mix(in srgb,var(--task-blocked-soft) 58%,var(--surface));}
[data-theme="dark"] .kcard.status-completed{background:color-mix(in srgb,var(--task-completed-soft) 42%,var(--surface));}
[data-theme="dark"] .kcard.is-mine{background:var(--surface);box-shadow:inset 0 0 0 1px rgba(92,155,214,.30),var(--sh-xs);}
[data-theme="dark"] .tb-icon,
[data-theme="dark"] .btn,
[data-theme="dark"] .inp,
[data-theme="dark"] .sel,
[data-theme="dark"] .txt,
[data-theme="dark"] .qadd input{background:var(--surface);color:var(--ink);border-color:var(--line-2);}
[data-theme="dark"] .btn:hover,
[data-theme="dark"] .tb-icon:hover,
[data-theme="dark"] .catload-row:hover,
[data-theme="dark"] .inp:hover,[data-theme="dark"] .sel:hover,[data-theme="dark"] .txt:hover{background:var(--surface-2);}
[data-theme="dark"] .agenda-card{background:var(--surface-2);border-color:var(--line-2);}
[data-theme="dark"] .agenda-card.is-now{background:color-mix(in srgb,var(--green-soft) 55%,var(--surface));}
[data-theme="dark"] .agenda-card.is-gap{background:color-mix(in srgb,var(--amber-soft) 55%,var(--surface));}
[data-theme="dark"] .sc.is-now-hour{background:color-mix(in srgb,var(--amber-soft) 24%,var(--surface));}
[data-theme="dark"] .sc-time.is-now-hour{background:var(--green-soft);}
[data-theme="dark"] .sblock-name b{background:var(--surface-2);color:var(--green-ink);}
[data-theme="dark"] .modal-acts{background:linear-gradient(180deg,rgba(16,36,56,0),var(--surface) 30%);}
[data-theme="dark"] .empty,
[data-theme="dark"] .hint{background:var(--surface-2);color:var(--ink-2);border-color:var(--line);}
/* Category chips/icons mix toward white in light; re-base them to a dark surface */
[data-theme="dark"] .cat-icon{background:color-mix(in srgb,var(--cat-color) 24%,#102438);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--cat-color) 36%,transparent);}
[data-theme="dark"] .cat-chip{color:color-mix(in srgb,var(--cat-color) 58%,#E7EEF6);background:color-mix(in srgb,var(--cat-color) 22%,#102438);border-color:color-mix(in srgb,var(--cat-color) 34%,#102438);}
[data-theme="dark"] .cat-chip .cat-icon{background:transparent;box-shadow:none;}

*{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;}
body{
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  background:
    radial-gradient(900px 520px at 88% -20%,rgba(92,155,214,.13),transparent 60%),
    linear-gradient(180deg,var(--body-top) 0%,var(--bg) 260px);
  color:var(--ink);line-height:1.5;font-size:14px;
  font-feature-settings:"cv05","ss01";letter-spacing:-.006em;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
::selection{background:var(--blue-ring);color:var(--heading);}

/* Scrollbars */
*{scrollbar-width:thin;scrollbar-color:var(--line-3) transparent;}
*::-webkit-scrollbar{width:10px;height:10px;}
*::-webkit-scrollbar-thumb{background:var(--line-3);border-radius:99px;border:3px solid transparent;background-clip:content-box;}
*::-webkit-scrollbar-thumb:hover{background:var(--muted);}

/* =============================================================================
   SHELL + RAIL
   ============================================================================= */
.shell{display:grid;grid-template-columns:256px 1fr;min-height:100vh;}
.rail{
  background:var(--rail);
  background-image:
    radial-gradient(120% 60% at 90% 0%,rgba(92,155,214,.14),transparent 55%),
    radial-gradient(80% 50% at 5% 100%,rgba(92,155,214,.08),transparent 50%);
  color:var(--rail-text);padding:22px 16px 16px;display:flex;flex-direction:column;
  position:sticky;top:0;height:100vh;border-right:1px solid rgba(0,0,0,.18);
  transition:background-color .56s var(--ease-soft),background-image .56s var(--ease-soft),color .4s var(--ease),border-color .4s var(--ease),box-shadow .56s var(--ease-soft);
}
/* A workspace is intentionally obvious at a glance: 4th Street uses Ivira navy;
   Milford shifts the entire rail to a clear sky blue. */
body.workspace-location-milford{
  --rail:#147FC8;--rail-2:#2098E3;--rail-line:rgba(231,248,255,.24);--rail-line-2:rgba(242,251,255,.42);
  --rail-text:#F2FAFF;--rail-text-2:#CDEEFF;--rail-text-3:#9DD9FA;
}
body.workspace-location-milford .rail{background-color:#147FC8;background-image:radial-gradient(120% 62% at 92% 0%,rgba(255,255,255,.18),transparent 56%),radial-gradient(82% 56% at 5% 100%,rgba(8,89,157,.25),transparent 54%),linear-gradient(160deg,#168DDB,#1174BC);box-shadow:inset -1px 0 rgba(255,255,255,.12);}
/* Keep every rail label legible against Milford blue, including compact cards
   and the active navigation state. */
body.workspace-location-milford .rail .rail-section{color:#C8EEFF;}
body.workspace-location-milford .rail .nav-item{color:#F4FBFF;text-shadow:0 1px 1px rgba(5,78,133,.18);}
body.workspace-location-milford .rail .nav-item svg{color:#D8F4FF;opacity:.92;}
body.workspace-location-milford .rail .nav-item:hover,body.workspace-location-milford .rail .nav-item.active{color:#fff;}
body.workspace-location-milford .rail .nav-count{color:#fff;background:rgba(5,93,157,.36);}
body.workspace-location-milford .rail .rc-label,body.workspace-location-milford .rail .rc-note,body.workspace-location-milford .rail .rc-task-meta,body.workspace-location-milford .rail .me-role,body.workspace-location-milford .rail .rail-tag{color:#D9F4FF;}
body.workspace-location-milford .rail .rc-task-name,body.workspace-location-milford .rail .rc-name-pill,body.workspace-location-milford .rail .me-name-row{color:#fff;}
body.workspace-location-milford .rail .rail-brand p,body.workspace-location-milford .rail .rail-card,body.workspace-location-milford .rail .rail-break-toggle{color:#E6F7FF;}
body.workspace-location-milford .rail .rail-break-toggle strong,body.workspace-location-milford .rail .rail-card b{color:#fff;}
body.workspace-location-milford .rail .rail-break-toggle{border-color:rgba(230,247,255,.34);background:linear-gradient(135deg,rgba(6,91,156,.24),rgba(255,255,255,.09));}
body.workspace-location-milford .rail .rail-break-toggle:hover{border-color:rgba(255,255,255,.56);background:linear-gradient(135deg,rgba(6,91,156,.28),rgba(255,255,255,.16));}
body.workspace-location-milford .nav-item.active{background:linear-gradient(90deg,rgba(255,255,255,.26),rgba(255,255,255,.12));}
body.workspace-location-milford .nav-item.active svg{color:#EAF8FF;}
body.workspace-location-milford .nav-item.active::before{background:#fff;}
body.workspace-location-milford .nav-item.active .nav-count{background:rgba(8,86,149,.6);}
body.workspace-location-transition::after{content:"";position:fixed;inset:0;z-index:900;pointer-events:none;background:radial-gradient(circle at calc(100% - 138px) 46px,rgba(171,229,255,.43),rgba(31,150,222,.17) 30%,transparent 61%);animation:workspaceLocationSweep .76s var(--ease-out) both;}
@keyframes workspaceLocationSweep{0%{opacity:0;clip-path:circle(0 at calc(100% - 138px) 46px);}30%{opacity:1;}100%{opacity:0;clip-path:circle(145vmax at calc(100% - 138px) 46px);}}
.rail-brand{display:flex;align-items:center;gap:12px;padding:8px 10px;margin-bottom:14px;border-radius:var(--r);cursor:pointer;user-select:none;-webkit-user-select:none;transition:background var(--t) var(--ease-out);}
.rail-brand:hover{background:rgba(255,255,255,.055);}
.rail-brand:active{background:rgba(255,255,255,.085);}
.rail-brand:focus-visible{outline:none;box-shadow:0 0 0 3px var(--blue-ring);}
.rail-logo{width:34px;height:34px;flex-shrink:0;filter:drop-shadow(0 2px 6px rgba(0,0,0,.25));transition:transform .5s cubic-bezier(.45,1.25,.5,1),filter var(--t) var(--ease-out);}
.rail-brand:hover .rail-logo{transform:rotate(-10deg) scale(1.08);filter:drop-shadow(0 3px 10px rgba(123,179,232,.45));}
.rail-brand h1{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:20px;color:#fff;letter-spacing:-.03em;line-height:1;}
.rail-brand p{font-size:10px;color:var(--rail-text-2);margin-top:4px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;transition:color var(--t) var(--ease-out);}
.rail-brand:hover p{color:var(--rail-text);}

.rail-nav{display:flex;flex-direction:column;gap:2px;overflow-y:auto;margin:0 -4px;padding:0 4px;}
.rail-section{font-size:10px;color:var(--rail-text-3);font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:14px 14px 6px;}
.nav-item{
  display:flex;align-items:center;gap:11px;padding:9px 14px;border-radius:var(--r-sm);
  color:var(--rail-text);font-size:13.5px;font-weight:500;cursor:pointer;border:none;
  background:transparent;width:100%;text-align:left;font-family:inherit;position:relative;text-decoration:none;
  transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease),box-shadow var(--t-fast);
}
.nav-item svg{width:17px;height:17px;flex-shrink:0;opacity:.7;transition:opacity var(--t-fast);}
.nav-item:hover{background:rgba(255,255,255,.07);color:#fff;transform:translateX(2px);}
.nav-item:active{transform:translateX(1px) scale(.99);}
.nav-item:hover svg{opacity:.95;}
.nav-item.active{background:linear-gradient(90deg,rgba(92,155,214,.22),rgba(92,155,214,.12));color:#fff;font-weight:600;box-shadow:inset 0 1px 0 rgba(255,255,255,.05);}
.nav-item.active svg{opacity:1;color:var(--blue);}
.nav-item.active::before{content:"";position:absolute;left:3px;top:50%;transform:translateY(-50%);width:3px;height:18px;border-radius:3px;background:var(--blue);}
.nav-count{margin-left:auto;font-size:10.5px;font-weight:700;background:rgba(255,255,255,.10);color:var(--rail-text);padding:2px 8px;border-radius:var(--r-pill);min-width:22px;text-align:center;transition:all var(--t-fast);}
.nav-item.active .nav-count{background:var(--blue-3);color:#fff;}

.rail-foot{margin-top:auto;padding-top:14px;}
.rail-card{background:rgba(255,255,255,.045);border:1px solid var(--rail-line);border-radius:var(--r);padding:13px;transition:background var(--t) var(--ease-out),border-color var(--t) var(--ease-out);}
.rail-card:hover{background:rgba(255,255,255,.065);border-color:var(--rail-line-2);}
.rail-card+.rail-card{margin-top:9px;}
.rc-label{font-size:10px;color:var(--rail-text-2);font-weight:700;letter-spacing:.12em;text-transform:uppercase;}
.rc-people{display:flex;align-items:center;margin-top:9px;}
.rc-ava{width:27px;height:27px;border-radius:50%;color:#fff;display:grid;place-items:center;font-size:10px;font-weight:700;border:2px solid var(--rail);margin-left:-8px;}
.rc-ava:first-child{margin-left:0;}
.rc-note{font-size:11.5px;color:var(--rail-text-2);margin-top:9px;line-height:1.45;font-weight:450;}
.rc-task-list{display:flex;flex-direction:column;gap:8px;margin-top:10px;}
.rc-task{display:grid;grid-template-columns:8px 1fr;gap:9px;align-items:start;}
.rc-task-dot{width:8px;height:8px;border-radius:50%;margin-top:5px;}
.rc-task-name{font-size:12px;color:#EAF2FA;font-weight:600;line-height:1.25;}
.rc-task-meta{font-size:11px;color:var(--rail-text-2);font-weight:450;line-height:1.35;margin-top:1px;}
.rc-name-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
.rc-name-pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--rail-line-2);background:rgba(255,255,255,.05);border-radius:var(--r-pill);padding:5px 9px 5px 7px;color:#EAF2FA;font-size:11.5px;font-weight:600;line-height:1;transition:background var(--t-fast) var(--ease-out),border-color var(--t-fast) var(--ease-out),transform var(--t-fast) var(--ease-out);}
.rc-name-pill:hover{background:rgba(255,255,255,.09);border-color:var(--rail-text-3);transform:translateY(-1px);}
/* live presence: a calm, colour-matched pulse on each on-call dot */
.rc-name-dot{width:9px;height:9px;border-radius:50%;background:var(--dot,var(--green));box-shadow:0 0 0 0 color-mix(in srgb,var(--dot,var(--green)) 55%,transparent);animation:railDotPulse 2.6s var(--ease) infinite;}
@keyframes railDotPulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--dot,var(--green)) 50%,transparent);}55%{box-shadow:0 0 0 5px color-mix(in srgb,var(--dot,var(--green)) 0%,transparent);}}
.rail-tag{margin-top:14px;padding:0 6px;font-size:10.5px;color:var(--rail-text-3);font-style:italic;font-weight:500;letter-spacing:.01em;}

/* logged-in identity block */
.me-display{display:flex;align-items:center;gap:10px;padding:10px 11px;background:rgba(255,255,255,.05);border:1px solid var(--rail-line);border-radius:var(--r);margin-bottom:8px;transition:border-color var(--t-fast),background var(--t-fast);}
.me-display:hover{border-color:var(--rail-line-2);}
.me-display .avatar{width:34px;height:34px;font-size:12px;}
.me-display .me-info{flex:1;min-width:0;}
.me-display .me-name-row{font-weight:600;font-size:13px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.me-display .me-role{font-size:10px;color:var(--rail-text-2);font-weight:600;letter-spacing:.07em;text-transform:uppercase;margin-top:3px;}
.me-display button{background:transparent;border:none;color:var(--rail-text-3);cursor:pointer;padding:5px;border-radius:var(--r-xs);display:grid;place-items:center;transition:all var(--t-fast);}
.me-display button:hover{background:rgba(255,255,255,.08);color:#fff;}
.rail-break-toggle{position:relative;overflow:hidden;width:100%;display:grid;grid-template-columns:28px minmax(0,1fr) 20px;align-items:center;gap:8px;min-height:48px;margin:0 0 12px;padding:9px 10px;border:1px solid rgba(126,167,207,.24);border-radius:var(--r);background:linear-gradient(135deg,rgba(255,255,255,.075),rgba(255,255,255,.035));color:var(--rail-text);font-family:inherit;text-align:center;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 10px 22px -18px rgba(0,0,0,.7);transition:background var(--t-fast),border-color var(--t-fast),box-shadow var(--t-fast),transform var(--t-fast);}
.rail-break-toggle::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent,rgba(255,255,255,.10),transparent);transform:translateX(-130%);transition:transform .55s var(--ease-out);pointer-events:none;}
.rail-break-toggle:hover{background:linear-gradient(135deg,rgba(255,255,255,.10),rgba(255,255,255,.05));border-color:rgba(151,190,226,.38);transform:translateY(-1px);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 14px 28px -22px rgba(0,0,0,.75);}
.rail-break-toggle:hover::after{transform:translateX(130%);}
.rail-break-toggle.on{background:linear-gradient(135deg,rgba(207,147,31,.26),rgba(207,147,31,.12));border-color:rgba(230,192,103,.58);box-shadow:inset 0 0 0 1px rgba(246,215,154,.12),0 16px 34px -24px rgba(207,147,31,.78);color:#fff;}
.rail-break-toggle.is-maxed{cursor:not-allowed;opacity:.86;background:linear-gradient(135deg,rgba(236,106,99,.18),rgba(207,147,31,.08));border-color:rgba(236,106,99,.36);box-shadow:inset 0 0 0 1px rgba(236,106,99,.08);}
.rail-break-dot{position:relative;width:28px;height:28px;border-radius:10px;background:rgba(79,174,131,.14);box-shadow:inset 0 0 0 1px rgba(79,174,131,.20);flex:0 0 auto;display:grid;place-items:center;}
.rail-break-dot span{width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(33,197,131,.13);}
.rail-break-toggle.on .rail-break-dot{background:rgba(207,147,31,.18);box-shadow:inset 0 0 0 1px rgba(230,192,103,.28);}
.rail-break-toggle.on .rail-break-dot span{background:var(--amber);box-shadow:0 0 0 4px rgba(230,192,103,.18);}
.rail-break-toggle.is-maxed .rail-break-dot{background:rgba(236,106,99,.14);box-shadow:inset 0 0 0 1px rgba(236,106,99,.22);}
.rail-break-toggle.is-maxed .rail-break-dot span{background:var(--coral);box-shadow:0 0 0 4px rgba(236,106,99,.13);}
.rail-break-copy{display:block;min-width:0;grid-column:2;}
.rail-break-toggle strong{display:block;font-size:11.5px;font-weight:900;line-height:1;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rail-break-toggle.on strong{color:#FFE3A8;}
.rail-break-toggle.is-maxed strong{color:#FFD2CF;}

/* =============================================================================
   MAIN + TOPBAR
   ============================================================================= */
.main{min-width:0;display:flex;flex-direction:column;}
.topbar{display:flex;align-items:flex-end;justify-content:space-between;padding:28px 40px 20px;gap:18px;flex-wrap:wrap;}
.topbar h2{font-family:'Bricolage Grotesque',sans-serif;font-size:27px;font-weight:700;color:var(--heading);letter-spacing:-.032em;line-height:1.05;}
.topbar .sub{font-size:13.5px;color:var(--ink-2);margin-top:5px;font-weight:450;}
.topbar-right{display:flex;align-items:center;gap:11px;}
.clock{text-align:right;line-height:1.3;padding-right:3px;}
.clock .day{font-size:13px;font-weight:600;color:var(--heading);}
.clock .time{font-size:11.5px;color:var(--muted);font-weight:500;font-variant-numeric:tabular-nums;}
.workspace-location-switch{--location-track:linear-gradient(135deg,#0C2740,#16395E);position:relative;isolation:isolate;display:grid;grid-template-columns:1fr 1.3fr;align-items:center;width:194px;min-height:40px;padding:3px;border:1px solid rgba(16,44,73,.18);border-radius:var(--r-pill);overflow:hidden;background:var(--location-track);box-shadow:0 8px 18px -13px rgba(16,43,73,.62),inset 0 1px 0 rgba(255,255,255,.18);transition:background .48s var(--ease-soft),border-color .42s var(--ease),box-shadow .42s var(--ease);}
.workspace-location-switch::before{content:"";position:absolute;z-index:-1;inset:3px auto 3px 3px;width:calc(43.48% - 3px);border-radius:var(--r-pill);background:linear-gradient(145deg,#fff,#F5F9FE);box-shadow:0 5px 13px -8px rgba(0,27,57,.68),inset 0 0 0 1px rgba(255,255,255,.92);transform:translateX(0);transition:transform .48s var(--ease-soft),width .48s var(--ease-soft),background .32s var(--ease);}
.workspace-location-switch.is-milford{--location-track:linear-gradient(135deg,#168FE0,#1678C7);border-color:rgba(29,140,217,.4);box-shadow:0 9px 20px -13px rgba(21,130,205,.68),inset 0 1px 0 rgba(255,255,255,.26);}
.workspace-location-switch.is-milford::before{width:calc(56.52% - 3px);transform:translateX(calc(76.92% + 3px));background:linear-gradient(145deg,#fff,#F3FAFF);}
.workspace-location-switch button{position:relative;z-index:1;min-width:0;height:34px;border:0;border-radius:var(--r-pill);background:transparent;color:rgba(255,255,255,.84);font-family:inherit;font-size:12px;font-weight:850;letter-spacing:.01em;cursor:pointer;transition:color .28s var(--ease),transform .18s var(--ease);}
.workspace-location-switch button:hover:not(:disabled){color:#fff;transform:translateY(-.5px);}
.workspace-location-switch button:focus-visible{outline:2px solid #A7DDFF;outline-offset:-1px;}
.workspace-location-switch button[aria-pressed="true"]{color:#123553;}
.workspace-location-switch.is-milford button[aria-pressed="true"]{color:#0876BE;}
.workspace-location-switch.is-locked{box-shadow:var(--sh-xs),inset 0 1px 0 rgba(255,255,255,.18);}
.workspace-location-switch button:disabled{cursor:default;opacity:1;}
[data-theme="dark"] .workspace-location-switch{border-color:#34516B;box-shadow:0 8px 18px -13px rgba(0,0,0,.75),inset 0 1px 0 rgba(255,255,255,.14);}
[data-theme="dark"] .workspace-location-switch::before{background:linear-gradient(145deg,#E8F0F8,#D6E4F1);}
.content{padding:0 40px 44px;flex:1;}

/* topbar icon buttons (bell, settings) */
.tb-icon{width:40px;height:40px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);position:relative;display:grid;place-items:center;color:var(--ink-2);cursor:pointer;box-shadow:var(--sh-xs);transition:background-color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease),transform var(--t-fast) var(--ease);}
.tb-icon svg{width:18px;height:18px;transition:opacity .12s var(--ease);}
.tb-icon:hover{background:var(--blue-mist);border-color:var(--blue);color:var(--heading);transform:translateY(-1px);}
.tb-icon:active{transform:translateY(0);}
.tb-icon.theme-pressing{background:color-mix(in srgb,var(--surface-2) 82%,var(--blue-soft));border-color:var(--blue-2);box-shadow:0 0 0 3px var(--blue-ring),0 1px 2px rgba(16,43,73,.08);transform:scale(.96);}
.tb-icon.theme-pressing svg{animation:iconMorph .18s var(--ease-out);}
.tb-icon.theme-pressing::after{content:"";position:absolute;inset:-1px;border-radius:inherit;border:2px solid var(--blue-2);pointer-events:none;animation:themeRing .52s var(--ease-out) forwards;}
@keyframes iconMorph{0%{opacity:.45;}100%{opacity:1;}}
@keyframes themeRing{0%{opacity:.7;transform:scale(1);}100%{opacity:0;transform:scale(1.55);}}
.tb-icon.muted{color:var(--coral);border-color:var(--coral-soft);background:var(--coral-soft);}
.tb-icon.muted:hover{background:var(--coral-soft);border-color:var(--coral);color:var(--coral-ink);}
[data-theme="dark"] .tb-icon.theme-pressing{background:color-mix(in srgb,var(--surface-2) 86%,var(--blue-soft));border-color:var(--blue-2);box-shadow:0 0 0 3px var(--blue-ring),var(--sh-xs);}
/* Fallback cross-fade (browsers without the View Transitions API). One scoped,
   universal rule so every surface fades together instead of some panels popping. */
html.theme-transitioning *{
  transition:background-color .32s var(--ease),color .32s var(--ease),border-color .32s var(--ease),fill .32s var(--ease),stroke .32s var(--ease);
}
html.theme-transitioning body::before{content:"";position:fixed;inset:0;z-index:950;pointer-events:none;opacity:0;clip-path:circle(0 at var(--theme-x,calc(100vw - 42px)) var(--theme-y,42px));animation:themeWash .42s var(--ease-out) forwards;will-change:clip-path,opacity;}
html.theme-transitioning.theme-to-dark body::before{background:radial-gradient(circle at var(--theme-x,100%) var(--theme-y,0),rgba(92,155,214,.24),rgba(16,44,73,.18) 34%,rgba(11,27,44,.12) 64%,transparent 76%);}
html.theme-transitioning.theme-to-light body::before{background:radial-gradient(circle at var(--theme-x,100%) var(--theme-y,0),rgba(255,255,255,.42),rgba(234,242,251,.24) 36%,rgba(92,155,214,.12) 62%,transparent 78%);}
@keyframes themeWash{0%{clip-path:circle(0 at var(--theme-x,calc(100vw - 42px)) var(--theme-y,42px));opacity:.5;}45%{opacity:.28;}100%{clip-path:circle(150vmax at var(--theme-x,calc(100vw - 42px)) var(--theme-y,42px));opacity:0;}}

/* -----------------------------------------------------------------------------
   PRIMARY THEME REVEAL  (View Transitions API)
   The whole viewport is captured as one image, so every surface changes together.
   A feathered circle, anchored at the toggle, expands for dark / contracts for
   light. We drive its radius through the registered --theme-r custom property.
   ----------------------------------------------------------------------------- */
@property --theme-r{syntax:'<length>';inherits:true;initial-value:0px;}
::view-transition-group(root){animation-duration:.56s;}
::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal;backface-visibility:hidden;}
/* Always mask the NEW layer; the gradient direction sets expand vs contract. */
html.vt-to-dark::view-transition-new(root){z-index:9999;
  -webkit-mask:radial-gradient(circle at var(--theme-x,100%) var(--theme-y,0),#000 calc(var(--theme-r) - 48px),transparent var(--theme-r));
  mask:radial-gradient(circle at var(--theme-x,100%) var(--theme-y,0),#000 calc(var(--theme-r) - 48px),transparent var(--theme-r));}
html.vt-to-dark::view-transition-old(root){z-index:1;}
html.vt-to-light::view-transition-new(root){z-index:9999;
  -webkit-mask:radial-gradient(circle at var(--theme-x,100%) var(--theme-y,0),transparent calc(var(--theme-r) - 48px),#000 var(--theme-r));
  mask:radial-gradient(circle at var(--theme-x,100%) var(--theme-y,0),transparent calc(var(--theme-r) - 48px),#000 var(--theme-r));}
html.vt-to-light::view-transition-old(root){z-index:1;}

/* The new theme "settles" in: a barely-there lift once the reveal completes. */
html.theme-settled .content{animation:themeSettle .46s var(--ease-out);}
@keyframes themeSettle{0%{opacity:.86;transform:translateY(4px);}100%{opacity:1;transform:none;}}

@media (max-width:880px){
  .shell{grid-template-columns:1fr;}
  .rail{position:static;height:auto;flex-direction:row;align-items:center;padding:12px 14px;gap:10px;overflow-x:auto;border-right:none;border-bottom:1px solid rgba(0,0,0,.18);}
  .rail-brand{padding:0 8px 0 4px;}.rail-brand p{display:none;}
  .rail-nav{flex-direction:row;gap:4px;overflow-x:visible;}
  .rail-section,.rail-foot{display:none;}
  .nav-item{padding:9px 13px;white-space:nowrap;}
  .nav-item.active::before{display:none;}
  .nav-item span.lbl{display:none;}
  .topbar,.content{padding-left:18px;padding-right:18px;}
}

/* =============================================================================
   PANELS + entrance motion
   ============================================================================= */
.panel{display:none;}
.panel.active{display:block;}
.panel.active>*{animation:rise .24s var(--ease-out) backwards;}
.panel.active>*:nth-child(2){animation-delay:.02s;}
.panel.active>*:nth-child(3){animation-delay:.04s;}
.panel.active>*:nth-child(4){animation-delay:.06s;}
@keyframes rise{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:translateY(0);}}

/* =============================================================================
   BUTTONS
   ============================================================================= */
.btn{display:inline-flex;align-items:center;gap:7px;padding:9px 15px;border-radius:var(--r-sm);border:1px solid var(--line-2);background:var(--surface);color:var(--ink);font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast),transform var(--t-fast),box-shadow var(--t-fast);}
.btn svg{width:16px;height:16px;}
.btn:hover{background:var(--blue-mist);border-color:var(--blue);color:var(--heading);}
.btn:active{transform:translateY(1px);}
.btn:disabled{opacity:.58;cursor:not-allowed;transform:none;box-shadow:none;}
.btn:disabled:hover{background:var(--surface);border-color:var(--line-2);color:var(--ink);}
.btn-primary{background:var(--navy);color:#fff;border-color:var(--heading);box-shadow:var(--sh-sm);}
.btn-primary:hover{background:var(--navy-2);border-color:var(--navy-2);color:#fff;box-shadow:var(--sh);transform:translateY(-1px);}
.btn-primary:active{transform:translateY(0);box-shadow:var(--sh-sm);}
.btn.on{background:var(--blue-3);border-color:var(--blue-3);color:#fff;}
.btn.on:hover{background:var(--blue-4);border-color:var(--blue-4);color:#fff;}
.btn-sm{padding:7px 12px;font-size:12.5px;}
.icon-btn{width:30px;height:30px;padding:0;display:grid;place-items:center;border-radius:var(--r-xs);border:1px solid transparent;background:transparent;cursor:pointer;color:var(--muted);transition:all var(--t-fast) var(--ease);}
.icon-btn svg{width:15px;height:15px;}
.icon-btn:hover{background:var(--blue-soft);color:var(--heading);transform:translateY(-1px);}
.icon-btn:active{transform:translateY(0) scale(.96);}
.icon-btn.danger:hover{background:var(--coral-soft);color:var(--coral);}

/* =============================================================================
   HERO (dashboard)
   ============================================================================= */
.hero{position:relative;overflow:hidden;isolation:isolate;border-radius:var(--r-lg);padding:22px 32px 24px;color:#fff;margin-bottom:18px;
  background:linear-gradient(135deg,#0F2C49 0%,#16395E 52%,#1C4A78 100%);
  box-shadow:var(--sh-md);}
.hero::after{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(70% 120% at 100% 0%,rgba(92,155,214,.22),transparent 62%);pointer-events:none;animation:heroGlow 20s var(--ease-soft) infinite;will-change:transform,opacity;}
@keyframes heroGlow{0%,100%{opacity:.82;transform:translate3d(0,0,0) scale(1);}50%{opacity:1;transform:translate3d(-3%,2%,0) scale(1.06);}}
.hero::before{content:"";position:absolute;left:0;right:0;top:0;z-index:1;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.30),transparent);}
.hero-pill{position:absolute;right:-18px;bottom:-46px;z-index:0;width:158px;height:158px;opacity:.045;transform:rotate(-12deg);pointer-events:none;}
.hero h3{font-family:'Bricolage Grotesque',sans-serif;font-size:23px;font-weight:600;letter-spacing:-.025em;position:relative;z-index:1;}
.hero .hero-sub{color:#A8C5E2;font-size:12.5px;margin-top:3px;font-weight:450;position:relative;z-index:1;}
.hero-announcement-slot{position:relative;z-index:1;margin-top:14px;}
.hero-announcement-slot[hidden]{display:none;}
.hero-ann{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:15px 16px 15px 19px;border:1px solid rgba(240,184,78,.48);border-left-color:rgba(240,184,78,.92);border-radius:calc(var(--r) + 2px);background:linear-gradient(135deg,rgba(224,161,45,.28),rgba(18,55,89,.66) 44%,rgba(255,255,255,.075));box-shadow:inset 0 1px 0 rgba(255,255,255,.13),0 20px 44px -34px rgba(0,0,0,.86),0 0 0 1px rgba(255,255,255,.04);}
.hero-ann::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:linear-gradient(180deg,#F5C768,#D09324);box-shadow:0 0 24px rgba(240,184,78,.42);}
.hero-ann::after{content:"";position:absolute;right:-54px;bottom:-72px;width:190px;height:190px;border-radius:50%;background:radial-gradient(circle,rgba(240,184,78,.17),transparent 66%);pointer-events:none;}
.hero-ann-copy{min-width:0;}
.hero-ann-copy>span,.hero-ann-editor-head span{display:inline-flex;align-items:center;gap:8px;margin-bottom:6px;color:#FFE2A1;font-size:10.5px;font-weight:950;letter-spacing:.13em;text-transform:uppercase;}
.hero-ann-copy>span::before,.hero-ann-editor-head span::before{content:"";width:8px;height:8px;border-radius:3px;background:#F0B84E;box-shadow:0 0 0 3px rgba(240,184,78,.14),0 0 16px rgba(240,184,78,.38);}
.hero-ann-copy p{position:relative;z-index:1;margin:0;color:#FFF9EE;font-size:14.2px;font-weight:780;line-height:1.42;overflow-wrap:anywhere;}
.hero-ann-empty{border-style:dashed;background:linear-gradient(135deg,rgba(224,151,42,.12),rgba(255,255,255,.045));}
.hero-ann-empty .hero-ann-copy p{color:#D9E7F5;font-weight:550;}
.hero-ann-actions{position:relative;z-index:1;display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end;}
.hero-ann-actions button{border:1px solid rgba(251,220,157,.22);background:rgba(13,36,60,.36);color:#FFF5E2;border-radius:var(--r-pill);padding:6px 10px;font-size:11.5px;font-weight:750;cursor:pointer;white-space:nowrap;box-shadow:inset 0 1px 0 rgba(255,255,255,.06);transition:background var(--t-fast),border-color var(--t-fast),transform var(--t-fast),box-shadow var(--t-fast);}
.hero-ann-actions button:hover{background:rgba(246,196,105,.16);border-color:rgba(251,220,157,.38);box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 10px 18px -16px rgba(0,0,0,.72);transform:translateY(-1px);}
.hero-ann-actions .hero-ann-primary{background:linear-gradient(135deg,rgba(229,164,61,.32),rgba(229,164,61,.18));border-color:rgba(251,220,157,.46);color:#FFF9EC;}
.ann-ack-row{position:relative;z-index:1;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:11px;color:#F7D89A;}
.ann-ack-label{display:inline-flex;align-items:center;min-height:23px;color:#FFE2A1;font-size:10px;font-weight:900;letter-spacing:.11em;text-transform:uppercase;line-height:1;}
.ann-ticket-context{display:inline-flex;align-items:center;min-height:23px;border-radius:var(--r-pill);padding:4px 8px;background:rgba(240,184,78,.11);border:1px solid rgba(240,184,78,.22);color:#FFE4AD;font-size:10.5px;font-weight:850;line-height:1;}
.ann-ack-list{display:flex;align-items:center;gap:5px;flex-wrap:wrap;min-width:0;}
.ann-ack-chip,.ann-ack-more{display:inline-flex;align-items:center;min-height:23px;border-radius:var(--r-pill);padding:4px 8px;font-size:10.8px;font-weight:800;line-height:1;}
.ann-ack-chip{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16);color:#F5FAFF;}
.holiday-ticket-chip{background:rgba(95,174,131,.15);border-color:rgba(95,174,131,.26);color:#F4FFF8;}
.ann-ack-more{background:rgba(240,184,78,.15);border:1px solid rgba(240,184,78,.26);color:#FFE4AD;}
.hero-ann-editor{display:block;padding:14px 14px 13px 17px;}
.hero-ann-editor-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;}
.hero-ann-editor-head small{color:#F2D49A;font-size:11px;font-weight:750;}
.hero-ann-target{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:9px;position:relative;z-index:1;}
.hero-ann-target label{color:#FFE2A1;font-size:10.5px;font-weight:850;letter-spacing:.09em;text-transform:uppercase;}
.hero-ann-target select{min-height:32px;border:1px solid rgba(246,196,105,.30);border-radius:var(--r-pill);background:rgba(7,22,38,.58);color:#FFF8EC;padding:6px 30px 6px 10px;font:inherit;font-size:12px;font-weight:760;outline:none;}
.hero-ann-target select:focus{border-color:rgba(246,196,105,.66);box-shadow:0 0 0 3px rgba(229,164,61,.18);}
.hero-ann textarea{width:100%;min-height:72px;resize:vertical;border:1px solid rgba(246,196,105,.28);border-radius:var(--r-sm);background:rgba(7,22,38,.54);color:#FFF8EC;padding:10px 11px;font:inherit;font-size:13px;line-height:1.45;outline:none;}
.hero-ann textarea:focus{border-color:rgba(246,196,105,.62);box-shadow:0 0 0 3px rgba(229,164,61,.18);}
.hero-ann textarea::placeholder{color:#C8D6E4;}
.hero-oncall{margin-top:18px;position:relative;z-index:1;}
.hero-presence{display:grid;gap:10px;}
.hero-presence-head{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#DCEBFA;}
.hero-presence-head>div{display:flex;align-items:center;gap:8px;min-width:0;}
.hero-presence-head b{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#F5FAFF;}
.hero-presence-head small{font-size:11.5px;color:#AFCBE6;font-weight:600;}
.hero-presence-head time{font-family:'Bricolage Grotesque',sans-serif;font-size:14px;font-weight:700;color:#F5FAFF;font-variant-numeric:tabular-nums;white-space:nowrap;}
.live-dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 0 rgba(79,174,131,.5);animation:live-pulse 1.8s var(--ease) infinite;}
@keyframes live-pulse{0%,100%{box-shadow:0 0 0 0 rgba(79,174,131,.45);}50%{box-shadow:0 0 0 7px rgba(79,174,131,0);}}
.hero-now-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:10px;align-items:stretch;}
.oncall-chip{position:relative;overflow:hidden;display:flex;align-items:center;gap:10px;min-width:0;width:100%;background:rgba(255,255,255,.085);border:1px solid rgba(255,255,255,.15);padding:7px 13px 7px 7px;border-radius:var(--r-pill);backdrop-filter:blur(6px);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 8px 18px rgba(6,20,36,.12);transition:background var(--t) var(--ease-out),border-color var(--t) var(--ease-out),transform var(--t) var(--ease-out),box-shadow var(--t) var(--ease-out);}
.oncall-chip::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 0%,rgba(255,255,255,.16) 46%,transparent 60%);transform:translateX(-130%);transition:transform .7s var(--ease-out);pointer-events:none;}
.oncall-chip:hover::after{transform:translateX(130%);}
.oncall-chip.live-now{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.24);box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 10px 22px rgba(6,20,36,.16);}
.oncall-chip:hover{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.23);transform:translateY(-1px);}
.oncall-chip.break-now{background:linear-gradient(135deg,rgba(207,147,31,.28),rgba(207,147,31,.13));border-color:rgba(246,215,154,.36);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 12px 26px rgba(64,41,8,.20);}
.oncall-chip.break-now:hover{background:linear-gradient(135deg,rgba(207,147,31,.34),rgba(207,147,31,.17));border-color:rgba(246,215,154,.48);}
.oncall-chip.break-now .avatar{box-shadow:0 0 0 2px rgba(246,215,154,.28);}
.oncall-chip.break-now .tm b{color:#FFE1A3;font-weight:850;letter-spacing:.035em;text-transform:uppercase;}
.oncall-chip .avatar{width:30px;height:30px;flex:0 0 30px;}
.oncall-chip>span{display:block;min-width:0;line-height:1.25;}
.oncall-chip .nm{display:block;font-size:13px;font-weight:700;color:#F5FAFF;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.oncall-chip .tm{display:block;font-size:11px;color:#B8D0E8;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px;}
.break-meter{display:flex;align-items:center;gap:7px;margin-top:5px;min-width:0;}
.break-meter i{font-style:normal;font-family:'Bricolage Grotesque',sans-serif;font-size:13px;font-weight:750;color:#FFE1A3;font-variant-numeric:tabular-nums;}
.break-meter small{font-size:10.5px;font-weight:650;color:#D9B96F;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.shift-progress{display:block;height:3px;margin-top:5px;background:rgba(255,255,255,.16);border-radius:var(--r-pill);overflow:hidden;}
.shift-progress i{position:relative;overflow:hidden;display:block;height:100%;background:linear-gradient(90deg,var(--green),var(--blue-2));border-radius:inherit;}
.shift-progress i::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 0%,rgba(255,255,255,.6) 48%,transparent 64%);transform:translateX(-130%);animation:shiftSheen 3.4s var(--ease-out) infinite;pointer-events:none;}
@keyframes shiftSheen{0%{transform:translateX(-130%);}60%,100%{transform:translateX(130%);}}
.hero-next{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-top:2px;}
.hero-next>span{font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;font-weight:800;color:#9DBBD8;margin-right:2px;}
.hero-next button{border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.065);color:#EAF4FF;border-radius:var(--r-pill);padding:6px 10px;display:flex;align-items:center;gap:7px;cursor:pointer;min-width:0;transition:background var(--t-fast),border-color var(--t-fast),transform var(--t-fast);}
.hero-next button:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.24);transform:translateY(-1px);}
.hero-next b{font-size:12px;font-weight:800;}
.hero-next small{font-size:11px;color:#B8D0E8;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px;}
.hero-empty{margin-top:18px;color:#9DBBD8;font-size:13.5px;font-weight:450;position:relative;z-index:1;}
.hero-empty-now{margin-top:0;padding:9px 12px;border:1px solid rgba(255,255,255,.14);border-radius:var(--r-sm);background:rgba(255,255,255,.06);}
@media (max-width:760px){.hero{padding:24px 22px;}.hero-ann{grid-template-columns:1fr;align-items:start;}.hero-ann-actions{justify-content:flex-start;}.ann-ack-row{align-items:flex-start;}.hero-now-grid{grid-template-columns:1fr;gap:8px;}.hero-presence-head{align-items:flex-start;}.hero-presence-head>div{flex-wrap:wrap;}.hero-next button{width:100%;justify-content:space-between;}.hero-pill{display:none;}}

/* Break Center */
.break-center{margin:-4px 0 18px;padding:16px;border:1px solid color-mix(in srgb,var(--blue) 16%,var(--line));border-radius:var(--r-lg);background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--blue-mist) 48%,var(--surface)));box-shadow:var(--sh-sm);}
.break-center-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:13px;}
.break-kicker{display:block;font-size:10px;font-weight:850;letter-spacing:.12em;text-transform:uppercase;color:var(--blue-3);margin-bottom:3px;}
.break-center h4{font-family:'Bricolage Grotesque',sans-serif;font-size:17px;line-height:1.1;color:var(--heading);letter-spacing:-.02em;}
.break-refresh{border:1px solid var(--line);background:var(--surface);color:var(--ink-2);border-radius:var(--r-xs);padding:6px 10px;font-family:inherit;font-size:11.5px;font-weight:750;cursor:pointer;transition:background var(--t-fast),border-color var(--t-fast),transform var(--t-fast);}
.break-refresh:hover{background:var(--blue-soft);border-color:color-mix(in srgb,var(--blue) 28%,var(--line));transform:translateY(-1px);}
.break-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end;}
.break-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px;}
.break-metrics>div{padding:10px 11px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--sh-xs);}
.break-metrics span{display:block;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:5px;}
.break-metrics b{font-family:'Bricolage Grotesque',sans-serif;font-size:18px;color:var(--heading);font-variant-numeric:tabular-nums;}
.break-active-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:9px;}
.break-active-card,.break-own-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid color-mix(in srgb,var(--amber) 24%,var(--line));border-radius:var(--r-sm);background:linear-gradient(135deg,color-mix(in srgb,var(--amber-soft) 72%,var(--surface)),var(--surface));padding:10px 11px;text-align:left;color:var(--ink);box-shadow:var(--sh-xs);transition:transform var(--t-fast),box-shadow var(--t-fast),border-color var(--t-fast);}
.break-active-card[role="button"],.break-own-card{cursor:pointer;}
.break-active-card:hover,.break-own-card:hover{transform:translateY(-1px);box-shadow:var(--sh-sm);border-color:color-mix(in srgb,var(--amber) 38%,var(--line));}
.break-active-card.is-soft{border-color:color-mix(in srgb,var(--amber) 48%,var(--line));}
.break-active-card.is-strong{border-color:color-mix(in srgb,var(--coral) 46%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--coral-soft) 58%,var(--surface)),var(--surface));}
.break-active-copy{min-width:0;}
.break-active-copy strong{display:block;font-size:13px;color:var(--heading);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.break-active-copy small{display:block;margin-top:2px;font-size:11.5px;font-weight:650;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.break-active-total{text-align:right;white-space:nowrap;}
.break-active-total b{display:block;font-family:'Bricolage Grotesque',sans-serif;font-size:18px;color:var(--amber-ink);font-variant-numeric:tabular-nums;line-height:1;}
.break-active-total span{font-size:9.5px;font-weight:850;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
.break-empty{padding:12px;border:1px dashed var(--line-2);border-radius:var(--r-sm);background:var(--surface);color:var(--muted);font-size:12.5px;font-weight:650;text-align:center;}
.break-empty-light{background:var(--surface-2);}
.break-own-card{grid-template-columns:1fr auto;margin-top:10px;background:linear-gradient(135deg,color-mix(in srgb,var(--green-soft) 60%,var(--surface)),var(--surface));border-color:color-mix(in srgb,var(--green) 24%,var(--line));}
.break-own-card.is-maxed{background:linear-gradient(135deg,color-mix(in srgb,var(--coral-soft) 44%,var(--surface)),var(--surface));border-color:color-mix(in srgb,var(--coral) 28%,var(--line));}
.break-own-card span,.break-own-card small{display:block;color:var(--ink-2);font-size:11.5px;font-weight:700;}
.break-own-card b{font-family:'Bricolage Grotesque',sans-serif;font-size:22px;color:var(--heading);font-variant-numeric:tabular-nums;}
.break-table-wrap{margin-top:13px;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;background:var(--surface);}
.break-table-head,.break-table-row{display:grid;grid-template-columns:minmax(150px,1.4fr) .75fr .55fr .75fr 1fr;gap:10px;align-items:center;padding:9px 12px;}
.break-table-head{background:var(--surface-2);font-size:10px;font-weight:850;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;}
.break-table-row{width:100%;border:0;border-top:1px solid var(--line);background:var(--surface);font-family:inherit;font-size:12.5px;font-weight:650;color:var(--ink-2);text-align:left;cursor:pointer;transition:background var(--t-fast);}
.break-table-row:hover{background:var(--blue-mist);}
.break-table-row.is-break{background:color-mix(in srgb,var(--amber-soft) 48%,var(--surface));}
.break-table-row.is-strong{background:color-mix(in srgb,var(--coral-soft) 54%,var(--surface));}
.break-person{display:flex;align-items:center;gap:8px;min-width:0;color:var(--heading);}
.break-person b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.break-drawer-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:16px;}
.break-drawer-summary>div{padding:12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);}
.break-drawer-summary span{display:block;font-size:10px;font-weight:850;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:5px;}
.break-drawer-summary b{font-family:'Bricolage Grotesque',sans-serif;font-size:20px;color:var(--heading);font-variant-numeric:tabular-nums;}
.break-drawer-summary.is-active>div{background:color-mix(in srgb,var(--amber-soft) 55%,var(--surface));border-color:color-mix(in srgb,var(--amber) 24%,var(--line));}
.break-drawer-summary.is-strong>div{background:color-mix(in srgb,var(--coral-soft) 52%,var(--surface));border-color:color-mix(in srgb,var(--coral) 24%,var(--line));}
.break-session-list{display:grid;gap:8px;margin-top:8px;}
.break-session{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);}
.break-session.is-active{border-color:color-mix(in srgb,var(--amber) 34%,var(--line));background:color-mix(in srgb,var(--amber-soft) 58%,var(--surface));}
.break-session b{display:block;font-size:13px;color:var(--heading);}
.break-session span{display:block;margin-top:2px;font-size:11.5px;color:var(--muted);font-weight:650;}
.break-session strong{font-family:'Bricolage Grotesque',sans-serif;font-size:17px;color:var(--heading);font-variant-numeric:tabular-nums;white-space:nowrap;}
.break-note{border-left-color:var(--amber);background:color-mix(in srgb,var(--amber-soft) 64%,var(--surface));}
.break-allowance-line{display:flex;gap:8px;flex-wrap:wrap;margin:-4px 0 12px;}
.break-allowance-line span{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface-2);padding:5px 9px;font-size:11px;font-weight:750;color:var(--ink-2);}
.break-drawer-actions{display:flex;justify-content:flex-end;margin:0 0 12px;}
.break-override-list{display:grid;gap:7px;margin:7px 0 14px;}
.break-override-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid color-mix(in srgb,var(--green) 22%,var(--line));border-radius:var(--r-sm);background:color-mix(in srgb,var(--green-soft) 44%,var(--surface));padding:9px 10px;}
.break-override-row b{display:block;font-size:13px;color:var(--heading);}
.break-override-row span{display:block;margin-top:2px;font-size:11.5px;font-weight:650;color:var(--ink-2);}
.break-override-row small{font-size:10.5px;font-weight:750;color:var(--muted);white-space:nowrap;}
@media (max-width:760px){.break-metrics{grid-template-columns:repeat(2,minmax(0,1fr));}.break-table-head{display:none;}.break-table-row{grid-template-columns:1fr auto;gap:6px;}.break-table-row>span:nth-child(3),.break-table-row>span:nth-child(5){display:none;}.break-drawer-summary{grid-template-columns:1fr;}.break-actions{justify-content:flex-start;}}

/* =============================================================================
   METRICS
   ============================================================================= */
/* =============================================================================
   DASHBOARD GRID + shared blocks
   ============================================================================= */
.dash-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:22px;align-items:start;}
@media (max-width:980px){.dash-grid{grid-template-columns:1fr;}}
.block-title{font-family:'Bricolage Grotesque',sans-serif;font-size:16px;font-weight:600;color:var(--heading);letter-spacing:-.015em;margin-bottom:4px;}
.block-sub{font-size:12px;color:var(--muted);font-weight:450;margin-bottom:12px;}
.topbar .sub:empty,.block-sub:empty,.card-head .cs:empty{display:none;}
.catload{display:flex;flex-direction:column;gap:2px;}
.catload-row{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:12px;padding:13px 6px;border-bottom:1px solid var(--line);transition:background var(--t-fast);}
.catload-row:hover{background:var(--blue-mist);}
.catload-row:last-child{border-bottom:none;}
.catload-dot{width:11px;height:11px;border-radius:4px;}
.catload-name{font-size:13.5px;font-weight:600;color:var(--ink);}
.catload-bar{height:6px;border-radius:4px;background:var(--surface-2);overflow:hidden;margin-top:6px;}
.catload-fill{height:100%;border-radius:4px;transition:width var(--t-slow) var(--ease-out);}
.catload-num{font-family:'Bricolage Grotesque',sans-serif;font-size:19px;font-weight:700;color:var(--heading);font-variant-numeric:tabular-nums;}
.side-block{background:var(--surface-panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;box-shadow:var(--sh-sm);transition:border-color var(--t-fast),box-shadow var(--t-fast),transform var(--t-fast);}
.side-block:hover{border-color:var(--line-2);box-shadow:var(--sh);transform:translateY(-.5px);}
.side-block+.side-block{margin-top:22px;}
.dashboard-birthday-alert{display:flex;align-items:center;gap:14px;margin:0 0 14px;padding:10px 12px;border:1px solid #ddd7f4;border-radius:13px;background:linear-gradient(105deg,#fbf9ff,#fffafd);box-shadow:0 12px 24px -24px rgba(68,51,125,.42);}
.dashboard-birthday-alert[hidden]{display:none;}
.dashboard-birthday-alert-label{display:grid;gap:3px;min-width:126px;padding-right:12px;border-right:1px solid #e5dff2;}
.dashboard-birthday-alert-label span{color:#7447ee;font-size:9px;font-weight:900;line-height:1;text-transform:uppercase;letter-spacing:.055em;}
.dashboard-birthday-alert-label b{color:#0b2041;font-size:12px;font-weight:900;line-height:1.15;}
.dashboard-birthday-alert-people{display:flex;flex:1;align-items:center;gap:8px;min-width:0;overflow-x:auto;scrollbar-width:thin;}
.dashboard-birthday-person{display:flex;align-items:center;gap:7px;min-width:174px;padding:5px 7px;border:1px solid transparent;border-radius:9px;background:rgba(255,255,255,.72);color:inherit;font-family:inherit;text-align:left;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;}
.dashboard-birthday-person:hover{transform:translateY(-1px);border-color:#d5c8fa;box-shadow:0 9px 16px -15px rgba(80,57,163,.55);}
.dashboard-birthday-person:focus-visible{outline:2px solid #7447ee;outline-offset:2px;}
.dashboard-birthday-person .avatar{width:30px;height:30px;}
.dashboard-birthday-person span{display:grid;gap:2px;min-width:0;}
.dashboard-birthday-person b{color:#0b2041;font-size:11px;font-weight:900;line-height:1.1;}
.dashboard-birthday-person small{color:#657995;font-size:9.5px;font-weight:700;line-height:1.15;}
.dashboard-birthday-person em{margin-left:auto;color:#7447ee;font-size:9px;font-style:normal;font-weight:900;white-space:nowrap;}
/* Birthday Center */
.birthday-center{margin:-4px 0 18px;padding:0;border:1px solid color-mix(in srgb,#D47CB3 26%,var(--line));border-radius:var(--r-lg);background:linear-gradient(135deg,#fff 0%,color-mix(in srgb,#E8F3FA 48%,#fff) 42%,color-mix(in srgb,#FFF1C7 45%,#fff) 100%);box-shadow:var(--sh);position:relative;overflow:hidden;isolation:isolate;}
.birthday-center::before{content:"";position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(90deg,#5FA2DF,#D47CB3,#F0B84E,#4FAE83,#EC6A63);z-index:7;}
.birthday-center.is-celebrating{border-color:color-mix(in srgb,#D47CB3 46%,var(--line));box-shadow:0 22px 58px -42px rgba(96,49,104,.52),var(--sh);}
.birthday-center-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:19px 20px 0;position:relative;z-index:8;}
.birthday-kicker,.birthday-subhead{display:inline-flex;align-items:center;gap:7px;color:#8B4E85;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;}
.birthday-center h4{font-family:'Bricolage Grotesque',sans-serif;font-size:20px;line-height:1.05;color:var(--heading);letter-spacing:0;}
.birthday-center-head p{margin:6px 0 0;color:var(--ink-2);font-size:13px;font-weight:650;line-height:1.35;}
.birthday-missing-note{border:1px solid color-mix(in srgb,#D47CB3 26%,var(--line));background:var(--surface);color:#7D466F;border-radius:var(--r-pill);padding:7px 11px;font-size:12px;font-weight:750;cursor:pointer;}
.birthday-today-grid{position:relative;z-index:4;padding:16px 16px 0;}
.birthday-spotlight{display:grid;grid-template-columns:minmax(360px,1.08fr) minmax(300px,.92fr);gap:14px;align-items:stretch;}
.birthday-party-scene{position:relative;min-height:286px;border-radius:18px;overflow:hidden;background:radial-gradient(circle at 72% 20%,rgba(255,255,255,.2),transparent 23%),linear-gradient(135deg,#143A60 0%,#265D88 38%,#8B4E85 72%,#E6A64B 100%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.24),0 18px 40px -30px rgba(12,39,64,.74);color:#fff;}
.birthday-party-scene::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.13) 1px,transparent 1px),linear-gradient(180deg,rgba(255,255,255,.1) 1px,transparent 1px);background-size:42px 42px;opacity:.3;mask-image:linear-gradient(180deg,#000,transparent 78%);}
.birthday-party-scene::after{content:"";position:absolute;inset:auto 0 0;height:70px;background:linear-gradient(180deg,transparent,rgba(7,24,42,.22));}
.birthday-marquee-lights{position:absolute;left:14px;right:14px;top:13px;display:flex;justify-content:space-between;z-index:5;pointer-events:none;}
.birthday-marquee-lights i{width:6px;height:6px;border-radius:50%;background:#FFE18A;box-shadow:0 0 14px #FFE18A;opacity:.28;animation:birthdayLightBlink 2.8s ease-in-out infinite;animation-delay:calc(var(--i) * .12s);}
.birthday-marquee-lights i:nth-child(3n){background:#8FD2FF;box-shadow:0 0 14px #8FD2FF;}
.birthday-marquee-lights i:nth-child(3n+1){background:#FFB8D9;box-shadow:0 0 14px #FFB8D9;}
.birthday-streamers{position:absolute;inset:0;pointer-events:none;z-index:2;}
.birthday-streamers i{position:absolute;top:-36px;width:160px;height:92px;border:8px solid transparent;border-bottom-color:rgba(255,255,255,.58);border-radius:50%;animation:birthdayStreamer 5.2s ease-in-out infinite;}
.birthday-streamers i:nth-child(1){left:-24px;border-bottom-color:#F0B84E;}
.birthday-streamers i:nth-child(2){left:22%;border-bottom-color:#8FD2FF;animation-delay:.5s;}
.birthday-streamers i:nth-child(3){right:19%;border-bottom-color:#FF9FCF;animation-delay:1s;}
.birthday-streamers i:nth-child(4){right:-36px;border-bottom-color:#87DFAF;animation-delay:1.4s;}
.birthday-confetti-rain{position:absolute;inset:0;z-index:4;pointer-events:none;overflow:hidden;}
.birthday-confetti-rain i{position:absolute;top:-18px;left:calc((var(--i) * 5.8%) + 2%);width:6px;height:14px;border-radius:3px;background:#fff;opacity:.82;animation:birthdayRain 3.6s linear infinite;animation-delay:calc(var(--i) * -.17s);}
.birthday-confetti-rain i:nth-child(3n){background:#F0B84E;border-radius:50%;}
.birthday-confetti-rain i:nth-child(3n+1){background:#86D5FF;}
.birthday-confetti-rain i:nth-child(3n+2){background:#FF9FCF;}
.birthday-balloon-field i{position:absolute;width:34px;height:44px;border-radius:50% 50% 46% 46%;z-index:3;box-shadow:inset -8px -10px 0 rgba(0,0,0,.12);animation:birthdayBalloon 4.5s ease-in-out infinite;}
.birthday-balloon-field i::after{content:"";position:absolute;left:50%;top:42px;width:1px;height:58px;background:rgba(255,255,255,.5);}
.birthday-balloon-field .b1{right:42px;top:48px;background:#F0B84E;}
.birthday-balloon-field .b2{right:92px;top:32px;background:#79C6F2;animation-delay:.8s;}
.birthday-balloon-field .b3{right:134px;top:70px;background:#FF9FCF;animation-delay:1.45s;}
.birthday-stage-lights i{--light-rot:-18deg;position:absolute;bottom:-20px;width:250px;height:230px;background:conic-gradient(from 210deg,rgba(255,255,255,.34),transparent 42%);z-index:1;opacity:.55;transform:rotate(var(--light-rot));animation:birthdayLightSweep 4.4s ease-in-out infinite;}
.birthday-stage-lights i:first-child{left:-64px;--light-rot:-18deg;}
.birthday-stage-lights i:last-child{right:60px;--light-rot:20deg;animation-delay:1s;}
.birthday-stage-floor{position:absolute;left:36%;right:18px;bottom:0;height:74px;z-index:2;display:flex;align-items:flex-end;gap:9px;justify-content:center;opacity:.72;pointer-events:none;}
.birthday-stage-floor i{width:34px;border-radius:9px 9px 0 0;background:linear-gradient(180deg,rgba(255,255,255,.34),rgba(255,255,255,.08));animation:birthdayEqualizer 1.55s ease-in-out infinite;transform-origin:bottom;}
.birthday-stage-floor i:nth-child(1){height:28px;animation-delay:.12s;}
.birthday-stage-floor i:nth-child(2){height:45px;animation-delay:.36s;}
.birthday-stage-floor i:nth-child(3){height:34px;animation-delay:.2s;}
.birthday-stage-floor i:nth-child(4){height:52px;animation-delay:.5s;}
.birthday-party-copy{position:absolute;left:22px;top:26px;width:min(330px,54%);z-index:6;text-shadow:0 1px 16px rgba(0,0,0,.18);}
.birthday-live-pill{display:inline-flex;align-items:center;border-radius:var(--r-pill);background:rgba(255,255,255,.9);color:#173A5C;padding:6px 10px;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.05em;box-shadow:0 10px 24px -18px rgba(7,24,42,.8);}
.birthday-party-copy h5{font-family:'Bricolage Grotesque',sans-serif;font-size:34px;line-height:.95;margin:12px 0 8px;color:#fff;letter-spacing:0;}
.birthday-party-copy p{font-size:13.5px;font-weight:700;line-height:1.45;color:rgba(255,255,255,.9);max-width:260px;}
.birthday-party-stats{display:inline-flex;align-items:center;gap:8px;margin-top:13px;border-radius:14px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);padding:8px 11px;backdrop-filter:blur(6px);}
.birthday-party-stats b{font-family:'Bricolage Grotesque',sans-serif;font-size:24px;line-height:1;color:#fff;}
.birthday-party-stats span{font-size:11px;font-weight:850;color:rgba(255,255,255,.88);}
.birthday-today-action{margin-top:14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.birthday-primary{border:1px solid rgba(255,255,255,.26);background:linear-gradient(135deg,#173A5C,#255B86);color:white;border-radius:var(--r-pill);padding:10px 14px;font-size:12px;font-weight:900;cursor:pointer;box-shadow:0 18px 34px -22px rgba(16,44,73,.95);transition:transform var(--t-fast),box-shadow var(--t-fast),background var(--t-fast);}
.birthday-primary:hover{transform:translateY(-2px);box-shadow:0 20px 34px -20px rgba(16,44,73,.95);}
.birthday-primary.is-success{background:linear-gradient(135deg,#2E9D6B,#4FAE83);border-color:#2E9D6B;animation:birthdayButtonPop .42s var(--ease-out);}
.birthday-edit-cta{background:linear-gradient(135deg,#7D466F,#B96A9E);}
.birthday-celebrant-marquee{position:absolute;right:30px;bottom:22px;z-index:7;display:grid;justify-items:center;gap:4px;width:138px;padding:14px 12px 12px;border:1px solid rgba(255,255,255,.26);border-radius:18px;background:rgba(255,255,255,.14);backdrop-filter:blur(9px);box-shadow:0 16px 34px -24px rgba(7,24,42,.8);}
.birthday-celebrant-marquee strong{font-size:16px;color:#fff;line-height:1.1;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.birthday-celebrant-marquee small{font-size:10.5px;color:rgba(255,255,255,.78);font-weight:800;}
.birthday-avatar-orbit{position:relative;width:78px;height:78px;display:grid;place-items:center;}
.birthday-avatar-orbit .avatar{width:72px;height:72px;}
.birthday-avatar-orbit>span{position:absolute;inset:0;border:1px solid rgba(255,255,255,.5);border-radius:50%;animation:birthdayOrbit 2.8s ease-in-out infinite;}
.birthday-avatar-orbit>span:last-child{inset:-7px;border-color:rgba(240,184,78,.58);animation-delay:.55s;}
.birthday-cake{position:absolute;left:47%;bottom:22px;width:92px;height:78px;z-index:5;filter:drop-shadow(0 12px 18px rgba(7,24,42,.22));}
.birthday-cake .base{position:absolute;left:5px;right:5px;bottom:0;height:38px;border-radius:12px 12px 8px 8px;background:linear-gradient(180deg,#fff,#FFD8E9 45%,#EC6A63 46% 58%,#FFD8E9 59%);box-shadow:inset 0 -7px 0 rgba(139,78,133,.14);}
.birthday-cake .top{position:absolute;left:13px;right:13px;bottom:34px;height:22px;border-radius:12px 12px 7px 7px;background:linear-gradient(180deg,#FFF7D6,#F0B84E);}
.birthday-cake .candle{position:absolute;left:43px;bottom:55px;width:8px;height:22px;border-radius:5px;background:repeating-linear-gradient(45deg,#fff 0 4px,#5FA2DF 4px 8px);}
.birthday-cake .flame{position:absolute;left:41px;bottom:76px;width:12px;height:16px;border-radius:50% 50% 50% 0;background:#FFE18A;transform:rotate(-35deg);box-shadow:0 0 18px #F0B84E;animation:birthdayFlame .8s ease-in-out infinite alternate;}
.birthday-gift{position:absolute;right:194px;bottom:23px;width:54px;height:52px;z-index:5;background:linear-gradient(90deg,#5FA2DF 0 38%,#F0B84E 39% 52%,#5FA2DF 53%);border-radius:9px;box-shadow:0 12px 20px -14px rgba(7,24,42,.8);}
.birthday-gift::before{content:"";position:absolute;left:-4px;right:-4px;top:-10px;height:14px;border-radius:8px;background:linear-gradient(90deg,#4FAE83 0 38%,#F0B84E 39% 52%,#4FAE83 53%);}
.birthday-gift span::before,.birthday-gift span::after{content:"";position:absolute;top:-25px;width:24px;height:18px;border:5px solid #F0B84E;border-radius:50% 50% 0 50%;}
.birthday-gift span::before{left:4px;transform:rotate(-28deg);}
.birthday-gift span::after{right:4px;transform:rotate(28deg) scaleX(-1);}
.birthday-crowd{position:absolute;left:22px;right:22px;bottom:6px;height:24px;z-index:4;display:flex;align-items:flex-end;gap:7px;opacity:.42;pointer-events:none;}
.birthday-crowd i{width:15px;height:15px;border-radius:50% 50% 45% 45%;background:rgba(255,255,255,.58);box-shadow:0 10px 0 -3px rgba(255,255,255,.3);animation:birthdayCrowd 1.9s ease-in-out infinite;}
.birthday-crowd i:nth-child(2){animation-delay:.18s;}
.birthday-crowd i:nth-child(3){animation-delay:.34s;}
.birthday-crowd i:nth-child(4){animation-delay:.5s;}
.birthday-crowd i:nth-child(5){animation-delay:.66s;}
.birthday-notes i{position:absolute;z-index:6;width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,255,255,.76);border-left-color:transparent;border-bottom-color:transparent;animation:birthdayNote 3s ease-in-out infinite;}
.birthday-notes i::after{content:"";position:absolute;right:-5px;bottom:-9px;width:2px;height:18px;border-radius:2px;background:currentColor;color:rgba(255,255,255,.76);}
.birthday-notes i:nth-child(1){left:54%;top:70px;color:#fff;}
.birthday-notes i:nth-child(2){right:245px;top:104px;animation-delay:.8s;color:#FFE18A;border-color:#FFE18A;border-left-color:transparent;border-bottom-color:transparent;}
.birthday-notes i:nth-child(3){right:180px;top:54px;animation-delay:1.4s;color:#FFB8D9;border-color:#FFB8D9;border-left-color:transparent;border-bottom-color:transparent;}
.birthday-wall{position:relative;display:flex;flex-direction:column;min-height:286px;border:1px solid color-mix(in srgb,#D47CB3 20%,var(--line));border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(255,255,255,.72));box-shadow:inset 0 1px 0 rgba(255,255,255,.72),0 16px 32px -28px rgba(96,49,104,.42);padding:14px;overflow:hidden;}
.birthday-wall::after{content:"";position:absolute;right:18px;bottom:15px;width:150px;height:100px;background:radial-gradient(circle at 18% 22%,rgba(95,162,223,.16) 0 6px,transparent 7px),radial-gradient(circle at 74% 34%,rgba(212,124,179,.16) 0 7px,transparent 8px),radial-gradient(circle at 45% 78%,rgba(240,184,78,.18) 0 9px,transparent 10px),linear-gradient(135deg,transparent 42%,rgba(79,174,131,.12) 43% 47%,transparent 48%);opacity:.88;pointer-events:none;transform:rotate(-5deg);}
.birthday-wall-glow{position:absolute;right:-54px;top:-66px;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgba(240,184,78,.24),transparent 66%);pointer-events:none;}
.birthday-wall-head{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;}
.birthday-wall-head span{display:block;color:#8B4E85;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.06em;}
.birthday-wall-head b{display:block;color:var(--heading);font-size:15px;margin-top:2px;}
.birthday-wall-head button,.birthday-edit-greeting{border:1px solid color-mix(in srgb,#D47CB3 28%,var(--line));background:#fff;color:#74406E;border-radius:var(--r-pill);padding:6px 10px;font-size:11px;font-weight:900;cursor:pointer;}
.birthday-wall-meter{position:relative;z-index:1;margin:-2px 0 10px;display:grid;gap:5px;}
.birthday-wall-meter>div{height:8px;border-radius:var(--r-pill);background:color-mix(in srgb,#E8F3FA 72%,#fff);border:1px solid color-mix(in srgb,#5FA2DF 16%,var(--line));overflow:hidden;box-shadow:inset 0 1px 2px rgba(12,39,64,.06);}
.birthday-wall-meter span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#5FA2DF,#D47CB3,#F0B84E);box-shadow:0 0 18px rgba(212,124,179,.3);transition:width .5s var(--ease-out);}
.birthday-wall-meter small{font-size:11.5px;font-weight:750;color:#7D466F;}
.birthday-greeting-list{position:relative;z-index:1;display:grid;gap:8px;overflow:auto;padding-right:2px;}
.birthday-greeting-list.compact{margin:0;}
.birthday-greeting-row{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:start;gap:9px;padding:10px;border:1px solid color-mix(in srgb,#D47CB3 16%,var(--line));border-radius:13px;background:rgba(255,255,255,.78);box-shadow:0 8px 18px -18px rgba(12,39,64,.42);}
.birthday-greeting-row.is-mine{background:linear-gradient(135deg,#fff,color-mix(in srgb,#E8F3FA 46%,#fff));border-color:color-mix(in srgb,#5FA2DF 24%,var(--line));}
.birthday-greeting-list.compact .birthday-greeting-row{animation:birthdayMessageIn .36s var(--ease-out) backwards;animation-delay:calc(var(--birthday-row,0) * .055s);}
.birthday-greeting-top{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.birthday-greeting-row b{display:block;color:var(--heading);font-size:12.5px;line-height:1.2;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.birthday-greeting-stamp{display:block;margin-top:2px;color:var(--muted);font-size:9.5px;font-weight:750;line-height:1.2;}
.birthday-greeting-row p{margin:3px 0 0;color:var(--ink-2);font-size:12.4px;line-height:1.42;overflow-wrap:anywhere;}
.birthday-edit-greeting{padding:4px 9px;font-size:10px;flex-shrink:0;}
.birthday-empty{padding:12px;border:1px dashed color-mix(in srgb,#D47CB3 24%,var(--line));border-radius:13px;color:var(--muted);font-size:12.5px;font-weight:700;background:rgba(255,255,255,.55);}
.birthday-wall-empty{display:grid;place-items:center;text-align:center;min-height:160px;}
.birthday-next-card{position:relative;z-index:4;margin:16px 16px 0;display:flex;align-items:center;gap:12px;padding:15px;border:1px solid color-mix(in srgb,#5FA2DF 22%,var(--line));border-radius:18px;background:linear-gradient(135deg,#fff,color-mix(in srgb,#E8F3FA 62%,#fff));overflow:hidden;}
.birthday-mini-scene{position:absolute;right:18px;top:0;bottom:0;width:150px;pointer-events:none;opacity:.8;}
.birthday-mini-scene i{position:absolute;border-radius:50%;animation:birthdayBalloon 4.4s ease-in-out infinite;}
.birthday-mini-scene i:nth-child(1){right:18px;top:19px;width:28px;height:36px;background:#F0B84E;}
.birthday-mini-scene i:nth-child(2){right:68px;top:32px;width:22px;height:30px;background:#D47CB3;animation-delay:.7s;}
.birthday-mini-scene i:nth-child(3){right:104px;top:16px;width:24px;height:32px;background:#5FA2DF;animation-delay:1.25s;}
.birthday-next-card>div:not(.birthday-mini-scene),.birthday-next-card>.avatar{position:relative;z-index:2;}
.birthday-next-card span{display:block;color:#2B6A98;font-size:10.5px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px;}
.birthday-next-card b{display:block;color:var(--heading);font-size:16px;font-weight:850;line-height:1.1;margin:0;}
.birthday-next-card small{display:block;color:var(--ink-2);font-size:12.5px;font-weight:600;line-height:1.35;margin:3px 0 0;}
.birthday-countdown-orb{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,#173A5C,#5FA2DF);color:#fff;box-shadow:0 13px 24px -18px rgba(12,39,64,.88);flex-shrink:0;}
.birthday-countdown-orb b{font-family:'Bricolage Grotesque',sans-serif;color:#fff;font-size:19px;line-height:1;}
.birthday-countdown-orb span{color:rgba(255,255,255,.84);font-size:9px;margin:0;text-transform:uppercase;font-weight:900;}
.birthday-upcoming{position:relative;z-index:4;padding:14px 16px 16px;display:grid;gap:8px;}
.birthday-upcoming-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;}
.birthday-upcoming-row{position:relative;display:grid;grid-template-columns:10px 30px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border:1px solid color-mix(in srgb,var(--blue) 10%,var(--line));border-radius:14px;background:rgba(255,255,255,.66);overflow:hidden;transition:transform var(--t-fast),border-color var(--t-fast),box-shadow var(--t-fast);}
.birthday-upcoming-row:hover{transform:translateY(-1px);border-color:color-mix(in srgb,#5FA2DF 28%,var(--line));box-shadow:0 12px 22px -20px rgba(12,39,64,.42);}
.birthday-upcoming-dot{width:8px;height:8px;border-radius:50%;background:#D47CB3;box-shadow:0 0 0 4px rgba(212,124,179,.12);}
.birthday-upcoming-row b{display:block;font-size:13px;color:var(--heading);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.birthday-upcoming-row small,.birthday-upcoming-row>span:last-child{font-size:11.5px;color:var(--muted);font-weight:750;}
.va-birthday-row{margin-top:7px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.birthday-chip{display:inline-flex;align-items:center;gap:6px;min-height:24px;border:1px solid color-mix(in srgb,#D47CB3 20%,var(--line));border-radius:var(--r-pill);background:color-mix(in srgb,#F9E8F2 64%,var(--surface));color:#74406E;padding:4px 8px;font-size:11px;font-weight:800;line-height:1;white-space:nowrap;}
.birthday-chip time{padding-left:6px;border-left:1px solid color-mix(in srgb,currentColor 22%,transparent);font-style:normal;font-variant-numeric:tabular-nums;}
.birthday-chip.is-today{background:linear-gradient(135deg,#173A5C,#8B4E85);border-color:transparent;color:white;box-shadow:0 10px 18px -16px rgba(22,44,73,.8);}
.birthday-chip.is-missing{background:var(--surface-2);color:var(--muted);border-style:dashed;}
.birthday-chip-mark{width:8px;height:8px;border-radius:3px;background:#D47CB3;box-shadow:0 0 0 3px rgba(212,124,179,.13);}
.birthday-chip.is-today .birthday-chip-mark{background:#F0B84E;}
@keyframes birthdayStreamer{0%,100%{transform:translateY(0) rotate(-4deg);}50%{transform:translateY(8px) rotate(4deg);}}
@keyframes birthdayRain{0%{opacity:0;transform:translateY(-22px) rotate(0deg);}10%{opacity:.9;}100%{opacity:0;transform:translateY(330px) rotate(260deg);}}
@keyframes birthdayBalloon{0%,100%{transform:translateY(0) rotate(-2deg);}50%{transform:translateY(-13px) rotate(3deg);}}
@keyframes birthdayLightBlink{0%,100%{opacity:.28;transform:scale(.84);}44%{opacity:.92;transform:scale(1.2);}}
@keyframes birthdayLightSweep{0%,100%{opacity:.38;transform:rotate(var(--light-rot)) translateX(0);}50%{opacity:.72;transform:rotate(var(--light-rot)) translateX(20px);}}
@keyframes birthdayEqualizer{0%,100%{transform:scaleY(.62);opacity:.38;}50%{transform:scaleY(1);opacity:.88;}}
@keyframes birthdayOrbit{0%,100%{opacity:.34;transform:scale(.92);}50%{opacity:.95;transform:scale(1.08);}}
@keyframes birthdayFlame{from{transform:rotate(-35deg) scale(.86);}to{transform:rotate(-28deg) scale(1.14);}}
@keyframes birthdayCrowd{0%,100%{transform:translateY(0);}45%{transform:translateY(-5px);}}
@keyframes birthdayNote{0%,100%{opacity:.26;transform:translateY(10px) rotate(-8deg);}45%{opacity:1;transform:translateY(-18px) rotate(8deg);}}
@keyframes birthdayMessageIn{from{opacity:0;transform:translateY(8px) scale(.985);}to{opacity:1;transform:none;}}
@keyframes birthdayButtonPop{0%{transform:scale(.94);}62%{transform:scale(1.06);}100%{transform:scale(1);}}
@media (max-width:900px){.birthday-spotlight{grid-template-columns:1fr;}.birthday-party-scene,.birthday-wall{min-height:auto;}.birthday-party-scene{min-height:300px;}}
@media (max-width:640px){.birthday-center-head{align-items:stretch;flex-direction:column;}.birthday-party-scene{min-height:360px;}.birthday-party-copy{left:16px;top:20px;width:calc(100% - 32px);}.birthday-party-copy h5{font-size:28px;max-width:275px;}.birthday-party-copy p{max-width:230px;}.birthday-balloon-field{opacity:.68;}.birthday-balloon-field .b1{right:18px;top:116px;}.birthday-balloon-field .b2{right:56px;top:96px;}.birthday-balloon-field .b3{right:96px;top:132px;}.birthday-stage-floor{left:42%;right:8px;height:58px;}.birthday-stage-floor i{width:22px;}.birthday-celebrant-marquee{right:16px;bottom:16px;width:126px;}.birthday-cake{left:20px;bottom:18px;}.birthday-gift{right:156px;bottom:20px;}.birthday-crowd{left:18px;right:auto;width:110px;}.birthday-notes i:nth-child(2){right:188px;}.birthday-notes i:nth-child(3){right:146px;}.birthday-today-action{justify-content:flex-start;min-width:0;}.birthday-upcoming-list{grid-template-columns:1fr;}.birthday-upcoming-row{grid-template-columns:10px 30px minmax(0,1fr);}.birthday-upcoming-row>span:last-child{grid-column:3;}}

[data-theme="dark"] .birthday-center{background:radial-gradient(760px 360px at 82% 0%,rgba(240,184,78,.13),transparent 58%),radial-gradient(620px 340px at 0% 6%,rgba(212,124,179,.18),transparent 62%),linear-gradient(135deg,color-mix(in srgb,var(--surface) 86%,#8B4E85) 0%,color-mix(in srgb,var(--surface) 82%,#173A5C) 48%,color-mix(in srgb,var(--surface-2) 84%,#7D466F) 100%);border-color:color-mix(in srgb,#D47CB3 38%,var(--line));box-shadow:var(--sh),0 22px 58px -42px rgba(212,124,179,.44),inset 0 1px 0 rgba(255,255,255,.05);}
[data-theme="dark"] .birthday-center.is-celebrating{border-color:color-mix(in srgb,#F4A6D4 58%,var(--line));box-shadow:var(--sh),0 26px 70px -42px rgba(244,166,212,.52),0 0 0 1px rgba(240,184,78,.12);}
[data-theme="dark"] .birthday-kicker,[data-theme="dark"] .birthday-subhead,[data-theme="dark"] .birthday-wall-head span{color:#F4A6D4;text-shadow:0 0 18px rgba(212,124,179,.18);}
[data-theme="dark"] .birthday-center h4,[data-theme="dark"] .birthday-wall-head b,[data-theme="dark"] .birthday-greeting-row b,[data-theme="dark"] .birthday-next-card b,[data-theme="dark"] .birthday-upcoming-row b{color:#F5F9FE;}
[data-theme="dark"] .birthday-center-head p,[data-theme="dark"] .birthday-greeting-row p,[data-theme="dark"] .birthday-next-card small,[data-theme="dark"] .birthday-upcoming-row small,[data-theme="dark"] .birthday-upcoming-row>span:last-child{color:#C3D3E3;}
[data-theme="dark"] .birthday-missing-note{background:color-mix(in srgb,var(--surface-2) 82%,#8B4E85);color:#FFD5EB;border-color:color-mix(in srgb,#D47CB3 42%,var(--line));box-shadow:0 12px 28px -24px rgba(212,124,179,.48);}
[data-theme="dark"] .birthday-party-scene{background:radial-gradient(circle at 72% 18%,rgba(255,225,138,.2),transparent 22%),linear-gradient(135deg,#07182A 0%,#153A5E 36%,#74406E 72%,#B97817 100%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18),0 22px 48px -32px rgba(0,0,0,.86);}
[data-theme="dark"] .birthday-party-scene::before{opacity:.42;background:linear-gradient(90deg,rgba(255,255,255,.15) 1px,transparent 1px),linear-gradient(180deg,rgba(255,255,255,.12) 1px,transparent 1px);background-size:42px 42px;}
[data-theme="dark"] .birthday-party-scene::after{height:86px;background:linear-gradient(180deg,transparent,rgba(3,11,20,.62));}
[data-theme="dark"] .birthday-live-pill{background:rgba(245,249,254,.94);color:#102438;box-shadow:0 12px 28px -18px rgba(0,0,0,.82);}
[data-theme="dark"] .birthday-party-copy{text-shadow:0 2px 18px rgba(0,0,0,.45);}
[data-theme="dark"] .birthday-party-copy p,[data-theme="dark"] .birthday-party-stats span{color:rgba(245,249,254,.94);}
[data-theme="dark"] .birthday-party-stats,[data-theme="dark"] .birthday-celebrant-marquee{background:rgba(245,249,254,.16);border-color:rgba(245,249,254,.28);box-shadow:0 18px 36px -26px rgba(0,0,0,.88);}
[data-theme="dark"] .birthday-primary{background:linear-gradient(135deg,#2A6FB5,#8B4E85);border-color:rgba(245,249,254,.22);box-shadow:0 18px 36px -23px rgba(95,162,223,.64);}
[data-theme="dark"] .birthday-primary:hover{box-shadow:0 20px 40px -22px rgba(212,124,179,.64);}
[data-theme="dark"] .birthday-edit-cta{background:linear-gradient(135deg,#9D4E86,#D47CB3);color:#fff;}
[data-theme="dark"] .birthday-marquee-lights i{opacity:.56;filter:saturate(1.25) drop-shadow(0 0 8px currentColor);}
[data-theme="dark"] .birthday-streamers i{filter:drop-shadow(0 0 10px rgba(255,255,255,.18));opacity:.95;}
[data-theme="dark"] .birthday-confetti-rain i{opacity:.96;filter:drop-shadow(0 0 8px rgba(255,255,255,.16));}
[data-theme="dark"] .birthday-balloon-field i::after{background:rgba(245,249,254,.64);}
[data-theme="dark"] .birthday-stage-lights i{opacity:.78;background:conic-gradient(from 210deg,rgba(245,249,254,.42),transparent 42%);}
[data-theme="dark"] .birthday-stage-floor{opacity:.86;}
[data-theme="dark"] .birthday-stage-floor i{background:linear-gradient(180deg,rgba(245,249,254,.42),rgba(125,178,230,.12));box-shadow:0 0 18px rgba(125,178,230,.12);}
[data-theme="dark"] .birthday-avatar-orbit>span{border-color:rgba(245,249,254,.62);}
[data-theme="dark"] .birthday-avatar-orbit>span:last-child{border-color:rgba(255,225,138,.72);}
[data-theme="dark"] .birthday-crowd{opacity:.62;}
[data-theme="dark"] .birthday-crowd i{background:rgba(245,249,254,.72);box-shadow:0 10px 0 -3px rgba(245,249,254,.34);}
[data-theme="dark"] .birthday-notes i{border-color:rgba(245,249,254,.86);border-left-color:transparent;border-bottom-color:transparent;}
[data-theme="dark"] .birthday-notes i::after{color:rgba(245,249,254,.86);}
[data-theme="dark"] .birthday-wall{background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 90%,#8B4E85),color-mix(in srgb,var(--surface-2) 86%,#173A5C));border-color:color-mix(in srgb,#D47CB3 36%,var(--line));box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 18px 38px -28px rgba(0,0,0,.82);}
[data-theme="dark"] .birthday-wall::after{opacity:.72;filter:saturate(1.35) brightness(1.08);}
[data-theme="dark"] .birthday-wall-glow{background:radial-gradient(circle,rgba(212,124,179,.26),transparent 66%);}
[data-theme="dark"] .birthday-wall-head button,[data-theme="dark"] .birthday-edit-greeting{background:color-mix(in srgb,var(--surface-2) 84%,#8B4E85);color:#FFD5EB;border-color:color-mix(in srgb,#D47CB3 42%,var(--line));}
[data-theme="dark"] .birthday-wall-head button:hover,[data-theme="dark"] .birthday-edit-greeting:hover{background:color-mix(in srgb,var(--surface-2) 66%,#D47CB3);color:#fff;}
[data-theme="dark"] .birthday-wall-meter>div{background:color-mix(in srgb,var(--surface-2) 76%,#07182A);border-color:color-mix(in srgb,#5FA2DF 34%,var(--line));box-shadow:inset 0 1px 2px rgba(0,0,0,.34);}
[data-theme="dark"] .birthday-wall-meter span{box-shadow:0 0 20px rgba(212,124,179,.48);}
[data-theme="dark"] .birthday-wall-meter small{color:#FFD5EB;}
[data-theme="dark"] .birthday-greeting-row{background:color-mix(in srgb,var(--surface-2) 82%,#102438);border-color:color-mix(in srgb,#5FA2DF 26%,var(--line));box-shadow:0 12px 24px -20px rgba(0,0,0,.76);}
[data-theme="dark"] .birthday-greeting-row.is-mine{background:linear-gradient(135deg,color-mix(in srgb,var(--surface-2) 86%,#173A5C),color-mix(in srgb,var(--surface-2) 78%,#8B4E85));border-color:color-mix(in srgb,#D47CB3 42%,var(--line));}
[data-theme="dark"] .birthday-empty{background:color-mix(in srgb,var(--surface-2) 78%,#102438);color:#C3D3E3;border-color:color-mix(in srgb,#D47CB3 34%,var(--line));}
[data-theme="dark"] .birthday-next-card{background:linear-gradient(135deg,color-mix(in srgb,var(--surface) 88%,#173A5C),color-mix(in srgb,var(--surface-2) 82%,#102438));border-color:color-mix(in srgb,#5FA2DF 34%,var(--line));box-shadow:0 16px 34px -28px rgba(0,0,0,.8);}
[data-theme="dark"] .birthday-next-card span{color:#8FD2FF;}
[data-theme="dark"] .birthday-mini-scene{opacity:.96;filter:saturate(1.18);}
[data-theme="dark"] .birthday-countdown-orb{background:linear-gradient(135deg,#2A6FB5,#8B4E85);box-shadow:0 14px 28px -18px rgba(95,162,223,.68);}
[data-theme="dark"] .birthday-upcoming-row{background:color-mix(in srgb,var(--surface) 88%,#102438);border-color:color-mix(in srgb,#5FA2DF 24%,var(--line));box-shadow:inset 0 1px 0 rgba(255,255,255,.035);}
[data-theme="dark"] .birthday-upcoming-row:hover{border-color:color-mix(in srgb,#8FD2FF 44%,var(--line));box-shadow:0 15px 28px -22px rgba(0,0,0,.82);}
[data-theme="dark"] .birthday-upcoming-dot{background:#F4A6D4;box-shadow:0 0 0 4px rgba(212,124,179,.18),0 0 14px rgba(212,124,179,.38);}
[data-theme="dark"] .birthday-chip{background:color-mix(in srgb,var(--surface-2) 82%,#8B4E85);color:#FFD5EB;border-color:color-mix(in srgb,#D47CB3 34%,var(--line));}
[data-theme="dark"] .birthday-chip.is-today{background:linear-gradient(135deg,#2A6FB5,#9D4E86);color:#fff;box-shadow:0 12px 20px -15px rgba(95,162,223,.68);}
[data-theme="dark"] .birthday-chip.is-missing{background:color-mix(in srgb,var(--surface-2) 86%,#102438);color:#AEC2D6;border-color:var(--line-2);}
[data-theme="dark"] .calendar-day-marker.is-birthday{background:color-mix(in srgb,var(--surface-2) 78%,#8B4E85);color:#FFD5EB;border-color:color-mix(in srgb,#D47CB3 40%,transparent);}
[data-theme="dark"] .sc-head.is-today .calendar-day-marker.is-birthday{background:rgba(212,124,179,.34);color:#fff;border-color:rgba(245,249,254,.26);}
[data-theme="dark"] .agenda-card.is-birthday{background:color-mix(in srgb,var(--surface-2) 82%,#8B4E85);border-color:color-mix(in srgb,#D47CB3 36%,var(--line));}
[data-theme="dark"] .birthday-overlay{background:radial-gradient(900px 520px at 50% 16%,rgba(212,124,179,.30),transparent 58%),linear-gradient(135deg,rgba(3,11,20,.88),rgba(16,36,56,.82));}
[data-theme="dark"] .birthday-alert-card{background:radial-gradient(520px 240px at 100% 100%,rgba(240,184,78,.12),transparent 60%),linear-gradient(180deg,color-mix(in srgb,var(--surface) 92%,#8B4E85),color-mix(in srgb,var(--surface-2) 86%,#173A5C));border-color:color-mix(in srgb,#D47CB3 48%,var(--line));box-shadow:0 32px 82px -18px rgba(0,0,0,.68),0 0 0 1px rgba(240,184,78,.12);}
[data-theme="dark"] .birthday-alert-card::after{background:radial-gradient(circle,rgba(212,124,179,.22),transparent 66%);}
[data-theme="dark"] .birthday-alert-mark{background:color-mix(in srgb,var(--surface-2) 76%,#8B4E85);color:#FFD5EB;box-shadow:inset 0 0 0 1px color-mix(in srgb,#D47CB3 44%,transparent),0 14px 26px -20px rgba(212,124,179,.6);}
[data-theme="dark"] .birthday-alert-kicker{color:#F4A6D4;}
[data-theme="dark"] .birthday-alert-card p{color:#D8E4EF;}
[data-theme="dark"] .birthday-alert-status{background:color-mix(in srgb,var(--surface-2) 80%,#8B4E85);border-color:color-mix(in srgb,#D47CB3 38%,var(--line));color:#FFD5EB;}
[data-theme="dark"] .birthday-alert-status.is-busy{color:#8FD2FF;background:color-mix(in srgb,var(--surface-2) 76%,#173A5C);border-color:color-mix(in srgb,#5FA2DF 36%,var(--line));}
[data-theme="dark"] .birthday-alert-status.is-error{color:#FFB8B4;background:color-mix(in srgb,var(--surface-2) 72%,#7B2924);border-color:color-mix(in srgb,#EC6A63 36%,var(--line));}
[data-theme="dark"] .birthday-alert-secondary{background:color-mix(in srgb,var(--surface-2) 88%,#102438);color:#D8E4EF;border-color:var(--line-2);}
[data-theme="dark"] .birthday-greeting-meta span{color:#C3D3E3;}
[data-theme="dark"] .birthday-greeting-meta span.is-over{color:#FFB8B4;}
[data-theme="dark"] .birthday-greeting-meta button{color:#8FD2FF;}

.calendar-birthday-slot{margin-bottom:18px;}
.birthday-center-premium{position:relative;z-index:501;margin:0 0 18px;padding:0 26px 28px;border-radius:24px;background:radial-gradient(420px 210px at 86% 3%,rgba(137,91,255,.13),transparent 70%),radial-gradient(520px 240px at 98% 26%,rgba(255,181,77,.12),transparent 70%),linear-gradient(180deg,#fff 0%,#FBFCFF 58%,#F7FAFF 100%);border-color:#DDE6F5;box-shadow:0 24px 58px -38px rgba(20,43,73,.36),0 0 0 1px rgba(255,255,255,.72);overflow:hidden;}
.birthday-center-premium::before{height:0;background:none;}
.birthday-center-premium::after{content:"";position:absolute;left:26px;right:26px;top:132px;height:1px;background:linear-gradient(90deg,transparent,#E2E8F4 18%,#EEDAF8 58%,transparent);pointer-events:none;}
.birthday-center-premium .birthday-center-head{padding:34px 30px 24px 30px;}
.birthday-center-premium .birthday-kicker{gap:12px;color:#7A46F3;font-size:15px;font-weight:950;letter-spacing:.02em;}
.birthday-center-premium .birthday-kicker i{width:22px;height:22px;display:inline-block;background:linear-gradient(135deg,#7A46F3,#A86FD4);clip-path:polygon(50% 0,60% 32%,96% 18%,71% 47%,100% 64%,64% 64%,74% 100%,50% 77%,26% 100%,36% 64%,0 64%,29% 47%,4% 18%,40% 32%);}
.birthday-center-premium h4{margin-top:18px;font-size:43px;line-height:.98;color:#061A3A;font-weight:800;}
.birthday-center-premium h4>span{display:inline-block;width:30px;height:30px;margin-left:10px;background:radial-gradient(circle at 50% 50%,#7A46F3 0 3px,transparent 4px),radial-gradient(circle at 14% 34%,#F04D9A 0 3px,transparent 4px),radial-gradient(circle at 82% 22%,#FFBE3F 0 3px,transparent 4px),linear-gradient(135deg,transparent 40%,#52C2FF 41% 55%,transparent 56%);vertical-align:-2px;}
.birthday-center-premium .birthday-center-head p{font-size:17px;color:#64748F;font-weight:760;margin-top:16px;}
.birthday-center-premium .birthday-missing-note{margin-top:4px;border-radius:999px;border-color:#E5D8FF;background:#FBF7FF;color:#7A46F3;box-shadow:0 12px 28px -24px rgba(122,70,243,.45);}
.birthday-feature-card{position:relative;z-index:4;min-height:222px;border:1px solid #E3D9F5;border-radius:20px;background:linear-gradient(100deg,#FFFFFF 0%,#FBF6FF 48%,#FFF9EF 100%);box-shadow:0 22px 54px -38px rgba(24,39,75,.36),inset 0 1px 0 rgba(255,255,255,.88);display:grid;grid-template-columns:206px minmax(360px,1fr) minmax(360px,.9fr);align-items:center;gap:28px;padding:34px 34px 34px 0;overflow:hidden;}
.birthday-feature-card::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.4),transparent 54%);pointer-events:none;}
.birthday-countdown-panel{position:relative;z-index:3;align-self:stretch;min-height:170px;margin-left:0;width:206px;border-radius:18px;background:radial-gradient(circle at 34% 18%,rgba(255,255,255,.28),transparent 28%),linear-gradient(135deg,#794BFF 0%,#7E44E4 55%,#563FE4 100%);box-shadow:0 20px 36px -24px rgba(86,63,228,.76);display:grid;place-items:center;color:#fff;text-align:center;overflow:hidden;}
.birthday-countdown-panel::before{content:"";position:absolute;inset:0;background:linear-gradient(145deg,rgba(255,255,255,.18),transparent 42%),radial-gradient(circle at 20% 72%,rgba(111,211,255,.28),transparent 14%);}
.birthday-countdown-panel::after{content:"";position:absolute;left:-20%;right:-12%;bottom:-48px;height:110px;border-radius:50%;background:rgba(255,255,255,.12);transform:rotate(-10deg);}
.birthday-countdown-panel b{position:relative;z-index:1;font-family:'Bricolage Grotesque',sans-serif;font-size:58px;line-height:.86;font-weight:800;letter-spacing:0;}
.birthday-countdown-panel span{position:relative;z-index:1;margin-top:-34px;font-size:18px;font-weight:950;text-transform:uppercase;letter-spacing:.04em;}
.birthday-feature-person{position:relative;z-index:3;display:grid;grid-template-columns:156px minmax(0,1fr);align-items:center;gap:34px;min-width:0;}
.birthday-party-avatar{position:relative;display:grid;place-items:center;width:max-content;}
.birthday-party-avatar .avatar{position:relative;z-index:2;background:#fff;border:1px solid #E5EAF4;box-shadow:0 18px 36px -28px rgba(23,58,92,.55);}
.birthday-party-avatar::before{content:"";position:absolute;inset:-18px;border-radius:999px;background:linear-gradient(135deg,rgba(122,70,243,.08),rgba(255,77,154,.08));box-shadow:inset 0 0 0 1px rgba(226,232,244,.78);}
.birthday-party-avatar>i{position:absolute;right:-1px;bottom:7px;z-index:4;width:18px;height:18px;border-radius:50%;background:#35C84A;border:4px solid #fff;box-shadow:0 5px 12px rgba(53,200,74,.25);}
.birthday-party-hat{position:absolute;left:25px;top:-20px;z-index:4;width:42px;height:54px;background:repeating-linear-gradient(135deg,#7A46F3 0 9px,#fff 9px 15px);clip-path:polygon(50% 0,100% 100%,0 100%);transform:rotate(-17deg);filter:drop-shadow(0 8px 10px rgba(122,70,243,.2));}
.birthday-party-hat::before{content:"";position:absolute;left:14px;top:-8px;width:11px;height:11px;border-radius:50%;background:#7A46F3;}
.birthday-party-hat::after{content:"";position:absolute;left:5px;right:5px;bottom:0;height:7px;border-radius:999px;background:#B67BFF;}
.birthday-feature-copy{min-width:0;}
.birthday-feature-copy>span{display:inline-flex;border:1px solid #DED4FF;background:rgba(255,255,255,.72);color:#7A46F3;border-radius:8px;padding:7px 10px;font-size:13px;font-weight:950;text-transform:uppercase;letter-spacing:.02em;box-shadow:0 10px 22px -18px rgba(122,70,243,.45);}
.birthday-feature-copy b{display:flex;align-items:center;gap:10px;margin-top:19px;color:#071A3A;font-family:'Bricolage Grotesque',sans-serif;font-size:45px;line-height:1;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.birthday-feature-copy b::after{content:"";width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,#8D5AFF,#B67BFF);box-shadow:0 14px 24px -18px rgba(122,70,243,.72);}
.birthday-feature-copy small{display:flex;align-items:center;gap:12px;margin-top:18px;color:#64748F;font-size:16px;font-weight:820;line-height:1.3;flex-wrap:wrap;}
.birthday-feature-copy small em{width:1px;height:22px;background:#DFE5F0;}
.birthday-mini-cal,.birthday-mini-clock{display:inline-block;width:18px;height:18px;border:2px solid currentColor;border-radius:5px;position:relative;color:#7A46F3;vertical-align:-3px;flex-shrink:0;}
.birthday-mini-cal::before{content:"";position:absolute;left:2px;right:2px;top:4px;height:2px;background:currentColor;}
.birthday-mini-clock{border-radius:50%;}
.birthday-mini-clock::before{content:"";position:absolute;left:7px;top:3px;width:2px;height:6px;background:currentColor;border-radius:2px;}
.birthday-mini-clock::after{content:"";position:absolute;left:7px;top:8px;width:5px;height:2px;background:currentColor;border-radius:2px;transform:rotate(28deg);transform-origin:left center;}
.birthday-wish-scene{position:relative;z-index:2;align-self:stretch;display:flex;align-items:center;justify-content:flex-end;gap:28px;min-width:0;}
.birthday-wish-note{font-family:'Bricolage Grotesque',sans-serif;color:#8B5CF6;font-size:31px;line-height:1.28;font-weight:700;font-style:italic;transform:rotate(-3deg);text-align:center;text-shadow:0 10px 24px rgba(139,92,246,.16);}
.birthday-wish-note::after{content:"";display:block;width:230px;height:32px;margin:0 auto;background:linear-gradient(180deg,transparent 46%,rgba(139,92,246,.38) 48% 55%,transparent 58%);border-radius:50%;transform:rotate(-2deg);}
.birthday-display-cake{position:relative;width:126px;height:112px;flex-shrink:0;}
.birthday-display-cake::before{content:"";position:absolute;left:14px;right:14px;bottom:8px;height:60px;border-radius:18px 18px 14px 14px;background:linear-gradient(180deg,#FFF6DE 0 34%,#FFE2B8 35% 46%,#B572F6 47% 100%);box-shadow:inset 0 -11px 0 rgba(84,46,164,.12),0 18px 24px -18px rgba(122,70,243,.5);}
.birthday-display-cake::after{content:"";position:absolute;left:8px;right:8px;bottom:58px;height:28px;border-radius:20px;background:linear-gradient(180deg,#FFF4CD,#FFDFAA);box-shadow:0 8px 0 -1px rgba(255,244,205,.75);}
.birthday-display-cake span{position:absolute;left:58px;bottom:84px;width:12px;height:40px;border-radius:8px;background:repeating-linear-gradient(135deg,#8B5CF6 0 7px,#fff 7px 13px);}
.birthday-display-cake span::before{content:"";position:absolute;left:1px;top:-18px;width:10px;height:16px;border-radius:50% 50% 50% 0;background:#FFBE3F;transform:rotate(-38deg);box-shadow:0 0 18px rgba(255,190,63,.48);}
.birthday-display-cake i{position:absolute;left:30px;right:30px;bottom:37px;height:10px;background:radial-gradient(circle,#28C6A5 0 3px,transparent 4px),radial-gradient(circle at 34px 2px,#FF4D9A 0 3px,transparent 4px),radial-gradient(circle at 68px 3px,#FFB72D 0 3px,transparent 4px);}
.birthday-display-gift{position:relative;width:86px;height:76px;flex-shrink:0;background:linear-gradient(90deg,#9B67F5 0 38%,#C6A2FF 39% 52%,#8B5CF6 53%);border-radius:14px;box-shadow:0 18px 28px -20px rgba(122,70,243,.64);}
.birthday-display-gift::before{content:"";position:absolute;left:-8px;right:-8px;top:-14px;height:20px;border-radius:13px;background:linear-gradient(90deg,#8B5CF6 0 38%,#D5B9FF 39% 52%,#A975FF 53%);}
.birthday-display-gift span::before,.birthday-display-gift span::after{content:"";position:absolute;top:-39px;width:38px;height:28px;border:7px solid #B67BFF;border-radius:50% 50% 0 50%;}
.birthday-display-gift span::before{left:5px;transform:rotate(-28deg);}
.birthday-display-gift span::after{right:5px;transform:rotate(28deg) scaleX(-1);}
.birthday-card-confetti{position:absolute;inset:0;z-index:1;pointer-events:none;}
.birthday-card-confetti i{position:absolute;left:var(--x);top:var(--y);width:10px;height:16px;border-radius:3px;background:#8B5CF6;transform:rotate(var(--r));opacity:.66;}
.birthday-card-confetti i:nth-child(3n){background:#FF4D9A;border-radius:999px;width:11px;height:11px;}
.birthday-card-confetti i:nth-child(3n+1){background:#5FA2DF;}
.birthday-card-confetti i:nth-child(4n){background:#FFBE3F;}
.birthday-hero-balloons{position:absolute;right:-14px;top:-122px;width:260px;height:170px;pointer-events:none;z-index:1;opacity:.86;}
.birthday-hero-balloons span{position:absolute;border-radius:50% 50% 46% 46%;box-shadow:inset -14px -18px 0 rgba(0,0,0,.08),inset 12px 12px 0 rgba(255,255,255,.22),0 18px 34px -24px rgba(122,70,243,.55);}
.birthday-hero-balloons span::after{content:"";position:absolute;left:50%;top:92%;width:2px;height:78px;background:rgba(122,70,243,.28);transform:rotate(8deg);}
.birthday-hero-balloons span:nth-child(1){left:28px;top:44px;width:74px;height:96px;background:linear-gradient(135deg,#FF7AB9,#EC3F8E);}
.birthday-hero-balloons span:nth-child(2){left:104px;top:0;width:88px;height:118px;background:linear-gradient(135deg,#BBA0FF,#7A46F3);}
.birthday-hero-balloons span:nth-child(3){right:4px;top:72px;width:78px;height:98px;background:linear-gradient(135deg,#FFD76F,#FFB72D);}
.birthday-center-premium .birthday-upcoming{padding:28px 30px 0;gap:20px;}
.birthday-center-premium .birthday-subhead{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:14px;color:#64748F;font-size:14px;font-weight:950;}
.birthday-center-premium .birthday-subhead::after{content:"";height:1px;background:#E3E9F4;}
.birthday-center-premium .birthday-subhead i{width:22px;height:22px;border:2px solid #7A46F3;border-radius:6px;position:relative;}
.birthday-center-premium .birthday-subhead i::before{content:"";position:absolute;left:3px;right:3px;top:5px;height:2px;background:#7A46F3;}
.birthday-center-premium .birthday-upcoming-list{grid-template-columns:repeat(auto-fit,minmax(196px,1fr));gap:16px;}
.birthday-upcoming-card{position:relative;display:grid;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:9px;min-height:128px;padding:12px;border:1px solid #E5EAF4;border-radius:20px;background:rgba(255,255,255,.92);box-shadow:0 20px 40px -34px rgba(24,39,75,.46);overflow:hidden;}
.birthday-upcoming-card::before{content:"";position:absolute;inset:0;background:radial-gradient(120px 100px at 26% 42%,var(--birthday-soft,rgba(122,70,243,.1)),transparent 70%);pointer-events:none;}
.birthday-upcoming-card.tone-violet{--birthday-accent:#7A46F3;--birthday-soft:rgba(122,70,243,.11);border-color:#DDD4FF;}
.birthday-upcoming-card.tone-pink{--birthday-accent:#EC3F8E;--birthday-soft:rgba(236,63,142,.1);border-color:#F7D6E8;}
.birthday-upcoming-card.tone-blue{--birthday-accent:#4B7CF6;--birthday-soft:rgba(75,124,246,.1);border-color:#D7E4FF;}
.birthday-upcoming-card.tone-rose{--birthday-accent:#E64D9D;--birthday-soft:rgba(230,77,157,.1);border-color:#F6D5E9;}
.birthday-upcoming-card.tone-amber{--birthday-accent:#F2A100;--birthday-soft:rgba(242,161,0,.12);border-color:#F6E2BB;}
.birthday-upcoming-card .birthday-upcoming-dot{position:absolute;left:11px;top:50%;width:10px;height:10px;background:var(--birthday-accent);box-shadow:0 0 0 6px color-mix(in srgb,var(--birthday-accent) 13%,transparent);transform:translateY(-50%);}
.birthday-upcoming-card .birthday-party-avatar{justify-self:center;}
.birthday-upcoming-card .birthday-party-avatar .avatar{width:52px;height:52px;}
.birthday-upcoming-card .birthday-party-avatar::before{inset:-8px;background:var(--birthday-soft);}
.birthday-upcoming-card .birthday-party-avatar::after{right:-1px;bottom:1px;width:12px;height:12px;}
.birthday-upcoming-card .birthday-party-hat{left:15px;top:-14px;width:27px;height:36px;background:repeating-linear-gradient(135deg,var(--birthday-accent) 0 7px,#fff 7px 13px);}
.birthday-upcoming-card .birthday-party-hat::before,.birthday-upcoming-card .birthday-party-hat::after{background:var(--birthday-accent);}
.birthday-upcoming-copy{position:relative;z-index:2;min-width:0;}
.birthday-upcoming-copy b{display:flex;align-items:center;gap:6px;color:#071A3A;font-size:17px;font-weight:900;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.birthday-upcoming-copy b::after{content:"";width:18px;height:18px;border-radius:6px;background:color-mix(in srgb,var(--birthday-accent) 70%,#fff);flex-shrink:0;}
.birthday-upcoming-copy small{display:block;color:#64748F;font-size:12.5px;font-weight:740;margin-top:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.birthday-upcoming-copy>span{display:inline-flex;align-items:center;gap:6px;margin-top:16px;border:1px solid color-mix(in srgb,var(--birthday-accent) 22%,#E5EAF4);border-radius:10px;background:color-mix(in srgb,var(--birthday-accent) 8%,#fff);color:var(--birthday-accent);padding:7px 9px;font-size:12.5px;font-weight:900;white-space:nowrap;}
.birthday-upcoming-copy>span .birthday-mini-cal{width:16px;height:16px;color:currentColor;}
.birthday-empty-premium{margin:0;border-radius:20px;min-height:160px;display:grid;place-items:center;background:linear-gradient(135deg,#fff,#F8FAFF);}
.birthday-center-premium .birthday-marquee-lights i,.birthday-center-premium .birthday-streamers i,.birthday-center-premium .birthday-confetti-rain i,.birthday-center-premium .birthday-balloon-field i,.birthday-center-premium .birthday-stage-lights i,.birthday-center-premium .birthday-stage-floor i,.birthday-center-premium .birthday-avatar-orbit>span,.birthday-center-premium .birthday-cake .flame,.birthday-center-premium .birthday-crowd i,.birthday-center-premium .birthday-notes i,.birthday-center-premium .birthday-mini-scene i,.birthday-center-premium .birthday-greeting-list.compact .birthday-greeting-row{animation:none!important;}
@media (max-width:1180px){.birthday-feature-card{grid-template-columns:180px minmax(280px,1fr);padding-right:24px;}.birthday-wish-scene{grid-column:1/-1;justify-content:center;min-height:120px;border-top:1px solid #EDF1F8;padding-top:12px;}.birthday-hero-balloons{opacity:.38;}.birthday-feature-copy b{font-size:38px;}}
@media (max-width:760px){.birthday-center-premium{padding:0 16px 20px;border-radius:20px;}.birthday-center-premium .birthday-center-head{padding:24px 12px 18px;}.birthday-center-premium h4{font-size:34px;}.birthday-center-premium .birthday-center-head p{font-size:14px;}.birthday-feature-card{grid-template-columns:1fr;padding:0 18px 22px;gap:20px;}.birthday-countdown-panel{width:auto;min-height:132px;margin:0 -18px;border-radius:18px 18px 8px 8px;}.birthday-countdown-panel span{margin-top:-20px;}.birthday-feature-person{grid-template-columns:108px minmax(0,1fr);gap:18px;}.birthday-feature-person .birthday-party-avatar .avatar{width:76px;height:76px;}.birthday-feature-copy b{font-size:31px;}.birthday-feature-copy small{font-size:13px;gap:8px;}.birthday-wish-scene{display:none;}.birthday-center-premium .birthday-upcoming{padding:22px 12px 0;}.birthday-center-premium .birthday-upcoming-list{grid-template-columns:1fr;gap:12px;}.birthday-upcoming-card{grid-template-columns:96px minmax(0,1fr);min-height:124px;padding:14px;}.birthday-upcoming-card .birthday-party-avatar .avatar{width:62px;height:62px;}.birthday-upcoming-copy>span{font-size:13px;margin-top:12px;}}
[data-theme="dark"] .birthday-center-premium{background:radial-gradient(420px 210px at 86% 3%,rgba(137,91,255,.18),transparent 70%),radial-gradient(520px 240px at 98% 26%,rgba(255,181,77,.12),transparent 70%),linear-gradient(180deg,color-mix(in srgb,var(--surface) 92%,#111827),color-mix(in srgb,var(--surface-2) 88%,#1E1B4B));border-color:color-mix(in srgb,#8B5CF6 30%,var(--line));box-shadow:var(--sh),0 24px 58px -38px rgba(0,0,0,.74);}
[data-theme="dark"] .birthday-center-premium::after{background:linear-gradient(90deg,transparent,var(--line-2) 18%,rgba(139,92,246,.36) 58%,transparent);}
[data-theme="dark"] .birthday-center-premium h4,[data-theme="dark"] .birthday-feature-copy b,[data-theme="dark"] .birthday-upcoming-copy b{color:#F7FAFF;}
[data-theme="dark"] .birthday-center-premium .birthday-center-head p,[data-theme="dark"] .birthday-feature-copy small,[data-theme="dark"] .birthday-upcoming-copy small{color:#C3D3E3;}
[data-theme="dark"] .birthday-feature-card{background:linear-gradient(100deg,color-mix(in srgb,var(--surface) 92%,#111827),color-mix(in srgb,var(--surface-2) 82%,#2E1F52));border-color:color-mix(in srgb,#8B5CF6 28%,var(--line));box-shadow:0 22px 54px -38px rgba(0,0,0,.82),inset 0 1px 0 rgba(255,255,255,.06);}
[data-theme="dark"] .birthday-feature-copy>span{background:rgba(245,249,254,.08);border-color:rgba(181,151,255,.34);color:#C4B5FD;}
[data-theme="dark"] .birthday-feature-copy small em{background:var(--line-2);}
[data-theme="dark"] .birthday-party-avatar .avatar{background:var(--surface);border-color:var(--line-2);}
[data-theme="dark"] .birthday-wish-note{color:#C4B5FD;}
[data-theme="dark"] .birthday-center-premium .birthday-subhead{color:#C3D3E3;}
[data-theme="dark"] .birthday-center-premium .birthday-subhead::after{background:var(--line-2);}
[data-theme="dark"] .birthday-upcoming-card{background:color-mix(in srgb,var(--surface) 92%,#111827);border-color:color-mix(in srgb,var(--birthday-accent,#8B5CF6) 28%,var(--line));box-shadow:0 20px 40px -34px rgba(0,0,0,.86);}
[data-theme="dark"] .birthday-upcoming-copy>span{background:color-mix(in srgb,var(--birthday-accent,#8B5CF6) 14%,var(--surface-2));border-color:color-mix(in srgb,var(--birthday-accent,#8B5CF6) 34%,var(--line));}

.dashboard-holidays-block{margin-bottom:22px;position:relative;overflow:hidden;background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--blue-mist) 55%,var(--surface)));box-shadow:var(--sh);}
.dashboard-holidays-block::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--blue-ring),transparent);pointer-events:none;}
.dashboard-holidays-head{margin-bottom:14px;}
.dashboard-holidays-grid{grid-template-columns:repeat(auto-fit,minmax(164px,1fr));}
.myday-grid{display:block;}
.supervisor-grid,.notify-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;}
.notify-grid.va-alert-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px;}
.supervisor-card,.notify-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 15px;box-shadow:var(--sh-xs);min-width:0;}
.supervisor-card strong,.notify-card strong{display:block;font-family:'Bricolage Grotesque',sans-serif;font-size:22px;line-height:1;color:var(--heading);font-weight:700;font-variant-numeric:tabular-nums;}
.supervisor-card span,.notify-card span{display:block;font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:7px;}
.supervisor-card p,.notify-card p{font-size:12.5px;color:var(--ink-2);font-weight:500;line-height:1.45;margin-top:7px;overflow:hidden;text-overflow:ellipsis;}
.supervisor-card.good,.notify-card.good{border-left:4px solid var(--green);}
.supervisor-card.warn,.notify-card.warn{border-left:4px solid var(--amber);}
.supervisor-card.bad,.notify-card.bad{border-left:4px solid var(--coral);}
.notify-card.va-alert-card{border-radius:var(--r-sm);padding:12px 13px;}
.notify-card.va-alert-card strong{font-size:17px;line-height:1.12;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.notify-card.va-alert-card p{font-size:11.5px;line-height:1.35;white-space:nowrap;}
.va-alerts #rem-test-card .card-head{margin-bottom:12px;}
.va-alerts #rem-upcoming-sub:empty{display:none;}
.aivira-card{position:relative;display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,color-mix(in srgb,var(--blue-soft) 76%,var(--surface)),var(--surface));border:1px solid color-mix(in srgb,var(--blue-2) 25%,var(--line));border-radius:var(--r);padding:12px 14px;box-shadow:var(--sh-xs);overflow:hidden;transition:border-color var(--t-fast),box-shadow var(--t-fast),background var(--t-fast);}
.aivira-card::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 0%,rgba(255,255,255,.20) 42%,transparent 62%);transform:translateX(-120%);animation:aiviraShimmer 5.8s var(--ease-out) infinite;pointer-events:none;}
.aivira-card:hover{border-color:color-mix(in srgb,var(--green) 34%,var(--blue-2));box-shadow:var(--sh-sm);}
.aivira-dashboard{margin:-4px 0 22px;}
.aivira-panel-card{margin-bottom:14px;}
.aivira-mark{position:relative;z-index:1;width:36px;height:36px;border-radius:var(--r-sm);display:grid;place-items:center;flex:0 0 auto;color:var(--blue-4);background:color-mix(in srgb,var(--green-soft) 52%,var(--blue-soft));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--green) 22%,transparent);}
.aivira-mark svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.aivira-mark img{width:100%;height:100%;display:block;object-fit:contain;}
.aivira-copy{position:relative;z-index:1;min-width:0;display:grid;gap:2px;}
.aivira-kicker{width:max-content;max-width:100%;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--green-ink);background:var(--green-soft);border:1px solid color-mix(in srgb,var(--green) 18%,transparent);border-radius:var(--r-pill);padding:2px 7px;animation:aiviraPulse 2.8s var(--ease-out) infinite;}
.aivira-copy strong{font-family:'Bricolage Grotesque',sans-serif;font-size:15.5px;line-height:1.1;color:var(--heading);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.aivira-copy small{font-size:11.5px;font-weight:600;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.aivira-brand{display:inline-flex;align-items:baseline;font-weight:850;letter-spacing:.01em;}
.aivira-ai{background:linear-gradient(135deg,#4C8DFF 0%,#7C5CFF 48%,#23C9A9 100%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 18px rgba(76,141,255,.18);}
.aivira-vira{color:var(--heading);}
.aivira-chip{position:relative;z-index:1;margin-left:auto;flex:0 0 auto;border:1px solid color-mix(in srgb,var(--blue-2) 30%,var(--line));border-radius:var(--r-pill);background:color-mix(in srgb,var(--surface) 78%,var(--blue-soft));color:var(--blue-4);font-family:inherit;font-size:11.5px;font-weight:800;letter-spacing:.01em;padding:7px 11px;box-shadow:var(--sh-xs);cursor:pointer;transition:background var(--t-fast),border-color var(--t-fast),box-shadow var(--t-fast),transform var(--t-fast);}
.aivira-chip:hover{background:color-mix(in srgb,var(--blue-soft) 68%,var(--surface));border-color:color-mix(in srgb,var(--green) 28%,var(--blue-2));box-shadow:var(--sh-sm);transform:translateY(-.5px);}
.aivira-chip:focus-visible{outline:none;box-shadow:0 0 0 3px var(--blue-ring),var(--sh-xs);}
.aivira-toolbar-chip{min-height:32px;align-self:center;white-space:nowrap;}
@keyframes aiviraShimmer{0%,72%{transform:translateX(-120%);}100%{transform:translateX(120%);}}
@keyframes aiviraPulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--green) 0%,transparent);}50%{box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 10%,transparent);}}
[data-theme="dark"] .aivira-card{background:linear-gradient(135deg,color-mix(in srgb,var(--blue-soft) 42%,var(--surface)),var(--surface));border-color:color-mix(in srgb,var(--blue-2) 34%,var(--line));}
[data-theme="dark"] .aivira-card::after{background:linear-gradient(110deg,transparent 0%,rgba(125,178,230,.12) 42%,transparent 62%);}
[data-theme="dark"] .aivira-mark{color:color-mix(in srgb,var(--blue-2) 80%,#fff);background:color-mix(in srgb,var(--blue-soft) 52%,var(--surface-2));}
[data-theme="dark"] .aivira-kicker{color:color-mix(in srgb,var(--green) 75%,#fff);background:color-mix(in srgb,var(--green-soft) 72%,var(--surface));}
[data-theme="dark"] .aivira-chip{background:color-mix(in srgb,var(--surface-2) 82%,var(--blue-soft));color:color-mix(in srgb,var(--blue-2) 76%,#fff);}
[data-theme="dark"] .aivira-ai{text-shadow:0 0 20px rgba(125,178,230,.24);}
[data-theme="dark"] .aivira-vira{color:color-mix(in srgb,var(--heading) 88%,#fff);}

/* =============================================================================
   AIVIRA DOCK  (display-only "coming soon" presence, fixed bottom-right)
   Sits above normal UI (modals, drawers, banners, toasts) but below the urgent
   shift alert overlay (z-index 900) so critical operational work wins.
   ============================================================================= */
.aivira-dock{position:fixed;right:24px;bottom:24px;z-index:500;display:none;align-items:center;gap:9px;padding:9px 14px 9px 11px;font-family:inherit;cursor:pointer;background:linear-gradient(135deg,color-mix(in srgb,var(--blue-soft) 70%,var(--surface)),var(--surface));border:1px solid color-mix(in srgb,var(--blue-2) 28%,var(--line));border-radius:var(--r-pill);box-shadow:var(--sh-md);perspective:640px;transition:transform var(--t) var(--ease-out),box-shadow .6s var(--ease-out),border-color var(--t-fast),background var(--t-fast),gap .6s var(--ease-out),padding .6s var(--ease-out);animation:aiviraDockIn .5s var(--ease-out) both;}
body.authed .aivira-dock{display:inline-flex;}
.aivira-dock:hover{transform:translateY(-2px);box-shadow:var(--sh-lg);border-color:color-mix(in srgb,var(--green) 30%,var(--blue-2));}
.aivira-dock:active{transform:translateY(0);}
.aivira-dock:focus-visible{outline:none;box-shadow:0 0 0 3px var(--blue-ring),var(--sh-md);}
.aivira-dock-mark{width:34px;height:34px;display:block;flex:0 0 auto;object-fit:contain;transform-origin:50% 50%;filter:drop-shadow(0 2px 5px rgba(16,43,73,.18));will-change:transform,filter;transition:transform .92s cubic-bezier(.62,.02,.18,1),filter .5s var(--ease-out);}
.aivira-dock-text{font-size:14px;line-height:1;max-width:120px;white-space:nowrap;overflow:hidden;transition:max-width .55s var(--ease-out),opacity .32s var(--ease-out),transform .55s var(--ease-out),margin .55s var(--ease-out);}
.aivira-dock-badge{position:relative;font-size:9px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--green-ink);background:var(--green-soft);border:1px solid color-mix(in srgb,var(--green) 18%,transparent);border-radius:var(--r-pill);padding:3px 7px;overflow:hidden;max-width:90px;white-space:nowrap;transition:max-width .55s var(--ease-out),opacity .32s var(--ease-out),transform .55s var(--ease-out),padding .55s var(--ease-out),border-width .55s var(--ease-out),margin .55s var(--ease-out);}
/* Periodic "transform into the logo" morph: the wordmark and badge fold away,
   the logo locks in. Toggled by JS (startAiviraMorph); transitions only, so it
   never flickers. */
.aivira-dock.is-compact{gap:0;padding:6px;box-shadow:var(--sh-md),0 0 0 3px color-mix(in srgb,var(--blue-2) 20%,transparent);}
.aivira-dock.is-compact .aivira-dock-text,
.aivira-dock.is-compact .aivira-dock-badge{max-width:0;opacity:0;transform:translateX(-10px) scale(.82);}
.aivira-dock.is-compact .aivira-dock-badge{padding-left:0;padding-right:0;border-width:0;}
/* the logo reconfigures into place: a single smooth 3D turn, a confident scale,
   then a calm breathing glow while it rests */
.aivira-dock.is-compact .aivira-dock-mark{transform:scale(1.18) rotateY(360deg);filter:drop-shadow(0 4px 13px color-mix(in srgb,var(--blue-3) 62%,transparent));animation:aiviraLogoBreathe 2.8s var(--ease) .95s infinite;}
@keyframes aiviraLogoBreathe{0%,100%{filter:drop-shadow(0 3px 10px color-mix(in srgb,var(--blue-3) 42%,transparent));}50%{filter:drop-shadow(0 5px 17px color-mix(in srgb,var(--blue-3) 74%,transparent));}}
/* sequential fold so it reads like parts retracting: badge tucks in first and
   the wordmark last; on the way out the wordmark leads and the badge follows */
.aivira-dock-text{transition-delay:0s;}
.aivira-dock-badge{transition-delay:.14s;}
.aivira-dock.is-compact .aivira-dock-text{transition-delay:.14s;}
.aivira-dock.is-compact .aivira-dock-badge{transition-delay:0s;}
.aivira-dock-badge::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 0%,color-mix(in srgb,#fff 60%,transparent) 45%,transparent 60%);transform:translateX(-130%);animation:aiviraShimmer 5.8s var(--ease-out) infinite;pointer-events:none;}
@keyframes aiviraDockIn{0%{opacity:0;transform:translateY(14px) scale(.96);}100%{opacity:1;transform:none;}}
/* lift the toast above the dock so they never collide */
body.authed .toast{bottom:88px;}
[data-theme="dark"] .aivira-dock{background:linear-gradient(135deg,color-mix(in srgb,var(--blue-soft) 46%,var(--surface)),var(--surface));border-color:color-mix(in srgb,var(--blue-2) 36%,var(--line));}
[data-theme="dark"] .aivira-dock-mark{filter:drop-shadow(0 2px 6px rgba(0,0,0,.34));}
[data-theme="dark"] .aivira-dock-badge{color:color-mix(in srgb,var(--green) 75%,#fff);background:color-mix(in srgb,var(--green-soft) 70%,var(--surface));}
[data-theme="dark"] .aivira-dock-badge::after{background:linear-gradient(110deg,transparent 0%,rgba(125,178,230,.18) 45%,transparent 60%);}
@media (max-width:880px){
  .aivira-dock{right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px));padding:8px 12px 8px 9px;gap:7px;}
  .aivira-dock-text{font-size:13px;}
  body.authed .toast{bottom:calc(78px + env(safe-area-inset-bottom,0px));}
}
@media (max-width:640px){
  .aivira-dock{right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));gap:0;padding:6px;min-width:46px;min-height:46px;}
  .aivira-dock-text,.aivira-dock-badge{max-width:0;opacity:0;transform:translateX(-10px) scale(.82);padding-left:0;padding-right:0;border-width:0;}
  .aivira-dock-mark{width:34px;height:34px;}
}
.myday-strip{display:grid;grid-template-columns:minmax(178px,1.05fr) minmax(220px,1.4fr) repeat(2,minmax(108px,.68fr));gap:8px;align-items:stretch;}
.myday-item{position:relative;display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:9px;min-height:58px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px 10px 14px;box-shadow:var(--sh-xs);min-width:0;transition:border-color var(--t-fast),box-shadow var(--t-fast),background var(--t-fast),transform var(--t-fast);}
.myday-item::before{content:"";position:absolute;left:5px;top:11px;bottom:11px;width:3px;border-radius:var(--r-pill);background:var(--line-3);transition:background var(--t-fast);}
.myday-item:hover{border-color:var(--line-3);box-shadow:var(--sh);transform:translateY(-2px);}
.myday-item.is-clickable{cursor:pointer;}
.myday-item.is-clickable:hover{border-color:color-mix(in srgb,var(--blue-2) 30%,var(--line-2));box-shadow:0 0 0 3px var(--blue-ring),var(--sh);}
.myday-item.is-clickable:active{transform:translateY(-1px) scale(.99);}
.myday-item.is-clickable:focus-visible{outline:none;box-shadow:0 0 0 3px var(--blue-ring),var(--sh-xs);}
.myday-item.is-good{background:color-mix(in srgb,var(--green-soft) 40%,var(--surface));border-color:color-mix(in srgb,var(--green) 16%,var(--line));}
.myday-item.is-warn{background:color-mix(in srgb,var(--amber-soft) 40%,var(--surface));border-color:color-mix(in srgb,var(--amber) 18%,var(--line));}
.myday-item.is-bad{background:color-mix(in srgb,var(--coral-soft) 42%,var(--surface));border-color:color-mix(in srgb,var(--coral) 20%,var(--line));}
.myday-item.is-good::before{background:var(--green);}
.myday-item.is-warn::before{background:var(--amber);}
.myday-item.is-bad::before{background:var(--coral);}
.myday-icon{width:30px;height:30px;border-radius:var(--r-xs);display:grid;place-items:center;color:var(--blue-4);background:linear-gradient(140deg,color-mix(in srgb,var(--blue-soft) 68%,var(--surface)),var(--blue-soft));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--blue-2) 14%,transparent);overflow:hidden;transition:background var(--t-fast),box-shadow var(--t-fast),color var(--t-fast);}
.myday-item.is-good .myday-icon{color:var(--green-ink);background:linear-gradient(140deg,color-mix(in srgb,var(--green-soft) 66%,var(--surface)),var(--green-soft));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--green) 20%,transparent);}
.myday-item.is-warn .myday-icon{color:var(--amber-ink);background:linear-gradient(140deg,color-mix(in srgb,var(--amber-soft) 66%,var(--surface)),var(--amber-soft));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--amber) 22%,transparent);}
.myday-item.is-bad .myday-icon{color:var(--coral-ink);background:linear-gradient(140deg,color-mix(in srgb,var(--coral-soft) 66%,var(--surface)),var(--coral-soft));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--coral) 24%,transparent);}
.myday-icon>.cat-icon{width:30px;height:30px;border-radius:var(--r-xs);}
.myday-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;display:block;}
.myday-dot{width:10px;height:10px;border-radius:50%;background:var(--muted);}
.myday-item.is-good .myday-dot{background:var(--green);}
.myday-item.is-warn .myday-dot{background:var(--amber);}
.myday-item.is-bad .myday-dot{background:var(--coral);}
.myday-copy{min-width:0;display:block;}
.myday-label{display:block;font-size:9.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:2px;}
.myday-main{display:block;font-family:'Bricolage Grotesque',sans-serif;font-size:15.5px;line-height:1.12;color:var(--heading);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums;}
.myday-meta{display:block;font-size:11px;color:var(--ink-2);font-weight:600;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.myday-progress{display:block;height:5px;background:color-mix(in srgb,var(--line) 72%,var(--surface));border-radius:var(--r-pill);overflow:hidden;margin-top:7px;}
.myday-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--green),var(--blue-2));transform-origin:left;transition:width .45s var(--ease-out);}
.myday-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px;}
.myday-actions .btn{min-height:30px;padding:6px 10px;font-size:12px;}
.myday-actions svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;display:block;}
/* My Day entrance: a quiet one-shot stagger + a single progress sweep. Kept short
   and non-looping so the hero stays the only ambient motion; reduced-motion users
   get none of it via the global rule below. */
@keyframes mydayIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
@keyframes mydayFill{from{transform:scaleX(0);}to{transform:scaleX(1);}}
#panel-dashboard.active .myday-item{animation:mydayIn .42s var(--ease-out) backwards;}
#panel-dashboard.active .myday-item:nth-child(1){animation-delay:.05s;}
#panel-dashboard.active .myday-item:nth-child(2){animation-delay:.11s;}
#panel-dashboard.active .myday-item:nth-child(3){animation-delay:.17s;}
#panel-dashboard.active .myday-item:nth-child(4){animation-delay:.23s;}
#panel-dashboard.active .myday-item:nth-child(5){animation-delay:.29s;}
#panel-dashboard.active .myday-actions{animation:mydayIn .42s var(--ease-out) .34s backwards;}
#panel-dashboard.active .myday-progress i{animation:mydayFill .7s var(--ease-out) .3s backwards;}
@media (max-width:1100px){
  .myday-strip{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:620px){
  .myday-strip{grid-template-columns:1fr;}
  .myday-item{min-height:54px;}
  .myday-main{font-size:14.5px;}
  .aivira-card{align-items:flex-start;padding:12px;gap:10px;}
  .aivira-chip{width:100%;margin-left:0;grid-column:1 / -1;text-align:center;}
  .aivira-dashboard,.aivira-panel-card{display:grid;grid-template-columns:36px minmax(0,1fr);}
}
.wl-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);transition:background var(--t-fast);border-radius:var(--r-xs);}
.wl-row:last-child{border-bottom:none;}
.wl-name{font-size:13.5px;font-weight:600;color:var(--ink);}
.wl-meta{font-size:11.5px;color:var(--muted);font-weight:450;}
.wl-count{margin-left:auto;text-align:right;}
.wl-count b{font-family:'Bricolage Grotesque',sans-serif;font-size:17px;font-weight:700;color:var(--heading);display:block;font-variant-numeric:tabular-nums;}
.wl-count span{font-size:11px;font-weight:600;}

.avatar{border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;flex-shrink:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14),0 1px 2px rgba(16,43,73,.18);overflow:hidden;}
.avatar.default-avatar{background:#fff!important;box-shadow:inset 0 0 0 1px var(--line),0 1px 2px rgba(16,43,73,.12);overflow:hidden;}
.avatar.default-avatar img{width:100%;height:100%;object-fit:contain;display:block;padding:2px;}
.av-72{width:72px;height:72px;font-size:20px;}.av-46,.av-40{width:46px;height:46px;font-size:15px;}.av-34{width:34px;height:34px;font-size:12px;}.av-30{width:30px;height:30px;font-size:11px;}.av-26{width:26px;height:26px;font-size:10px;}.av-22{width:22px;height:22px;font-size:9px;}

.cat-icon{--cat-color:var(--blue);display:inline-grid;place-items:center;flex:0 0 auto;width:30px;height:30px;border-radius:var(--r-xs);color:var(--cat-color);background:color-mix(in srgb,var(--cat-color) 12%,#fff);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--cat-color) 24%,transparent);}
.cat-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;display:block;}
.cat-icon-xs{width:18px;height:18px;border-radius:5px;vertical-align:-4px;}
.cat-icon-xs svg{width:12px;height:12px;stroke-width:2.2;}
.cat-icon-sm{width:24px;height:24px;border-radius:7px;}
.cat-icon-sm svg{width:14px;height:14px;stroke-width:2.15;}
.cat-icon-md{width:28px;height:28px;}
.cat-icon-lg{width:44px;height:44px;border-radius:12px;}
.cat-icon-lg svg{width:23px;height:23px;stroke-width:2;}
.cat-chip{--cat-color:var(--blue);display:inline-flex;align-items:center;gap:7px;max-width:100%;color:color-mix(in srgb,var(--cat-color) 78%,#0F2D49);background:color-mix(in srgb,var(--cat-color) 11%,#fff);border:1px solid color-mix(in srgb,var(--cat-color) 23%,#fff);border-radius:var(--r-pill);font-size:11.5px;font-weight:700;line-height:1;padding:4px 9px 4px 5px;white-space:nowrap;vertical-align:middle;}
.cat-chip .cat-icon{background:transparent;box-shadow:none;width:18px;height:18px;}
.cat-chip .cat-icon svg{width:13px;height:13px;stroke-width:2.2;}
.cat-chip span:last-child{overflow:hidden;text-overflow:ellipsis;}
.cat-chip-compact{border-radius:var(--r-xs);padding:4px 9px 4px 5px;font-size:11px;}
.cat-chip-mini{padding:3px 7px 3px 4px;font-size:10.5px;gap:4px;}
.cat-chip-mini .cat-icon{width:15px;height:15px;}
.cat-chip-mini .cat-icon svg{width:11px;height:11px;}

/* =============================================================================
   CARDS
   ============================================================================= */
.card{background:var(--surface-card);border:1px solid var(--line);border-radius:var(--r-lg);padding:24px;margin-bottom:18px;box-shadow:var(--sh-sm);transition:border-color var(--t-fast),box-shadow var(--t-fast),transform var(--t-fast);}
.card:hover{border-color:var(--line-2);box-shadow:var(--sh);}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:20px;}
.card-head .ct{font-family:'Bricolage Grotesque',sans-serif;font-size:17px;font-weight:600;color:var(--heading);letter-spacing:-.015em;}
.card-head .cs{font-size:12.5px;color:var(--muted);font-weight:450;margin-top:3px;max-width:62ch;line-height:1.5;}
.grid-auto{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px;}
.grid-3{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;}

/* Team cards */
.va{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;position:relative;box-shadow:var(--sh-sm);transition:transform var(--t) var(--ease-out),box-shadow var(--t),border-color var(--t);}
.va:hover{transform:translateY(-1px);box-shadow:var(--sh);border-color:var(--line-3);}
.va-top{display:flex;align-items:center;gap:14px;margin-bottom:12px;}
.va-top>.avatar{width:48px;height:48px;flex:0 0 48px;}
.va-top>.va-identity{flex:1;min-width:0;}
.va-name{font-family:'Bricolage Grotesque',sans-serif;font-size:18px;font-weight:600;color:var(--heading);letter-spacing:-.015em;}
.va-role{font-size:10.5px;color:var(--muted);font-weight:700;margin-top:3px;letter-spacing:.07em;}
.va-meta-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:7px;}
.va-meta-row .va-birthday-row{margin-top:0;}
.work-location-chip{display:inline-flex;align-items:center;gap:6px;min-height:24px;padding:4px 8px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface-2);color:var(--ink-2);font-size:10.5px;font-weight:850;line-height:1;white-space:nowrap;}
.work-location-chip i{width:7px;height:7px;border-radius:50%;background:var(--muted);box-shadow:0 0 0 3px color-mix(in srgb,var(--muted) 12%,transparent);}
.work-location-chip.is-fourth_street{background:var(--blue-soft);border-color:color-mix(in srgb,var(--blue) 26%,var(--line));color:var(--blue-4);}
.work-location-chip.is-fourth_street i{background:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 14%,transparent);}
.work-location-chip.is-milford{background:var(--green-soft);border-color:color-mix(in srgb,var(--green) 28%,var(--line));color:var(--green-ink);}
.work-location-chip.is-milford i{background:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 14%,transparent);}
.work-location-chip.is-all{background:color-mix(in srgb,var(--navy) 8%,var(--surface));border-color:color-mix(in srgb,var(--navy) 20%,var(--line));color:var(--navy-2);}
.work-location-chip.is-all i{display:grid;place-items:center;width:12px;height:12px;background:var(--navy);box-shadow:none;color:#fff;font-size:11px;font-style:normal;font-weight:800;line-height:1;}
.work-location-chip.is-unassigned{border-style:dashed;color:var(--muted);}
.va-directory-note{padding-top:16px;border-top:1px solid var(--line);color:var(--muted);font-size:11px;font-weight:650;line-height:1.45;}
.presence-badge{display:flex;align-items:center;gap:6px;margin:0 0 18px;width:max-content;max-width:100%;border:1px solid var(--line);border-radius:var(--r-pill);padding:4px 8px 4px 7px;background:var(--surface-2);color:var(--ink-2);font-size:11px;font-weight:700;line-height:1;white-space:nowrap;}
.presence-badge small{font-size:10.5px;color:var(--muted);font-weight:600;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.presence-dot{width:8px;height:8px;border-radius:50%;background:var(--muted);box-shadow:0 0 0 3px color-mix(in srgb,var(--muted) 12%,transparent);}
.presence-online{background:var(--green-soft);border-color:color-mix(in srgb,var(--green) 24%,var(--line));color:var(--green-ink);}
.presence-online .presence-dot{background:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 18%,transparent);}
.presence-idle{background:var(--amber-soft);border-color:color-mix(in srgb,var(--amber) 24%,var(--line));color:var(--amber-ink);}
.presence-idle .presence-dot{background:var(--amber);box-shadow:0 0 0 3px color-mix(in srgb,var(--amber) 18%,transparent);}
.presence-break{display:grid;grid-template-columns:8px max-content minmax(0,1fr);width:100%;padding:7px 9px;background:linear-gradient(180deg,color-mix(in srgb,var(--amber-soft) 92%,var(--surface)),var(--amber-soft));border-color:color-mix(in srgb,var(--amber) 38%,var(--line));color:var(--amber-ink);box-shadow:inset 0 -1px 0 color-mix(in srgb,var(--amber) 14%,transparent);}
.presence-break small{min-width:0;max-width:none;text-align:right;}
.presence-break .presence-dot{background:var(--amber);box-shadow:0 0 0 3px color-mix(in srgb,var(--amber) 22%,transparent);}
.presence-offline{background:var(--surface-2);color:var(--ink-3);}
.va-acts{position:absolute;top:16px;right:14px;display:flex;gap:2px;opacity:0;transition:opacity var(--t-fast);}
.va:hover .va-acts{opacity:1;}
.va-resp{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px;min-height:26px;}
.chip{font-size:11px;padding:4px 10px;border-radius:var(--r-xs);font-weight:600;white-space:nowrap;}
.va-foot{display:flex;gap:20px;padding-top:16px;border-top:1px solid var(--line);}
.va-foot div b{font-family:'Bricolage Grotesque',sans-serif;font-size:18px;font-weight:700;color:var(--heading);display:block;line-height:1.1;font-variant-numeric:tabular-nums;}
.va-foot div span{font-size:11px;color:var(--muted);font-weight:500;}

.schedule-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end;}

/* Category cards */
.catc{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;display:flex;align-items:center;gap:14px;box-shadow:var(--sh-sm);transition:transform var(--t) var(--ease-out),box-shadow var(--t),border-color var(--t);}
.catc:hover{transform:translateY(-2px);box-shadow:var(--sh);border-color:var(--line-3);}
.catc-sw{width:42px;height:42px;border-radius:11px;flex-shrink:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);}
.catc-nm{font-weight:700;font-size:14px;color:var(--heading);}
.catc-mt{font-size:11.5px;color:var(--muted);font-weight:450;margin-top:3px;}

/* =============================================================================
   SCHEDULE GRID
   ============================================================================= */
.sched-wrap{overflow-x:auto;margin:-4px;padding:4px;}
.sched{display:grid;grid-template-columns:84px repeat(5,minmax(124px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;min-width:620px;}
.schedule-head{align-items:flex-start;}
.schedule-scope{flex-shrink:0;}
.schedule-scope button{min-width:116px;justify-content:center;}
.sc{background:var(--surface);padding:5px;min-height:58px;cursor:pointer;transition:background var(--t-fast);}
.sc:hover{background:var(--blue-mist);}
.sc-head{background:var(--surface-2);font-weight:700;font-size:12px;text-align:center;padding:11px 6px;color:var(--heading);cursor:default;}
.sc-head.is-today{background:var(--navy);color:#fff;}
.sc-head.has-holiday{box-shadow:inset 0 3px 0 var(--blue-3);}
.sc-head.has-birthday:not(.has-holiday){box-shadow:inset 0 3px 0 #D47CB3;}
.sc-day-name{display:block;}
.sc-day-num{font-size:10px;font-weight:700;margin-top:2px;opacity:.68;}
.calendar-day-markers{display:flex;flex-direction:column;align-items:center;gap:3px;margin-top:7px;min-height:18px;}
.calendar-day-marker{max-width:100%;border-radius:var(--r-pill);padding:2px 6px;font-size:9px;font-weight:900;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.calendar-day-marker.is-holiday{background:var(--blue-soft);color:var(--blue-4);border:1px solid color-mix(in srgb,var(--blue) 22%,transparent);}
.calendar-day-marker.is-birthday{background:color-mix(in srgb,#F9E8F2 76%,var(--surface));color:#7D466F;border:1px solid color-mix(in srgb,#D47CB3 26%,transparent);}
.sc-head.is-today .calendar-day-marker.is-holiday{background:rgba(255,255,255,.92);color:#173A5C;border-color:rgba(255,255,255,.7);}
.sc-head.is-today .calendar-day-marker.is-birthday{background:rgba(249,232,242,.92);color:#74406E;border-color:rgba(255,255,255,.64);}
.sc-time{background:var(--surface-2);font-size:11px;color:var(--muted);text-align:right;padding:9px 9px 0 0;font-weight:600;cursor:default;font-variant-numeric:tabular-nums;}
.sc.is-today{background:rgba(92,155,214,.07);}
.sblock{--member-color:var(--blue);position:relative;color:var(--heading);background:color-mix(in srgb,var(--member-color) 9%,var(--surface));border:1px solid color-mix(in srgb,var(--member-color) 28%,var(--surface));border-left:4px solid var(--member-color);padding:5px 8px 5px 9px;border-radius:6px;font-size:11px;font-weight:700;cursor:pointer;line-height:1.25;word-break:break-word;margin-bottom:4px;box-shadow:0 1px 2px rgba(16,43,73,.08);transition:transform var(--t-fast),filter var(--t-fast),box-shadow var(--t-fast);}
.sblock:hover{transform:translateY(-1px);filter:brightness(1.02);box-shadow:var(--sh-xs);}
.sblock-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sblock small{display:block;font-size:9.5px;color:var(--ink-2);opacity:.9;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sblock-name b{float:right;font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;border-radius:var(--r-pill);padding:1px 5px;background:rgba(255,255,255,.8);color:var(--green-ink);margin-left:5px;}
.mine-sblock{color:#fff;background:linear-gradient(135deg,var(--member-color),color-mix(in srgb,var(--member-color) 78%,#0C2740));border-color:rgba(255,255,255,.18);border-left-color:rgba(255,255,255,.72);box-shadow:0 4px 10px rgba(16,43,73,.16),inset 0 0 0 1px rgba(255,255,255,.12);}
.mine-sblock small{color:rgba(255,255,255,.88);}
.team-sblock{min-height:30px;}
.sblock.is-active{background:linear-gradient(135deg,var(--green),color-mix(in srgb,var(--member-color) 64%,#0E4A34));color:#fff;border-color:rgba(46,157,107,.42);box-shadow:0 10px 22px -12px rgba(46,157,107,.9),0 0 0 1px rgba(255,255,255,.24);}
.sblock.is-active small{color:rgba(255,255,255,.9);}
.sblock.is-active .sblock-name b{background:rgba(255,255,255,.9);color:var(--green-ink);}
.sblock-more{font-size:10.5px;font-weight:700;color:var(--blue-4);background:var(--blue-soft);border:1px solid rgba(92,155,214,.22);border-radius:var(--r-xs);padding:4px 7px;text-align:center;}
.today-agenda{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:-4px 0 16px;}
.agenda-card{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 13px;display:flex;align-items:center;gap:10px;min-width:0;}
.agenda-card.is-now{background:color-mix(in srgb,var(--green-soft) 58%,var(--surface));border-color:rgba(46,157,107,.32);box-shadow:0 8px 22px -18px rgba(46,157,107,.8);}
.agenda-card.is-gap{background:var(--amber-soft);border-color:rgba(207,147,31,.25);}
.agenda-card.is-holiday{background:color-mix(in srgb,var(--blue-soft) 64%,var(--surface));border-color:color-mix(in srgb,var(--blue) 28%,var(--line));}
.agenda-card.is-birthday{background:color-mix(in srgb,#F9E8F2 62%,var(--surface));border-color:color-mix(in srgb,#D47CB3 30%,var(--line));}
.agenda-mark{width:9px;height:9px;border-radius:50%;background:var(--blue-3);flex-shrink:0;}
.agenda-card.is-now .agenda-mark{background:var(--green);}
.agenda-card.is-gap .agenda-mark{background:var(--amber);}
.agenda-card.is-holiday .agenda-mark{background:var(--blue-3);box-shadow:0 0 0 4px color-mix(in srgb,var(--blue) 12%,transparent);}
.agenda-card.is-birthday .agenda-mark{background:#D47CB3;box-shadow:0 0 0 4px rgba(212,124,179,.12);}
.agenda-card b{display:block;font-size:13px;color:var(--heading);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.agenda-card small{display:block;font-size:11.5px;color:var(--ink-2);font-weight:500;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.agenda-progress{display:block;height:5px;background:rgba(46,157,107,.14);border-radius:var(--r-pill);overflow:hidden;margin-top:8px;}
.agenda-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--green),#9ADAB3);border-radius:inherit;transition:width .45s var(--ease-out);}
.sc.is-now-hour{background:color-mix(in srgb,var(--amber-soft) 35%,var(--surface));}
.sc-time.is-now-hour{color:var(--green-ink);font-weight:800;background:var(--green-soft);}
@media (max-width:760px){.schedule-head{gap:12px;}.schedule-scope{width:100%;}.schedule-scope button{flex:1;min-width:0;}}

/* Company holidays */
#company-holidays-card:focus{outline:none;box-shadow:0 0 0 3px var(--blue-ring),var(--sh);}
.holgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;overflow:visible;}
@media (max-width:520px){.holgrid{grid-template-columns:1fr;overflow:hidden;}}
.hcard{--hcard-scrim:linear-gradient(90deg,rgba(255,255,255,.94) 0%,rgba(255,255,255,.78) 68%,rgba(255,255,255,0) 100%);--hcard-scene:none;--hcard-scene-position:center;position:relative;isolation:isolate;min-height:142px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 16px;transition:transform var(--t) var(--ease-out),box-shadow var(--t) var(--ease-out),border-color var(--t);overflow:hidden;will-change:transform;}
.hcard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--line-2);transition:width var(--t) var(--ease-out),background var(--t);z-index:3;pointer-events:none;}
.hcard::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 0%,color-mix(in srgb,#fff 20%,transparent) 46%,transparent 60%);transform:translateX(-130%);transition:transform .7s var(--ease-out);pointer-events:none;z-index:4;}
.hcard:hover{transform:translateY(-3px);box-shadow:var(--sh-md);border-color:var(--line-3);}
.hcard:hover::before{width:4px;}
.hcard:hover::after{transform:translateX(130%);}
.hcard-content{position:relative;z-index:6;display:inline-block;max-width:100%;margin:-2px 0 0 -6px;padding:3px 10px 7px 6px;border-radius:10px;background:var(--hcard-scrim);text-shadow:0 1px 0 rgba(255,255,255,.7);}
.hcard-art{position:absolute;inset:-18px;z-index:0;pointer-events:none;overflow:hidden;opacity:1;background-image:var(--hcard-scene);background-size:cover;background-position:var(--hcard-scene-position);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18),inset 0 -44px 84px rgba(12,39,64,.08);transform:scale(1.07);transform-origin:center;will-change:transform,filter,opacity,background-position;}
.hcard:not(.hcard-past) .hcard-art{animation:holSceneDrift 8s ease-in-out infinite alternate;}
.hscene{position:absolute;display:block;pointer-events:none;}
.hscene::before,.hscene::after{content:"";position:absolute;display:block;}
.hcard-theme-newyear{--hcard-scene:url("/holiday-scenes/newyear.webp");background:radial-gradient(126px 92px at 86% 14%,rgba(240,184,78,.22),transparent 68%),radial-gradient(118px 96px at 72% 86%,rgba(95,162,223,.16),transparent 72%),var(--surface);}
.hcard-theme-newyear::before{background:linear-gradient(180deg,#5FA2DF,#F0B84E);}
.hcard-art-newyear .hscene-sky{inset:0;background:radial-gradient(circle at 78% 20%,rgba(240,184,78,.28),transparent 20%),radial-gradient(circle at 92% 72%,rgba(95,162,223,.22),transparent 26%);animation:holHalo 4.8s ease-in-out infinite;}
.hcard-art-newyear .hscene-countdown{right:18px;bottom:20px;width:38px;height:38px;border-radius:50%;background:radial-gradient(circle,#fff 0 3px,transparent 4px),conic-gradient(from 0deg,#F0B84E,#5FA2DF,#EC6A63,#fff,#F0B84E);animation:holCountdown 1.7s ease-in-out infinite;filter:drop-shadow(0 0 15px rgba(240,184,78,.55));}
.hcard-art-newyear .hscene-firework-a,.hcard-art-newyear .hscene-firework-b,.hcard-art-newyear .hscene-firework-c,.hcard-art-independence .hscene-firework-a,.hcard-art-independence .hscene-firework-b,.hcard-art-independence .hscene-firework-c{width:114px;height:114px;border-radius:50%;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,1) 0 3px,transparent 4px),conic-gradient(from 16deg,transparent 0 6deg,rgba(95,162,223,.98) 7deg 12deg,transparent 13deg 25deg,rgba(240,184,78,.98) 26deg 32deg,transparent 33deg 44deg,rgba(255,255,255,.78) 45deg 50deg,transparent 51deg 66deg);animation:holFirework 3s cubic-bezier(.2,.7,.2,1) infinite;filter:drop-shadow(0 0 16px rgba(95,162,223,.44));}
.hcard-art-newyear .hscene-firework-a{right:8px;top:4px;}
.hcard-art-newyear .hscene-firework-b{right:66px;bottom:0;transform:scale(.7);animation-delay:1.1s;}
.hcard-art-newyear .hscene-firework-c{right:126px;top:42px;transform:scale(.5);animation-delay:2.1s;}
.hcard-art-newyear .hscene-confetti-a,.hcard-art-newyear .hscene-confetti-b{top:-12px;width:7px;height:18px;border-radius:999px;background:#F0B84E;animation:holConfetti 2.6s linear infinite;}
.hcard-art-newyear .hscene-confetti-a{right:96px;}
.hcard-art-newyear .hscene-confetti-b{right:142px;background:#5FA2DF;animation-delay:.75s;}
.hcard-art-newyear .hscene-lights{right:0;bottom:0;width:160px;height:48px;border-radius:50%;background:radial-gradient(circle at 20% 50%,rgba(255,255,255,.55),transparent 16%),radial-gradient(circle at 56% 46%,rgba(240,184,78,.46),transparent 18%),radial-gradient(circle at 84% 58%,rgba(236,106,99,.38),transparent 18%);animation:holLightFloat 4s ease-in-out infinite;}
.hcard-theme-memorial{--hcard-scene:url("/holiday-scenes/memorial.webp");background:radial-gradient(120px 82px at 84% 18%,rgba(95,162,223,.14),transparent 70%),radial-gradient(106px 78px at 96% 84%,rgba(208,68,62,.08),transparent 72%),var(--surface);}
.hcard-theme-memorial::before{background:linear-gradient(180deg,#5FA2DF,#D0443E);}
.hcard-art-memorial .hscene-ribbon{right:-30px;top:10px;width:178px;height:64px;border:2px solid rgba(95,162,223,.4);border-left:0;border-radius:0 64px 64px 0;transform:rotate(-8deg);animation:holRibbon 4.6s var(--ease) infinite;}
.hcard-art-memorial .hscene-flag,.hcard-art-independence .hscene-flag,.hcard-art-labor .hscene-flag{right:18px;bottom:24px;width:78px;height:34px;border-radius:6px;background:repeating-linear-gradient(180deg,#D0443E 0 4px,#fff 4px 8px);clip-path:polygon(0 0,100% 8%,94% 100%,0 88%);transform-origin:left center;animation:holFlagWave 1.65s ease-in-out infinite;box-shadow:-20px 0 0 -14px #1D4F91;}
.hcard-art-memorial .hscene-flag-pole,.hcard-art-independence .hscene-flag-pole{right:98px;bottom:16px;width:3px;height:58px;border-radius:99px;background:rgba(12,39,64,.48);}
.hcard-art-memorial .hscene-star-a,.hcard-art-memorial .hscene-star-b,.hcard-art-memorial .hscene-star-c{width:18px;height:18px;background:rgba(255,255,255,.95);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 56%,79% 91%,50% 70%,21% 91%,32% 56%,2% 35%,39% 35%);animation:holTwinkle 2.3s ease-in-out infinite;filter:drop-shadow(0 0 11px rgba(95,162,223,.55));}
.hcard-art-memorial .hscene-star-a{right:40px;top:16px;}
.hcard-art-memorial .hscene-star-b{right:86px;top:44px;animation-delay:.85s;}
.hcard-art-memorial .hscene-star-c{right:134px;top:22px;animation-delay:1.7s;}
.hcard-art-memorial .hscene-honor-glow{inset:auto 0 0 auto;width:166px;height:76px;background:radial-gradient(ellipse at 70% 80%,rgba(255,255,255,.3),transparent 68%);animation:holHonorGlow 5.2s ease-in-out infinite;}
.hcard-art-memorial .hscene-light-sweep{right:0;top:50px;width:148px;height:3px;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(208,68,62,.58),rgba(95,162,223,.52),transparent);animation:holRibbonLine 3.8s ease-in-out infinite;}
.hcard-theme-independence{--hcard-scene:url("/holiday-scenes/independence.webp");background:radial-gradient(112px 82px at 82% 18%,rgba(208,68,62,.16),transparent 70%),radial-gradient(126px 96px at 86% 88%,rgba(95,162,223,.18),transparent 70%),var(--surface);}
.hcard-theme-independence::before{background:linear-gradient(180deg,#D0443E,#5FA2DF);}
.hcard-art-independence .hscene-light-sweep{right:-12px;bottom:0;width:216px;height:112px;background:linear-gradient(120deg,transparent,rgba(255,255,255,.26),rgba(95,162,223,.24),transparent 68%);animation:holPatriotSweep 2.8s ease-in-out infinite;}
.hcard-art-independence .hscene-flag{right:20px;bottom:25px;width:86px;height:36px;animation-duration:1.25s;}
.hcard-art-independence .hscene-flag-pole{right:104px;bottom:16px;background:rgba(255,255,255,.72);}
.hcard-art-independence .hscene-firework-a{right:8px;top:4px;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.95) 0 2px,transparent 3px),conic-gradient(from 12deg,transparent 0 8deg,rgba(208,68,62,.9) 9deg 12deg,transparent 13deg 28deg,rgba(95,162,223,.9) 29deg 32deg,transparent 33deg 49deg,rgba(255,255,255,.62) 50deg 52deg,transparent 53deg 68deg);}
.hcard-art-independence .hscene-firework-b{right:78px;bottom:3px;transform:scale(.62);animation-delay:.95s;}
.hcard-art-independence .hscene-firework-c{right:126px;top:42px;transform:scale(.46);animation-delay:2s;}
.hcard-art-independence .hscene-spark-a,.hcard-art-independence .hscene-spark-b{right:118px;top:26px;width:64px;height:3px;border-radius:999px;background:linear-gradient(90deg,transparent,#fff,#D0443E,transparent);animation:holSparkTrail 1.8s ease-in-out infinite;transform:rotate(-36deg);}
.hcard-art-independence .hscene-spark-a{--spark-rot:-36deg;}
.hcard-art-independence .hscene-spark-b{--spark-rot:22deg;right:36px;top:86px;transform:rotate(22deg);animation-delay:.8s;background:linear-gradient(90deg,transparent,#fff,#5FA2DF,transparent);}
.hcard-theme-labor{--hcard-scene:url("/holiday-scenes/labor.webp");background:linear-gradient(135deg,rgba(47,148,101,.1),transparent 48%),radial-gradient(120px 82px at 92% 56%,rgba(95,113,134,.1),transparent 72%),var(--surface);}
.hcard-theme-labor::before{background:linear-gradient(180deg,#2F9465,#5F7186);}
.hcard-theme-labor:not(.hcard-past){z-index:6;overflow:hidden;}
.hcard-theme-labor:not(.hcard-past)::after{display:none;}
.hcard-art-labor{inset:0;overflow:hidden;border-radius:inherit;transform:none;background-image:repeating-linear-gradient(135deg,transparent 0 12px,rgba(47,148,101,.18) 13px 18px,transparent 19px 27px),linear-gradient(90deg,transparent 0%,rgba(255,255,255,.48) 42%,transparent 62%),var(--hcard-scene);background-size:104px 104px,210px 100%,cover;background-position:0 0,-210px 0,var(--hcard-scene-position);}
.hcard:not(.hcard-past) .hcard-art-labor{animation:holStripeShift 5.8s ease-in-out infinite;}
.hcard-art-labor .hscene-monitor{right:18px;bottom:24px;width:64px;height:40px;border-radius:6px;background:linear-gradient(180deg,#EFF9FF,#BFE4F7);border:2px solid rgba(12,39,64,.45);box-shadow:0 8px 0 -4px rgba(12,39,64,.32);animation:holComputerBounce 1.6s ease-in-out infinite;z-index:2;}
.hcard-art-labor .hscene-typing{right:32px;bottom:51px;width:32px;height:3px;border-radius:99px;background:#2F9465;box-shadow:0 8px 0 #5FA2DF,17px 16px 0 -1px #D0443E;animation:holTypingLines 1.1s steps(3,end) infinite;z-index:3;}
.hcard-art-labor .hscene-typing::after{right:-14px;top:-1px;width:3px;height:20px;border-radius:99px;background:#102B49;animation:holCursorBlink .65s steps(1,end) infinite;}
.hcard-art-labor .hscene-flag{right:98px;bottom:78px;width:62px;height:29px;animation-duration:1.2s;z-index:2;}
.hcard.is-next[data-holiday-state="locked"]{--holiday-crack-strength:.3;--holiday-crack-scale:.45;z-index:12;overflow:visible;animation:holHolidayBoxHit 12.8s ease-in-out 1 both;}
.hcard.is-next[data-holiday-state="locked"][data-crack-level="2"]{--holiday-crack-strength:.42;--holiday-crack-scale:.58;}
.hcard.is-next[data-holiday-state="locked"][data-crack-level="3"]{--holiday-crack-strength:.56;--holiday-crack-scale:.72;}
.hcard.is-next[data-holiday-state="locked"][data-crack-level="4"]{--holiday-crack-strength:.7;--holiday-crack-scale:.88;}
.hcard.is-next[data-holiday-state="locked"][data-crack-level="5"]{--holiday-crack-strength:.82;--holiday-crack-scale:1;}
.hcard.is-next[data-holiday-state="locked"] .hcard-art{clip-path:inset(0 round var(--r));}
.hcard.is-next[data-holiday-state="locked"].hcard-hammer-played{animation:none;transform:none;box-shadow:0 0 0 3px var(--blue-ring);}
.hcard-action-layer{position:absolute;inset:0;z-index:5;pointer-events:none;overflow:visible;}
.hcard-action-layer .hscene-hammer-rig{right:-36px;top:50px;width:72px;height:72px;opacity:1;transform-origin:42% 38%;animation:holHammerOutsideStrike 12.8s cubic-bezier(.22,.78,.26,1) 1 forwards;filter:drop-shadow(0 8px 12px rgba(12,39,64,.22));z-index:5;pointer-events:none;}
.hcard-action-layer .hhammer-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none;}
.hcard-action-layer .hscene-impact{right:4px;top:56px;width:42px;height:42px;border-radius:50%;background:radial-gradient(circle at 82% 50%,rgba(255,255,255,.98) 0 3px,rgba(240,184,78,.72) 4px 11px,rgba(236,106,99,.26) 12px 18px,rgba(95,162,223,.22) 19px 24px,transparent 25px);box-shadow:0 0 24px rgba(240,184,78,.46);opacity:0;animation:holHammerImpact 12.8s ease-out 1 forwards;z-index:4;clip-path:inset(0 round var(--r));}
.hcard-action-layer .hscene-crack-main,.hcard-action-layer .hscene-crack-top,.hcard-action-layer .hscene-crack-bottom{right:4px;top:50px;width:112px;height:66px;transform-origin:right center;opacity:0;z-index:4;overflow:hidden;clip-path:inset(0 round 2px);filter:drop-shadow(0 1px 0 rgba(255,255,255,.74)) drop-shadow(0 5px 10px rgba(7,24,42,.12));animation:holCrackBuild 12.8s steps(1,end) 1 forwards;}
.hcard-action-layer .hscene-crack-main{background:radial-gradient(circle at 100% 52%,rgba(7,24,42,.9) 0 3px,transparent 4px),linear-gradient(178deg,transparent 0 48%,rgba(7,24,42,var(--holiday-crack-strength)) 49% 54%,transparent 55%),linear-gradient(154deg,transparent 0 56%,rgba(7,24,42,.58) 57% 61%,transparent 62%),linear-gradient(26deg,transparent 0 57%,rgba(7,24,42,.5) 58% 63%,transparent 64%),linear-gradient(132deg,transparent 0 51%,rgba(7,24,42,.42) 52% 57%,transparent 58%);background-size:112px 66px,98px 18px,64px 22px,70px 24px,44px 18px;background-position:0 0,11px 30px,42px 15px,38px 39px,58px 24px;background-repeat:no-repeat;transform:scaleX(var(--holiday-crack-scale));}
.hcard-action-layer .hscene-crack-top{right:13px;top:42px;width:86px;height:48px;background:linear-gradient(143deg,transparent 0 47%,rgba(7,24,42,var(--holiday-crack-strength)) 48% 54%,transparent 55%),linear-gradient(116deg,transparent 0 48%,rgba(7,24,42,.46) 49% 54%,transparent 55%),linear-gradient(161deg,transparent 0 47%,rgba(7,24,42,.36) 48% 53%,transparent 54%);background-size:78px 18px,45px 16px,34px 13px;background-position:8px 21px,30px 8px,46px 30px;background-repeat:no-repeat;animation-delay:.18s;transform:rotate(-9deg) scaleX(var(--holiday-crack-scale));}
.hcard-action-layer .hscene-crack-bottom{right:12px;top:88px;width:92px;height:42px;background:linear-gradient(34deg,transparent 0 46%,rgba(7,24,42,var(--holiday-crack-strength)) 47% 54%,transparent 55%),linear-gradient(63deg,transparent 0 48%,rgba(7,24,42,.44) 49% 54%,transparent 55%),linear-gradient(12deg,transparent 0 48%,rgba(7,24,42,.34) 49% 54%,transparent 55%);background-size:82px 18px,49px 15px,34px 13px;background-position:5px 8px,34px 22px,54px 4px;background-repeat:no-repeat;animation-delay:.28s;transform:rotate(7deg) scaleX(var(--holiday-crack-scale));}
.hcard-action-layer .hscene-chip-a,.hcard-action-layer .hscene-chip-b,.hcard-action-layer .hscene-chip-c{right:20px;top:71px;width:6px;height:5px;border-radius:2px;background:linear-gradient(135deg,#F8FCFF,#5F7186);opacity:0;animation:holChipBurst 12.8s ease-out 1 forwards;z-index:5;}
.hcard-action-layer .hscene-chip-b{right:24px;top:63px;background:linear-gradient(135deg,#F0B84E,#B97817);animation-name:holChipBurstB;}
.hcard-action-layer .hscene-chip-c{right:22px;top:85px;width:7px;height:4px;background:linear-gradient(135deg,#EFF9FF,#5FA2DF);animation-name:holChipBurstC;}
.hcard-hammer-played .hscene-hammer-rig,.hcard-action-played .hscene-hammer-rig,.hcard-action-played .hscene-impact,.hcard-action-played .hscene-chip-a,.hcard-action-played .hscene-chip-b,.hcard-action-played .hscene-chip-c{display:none;}
.hcard-hammer-played .hcard-action-layer .hscene-crack-main,.hcard-hammer-played .hcard-action-layer .hscene-crack-top,.hcard-hammer-played .hcard-action-layer .hscene-crack-bottom,.hcard-action-played .hscene-crack-main,.hcard-action-played .hscene-crack-top,.hcard-action-played .hscene-crack-bottom{opacity:1;animation:none;}
.hcard-theme-thanksgiving{--hcard-scene:url("/holiday-scenes/thanksgiving.webp");background:radial-gradient(136px 98px at 88% 22%,rgba(185,120,23,.17),transparent 72%),radial-gradient(104px 80px at 96% 86%,rgba(236,106,99,.1),transparent 74%),var(--surface);}
.hcard-theme-thanksgiving::before{background:linear-gradient(180deg,#B97817,#EC6A63);}
.hcard-art-thanksgiving .hscene-table-glow{right:0;bottom:0;width:166px;height:78px;background:radial-gradient(ellipse at 72% 92%,rgba(240,184,78,.38),transparent 66%);animation:holWarmGlow 3.8s ease-in-out infinite;}
.hcard-art-thanksgiving .hscene-leaf-a,.hcard-art-thanksgiving .hscene-leaf-b,.hcard-art-thanksgiving .hscene-leaf-c,.hcard-art-thanksgiving .hscene-leaf-d{width:30px;height:16px;border-radius:90% 8px 90% 8px;background:linear-gradient(135deg,rgba(236,106,99,.9),rgba(240,184,78,.68));box-shadow:0 8px 18px rgba(185,120,23,.22);animation:holLeaf 3.6s var(--ease) infinite;}
.hcard-art-thanksgiving .hscene-leaf-a{right:22px;top:10px;}
.hcard-art-thanksgiving .hscene-leaf-b{right:74px;top:38px;width:20px;height:11px;animation-delay:.8s;}
.hcard-art-thanksgiving .hscene-leaf-c{right:126px;top:8px;width:18px;height:10px;animation-delay:1.5s;}
.hcard-art-thanksgiving .hscene-leaf-d{right:44px;top:-8px;width:24px;height:13px;animation-delay:2.2s;}
.hcard-art-thanksgiving .hscene-candle{right:22px;bottom:25px;width:24px;height:36px;border-radius:12px 12px 8px 8px;background:radial-gradient(circle at 50% 20%,#fff 0 2px,transparent 3px),linear-gradient(180deg,#F0B84E,#B97817);animation:holCandle 1.6s ease-in-out infinite;filter:drop-shadow(0 0 14px rgba(240,184,78,.48));}
.hcard-art-thanksgiving .hscene-steam-a,.hcard-art-thanksgiving .hscene-steam-b{right:78px;bottom:54px;width:34px;height:46px;border-radius:50%;border-left:2px solid rgba(255,255,255,.72);animation:holSteam 2.6s ease-in-out infinite;}
.hcard-art-thanksgiving .hscene-steam-b{right:112px;bottom:48px;animation-delay:1.1s;transform:scale(.78);}
.hcard-theme-christmas{--hcard-scene:url("/holiday-scenes/christmas.webp");background:radial-gradient(128px 96px at 84% 18%,rgba(47,148,101,.18),transparent 72%),radial-gradient(96px 78px at 84% 86%,rgba(208,68,62,.14),transparent 72%),var(--surface);}
.hcard-theme-christmas::before{background:linear-gradient(180deg,#2F9465,#D0443E);}
.hcard-art-christmas .hscene-snow-a,.hcard-art-christmas .hscene-snow-b,.hcard-art-christmas .hscene-snow-c{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,1);box-shadow:18px 22px 0 -2px rgba(255,255,255,.9),54px 12px 0 -3px rgba(255,255,255,.82),88px 34px 0 -2px rgba(255,255,255,.88),126px 18px 0 -3px rgba(255,255,255,.74),0 0 14px rgba(255,255,255,.72);animation:holSnow 2.8s linear infinite;}
.hcard-art-christmas .hscene-snow-a{right:24px;top:-8px;}
.hcard-art-christmas .hscene-snow-b{right:78px;top:-14px;animation-delay:.9s;transform:scale(.72);}
.hcard-art-christmas .hscene-snow-c{right:132px;top:-10px;animation-delay:1.8s;transform:scale(.86);}
.hcard-art-christmas .hscene-ornament-a,.hcard-art-christmas .hscene-ornament-b,.hcard-art-christmas .hscene-ornament-c{width:11px;height:11px;border-radius:50%;background:#F0B84E;box-shadow:0 0 18px rgba(240,184,78,.78);animation:holOrnamentGlow 1.8s ease-in-out infinite;}
.hcard-art-christmas .hscene-ornament-a{right:44px;bottom:48px;}
.hcard-art-christmas .hscene-ornament-b{right:84px;bottom:74px;background:#D0443E;animation-delay:.55s;}
.hcard-art-christmas .hscene-ornament-c{right:28px;bottom:92px;background:#5FA2DF;animation-delay:1s;}
.hcard-art-christmas .hscene-tree-glow{right:5px;top:4px;width:112px;height:112px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.68),transparent 60%);animation:holGlow 3.6s ease-in-out infinite;}
.hcard-art-christmas .hscene-winter-glow{right:6px;bottom:3px;width:142px;height:30px;border-radius:50%;background:radial-gradient(ellipse,rgba(255,255,255,.36),transparent 68%);animation:holSnowBase 4.2s ease-in-out infinite;}
.hcard-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;}
.hcard-name{font-family:'Bricolage Grotesque',sans-serif;font-weight:600;font-size:14.5px;color:var(--heading);letter-spacing:-.01em;line-height:1.2;}
.hcard-date{font-size:13px;font-weight:600;color:var(--ink);}
.hcard-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:7px;}
.hcard-when{font-size:11px;font-weight:600;color:var(--muted);}
.hcard-obs{font-size:10px;font-weight:700;color:var(--amber-ink);background:var(--amber-soft);border-radius:var(--r-xs);padding:2px 7px;letter-spacing:.02em;}
.hcard-flag{position:relative;overflow:hidden;font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--blue-3);border-radius:var(--r-pill);padding:3px 8px;flex-shrink:0;}
.hcard-flag::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 0%,rgba(255,255,255,.5) 45%,transparent 60%);transform:translateX(-130%);animation:aiviraShimmer 5.4s var(--ease-out) infinite;pointer-events:none;}
.hcard.is-next{border-color:var(--blue-2);box-shadow:0 0 0 3px var(--blue-ring);}
.hcard.is-next::before{background:var(--blue-3);}
.hcard.is-next .hcard-when{color:var(--blue-4);}
.hcard.hcard-today{border-color:var(--green);box-shadow:0 0 0 3px rgba(46,157,107,.18);}
.hcard.hcard-today::before{background:var(--green);}
.hcard.hcard-today .hcard-when{color:var(--green-ink);}
.hcard.hcard-past{opacity:1;}
.hcard.hcard-past .hcard-art{opacity:.78;filter:grayscale(1) blur(1.8px) contrast(.9) brightness(.92);transform:scale(1.05);}
.hcard.hcard-past .hcard-content{background:linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.84) 72%,rgba(255,255,255,.18) 100%);text-shadow:0 1px 0 rgba(255,255,255,.8);}
.hcard.hcard-past .hcard-art,.hcard.hcard-past .hcard-art::before,.hcard.hcard-past .hcard-art::after,.hcard.hcard-past .hcard-art span,.hcard.hcard-past .hcard-art span::before,.hcard.hcard-past .hcard-art span::after{animation:none!important;}
.hcard.hcard-past::before{background:var(--line-2);}
/* premium entrance: cards rise in sequence each time the Calendar tab opens */
@keyframes holSceneDrift{0%{transform:scale(1.07) translate3d(-12px,-7px,0);}50%{transform:scale(1.13) translate3d(10px,6px,0);}100%{transform:scale(1.09) translate3d(-5px,12px,0);}}
@keyframes holRise{from{opacity:0;transform:translateY(12px) scale(.985);}to{opacity:1;transform:none;}}
@keyframes holNextGlow{0%,100%{box-shadow:0 0 0 3px var(--blue-ring);}50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--blue-2) 26%,transparent),0 10px 26px -12px color-mix(in srgb,var(--blue-3) 55%,transparent);}}
@keyframes holFirework{0%,56%,100%{opacity:.08;transform:scale(.16) rotate(0deg);}9%{opacity:1;transform:scale(1.22) rotate(30deg);}22%{opacity:.92;transform:scale(1.52) rotate(58deg);}37%{opacity:.18;transform:scale(1.78) rotate(86deg);}}
@keyframes holHalo{0%,100%{opacity:.22;transform:scale(.88) translateX(0);}48%{opacity:.62;transform:scale(1.16) translateX(-12px);}}
@keyframes holCountdown{0%,100%{opacity:.74;transform:scale(.86) rotate(-10deg);}50%{opacity:1;transform:scale(1.16) rotate(10deg);}}
@keyframes holConfetti{0%{opacity:0;transform:translateY(-10px) rotate(0deg);}14%{opacity:1;}100%{opacity:0;transform:translateY(126px) rotate(260deg);}}
@keyframes holLightFloat{0%,100%{opacity:.36;transform:translateX(8px) scale(.92);}50%{opacity:.76;transform:translateX(-12px) scale(1.1);}}
@keyframes holRibbon{0%,100%{transform:translateX(0) rotate(-10deg) scale(.98);opacity:.36;}45%{transform:translateX(-24px) rotate(-1deg) scale(1.04);opacity:.86;}70%{transform:translateX(-9px) rotate(-6deg) scale(1);opacity:.52;}}
@keyframes holRibbonLine{0%,100%{opacity:.24;transform:translateX(30px);}50%{opacity:.82;transform:translateX(-28px);}}
@keyframes holTwinkle{0%,100%{opacity:.22;transform:scale(.62);}38%{opacity:1;transform:scale(1.65);}58%{opacity:.5;transform:scale(.96);}}
@keyframes holHonorGlow{0%,100%{opacity:.25;transform:scale(.92);}50%{opacity:.62;transform:scale(1.1);}}
@keyframes holFlagWave{0%,100%{transform:skewY(-4deg) scaleX(.96) translateY(0);}35%{transform:skewY(7deg) scaleX(1.03) translateY(-2px);}70%{transform:skewY(-8deg) scaleX(.98) translateY(1px);}}
@keyframes holPatriotSweep{0%,100%{opacity:.22;transform:translateX(42px);}48%{opacity:.64;transform:translateX(-26px);}}
@keyframes holSparkTrail{0%,100%{opacity:0;transform:translateX(32px) rotate(var(--spark-rot,0deg)) scaleX(.4);}45%{opacity:.88;transform:translateX(-16px) rotate(var(--spark-rot,0deg)) scaleX(1.1);}}
@keyframes holStripeShift{from{background-position:0 0,-190px 0,var(--hcard-scene-position);}to{background-position:120px 0,190px 0,var(--hcard-scene-position);}}
@keyframes holPanelBreath{0%,100%{opacity:.34;transform:translateX(6px) scale(.98);}50%{opacity:.72;transform:translateX(-8px) scale(1.04);}}
@keyframes holHolidayBoxHit{0%,7%,12%,19%,24%,31%,36%,43%,48%,55%,60%,70%,100%{transform:translate3d(0,0,0);box-shadow:0 0 0 3px var(--blue-ring);}10%,22%,34%,46%,58%{transform:translate3d(-2px,0,0) rotate(-.25deg);box-shadow:0 0 0 3px rgba(240,184,78,.32),0 12px 24px -18px rgba(12,39,64,.42);}11%,23%,35%,47%,59%{transform:translate3d(1px,0,0) rotate(.12deg);box-shadow:0 0 0 3px rgba(95,162,223,.26),0 10px 20px -18px rgba(12,39,64,.36);}}
@keyframes holHammerOutsideStrike{0%,4%{opacity:1;transform:translate3d(28px,-10px,0) rotate(13deg) scale(1);}7%,19%,31%,43%,55%{opacity:1;transform:translate3d(20px,-18px,0) rotate(-11deg) scale(1.02);}10%,22%,34%,46%,58%{opacity:1;transform:translate3d(-18px,2px,0) rotate(7deg) scale(1.02);}11%,23%,35%,47%,59%{opacity:1;transform:translate3d(6px,-8px,0) rotate(2deg) scale(1);}64%,70%{opacity:1;transform:translate3d(18px,-10px,0) rotate(10deg) scale(.99);}86%,100%{opacity:0;transform:translate3d(42px,-28px,0) rotate(15deg) scale(.96);}}
@keyframes holHammerImpact{0%,9%,11%,21%,23%,33%,35%,45%,47%,57%,59%,100%{opacity:0;transform:scale(.24);}10%,22%,34%,46%,58%{opacity:.95;transform:scale(1);}10.8%,22.8%,34.8%,46.8%,58.8%{opacity:.2;transform:scale(1.7);}}
@keyframes holCrackBuild{0%,9%{opacity:0;}10%,21%{opacity:.3;}22%,33%{opacity:.48;}34%,45%{opacity:.66;}46%,57%{opacity:.84;}58%,100%{opacity:1;}}
@keyframes holChipBurst{0%,9%,11%,21%,23%,33%,35%,45%,47%,57%,59%,100%{opacity:0;transform:translate(0,0) rotate(0) scale(.7);}10%,22%,34%,46%,58%{opacity:.95;transform:translate(-14px,-8px) rotate(35deg) scale(1);}10.9%,22.9%,34.9%,46.9%,58.9%{opacity:0;transform:translate(-34px,-18px) rotate(120deg) scale(.62);}}
@keyframes holChipBurstB{0%,9%,11%,21%,23%,33%,35%,45%,47%,57%,59%,100%{opacity:0;transform:translate(0,0) rotate(0) scale(.7);}10%,22%,34%,46%,58%{opacity:.9;transform:translate(-12px,5px) rotate(-26deg) scale(1);}10.9%,22.9%,34.9%,46.9%,58.9%{opacity:0;transform:translate(-32px,14px) rotate(-104deg) scale(.62);}}
@keyframes holChipBurstC{0%,9%,11%,21%,23%,33%,35%,45%,47%,57%,59%,100%{opacity:0;transform:translate(0,0) rotate(0) scale(.7);}10%,22%,34%,46%,58%{opacity:.82;transform:translate(-16px,11px) rotate(22deg) scale(1);}10.9%,22.9%,34.9%,46.9%,58.9%{opacity:0;transform:translate(-36px,23px) rotate(92deg) scale(.62);}}
@keyframes holComputerBounce{0%,100%{transform:translateY(0) rotate(.2deg);}50%{transform:translateY(-2px) rotate(-.4deg);}}
@keyframes holTypingLines{0%{clip-path:inset(0 100% 0 0);}35%{clip-path:inset(0 36% 0 0);}70%,100%{clip-path:inset(0 0 0 0);}}
@keyframes holCursorBlink{0%,49%{opacity:1;}50%,100%{opacity:.08;}}
@keyframes holWarmGlow{0%,100%{opacity:.28;transform:scale(.94);}50%{opacity:.68;transform:scale(1.14);}}
@keyframes holLeaf{0%,100%{opacity:.24;transform:translate(0,0) rotate(-34deg) scale(.78);}34%{opacity:1;transform:translate(-24px,24px) rotate(10deg) scale(1.14);}72%{opacity:.62;transform:translate(-58px,48px) rotate(34deg) scale(.98);}}
@keyframes holCandle{0%,100%{opacity:.72;transform:scaleY(.92);filter:drop-shadow(0 0 8px rgba(240,184,78,.35));}50%{opacity:1;transform:scaleY(1.08);filter:drop-shadow(0 0 18px rgba(240,184,78,.72));}}
@keyframes holSteam{0%,100%{opacity:0;transform:translateY(12px) translateX(0) scale(.7);}35%{opacity:.72;}85%{opacity:.08;transform:translateY(-30px) translateX(-12px) scale(1.12);}}
@keyframes holSnow{0%{opacity:0;transform:translateY(0) translateX(0) scale(.7);}12%{opacity:1;}78%{opacity:.9;}100%{opacity:0;transform:translateY(146px) translateX(-42px) scale(1.18);}}
@keyframes holGlow{0%,100%{opacity:.46;transform:scale(.84);}50%{opacity:.94;transform:scale(1.22);}}
@keyframes holSnowBase{0%,100%{opacity:.24;transform:scaleX(.78);}50%{opacity:.64;transform:scaleX(1.18);}}
@keyframes holOrnamentGlow{0%,100%{opacity:.48;transform:scale(.84);}50%{opacity:1;transform:scale(1.28);}}
#panel-schedule.active .hcard{animation:holRise .44s var(--ease-out) backwards;}
#panel-schedule.active .hcard:nth-child(1){animation-delay:.08s;}
#panel-schedule.active .hcard:nth-child(2){animation-delay:.13s;}
#panel-schedule.active .hcard:nth-child(3){animation-delay:.18s;}
#panel-schedule.active .hcard:nth-child(4){animation-delay:.23s;}
#panel-schedule.active .hcard:nth-child(5){animation-delay:.28s;}
#panel-schedule.active .hcard:nth-child(6){animation-delay:.33s;}
/* the "Next up" holiday: rise in, then a slow, calm breathing glow */
#panel-schedule.active .hcard.is-next{animation:holRise .44s var(--ease-out) backwards,holNextGlow 3.8s var(--ease) 1.1s infinite;}
#panel-schedule.active .hcard.is-next[data-holiday-state="locked"]{animation:holRise .44s var(--ease-out) backwards,holHolidayBoxHit 12.8s ease-in-out 1 both;}
#panel-schedule.active .hcard.is-next[data-holiday-state="locked"].hcard-hammer-played{animation:none;transform:none;}
[data-theme="dark"] .hcard{--hcard-scrim:linear-gradient(90deg,rgba(7,24,42,.9) 0%,rgba(7,24,42,.72) 68%,rgba(7,24,42,0) 100%);}
[data-theme="dark"] .hcard::after{background:linear-gradient(115deg,transparent 0%,rgba(180,210,240,.12) 46%,transparent 60%);}
[data-theme="dark"] .hcard-content{text-shadow:0 1px 10px rgba(0,0,0,.42);}
[data-theme="dark"] .hcard-art{opacity:.9;box-shadow:inset 0 0 0 1px rgba(180,210,240,.08),inset 0 -44px 84px rgba(0,0,0,.22);}
[data-theme="dark"] .hcard.hcard-past .hcard-art{opacity:.66;filter:grayscale(1) blur(1.8px) contrast(.86) brightness(.78);}
[data-theme="dark"] .hcard.hcard-past .hcard-content{background:linear-gradient(90deg,rgba(7,24,42,.94) 0%,rgba(7,24,42,.82) 72%,rgba(7,24,42,.2) 100%);}
@media (prefers-reduced-motion:reduce){
  .hcard,.hcard::after,.hcard-flag::after,.hcard-art,.hcard-art::before,.hcard-art::after,.hcard-art span,.hcard-art span::before,.hcard-art span::after,#panel-schedule.active .hcard,#panel-schedule.active .hcard.is-next{animation:none!important;transition:none!important;}
  .birthday-overlay.show,.birthday-alert-card,.birthday-center,.birthday-center::before,.birthday-marquee-lights i,.birthday-streamers i,.birthday-confetti-rain i,.birthday-balloon-field i,.birthday-stage-lights i,.birthday-stage-floor i,.birthday-avatar-orbit>span,.birthday-cake .flame,.birthday-crowd i,.birthday-notes i,.birthday-mini-scene i,.birthday-chip,.birthday-greeting-row,.birthday-primary,.birthday-confetti-host .confetti{animation:none!important;transition:none!important;}
  .birthday-confetti-rain,.birthday-stage-lights,.birthday-notes{display:none;}
  .hcard.is-next[data-holiday-state="locked"] .hscene-hammer-rig,.hcard.is-next[data-holiday-state="locked"] .hscene-impact,.hcard.is-next[data-holiday-state="locked"] .hscene-chip-a,.hcard.is-next[data-holiday-state="locked"] .hscene-chip-b,.hcard.is-next[data-holiday-state="locked"] .hscene-chip-c{display:none;}
  .hcard.is-next[data-holiday-state="locked"] .hscene-crack-main,.hcard.is-next[data-holiday-state="locked"] .hscene-crack-top,.hcard.is-next[data-holiday-state="locked"] .hscene-crack-bottom{opacity:1;}
  .hcard-art{opacity:.9;}
  .hcard.hcard-past .hcard-art{opacity:.72;filter:grayscale(1) blur(1.8px) contrast(.9) brightness(.92);}
  .hcard:hover{transform:none;}
  .hcard:hover::after{transform:translateX(-130%);}
}
@media (max-width:520px){.hcard.is-next[data-holiday-state="locked"]{overflow:hidden;}.hcard.is-next[data-holiday-state="locked"] .hcard-art{overflow:hidden;}.hcard.is-next[data-holiday-state="locked"] .hscene-hammer-rig{right:8px;top:56px;width:58px;height:58px;opacity:1;}}

/* =============================================================================
   TASKS - toolbar, filters, list, board
   ============================================================================= */
.workboard-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px;}
.wb-stat{background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--blue-mist) 50%,var(--surface)));border:1px solid var(--line);border-radius:var(--r);padding:15px 17px;box-shadow:var(--sh-sm);position:relative;overflow:hidden;transition:border-color var(--t-fast),box-shadow var(--t-fast),transform var(--t-fast);}
.wb-stat:hover{border-color:var(--line-2);box-shadow:var(--sh);transform:translateY(-2px);}
.wb-stat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--blue);}
.wb-stat.green{background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--green-soft) 42%,var(--surface)));}
.wb-stat.amber{background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--amber-soft) 42%,var(--surface)));}
.wb-stat.coral{background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--coral-soft) 42%,var(--surface)));}
.wb-stat.green::before{background:var(--green);}
.wb-stat.amber::before{background:var(--amber);}
.wb-stat.coral::before{background:var(--coral);}
.wb-stat span{display:block;font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:6px;}
.wb-stat b{font-family:'Bricolage Grotesque',sans-serif;font-size:26px;line-height:1;font-weight:700;color:var(--heading);font-variant-numeric:tabular-nums;}
.ttoolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:18px;}
.search{position:relative;flex:1;min-width:200px;}
.search svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--muted);pointer-events:none;}
.search input{width:100%;padding:10px 13px 10px 37px;border:1px solid var(--line-2);border-radius:var(--r-sm);font-family:inherit;font-size:13.5px;color:var(--ink);background:var(--surface);transition:border-color var(--t-fast),box-shadow var(--t-fast),background var(--t-fast);}
.search input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-ring);}
.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:3px;gap:2px;}
.seg button{border:none;background:transparent;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--ink-2);padding:7px 13px;border-radius:var(--r-xs);cursor:pointer;display:flex;align-items:center;gap:6px;transition:background var(--t-fast),color var(--t-fast),box-shadow var(--t-fast);}
.seg button svg{width:15px;height:15px;}
.seg button.on{background:var(--surface);color:var(--heading);box-shadow:var(--sh-sm);}
.task-scope button{min-width:92px;justify-content:center;}
.filters{display:flex;gap:11px;flex-wrap:wrap;margin-bottom:20px;padding:16px;background:var(--surface-card);border:1px solid var(--line);border-radius:var(--r);align-items:flex-end;}
.filter-date-fld{max-width:155px;}

.tgroup{margin-bottom:22px;}
.tgroup-h{display:flex;align-items:center;gap:11px;margin-bottom:10px;}
.tgroup-sw{width:13px;height:13px;border-radius:4px;}
.tgroup-nm{font-family:'Bricolage Grotesque',sans-serif;font-weight:600;font-size:14px;color:var(--heading);}
.tgroup-ct{margin-left:auto;font-size:11px;color:var(--ink-2);font-weight:700;background:var(--surface);padding:3px 10px;border-radius:var(--r-pill);border:1px solid var(--line);}
.trow{display:grid;grid-template-columns:4px 1fr auto auto auto auto auto;gap:13px;align-items:center;padding:13px 16px 13px 0;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);margin-bottom:7px;transition:border-color var(--t-fast),box-shadow var(--t-fast),transform var(--t-fast);overflow:hidden;cursor:pointer;}
.trow:hover{border-color:var(--line-3);box-shadow:var(--sh-sm);transform:translateX(1px);}
.trow:active{transform:translateX(1px) scale(.997);}
.trow.readonly{background:color-mix(in srgb,var(--surface-2) 42%,var(--surface));border-color:var(--line);cursor:pointer;}
.trow.readonly:hover{transform:none;box-shadow:var(--sh-xs);}
.trow-accent{width:4px;align-self:stretch;}
.trow-title{font-weight:600;font-size:13.5px;color:var(--heading);display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.trow-desc{font-size:12px;color:var(--muted);font-weight:450;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px;}
.trow-created{font-size:11px;color:var(--ink-2);font-weight:650;margin-top:4px;white-space:nowrap;}
.assignee{font-size:11px;padding:4px 11px;border-radius:var(--r-pill);font-weight:600;background:var(--blue-soft);color:var(--blue-4);white-space:nowrap;}
.assignee-with-avatar{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 4px;}
.status{font-size:10.5px;font-weight:800;padding:4px 11px;border-radius:var(--r-pill);white-space:nowrap;letter-spacing:.035em;cursor:pointer;border:1px solid transparent;transition:filter var(--t-fast),transform var(--t-fast),box-shadow var(--t-fast);}
.status:hover{filter:brightness(.96);transform:translateY(-1px);}
.st-pending{background:linear-gradient(180deg,color-mix(in srgb,var(--task-pending-soft) 92%,var(--surface)),var(--task-pending-soft));color:var(--task-pending-ink);border-color:color-mix(in srgb,var(--task-pending) 28%,transparent);box-shadow:inset 0 -1px 0 color-mix(in srgb,var(--task-pending) 16%,transparent);}
.st-progress{background:linear-gradient(180deg,color-mix(in srgb,var(--task-progress-soft) 92%,var(--surface)),var(--task-progress-soft));color:var(--task-progress-ink);border-color:color-mix(in srgb,var(--task-progress) 20%,transparent);}
.st-done{background:var(--green-soft);color:var(--green-ink);}
.st-blocked{background:linear-gradient(180deg,color-mix(in srgb,var(--task-blocked-soft) 92%,var(--surface)),var(--task-blocked-soft));color:var(--task-blocked-ink);border-color:color-mix(in srgb,var(--task-blocked) 36%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--task-blocked) 8%,transparent),inset 0 -1px 0 color-mix(in srgb,var(--task-blocked) 18%,transparent);}
.st-completed{background:linear-gradient(180deg,color-mix(in srgb,var(--task-completed-soft) 88%,var(--surface)),var(--task-completed-soft));color:var(--task-completed-ink);border-color:color-mix(in srgb,var(--task-completed) 20%,transparent);}
.pdot{width:9px;height:9px;border-radius:50%;}
.p-high{background:var(--coral);}.p-med{background:var(--amber);}.p-low{background:var(--line-3);}
.due{font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:var(--r-xs);white-space:nowrap;}
.due-over{background:var(--coral-soft);color:var(--coral-ink);}.due-soon{background:var(--amber-soft);color:var(--amber-ink);}.due-ok{background:var(--surface-2);color:var(--ink-2);}.due-none{background:var(--surface-2);color:var(--muted);}
@media (max-width:760px){.trow{grid-template-columns:4px 1fr auto;row-gap:9px;}.trow>.trow-body{grid-column:2 / -1;}}
@media (max-width:860px){.workboard-summary{grid-template-columns:repeat(2,minmax(0,1fr));}.task-scope{width:100%;}.task-scope button{flex:1;}}
@media (max-width:520px){.workboard-summary{grid-template-columns:1fr;}.seg{width:100%;}.seg button{flex:1;justify-content:center;}.ttoolbar .search{min-width:100%;}}

.board{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;align-items:stretch;}
@media (max-width:900px){.board{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:560px){.board{grid-template-columns:1fr;}}
.kcol{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);padding:10px;display:flex;flex-direction:column;min-height:240px;max-height:calc(100vh - 215px);box-shadow:var(--sh-xs);}
.kcol-h{display:flex;align-items:center;gap:8px;padding:6px 6px 12px;}
.kcol-dot{width:9px;height:9px;border-radius:50%;}
.kcol-name{font-weight:700;font-size:12.5px;color:var(--heading);letter-spacing:-.01em;}
.kcol-ct{font-size:11px;font-weight:700;color:var(--ink-2);background:var(--surface);border:1px solid var(--line);padding:1px 8px;border-radius:var(--r-pill);}
.kcol-add{margin-left:auto;width:24px;height:24px;border-radius:var(--r-xs);border:1px solid var(--line);background:var(--surface);cursor:pointer;display:grid;place-items:center;color:var(--ink-2);transition:all var(--t-fast);}
.kcol-add:hover{background:var(--blue-3);color:#fff;border-color:var(--blue-3);transform:rotate(90deg);}
.kcol-add svg{width:14px;height:14px;}
.qadd{margin-bottom:8px;}
.qadd input{width:100%;padding:9px 11px;border:1px solid var(--blue);border-radius:var(--r-sm);font-family:inherit;font-size:13px;box-shadow:0 0 0 3px var(--blue-ring);}
.qadd input:focus{outline:none;}
.kcol-body{display:flex;flex-direction:column;gap:8px;flex:1;min-height:80px;overflow-y:auto;overflow-x:hidden;border-radius:var(--r-sm);padding:2px;transition:background var(--t-fast);overscroll-behavior:contain;}
.kcol-body.drop-hover{background:var(--blue-soft);outline:2px dashed var(--blue);outline-offset:-3px;}
.kcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px;box-shadow:var(--sh-xs);border-left:3px solid var(--blue);transition:box-shadow var(--t-fast),transform var(--t-fast),border-color var(--t-fast),background var(--t-fast);}
.kcard:hover{box-shadow:0 0 0 3px var(--blue-ring),var(--sh);transform:translateY(-2px);border-color:color-mix(in srgb,var(--blue-2) 22%,var(--line-2));}
.kcard:active{transform:translateY(0) scale(.995);}
.kcard.can-move{cursor:grab;}
.kcard.can-move:active{cursor:grabbing;}
.kcard.readonly{cursor:pointer;background:color-mix(in srgb,var(--surface-2) 42%,var(--surface));border-color:var(--line);}
.kcard.readonly:hover{transform:translateY(-1px);box-shadow:var(--sh-sm);}
.kcard.dragging{opacity:.5;transform:scale(.98);box-shadow:var(--sh-md);}
.kcard-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px;}
.kcard-status{display:inline-flex;align-items:center;border-radius:var(--r-pill);padding:3px 8px;font-size:9.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;}
.kcard-due{font-size:10px;font-weight:800;white-space:nowrap;}
.kcard-title{font-size:13px;font-weight:600;color:var(--heading);line-height:1.4;}
.kcard-meta{display:flex;align-items:center;gap:8px;margin-top:11px;flex-wrap:wrap;}
.kcard .badge-c{display:flex;align-items:center;gap:5px;font-size:10.5px;font-weight:600;color:var(--muted);}
.task-creator{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;color:var(--ink-2);background:color-mix(in srgb,var(--blue-soft) 58%,var(--surface));border:1px solid color-mix(in srgb,var(--blue-2) 20%,var(--line));border-radius:var(--r-pill);padding:3px 8px;white-space:nowrap;}
.kcard-foot{display:flex;align-items:center;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--line);}
.task-owner{display:flex;align-items:center;gap:7px;min-width:0;font-size:11.5px;font-weight:700;color:var(--heading);}
.task-owner span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.task-action-hint{margin-left:auto;font-size:10.5px;font-weight:700;color:var(--muted);white-space:nowrap;}
.readonly-chip,.claim-chip{font-size:10px;font-weight:700;border-radius:var(--r-xs);padding:3px 8px;letter-spacing:.02em;white-space:nowrap;}
.readonly-chip{background:var(--surface-2);color:var(--muted);border:1px solid var(--line);}
.claim-chip{background:var(--green-soft);color:var(--green-ink);}
.kempty{text-align:center;padding:18px 8px;color:var(--muted);font-size:12px;font-weight:500;}
/* ---- Task Board enhancements ---- */
.kcol{position:relative;border-top:0;background:linear-gradient(180deg,color-mix(in srgb,var(--kc,var(--blue)) 4%,var(--surface-2)),var(--surface-2));box-shadow:var(--sh-xs);}
.kcol::before{content:"";position:absolute;top:-1px;left:12px;right:12px;height:3px;border-radius:var(--r-pill);background:var(--kc,var(--blue));box-shadow:0 1px 0 color-mix(in srgb,var(--kc,var(--blue)) 18%,transparent);}
.kcol-h{position:relative;margin:-10px -10px 10px;padding:12px 12px;border-radius:11px 11px 0 0;background:linear-gradient(180deg,color-mix(in srgb,var(--kc,var(--blue)) 10%,var(--surface)),color-mix(in srgb,var(--kc,var(--blue)) 4%,var(--surface)));border-bottom:1px solid color-mix(in srgb,var(--kc,var(--line)) 24%,var(--line));}
.kcol-name{font-size:13px;font-weight:800;color:var(--heading);}
.kcol-ct{min-width:28px;text-align:center;color:color-mix(in srgb,var(--kc,var(--ink-2)) 84%,var(--ink));background:color-mix(in srgb,var(--kc,var(--blue)) 8%,var(--surface));border-color:color-mix(in srgb,var(--kc,var(--line)) 36%,var(--line));box-shadow:inset 0 -1px 0 rgba(255,255,255,.44);}
.kcol-dot{box-shadow:0 0 0 3px color-mix(in srgb,var(--kc,var(--blue)) 19%,transparent);}
.kcol-add:hover{background:var(--kc,var(--blue-3));color:#fff;border-color:var(--kc,var(--blue-3));box-shadow:0 8px 18px -12px color-mix(in srgb,var(--kc,var(--blue)) 85%,transparent);}
.kcol-body{border:1px solid transparent;}
.kcol-body.drop-hover{background:color-mix(in srgb,var(--kc,var(--blue)) 11%,var(--surface));outline:2px dashed color-mix(in srgb,var(--kc,var(--blue)) 76%,transparent);outline-offset:-3px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--kc,var(--blue)) 12%,transparent);}
.kcol-pending{background:linear-gradient(180deg,color-mix(in srgb,var(--task-pending) 6%,var(--surface-2)),var(--surface-2));}
.kcol-pending .kcol-h{background:linear-gradient(180deg,color-mix(in srgb,var(--task-pending) 14%,var(--surface)),color-mix(in srgb,var(--task-pending) 5%,var(--surface)));}
.kcol-progress{background:linear-gradient(180deg,color-mix(in srgb,var(--task-progress) 5%,var(--surface-2)),var(--surface-2));}
.kcol-progress .kcol-h{background:linear-gradient(180deg,color-mix(in srgb,var(--task-progress) 10%,var(--surface)),color-mix(in srgb,var(--task-progress) 4%,var(--surface)));}
.kcol-blocked{background:linear-gradient(180deg,color-mix(in srgb,var(--task-blocked) 9%,var(--surface-2)),var(--surface-2));box-shadow:0 0 0 1px color-mix(in srgb,var(--task-blocked) 18%,transparent),0 10px 26px -22px color-mix(in srgb,var(--task-blocked) 65%,transparent),var(--sh-sm);}
.kcol-blocked::before{height:4px;box-shadow:0 0 0 1px color-mix(in srgb,var(--task-blocked) 14%,transparent),0 8px 18px -12px color-mix(in srgb,var(--task-blocked) 82%,transparent);}
.kcol-blocked .kcol-h{background:linear-gradient(180deg,color-mix(in srgb,var(--task-blocked) 18%,var(--surface)),color-mix(in srgb,var(--task-blocked) 7%,var(--surface)));border-bottom-color:color-mix(in srgb,var(--task-blocked) 32%,var(--line));}
.kcol-blocked .kcol-name{color:color-mix(in srgb,var(--task-blocked-ink) 80%,var(--heading));}
.kcol-blocked .kcol-ct{color:var(--task-blocked-ink);background:color-mix(in srgb,var(--task-blocked-soft) 80%,var(--surface));border-color:color-mix(in srgb,var(--task-blocked) 36%,var(--line));}
.kcol-blocked .kcol-body.drop-hover{background:color-mix(in srgb,var(--task-blocked) 15%,var(--surface));outline-color:color-mix(in srgb,var(--task-blocked) 86%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--task-blocked) 22%,transparent);}
.kcol-completed{background:linear-gradient(180deg,color-mix(in srgb,var(--task-completed) 5%,var(--surface-2)),var(--surface-2));}
.kcol-completed .kcol-h{background:linear-gradient(180deg,color-mix(in srgb,var(--task-completed) 11%,var(--surface)),color-mix(in srgb,var(--task-completed) 4%,var(--surface)));}
.kcol-completed .kcol-body.drop-hover{background:color-mix(in srgb,var(--task-completed) 13%,var(--surface));outline-style:solid;outline-color:color-mix(in srgb,var(--task-completed) 68%,transparent);}
.kcard.status-pending{background:linear-gradient(180deg,color-mix(in srgb,var(--task-pending-soft) 52%,var(--surface)),var(--surface));border-color:color-mix(in srgb,var(--task-pending) 19%,var(--line));}
.kcard.status-progress{background:linear-gradient(180deg,color-mix(in srgb,var(--task-progress-soft) 58%,var(--surface)),var(--surface));border-color:color-mix(in srgb,var(--task-progress) 14%,var(--line));}
.kcard.status-blocked{background:linear-gradient(180deg,color-mix(in srgb,var(--task-blocked-soft) 92%,var(--surface)),color-mix(in srgb,var(--task-blocked-soft) 46%,var(--surface)));border-color:color-mix(in srgb,var(--task-blocked) 38%,var(--line));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--task-blocked) 12%,transparent),0 8px 20px -18px color-mix(in srgb,var(--task-blocked) 70%,transparent),var(--sh-xs);}
.kcard.status-blocked:hover{border-color:color-mix(in srgb,var(--task-blocked) 58%,var(--line-2));box-shadow:0 0 0 3px color-mix(in srgb,var(--task-blocked) 16%,transparent),0 12px 24px -18px color-mix(in srgb,var(--task-blocked) 76%,transparent),var(--sh);}
.kcard.status-completed{background:linear-gradient(180deg,color-mix(in srgb,var(--task-completed-soft) 48%,var(--surface)),var(--surface));border-color:color-mix(in srgb,var(--task-completed) 14%,var(--line));box-shadow:var(--sh-xs);}
.kcard.status-completed:hover{box-shadow:0 0 0 3px color-mix(in srgb,var(--task-completed) 12%,transparent),var(--sh-sm);border-color:color-mix(in srgb,var(--task-completed) 28%,var(--line-2));}
.kcard.status-completed .kcard-title{color:color-mix(in srgb,var(--heading) 82%,var(--task-completed-ink));}
.kcard.status-completed .kcard-meta,.kcard.status-completed .task-action-hint{color:color-mix(in srgb,var(--muted) 88%,var(--task-completed-ink));}
.kcard.status-completed .kcard-foot{border-top-color:color-mix(in srgb,var(--task-completed) 12%,var(--line));}
.kcard.is-mine{background:color-mix(in srgb,var(--blue-soft) 42%,var(--surface));box-shadow:inset 0 0 0 1px rgba(92,155,214,.16),var(--sh-xs);}
.kcard.is-mine.status-pending{background:linear-gradient(180deg,color-mix(in srgb,var(--task-pending-soft) 60%,var(--surface)),var(--surface));}
.kcard.is-mine.status-progress{background:linear-gradient(180deg,color-mix(in srgb,var(--task-progress-soft) 64%,var(--surface)),var(--surface));}
.kcard.is-mine.status-blocked{background:linear-gradient(180deg,color-mix(in srgb,var(--task-blocked-soft) 95%,var(--surface)),color-mix(in srgb,var(--task-blocked-soft) 54%,var(--surface)));}
.kcard.is-mine.status-completed{background:linear-gradient(180deg,color-mix(in srgb,var(--task-completed-soft) 60%,var(--surface)),var(--surface));}
.kcard.status-blocked .kcard-status{letter-spacing:.075em;}
.kcard.status-completed .kcard-status{letter-spacing:.055em;}
.kcard.is-mine .task-owner{color:var(--blue-4);}
[data-theme="dark"] .kcol{background:linear-gradient(180deg,color-mix(in srgb,var(--kc,var(--blue)) 7%,var(--surface-2)),var(--surface-2));}
[data-theme="dark"] .kcol-h{background:linear-gradient(180deg,color-mix(in srgb,var(--kc,var(--blue)) 13%,var(--surface)),color-mix(in srgb,var(--kc,var(--blue)) 6%,var(--surface)));}
[data-theme="dark"] .kcol-ct{background:color-mix(in srgb,var(--kc,var(--blue)) 13%,var(--surface));box-shadow:none;}
[data-theme="dark"] .kcol-body.drop-hover{background:color-mix(in srgb,var(--kc,var(--blue)) 16%,var(--surface));}
[data-theme="dark"] .kcard.status-pending{background:linear-gradient(180deg,color-mix(in srgb,var(--task-pending-soft) 48%,var(--surface)),var(--surface));}
[data-theme="dark"] .kcard.status-progress{background:linear-gradient(180deg,color-mix(in srgb,var(--task-progress-soft) 62%,var(--surface)),var(--surface));}
[data-theme="dark"] .kcard.status-blocked{background:linear-gradient(180deg,color-mix(in srgb,var(--task-blocked-soft) 70%,var(--surface)),color-mix(in srgb,var(--task-blocked-soft) 38%,var(--surface)));}
[data-theme="dark"] .kcard.status-completed{background:linear-gradient(180deg,color-mix(in srgb,var(--task-completed-soft) 52%,var(--surface)),var(--surface));}
.you-tag{font-size:8.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#fff;background:var(--blue-3);border-radius:999px;padding:2px 7px;flex-shrink:0;}
.trow.is-mine{background:var(--blue-mist);}
.kcard-actions{margin-left:auto;display:flex;align-items:center;gap:4px;}
.kcard-advance{display:inline-flex;align-items:center;gap:3px;font-family:inherit;font-size:10.5px;font-weight:700;color:var(--blue-4);background:var(--blue-soft);border:1px solid transparent;border-radius:var(--r-pill);padding:4px 7px 4px 10px;cursor:pointer;transition:background var(--t-fast),color var(--t-fast),transform var(--t-fast);white-space:nowrap;}
.kcard-advance svg{width:12px;height:12px;transition:transform var(--t-fast) var(--ease-out);}
.kcard-advance:hover{background:var(--blue-3);color:#fff;transform:translateY(-1px);box-shadow:0 3px 9px -3px color-mix(in srgb,var(--blue-3) 60%,transparent);}
.kcard-advance:hover svg{transform:translateX(2px);}
.kcard-advance:active{transform:scale(.95);}
.kcard.just-updated{animation:cardPop .65s var(--ease-out);}
@keyframes cardPop{0%{box-shadow:0 0 0 3px var(--blue-ring),var(--sh);}65%{box-shadow:0 0 0 3px var(--blue-ring),var(--sh);}100%{box-shadow:var(--sh-xs);}}
.kcard.status-completed.just-updated{animation:completedSettle .82s var(--ease-out);}
@keyframes completedSettle{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--task-completed) 0%,transparent),var(--sh-xs);transform:translateY(-1px) scale(.995);}42%{box-shadow:0 0 0 4px color-mix(in srgb,var(--task-completed) 18%,transparent),var(--sh);transform:translateY(-2px) scale(1.006);}100%{box-shadow:var(--sh-xs);transform:none;}}
/* Overdue work pops so VAs triage it first */
.kcard.is-overdue{box-shadow:inset 0 0 0 1px var(--coral-soft),var(--sh-xs);}
.kcard.is-overdue:hover{box-shadow:inset 0 0 0 1px var(--coral),var(--sh);}
/* Idle (no activity 1h+) gets a quiet amber cue; overdue still wins */
.kcard.is-idle:not(.is-overdue){box-shadow:inset 0 0 0 1px var(--amber-soft),var(--sh-xs);}
.idle-chip{font-size:10px;font-weight:700;color:var(--amber-ink);background:var(--amber-soft);border-radius:var(--r-xs);padding:3px 7px;white-space:nowrap;}
/* Filter result notice */
.board-count{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--ink-2);font-weight:500;margin-bottom:14px;padding:9px 13px;background:var(--blue-mist);border:1px solid var(--line);border-radius:var(--r-sm);}
.board-count b{color:var(--heading);font-weight:700;}
.board-clear{margin-left:auto;font-family:inherit;font-size:12px;font-weight:700;color:var(--blue-3);background:none;border:none;cursor:pointer;padding:2px 4px;border-radius:var(--r-xs);transition:color var(--t-fast);}
.board-clear:hover{color:var(--blue-4);text-decoration:underline;}
/* ---- Completion celebration ---- */
#celebrate-host{position:fixed;inset:0;pointer-events:none;z-index:600;overflow:hidden;}
.celebrate-banner{position:absolute;top:22px;left:50%;transform:translate(-50%,-18px) scale(.96);opacity:0;display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,#0F2C49,#1C4A78);color:#fff;padding:12px 22px;border-radius:var(--r-pill);box-shadow:0 22px 50px -16px rgba(12,40,66,.6),inset 0 0 0 1px rgba(255,255,255,.07);font-size:14px;font-weight:600;white-space:nowrap;transition:opacity .4s var(--ease-out),transform .45s var(--ease-out);}
.celebrate-banner.show{opacity:1;transform:translate(-50%,0) scale(1);}
.celebrate-banner b{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;margin-right:3px;}
.celebrate-mark{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:24px;border-radius:var(--r-pill);background:rgba(255,255,255,.16);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;}
/* ---- Task board entrance (one-shot, gated to board entry via .anim-in) ----
   Cards/summary rise + fade; columns just fade so card transforms never compound.
   These classes are only added on tab/view entry, so filtering/dragging/quick-add
   never replay them. Reduced-motion is neutralized by the global rule below. */
@keyframes boardRise{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
@keyframes boardFade{from{opacity:0;}to{opacity:1;}}
#workboard-summary.anim-in .wb-stat{animation:boardRise .4s var(--ease-out) backwards;}
#workboard-summary.anim-in .wb-stat:nth-child(1){animation-delay:.03s;}
#workboard-summary.anim-in .wb-stat:nth-child(2){animation-delay:.08s;}
#workboard-summary.anim-in .wb-stat:nth-child(3){animation-delay:.13s;}
#workboard-summary.anim-in .wb-stat:nth-child(4){animation-delay:.18s;}
#workboard-summary.anim-in .wb-stat:nth-child(5){animation-delay:.23s;}
.board.anim-in .kcol{animation:boardFade .5s var(--ease-out) backwards;}
.board.anim-in .kcol:nth-child(1){animation-delay:.04s;}
.board.anim-in .kcol:nth-child(2){animation-delay:.09s;}
.board.anim-in .kcol:nth-child(3){animation-delay:.14s;}
.board.anim-in .kcol:nth-child(4){animation-delay:.19s;}
.board.anim-in .kcol-body>.kcard{animation:boardRise .42s var(--ease-out) backwards;}
.board.anim-in .kcol-body>.kcard:nth-child(1){animation-delay:.16s;}
.board.anim-in .kcol-body>.kcard:nth-child(2){animation-delay:.21s;}
.board.anim-in .kcol-body>.kcard:nth-child(3){animation-delay:.26s;}
.board.anim-in .kcol-body>.kcard:nth-child(4){animation-delay:.31s;}
.board.anim-in .kcol-body>.kcard:nth-child(5){animation-delay:.36s;}
.board.anim-in .kcol-body>.kcard:nth-child(n+6){animation-delay:.4s;}
.card.anim-in .trow{animation:boardRise .4s var(--ease-out) backwards;}
.card.anim-in .trow:nth-child(1){animation-delay:.04s;}
.card.anim-in .trow:nth-child(2){animation-delay:.08s;}
.card.anim-in .trow:nth-child(3){animation-delay:.12s;}
.card.anim-in .trow:nth-child(4){animation-delay:.16s;}
.card.anim-in .trow:nth-child(5){animation-delay:.2s;}
.card.anim-in .trow:nth-child(6){animation-delay:.24s;}
.card.anim-in .trow:nth-child(7){animation-delay:.28s;}
.card.anim-in .trow:nth-child(8){animation-delay:.32s;}
.card.anim-in .trow:nth-child(9){animation-delay:.36s;}
.card.anim-in .trow:nth-child(n+10){animation-delay:.4s;}
.confetti-layer{position:absolute;top:64px;left:0;right:0;height:0;}
.confetti{position:absolute;top:0;width:9px;height:14px;border-radius:2px;opacity:0;will-change:transform,opacity;animation:confettiFall 1.55s cubic-bezier(.2,.7,.3,1) forwards;}
@keyframes confettiFall{0%{opacity:1;transform:translate(0,0) rotate(0);}100%{opacity:0;transform:translate(var(--cx,0),340px) rotate(var(--cr,360deg));}}

/* =============================================================================
   REPORTS
   ============================================================================= */
.rep-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
@media (max-width:900px){.rep-grid{grid-template-columns:1fr;}}
.bar-row{display:grid;grid-template-columns:120px 1fr 36px;gap:12px;align-items:center;padding:9px 0;}
.bar-name{font-size:13px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:6px;min-width:0;}
.bar-track{height:10px;background:var(--surface-2);border-radius:var(--r-xs);overflow:hidden;}
.bar-fill{height:100%;border-radius:var(--r-xs);background:var(--blue);transition:width var(--t-slow) var(--ease-out);}
.bar-val{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:15px;color:var(--heading);text-align:right;font-variant-numeric:tabular-nums;}

/* =============================================================================
   EMPTY STATE
   ============================================================================= */
.empty{text-align:center;padding:46px 20px;color:var(--muted);font-size:13.5px;font-weight:500;border:1px dashed var(--line-2);border-radius:var(--r);background:linear-gradient(180deg,var(--surface),var(--surface-2));min-height:118px;display:grid;place-items:center;line-height:1.55;}
.empty::before{content:"";width:34px;height:34px;border-radius:12px;background:var(--blue-soft);box-shadow:inset 0 0 0 1px rgba(92,155,214,.18);display:block;margin-bottom:10px;}

/* =============================================================================
   DRAWER (task detail)
   ============================================================================= */
.drawer-back{position:fixed;inset:0;background:rgba(12,30,49,.40);opacity:0;visibility:hidden;transition:opacity var(--t) var(--ease),visibility var(--t);z-index:80;backdrop-filter:blur(2px);}
.drawer-back.show{opacity:1;visibility:visible;}
.drawer{position:fixed;top:0;right:0;height:100vh;width:448px;max-width:92vw;background:var(--surface);box-shadow:var(--sh-lg);transform:translateX(100%);transition:transform var(--t-slow) var(--ease-out);z-index:90;display:flex;flex-direction:column;}
.drawer.show{transform:translateX(0);}
.drawer-h{padding:22px 24px;border-bottom:1px solid var(--line);}
.drawer-acc{height:4px;border-radius:3px;width:46px;margin-bottom:13px;}
.drawer-title{font-family:'Bricolage Grotesque',sans-serif;font-size:20px;font-weight:700;color:var(--heading);letter-spacing:-.015em;line-height:1.3;padding-right:30px;}
.drawer-x{position:absolute;top:18px;right:18px;}
.drawer-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;}
.drawer-body{flex:1;overflow-y:auto;padding:20px 24px;}
.dm-field{margin-bottom:16px;}
.dm-label{font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:5px;}
.dm-val{font-size:14px;color:var(--ink);font-weight:500;}
.dm-notes{font-size:13.5px;color:var(--ink);line-height:1.6;white-space:pre-wrap;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 14px;}
.drawer-note{font-size:12.5px;color:var(--ink-2);line-height:1.55;background:var(--blue-soft);border-left:3px solid var(--blue);border-radius:var(--r-xs);padding:11px 13px;margin-bottom:16px;}
.case-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
.case-detail-grid div{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;min-width:0;}
.case-detail-grid span{display:block;font-size:10px;font-weight:700;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:3px;}
.case-detail-grid b{display:block;font-size:13px;color:var(--heading);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.thread{display:flex;flex-direction:column;gap:12px;margin-top:8px;}
.cmt{display:flex;gap:10px;}
.cmt-b{flex:1;}
.cmt-top{display:flex;align-items:baseline;gap:8px;}
.cmt-name{font-size:13px;font-weight:700;color:var(--heading);}
.cmt-when{font-size:11px;color:var(--muted);font-weight:450;}
.cmt-text{font-size:13.5px;color:var(--ink);margin-top:2px;line-height:1.5;}
.cmt-sys{font-size:11.5px;color:var(--muted);font-weight:600;text-align:center;padding:4px 0;position:relative;}
.drawer-foot{padding:14px 24px;border-top:1px solid var(--line);display:flex;gap:8px;align-items:flex-end;}
.drawer-foot textarea{flex:1;border:1px solid var(--line-2);border-radius:var(--r-sm);padding:10px 12px;font-family:inherit;font-size:13.5px;resize:none;min-height:42px;max-height:120px;transition:border-color var(--t-fast),box-shadow var(--t-fast);}
.drawer-foot textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-ring);}

/* =============================================================================
   MODALS
   ============================================================================= */
.backdrop{position:fixed;inset:0;background:rgba(12,30,49,.52);display:none;align-items:center;justify-content:center;z-index:100;padding:20px;backdrop-filter:blur(4px);}
.backdrop.show{display:flex;animation:fade .2s var(--ease) backwards;}
@keyframes fade{from{opacity:0;}to{opacity:1;}}
.modal{background:var(--surface);border-radius:var(--r-lg);padding:28px;max-width:580px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--sh-lg);animation:pop .26s var(--ease-out);position:relative;}
.member-modal{max-width:720px;padding:30px 32px;}
.settings-modal{max-width:760px;}
.modal-close{position:absolute;top:18px;right:18px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:var(--surface-2);color:var(--ink-2);border-radius:var(--r-pill);cursor:pointer;z-index:3;transition:background var(--t-fast),color var(--t-fast),transform var(--t-fast);}
.modal-close:hover{background:var(--coral-soft);color:var(--coral-ink);transform:rotate(90deg);}
.modal-close:focus-visible{outline:none;box-shadow:0 0 0 3px var(--blue-ring);}
.modal-close svg{width:17px;height:17px;}
@keyframes pop{from{opacity:0;transform:scale(.97) translateY(10px);}to{opacity:1;transform:scale(1) translateY(0);}}
.modal-title{font-family:'Bricolage Grotesque',sans-serif;font-size:21px;font-weight:700;color:var(--heading);margin-bottom:20px;letter-spacing:-.02em;}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;}
.fld{display:flex;flex-direction:column;gap:6px;flex:1;min-width:140px;}
.fld-full{flex:1 1 100%;}
.member-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 14px;align-items:start;}
.member-form-grid .fld{min-width:0;}
.member-form-grid .fld-full{grid-column:1 / -1;}
.member-modal .member-section-heading{grid-column:1 / -1;display:flex;align-items:center;gap:10px;margin:4px 0 -2px;color:var(--blue-4);font-size:10.5px;font-weight:900;letter-spacing:.09em;line-height:1;text-transform:uppercase;}
.member-modal .member-section-heading::after{content:"";height:1px;flex:1;background:linear-gradient(90deg,color-mix(in srgb,var(--blue-2) 28%,var(--line)),transparent);}
.member-modal .member-section-heading:first-child{margin-top:0;}
#m-work-location-fld,#m-all-locations-fld{grid-column:1 / -1;}
#m-work-location-fld[hidden],#m-all-locations-fld[hidden]{display:none!important;}
.member-field-help{margin-top:2px;color:var(--muted);font-size:11.5px;font-weight:600;line-height:1.4;}
.member-all-access{display:flex;align-items:center;gap:12px;padding:13px 15px;border:1px solid color-mix(in srgb,var(--blue-2) 28%,var(--line));border-radius:var(--r-sm);background:linear-gradient(135deg,var(--blue-mist),color-mix(in srgb,var(--blue-soft) 56%,var(--surface)));}
.member-all-access-mark{width:31px;height:31px;display:grid;place-items:center;flex:0 0 auto;border-radius:10px;background:var(--navy);color:#fff;font-size:21px;font-weight:750;line-height:1;box-shadow:0 8px 16px -12px rgba(16,44,73,.8);}
.member-all-access strong{display:block;color:var(--heading);font-size:13px;font-weight:850;}
.member-all-access small{display:block;margin-top:3px;color:var(--ink-2);font-size:11.5px;font-weight:600;line-height:1.4;}
.case-grid{display:grid;grid-template-columns:1.2fr minmax(150px,.8fr) minmax(150px,.8fr);gap:12px;width:100%;}
.lbl{font-size:11.5px;color:var(--ink-2);font-weight:700;}
.req-lbl{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.req-text{font-size:10.5px;color:var(--muted);font-weight:700;transition:color var(--t-fast);}
.fld.req-missing .req-text{color:var(--coral);}
.fld.req-missing .inp,.fld.req-missing .txt{border-color:var(--coral);box-shadow:0 0 0 3px rgba(218,86,78,.14);}
.inp,.sel,.txt{padding:11px 13px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);font-family:inherit;font-size:13.5px;color:var(--ink);width:100%;transition:border-color var(--t-fast),box-shadow var(--t-fast),background var(--t-fast),transform var(--t-fast);}
.sel{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:34px;}
.inp:hover,.sel:hover,.txt:hover{border-color:var(--line-3);background:var(--surface-2);}
.inp:focus,.sel:focus,.txt:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-ring);background:var(--surface);}
.invite-email-field{flex:1.35;}
.invite-email-row{display:flex;align-items:center;gap:8px;width:100%;}
.invite-email-row .inp{min-width:0;flex:1;}
.invite-send-btn{white-space:nowrap;min-height:40px;}
.invite-status{min-height:16px;font-size:11.5px;font-weight:700;color:var(--muted);}
.invite-status.ok{color:var(--green-ink);}
.invite-status.err{color:var(--coral);}
.invite-status.busy{color:var(--blue-4);}
.manual-code-panel{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border:1px solid rgba(79,174,131,.28);background:var(--green-soft);border-radius:var(--r-sm);margin-top:2px;}
.manual-code-panel[hidden]{display:none;}
.manual-code-title{font-size:12.5px;font-weight:800;color:var(--green-ink);margin-bottom:3px;}
.manual-code-note{font-size:12px;font-weight:600;color:var(--ink-2);line-height:1.45;}
.manual-code-row{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.manual-code-value{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:22px;font-weight:800;letter-spacing:.18em;color:var(--heading);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xs);padding:8px 10px;min-width:112px;max-width:140px;text-align:center;}
.manual-code-value:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-ring);}
.txt{resize:vertical;min-height:74px;line-height:1.55;}
@media (max-width:560px){.invite-email-row{flex-direction:column;align-items:stretch;}.invite-send-btn{justify-content:center;width:100%;}.manual-code-panel{flex-direction:column;align-items:stretch;}.manual-code-row{justify-content:space-between;}.manual-code-value{flex:1;}}
@media (max-width:640px){.case-grid,.case-detail-grid{grid-template-columns:1fr;}.modal{padding:24px 20px;}}
@media (max-width:560px){.member-form-grid{grid-template-columns:1fr;}.member-modal{padding:24px 20px;}.member-form-grid .fld-full{grid-column:auto;}}
.modal-acts{display:flex;gap:9px;justify-content:flex-end;margin-top:24px;position:sticky;bottom:-28px;background:linear-gradient(180deg,rgba(255,255,255,0),var(--surface) 28%);padding-top:18px;}
.location-access-backdrop{z-index:970;}
.location-access-card{max-width:500px;padding:34px;overflow:hidden;background:linear-gradient(155deg,var(--surface),color-mix(in srgb,var(--blue-soft) 42%,var(--surface)));border:1px solid color-mix(in srgb,var(--blue-2) 28%,var(--line));}
.location-access-card::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:linear-gradient(90deg,#102C49,#3E83C7,#5FA2DF);}
.location-access-mark{width:54px;height:54px;display:grid;place-items:center;border-radius:17px;background:var(--blue-soft);color:var(--blue-4);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--blue-2) 25%,transparent);}
.location-access-mark svg{width:27px;height:27px;}
.location-access-kicker{margin-top:18px;color:var(--blue-4);font-size:10.5px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;}
.location-access-card h2{margin-top:8px;color:var(--heading);font-family:'Bricolage Grotesque',sans-serif;font-size:29px;line-height:1.08;letter-spacing:-.025em;}
.location-access-card p{margin-top:12px;color:var(--ink-2);font-size:14px;font-weight:600;line-height:1.58;}
.location-access-next{margin-top:17px;padding:11px 12px;border:1px solid color-mix(in srgb,var(--blue-2) 20%,var(--line));border-radius:var(--r-sm);background:color-mix(in srgb,var(--surface) 74%,var(--blue-soft));color:var(--blue-4);font-size:12px;font-weight:750;line-height:1.45;}
.location-access-card .modal-acts{margin-top:19px;}
[data-theme="dark"] .member-all-access,[data-theme="dark"] .location-access-card{background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--blue-soft) 68%,var(--surface)));}
.respgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;padding:12px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);max-height:260px;overflow-y:auto;}
.respchk{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--r-xs);cursor:pointer;transition:background var(--t-fast),border-color var(--t-fast);border:1px solid transparent;min-width:0;}
.respchk:hover{background:var(--surface);}
.respchk input{margin:0;accent-color:var(--blue-3);width:15px;height:15px;}
.respchk i{width:11px;height:11px;border-radius:3px;display:inline-block;}
.respchk>.cat-icon{flex:0 0 24px;}
.respchk>span:last-child{font-size:12.5px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.colors{display:flex;gap:7px;flex-wrap:wrap;}
.sw{width:32px;height:32px;border-radius:var(--r-sm);cursor:pointer;border:2px solid transparent;transition:transform var(--t-fast) var(--ease-out),box-shadow var(--t-fast);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);}
.sw:hover{transform:scale(1.12);}
.sw.on{border-color:var(--heading);transform:scale(1.12);box-shadow:var(--sh);}

.hint{font-size:12.5px;color:var(--ink-2);padding:13px 16px;background:var(--blue-soft);border-left:3px solid var(--blue);border-radius:var(--r-xs);margin-bottom:18px;font-weight:450;line-height:1.6;}
.hint b{color:var(--heading);font-weight:700;}

.report-toolbar{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-bottom:16px;padding:14px 16px;background:var(--surface-card);border:1px solid var(--line);border-radius:var(--r);}
.report-toolbar .fld{max-width:180px;margin:0;}
.task-more-btn{display:none;}
.task-extra-scope{flex-wrap:wrap;}
.audit-row{display:grid;grid-template-columns:96px 1fr auto;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line);}
.audit-row:last-child{border-bottom:none;}
.audit-actor{font-size:12px;color:var(--muted);font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.audit-summary{font-size:13.5px;color:var(--heading);font-weight:700;line-height:1.25;}
.audit-meta{font-size:11.5px;color:var(--muted);font-weight:500;margin-top:2px;}
.audit-action{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--blue-4);background:var(--blue-soft);border-radius:var(--r-xs);padding:3px 8px;white-space:nowrap;}
@media (max-width:640px){
  .filters{padding:12px;gap:9px;margin-bottom:14px;}
  .filters .fld{min-width:130px;flex:1 1 calc(50% - 8px);}
  .scopebar{gap:6px;}
  .scopebtn{padding:7px 9px;font-size:11px;}
  .task-more-btn{display:inline-flex;}
  .task-extra-scope{display:none;width:100%;}
  .task-extra-scope.show{display:inline-flex;}
  .audit-row{grid-template-columns:1fr;gap:5px;}
  .audit-action{justify-self:start;}
}

.settings-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 0;border-bottom:1px solid var(--line);}
.settings-row:last-child{border-bottom:none;}
.settings-row>div:first-child{min-width:0;}
.settings-row .sr-t{font-weight:700;font-size:14px;color:var(--heading);}
.settings-row .sr-d{font-size:12.5px;color:var(--muted);font-weight:450;margin-top:2px;max-width:320px;line-height:1.5;}
.settings-location-scope{display:inline-flex;align-items:center;min-height:26px;margin:-10px 0 14px;padding:5px 10px;border:1px solid color-mix(in srgb,var(--blue-2) 24%,var(--line));border-radius:var(--r-pill);background:var(--blue-mist);color:var(--blue-4);font-size:11px;font-weight:850;}
.settings-modal{max-width:760px;}
.settings-modal .hint{margin-bottom:6px;}
.settings-modal .settings-row{display:grid;grid-template-columns:minmax(250px,1fr) minmax(0,auto);align-items:end;gap:18px;padding:19px 0;}
.settings-modal .settings-row .sr-d{max-width:390px;}
.settings-modal .settings-row>div:last-child{max-width:100%;}
.settings-modal .settings-row[style*="display:block"]{display:block!important;}
@media (max-width:680px){.settings-modal .settings-row{grid-template-columns:1fr;align-items:start;}.settings-modal .settings-row>div:last-child{justify-content:flex-start!important;}.member-modal .member-section-heading{margin-top:2px;}}

/* =============================================================================
   TOAST + BANNERS
   ============================================================================= */
.toast{position:fixed;bottom:26px;right:26px;padding:12px 18px;background:var(--navy);color:#fff;border-radius:var(--r-sm);font-size:13px;font-weight:600;box-shadow:var(--sh-lg);opacity:0;transform:translateY(12px) scale(.98);transition:opacity var(--t) var(--ease-out),transform var(--t) var(--ease-out),background var(--t-fast);pointer-events:none;z-index:210;max-width:min(420px,calc(100vw - 32px));line-height:1.45;}
.toast.show{opacity:1;transform:translateY(0) scale(1);}
.toast.toast-success{background:var(--green-ink);}
.toast.toast-error{background:var(--coral-ink);}
.banners{position:fixed;top:20px;right:20px;display:flex;flex-direction:column;gap:10px;z-index:300;width:min(360px,calc(100vw - 32px));max-width:360px;}
.banner{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:var(--r-sm);box-shadow:var(--sh-lg);padding:13px 14px;display:flex;gap:10px;align-items:flex-start;transform:translateX(115%);opacity:0;transition:transform var(--t-slow) var(--ease-out),opacity var(--t-slow);}
.banner.show{transform:translateX(0);opacity:1;}
.banner .bn-body{flex:1;min-width:0;}
.banner .bn-title{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:14px;color:var(--heading);}
.banner .bn-text{font-size:12.5px;color:var(--ink-2);margin-top:3px;font-weight:450;line-height:1.45;}
.banner .bn-x{background:transparent;border:none;font-size:20px;color:var(--muted);cursor:pointer;line-height:1;padding:0 4px;transition:color var(--t-fast);}
.banner .bn-x:hover{color:var(--ink);}
@media (max-width:520px){
  .banners{top:12px;right:12px;left:12px;width:auto;max-width:none;}
  .toast{right:16px;bottom:16px;left:16px;max-width:none;}
}

.app-loading{position:fixed;inset:0;z-index:600;display:none;place-items:center;background:rgba(245,248,252,.76);backdrop-filter:blur(8px);}
body.authed.app-booting .app-loading{display:grid;}
.loading-card{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px 20px;box-shadow:var(--sh-lg);}
.loading-mark{width:28px;height:28px;border-radius:50%;border:3px solid var(--blue-soft);border-top-color:var(--blue-3);animation:spin .8s linear infinite;}
.loading-card b{display:block;font-family:'Bricolage Grotesque',sans-serif;color:var(--heading);font-size:16px;}
.loading-card span:not(.loading-mark){display:block;color:var(--muted);font-size:12.5px;margin-top:2px;}
@keyframes spin{to{transform:rotate(360deg);}}

.recur-chip{font-size:10.5px;font-weight:700;color:var(--blue-4);padding:2px 8px;border-radius:var(--r-xs);background:var(--blue-soft);display:inline-flex;align-items:center;gap:4px;}

/* =============================================================================
   REMINDERS
   ============================================================================= */
.bell-dot{position:absolute;top:6px;right:6px;width:9px;height:9px;border-radius:50%;background:var(--coral);box-shadow:0 0 0 2px var(--surface);animation:pulse-dot 2s var(--ease) infinite;}
@keyframes pulse-dot{0%,100%{box-shadow:0 0 0 2px var(--surface),0 0 0 0 rgba(218,86,78,.4);}50%{box-shadow:0 0 0 2px var(--surface),0 0 0 5px rgba(218,86,78,0);}}
.rem-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line);}
.rem-row:last-child{border-bottom:none;}
.rem-time{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;color:var(--heading);font-size:13.5px;min-width:80px;font-variant-numeric:tabular-nums;}
.rem-kind{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);}

/* =============================================================================
   CENTERED REMINDER + SHIFT ALERTS
   ============================================================================= */
.reminder-alert-overlay,.shift-alert-overlay{position:fixed;inset:0;background:rgba(12,40,66,.62);backdrop-filter:blur(8px);display:none;align-items:center;justify-content:center;padding:22px;z-index:900;}
.reminder-alert-overlay.show,.shift-alert-overlay.show{display:flex;animation:fade .24s var(--ease) backwards;}
.reminder-alert-card,.shift-alert-card{width:min(560px,100%);background:var(--surface);border:1px solid rgba(92,155,214,.30);border-radius:18px;box-shadow:var(--sh-lg);padding:32px;position:relative;overflow:hidden;animation:pop .32s var(--ease-out);}
.reminder-alert-card:before,.shift-alert-card:before{content:"";position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(90deg,var(--green),var(--blue-3));}
.test-alert .reminder-alert-card{border-color:rgba(92,155,214,.38);}
.test-alert .reminder-alert-card:before{background:linear-gradient(90deg,var(--blue-3),var(--green));}
.reminder-alert-mark,.shift-alert-mark{width:56px;height:56px;border-radius:15px;background:var(--green-soft);color:var(--green-ink);display:grid;place-items:center;margin-bottom:18px;}
.test-alert .reminder-alert-mark{background:var(--blue-soft);color:var(--blue-4);}
.reminder-alert-mark svg,.shift-alert-mark svg{width:29px;height:29px;}
.reminder-alert-kicker,.shift-alert-kicker{font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--blue-3);margin-bottom:9px;}
.reminder-alert-card h2,.shift-alert-card h2{font-family:'Bricolage Grotesque',sans-serif;font-size:29px;line-height:1.1;color:var(--heading);letter-spacing:-.02em;margin-bottom:9px;}
.reminder-alert-card p,.shift-alert-card p{font-size:14.5px;color:var(--ink-2);font-weight:450;line-height:1.6;max-width:470px;}
.shift-alert-details{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0;background:var(--blue-mist);border:1px solid var(--line);border-radius:var(--r);padding:12px;}
.shift-alert-details div{padding:8px 10px;border-right:1px solid var(--line);}
.shift-alert-details div:last-child{border-right:none;}
.shift-alert-details span{display:block;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;}
.shift-alert-details strong{display:block;font-size:14px;color:var(--heading);font-weight:700;line-height:1.25;}
.reminder-alert-actions,.shift-alert-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:24px;}
.shift-alert-actions{margin-top:0;}
.announcement-alert-actions{margin-top:24px;}
.announcement-alert-overlay{background:radial-gradient(900px 520px at 50% 18%,rgba(240,184,78,.20),transparent 58%),rgba(7,24,42,.76);backdrop-filter:blur(10px);}
.announcement-alert-card{width:min(640px,100%);border-color:rgba(240,184,78,.45);background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--announce-soft) 26%,var(--surface)));box-shadow:0 30px 78px -18px rgba(6,20,36,.42),0 0 0 1px rgba(240,184,78,.12);padding:34px;}
.announcement-alert-card:before{height:7px;background:linear-gradient(90deg,#C98B2E,#F0B84E,#FFE1A1);}
.announcement-alert-mark{background:color-mix(in srgb,var(--announce-soft) 78%,var(--surface));color:var(--announce-ink);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--announce) 28%,transparent);}
.announcement-alert-kicker{color:var(--announce-ink);}
.announcement-alert-card h2{font-size:33px;}
.announcement-alert-card p{max-width:560px;font-size:15.5px;color:var(--ink);font-weight:620;line-height:1.62;}
.announcement-alert-status{margin-top:18px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--announce) 24%,var(--line));border-radius:var(--r-sm);background:color-mix(in srgb,var(--announce-soft) 54%,var(--surface));color:var(--announce-ink);font-size:12.5px;font-weight:760;}
.announcement-alert-status.is-busy{color:var(--blue-4);background:var(--blue-mist);border-color:color-mix(in srgb,var(--blue) 24%,var(--line));}
.announcement-alert-status.is-error{color:var(--coral-ink);background:var(--coral-soft);border-color:color-mix(in srgb,var(--coral) 28%,var(--line));}
.announcement-alert-actions{justify-content:flex-end;margin-top:22px;}
.announcement-alert-primary{background:linear-gradient(135deg,#173A5C,#102C49);border-color:#102C49;box-shadow:0 12px 26px -17px rgba(16,44,73,.85);}
.announcement-alert-primary:hover{background:linear-gradient(135deg,#1F4F7B,#14395F);border-color:#14395F;}
.birthday-overlay{position:fixed;inset:0;background:radial-gradient(900px 520px at 50% 16%,rgba(212,124,179,.24),transparent 58%),linear-gradient(135deg,rgba(7,24,42,.80),rgba(23,58,92,.72));backdrop-filter:blur(11px);display:none;align-items:center;justify-content:center;padding:22px;z-index:940;}
.birthday-overlay.show{display:flex;animation:fade .24s var(--ease) backwards;}
.birthday-required-overlay{z-index:980;}
body.birthday-blocked .shell,body.birthday-greeting-required .shell,body.work-location-blocked .shell{filter:saturate(.82) blur(1px);pointer-events:none;}
.work-location-required-overlay{z-index:985;}
.work-location-required-overlay .birthday-alert-mark{color:var(--blue-4);background:var(--blue-mist);}
.birthday-greeting-overlay{z-index:970;}
.birthday-public-board-overlay{z-index:960;}
.birthday-alert-card{width:min(640px,100%);background:linear-gradient(180deg,var(--surface),color-mix(in srgb,#F9E8F2 28%,var(--surface)));border:1px solid color-mix(in srgb,#D47CB3 42%,var(--line));border-radius:18px;box-shadow:0 30px 78px -18px rgba(6,20,36,.45),0 0 0 1px rgba(240,184,78,.10);padding:34px;position:relative;overflow:hidden;animation:pop .32s var(--ease-out);}
.birthday-alert-card::before{content:"";position:absolute;inset:0 0 auto;height:7px;background:linear-gradient(90deg,#5FA2DF,#D47CB3,#F0B84E,#4FAE83);}
.birthday-alert-card::after{content:"";position:absolute;right:-48px;bottom:-70px;width:190px;height:190px;border-radius:50%;background:radial-gradient(circle,rgba(240,184,78,.18),transparent 66%);pointer-events:none;}
.birthday-alert-mark{width:58px;height:58px;border-radius:16px;background:color-mix(in srgb,#F9E8F2 78%,var(--surface));color:#8B4E85;display:grid;place-items:center;margin-bottom:18px;box-shadow:inset 0 0 0 1px color-mix(in srgb,#D47CB3 28%,transparent);}
.birthday-alert-mark svg{width:30px;height:30px;}
.birthday-alert-kicker{font-size:10.5px;font-weight:850;text-transform:uppercase;letter-spacing:0;color:#8B4E85;margin-bottom:9px;}
.birthday-alert-card h2{font-family:'Bricolage Grotesque',sans-serif;font-size:34px;line-height:1.08;color:var(--heading);letter-spacing:0;margin-bottom:9px;}
.birthday-alert-card p{font-size:15px;color:var(--ink);font-weight:620;line-height:1.55;max-width:560px;}
.birthday-date-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px 0 0;}
.birthday-alert-status{margin-top:16px;padding:10px 12px;border:1px solid color-mix(in srgb,#D47CB3 24%,var(--line));border-radius:var(--r-sm);background:color-mix(in srgb,#F9E8F2 54%,var(--surface));color:#74406E;font-size:12.5px;font-weight:760;}
.birthday-alert-status.is-busy{color:var(--blue-4);background:var(--blue-mist);border-color:color-mix(in srgb,var(--blue) 24%,var(--line));}
.birthday-alert-status.is-error{color:var(--coral-ink);background:var(--coral-soft);border-color:color-mix(in srgb,var(--coral) 28%,var(--line));}
.birthday-alert-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:22px;}
.birthday-greeting-required-note{margin-right:auto;color:#74406E;font-size:11px;font-weight:850;}
.birthday-alert-primary{background:linear-gradient(135deg,#173A5C,#255B86);border-color:#173A5C;box-shadow:0 12px 26px -17px rgba(16,44,73,.85);}
.birthday-alert-primary:hover{background:linear-gradient(135deg,#1F4F7B,#2F6C9C);border-color:#1F4F7B;}
.birthday-alert-secondary{background:var(--surface);color:var(--ink-2);}
.birthday-greeting-message{margin-top:20px;min-height:112px;resize:vertical;}
.birthday-greeting-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;}
.birthday-greeting-meta span{font-size:12px;font-weight:800;color:var(--muted);}
.birthday-greeting-meta span.is-over{color:var(--coral-ink);}
.birthday-greeting-meta button{border:none;background:transparent;color:#255B86;font-size:12px;font-weight:850;cursor:pointer;padding:4px 0;}
.birthday-celebrant-list{display:grid;gap:8px;margin-top:18px;max-height:260px;overflow:auto;}
.birthday-celebrant-countdown{margin-top:12px;padding:9px 11px;border:1px solid #ead7f2;border-radius:10px;background:#fcf6ff;color:#805681;font-size:12px;font-weight:700;line-height:1.4;}
.birthday-confetti-host{position:fixed;inset:0;z-index:1200;pointer-events:none;overflow:hidden;}
@media (max-width:640px){.birthday-alert-card{padding:28px 20px;}.birthday-alert-card h2{font-size:28px;}.birthday-date-pair{grid-template-columns:1fr;}.birthday-alert-actions{flex-direction:column-reverse;align-items:stretch;}.birthday-alert-actions .btn{width:100%;justify-content:center;}.birthday-greeting-meta{align-items:flex-start;flex-direction:column;}}
.holiday-ticket-alert-overlay{background:radial-gradient(900px 520px at 50% 18%,rgba(95,174,131,.18),transparent 58%),rgba(7,24,42,.78);}
.holiday-ticket-alert-card{border-color:color-mix(in srgb,var(--green) 38%,var(--line));background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--green-soft) 34%,var(--surface)));}
.holiday-ticket-alert-card:before{background:linear-gradient(90deg,#2F9465,#5FAE83,#CDEFD8);}
.holiday-ticket-alert-mark{background:color-mix(in srgb,var(--green-soft) 86%,var(--surface));color:var(--green-ink);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--green) 28%,transparent);}
.holiday-ticket-alert-kicker{color:var(--green-ink);}
.holiday-ticket-alert-details{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0 0;background:color-mix(in srgb,var(--green-soft) 52%,var(--surface));border:1px solid color-mix(in srgb,var(--green) 20%,var(--line));border-radius:var(--r);padding:12px;}
.holiday-ticket-alert-details div{padding:8px 10px;border-right:1px solid color-mix(in srgb,var(--green) 18%,var(--line));}
.holiday-ticket-alert-details div:last-child{border-right:none;}
.holiday-ticket-alert-details span{display:block;font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;}
.holiday-ticket-alert-details strong{display:block;font-size:14px;color:var(--heading);font-weight:800;line-height:1.25;}
.holiday-ticket-alert-status{border-color:color-mix(in srgb,var(--green) 24%,var(--line));background:color-mix(in srgb,var(--green-soft) 54%,var(--surface));color:var(--green-ink);}
.holiday-ticket-alert-secondary{background:var(--surface);color:var(--ink-2);}
.reminder-alert-primary,.reminder-alert-secondary,.shift-alert-primary,.shift-alert-secondary{min-height:44px;padding-left:18px;padding-right:18px;}
.reminder-alert-secondary,.shift-alert-secondary{background:var(--surface);color:var(--ink-2);}
@media (max-width:620px){
  .reminder-alert-card,.shift-alert-card{padding:26px 20px;}
  .reminder-alert-card h2,.shift-alert-card h2{font-size:25px;}
  .shift-alert-details{grid-template-columns:1fr;}
  .shift-alert-details div{border-right:none;border-bottom:1px solid var(--line);}
  .shift-alert-details div:last-child{border-bottom:none;}
  .reminder-alert-actions,.shift-alert-actions{flex-direction:column-reverse;align-items:stretch;}
  .reminder-alert-actions .btn,.shift-alert-actions .btn{justify-content:center;width:100%;}
  .announcement-alert-card{padding:28px 20px;}
  .announcement-alert-actions{flex-direction:column;align-items:stretch;}
  .holiday-ticket-alert-details{grid-template-columns:1fr;}
  .holiday-ticket-alert-details div{border-right:none;border-bottom:1px solid color-mix(in srgb,var(--green) 18%,var(--line));}
  .holiday-ticket-alert-details div:last-child{border-bottom:none;}
}

.hol-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);}
.hol-row:last-child{border-bottom:none;}
.hol-name{font-weight:600;font-size:13.5px;color:var(--heading);flex:1;}
.hol-date{font-size:12px;color:var(--muted);font-weight:450;}

/* =============================================================================
   AUTH SCREEN
   ============================================================================= */
.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;position:relative;overflow:hidden;
  background:linear-gradient(150deg,#0E2842 0%,#143656 46%,#1A4571 100%);}
.auth-wrap::before{content:"";position:absolute;width:680px;height:680px;border-radius:50%;top:-280px;right:-200px;background:radial-gradient(circle,rgba(92,155,214,.30),transparent 65%);animation:drift 16s var(--ease-soft) infinite alternate;}
.auth-wrap::after{content:"";position:absolute;width:560px;height:560px;border-radius:50%;bottom:-260px;left:-180px;background:radial-gradient(circle,rgba(92,155,214,.18),transparent 62%);animation:drift 20s var(--ease-soft) infinite alternate-reverse;}
@keyframes drift{from{transform:translate(0,0) scale(1);}to{transform:translate(-40px,30px) scale(1.08);}}
.auth-card{background:var(--surface);border:1px solid rgba(255,255,255,.5);border-radius:var(--r-lg);box-shadow:var(--sh-lg);padding:38px 34px;max-width:424px;width:100%;position:relative;z-index:1;animation:pop .4s var(--ease-out);}
.auth-brand{display:flex;align-items:center;gap:14px;margin-bottom:28px;}
.auth-logo{width:44px;height:44px;}
.auth-brand h1{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:22px;color:var(--heading);letter-spacing:-.03em;line-height:1;}
.auth-brand p{font-size:10.5px;color:var(--muted);letter-spacing:.14em;text-transform:uppercase;font-weight:600;margin-top:4px;}
.auth-title{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:23px;color:var(--heading);margin-bottom:6px;letter-spacing:-.02em;}
.auth-sub{font-size:13.5px;color:var(--ink-2);margin-bottom:22px;line-height:1.6;font-weight:450;}
.auth-form .fld{margin-bottom:14px;}
.auth-form .inp{padding:13px 14px;font-size:15px;}
.auth-form .pin-input{letter-spacing:.5em;text-align:center;font-size:21px;font-family:'Bricolage Grotesque',monospace;font-weight:700;padding-left:2.4em;padding-right:2.4em;}
/* PIN reveal: masked by default, eye button reveals only while pressed and held */
.pin-field{position:relative;display:flex;}
.pin-field .pin-input{flex:1;}
.pin-reveal{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:34px;height:34px;display:grid;place-items:center;padding:0;border:none;background:transparent;color:var(--ink-3);border-radius:var(--r-sm);cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;transition:color var(--t-fast),background var(--t-fast);}
.pin-reveal svg{width:19px;height:19px;}
.pin-reveal:hover{color:var(--ink-2);background:var(--surface-2);}
.pin-reveal:focus-visible{outline:none;color:var(--blue-3);box-shadow:0 0 0 3px var(--blue-ring);}
.pin-input.is-revealing{letter-spacing:.32em;}
.auth-btn{width:100%;padding:13px;font-size:14.5px;font-weight:700;justify-content:center;margin-top:2px;}
.auth-alt-actions{text-align:center;margin-top:10px;display:flex;justify-content:center;}
.auth-link{background:none;border:none;color:var(--blue-3);font-family:inherit;font-size:12.5px;font-weight:600;cursor:pointer;padding:8px 0;transition:color var(--t-fast);}
.auth-link:hover{color:var(--heading);text-decoration:underline;}
.auth-err{font-size:13px;color:var(--coral-ink);background:var(--coral-soft);border-left:3px solid var(--coral);padding:10px 12px;border-radius:var(--r-xs);margin-bottom:14px;font-weight:500;animation:shake .35s var(--ease);}
@keyframes shake{0%,100%{transform:translateX(0);}20%{transform:translateX(-5px);}40%{transform:translateX(5px);}60%{transform:translateX(-3px);}80%{transform:translateX(3px);}}
.auth-ok{font-size:13px;color:var(--green-ink);background:var(--green-soft);border-left:3px solid var(--green);padding:10px 12px;border-radius:var(--r-xs);margin-bottom:14px;font-weight:500;animation:okPop .42s var(--ease-out);}
@keyframes okPop{0%{opacity:0;transform:translateY(-6px) scale(.97);}60%{transform:translateY(0) scale(1.012);}100%{opacity:1;transform:none;}}
.auth-foot{text-align:center;font-size:11px;color:var(--muted);margin-top:22px;font-style:italic;font-weight:450;}
.dev-banner{background:var(--amber-soft);border:1px solid var(--amber);color:var(--amber-ink);font-size:12px;font-weight:600;padding:9px 12px;border-radius:var(--r-xs);margin-bottom:16px;text-align:center;line-height:1.45;}

/* Resend-code "wow" celebration */
.auth-link.is-sent{color:var(--green-ink);pointer-events:none;animation:sentPop .4s var(--ease-out);}
@keyframes sentPop{0%{transform:scale(.82);}55%{transform:scale(1.14);}100%{transform:scale(1);}}
.auth-card.auth-celebrate{animation:cardCelebrate .76s var(--ease-out);}
@keyframes cardCelebrate{0%{box-shadow:var(--sh-lg);}34%{box-shadow:0 0 0 4px color-mix(in srgb,var(--green) 34%,transparent),var(--sh-lg);}100%{box-shadow:var(--sh-lg);}}
.auth-plane{position:absolute;left:50%;top:128px;width:30px;height:30px;margin-left:-15px;color:var(--green);pointer-events:none;z-index:6;will-change:transform,opacity;animation:planeFly 1s cubic-bezier(.4,0,.2,1) forwards;}
.auth-plane svg{width:100%;height:100%;display:block;filter:drop-shadow(0 4px 8px color-mix(in srgb,var(--green) 45%,transparent));}
@keyframes planeFly{0%{opacity:0;transform:translate(0,10px) rotate(-10deg) scale(.55);}20%{opacity:1;transform:translate(6px,0) rotate(0) scale(1);}100%{opacity:0;transform:translate(132px,-156px) rotate(28deg) scale(.92);}}
@media (prefers-reduced-motion:reduce){.auth-plane{display:none;}.auth-card.auth-celebrate{animation:none;}.auth-ok,.auth-link.is-sent{animation:none;}}

/* AUTH visibility states */
.shell{display:none;}
body.authed .shell{display:grid;}
body.authed .auth-wrap{display:none;}

/* ROLE GATING - hide admin-only affordances for VAs */
body.role-va .admin-only{display:none !important;}

/* =============================================================================
   FOCUS - visible, consistent, accessible
   ============================================================================= */
.btn:focus-visible,.icon-btn:focus-visible,.tb-icon:focus-visible,.nav-item:focus-visible,
.seg button:focus-visible,.inp:focus-visible,.sel:focus-visible,.txt:focus-visible,
.search input:focus-visible,.kcard:focus-visible,
.trow:focus-visible,.auth-link:focus-visible,.kcol-add:focus-visible,.status:focus-visible,
.rail-break-toggle:focus-visible,
.aivira-chip:focus-visible{
  outline:2px solid var(--blue-3);outline-offset:2px;border-radius:var(--r-xs);
}

/* =============================================================================
   REDUCED MOTION
   ============================================================================= */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
  html.theme-transitioning body::before{display:none !important;}
  .tb-icon.theme-pressing{transform:none !important;box-shadow:var(--sh-xs) !important;}
  .tb-icon.theme-pressing::after{display:none !important;}
  .tb-icon.theme-pressing svg,html.theme-settled .content{animation:none !important;}
  .aivira-card::after,.aivira-kicker{animation:none !important;}
}

/* Birthday Center — reference-faithful layout */
.calendar-birthday-slot{margin-bottom:22px;}
.birthday-center-premium{
  --birthday-violet:#7447ee;
  --birthday-violet-dark:#5935d7;
  --birthday-ink:#071a3a;
  --birthday-muted:#617594;
  position:relative;
  z-index:2;
  margin:0 0 22px;
  padding:0 50px 50px;
  border:1px solid #edf0f7;
  border-radius:30px;
  background:
    radial-gradient(820px 300px at 100% 0,rgba(227,220,255,.16),transparent 72%),
    linear-gradient(180deg,#fff 0%,#fff 72%,#fbfcff 100%);
  box-shadow:0 22px 56px -34px rgba(30,52,91,.28),0 8px 24px -20px rgba(48,64,94,.2);
  overflow:hidden;
  isolation:isolate;
  animation:birthdayCenterEnter .52s cubic-bezier(.2,.8,.2,1) both;
}
.birthday-center-premium::before,.birthday-center-premium::after{display:none;content:none;}
.birthday-center-premium .birthday-center-head{display:block;padding:42px 0 34px;}
.birthday-center-premium .birthday-kicker{
  display:inline-flex;align-items:center;gap:14px;
  color:#8c3a9e;font-size:16px;font-weight:900;line-height:1;
  letter-spacing:.01em;text-transform:uppercase;
}
.birthday-kicker-icon{width:27px;height:27px;fill:none;stroke:#7447ee;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;overflow:visible;}
.birthday-center-premium h4{
  margin:25px 0 0;
  color:var(--birthday-ink);
  font-family:'Bricolage Grotesque',sans-serif;
  font-size:49px;font-weight:800;line-height:.98;letter-spacing:-.025em;
}
.birthday-center-premium h4>span{display:none;}
.birthday-center-premium .birthday-center-head p{
  margin:17px 0 0;color:var(--birthday-muted);
  font-size:20px;font-weight:520;line-height:1.35;
}
.birthday-feature-card{
  position:relative;z-index:1;
  display:grid;grid-template-columns:226px minmax(455px,570px) minmax(300px,1fr);
  align-items:stretch;gap:0;
  min-height:226px;padding:0;
  border:1px solid #ddd7f4;border-radius:20px;
  background:linear-gradient(103deg,#fff 0%,#fdfbff 53%,#fff9fc 100%);
  box-shadow:0 16px 34px -28px rgba(57,46,102,.32),inset 0 1px 0 rgba(255,255,255,.92);
  overflow:visible;
}
.birthday-feature-card::before{
  content:"";display:block;position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(circle at 91% 88%,rgba(219,208,255,.31),transparent 15%),
    radial-gradient(circle at 84% 100%,rgba(231,223,255,.38),transparent 18%),
    linear-gradient(180deg,rgba(255,255,255,.4),transparent 54%);
}
.birthday-countdown-panel{
  position:relative;z-index:3;
  width:auto;min-height:224px;margin:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;
  border-radius:19px 0 0 19px;
  background:
    radial-gradient(circle at 18% 10%,rgba(255,255,255,.28),transparent 27%),
    radial-gradient(circle at 78% 78%,rgba(144,202,255,.22),transparent 24%),
    linear-gradient(145deg,#8755f4 0%,#7447ee 48%,#5a3bd5 100%);
  box-shadow:inset -1px 0 0 rgba(72,43,184,.18),0 18px 34px -26px rgba(82,50,208,.65);
  color:#fff;text-align:center;overflow:hidden;
}
.birthday-countdown-panel::before{
  content:"";display:block;position:absolute;inset:0;
  background:linear-gradient(145deg,rgba(255,255,255,.18),transparent 38%),radial-gradient(circle at 52% 116%,rgba(255,255,255,.13),transparent 45%);
}
.birthday-countdown-panel::after{
  content:"";display:block;position:absolute;left:-32px;right:-34px;bottom:-68px;height:132px;
  border-radius:50%;background:rgba(255,255,255,.075);transform:rotate(-8deg);
}
.birthday-countdown-panel b{
  position:relative;z-index:2;margin:0;
  font-family:'Bricolage Grotesque',sans-serif;font-size:70px;font-weight:800;line-height:.82;letter-spacing:-.03em;
  text-shadow:0 6px 18px rgba(53,31,137,.16);
}
.birthday-countdown-panel span{
  position:relative;z-index:2;margin:0;
  font-size:19px;font-weight:900;line-height:1;text-transform:uppercase;letter-spacing:.025em;
}
.birthday-countdown-panel>i{position:absolute;z-index:2;width:7px;height:7px;background:#e8c7f2;transform:rotate(45deg);opacity:.82;}
.birthday-countdown-panel>i:nth-of-type(1){left:24px;top:35px;}
.birthday-countdown-panel>i:nth-of-type(2){left:20px;bottom:47px;width:5px;height:5px;background:#fff1a6;}
.birthday-countdown-panel>i:nth-of-type(3){right:42px;top:28px;width:5px;height:11px;background:#6bbdf4;border-radius:2px;}
.birthday-countdown-panel>i:nth-of-type(4){right:32px;bottom:31px;width:8px;height:4px;background:#eeaa9d;}
.birthday-feature-person{
  position:relative;z-index:3;
  display:grid;grid-template-columns:164px minmax(0,1fr);align-items:center;gap:26px;
  min-width:0;padding:0 20px 0 51px;
}
.birthday-party-avatar{position:relative;display:grid;place-items:center;width:128px;height:128px;}
.birthday-party-avatar::before{
  content:"";position:absolute;inset:-17px;border-radius:50%;
  background:radial-gradient(circle at 42% 34%,rgba(255,255,255,.86),rgba(239,234,255,.64) 54%,rgba(214,202,255,.34));
  box-shadow:inset 0 0 0 1.5px #ddd4fb,0 10px 20px -16px rgba(77,55,156,.35);
}
.birthday-party-avatar .avatar{
  position:relative;z-index:2;width:128px!important;height:128px!important;
  border:0;background:#fff;box-shadow:none;object-fit:cover;
}
.birthday-party-hat{
  position:absolute;z-index:5;left:27px;top:-24px;width:45px;height:58px;
  border:0;background:repeating-linear-gradient(145deg,#7447ee 0 7px,#f1eaff 7px 14px);
  clip-path:polygon(50% 0,100% 100%,0 100%);transform:rotate(-14deg);
  filter:drop-shadow(0 5px 5px rgba(79,46,182,.17));
}
.birthday-party-hat::before{content:"";position:absolute;left:17px;top:-7px;width:11px;height:11px;border-radius:50%;background:#7447ee;}
.birthday-party-hat::after{content:"";position:absolute;left:2px;right:2px;bottom:0;height:7px;border-radius:999px;background:#7447ee;}
.birthday-party-hat>i{display:none;}
.birthday-feature-copy{min-width:0;}
.birthday-feature-copy>span{
  display:inline-flex;padding:9px 14px;
  border:1px solid #dcd1ff;border-radius:9px;background:rgba(255,255,255,.78);
  color:#7447ee;font-size:13px;font-weight:900;line-height:1;text-transform:uppercase;letter-spacing:.015em;
  box-shadow:0 10px 20px -18px rgba(96,62,205,.38);
  transform:translateY(-12px);
}
.birthday-feature-copy b{
  display:block;margin:21px 0 0;
  color:var(--birthday-ink);font-family:'Bricolage Grotesque',sans-serif;
  font-size:46px;font-weight:800;line-height:.92;letter-spacing:-.025em;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.birthday-feature-copy b::after{display:none;content:none;}
.birthday-feature-copy small{
  display:flex;align-items:center;gap:12px;margin-top:22px;
  color:var(--birthday-muted);font-size:16px;font-weight:700;line-height:1.2;white-space:nowrap;
}
.birthday-feature-copy small strong{color:#7447ee;font-size:inherit;font-weight:800;}
.birthday-feature-copy small em{width:1px;height:25px;background:#cdd5e4;flex:0 0 auto;}
.birthday-mini-cal,.birthday-mini-clock{
  position:relative;display:inline-block;flex:0 0 auto;width:20px;height:20px;
  border:2px solid currentColor;border-radius:4px;color:#647b9c;vertical-align:middle;
}
.birthday-mini-cal::before{content:"";position:absolute;left:2px;right:2px;top:5px;height:2px;background:currentColor;box-shadow:3px 5px 0 -1px currentColor,8px 5px 0 -1px currentColor;}
.birthday-mini-cal::after{content:"";position:absolute;left:3px;right:3px;top:-4px;height:5px;border-left:2px solid currentColor;border-right:2px solid currentColor;}
.birthday-mini-clock{border-radius:50%;color:#7447ee;}
.birthday-mini-clock::before{content:"";position:absolute;left:8px;top:3px;width:2px;height:6px;background:currentColor;border-radius:2px;}
.birthday-mini-clock::after{content:"";position:absolute;left:8px;top:8px;width:5px;height:2px;background:currentColor;border-radius:2px;transform:rotate(28deg);transform-origin:left center;}
.birthday-hero-art{position:relative;z-index:2;min-width:0;height:100%;overflow:visible;}
.birthday-card-confetti{position:absolute;inset:0;z-index:3;pointer-events:none;}
.birthday-card-confetti i{
  position:absolute;left:var(--x);top:var(--y);width:9px;height:9px;border-radius:1px;
  background:#9b69ec;opacity:.55;transform:rotate(var(--r));animation:birthdayConfettiHover 5.4s ease-in-out infinite;
}
.birthday-card-confetti i:nth-child(3n){width:7px;height:12px;border-radius:999px;background:#ed8bc9;}
.birthday-card-confetti i:nth-child(3n+1){width:7px;height:7px;background:#9fcaf5;}
.birthday-card-confetti i:nth-child(4n){background:#dca6e5;}
.birthday-card-confetti i:nth-child(5n){animation-delay:-2.2s;}
.birthday-hero-clouds{position:absolute;inset:auto 0 0 0;height:88px;z-index:1;overflow:hidden;}
.birthday-hero-clouds::before{content:"";position:absolute;right:-15px;bottom:-55px;width:235px;height:128px;border-radius:50%;background:#eee8ff;opacity:.8;}
.birthday-hero-clouds i{position:absolute;bottom:-44px;border-radius:50%;background:#f2edff;}
.birthday-hero-clouds i:nth-child(1){left:8%;width:168px;height:92px;}
.birthday-hero-clouds i:nth-child(2){left:26%;width:140px;height:75px;}
.birthday-hero-clouds i:nth-child(3){right:12%;width:148px;height:90px;background:#f4edff;}
.birthday-hero-balloons{position:absolute;right:24px;top:-48px;width:340px;height:256px;z-index:3;opacity:.82;pointer-events:none;}
.birthday-hero-balloons span{
  position:absolute;border-radius:50% 50% 48% 48%;
  box-shadow:inset 13px 13px 0 rgba(255,255,255,.26),inset -12px -15px 0 rgba(87,55,170,.05),0 18px 28px -24px rgba(95,64,181,.34);
  animation:birthdayBalloonFloat 5.2s ease-in-out infinite;
}
.birthday-hero-balloons span::before{content:"";position:absolute;left:49%;bottom:-8px;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:0;border-top:10px solid currentColor;opacity:.78;}
.birthday-hero-balloons span::after{content:"";position:absolute;left:50%;top:100%;width:42px;height:100px;border-left:2px solid currentColor;border-radius:50%;opacity:.25;transform:rotate(-8deg);transform-origin:top;}
.birthday-hero-balloons span:nth-child(1){left:12px;top:72px;width:78px;height:100px;color:#e65ba5;background:linear-gradient(145deg,#ffc5e3,#ec67ae);animation-delay:-1.1s;}
.birthday-hero-balloons span:nth-child(2){left:118px;top:0;width:92px;height:119px;color:#7956dc;background:linear-gradient(145deg,#daccff,#9b7ceb);animation-delay:-2.5s;}
.birthday-hero-balloons span:nth-child(3){right:12px;top:104px;width:82px;height:104px;color:#6e9dd8;background:linear-gradient(145deg,#d8eaff,#9fc3ef);animation-delay:-.4s;}
.birthday-hero-balloons span:nth-child(1)::after{height:52px;}
.birthday-hero-balloons span:nth-child(3)::after{height:34px;}
.birthday-display-gift{
  position:absolute;z-index:4;left:55%;bottom:-2px;width:74px;height:58px;
  border-radius:8px 8px 0 0;
  background:linear-gradient(90deg,#9572ed 0 40%,#c3adff 41% 57%,#8764e3 58%);
  box-shadow:0 15px 22px -17px rgba(78,52,161,.45);
}
.birthday-display-gift::before{content:"";position:absolute;left:-6px;right:-6px;top:-10px;height:15px;border-radius:6px;background:linear-gradient(90deg,#8762df 0 40%,#cbb8ff 41% 57%,#9876eb 58%);}
.birthday-display-gift span::before,.birthday-display-gift span::after{content:"";position:absolute;top:-27px;width:27px;height:20px;border:5px solid #9b7aec;border-radius:50% 50% 0 50%;}
.birthday-display-gift span::before{left:8px;transform:rotate(-28deg);}
.birthday-display-gift span::after{right:8px;transform:rotate(28deg) scaleX(-1);}
.birthday-center-premium .birthday-upcoming{position:relative;z-index:2;padding:31px 0 0;display:grid;gap:22px;}
.birthday-center-premium .birthday-subhead{
  display:flex;align-items:center;gap:13px;
  color:#5e708d;font-size:16px;font-weight:900;line-height:1;text-transform:uppercase;letter-spacing:.015em;
}
.birthday-center-premium .birthday-subhead::after{display:none;content:none;}
.birthday-center-premium .birthday-subhead i{
  position:relative;width:21px;height:20px;border:2px solid #7447ee;border-radius:3px;color:#7447ee;
}
.birthday-center-premium .birthday-subhead i::before{content:"";position:absolute;left:2px;right:2px;top:4px;height:2px;background:currentColor;box-shadow:3px 5px 0 -1px currentColor,8px 5px 0 -1px currentColor;}
.birthday-center-premium .birthday-subhead i::after{content:"";position:absolute;left:3px;right:3px;top:-4px;height:5px;border-left:2px solid currentColor;border-right:2px solid currentColor;}
.birthday-center-premium .birthday-upcoming-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:29px;}
.birthday-upcoming-card{
  --birthday-accent:#7447ee;--birthday-soft:rgba(116,71,238,.1);
  position:relative;display:grid;grid-template-columns:100px minmax(0,1fr);align-items:center;gap:13px;
  min-width:0;min-height:171px;padding:17px 13px 17px 26px;
  border:1px solid #e0e6f1;border-radius:18px;background:rgba(255,255,255,.96);
  box-shadow:0 17px 29px -23px rgba(30,50,84,.27);overflow:hidden;
  animation:birthdayCardEnter .46s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(90ms + var(--birthday-row) * 55ms);
  transition:transform .24s ease,border-color .24s ease,box-shadow .24s ease;
}
.birthday-upcoming-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--birthday-accent) 32%,#e0e6f1);box-shadow:0 22px 34px -23px rgba(47,52,100,.34);}
.birthday-upcoming-card::before{content:"";position:absolute;inset:0;background:radial-gradient(115px 115px at 27% 49%,var(--birthday-soft),transparent 73%);pointer-events:none;}
.birthday-upcoming-card.tone-violet{--birthday-accent:#7447ee;--birthday-soft:rgba(116,71,238,.12);border-color:#ded9ef;}
.birthday-upcoming-card.tone-pink{--birthday-accent:#e93891;--birthday-soft:rgba(233,56,145,.105);}
.birthday-upcoming-card.tone-blue{--birthday-accent:#3f7bea;--birthday-soft:rgba(63,123,234,.105);}
.birthday-upcoming-card.tone-rose{--birthday-accent:#de3990;--birthday-soft:rgba(222,57,144,.1);}
.birthday-upcoming-card.tone-amber{--birthday-accent:#f4a51e;--birthday-soft:rgba(244,165,30,.105);}
.birthday-upcoming-card .birthday-upcoming-dot{
  position:absolute;left:14px;top:50%;width:10px;height:10px;border-radius:50%;
  background:var(--birthday-accent);box-shadow:none;transform:translateY(-50%);
}
.birthday-upcoming-card .birthday-party-avatar{justify-self:center;width:82px;height:82px;}
.birthday-upcoming-card .birthday-party-avatar::before{inset:-8px;background:radial-gradient(circle at 42% 34%,rgba(255,255,255,.88),var(--birthday-soft));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--birthday-accent) 16%,#e8ebf3),0 9px 17px -14px rgba(44,48,80,.25);}
.birthday-upcoming-card .birthday-party-avatar .avatar{width:82px!important;height:82px!important;}
.birthday-upcoming-card .birthday-party-hat{left:19px;top:-17px;width:31px;height:42px;background:repeating-linear-gradient(145deg,var(--birthday-accent) 0 6px,#f4efff 6px 12px);}
.birthday-upcoming-card .birthday-party-hat::before{left:11px;top:-5px;width:8px;height:8px;background:var(--birthday-accent);}
.birthday-upcoming-card .birthday-party-hat::after{left:1px;right:1px;height:5px;background:var(--birthday-accent);}
.birthday-upcoming-copy{position:relative;z-index:2;min-width:0;}
.birthday-upcoming-copy b{
  display:block;color:var(--birthday-ink);font-size:20px;font-weight:900;line-height:1.1;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.birthday-upcoming-copy b::after{display:none;content:none;}
.birthday-upcoming-copy small,.birthday-upcoming-copy>span{
  display:flex;align-items:center;gap:9px;margin-top:15px;padding:0;border:0;border-radius:0;background:none;
  color:var(--birthday-muted);font-size:15px;font-weight:690;line-height:1.15;white-space:nowrap;
}
.birthday-upcoming-copy>span{margin-top:17px;color:#7447ee;font-weight:820;}
.birthday-upcoming-copy .birthday-mini-cal,.birthday-upcoming-copy .birthday-mini-clock{width:18px;height:18px;color:#657b9b;}
.birthday-upcoming-copy>span .birthday-mini-clock{color:#7447ee;}
.birthday-empty-premium{margin:0;min-height:180px;border-radius:20px;background:linear-gradient(135deg,#fff,#faf8ff);}
@keyframes birthdayCenterEnter{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
@keyframes birthdayCardEnter{from{opacity:0;transform:translateY(9px);}to{opacity:1;transform:none;}}
@keyframes birthdayBalloonFloat{0%,100%{transform:translateY(0) rotate(-1deg);}50%{transform:translateY(-5px) rotate(1deg);}}
@keyframes birthdayConfettiHover{0%,100%{transform:translateY(0) rotate(var(--r));opacity:.42;}50%{transform:translateY(-3px) rotate(calc(var(--r) + 8deg));opacity:.72;}}
@media (max-width:1350px){
  .birthday-center-premium{padding-left:32px;padding-right:32px;}
  .birthday-feature-card{grid-template-columns:210px minmax(410px,500px) 1fr;}
  .birthday-feature-person{grid-template-columns:145px minmax(0,1fr);gap:20px;padding-left:25px;}
  .birthday-party-avatar{width:112px;height:112px;}.birthday-party-avatar .avatar{width:112px!important;height:112px!important;}
  .birthday-center-premium .birthday-upcoming-list{gap:16px;}
  .birthday-upcoming-card{grid-template-columns:74px minmax(0,1fr);padding-left:22px;gap:8px;}
  .birthday-upcoming-card .birthday-party-avatar{width:66px;height:66px;}.birthday-upcoming-card .birthday-party-avatar .avatar{width:66px!important;height:66px!important;}
}
@media (max-width:1050px){
  .birthday-feature-card{grid-template-columns:190px minmax(400px,1fr);}
  .birthday-hero-art{position:absolute;right:0;top:0;width:44%;opacity:.55;}
  .birthday-center-premium .birthday-upcoming-list{grid-template-columns:repeat(2,minmax(0,1fr));}
  .birthday-upcoming-card{grid-template-columns:92px minmax(0,1fr);}
}
@media (max-width:720px){
  .birthday-center-premium{padding:0 18px 24px;border-radius:22px;}
  .birthday-center-premium .birthday-center-head{padding:28px 4px 24px;}
  .birthday-center-premium h4{margin-top:23px;font-size:36px;}
  .birthday-center-premium .birthday-center-head p{font-size:15px;}
  .birthday-feature-card{display:block;min-height:0;overflow:hidden;}
  .birthday-countdown-panel{min-height:120px;border-radius:18px 18px 0 0;gap:8px;}
  .birthday-countdown-panel b{font-size:54px;}.birthday-countdown-panel span{font-size:15px;}
  .birthday-feature-person{grid-template-columns:105px minmax(0,1fr);gap:17px;min-height:176px;padding:24px;}
  .birthday-feature-person .birthday-party-avatar{width:82px;height:82px;}.birthday-feature-person .birthday-party-avatar .avatar{width:82px!important;height:82px!important;}
  .birthday-feature-person .birthday-party-avatar::before{inset:-10px;}
  .birthday-feature-person .birthday-party-hat{left:16px;top:-16px;width:31px;height:42px;}
  .birthday-feature-copy>span{padding:7px 9px;font-size:10px;}.birthday-feature-copy b{font-size:31px;margin-top:16px;}
  .birthday-feature-copy small{gap:8px;margin-top:17px;font-size:12px;flex-wrap:wrap;}.birthday-feature-copy small em{height:18px;}
  .birthday-hero-art{display:none;}
  .birthday-center-premium .birthday-upcoming{padding-top:22px;}
  .birthday-center-premium .birthday-upcoming-list{grid-template-columns:1fr;gap:12px;}
  .birthday-upcoming-card{grid-template-columns:90px minmax(0,1fr);min-height:132px;padding-top:12px;padding-bottom:12px;}
}
[data-theme="dark"] .birthday-center-premium{background:linear-gradient(180deg,#111c2b,#101a28);border-color:#26364a;box-shadow:var(--sh);}
[data-theme="dark"] .birthday-center-premium h4,[data-theme="dark"] .birthday-feature-copy b,[data-theme="dark"] .birthday-upcoming-copy b{color:#f6f8fc;}
[data-theme="dark"] .birthday-center-premium .birthday-center-head p,[data-theme="dark"] .birthday-feature-copy small,[data-theme="dark"] .birthday-upcoming-copy small{color:#b8c5d8;}
[data-theme="dark"] .birthday-feature-card{border-color:#42375d;background:linear-gradient(103deg,#142132,#1c1d34 54%,#241d35);}
[data-theme="dark"] .birthday-upcoming-card{background:#142131;border-color:#2d3d51;}
[data-theme="dark"] .birthday-party-avatar .avatar{background:#fff;}

/* Compact Birthday Center — approximately half the original vertical footprint */
.birthday-center-premium{padding:0 28px 24px;border-radius:22px;}
.birthday-center-premium .birthday-center-head{padding:21px 0 17px;}
.birthday-center-premium .birthday-kicker{gap:9px;font-size:12px;}
.birthday-kicker-icon{width:20px;height:20px;}
.birthday-center-premium h4{margin-top:12px;font-size:32px;}
.birthday-center-premium .birthday-center-head p{margin-top:8px;font-size:14px;}
.birthday-feature-card{grid-template-columns:142px minmax(350px,470px) minmax(240px,1fr);min-height:130px;border-radius:15px;overflow:hidden;}
.birthday-countdown-panel{min-height:128px;border-radius:14px 0 0 14px;gap:8px;}
.birthday-countdown-panel b{font-size:48px;}
.birthday-countdown-panel span{font-size:13px;}
.birthday-countdown-panel>i:nth-of-type(1){left:15px;top:19px;}
.birthday-countdown-panel>i:nth-of-type(2){left:17px;bottom:23px;}
.birthday-countdown-panel>i:nth-of-type(3){right:24px;top:16px;}
.birthday-countdown-panel>i:nth-of-type(4){right:18px;bottom:18px;}
.birthday-feature-person{grid-template-columns:92px minmax(0,1fr);gap:18px;padding:0 14px 0 28px;}
.birthday-feature-person .birthday-party-avatar{width:72px;height:72px;}
.birthday-feature-person .birthday-party-avatar::before{inset:-9px;}
.birthday-feature-person .birthday-party-avatar .avatar{width:72px!important;height:72px!important;}
.birthday-feature-person .birthday-party-hat{left:15px;top:-14px;width:29px;height:39px;}
.birthday-feature-person .birthday-party-hat::before{left:10px;top:-5px;width:8px;height:8px;}
.birthday-feature-person .birthday-party-hat::after{height:5px;}
.birthday-feature-copy>span{padding:6px 9px;font-size:9px;transform:translateY(-5px);}
.birthday-feature-copy b{margin-top:10px;font-size:30px;}
.birthday-feature-copy small{gap:8px;margin-top:12px;font-size:12px;}
.birthday-feature-copy small em{height:17px;}
.birthday-feature-action{min-height:24px;padding:5px 9px;border:0;border-radius:7px;background:linear-gradient(135deg,#7447ee,#5b38d4);box-shadow:0 8px 16px -11px rgba(83,52,195,.75);color:#fff;font:inherit;font-size:10px;font-weight:850;line-height:1;white-space:nowrap;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease;}
.birthday-feature-action:hover{transform:translateY(-1px);box-shadow:0 10px 18px -11px rgba(83,52,195,.85);}
.birthday-feature-action:focus-visible{outline:2px solid #9c82f5;outline-offset:2px;}
.birthday-feature-copy .birthday-mini-cal,.birthday-feature-copy .birthday-mini-clock{width:15px;height:15px;border-width:1.5px;}
.birthday-feature-copy .birthday-mini-clock::before{left:6px;top:2px;height:5px;}
.birthday-feature-copy .birthday-mini-clock::after{left:6px;top:6px;width:4px;}
.birthday-hero-art{width:auto;height:130px;transform:none;justify-self:stretch;overflow:hidden;}
.birthday-hero-clouds{inset:auto 0 0;height:46px;}
.birthday-hero-clouds::before{right:-20px;bottom:-48px;width:190px;height:86px;}
.birthday-hero-clouds i{bottom:-34px;}
.birthday-hero-clouds i:nth-child(1){left:4%;width:112px;height:58px;}
.birthday-hero-clouds i:nth-child(2){left:30%;width:94px;height:52px;}
.birthday-hero-clouds i:nth-child(3){right:9%;width:104px;height:58px;}
.birthday-hero-balloons{right:12px;top:0;width:238px;height:130px;opacity:.72;overflow:visible;}
.birthday-hero-balloons span{animation:birthdayBalloonFloatCompact 5s ease-in-out infinite;box-shadow:inset 7px 7px 0 rgba(255,255,255,.25),inset -6px -8px 0 rgba(87,55,170,.04),0 10px 18px -16px rgba(95,64,181,.28);}
.birthday-hero-balloons span::before{bottom:-5px;border-left-width:4px;border-right-width:4px;border-top-width:7px;}
.birthday-hero-balloons span::after{left:50%;width:15px;border-left-width:1px;transform:rotate(-3deg);opacity:.22;}
.birthday-hero-balloons span:nth-child(1){left:12px;top:35px;width:42px;height:54px;}
.birthday-hero-balloons span:nth-child(2){left:91px;top:7px;width:50px;height:65px;}
.birthday-hero-balloons span:nth-child(3){right:8px;top:42px;width:44px;height:57px;}
.birthday-hero-balloons span:nth-child(1)::after{height:34px;}
.birthday-hero-balloons span:nth-child(2)::after{height:48px;}
.birthday-hero-balloons span:nth-child(3)::after{height:25px;}
.birthday-display-gift{left:42%;bottom:0;width:45px;height:35px;border-radius:5px 5px 0 0;}
.birthday-display-gift::before{left:-4px;right:-4px;top:-6px;height:9px;border-radius:4px;}
.birthday-display-gift span::before,.birthday-display-gift span::after{top:-17px;width:17px;height:12px;border-width:3px;}
.birthday-display-gift span::before{left:5px;}
.birthday-display-gift span::after{right:5px;}
.birthday-center-premium .birthday-upcoming{padding-top:15px;gap:11px;}
.birthday-center-premium .birthday-subhead{gap:9px;font-size:12px;}
.birthday-center-premium .birthday-subhead i{width:16px;height:16px;border-width:1.5px;}
.birthday-center-premium .birthday-upcoming-list{gap:14px;}
.birthday-upcoming-card{grid-template-columns:62px minmax(0,1fr);gap:8px;min-height:92px;padding:9px 8px 9px 18px;border-radius:13px;}
.birthday-upcoming-card .birthday-upcoming-dot{left:9px;width:7px;height:7px;}
.birthday-upcoming-card .birthday-party-avatar{width:50px;height:50px;}
.birthday-upcoming-card .birthday-party-avatar::before{inset:-5px;}
.birthday-upcoming-card .birthday-party-avatar .avatar{width:50px!important;height:50px!important;}
.birthday-upcoming-card .birthday-party-hat{left:11px;top:-10px;width:21px;height:28px;}
.birthday-upcoming-card .birthday-party-hat::before{left:7px;top:-4px;width:6px;height:6px;}
.birthday-upcoming-card .birthday-party-hat::after{height:4px;}
.birthday-upcoming-copy b{font-size:14px;}
.birthday-upcoming-copy small,.birthday-upcoming-copy>span{gap:6px;margin-top:8px;font-size:10.5px;}
.birthday-upcoming-copy>span{margin-top:9px;}
.birthday-upcoming-copy .birthday-mini-cal,.birthday-upcoming-copy .birthday-mini-clock{width:13px;height:13px;border-width:1.5px;}
.birthday-upcoming-copy .birthday-mini-clock::before{left:5px;top:2px;height:4px;width:1.5px;}
.birthday-upcoming-copy .birthday-mini-clock::after{left:5px;top:5px;width:3px;height:1.5px;}
.birthday-upcoming-card[role="button"]{cursor:pointer;}
.birthday-upcoming-card[role="button"]:focus-visible{outline:2px solid var(--birthday-accent);outline-offset:2px;}
.birthday-today-summary{display:flex;align-items:center;gap:14px;min-height:58px;margin-top:12px;padding:8px 11px;border:1px solid #ddd7f4;border-radius:13px;background:linear-gradient(105deg,#fbf9ff,#fffafd);box-shadow:0 12px 24px -24px rgba(68,51,125,.42);}
.birthday-today-summary-label{display:grid;gap:3px;min-width:112px;padding-right:12px;border-right:1px solid #e5dff2;}
.birthday-today-summary-label span{color:#7447ee;font-size:9px;font-weight:900;line-height:1;text-transform:uppercase;letter-spacing:.055em;}
.birthday-today-summary-label b{color:#0b2041;font-size:12px;font-weight:900;line-height:1.15;}
.birthday-today-people{display:flex;flex:1;align-items:center;gap:8px;min-width:0;overflow-x:auto;scrollbar-width:thin;}
.birthday-today-person{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:226px;padding:5px 7px;border-radius:9px;background:rgba(255,255,255,.72);}
button.birthday-today-person{border:1px solid transparent;color:inherit;font-family:inherit;text-align:left;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;}
button.birthday-today-person:hover{transform:translateY(-1px);border-color:#d5c8fa;box-shadow:0 9px 16px -15px rgba(80,57,163,.55);}
button.birthday-today-person:focus-visible{outline:2px solid #7447ee;outline-offset:2px;}
.birthday-today-person-main{display:flex;align-items:center;gap:7px;min-width:0;}
.birthday-today-person-main .avatar{width:30px;height:30px;}
.birthday-today-person-main b{display:block;color:#0b2041;font-size:11px;font-weight:900;line-height:1.1;}
.birthday-today-person-main small{display:block;max-width:130px;margin-top:3px;color:#657995;font-size:9.5px;font-weight:700;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.birthday-today-greeters{display:flex;align-items:center;flex:0 0 auto;}
.birthday-today-greeters>span{display:block;margin-left:-5px;border:2px solid #fff;border-radius:50%;}
.birthday-today-greeters>span:first-child{margin-left:0;}
.birthday-today-greeters .avatar{width:22px;height:22px;}
.birthday-today-greeters .birthday-today-more{display:grid;place-items:center;width:22px;height:22px;background:#efeaff;color:#7447ee;font-size:8px;font-weight:900;}
[data-theme="dark"] .birthday-today-summary{border-color:#40395b;background:linear-gradient(105deg,#171d32,#211d37);}
[data-theme="dark"] .birthday-today-summary-label{border-color:#433b5c;}
[data-theme="dark"] .birthday-today-summary-label b,[data-theme="dark"] .birthday-today-person-main b{color:#f5f7fc;}
[data-theme="dark"] .birthday-today-person{background:rgba(255,255,255,.035);}
[data-theme="dark"] button.birthday-today-person:hover{border-color:#6756a4;}
[data-theme="dark"] .birthday-today-person-main small{color:#bdc8db;}
[data-theme="dark"] .birthday-greeting-stamp{color:#aab8ca;}
[data-theme="dark"] .dashboard-birthday-alert{border-color:#40395b;background:linear-gradient(105deg,#171d32,#211d37);}
[data-theme="dark"] .dashboard-birthday-alert-label{border-color:#433b5c;}
[data-theme="dark"] .dashboard-birthday-alert-label b,[data-theme="dark"] .dashboard-birthday-person b{color:#f5f7fc;}
[data-theme="dark"] .dashboard-birthday-person{background:rgba(255,255,255,.035);}
[data-theme="dark"] .dashboard-birthday-person:hover{border-color:#6756a4;}
[data-theme="dark"] .dashboard-birthday-person small{color:#bdc8db;}
@media (max-width:1050px){
  .birthday-feature-card{grid-template-columns:130px minmax(320px,1fr);}
  .birthday-hero-art{position:absolute;right:0;top:0;width:46%;height:130px;transform:none;opacity:.82;}
  .birthday-center-premium .birthday-upcoming-list{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:720px){
  .birthday-center-premium{padding:0 12px 18px;}
  .birthday-feature-card{display:block;}
  .birthday-countdown-panel{min-height:82px;border-radius:13px 13px 0 0;}
  .birthday-feature-person{grid-template-columns:72px minmax(0,1fr);min-height:120px;padding:16px 18px;}
  .birthday-today-summary{align-items:flex-start;flex-direction:column;gap:8px;}
  .birthday-today-summary-label{display:flex;align-items:center;gap:7px;min-width:0;padding:0;border:0;}
  .birthday-today-people{width:100%;}
  .birthday-center-premium .birthday-upcoming-list{grid-template-columns:1fr;}
  .dashboard-birthday-alert{align-items:flex-start;flex-direction:column;gap:8px;}
  .dashboard-birthday-alert-label{display:flex;align-items:center;gap:7px;min-width:0;padding:0;border:0;}
  .dashboard-birthday-alert-people{width:100%;}
}
@keyframes birthdayBalloonFloatCompact{0%,100%{transform:translateY(0);}50%{transform:translateY(-2px);}}

/* =============================================================================
   TASK BOARD — pharmacy operations cockpit
   Reference direction: compact desktop density, restrained gradients, crisp
   blue chrome, unmistakable status colors, and calm empty states.
   ============================================================================= */
#panel-tasks{
  --board-pending:#E39A12;--board-pending-soft:#FFF8EB;
  --board-progress:#176FC1;--board-progress-soft:#EEF6FF;
  --board-blocked:#D83A3E;--board-blocked-soft:#FFF1F1;
  --board-completed:#249555;--board-completed-soft:#EEF9F2;
  position:relative;
}
#panel-tasks .workboard-summary{
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:14px;margin-bottom:16px;
}
#panel-tasks .wb-stat{
  --stat:var(--blue-3);--stat-soft:var(--blue-soft);
  display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:12px;
  min-width:0;min-height:76px;padding:10px 14px 10px 11px;
  border:1px solid color-mix(in srgb,var(--stat) 26%,var(--line));
  border-radius:8px;
  background:
    linear-gradient(180deg,color-mix(in srgb,var(--surface) 96%,var(--stat-soft)),color-mix(in srgb,var(--stat-soft) 52%,var(--surface)));
  box-shadow:0 2px 4px rgba(16,44,73,.09),0 9px 20px -18px color-mix(in srgb,var(--stat) 55%,transparent);
}
#panel-tasks .wb-stat::before{
  left:0;top:0;bottom:0;width:3px;border-radius:8px 0 0 8px;background:var(--stat);
}
#panel-tasks .wb-stat.blue{--stat:var(--blue-3);--stat-soft:var(--blue-soft);}
#panel-tasks .wb-stat.green{--stat:var(--board-completed);--stat-soft:var(--green-soft);}
#panel-tasks .wb-stat.amber{--stat:#F08A16;--stat-soft:var(--amber-soft);}
#panel-tasks .wb-stat.coral{--stat:var(--board-blocked);--stat-soft:var(--coral-soft);}
#panel-tasks .wb-stat:hover{
  border-color:color-mix(in srgb,var(--stat) 44%,var(--line));
  box-shadow:0 4px 11px -6px color-mix(in srgb,var(--stat) 45%,transparent),0 12px 24px -20px rgba(16,44,73,.45);
  transform:translateY(-1px);
}
#panel-tasks .wb-stat>.wb-stat-icon{
  display:grid;place-items:center;width:44px;height:44px;margin:0;
  border:1px solid color-mix(in srgb,var(--stat) 24%,var(--line));
  border-radius:50%;
  color:var(--stat);
  background:
    radial-gradient(circle at 38% 30%,var(--surface) 0 22%,transparent 23%),
    linear-gradient(145deg,color-mix(in srgb,var(--stat-soft) 42%,var(--surface)),color-mix(in srgb,var(--stat) 10%,var(--surface)));
  box-shadow:inset 0 0 0 3px color-mix(in srgb,var(--surface) 68%,transparent),0 5px 12px -9px color-mix(in srgb,var(--stat) 70%,transparent);
  text-transform:none;letter-spacing:0;
}
#panel-tasks .wb-stat-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;}
#panel-tasks .wb-stat>.wb-stat-copy{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;margin:0;text-transform:none;letter-spacing:0;}
#panel-tasks .wb-stat-copy>span{
  display:block;max-width:100%;margin:0;color:var(--ink-2);
  font-size:10px;font-weight:800;line-height:1.2;letter-spacing:.035em;text-transform:uppercase;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
#panel-tasks .wb-stat-copy>b{
  color:var(--heading);font-size:25px;font-weight:750;line-height:1;font-variant-numeric:tabular-nums;
}

#panel-tasks .ttoolbar{
  display:grid;grid-template-columns:minmax(240px,1fr) auto auto auto;
  gap:8px;align-items:center;margin-bottom:12px;
}
#panel-tasks .search{min-width:0;}
#panel-tasks .search input{
  height:40px;padding-top:8px;padding-bottom:8px;
  border-radius:7px;border-color:var(--line-3);
  background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--blue-mist) 34%,var(--surface)));
  box-shadow:inset 0 1px 2px rgba(16,44,73,.035),var(--sh-xs);
  font-size:12.5px;
}
#panel-tasks .search svg{left:11px;width:16px;height:16px;color:var(--ink-2);}
#panel-tasks .seg{
  min-height:40px;padding:3px;border-radius:7px;border-color:var(--line-2);
  background:color-mix(in srgb,var(--surface-2) 80%,var(--surface));
  box-shadow:var(--sh-xs);
}
#panel-tasks .seg button{
  min-height:32px;padding:6px 12px;border-radius:5px;
  color:var(--ink-2);font-size:11.5px;font-weight:700;
}
#panel-tasks .seg button.on{
  color:var(--blue-4);
  background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--blue-soft) 55%,var(--surface)));
  box-shadow:0 1px 3px rgba(16,44,73,.12),inset 0 0 0 1px color-mix(in srgb,var(--blue-2) 22%,transparent);
}
#panel-tasks .task-scope button{min-width:88px;}
#panel-tasks .task-more-btn{display:none;}
#panel-tasks .task-extra-scope{display:inline-flex;}
#panel-tasks #view-board.on,#panel-tasks #view-list.on{color:#0E5CB2;}

#panel-tasks .filters{
  display:grid;
  grid-template-columns:minmax(150px,1.25fr) minmax(150px,1.25fr) minmax(125px,1fr) minmax(135px,1fr) minmax(135px,1fr) minmax(120px,.85fr) auto;
  gap:12px;align-items:end;margin-bottom:14px;padding:11px 13px 12px;
  border-color:var(--line-2);border-radius:8px;
  background:linear-gradient(180deg,color-mix(in srgb,var(--blue-mist) 52%,var(--surface)),color-mix(in srgb,var(--surface-2) 48%,var(--surface)));
  box-shadow:inset 0 1px 0 color-mix(in srgb,var(--surface) 82%,transparent),var(--sh-xs);
}
#panel-tasks .filters .fld{min-width:0;max-width:none;margin:0;}
#panel-tasks .filters .fld[style]{max-width:none!important;}
#panel-tasks .filters .lbl{
  margin-bottom:5px;color:var(--ink-2);font-size:9.5px;font-weight:800;letter-spacing:.025em;text-transform:none;
}
#panel-tasks .filters .inp,#panel-tasks .filters .sel{
  min-height:36px;padding:7px 10px;border-radius:6px;border-color:var(--line-3);
  background:var(--surface);font-size:11.5px;box-shadow:inset 0 1px 2px rgba(16,44,73,.025);
}
#panel-tasks .filters .btn{min-height:36px;padding:7px 17px;border-radius:6px;font-size:11.5px;}

#panel-tasks .board{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:stretch;}
#panel-tasks .kcol{
  --board-status:var(--blue-3);--board-column-soft:var(--blue-soft);
  min-width:0;min-height:390px;max-height:calc(100vh - 402px);padding:0;
  border:1px solid color-mix(in srgb,var(--board-status) 27%,var(--line));
  border-top:2px solid var(--board-status);border-radius:7px;
  background:
    linear-gradient(180deg,color-mix(in srgb,var(--board-column-soft) 58%,var(--surface)) 0,color-mix(in srgb,var(--board-column-soft) 20%,var(--surface-2)) 92px,var(--surface-2) 100%);
  box-shadow:0 2px 5px rgba(16,44,73,.06),0 12px 22px -24px color-mix(in srgb,var(--board-status) 70%,transparent);
  overflow:hidden;
}
#panel-tasks .kcol::before{display:none;}
#panel-tasks .kcol-pending{--board-status:var(--board-pending);--board-column-soft:var(--board-pending-soft);}
#panel-tasks .kcol-progress{--board-status:var(--board-progress);--board-column-soft:var(--board-progress-soft);}
#panel-tasks .kcol-blocked{--board-status:var(--board-blocked);--board-column-soft:var(--board-blocked-soft);}
#panel-tasks .kcol-completed{--board-status:var(--board-completed);--board-column-soft:var(--board-completed-soft);}
#panel-tasks .kcol-h{
  flex:0 0 auto;min-height:42px;margin:0;padding:8px 9px 8px 11px;
  border-bottom:1px solid color-mix(in srgb,var(--board-status) 25%,var(--line));
  border-radius:5px 5px 0 0;
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 78%,var(--board-column-soft)),color-mix(in srgb,var(--board-column-soft) 62%,var(--surface)));
}
#panel-tasks .kcol-dot{
  width:10px;height:10px;background:var(--board-status)!important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--board-status) 14%,transparent),0 1px 2px color-mix(in srgb,var(--board-status) 55%,transparent);
}
#panel-tasks .kcol-name{color:var(--heading);font-size:12px;font-weight:800;text-decoration:none;}
#panel-tasks .kcol-ct{
  min-width:24px;padding:1px 7px;color:color-mix(in srgb,var(--board-status) 76%,var(--heading));
  border-color:color-mix(in srgb,var(--board-status) 34%,var(--line));
  background:color-mix(in srgb,var(--surface) 78%,var(--board-column-soft));
  font-size:10px;font-weight:800;line-height:17px;box-shadow:none;
}
#panel-tasks .kcol-add{
  width:24px;height:24px;border-radius:5px;color:var(--ink-2);
  border-color:color-mix(in srgb,var(--board-status) 25%,var(--line));
  background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--board-column-soft) 42%,var(--surface)));
  box-shadow:0 1px 2px rgba(16,44,73,.08);
}
#panel-tasks .kcol-add:hover{background:var(--board-status);border-color:var(--board-status);transform:none;}
#panel-tasks .kcol-body{
  gap:8px;min-height:0;padding:7px;border:0;border-radius:0;
  scrollbar-gutter:stable;overflow-y:auto;
}
#panel-tasks .kcol-body.drop-hover{
  outline:2px dashed color-mix(in srgb,var(--board-status) 76%,transparent);outline-offset:-5px;
  background:color-mix(in srgb,var(--board-status) 9%,var(--surface));
}
#panel-tasks .qadd{margin:0;}
#panel-tasks .qadd input{border-radius:6px;font-size:12px;}

#panel-tasks .kcard{
  padding:9px 10px;border-width:1px!important;border-radius:6px;
  background:var(--surface);box-shadow:0 1px 3px rgba(16,44,73,.08);
  transition:transform .15s var(--ease-out),border-color .15s,box-shadow .15s,background .15s;
}
#panel-tasks .kcard.status-pending{background:color-mix(in srgb,var(--board-pending-soft) 42%,var(--surface));border-color:color-mix(in srgb,var(--board-pending) 22%,var(--line))!important;}
#panel-tasks .kcard.status-progress{background:color-mix(in srgb,var(--board-progress-soft) 50%,var(--surface));border-color:color-mix(in srgb,var(--board-progress) 21%,var(--line))!important;}
#panel-tasks .kcard.status-blocked{background:color-mix(in srgb,var(--board-blocked-soft) 68%,var(--surface));border-color:color-mix(in srgb,var(--board-blocked) 30%,var(--line))!important;box-shadow:0 1px 3px rgba(16,44,73,.08);}
#panel-tasks .kcard.status-completed{background:color-mix(in srgb,var(--board-completed-soft) 72%,var(--surface));border-color:color-mix(in srgb,var(--board-completed) 32%,var(--line))!important;}
#panel-tasks .kcard.is-mine{box-shadow:inset 3px 0 0 color-mix(in srgb,var(--blue-3) 72%,transparent),0 1px 3px rgba(16,44,73,.08);}
#panel-tasks .kcard:hover{
  z-index:2;transform:translateY(-1px);
  border-color:color-mix(in srgb,var(--board-status) 44%,var(--line-2))!important;
  box-shadow:0 0 0 2px color-mix(in srgb,var(--board-status) 10%,transparent),0 8px 17px -12px rgba(16,44,73,.36);
}
#panel-tasks .kcard:active{transform:none;}
#panel-tasks .kcard-top{min-height:19px;margin-bottom:6px;}
#panel-tasks .kcard-status{
  padding:2px 7px;font-size:8.5px;font-weight:850;line-height:14px;letter-spacing:.035em;
}
#panel-tasks .kcard-due,#panel-tasks .kcard-stamp{
  color:var(--ink-3);font-size:8.5px;font-weight:750;line-height:1.2;white-space:nowrap;
}
#panel-tasks .kcard-due.due-over{color:var(--coral-ink);}
#panel-tasks .kcard-due.due-soon{color:var(--amber-ink);}
#panel-tasks .kcard-title{color:var(--heading);font-size:11.5px;font-weight:750;line-height:1.34;}
#panel-tasks .kcard-meta{gap:5px 6px;margin-top:7px;}
#panel-tasks .kcard .badge-c{gap:4px;color:var(--ink-2);font-size:9px;font-weight:650;}
#panel-tasks .kcard .pdot{width:7px;height:7px;}
#panel-tasks .task-creator,#panel-tasks .readonly-chip,#panel-tasks .claim-chip,#panel-tasks .idle-chip{
  min-height:19px;padding:2px 6px;border-radius:999px;font-size:8.5px;
}
#panel-tasks .cat-chip-mini{min-height:19px;padding:2px 6px;font-size:8.5px;}
#panel-tasks .kcard-foot{gap:6px;margin-top:8px;padding-top:7px;}
#panel-tasks .task-owner{gap:5px;color:var(--heading);font-size:9.5px;font-weight:750;}
#panel-tasks .task-owner .av-26{width:20px;height:20px;}
#panel-tasks .you-tag{padding:1px 5px;font-size:7px;}
#panel-tasks .kcard-actions{gap:2px;}
#panel-tasks .kcard-actions .icon-btn{width:24px;height:24px;}
#panel-tasks .kcard-actions .icon-btn svg{width:13px;height:13px;}
#panel-tasks .kcard-advance{min-height:23px;padding:3px 6px 3px 8px;font-size:9px;}

#panel-tasks .kempty-state{
  display:flex;flex:1;min-height:250px;padding:36px 14px;
  flex-direction:column;align-items:center;justify-content:center;gap:7px;
  color:var(--ink-3);
}
#panel-tasks .kempty-state .kempty-icon{
  display:grid;place-items:center;width:44px;height:44px;margin-bottom:3px;
  color:color-mix(in srgb,var(--board-status) 60%,var(--muted));
  border-radius:50%;
  background:color-mix(in srgb,var(--board-column-soft) 54%,var(--surface));
}
#panel-tasks .kempty-icon svg{width:29px;height:29px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
#panel-tasks .kempty-state b{color:var(--ink-2);font-size:11px;font-weight:750;line-height:1.25;}
#panel-tasks .kempty-state>span:last-child{font-size:9.5px;font-weight:500;line-height:1.35;}
#panel-tasks .kempty-note{
  margin:2px 0;padding:8px;border:1px dashed color-mix(in srgb,var(--board-status) 26%,var(--line));
  border-radius:6px;background:color-mix(in srgb,var(--board-column-soft) 38%,var(--surface));font-size:10px;
}
#panel-tasks .board-count{
  margin-bottom:10px;padding:7px 10px;border-radius:6px;font-size:11px;
  background:linear-gradient(180deg,var(--surface),var(--blue-mist));
}

[data-theme="dark"] #panel-tasks .wb-stat,
[data-theme="dark"] #panel-tasks .filters,
[data-theme="dark"] #panel-tasks .search input,
[data-theme="dark"] #panel-tasks .seg{
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 92%,var(--stat-soft,var(--blue-soft))),var(--surface));
}
[data-theme="dark"] #panel-tasks .wb-stat>.wb-stat-icon{background:color-mix(in srgb,var(--stat) 13%,var(--surface));}
[data-theme="dark"] #panel-tasks .kcol{background:linear-gradient(180deg,color-mix(in srgb,var(--board-status) 9%,var(--surface)) 0,var(--surface-2) 110px);}
[data-theme="dark"] #panel-tasks .kcol-h{background:linear-gradient(180deg,color-mix(in srgb,var(--board-status) 13%,var(--surface)),var(--surface));}
[data-theme="dark"] #panel-tasks .kcard.status-pending,
[data-theme="dark"] #panel-tasks .kcard.status-progress,
[data-theme="dark"] #panel-tasks .kcard.status-blocked,
[data-theme="dark"] #panel-tasks .kcard.status-completed{background:color-mix(in srgb,var(--board-status) 8%,var(--surface));}

@media (max-width:1280px){
  #panel-tasks .ttoolbar{grid-template-columns:minmax(220px,1fr) auto auto;}
  #panel-tasks .task-extra-scope{grid-column:1/-1;justify-self:start;}
  #panel-tasks .filters{grid-template-columns:repeat(3,minmax(130px,1fr)) auto;}
  #panel-tasks .board{grid-template-columns:repeat(2,minmax(0,1fr));}
  #panel-tasks .kcol{max-height:540px;}
}
@media (max-width:980px){
  #panel-tasks .workboard-summary{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-width:720px){
  #panel-tasks .ttoolbar{display:flex;align-items:stretch;}
  #panel-tasks .ttoolbar .search{flex:1 0 100%;min-width:100%;}
  #panel-tasks .task-scope,#panel-tasks .task-extra-scope{width:100%;overflow-x:auto;}
  #panel-tasks .task-scope button,#panel-tasks .task-extra-scope button{flex:1 0 auto;}
  #panel-tasks .ttoolbar>.seg:last-child{width:100%;}
  #panel-tasks .filters{grid-template-columns:repeat(2,minmax(0,1fr));}
  #panel-tasks .filters .fld[style]{max-width:none!important;}
  #panel-tasks .board{grid-template-columns:1fr;}
  #panel-tasks .kcol{min-height:330px;max-height:540px;}
}
@media (max-width:560px){
  #panel-tasks .workboard-summary{
    display:flex;gap:10px;margin-left:-18px;margin-right:-18px;padding:0 18px 6px;
    overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;
  }
  #panel-tasks .workboard-summary::-webkit-scrollbar{display:none;}
  #panel-tasks .wb-stat{flex:0 0 205px;min-height:70px;scroll-snap-align:start;}
  #panel-tasks .filters{grid-template-columns:1fr;padding:11px;}
  #panel-tasks .filters .fld{min-width:0;flex:none;}
  #panel-tasks .filters .fld:last-child .btn{width:100%;justify-content:center;}
  #panel-tasks .kcol{min-height:310px;max-height:none;}
  #panel-tasks .kempty-state{min-height:210px;}
}

/* Compact mobile shell: keep navigation, sign-out, break, location and new-task
   controls reachable without making the page wider than the viewport. */
@media (max-width:880px){
  .rail{min-width:0;max-width:100vw;min-height:72px;padding:10px 12px;overflow:hidden;}
  .rail-brand{flex:0 0 auto;margin:0;padding:0 5px 0 2px;}
  .rail-brand h1{font-size:18px;}
  .rail-nav{flex:1 1 auto;min-width:43px;overflow-x:auto;scrollbar-width:none;}
  .rail-nav::-webkit-scrollbar{display:none;}
  #me-slot{display:flex;align-items:center;gap:6px;flex:0 0 auto;}
  #me-slot .me-display{width:68px;height:48px;margin:0;padding:6px;gap:4px;border-radius:10px;}
  #me-slot .me-display .avatar{width:31px;height:31px;}
  #me-slot .me-info{display:none;}
  #me-slot .me-display button{margin-left:auto;padding:3px;}
  #me-slot .rail-break-toggle{display:grid;grid-template-columns:1fr;width:46px;height:48px;min-height:48px;margin:0;padding:8px;border-radius:10px;}
  #me-slot .rail-break-copy{display:none;}
  #me-slot .rail-break-dot{margin:auto;}
}
@media (max-width:520px){
  .topbar{align-items:stretch;padding-top:22px;gap:14px;}
  .topbar>div:first-child{width:100%;}
  .topbar-right{
    display:grid;grid-template-columns:minmax(0,1fr) 36px 36px 42px;
    align-items:center;width:100%;gap:8px;
  }
  .topbar-right .clock{display:none;}
  .topbar-right .workspace-location-switch{width:100%;min-height:38px;}
  .topbar-right .workspace-location-switch button{height:32px;}
  .topbar-right .tb-icon{width:36px;height:36px;}
  .topbar-right #page-action{width:42px;min-width:42px;height:36px;padding:7px;justify-content:center;}
  .topbar-right #page-action-lbl{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
}
