/* ═══════════════════════════════════════════════════════════ */
/* PortfolioCalc — NEW UI shared chrome CSS (v2)               */
/* Tokens, legacy aliases, injected header/footer/modal/toast  */
/* All chrome classes are pcn-/pcf-/pcm- namespaced so page    */
/* CSS from the prototypes can never collide.                  */
/* ═══════════════════════════════════════════════════════════ */

:root{
  /* New UI design tokens (shared system) */
  --ink:#0A1422;--ink2:#101D30;--ink3:#16263C;
  --ink-line:rgba(150,176,210,.16);--ink-text:#E8EEF6;--ink-text2:#9FAEC2;
  --paper:#F6F7F5;--card:#FFFFFF;
  --line:rgba(16,29,48,.10);--line2:rgba(16,29,48,.18);
  --txt:#101D30;--txt2:#56627A;--txt3:#6E7889;
  --brand:#0E7C52;--brand-deep:#0A5C3D;--brand-soft:#E5F3EC;--brand-bright:#2FD08A;
  --gain:#15803D;--loss:#D93036;--loss-soft:#FBEAEA;--loss-bright:#FF7A7E;
  --ai:#3E7BFA;--ai-deep:#2C5FD4;--ai-soft:#EAF1FE;--ai-bright:#7DA7FC;
  --amber-c:#B45309;--amber-soft:#FBF0DC;
  --r-lg:16px;--r:12px;--r-sm:8px;
  --shadow:0 1px 3px rgba(16,29,48,.06),0 8px 28px rgba(16,29,48,.07);
  --shadow-lg:0 16px 48px rgba(16,29,48,.14);
  --mono:'IBM Plex Mono',ui-monospace,monospace;
  --sans:'Instrument Sans',system-ui,sans-serif;
  /* Legacy aliases — live chrome.js inline styles reference these */
  --text:var(--txt);--text2:var(--txt2);--text3:var(--txt3);
  --bg:var(--paper);--bg2:#EFF1ED;
  --border:var(--line);--border2:var(--line2);
  --accent:var(--brand);--red:var(--loss);--amber:var(--amber-c);
}

/* ── HEADER ── */
#pc-chrome-header .pcn{position:fixed;top:0;left:0;right:0;z-index:500;height:60px;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 1.6rem;background:rgba(246,247,245,.88);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line);font-family:var(--sans);}
.pcn-logo{font-size:18px;font-weight:700;letter-spacing:-.03em;text-decoration:none;color:var(--txt);flex-shrink:0;}
.pcn-logo span{color:var(--brand);}
.pcn-logo .pcn-dot{display:inline-block;width:7px;height:7px;background:var(--brand);margin-right:8px;vertical-align:middle;}
.pcn-links{display:flex;align-items:center;gap:2px;}
.pcn-links a{font-size:13px;font-weight:500;color:var(--txt2);text-decoration:none;padding:6px 12px;border-radius:8px;transition:all .15s;white-space:nowrap;}
.pcn-links a:hover{color:var(--txt);background:rgba(16,29,48,.05);}
.pcn-links a.active{color:var(--txt);background:rgba(16,29,48,.06);font-weight:600;}
.pcn-r{display:flex;align-items:center;gap:10px;}
.pcn-auth{align-items:center;gap:8px;}
.pcn-signin{font-size:13px;font-weight:500;color:var(--txt2);background:none;border:none;cursor:pointer;padding:7px 10px;font-family:var(--sans);}
.pcn-signin:hover{color:var(--txt);}
.pcn-btn{padding:8px 18px;border-radius:9px;background:var(--ink);color:#fff;font-size:13px;font-weight:600;border:none;cursor:pointer;font-family:var(--sans);transition:opacity .15s;}
.pcn-btn:hover{opacity:.85;}
.pcn-user{align-items:center;gap:8px;}
.pcn-avatar{width:32px;height:32px;border-radius:9px;background:var(--brand-soft);color:var(--brand);font-size:12.5px;font-weight:700;display:flex;align-items:center;justify-content:center;border:1px solid rgba(14,124,82,.25);cursor:pointer;font-family:var(--sans);}

/* ── TICKER SEARCH ── */
.pcn-search{position:relative;display:flex;align-items:center;}
.pcn-search-ic{position:absolute;left:10px;color:var(--txt3);display:flex;pointer-events:none;}
.pcn-search-in{width:170px;padding:8px 10px 8px 31px;border-radius:9px;border:1px solid var(--line2);background:var(--card);font-size:12.5px;font-family:var(--sans);transition:width .2s;color:var(--txt);}
.pcn-search-in:focus{outline:none;border-color:var(--txt3);width:240px;}
.pcn-search-res,.pcn-msr{position:absolute;top:calc(100% + 6px);right:0;width:300px;max-height:320px;overflow-y:auto;background:var(--card);border:1px solid var(--line2);border-radius:12px;box-shadow:var(--shadow-lg);z-index:600;}
.pcn-msr{position:fixed;top:64px;left:1rem;right:1rem;width:auto;}
.nav-search-item{display:flex;align-items:center;gap:10px;padding:9px 13px;cursor:pointer;border-bottom:1px solid var(--line);text-decoration:none;font-family:var(--sans);}
.nav-search-item:last-child{border-bottom:none;}
.nav-search-item:hover{background:var(--paper);}
.nsi-tick{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--txt);min-width:52px;}
.nsi-name{font-size:12px;color:var(--txt2);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.nsi-exch{font-family:var(--mono);font-size:9.5px;color:var(--txt3);}
.pcn-search-mb{display:none;background:none;border:1px solid var(--line2);border-radius:9px;width:34px;height:34px;align-items:center;justify-content:center;color:var(--txt2);cursor:pointer;}

/* ── USER MENU ── */
.pcn-menu{position:absolute;top:calc(100% + 8px);right:0;width:230px;background:var(--card);border:1px solid var(--line2);border-radius:13px;box-shadow:var(--shadow-lg);display:none;z-index:600;overflow:hidden;font-family:var(--sans);}
.pcn-menu.open{display:block;}
.pcn-menu-head{padding:.85rem 1rem;border-bottom:1px solid var(--line);}
.pcn-menu-name-row{display:flex;align-items:center;gap:6px;}
.pcn-menu-name{font-size:13.5px;font-weight:700;color:var(--txt);}
.pcn-pro{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.08em;padding:1px 8px;border-radius:100px;background:linear-gradient(135deg,#f59e0b,#f97316);color:#fff;}
.pcn-menu-email{font-size:11px;color:var(--txt3);margin-top:2px;overflow:hidden;text-overflow:ellipsis;}
.pcn-menu-sec{padding:.35rem 0;border-bottom:1px solid var(--line);}
.pcn-menu-sec:last-child{border-bottom:none;}
.pcn-menu-sec a,.pcn-menu-item{display:flex;align-items:center;gap:8px;padding:.5rem 1rem;font-size:12.5px;font-weight:500;color:var(--txt);text-decoration:none;cursor:pointer;}
.pcn-menu-sec a:hover,.pcn-menu-item:hover{background:var(--paper);}
.pcn-menu-sec #upgrade-menu-item{color:var(--brand-deep);font-weight:600;}
.pcn-spark{color:var(--ai);font-size:13px;}
.pcn-menu-badge{margin-left:auto;font-family:var(--mono);font-size:9.5px;padding:2px 8px;border-radius:100px;background:var(--amber-soft);color:var(--amber-c);}
.pcn-signout{color:var(--loss);}

/* ── MOBILE SEARCH OVERLAY ── */
.pcn-mso{position:fixed;top:0;left:0;right:0;z-index:700;height:60px;display:none;align-items:center;gap:10px;padding:0 1rem;background:var(--card);border-bottom:1px solid var(--line2);}
.pcn-mso.open{display:flex;}
.pcn-mso input{flex:1;padding:9px 12px;border-radius:9px;border:1px solid var(--line2);background:var(--paper);font-size:14px;font-family:var(--sans);}
.pcn-mso-x{background:none;border:none;font-size:16px;color:var(--txt2);cursor:pointer;padding:8px;}

/* ── TOAST ── */
.pctoast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,16px);z-index:9000;background:var(--txt);color:var(--paper);font-family:var(--sans);font-size:13px;font-weight:500;padding:10px 20px;border-radius:100px;box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:calc(100vw - 2rem);}
.pctoast.show{opacity:1;transform:translate(-50%,0);pointer-events:auto;}

/* ── SKIP LINK ── */
.skip-link{position:absolute;top:-48px;left:12px;z-index:1000;background:var(--ink);color:#fff;font-family:var(--sans);font-size:13px;font-weight:600;padding:9px 16px;border-radius:9px;text-decoration:none;transition:top .15s;}
.skip-link:focus{top:70px;}

/* ── AUTH MODAL ── */
.pcm-overlay{position:fixed;inset:0;z-index:800;background:rgba(10,20,34,.5);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;padding:1rem;}
.pcm-overlay.open{display:flex;}
.pcm{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);width:400px;max-width:100%;max-height:calc(100vh - 2rem);overflow-y:auto;padding:1.5rem;font-family:var(--sans);}
.pcm-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem;}
.pcm-head h2{font-size:19px;font-weight:700;letter-spacing:-.02em;color:var(--txt);margin:0;}
.pcm-head p{font-size:12.5px;color:var(--txt2);margin:.2rem 0 0;}
.pcm-x{background:var(--paper);border:none;color:var(--txt3);width:28px;height:28px;border-radius:8px;font-size:13px;cursor:pointer;flex-shrink:0;}
.pcm-x:hover{color:var(--txt);}
.pcm-group{margin-bottom:.9rem;}
.pcm-group label{display:flex;align-items:center;justify-content:space-between;font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--txt3);margin-bottom:.4rem;}
.pcm-group input{width:100%;padding:10px 12px;border-radius:9px;border:1px solid var(--line2);background:var(--paper);font-size:13.5px;font-family:var(--sans);color:var(--txt);box-sizing:border-box;}
.pcm-group input:focus{outline:none;border-color:var(--brand);}
.pcm-group input.input-error{border-color:var(--loss);}
.pcm-group input.input-ok{border-color:var(--brand);}
.pcm-forgot{font-family:var(--sans);font-size:11.5px;color:var(--brand-deep);cursor:pointer;text-transform:none;letter-spacing:0;font-weight:500;}
.pcm-pw{position:relative;}
.pcm-pw input{padding-right:54px;}
.pcm-pwt{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:11px;font-weight:600;color:var(--txt3);cursor:pointer;font-family:var(--sans);}
.pcm-pwbars{display:flex;gap:4px;margin-top:.5rem;}
.pw-bar{height:3px;flex:1;border-radius:100px;background:var(--line2);}
.pw-bar.s-weak{background:var(--loss);}
.pw-bar.s-fair{background:var(--amber-c);}
.pw-bar.s-good{background:var(--brand);}
.pw-bar.s-strong{background:#1D9E75;}
.pw-label{font-size:10.5px;font-weight:600;display:block;margin-top:3px;}
.field-hint{display:block;font-size:11px;margin-top:4px;min-height:1px;}
.field-hint.hint-err{color:var(--loss);}
.field-hint.hint-ok{color:var(--brand);}
.pcm-remember{display:flex;align-items:center;gap:6px;margin-bottom:1rem;}
.pcm-remember input{width:14px;height:14px;accent-color:var(--brand);cursor:pointer;margin:0;}
.pcm-remember label{font-size:12px;color:var(--txt2);cursor:pointer;}
.pcm-btn{width:100%;padding:11px;border-radius:10px;border:none;background:var(--ink);color:#fff;font-size:13.5px;font-weight:600;cursor:pointer;font-family:var(--sans);display:flex;align-items:center;justify-content:center;gap:8px;}
.pcm-btn:hover{opacity:.88;}
.pcm-btn:disabled{opacity:.55;cursor:default;}
.pcm-switch{text-align:center;font-size:12.5px;color:var(--txt2);margin-top:.9rem;}
.pcm-switch a{color:var(--brand-deep);font-weight:600;cursor:pointer;text-decoration:none;}
.pcm-resend{text-align:center;margin-top:12px;font-size:12.5px;color:var(--txt2);}
.pcm-resend a{cursor:pointer;color:var(--brand-deep);font-weight:600;}
.pcm-legal{font-size:10.5px;color:var(--txt3);text-align:center;margin-top:.6rem;line-height:1.6;}
.pcm-legal a{color:var(--txt3);}
.msg{display:none;font-size:12.5px;line-height:1.55;border-radius:9px;padding:0;margin-bottom:.6rem;}
.msg.error{display:block;background:var(--loss-soft);color:var(--loss);padding:.6rem .85rem;}
.msg.success{display:block;background:var(--brand-soft);color:var(--brand-deep);padding:.6rem .85rem;}
.btn-spinner{width:13px;height:13px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;display:inline-block;animation:pcspin .7s linear infinite;}
@keyframes pcspin{to{transform:rotate(360deg);}}

/* ── FOOTER ── */
/* Sticky footer: short pages (loading/guest/empty states) keep the footer at the viewport bottom */
html{min-height:100%;}
body{min-height:100vh;display:flex;flex-direction:column;}
#pc-chrome-footer{margin-top:auto;}
#pc-chrome-footer .pcf{margin-top:5rem;border-top:1px solid var(--line);background:#EFF1ED;padding:2.6rem 0 1.4rem;font-family:var(--sans);}
.pcf-wrap{max-width:1160px;margin:0 auto;padding:0 2rem;}
.pcf-grid{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:2rem;margin-bottom:2rem;}
.pcf-brand p{font-size:12.5px;color:var(--txt2);line-height:1.65;margin-top:.8rem;max-width:260px;}
.pcf-t{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--txt3);margin-bottom:.7rem;}
.pcf-col a{display:block;font-size:12.5px;color:var(--txt2);text-decoration:none;padding:3px 0;}
.pcf-col a:hover{color:var(--txt);}
.pcf-disc{font-size:11px;color:var(--txt3);line-height:1.65;margin-bottom:1.2rem;max-width:820px;}
.pcf-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.6rem;font-size:11px;color:var(--txt3);border-top:1px solid var(--line);padding-top:1rem;}
.pcf-links{display:flex;gap:14px;flex-wrap:wrap;}
.pcf-links a{color:var(--txt3);text-decoration:none;font-size:11px;}
.pcf-links a:hover{color:var(--txt);}

/* ── RESPONSIVE ── */
@media(max-width:1080px){
  .pcn-links{display:none;}
}
@media(max-width:760px){
  .pcn-search{display:none;}
  .pcn-search-mb{display:flex;}
  .pcf-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:480px){
  #pc-chrome-header .pcn{padding:0 1rem;}
  .pcn-signin{display:none;}
  .pcf-grid{grid-template-columns:1fr;}
}

/* ── COOKIE CONSENT BAR (full width) ── */
.pcck{position:fixed;left:0;right:0;bottom:0;z-index:9500;background:var(--card);border-top:1px solid var(--line2);box-shadow:0 -8px 32px rgba(16,29,48,.10);padding:1rem 1.6rem;font-family:var(--sans);flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.85rem 1.5rem;animation:pcckin .35s cubic-bezier(.2,.8,.3,1);}
@keyframes pcckin{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
.pcck-l{display:flex;flex-direction:column;gap:3px;max-width:720px;min-width:240px;flex:1;}
.pcck-title{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--txt3);}
.pcck-txt{font-size:12.5px;color:var(--txt2);line-height:1.6;margin:0;}
.pcck-txt a{color:var(--brand-deep);text-decoration:none;font-weight:600;}
.pcck-txt a:hover{text-decoration:underline;}
.pcck-btns{display:flex;gap:8px;flex-shrink:0;}
.pcck-btn{font-family:var(--sans);font-size:12.5px;font-weight:600;padding:9px 22px;border-radius:9px;cursor:pointer;line-height:1;transition:opacity .15s,background .15s;}
.pcck-accept{background:var(--ink);color:#fff;border:1px solid var(--ink);}
.pcck-accept:hover{opacity:.88;}
.pcck-rej{background:var(--card);color:var(--txt);border:1px solid var(--line2);}
.pcck-rej:hover{background:var(--paper);}
@media(max-width:560px){.pcck{padding:.9rem 1rem;}.pcck-btns{width:100%;}.pcck-btn{flex:1;padding:10px 0;}}
@media(prefers-reduced-motion:reduce){.pcck{animation:none;}}

/* ── TOOLS DROPDOWN ── */
.pcn-tools{position:relative;display:flex;align-items:center;height:60px;}
.pcn-tools-btn{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#fff;background:var(--brand);border:1px solid var(--brand);cursor:pointer;padding:7px 14px;border-radius:9px;font-family:var(--sans);transition:all .15s;white-space:nowrap;margin-left:4px;box-shadow:0 3px 12px rgba(14,124,82,.25);}
.pcn-tools-btn:hover{background:var(--brand-deep);border-color:var(--brand-deep);}
.pcn-tools:hover .pcn-tools-btn{background:var(--brand-deep);border-color:var(--brand-deep);}
.pcn-caret{font-size:9px;color:inherit;opacity:.8;}
.pcn-tools-menu{position:absolute;top:calc(100% - 6px);right:0;width:212px;background:var(--card);border:1px solid var(--line2);border-radius:13px;box-shadow:var(--shadow-lg);padding:.35rem 0 .5rem;display:none;z-index:600;}
.pcn-tools:hover .pcn-tools-menu,.pcn-tools.open .pcn-tools-menu{display:block;}
.pcn-tools-t{font-family:var(--mono);font-size:8.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--txt3);padding:.6rem 1rem .3rem;}
.pcn-tools-menu a{display:block;font-size:12.5px;font-weight:500;color:var(--txt);text-decoration:none;padding:.42rem 1rem;}
.pcn-tools-menu a:hover{background:var(--paper);}

/* ── TOOLS FIRST-VISIT TIP ── */
.pcn-tip{position:absolute;top:calc(100% + 12px);right:-8px;width:250px;background:var(--ink);color:var(--ink-text);border-radius:12px;padding:.85rem .95rem .8rem;box-shadow:0 16px 48px rgba(10,20,34,.35);z-index:640;font-family:var(--sans);cursor:default;animation:pcckin .4s cubic-bezier(.2,.8,.3,1) both;}
.pcn-tip::before{content:'';position:absolute;top:-5px;right:42px;width:10px;height:10px;background:var(--ink);transform:rotate(45deg);}
.pcn-tip .pcn-tip-spark{color:var(--brand-bright);font-size:13px;}
.pcn-tip p{display:inline;font-size:12.5px;line-height:1.6;color:#C9D7F2;margin:0;}
.pcn-tip b{color:#fff;font-weight:600;}
.pcn-tip button{display:block;margin-top:.65rem;font-family:var(--sans);font-size:11.5px;font-weight:600;padding:6px 15px;border-radius:8px;border:none;background:var(--brand);color:#fff;cursor:pointer;transition:background .15s;}
.pcn-tip button:hover{background:var(--brand-deep);}
@media(prefers-reduced-motion:reduce){.pcn-tip{animation:none;}}
