/* ESRD portal styles, layered on site.css */
.portal{min-height:60vh;padding:48px 0 84px}
.portal h1{font-size:clamp(30px,4vw,44px);margin:12px 0 18px}
.portal h2{font-size:26px;margin:36px 0 12px}
.portal h3{font-size:20px;margin:26px 0 10px}
.portal p{margin-bottom:14px}
.portal .lede{color:var(--gray);font-size:17px;max-width:62ch}
.alert{border:1px solid var(--line);background:#fff;padding:14px 18px;margin:0 0 22px;font-size:15px}
.alert.ok{border-left:4px solid var(--gold)}
.alert.err{border-left:4px solid #9a3c2c}
.card{border:1px solid var(--line);background:#fff;padding:26px 26px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-top:24px}
.mod{border:1px solid var(--line);background:#fff;padding:24px;text-decoration:none;color:inherit;display:block;transition:.2s}
.mod:hover{border-color:var(--gold)}
.mod .n{font-family:var(--serif);font-style:italic;color:var(--gold);font-size:24px}
.mod h3{margin:6px 0 8px;font-size:20px}
.mod p{color:var(--gray);font-size:14.5px;margin:0}
.lesson-list{list-style:none;border-top:1px solid var(--line);margin-top:18px}
.lesson-list li{border-bottom:1px solid var(--line)}
.lesson-list a{display:grid;grid-template-columns:64px 1fr auto;gap:16px;padding:16px 4px;text-decoration:none;color:inherit;align-items:center}
.lesson-list a:hover{background:#fff}
.lesson-list .code{font-family:var(--serif);font-style:italic;color:var(--gold-deep)}
.lesson-list .meta{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--gray-lt)}
.content{max-width:760px}
.content h2{font-size:24px;margin:30px 0 10px}
.content h3{font-size:19px;margin:24px 0 8px}
.content ul,.content ol{padding-left:22px;margin-bottom:14px}
.content li{margin-bottom:6px}
.content blockquote{border-left:3px solid var(--gold);padding:4px 16px;color:var(--gray);margin:14px 0}
.content code{font-family:Menlo,Consolas,monospace;font-size:13.5px;background:var(--ivory-deep);padding:1px 5px}
.content pre{background:var(--ink);color:#D9D4C9;padding:16px;overflow:auto;font-size:13.5px;line-height:1.6;margin-bottom:16px;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere}
.prewrap{position:relative;margin-bottom:16px}
.prewrap pre{margin-bottom:0;padding-top:46px}
.copybtn{position:absolute;top:8px;right:8px;font-family:inherit;font-size:12px;letter-spacing:.08em;text-transform:uppercase;background:var(--gold);color:var(--ink);border:0;padding:7px 14px;cursor:pointer}
.copybtn:hover{opacity:.85}
.content h4{font-size:17px;margin:20px 0 8px}
.content pre code{background:none;color:inherit;padding:0}
.tbl{overflow:auto;margin:14px 0 18px}
table.t,.tbl table{width:100%;border-collapse:collapse;font-size:14.5px;background:#fff}
table.t th,table.t td,.tbl th,.tbl td{text-align:left;padding:10px 10px;border-bottom:1px solid var(--line);vertical-align:top}
table.t th,.tbl th{font-family:var(--sans);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep)}
.video{position:relative;padding-top:56.25%;background:var(--ink);margin:18px 0 24px}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.dl{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0 18px}
.dl a{text-decoration:none;border:1px solid var(--ink);padding:9px 14px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.dl a:hover{background:var(--ink);color:var(--ivory)}
form.f{max-width:520px}
form.f label{display:block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep);margin:16px 0 6px;font-weight:600}
form.f input[type=text],form.f input[type=email],form.f input[type=password],form.f input[type=date],form.f input[type=url],form.f input[type=tel],form.f select,form.f textarea{width:100%;padding:12px 14px;border:1px solid var(--line);background:#fff;font:inherit;font-size:15.5px}
form.f textarea{min-height:160px;resize:vertical}
form.f .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
form.f .actions{margin-top:22px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.btn.sm{padding:10px 18px;font-size:11.5px}
button.btn{cursor:pointer;background:var(--ink);color:var(--ivory);font-family:inherit}
button.btn.ghost{background:transparent;color:var(--ink)}
button.btn.ghost:hover{background:var(--ink);color:var(--ivory)}
button.link{background:none;border:0;color:var(--gold-deep);cursor:pointer;font:inherit;font-size:13px;text-decoration:underline;padding:0}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:22px 0 18px}
.tabs a{text-decoration:none;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;padding:8px 12px;border:1px solid var(--line);color:var(--ink-soft);background:#fff}
.tabs a.on,.tabs a:hover{border-color:var(--ink);background:var(--ink);color:var(--ivory)}
.threads{list-style:none;border-top:1px solid var(--line)}
.threads li{border-bottom:1px solid var(--line);padding:16px 4px;display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center}
.threads a.t{text-decoration:none;color:var(--ink);font-family:var(--serif);font-size:20px}
.threads a.t:hover{color:var(--gold-deep)}
.threads .meta{font-size:12.5px;color:var(--gray-lt);margin-top:4px}
.pin{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-deep);border:1px solid var(--line);padding:2px 8px;margin-right:8px;background:var(--ivory)}
.post{border:1px solid var(--line);background:#fff;padding:20px 22px;margin-bottom:14px}
.post .who{font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:10px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.post .who .when{color:var(--gray-lt);text-transform:none;letter-spacing:0}
.post .body p{margin-bottom:10px}
.post.held{border-left:4px solid #9a3c2c}
.kv{display:grid;grid-template-columns:200px 1fr;gap:10px 18px;font-size:15px}
.kv dt{color:var(--gold-deep);font-size:12px;letter-spacing:.14em;text-transform:uppercase;padding-top:3px}
.kv dd{margin:0}
.muted{color:var(--gray-lt);font-size:13.5px}
.statusline{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--gray-lt)}
@media(max-width:800px){.grid2{grid-template-columns:1fr}.kv{grid-template-columns:1fr}form.f .row{grid-template-columns:1fr}.lesson-list a{grid-template-columns:52px 1fr}.lesson-list .meta{grid-column:2}}
