/* GENERATED by scripts/program-planner/extract-app-assets.mjs from index.html — do not edit.
   The main app's dark palette and dashboard components, reused by the Program Planner. */
:root{--navy:#0F172A;--acc:#6366F1;--grn:#059669;--red:#DC2626;--amb:#D97706;--info:#2563EB;
  --b:#E2E8F0;--bg:#F8FAFC;--mut:#64748B;--lt:#94A3B8;
  /* ── Product UI tokens ─────────────────────────────────────────
     One component stylesheet, two palettes. :root carries the light
     values the marketing and sign-in pages have always rendered with;
     .app-shell (the signed-in app) and .pif-dark (the homepage's
     product visual) redefine the same names to the deep-navy / gold
     system. Page functions reference the tokens in their inline
     styles, so no page has to know which palette it is on, and print
     (end of this stylesheet) flips the app back to light the same way. */
  --page:#F8FAFC;--bar:#fff;--card:#fff;--card-2:#F8FAFC;--card-3:#F1F5F9;--tint:#F8FAFC;--field:#fff;
  --line:#E2E8F0;--line-2:#F1F5F9;--line-3:#CBD5E1;
  --t1:#0F172A;--t2:#64748B;--t3:#94A3B8;--tb:#0F172A;
  --panel:#0F172A;--on-panel:#fff;--panel-2:#1B2A4A;
  --gold:#B8892F;--gold-2:#A67C22;--gold-3:#D9B05A;--gold-bg:#FBF3E1;--gold-ln:#EBD49A;--on-gold:#fff;
  --acc-bg:#EEF2FF;--acc-ln:#C7D2FE;--acc-t:#4338CA;--acc-solid:#6366F1;--acc-solid-h:#4F46E5;--on-acc:#fff;
  --grn-t:#059669;--grn-bg:#F0FDF4;--grn-ln:#BBF7D0;--grn-txt:#166534;--grn-solid:#059669;--on-grn:#fff;
  --amb-t:#D97706;--amb-bg:#FFFBEB;--amb-ln:#FDE68A;--amb-txt:#92400E;--on-amb:#fff;
  --red-t:#DC2626;--red-bg:#FEF2F2;--red-ln:#FCA5A5;--red-txt:#B91C1C;--red-solid:#DC2626;--on-red:#fff;
  --blu-t:#2563EB;--blu-bg:#EFF6FF;--blu-ln:#BFDBFE;--blu-txt:#1E40AF;
  --pur-t:#7C3AED;--pur-bg:#F5F3FF;--pur-ln:#DDD6FE;--pur-txt:#5B21B6;
  --cyan-t:#0891B2;--cyan-bg:#ECFEFF;--pink-t:#DB2777;--orange-t:#EA580C;
  --teal:#0F766E;--teal-2:#14B8A6;--teal-bg:#F0FDFA;--teal-ln:#99F6E4;--teal-txt:#115E59;--teal-deep:#0F766E;--teal-deep-2:#115E59;
  --btn:#fff;--btn-h:#F8FAFC;--btn-fg:#64748B;--tab-on:#0F172A;--on-tab:#fff;
  --badge-todo:#0F172A;--on-badge-todo:#fff;
  --shadow:0 1px 2px rgba(15,23,42,.04);--shadow-lg:0 12px 32px rgba(15,23,42,.10);
  --r:11px;--r-lg:14px;
  /* Marketing-site-only accent — white/light pages, dark-navy headings,
     the same burnt-orange brand accent as the rest of the product, but
     used sparingly (CTAs and key figures only, not tinted backgrounds)
     for a modern-fintech feel over a decorative-SaaS one. Inter for
     display headlines, IBM Plex Mono for every dollar figure/stat — not
     --acc's indigo, so the actual product UI's color language (used
     across all 30+ in-app pages) stays untouched. */
  --mkt-acc:#CE5D01; --mkt-acc-lt:#F18024; --mkt-acc-dk:#9A4901; --mkt-acc-tint:#FFF4EC; --mkt-acc-tint2:#FFE8D5;
  --mkt-font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --mkt-mono:'IBM Plex Mono',ui-monospace,'SF Mono',monospace;}
:root{--hp-navy:#061A28;--hp-navy-2:#08283A;--hp-navy-3:#0C3347;
  --hp-ink:#0A2233;--hp-body:#3D5062;--hp-mut:#54687A;
  --hp-ivory:#FFFFFF;--hp-ivory-70:#C6D3DB;--hp-ivory-50:#9FB3BF;--hp-ivory-12:rgba(232,238,242,.12);
  --hp-gold:#D8A64B;--hp-gold-2:#E5BC68;--hp-gold-3:#F3D38D;--hp-gold-dk:#8A6619;
  --hp-cta:#D8A64B;--hp-cta-2:#EAC97A;
  --hp-paper:#F3F5F7;--hp-bluegray:#E8EEF4;--hp-white:#fff;--hp-line:#DCE3E9;--hp-line-2:#E8EDF1;
  --hp-green:#12A66C;--hp-green-bg:#E8F8F0;--hp-amber:#D98C10;--hp-amber-bg:#FFF6E5;--hp-red:#DC4A4A;--hp-red-bg:#FDECEC;
  --hp-display:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --hp-sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --hp-mono:'IBM Plex Mono',ui-monospace,'SF Mono',monospace;
  --hp-r:18px;--hp-r-sm:12px;
  --hp-shadow:0 1px 2px rgba(6,26,40,.04),0 14px 34px -14px rgba(6,26,40,.16);
  --hp-shadow-hover:0 2px 4px rgba(6,26,40,.05),0 26px 48px -18px rgba(6,26,40,.26);}
.app-shell,.pif-dark{--navy:#10405A;--acc:#E5BC68;--grn:#20C982;--red:#F27878;--amb:#F5A623;--info:#5ED6CB;
  --teal:#2EB9AE;--teal-2:#5ED6CB;--teal-bg:rgba(46,185,174,.13);--teal-ln:rgba(46,185,174,.42);--teal-txt:#9BE8E0;--teal-deep:#0A3641;--teal-deep-2:#0E4552;
  --b:rgba(255,255,255,.09);--bg:#061A28;--mut:#9FB3BF;--lt:#8FA6B5;
  --page:#061A28;--bar:#071F30;--card:#0B2A3C;--card-2:#0C3347;--card-3:#10405A;--tint:rgba(255,255,255,.035);--field:rgba(255,255,255,.05);
  --line:rgba(255,255,255,.09);--line-2:rgba(255,255,255,.06);--line-3:rgba(255,255,255,.16);
  --t1:#FFFFFF;--t2:#9FB3BF;--t3:#8FA6B5;--tb:#E8EEF2;
  --panel:#10405A;--on-panel:#fff;--panel-2:#123F5B;
  --gold:#D8A64B;--gold-2:#E5BC68;--gold-3:#F3D38D;--gold-bg:rgba(216,166,75,.14);--gold-ln:rgba(216,166,75,.42);--on-gold:#061A28;
  --acc-bg:rgba(216,166,75,.14);--acc-ln:rgba(216,166,75,.42);--acc-t:#F3D38D;--acc-solid:#D8A64B;--acc-solid-h:#E5BC68;--on-acc:#061A28;
  --grn-t:#20C982;--grn-bg:rgba(32,201,130,.13);--grn-ln:rgba(32,201,130,.38);--grn-txt:#7EE7B8;--grn-solid:#20C982;--on-grn:#04281A;
  --amb-t:#F5A623;--amb-bg:rgba(245,166,35,.13);--amb-ln:rgba(245,166,35,.4);--amb-txt:#FFD08A;--on-amb:#1F1300;
  --red-t:#F27878;--red-bg:rgba(233,91,91,.14);--red-ln:rgba(233,91,91,.42);--red-txt:#FFA3A3;--red-solid:#E95B5B;--on-red:#1B0707;
  --blu-t:#5ED6CB;--blu-bg:rgba(46,185,174,.13);--blu-ln:rgba(46,185,174,.42);--blu-txt:#9BE8E0;
  --pur-t:#B794F6;--pur-bg:rgba(183,148,246,.14);--pur-ln:rgba(183,148,246,.4);--pur-txt:#D6C3FF;
  --cyan-t:#4FD1C5;--cyan-bg:rgba(79,209,197,.13);--pink-t:#F472B6;--orange-t:#FB923C;
  --btn:rgba(255,255,255,.06);--btn-h:rgba(255,255,255,.11);--btn-fg:#E8EEF2;--tab-on:#D8A64B;--on-tab:#061A28;
  --badge-todo:rgba(255,255,255,.16);--on-badge-todo:#fff;
  --shadow:inset 0 1px 0 rgba(255,255,255,.035),0 10px 30px rgba(0,0,0,.22);--shadow-lg:0 24px 60px rgba(0,0,0,.45);
  --r:14px;--r-lg:18px;
  color-scheme:dark;}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-bottom:14px;box-shadow:var(--shadow)}
.app-shell .card,.pif-dark .card{background-image:linear-gradient(180deg,rgba(255,255,255,.028),rgba(255,255,255,0) 40%)}
.ch{padding:11px 16px;font-size:11.5px;font-weight:700;color:#fff;display:flex;align-items:center;justify-content:space-between;text-transform:uppercase;letter-spacing:.06em;gap:10px}
.app-shell .ch,.pif-dark .ch,.app-shell .ids-h{background-image:linear-gradient(rgba(6,26,40,.58),rgba(6,26,40,.58))!important;border-bottom:1px solid var(--line)}
.cb{padding:16px}
.mg{display:grid;gap:12px;margin-bottom:14px}
.mc{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;box-shadow:var(--shadow)}
.ml{font-size:11.5px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}
.mv{font-size:22px;font-weight:700;line-height:1.2;color:var(--t1);letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.ms{font-size:12px;color:var(--t3);margin-top:3px}
table{width:100%;border-collapse:collapse;font-size:13px}
th{padding:9px 12px;text-align:left;font-size:11.5px;font-weight:700;color:var(--t2);background:var(--tint);border-bottom:1px solid var(--line);white-space:nowrap;text-transform:uppercase;letter-spacing:.05em}
td{padding:9px 12px;border-bottom:1px solid var(--line-2);vertical-align:middle}
tr:last-child td{border-bottom:none}
tfoot tr{background:var(--tint)}
tfoot td{font-weight:700;padding:9px 12px}
.inp{width:100%;padding:7px 10px;border:1px solid var(--line-3);border-radius:8px;font-size:13px;color:var(--info);background:var(--field);text-align:right;font-family:inherit;font-variant-numeric:tabular-nums}
.inp:focus{outline:none;border-color:var(--gold-ln);box-shadow:0 0 0 3px var(--gold-bg)}
.txt{width:100%;padding:8px 12px;border:1px solid var(--line-3);border-radius:9px;font-size:14px;font-family:inherit;background:var(--field);color:var(--t1)}
.txt:focus{outline:none;border-color:var(--gold-ln);box-shadow:0 0 0 3px var(--gold-bg)}
.sel{width:100%;padding:7px 11px;border:1px solid var(--line-3);border-radius:9px;font-size:13px;font-family:inherit;background:var(--field);color:var(--t1)}
.sel:focus{outline:none;border-color:var(--gold-ln);box-shadow:0 0 0 3px var(--gold-bg)}
.app-shell select option,.app-shell select optgroup{background:#0C3347;color:#fff}
.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;border:1px solid var(--line-3);background:var(--btn);color:var(--btn-fg);font-family:inherit;transition:transform .12s ease,box-shadow .12s ease,background .12s ease;line-height:1.3}
.btn:hover{background:var(--btn-h);transform:translateY(-1px);box-shadow:0 4px 10px rgba(0,0,0,.10)}
.btn-p{background:var(--acc-solid);color:var(--on-acc);border-color:var(--acc-solid)}
.btn-p:hover{background:var(--acc-solid-h)}
.btn-g{background:var(--grn-solid);color:var(--on-grn);border:none}
.btn-d{background:var(--panel);color:var(--on-panel);border:none}
.btn-r{background:var(--red-bg);color:var(--red-t);border-color:var(--red-ln)}
.btn-sm{padding:5px 11px;font-size:12px}
.pill{display:inline-flex;align-items:center;padding:3px 9px;border-radius:20px;font-size:11.5px;font-weight:700;white-space:nowrap;line-height:1.35}
.ok{background:var(--grn-bg);color:var(--grn-txt)}
.warn{background:var(--amb-bg);color:var(--amb-txt)}
.err{background:var(--red-bg);color:var(--red-txt)}
.inf{background:var(--blu-bg);color:var(--blu-txt)}
.zer{background:var(--card-3);color:var(--t2)}
.al{border-radius:12px;padding:12px 14px;font-size:13px;margin-bottom:10px;line-height:1.5}
.al-w{background:var(--amb-bg);border:1px solid var(--amb-ln);color:var(--amb-txt)}
.al-i{background:var(--blu-bg);border:1px solid var(--blu-ln);color:var(--blu-txt)}
.al-e{background:var(--red-bg);border:1px solid var(--red-ln);color:var(--red-txt)}
.al-o{background:var(--grn-bg);border:1px solid var(--grn-ln);color:var(--grn-txt)}
.bt{height:6px;background:var(--line);border-radius:3px;overflow:hidden;margin-top:4px}
.bf{height:100%;border-radius:3px}
.tabs{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}
.tab{padding:6px 14px;border-radius:20px;font-size:12.5px;font-weight:600;cursor:pointer;border:1px solid var(--line-3);background:transparent;color:var(--t2);font-family:inherit}
.tab.on{background:var(--tab-on);color:var(--on-tab);border-color:var(--tab-on)}
.ph{padding:24px 28px 0}
.pi{padding:0 28px 28px}
.ptitle{font-size:22px;font-weight:700;margin-bottom:4px;color:var(--t1);letter-spacing:-.02em}
.psub{font-size:13.5px;color:var(--t2)}
.uz{border:2px dashed var(--line-3);border-radius:14px;padding:32px;text-align:center;cursor:pointer;background:var(--tint)}
.kpi{position:relative;padding:20px 22px;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);min-height:132px;overflow:hidden}
.app-shell .kpi,.pif-dark .kpi{background-image:linear-gradient(135deg,rgba(46,185,174,.10),rgba(46,185,174,0) 52%),linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,0) 45%);box-shadow:var(--shadow),0 0 0 1px rgba(46,185,174,.06)}
.kpi.clickable{cursor:pointer;transition:border-color .15s ease,transform .15s ease}
.kpi.clickable:hover{border-color:var(--gold-ln)}
.kpi.clickable:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.kpi-lb{font-size:12.5px;font-weight:600;color:var(--t2);letter-spacing:.01em;padding-right:52px}
.kpi-v{font-size:30px;font-weight:700;color:var(--t1);letter-spacing:-.025em;margin-top:10px;line-height:1.1;font-variant-numeric:tabular-nums}
.kpi-v small{font-size:15px;font-weight:600;color:var(--t2);letter-spacing:0;margin-left:4px}
.kpi-s{font-size:12.5px;color:var(--t2);margin-top:8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.kpi-ic{position:absolute;top:18px;right:18px;width:40px;height:40px;border-radius:12px;background:var(--gold-bg);color:var(--gold-2);display:grid;place-items:center;border:1px solid var(--gold-ln)}
.kpi-ic svg{width:20px;height:20px}
.app-shell .kpi-ic,.pif-dark .kpi-ic{background:var(--teal-bg);color:var(--teal-2);border-color:var(--teal-ln)}
.kpi-ic.gd{background:var(--gold-bg);color:var(--gold-2);border-color:var(--gold-ln)}
.kpi-ic.g{background:var(--grn-bg);color:var(--grn-t);border-color:var(--grn-ln)}
.tn{height:64px;background:var(--bar);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;padding:0 20px;flex-shrink:0;z-index:50;position:relative}
.tn-right{margin-left:auto;display:flex;align-items:center;gap:10px;min-width:0}
.tn-user{position:relative}
.tn-user summary{list-style:none;display:flex;align-items:center;gap:9px;height:40px;padding:0 10px 0 4px;border-radius:12px;border:1px solid var(--line);background:var(--field);cursor:pointer;color:var(--t1);font-weight:600;font-size:13.5px;white-space:nowrap}
.tn-user summary::-webkit-details-marker{display:none}
.tn-user summary:hover{border-color:var(--line-3)}
.tn-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--gold-3));color:#061A28;font-size:12px;font-weight:800;display:grid;place-items:center;letter-spacing:.02em;flex-shrink:0}
.tn-dd{position:absolute;right:0;top:46px;min-width:230px;background:var(--card);border:1px solid var(--line-3);border-radius:12px;box-shadow:var(--shadow-lg);padding:6px;z-index:60}
.tn-dd button,.tn-dd a{display:flex;width:100%;align-items:center;gap:10px;padding:9px 10px;border:none;background:none;color:var(--t1);font:inherit;font-size:13.5px;border-radius:8px;cursor:pointer;text-align:left;text-decoration:none}
.tn-dd button:hover,.tn-dd a:hover{background:var(--tint)}
.tn-dd .sep{height:1px;background:var(--line);margin:6px 4px}
.tn-dd .who{padding:8px 10px 4px;font-size:12px;color:var(--t3);word-break:break-all;line-height:1.4}
.nav{width:272px;background:var(--bar);border-right:1px solid var(--line);overflow-y:auto;flex-shrink:0;display:flex;flex-direction:column;min-height:0;padding:12px 10px 0}
.sg{margin-bottom:2px}
.sg-h{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:12px;cursor:pointer;color:var(--t2);font-size:13.5px;font-weight:600;border:1px solid transparent;user-select:none}
.sg-h:hover{background:var(--tint);color:var(--t1)}
.sg-h .i{width:20px;height:20px;flex-shrink:0;display:grid;place-items:center}
.sg-h .lb{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sg.on .sg-h{background:var(--gold-bg);color:var(--gold-2);border-color:var(--gold-ln);box-shadow:0 6px 18px rgba(216,166,75,.10)}
.ni{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:9px;cursor:pointer;font-size:13.5px;font-weight:500;color:var(--t2);line-height:1.3}
.ni:hover{background:var(--tint);color:var(--t1)}
.ni.on{background:var(--gold-bg);color:var(--gold-2);font-weight:600}
.ni .lb{flex:1;min-width:0}
a.ni{text-decoration:none}
.nav-div{height:1px;background:var(--line);margin:10px 8px}
.nav-foot{margin-top:auto;padding:16px 6px 18px;border-top:1px solid var(--line);display:flex;align-items:center;gap:10px}
.nav-foot b{display:block;font-size:13.5px;color:var(--t1);font-weight:700;letter-spacing:-.01em;line-height:1.2}
.nav-foot small{display:block;font-size:9px;letter-spacing:.09em;color:var(--gold-2);text-transform:uppercase;margin-top:4px;font-weight:700;white-space:nowrap}
