/* The data portal, on top of the site's global stylesheet (tokens, header, footer, buttons). */
:root{--c1:#6250d6;--c2:#eb6834;--c3:#1baf7a;--c4:#eda100}
@media (prefers-color-scheme:dark){:root{--c1:#9085e9;--c2:#d95926;--c3:#199e70;--c4:#c98500}}
.pt{background:var(--paper)}
.pt-preview{margin:0;padding:6px 16px;background:var(--amber-wash,#FDF6E6);border-bottom:1px solid var(--amber-line,#E0A534);font-size:14px;text-align:center}
.pt-main{padding:32px 0 72px;min-height:60vh}
.pt-main h1{font-size:var(--fs-h2);line-height:1.15;margin:0 0 12px;letter-spacing:-.01em}
.pt-main h2{font-size:var(--fs-h3);line-height:1.25;margin:0 0 10px}
.pt-lede{font-size:var(--fs-b);color:var(--ink-2);max-width:62ch;margin:0 0 20px}
.pt-small{font-size:var(--fs-s);color:var(--ink-2);margin:8px 0 0}
.pt-card{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:24px}
.pt-narrow{max-width:560px}
.pt-main .btn{margin-top:0;display:inline-flex;align-self:auto;justify-self:auto;grid-column:auto}
.pt-main .btn:disabled{opacity:.55;cursor:default}

/* The portal's own bar, under the site header */
.pt-bar{border-bottom:1px solid var(--line);background:var(--surface)}
.pt-bar-in{display:flex;align-items:center;gap:20px;min-height:48px;font-size:var(--fs-s)}
.pt-bar a{color:var(--ink);text-decoration:none;font-weight:600}
.pt-bar a:hover{text-decoration:underline}
.pt-bar nav{display:flex;gap:18px}
.pt-home{margin-right:8px}
.pt-who{margin-left:auto;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:28ch}
.pt-out{background:none;border:0;padding:6px 0;color:var(--ink);font:inherit;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}

/* Sign in */
.pt-signin{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:56px;align-items:start;padding-top:16px}
.pt-signin h1{font-size:var(--fs-d);line-height:1.05;margin-bottom:16px}
.pt-points{list-style:none;padding:0;margin:0 0 20px;display:grid;gap:12px}
.pt-points li{padding-left:16px;border-left:3px solid var(--accent);color:var(--ink-2)}
.pt-points b{color:var(--ink)}
.pt-form{display:grid;gap:8px}
.pt-form label,.pt-lbl{font-weight:600;font-size:var(--fs-s);margin-top:12px;display:block}
.pt-form input,.pt-sum input[type=text],.pt-sum textarea,.pt-askf input{width:100%;min-height:46px;padding:10px 12px;border:1.5px solid var(--line);border-radius:4px;background:var(--paper);color:var(--ink);font:inherit}
.pt-sum textarea{min-height:0;resize:vertical}
.pt-form input:focus,.pt-sum input:focus,.pt-sum textarea:focus,.pt-askf input:focus{outline:2px solid var(--focus);outline-offset:1px;border-color:var(--focus)}
.pt-form .btn{width:100%;margin-top:6px}
.pt-msg{min-height:1.4em;margin:4px 0 0;font-size:var(--fs-s);color:var(--ink-2)}
.pt-err{background:var(--amber-wash,#FDF6E6);border:1px solid var(--amber-line,#E0A534);padding:10px 12px;border-radius:4px;font-size:var(--fs-s)}
.pt-ok{background:var(--surface);border-left:3px solid var(--accent);padding:12px 16px;margin:0 0 20px}
.pt-or{display:flex;align-items:center;gap:12px;margin:18px 0;color:var(--ink-2);font-size:var(--fs-s)}
.pt-or::before,.pt-or::after{content:"";flex:1;border-top:1px solid var(--line)}
.pt-google{width:100%;gap:10px}

/* Home: the AI bar and the files */
.pt-ask{margin-bottom:40px}
.pt-askf{display:flex;gap:10px;max-width:880px}
.pt-askf input{flex:1;min-height:52px;font-size:var(--fs-b);background:var(--surface)}
.pt-askf .btn{min-height:52px}
.pt-eg{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0 0;font-size:var(--fs-s);color:var(--ink-2)}
.pt-chip{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 12px;font:inherit;cursor:pointer}
.pt-chip:hover{border-color:var(--ink)}
.pt-ans{margin:20px 0 0;max-width:880px}
.pt-ans figcaption{margin-bottom:12px}
.pt-locked .pt-ftitle{margin:8px 0 0}
.pt-sh{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
.pt-sh h1,.pt-sh h2{margin:0}
.pt-files{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:6px;font-size:var(--fs-s)}
.pt-files th,.pt-files td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top}
.pt-files thead th{font-weight:600;color:var(--ink-2);background:var(--tone)}
.pt-files tbody th{font-weight:400}
.pt-files .num{text-align:right;display:table-cell;min-width:0}
.pt-ft{display:block;font-weight:600;font-size:15px;color:var(--ink)}
.pt-fd{display:block;color:var(--ink-2);margin-top:2px}
.pt-act{text-align:right;white-space:nowrap}
.pt-act .btn+.btn{margin-left:6px}
.pt-act .btn span{font-weight:400;opacity:.85}
.pt-st{display:inline-block;font-weight:600}
.pt-st-ready{color:var(--accent)}
.pt-st-failed,.pt-st-rejected{color:var(--rep)}
.pt-st-unpaid,.pt-st-review{color:var(--ink)}
.pt-empty{background:var(--surface);border:1px dashed var(--line);border-radius:6px;padding:32px;text-align:center}
.pt-empty p{margin:0 0 12px;color:var(--ink-2)}
.pt-purpose{max-width:32ch;color:var(--ink-2)}

/* The builder */
.pt-builder{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:32px;align-items:start}
.pt-sum{position:sticky;top:16px}
.pt-fs{border:0;border-top:1px solid var(--line);margin:0;padding:18px 0 20px}
.pt-fs legend{font-weight:600;font-size:var(--fs-b);padding:0 0 8px;float:left;width:100%}
.pt-fs legend+*{clear:both}
.pt-hint{clear:both;margin:0 0 10px;font-size:var(--fs-s);color:var(--ink-2)}
.pt-opts{display:flex;flex-wrap:wrap;gap:8px;clear:both}
.pt-many{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.pt-opt{position:relative;display:inline-flex}
.pt-opt input{position:absolute;opacity:0;inset:0;cursor:pointer;margin:0}
.pt-opt span{display:block;width:100%;padding:8px 12px;border:1.5px solid var(--line);border-radius:4px;background:var(--surface);font-size:var(--fs-s);cursor:pointer;line-height:1.3}
.pt-opt input:checked+span{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface));font-weight:600}
.pt-opt input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}
.pt-opt:hover span{border-color:var(--ink-2)}
.pt-all{margin:10px 0 0;font-size:var(--fs-s)}
.pt-link{background:none;border:0;padding:0;margin-right:10px;color:var(--ink);font:inherit;text-decoration:underline;cursor:pointer}
.pt-src{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;clear:both}
.pt-srcc{position:relative;display:block}
.pt-srcc input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.pt-srcc>span{display:block;height:100%;padding:14px;border:1.5px solid var(--line);border-radius:6px;background:var(--surface);cursor:pointer}
.pt-srcc b{display:block;margin-bottom:4px}
.pt-srcc span span{font-size:var(--fs-s);color:var(--ink-2)}
.pt-srcc input:checked+span{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.pt-srcc input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}
.pt-ftitle{font-weight:600;margin:0 0 12px}
.pt-dl{display:grid;gap:6px;margin:0 0 14px;font-size:var(--fs-s)}
.pt-dl div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:6px}
.pt-dl dt{color:var(--ink-2)}
.pt-dl dd{margin:0;font-weight:600;text-align:right}
.pt-note{font-size:var(--fs-s);border-left:3px solid var(--amber-line,#E0A534);padding:4px 0 4px 10px;margin:0 0 12px}
.pt-chk{display:grid;grid-template-columns:18px 1fr;gap:10px;align-items:start;font-size:var(--fs-s);margin:14px 0 0;font-weight:400}
.pt-chk input{width:18px;height:18px;min-height:0;margin:2px 0 0;padding:0;accent-color:var(--accent)}
.pt-go{width:100%;margin-top:16px!important}

/* Charts */
.pt-chart svg{display:block;width:100%;height:auto;overflow:visible}
.pt-plot{position:relative}
.pt-grid{stroke:var(--line);stroke-width:1}
.pt-base{stroke:var(--ink-2);stroke-width:1}
.pt-ax,.pt-cat,.pt-val{font-size:12px;fill:var(--ink-2);font-variant-numeric:tabular-nums}
.pt-cat{fill:var(--ink)}
.pt-line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.pt-end{stroke:var(--surface);stroke-width:2}
.pt-hit{fill:transparent}
.pt-bar:hover{filter:brightness(.9)}
.pt-legend{display:flex;flex-wrap:wrap;gap:14px;list-style:none;padding:0;margin:0 0 10px;font-size:var(--fs-s)}
.pt-legend i,.pt-tip i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}
.pt-tip{position:absolute;pointer-events:none;background:var(--surface);border:1px solid var(--line);box-shadow:0 4px 14px rgba(0,0,0,.12);border-radius:4px;padding:8px 10px;font-size:13px;min-width:120px;z-index:5}
.pt-tip b{display:block;margin-bottom:4px}
.pt-tip span{display:block;font-variant-numeric:tabular-nums}
.pt-tbl{margin-top:14px;font-size:var(--fs-s)}
.pt-tbl summary{cursor:pointer;font-weight:600}
.pt-tbl table{border-collapse:collapse;margin-top:8px;min-width:50%}
.pt-tbl th,.pt-tbl td{padding:6px 10px;border-bottom:1px solid var(--line);text-align:left}
.pt-tbl .num{text-align:right;display:table-cell}

@media (max-width:900px){
  .pt-signin,.pt-builder{grid-template-columns:1fr;gap:28px}
  .pt-sum{position:static}
  .pt-src{grid-template-columns:1fr}
}
@media (max-width:640px){
  .pt-main{padding-top:20px}
  .pt-askf{flex-direction:column}
  .pt-bar-in{gap:12px;flex-wrap:wrap;padding-top:6px;padding-bottom:6px}
  .pt-who{display:none}
  .pt-out{margin-left:auto}
  .pt-files thead{display:none}
  .pt-files tr{display:grid;grid-template-columns:1fr auto;border-bottom:1px solid var(--line)}
  .pt-files th,.pt-files td{border:0;padding:8px 12px}
  .pt-files tbody th{grid-column:1/-1;padding-top:12px}
  .pt-files .num{text-align:left}
  .pt-act{grid-column:1/-1;text-align:left;padding-bottom:12px}
  .pt-card{padding:18px}
}
