/* Amplifyre core: tokens, type, controls and the shared pieces (Athena, orbs, the Signal, sheets, toasts, charts).
   One visual world: a pearl page with night stages. Magenta is Amplifyre acting; orchid is Athena live. */

@font-face{font-family:Inter;src:url(../fonts/inter-var.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Inter;src:url(../fonts/inter-var-ext.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Caveat;src:url(../fonts/caveat-500.woff2) format("woff2");font-weight:500;font-display:swap}

:root{
  color-scheme:light;
  --night:#060A1E;--deep:#0E1436;--indigo:#1E2160;--indigo-2:#3B3F8F;
  --magenta:#C810D1;--magenta-2:#A50BAD;--violet:#7A0E80;--orchid:#E25CEA;--orchid-soft:#F3A8F7;--blush:#FCEBFD;
  --pearl:#F5F5F9;--paper:#FFFFFF;--ink:#0A0D24;--ink-2:#363A55;--muted:#666A87;--faint:#A3A6BC;--hair:#E6E5EF;--hair-2:#EEEDF4;--silver:#B6B7CB;
  --won:#0D7A55;--won-bg:#E5F4EC;--amber:#8F560A;--amber-bg:#FDF2E1;--red:#B42318;--red-bg:#FDECEC;--teal:#1E7A6E;
  --text:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --hand:'Caveat','Segoe Script','Bradley Hand',cursive;
  --ease:cubic-bezier(.16,1,.3,1);
  --r-sm:12px;--r:18px;--r-lg:26px;
  --shadow:0 1px 2px rgba(10,13,36,.06),0 8px 24px -12px rgba(10,13,36,.18);
  --shadow-lg:0 30px 80px -30px rgba(10,13,36,.45);
  --safe-b:env(safe-area-inset-bottom,0px);
}
*,*::before,*::after{box-sizing:border-box}
body,h1,h2,h3,h4,h5,h6,p,ul,ol,li,figure,blockquote,dl,dd{margin:0;padding:0}
ul,ol{list-style:none}
html{-webkit-text-size-adjust:100%;background:var(--pearl);scroll-behavior:smooth}
body{background:var(--pearl);color:var(--ink);font:400 16px/1.6 var(--text);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:'cv11' 1,'ss03' 1;overflow-x:hidden;min-height:100vh}
a{color:var(--magenta);text-underline-offset:3px}
a:hover{color:var(--magenta-2)}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent;padding:0}
svg{display:block}
img{max-width:100%;display:block}
:focus-visible{outline:2px solid var(--magenta);outline-offset:3px;border-radius:8px}
.night :focus-visible,.on-night :focus-visible{outline-color:var(--orchid-soft)}
::selection{background:var(--blush);color:var(--ink)}
.num,[data-count],.stat-row b,.tbl td.r{font-variant-numeric:tabular-nums}
h1,h2,h3,.h3,.h4{text-wrap:balance}
p,li{text-wrap:pretty}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
[hidden]{display:none!important}
.hide{display:none!important}

/* Layout */
.wrap{max-width:1180px;margin:0 auto;padding-left:max(32px,env(safe-area-inset-left,0px));padding-right:max(32px,env(safe-area-inset-right,0px))}
@media (max-width:720px){.wrap{padding-left:max(18px,env(safe-area-inset-left,0px));padding-right:max(18px,env(safe-area-inset-right,0px))}}
.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.row--between{justify-content:space-between}
.row--top{align-items:flex-start}
.stack{display:grid;gap:12px}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.grid2>.full{grid-column:1/-1}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
@media (max-width:980px){.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.grid2,.grid3{grid-template-columns:minmax(0,1fr)}}
@media (max-width:420px){.grid4{grid-template-columns:minmax(0,1fr)}}
.grow{flex:1;min-width:0}
.mt4{margin-top:4px}.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}.mt24{margin-top:24px}.mt32{margin-top:32px}.mt48{margin-top:48px}
.center{text-align:center}
.nowrap{white-space:nowrap}
.ellip{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Type */
.k{font-size:13px;font-weight:600;color:var(--magenta);letter-spacing:.01em}
.night .k,.on-night .k{color:var(--orchid)}
.kk{font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.h1{font-weight:300;font-size:clamp(40px,6.4vw,78px);line-height:1;letter-spacing:-.045em;text-wrap:balance}
.h2{font-weight:400;font-size:clamp(30px,4.2vw,46px);line-height:1.08;letter-spacing:-.034em;text-wrap:balance}
.h3{font-weight:500;font-size:22px;line-height:1.25;letter-spacing:-.018em}
.h4{font-weight:600;font-size:16px;line-height:1.35}
.lead{font-size:clamp(17px,1.7vw,19.5px);line-height:1.6;color:var(--ink-2);max-width:680px}
.night .lead,.on-night .lead{color:#C9C4E4}
.muted{color:var(--muted)}
.small{font-size:13.5px}
.tiny{font-size:12px}
.hand{font-family:var(--hand);font-weight:500}
.prose{max-width:700px}
.prose p+p{margin-top:12px}

/* Motion vocabulary */
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(226,92,234,.55)}70%{box-shadow:0 0 0 12px rgba(226,92,234,0)}100%{box-shadow:0 0 0 0 rgba(226,92,234,0)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes shim{from{background-position:200% 0}to{background-position:-200% 0}}
@keyframes mote{0%,100%{transform:translate(0,0);opacity:.95}50%{transform:translate(7px,-9px);opacity:.45}}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes pop{0%{transform:scale(.6);opacity:0}100%{transform:scale(1);opacity:1}}
@keyframes sigspin{to{transform:rotate(360deg)}}
.mote{animation:mote 8s ease-in-out infinite}
.sig-spin{transform-origin:0 0;animation:sigspin 90s linear infinite}
.rise{animation:rise .8s var(--ease) both}
.reveal{opacity:0;transform:translateY(16px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.on{opacity:1;transform:none}
.sweep .w{color:var(--faint);transition:color .35s ease}
.sweep .w.on{color:inherit}
.night .sweep .w,.on-night .sweep .w{color:rgba(255,255,255,.3)}
.night .sweep .w.on,.on-night .sweep .w.on{color:#F4F1FC}
.shimmer{background:linear-gradient(90deg,#B9B4D6 30%,#fff 50%,#B9B4D6 70%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent!important;animation:shim 2.2s linear infinite}
.shimmer--light{background-image:linear-gradient(90deg,#A3A6BC 30%,#0A0D24 50%,#A3A6BC 70%)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:48px;padding:0 22px;border-radius:99px;font-size:15px;font-weight:500;white-space:nowrap;text-decoration:none;transition:transform .5s var(--ease),background .25s,box-shadow .3s,border-color .25s,color .25s;user-select:none}
.btn svg{width:18px;height:18px;flex:none}
.btn:active{transform:scale(.97)}
.btn--primary{background:var(--magenta);color:#fff;box-shadow:0 12px 30px -12px rgba(200,16,209,.75)}
.btn--primary:hover{background:var(--magenta-2);color:#fff}
.btn--ghost{background:rgba(255,255,255,.06);color:#fff;border:1px solid rgba(255,255,255,.18)}
.btn--ghost:hover{background:rgba(255,255,255,.13);color:#fff}
.btn--ink{background:var(--ink);color:#fff}
.btn--ink:hover{background:#1B1F3D;color:#fff}
.btn--line{background:#fff;color:var(--ink);border:1px solid var(--hair)}
.btn--line:hover{border-color:#CFCDE0;color:var(--ink)}
.btn--soft{background:var(--blush);color:var(--magenta-2)}
.btn--soft:hover{background:#F8D9FA;color:var(--magenta-2)}
.btn--danger{background:#fff;color:var(--red);border:1px solid #F4C9C5}
.btn--danger:hover{background:var(--red-bg);color:var(--red)}
.btn--text{height:auto;padding:6px 4px;color:var(--magenta);border-radius:8px}
.btn--text:hover{color:var(--magenta-2)}
.btn--sm{height:38px;padding:0 16px;font-size:14px}
.btn--xs{height:30px;padding:0 12px;font-size:13px;gap:6px}
.btn--xs svg{width:15px;height:15px}
.btn--block{width:100%}
.btn[disabled],.btn.is-busy{opacity:.55;cursor:not-allowed;box-shadow:none}
.btn.is-busy{position:relative;color:transparent!important}
.btn.is-busy::after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:spin .8s linear infinite}
.btn--line.is-busy::after,.btn--soft.is-busy::after,.btn--text.is-busy::after{border-color:rgba(10,13,36,.15);border-top-color:var(--magenta)}
.ib{width:40px;height:40px;border-radius:50%;display:inline-grid;place-items:center;color:var(--ink-2);transition:background .2s,color .2s;flex:none}
.ib:hover{background:var(--hair-2);color:var(--ink)}
.ib svg{width:20px;height:20px}
.night .ib,.on-night .ib{color:#C9C4E4}
.night .ib:hover,.on-night .ib:hover{background:rgba(255,255,255,.1);color:#fff}
.ib--sm{width:32px;height:32px}.ib--sm svg{width:17px;height:17px}

/* Marks */
.mark{width:26px;height:26px;flex:none}
.mark .o{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
.mark .i{fill:var(--magenta)}
.night .mark .i,.on-night .mark .i{fill:var(--orchid)}
.brand{display:inline-flex;align-items:center;gap:10px;font-weight:600;letter-spacing:-.01em;color:inherit;text-decoration:none;font-size:17px}
.brand:hover{color:inherit}

/* Chips and states */
.chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:99px;font-size:12px;font-weight:600;white-space:nowrap;background:#ECEBF3;color:var(--ink-2)}
.chip--won{background:var(--won-bg);color:var(--won)}
.chip--amber{background:var(--amber-bg);color:var(--amber)}
.chip--red{background:var(--red-bg);color:var(--red)}
.chip--mag{background:var(--blush);color:var(--magenta-2)}
.chip--ink{background:var(--ink);color:#fff}
.chip--live{background:rgba(226,92,234,.16);color:var(--orchid-soft)}
.chip--line{background:transparent;border:1px solid var(--hair);color:var(--muted)}
.dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none;display:inline-block}
.pulse{width:9px;height:9px;border-radius:50%;background:var(--orchid);animation:pulse 1.6s infinite;flex:none;display:inline-block}
.health{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none;background:var(--silver)}
.health--green{background:#18A06A}.health--amber{background:#E3A22A}.health--red{background:#D93B30}.health--new{background:var(--orchid)}
.score{display:inline-grid;place-items:center;min-width:38px;height:26px;padding:0 8px;border-radius:99px;font-size:12.5px;font-weight:700;font-variant-numeric:tabular-nums;background:var(--won-bg);color:var(--won)}
.score--mid{background:var(--amber-bg);color:var(--amber)}.score--low{background:var(--red-bg);color:var(--red)}

/* Forms */
.field{display:grid;gap:6px;min-width:0;align-content:start}
.field--fill{grid-template-rows:auto minmax(0,1fr);align-content:stretch}.field--fill>.textarea{height:100%}
.field>label,.label{font-size:13.5px;font-weight:500;color:var(--ink-2)}
.field .help{font-size:12.5px;color:var(--muted);line-height:1.45}
.field .err{font-size:12.5px;color:var(--red)}
.input,.select,.textarea{width:100%;min-width:0;padding:11px 14px;border:1px solid var(--hair);border-radius:var(--r-sm);background:#fff;color:var(--ink);transition:border-color .2s,box-shadow .2s;font-size:15px;line-height:1.4}
.textarea{min-height:110px;resize:vertical;line-height:1.55}
.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--magenta);box-shadow:0 0 0 3px rgba(200,16,209,.14)}
.input[readonly]{background:var(--pearl);color:var(--ink-2)}
.select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666A87' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M7 10l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:18px;padding-right:40px}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}
.night .input,.night .select,.night .textarea{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14);color:#fff}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;line-height:1.45;cursor:pointer}
.check input{width:20px;height:20px;accent-color:var(--magenta);flex:none;margin-top:1px}
.seg{display:inline-flex;padding:3px;border-radius:99px;background:#ECEBF3;font-size:13.5px;font-weight:500;gap:2px;flex-wrap:wrap}
.seg button{padding:6px 13px;border-radius:99px;color:var(--muted);line-height:1.35;transition:background .25s,color .25s}
@media (max-width:360px){.seg{font-size:13px}.seg button{padding:6px 9px}}
.seg button.on,.seg button[aria-checked="true"]{background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(10,13,36,.15)}
.night .seg,.on-night .seg{background:rgba(255,255,255,.08)}
.night .seg button,.on-night .seg button{color:#BDB7DD}
.night .seg button.on,.on-night .seg button.on{background:#fff;color:var(--night)}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:28px;background:transparent;cursor:pointer;--p:50%}
input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:linear-gradient(90deg,var(--magenta) var(--p),#E3E1EE var(--p))}
input[type=range]::-moz-range-track{height:4px;border-radius:4px;background:#E3E1EE}
input[type=range]::-moz-range-progress{height:4px;border-radius:4px;background:var(--magenta)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;margin-top:-9px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(10,13,36,.3),0 0 0 1px rgba(10,13,36,.06);transition:transform .3s var(--ease)}
input[type=range]::-moz-range-thumb{width:22px;height:22px;border:0;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(10,13,36,.3)}
input[type=range]:active::-webkit-slider-thumb{transform:scale(1.12)}
.switch{-webkit-appearance:none;appearance:none;width:46px;height:28px;border-radius:99px;background:#DDDBE8;position:relative;cursor:pointer;flex:none;transition:background .3s var(--ease);margin:0}
.switch::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(10,13,36,.25);transition:transform .45s var(--ease)}
.switch:checked{background:var(--magenta)}
.switch:checked::after{transform:translateX(18px)}
.switch:disabled{opacity:.55;cursor:not-allowed}

/* Cards, lists, tables */
.card{background:var(--paper);border-radius:var(--r-lg);padding:24px;box-shadow:0 1px 0 var(--hair)}
.card--flat{box-shadow:none;border:1px solid var(--hair)}
.card--pad0{padding:0}
.card__h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.card__h h3{font-size:16px;font-weight:600}
.night{background:radial-gradient(1100px 660px at 80% 20%,rgba(200,16,209,.22),transparent 62%),radial-gradient(900px 640px at 0% 100%,rgba(30,33,96,.9),transparent 70%),var(--night);color:#fff}
.card--night{background:radial-gradient(600px 300px at 90% 0%,rgba(200,16,209,.28),transparent 60%),var(--night);color:#fff;box-shadow:none}
.card--night .muted{color:#9C97C4}
.list>li{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--hair-2)}
.list>li:first-child{border-top:0}
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{text-align:left;font-weight:600;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding:10px 12px;border-bottom:1px solid var(--hair);white-space:nowrap}
.tbl td{padding:12px;border-bottom:1px solid var(--hair-2);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl tbody tr{transition:background .15s}
.tbl tbody tr.click{cursor:pointer}
.tbl tbody tr.click:hover{background:#FAFAFD}
.tbl .r{text-align:right}
.tblwrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
@media (max-width:560px){
  .tbl th,.tbl td{padding-left:8px;padding-right:8px}
  .card:not(.card--pad0) .tbl :is(th,td):first-child{padding-left:0}
  .card:not(.card--pad0) .tbl :is(th,td):last-child{padding-right:0}
  .card--pad0 .tbl :is(th,td):first-child{padding-left:16px}
  .card--pad0 .tbl :is(th,td):last-child{padding-right:16px}
}
.kv{display:grid;grid-template-columns:minmax(120px,auto) 1fr;gap:8px 16px;font-size:14.5px}
.kv dt{color:var(--muted)}
.kv dd{min-width:0;overflow-wrap:anywhere}
.empty{padding:40px 16px;text-align:center;color:var(--muted)}
.empty svg{width:42px;height:42px;margin:0 auto 12px;color:var(--silver)}
.empty b{display:block;color:var(--ink);font-weight:600;margin-bottom:4px}
.note{border-radius:var(--r-sm);padding:12px 14px;font-size:14px;line-height:1.5;background:var(--pearl);color:var(--ink-2)}
.note--warn{background:var(--amber-bg);color:var(--amber)}
.note--err{background:var(--red-bg);color:var(--red)}
.note--ok{background:var(--won-bg);color:var(--won)}
.note--mag{background:var(--blush);color:var(--magenta-2)}
.sk{background:linear-gradient(90deg,#EEEDF4 25%,#F7F7FA 50%,#EEEDF4 75%);background-size:200% 100%;animation:shim 1.4s linear infinite;border-radius:10px;min-height:14px}
hr.hair{border:0;border-top:1px solid var(--hair);margin:18px 0}

/* Toast */
#toast{position:fixed;left:50%;bottom:calc(24px + var(--safe-b));transform:translate(-50%,20px);background:var(--ink);color:#fff;padding:13px 18px;border-radius:14px;font-size:14.5px;line-height:1.45;max-width:min(560px,calc(100vw - 32px));box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:opacity .35s var(--ease),transform .5s var(--ease);z-index:1000;display:flex;gap:10px;align-items:center}
#toast.on{opacity:1;transform:translate(-50%,0);pointer-events:auto}
#toast.err{background:#5A0F0A}
/* A bottom sheet owns the bottom of a phone screen, so a toast shows at the top while one is open. */
@media (max-width:760px){html.has-sheet #toast{bottom:auto;top:calc(14px + env(safe-area-inset-top,0px));transform:translate(-50%,-20px)}html.has-sheet #toast.on{transform:translate(-50%,0)}}
#toast svg{width:18px;height:18px;flex:none;color:var(--orchid-soft)}

/* Sheets and modals: a centred card on desktop, a bottom sheet on phones */
.sheet{position:fixed;inset:0;z-index:900;display:grid;place-items:center;padding:24px;background:rgba(6,10,30,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity .35s var(--ease)}
.sheet.on{opacity:1}
.sheet__p{width:min(640px,100%);max-height:calc(100vh - 48px);overflow:auto;background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow-lg);transform:translateY(24px) scale(.98);transition:transform .5s var(--ease);position:relative}
.sheet.on .sheet__p{transform:none}
.sheet--wide .sheet__p{width:min(960px,100%)}
.sheet__h{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:22px 24px 6px}
.sheet__h h2{font-size:22px;font-weight:500;letter-spacing:-.02em;line-height:1.25}
.sheet__b{padding:12px 24px 24px}
.sheet__f{display:flex;gap:10px;justify-content:flex-end;padding:0 24px 24px;flex-wrap:wrap}
@media (max-width:640px){
  .sheet{padding:0;place-items:end stretch}
  .sheet__p{width:100%;max-height:92vh;border-radius:24px 24px 0 0;transform:translateY(40px);padding-bottom:var(--safe-b)}
  .sheet__p::before{content:"";display:block;width:40px;height:4px;border-radius:4px;background:var(--hair);margin:10px auto 0}
  .sheet__f .btn{flex:1}
}

/* Orbs: Athena's presence */
canvas[data-orb]{display:block;width:100%;height:100%}

/* The Signal */
.signal{overflow:visible}
.seal-fp{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;letter-spacing:.02em;overflow-wrap:anywhere}

/* Athena dock */
.athena{position:fixed;right:max(20px,env(safe-area-inset-right,0px));bottom:calc(20px + var(--safe-b));z-index:800;font-size:15px}
.athena__fab{display:flex;align-items:center;gap:10px;height:64px;padding:0 20px 0 6px;border-radius:99px;background:var(--night);color:#fff;box-shadow:0 20px 50px -18px rgba(6,10,30,.8),inset 0 0 0 1px rgba(255,255,255,.08);transition:transform .5s var(--ease),opacity .3s}
.athena__fab:hover{transform:translateY(-2px)}
.athena__fab .orbbox{width:52px;height:52px;flex:none}
.athena__fab b{font-weight:600;font-size:15px;display:block;line-height:1.2}
.athena__fab small{display:block;color:#A9A3CF;font-size:12px;line-height:1.2}
.athena.open .athena__fab{opacity:0;pointer-events:none;transform:scale(.9)}
.athena__p{position:absolute;right:0;bottom:0;width:min(420px,calc(100vw - 32px));height:min(640px,calc(100vh - 40px));display:flex;flex-direction:column;background:#fff;border-radius:26px;box-shadow:var(--shadow-lg),0 0 0 1px rgba(10,13,36,.06);overflow:hidden;transform-origin:100% 100%;transform:scale(.6);opacity:0;pointer-events:none;transition:transform .55s var(--ease),opacity .3s}
.athena.open .athena__p{transform:none;opacity:1;pointer-events:auto}
.athena__top{display:flex;align-items:center;gap:12px;padding:14px 12px 14px 14px;background:radial-gradient(400px 160px at 100% 0%,rgba(200,16,209,.35),transparent 60%),var(--night);color:#fff}
.athena__top .orbbox{width:46px;height:46px;flex:none}
.athena__top b{display:block;font-weight:600;line-height:1.2}
.athena__top small{display:flex;align-items:center;gap:6px;color:#A9A3CF;font-size:12.5px}
.athena__msgs{flex:1;overflow-y:auto;padding:18px 16px 8px;display:flex;flex-direction:column;gap:12px;overscroll-behavior:contain;background:linear-gradient(#fff,#FBFAFD)}
.msg{max-width:88%;padding:11px 14px;border-radius:18px;line-height:1.55;font-size:14.5px;white-space:pre-wrap;overflow-wrap:anywhere;animation:rise .5s var(--ease) both}
.msg--me{align-self:flex-end;background:var(--ink);color:#fff;border-bottom-right-radius:6px}
.msg--ai{align-self:flex-start;background:var(--pearl);color:var(--ink);border-bottom-left-radius:6px}
.msg--ai.offline{background:#F6F2FB}
.msg .srcs{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;white-space:normal}
.msg .srcs a{font-size:12px;padding:3px 9px;border-radius:99px;background:#fff;border:1px solid var(--hair);text-decoration:none;color:var(--ink-2);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.msg .acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;white-space:normal}
.msg--typing{display:flex;gap:5px;align-items:center;padding:14px 16px}
.msg--typing i{width:7px;height:7px;border-radius:50%;background:var(--faint);animation:breathe 1.2s infinite}
.msg--typing i:nth-child(2){animation-delay:.15s}.msg--typing i:nth-child(3){animation-delay:.3s}
@keyframes breathe{0%,100%{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}
.athena__sugg{display:flex;gap:8px;overflow-x:auto;padding:4px 16px 10px;scrollbar-width:none}
.athena__sugg::-webkit-scrollbar{display:none}
.athena__sugg button{flex:none;padding:7px 13px;border-radius:99px;border:1px solid var(--hair);background:#fff;font-size:13px;color:var(--ink-2);transition:border-color .2s,color .2s}
.athena__sugg button:hover{border-color:var(--magenta);color:var(--magenta)}
.athena__in{display:flex;align-items:flex-end;gap:8px;padding:10px 12px calc(12px + var(--safe-b));border-top:1px solid var(--hair-2);background:#fff}
.athena__in textarea{flex:1;resize:none;border:1px solid var(--hair);border-radius:20px;padding:10px 14px;max-height:120px;min-height:44px;line-height:1.45;font-size:15px}
.athena__in textarea:focus{outline:none;border-color:var(--magenta)}
.athena__mic,.athena__send{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;flex:none;transition:background .2s,transform .3s var(--ease)}
.athena__mic{background:var(--pearl);color:var(--ink-2)}
.athena__mic.rec{background:var(--magenta);color:#fff;animation:pulse 1.6s infinite}
.athena__send{background:var(--magenta);color:#fff}
.athena__send:disabled{background:var(--hair);color:var(--faint)}
.athena__mic svg,.athena__send svg{width:20px;height:20px}
.athena__foot{font-size:11.5px;color:var(--faint);text-align:center;padding:0 16px 8px;background:#fff}
@media (max-width:640px){
  .athena{right:12px;bottom:calc(12px + var(--safe-b))}
  .athena__fab{height:56px}
  .athena__fab .orbbox{width:46px;height:46px}
  .athena.open{left:0;right:0;bottom:0;top:0}
  .athena__p{position:fixed;inset:0;width:100%;height:100%;border-radius:0;transform:translateY(30px)}
  .athena__top{padding-top:calc(14px + env(safe-area-inset-top,0px))}
}

/* Charts */
.chart{width:100%;height:auto;overflow:visible}
.chart .grid{stroke:var(--hair-2);stroke-width:1}
.chart .axis{fill:var(--faint);font-size:11px;font-family:var(--text)}
.chart .line{fill:none;stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
.chart .area{opacity:.16}
.chart .bar{rx:3}
.chart .hover{stroke:var(--silver);stroke-dasharray:3 3}
.chart-tip{position:absolute;pointer-events:none;background:var(--ink);color:#fff;font-size:12px;padding:6px 9px;border-radius:8px;white-space:nowrap;transform:translate(-50%,-110%);opacity:0;transition:opacity .15s;z-index:5}
.chart-wrap{position:relative}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}

/* KPI tiles */
.kpi{background:#fff;border-radius:var(--r);padding:16px 18px;box-shadow:0 1px 0 var(--hair);min-width:0}
.kpi small{display:block;font-size:12.5px;color:var(--muted);font-weight:500}
.kpi b{display:block;font-size:28px;font-weight:500;letter-spacing:-.03em;margin-top:4px;font-variant-numeric:tabular-nums;line-height:1.15}
.kpi .d{font-size:12.5px;font-weight:600;margin-top:2px}
.kpi .d.up{color:var(--won)}.kpi .d.down{color:var(--red)}.kpi .d.flat{color:var(--muted)}
.kpi--night{background:var(--night);color:#fff;box-shadow:none}.kpi--night small{color:#9C97C4}

/* Language and misc */
.lang{display:inline-flex;gap:2px;font-size:13px;font-weight:600}
.lang button{padding:4px 8px;border-radius:8px;color:inherit;opacity:.55}
.lang button.on{opacity:1;background:rgba(127,127,160,.14)}
.avatar{width:36px;height:36px;border-radius:50%;display:inline-grid;place-items:center;font-size:13px;font-weight:700;color:#fff;background:var(--magenta-2);flex:none;letter-spacing:.02em}
.copyable{display:flex;gap:8px;align-items:center}
.copyable code{flex:1;min-width:0;font-size:12.5px;padding:9px 12px;border-radius:10px;background:var(--pearl);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.spinner{width:22px;height:22px;border-radius:50%;border:2.5px solid var(--hair);border-top-color:var(--magenta);animation:spin .8s linear infinite;display:inline-block}
.bar-meter{height:6px;border-radius:6px;background:var(--hair-2);overflow:hidden}
.bar-meter i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--magenta),var(--orchid));width:0;transition:width 1.1s var(--ease)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
@media print{
  .athena,#toast,.noprint{display:none!important}
  html,body{background:#fff}
}

/* Budget split bar */
.splitbar{display:flex;height:12px;border-radius:12px;overflow:hidden;background:var(--hair-2);gap:2px}
.splitbar i{display:block;height:100%;transition:width 1s var(--ease)}
.msg__t{white-space:pre-wrap}
@media (max-width:640px){
  .athena__fab{width:58px;height:58px;padding:0;justify-content:center}
  .athena__fab>span:last-child{display:none}
}
.athena__top .ib{color:#C9C4E4}
.athena__top .ib:hover{background:rgba(255,255,255,.1);color:#fff}

/* Explainer player: an animated scene with narration, captions and controls */
.scene{width:100%;height:auto;display:block}
.xp{container-type:inline-size;margin:0;background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 1px 0 var(--hair),0 18px 40px -28px rgba(10,13,36,.35);position:relative}
.xp__stage{position:relative;background:#fff}
.xp__cover{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:10px;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.72),rgba(255,255,255,0) 30%),linear-gradient(180deg,rgba(255,255,255,0) 40%,rgba(10,13,36,.06));transition:opacity .45s var(--ease)}
.xp__big{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;background:var(--magenta);color:#fff;box-shadow:0 18px 40px -14px rgba(200,16,209,.8),0 0 0 10px rgba(200,16,209,.12);transition:transform .5s var(--ease)}
.xp__big svg{width:28px;height:28px;margin-left:4px}
.xp__cover:hover .xp__big{transform:scale(1.06)}
.xp__len{font-size:12.5px;font-weight:600;color:var(--ink-2);background:rgba(255,255,255,.92);padding:4px 10px;border-radius:99px;box-shadow:0 1px 0 var(--hair)}
.xp.is-started .xp__cover{opacity:0;pointer-events:none}
.xp__bar{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 16px;border-top:1px solid var(--hair-2)}
.xp__pp{position:relative;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:var(--magenta)}
.xp__ic{display:grid;place-items:center}
.xp__ic svg{width:18px;height:18px}
.xp__pp .xp__ic svg{margin-left:1px}
.xring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);pointer-events:none}
.xring circle{fill:none;stroke-width:2.6;stroke:var(--hair)}
.xring .xring__p{stroke:var(--magenta);stroke-dasharray:1;stroke-dashoffset:1;stroke-linecap:round;transition:stroke-dashoffset .25s linear}
.xp__cap{font-size:15px;line-height:1.45;min-height:2.9em;display:flex;align-items:center;color:var(--ink);margin:0}
.xp__line{display:block}
.xp__cap.is-idle{color:var(--muted);font-weight:500}
.xp__cap .w{color:var(--faint);transition:color .25s ease}
.xp__cap .w.on{color:var(--ink)}
.xp__ctl{display:flex;align-items:center;gap:6px}
.xp__time{font-size:12.5px;color:var(--muted);margin-right:4px;white-space:nowrap}
.xp__rate,.xp__snd,.xp__read{height:32px;min-width:32px;padding:0 10px;border-radius:99px;border:1px solid var(--hair);font-size:12.5px;font-weight:600;color:var(--ink-2);display:inline-grid;place-items:center;transition:border-color .2s,color .2s}
.xp__rate:hover,.xp__snd:hover,.xp__read:hover{border-color:var(--magenta);color:var(--magenta)}
.xp__snd{padding:0}.xp__snd svg{width:16px;height:16px}
.xp__script{padding:0 18px 18px 74px;font-size:14.5px;line-height:1.7;color:var(--muted)}
.xp__script span{transition:color .3s,background .3s;border-radius:4px}
.xp__script span.on{color:var(--ink);background:var(--blush)}
.xp--dark{background:var(--night);color:#fff;box-shadow:0 30px 70px -30px rgba(0,0,0,.6),inset 0 0 0 1px rgba(255,255,255,.07)}
.xp--dark .xp__stage{background:var(--night)}
.xp--dark .xp__cover{background:radial-gradient(circle at 50% 50%,rgba(6,10,30,.78),rgba(6,10,30,0) 32%),linear-gradient(180deg,rgba(6,10,30,0) 40%,rgba(6,10,30,.4))}
.xp--dark .xp__len{background:rgba(6,10,30,.8);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.xp--dark .xp__bar{border-top-color:rgba(255,255,255,.08)}
.xp--dark .xp__pp{color:var(--orchid-soft)}
.xp--dark .xring circle{stroke:rgba(255,255,255,.14)}
.xp--dark .xring .xring__p{stroke:var(--orchid)}
.xp--dark .xp__cap{color:#fff}.xp--dark .xp__cap.is-idle{color:#A9A3CF}
.xp--dark .xp__cap .w{color:rgba(255,255,255,.32)}.xp--dark .xp__cap .w.on{color:#fff}
.xp--dark .xp__time{color:#A9A3CF}
.xp--dark :is(.xp__rate,.xp__snd,.xp__read){border-color:rgba(255,255,255,.16);color:#E4E1F5}
.xp--dark .xp__script{color:#A9A3CF}.xp--dark .xp__script span.on{color:#fff;background:rgba(226,92,234,.2)}
/* The player adapts to its own width, so it fits a phone, a sheet, a proposal column or a card in the control room. */
@container (max-width:580px){
  .xp__bar{grid-template-columns:44px minmax(0,1fr);gap:10px 12px;padding:10px 12px 12px}
  .xp__ctl{grid-column:1/-1;justify-content:flex-end}
  .xp__time{margin-right:auto}
  .xp__cap{font-size:14.5px;min-height:2.9em}
  .xp__script{padding:0 14px 16px}
  .xp__big{width:62px;height:62px}
}
/* The compact play button: "▶ Uitleg · 0:35" */
.xpb{display:inline-flex;align-items:center;gap:9px;height:38px;padding:0 14px 0 4px;border-radius:99px;background:var(--blush);color:var(--magenta-2);font-size:13.5px;font-weight:600;white-space:nowrap;transition:background .25s,color .25s,transform .5s var(--ease)}
.xpb{max-width:100%}.xpb__l{min-width:0;overflow:hidden;text-overflow:ellipsis}
/* Touch: every control gets a target of at least 44 px. Buttons simply grow; compact controls keep their look and get an
   invisible margin around them that still takes the tap. */
@media (pointer:coarse){
  .btn--sm,.xpb{height:44px}
  .ib{width:44px;height:44px}
  .seg button,.xp__rate,.xp__snd,.xp__read,.tick,button.chip,a.chip,.fpost__fold{position:relative}
  .seg button::after,.xp__rate::after,.xp__snd::after,.xp__read::after,button.chip::after,a.chip::after,.fpost__fold::after{content:"";position:absolute;inset:-7px -3px}
  .tick::after{content:"";position:absolute;inset:-10px}
}
@media (max-width:400px){.xpb__pre{display:none}.xpb__l::first-letter{text-transform:uppercase}}
.xpb:hover{background:#F8D9FA;color:var(--magenta-2)}
.xpb:active{transform:scale(.97)}
.xpb__i{position:relative;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--magenta)}
.xpb__i>svg:not(.xring){width:13px;height:13px;margin-left:1px}
.xpb__i .xring circle{stroke:transparent}
.xpb__i .xring .xring__p{stroke:var(--magenta)}
.xpb__t{font-weight:500;color:var(--muted);font-size:12.5px}
.xpb.is-playing{background:var(--magenta);color:#fff}
.xpb.is-playing .xpb__t{color:#F6D2F8}
.night .xpb,.on-night .xpb{background:rgba(226,92,234,.16);color:var(--orchid-soft)}
.night .xpb__t,.on-night .xpb__t{color:#A9A3CF}
.xp-slot{margin-top:18px}
.xp-slot--open{animation:rise .7s var(--ease) both}
@media (hover:none){.xpb{height:44px}.xp__rate,.xp__snd,.xp__read{height:36px;min-width:36px}}

/* Where a claim comes from: the AI label and the source chip, on the deal room, the scan and the portal */
.ai-tag{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--magenta-2);background:var(--blush);padding:4px 10px;border-radius:99px;white-space:nowrap}
.ai-tag svg{width:13px;height:13px}
.night .ai-tag{background:rgba(226,92,234,.16);color:var(--orchid-soft)}
.ai-tag__d{white-space:pre}
@media (max-width:400px){.ai-tag__d{display:none}}
.src{display:inline-flex;align-items:center;gap:6px;margin-top:8px;font-size:12.5px;font-weight:500;color:var(--muted);text-decoration:none;max-width:100%;padding:3px 10px 3px 8px;border-radius:99px;background:#fff;box-shadow:inset 0 0 0 1px var(--hair);transition:color .2s,box-shadow .2s}
.src:hover{color:var(--magenta-2);box-shadow:inset 0 0 0 1px var(--orchid-soft)}
.src svg{width:13px;height:13px;flex:none}
.src span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.src time{color:var(--muted);font-weight:400;white-space:nowrap}
.src time::before{content:'· '}
