/* Parent portal — reuses tokens from site.css (:root vars, .btn, .eyebrow, .bar, .foot) */
.portal{padding-block:40px 80px;}
.portal h1{font-family:var(--display);font-weight:800;font-size:clamp(30px,4.5vw,52px);line-height:1;letter-spacing:-.03em;margin:0;}
.portal h2{font-family:var(--display);font-weight:800;font-size:22px;margin:0 0 14px;}
.pcard{background:var(--paper);border-radius:20px;padding:22px;box-shadow:var(--plastic);margin:10px;display:flex;flex-direction:column;gap:12px;min-width:0;}
.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
@media (max-width:900px){.pgrid{grid-template-columns:1fr;}}
.authcard{max-width:440px;margin:30px auto;}
.phead{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:flex-end;justify-content:space-between;margin-bottom:20px;}
.prow{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.portal label{display:flex;flex-direction:column;gap:6px;font:600 14px var(--body);color:var(--ink);}
.portal input,.portal select,.portal textarea{font:500 15px var(--body);color:var(--ink);background:#fff;border:0;border-radius:10px;padding:11px 12px;box-shadow:0 0 0 2px var(--ink);width:100%;box-sizing:border-box;}
.portal textarea{resize:vertical;}
.portal input:focus-visible,.portal select:focus-visible,.portal textarea:focus-visible,.pbtn:focus-visible,.ptabs button:focus-visible{outline:3px dashed var(--violet);outline-offset:3px;}
.portal .chk{flex-direction:row;align-items:center;gap:8px;font-weight:500;font-size:13px;}
.portal .chk input{width:auto;}
.pbtn{font:600 14px/1 var(--body);border:0;background:var(--desk);color:var(--ink);border-radius:999px;padding:11px 15px;cursor:pointer;}
.pbtn:hover{background:var(--line);} .pbtn.danger{color:#B3261E;}
.ptabs{display:inline-flex;background:var(--desk);border-radius:999px;padding:4px;gap:4px;margin:0 10px 8px;}
.ptabs button{font:600 14px/1 var(--body);border:0;background:none;padding:10px 16px;border-radius:999px;cursor:pointer;color:var(--ink-soft);}
.ptabs button[aria-pressed="true"]{background:var(--ink);color:#fff;}
.perr{color:#B3261E;font-size:14px;margin:0;min-height:1em;}
.oth{display:grid;gap:8px;margin-top:-4px;} .oth[hidden]{display:none;}
.chips{display:flex;flex-wrap:wrap;gap:6px;} .chip{font-size:12px;background:var(--lilac-hi);border-radius:999px;padding:4px 6px 4px 10px;display:inline-flex;gap:6px;align-items:center;}
.chip button{border:0;background:none;cursor:pointer;font-size:14px;line-height:1;color:var(--ink);}
.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;}
.tw{overflow-x:auto;} .portal table{border-collapse:collapse;width:100%;font-size:14px;}
.portal th{font:400 11px var(--pixel);letter-spacing:.08em;text-transform:uppercase;text-align:left;color:var(--ink-faint);padding:8px;border-bottom:2px dashed var(--line);}
.portal td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:top;color:var(--ink-soft);}
.bars{display:grid;gap:8px;} .bars div{display:grid;grid-template-columns:minmax(90px,38%) 1fr 24px;gap:8px;align-items:center;font-size:13px;color:var(--ink);}
.bars i{display:block;height:12px;background:var(--violet);border-radius:3px;}
.chart{width:100%;height:auto;} .chart text{font:10px var(--body);fill:var(--ink-faint);}
.subj{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin:0 10px;}
.scard{background:var(--c);border-radius:16px;padding:16px;box-shadow:0 0 0 3px var(--ink),6px 8px 0 rgba(43,37,51,.15);}
.scard span{font:400 11px var(--pixel);background:#fff;padding:4px 7px 3px;box-shadow:0 0 0 2px var(--ink);}
.scard b{display:block;font-family:var(--display);font-weight:800;font-size:38px;margin:10px 0 2px;}
.scard small{font-size:13px;color:var(--ink);display:block;} .scard svg{width:100%;height:44px;margin-top:8px;}
.empty-note{color:var(--ink-faint);font-size:14px;margin:0;}
.portal [hidden]{display:none!important;}
