:root{color-scheme:light;--bg:#f6f7f9;--bg-raised:#ffffff;--bg-card:#ffffff;--bg-inset:#eef1f5;--border:#dbe1e8;--border-strong:#b6c0cc;--text:#171b21;--text-dim:#555f6d;--text-faint:#7b8695;--accent:#2a63ad;--accent-strong:#1a4680;--pos:#157f52;--neg:#c03535;--live:#157f52;--proforma:#9a6b12;--sample:#2a63ad;--mock:#a63b7c;--warn:#9a6b12;--radius:8px;--radius-sm:5px;--font-mono:ui-monospace,"Cascadia Mono","SF Mono",Consolas,monospace}*{box-sizing:border-box}html{height:100%}body{margin:0;min-height:100%;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;line-height:1.5;background:var(--bg);color:var(--text)}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-strong);text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:var(--accent);color:#ffffff;padding:.5rem 1rem;border-radius:0 0 var(--radius-sm) 0}.skip-link:focus{left:0}.site-header{display:flex;align-items:center;gap:1.25rem;padding:.65rem 1.25rem;background:var(--bg-raised);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:baseline;gap:.5rem;white-space:nowrap}.brand-name{font-weight:700;letter-spacing:.06em}.brand-sub{color:var(--text-dim);font-size:.8rem;letter-spacing:.04em}.header-user{margin-left:auto;display:flex;align-items:center;gap:.9rem;font-size:.82rem;color:var(--text-dim)}.header-user .email{font-family:var(--font-mono);font-size:.78rem}.nav{display:flex;gap:.25rem}.nav-group{position:relative}.nav-group-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;color:var(--text-dim);font:inherit;font-size:.86rem;padding:.35rem .7rem;border-radius:var(--radius-sm);cursor:pointer}.nav-group-btn:hover,.nav-group-btn[aria-expanded=true]{color:var(--text);background:var(--bg-card)}.nav-group-btn.active-group{color:var(--accent-strong);box-shadow:inset 0 -2px 0 var(--accent);border-radius:var(--radius-sm) var(--radius-sm) 0 0}.nav-caret{font-size:.6rem;margin-left:.3rem;opacity:.7}.nav-menu{position:absolute;top:calc(100% + 4px);left:0;min-width:13rem;background:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--radius);padding:.35rem;z-index:50;box-shadow:0 6px 18px rgba(23,27,33,.12)}.nav-menu a{display:block;padding:.45rem .7rem;border-radius:var(--radius-sm);color:var(--text);font-size:.86rem}.nav-menu a:hover{background:var(--bg-inset);text-decoration:none}.nav-menu a[aria-current=page]{color:var(--accent-strong);background:var(--bg-inset);font-weight:600}.prov-band{padding:.55rem 1.25rem;font-size:.85rem;font-weight:500;border-top:1px solid transparent;border-bottom:1px solid transparent}.prov-band.proforma{background:rgba(154,107,18,.1);color:#7d560e;border-color:rgba(154,107,18,.38)}.prov-band.sample{background:rgba(42,99,173,.1);color:#1f4c86;border-color:rgba(42,99,173,.38)}.prov-band.mock{background:rgba(166,59,124,.1);color:#8a3167;border-color:rgba(166,59,124,.38)}.page{max-width:1240px;margin:0 auto;padding:1.5rem 1.25rem 3rem}.page-head{margin-bottom:1.25rem}.page-title{font-size:1.25rem;font-weight:650;margin:0 0 .25rem}.page-subtitle{color:var(--text-dim);font-size:.85rem;margin:0}.page-stamp{gap:.6rem;color:var(--text-dim);font-size:.83rem;margin-top:.35rem}.page-stamp,.site-footer{display:flex;align-items:center;flex-wrap:wrap}.site-footer{gap:1rem;max-width:1240px;margin:0 auto;padding:1rem 1.25rem 2rem;border-top:1px solid var(--border);color:var(--text-faint);font-size:.78rem}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.15rem}.card+.card{margin-top:1rem}.card-title{font-size:.95rem;font-weight:650;margin:0 0 .6rem}.tile-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));grid-gap:.75rem;gap:.75rem;margin:1rem 0}.tile{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:.7rem .9rem}.tile-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint)}.tile-value{font-size:1.15rem;font-weight:650;margin-top:.15rem}.tile-note{font-size:.74rem;color:var(--text-dim);margin-top:.1rem}.warn-card{background:rgba(154,107,18,.07);border:1px solid rgba(154,107,18,.35);border-radius:var(--radius);padding:.85rem 1.1rem;margin:1rem 0}.warn-card .card-title{color:#7d560e}.info-card{background:rgba(42,99,173,.06);border:1px solid rgba(42,99,173,.3);border-radius:var(--radius);padding:.85rem 1.1rem;margin:1rem 0}.empty-card{background:var(--bg-card);border:1px dashed var(--border-strong);border-radius:var(--radius);padding:2rem 1.5rem;text-align:center;color:var(--text-dim);margin:1.25rem 0}.empty-card h2{font-size:1rem;color:var(--text);margin:0 0 .4rem}.chip{display:inline-block;padding:.05rem .45rem;border-radius:999px;font-size:.68rem;font-weight:600;letter-spacing:.03em;border:1px solid transparent;vertical-align:middle;white-space:nowrap}.chip.neutral{background:var(--bg-inset);color:var(--text-dim);border-color:var(--border)}.chip.info{background:rgba(42,99,173,.1);color:#1f4c86;border-color:rgba(42,99,173,.38)}.chip.good{background:rgba(21,127,82,.1);color:#0f6340;border-color:rgba(21,127,82,.38)}.chip.warn{background:rgba(154,107,18,.1);color:#7d560e;border-color:rgba(154,107,18,.38)}.chip.danger{background:rgba(192,53,53,.1);color:#9c2b2b;border-color:rgba(192,53,53,.38)}.chip.mock{background:rgba(166,59,124,.1);color:#8a3167;border-color:rgba(166,59,124,.38)}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:.84rem}table.data caption{text-align:left;font-size:.9rem;font-weight:650;padding-bottom:.5rem}table.data td,table.data th{padding:.42rem .6rem;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}table.data th{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);font-weight:600}table.data td.num,table.data th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}table.data tr.subheader td{background:var(--bg-inset);color:var(--text-dim);font-weight:600;font-size:.78rem}table.data tbody tr:hover td{background:rgba(122,162,214,.05)}th.sortable{padding:0}th.sortable button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;padding:.42rem .6rem;cursor:pointer;width:100%;text-align:inherit}th.sortable button:hover{color:var(--text)}th[aria-sort=ascending] button:after{content:" ▲";font-size:.6rem}th[aria-sort=descending] button:after{content:" ▼";font-size:.6rem}.pos{color:var(--pos)}.neg{color:var(--neg)}.dash,.fine-print{color:var(--text-faint)}.fine-print{font-size:.76rem;line-height:1.5;margin-top:1.25rem}.ramp-names{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.ramp-name-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-card);border:1px solid var(--border);color:var(--text-dim);font:inherit;font-size:.86rem;padding:.3rem .8rem;border-radius:999px;cursor:pointer}.ramp-name-btn:hover{color:var(--text);border-color:var(--border-strong)}.ramp-name-btn.active{color:var(--accent-strong);border-color:var(--accent);background:var(--bg-inset);font-weight:600}.ramp-name-count{margin-left:.45rem;font-size:.72rem;color:var(--text-faint);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ramp-add{display:flex;gap:.4rem;margin-left:auto}.ramp-add input{font-family:var(--font-mono);font-size:.84rem;padding:.3rem .6rem;width:8rem;text-transform:uppercase}.ramp-add button,.ramp-add input{background:var(--bg-inset);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text)}.ramp-add button{font:inherit;font-size:.84rem;padding:.3rem .8rem;cursor:pointer}.ramp-add button:hover{border-color:var(--accent);color:var(--accent-strong)}.ramp-progress{display:flex;align-items:baseline;gap:.75rem;color:var(--text-dim);font-size:.86rem;margin:0 0 1rem}.ramp-remove{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;color:var(--text-faint);font:inherit;font-size:.76rem;cursor:pointer;padding:0;margin-left:auto}.ramp-remove:hover{color:var(--neg);text-decoration:underline}.ramp-list{list-style:none;margin:0;padding:0}.ramp-item{display:flex;align-items:baseline;gap:.65rem;padding:.28rem 0;cursor:pointer}.ramp-item input[type=checkbox]{accent-color:var(--accent);width:.95rem;height:.95rem;cursor:pointer;flex-shrink:0;transform:translateY(2px)}.ramp-item .ramp-item-label{font-size:.9rem}.ramp-item.done .ramp-item-label{color:var(--text-faint);text-decoration:line-through}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem 1rem}.auth-card{width:100%;max-width:380px;background:var(--bg-card);border:1px solid var(--border-strong);border-radius:12px;padding:2rem 1.75rem}.auth-card h1{font-size:1.05rem;margin:0 0 .25rem;letter-spacing:.05em}.auth-card .auth-sub{color:var(--text-dim);font-size:.82rem;margin:0 0 1.4rem}.auth-card label{display:block;font-size:.78rem;color:var(--text-dim);margin-bottom:.35rem}.auth-card input[type=password]{width:100%;background:var(--bg-inset);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font-mono);font-size:.9rem;padding:.55rem .7rem}.auth-card input[type=password]:focus{outline:2px solid var(--accent);outline-offset:1px}.auth-card button[type=submit]{width:100%;margin-top:1rem;background:var(--accent);color:#ffffff;border:none;border-radius:var(--radius-sm);font:inherit;font-weight:650;padding:.55rem;cursor:pointer}.auth-card button[type=submit]:hover{background:var(--accent-strong)}.auth-error{background:rgba(192,53,53,.09);border:1px solid rgba(192,53,53,.4);color:#9c2b2b;border-radius:var(--radius-sm);font-size:.82rem;padding:.5rem .7rem;margin-bottom:1rem}.center-card{max-width:520px;margin:4rem auto;text-align:center}.center-card .actions{display:flex;gap:.75rem;justify-content:center;margin-top:1.25rem}.center-card .actions a,.center-card .actions button{background:var(--bg-inset);border:1px solid var(--border-strong);color:var(--text);border-radius:var(--radius-sm);font:inherit;font-size:.85rem;padding:.45rem 1rem;cursor:pointer}.error-ref{color:var(--text-faint);font-size:.75rem;margin-top:1rem;font-family:var(--font-mono)}.loading-panel{max-width:1240px;margin:0 auto;padding:3rem 1.25rem;color:var(--text-dim);font-size:.9rem}.marketing{max-width:760px;margin:0 auto;padding:4rem 1.5rem}.marketing h1{font-size:1.7rem;letter-spacing:.04em}.marketing p{color:var(--text-dim);font-size:1rem;line-height:1.7}@media print{body{background:#fff;color:#000}.nav,.site-footer .footer-links,.site-header{display:none}.prov-band{background:none!important;color:#000!important;border-top:2px solid #000!important;border-bottom:2px solid #000!important;font-weight:700}.prov-band:before{content:"DATA PROVENANCE NOTICE: "}}.contacts{display:flex;flex-direction:column;gap:1rem}.contacts-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.contacts-input{flex:1 1 24rem;max-width:36rem;padding:.5rem .75rem;font:inherit;font-size:.9rem;color:var(--text);background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-sm)}.contacts-input::placeholder{color:var(--text-faint)}.contacts-input:focus{outline:2px solid var(--accent);outline-offset:1px}.contacts-count{color:var(--text-dim);font-size:.8rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.contacts-chips{display:flex;flex-wrap:wrap;gap:.35rem}.chip-btn{font:inherit;font-size:.75rem;line-height:1;padding:.35rem .6rem;border-radius:999px;cursor:pointer;color:var(--text-dim);background:var(--bg-card);border:1px solid var(--border)}.chip-btn:hover{background:var(--bg-raised);color:var(--text);border-color:var(--border-strong)}.chip-btn.selected{color:var(--bg);background:var(--accent);border-color:var(--accent)}.chip-count{opacity:.7;margin-left:.25rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.contacts-name{font-weight:600;color:var(--text)}.contacts-tag{margin-left:.4rem}.contacts-ticker{margin-left:.4rem;font-family:var(--font-mono)}.contacts-note,.contacts-ticker{font-size:.75rem;color:var(--text-dim)}.contacts-note{margin:0}.contacts-empty{color:var(--text-dim);font-size:.85rem;text-align:center;padding:1.5rem 0;margin:0}.contacts-section{display:flex;flex-direction:column;gap:.5rem}.contacts-h2{font-size:.78rem;font-weight:650;letter-spacing:.05em;text-transform:uppercase;color:var(--text-dim);margin:0}.contacts-ticker-cell{margin-left:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}