/* Cast portal: phone-first, thumb-reachable tabs. Builds on hiring.css. */
body.portal{background:var(--manila);padding-bottom:calc(76px + env(safe-area-inset-bottom))}
.p-top{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--ink);color:var(--paper);position:sticky;top:0;z-index:20}
.p-brand{color:#fff;text-decoration:none;font-weight:850;font-variation-settings:'wdth' 75;font-size:1.15rem}
.p-brand span{font-weight:500;color:#b9b0a0;font-size:.85rem;margin-left:6px;font-variation-settings:'wdth' 100}
.p-me{width:36px;height:36px;border-radius:50%;background:var(--stamp);color:#fff;display:grid;place-items:center;text-decoration:none;font-weight:800;font-size:.85rem}
.p-main{width:min(640px,100% - 24px);margin:0 auto;padding:18px 0 24px}
.p-hello{font-size:2.2rem;margin:.2em 0 .1em}
.p-sub{margin-bottom:18px}
.muted{color:var(--carbon)}
.small{font-size:.88rem}
.p-card{background:var(--paper);padding:18px 18px 20px;margin-bottom:14px;border-radius:4px}
.p-card.flush{padding:0}
.p-card h2{font-size:1.45rem}
.p-card-head{display:flex;justify-content:space-between;align-items:baseline}
.p-card-head a{font-weight:700}
.p-eyebrow{font-weight:700;color:var(--carbon);margin-bottom:.3em}
.p-empty{padding:20px;color:var(--carbon)}
.p-tonight{border-left:6px solid var(--carbon)}
.p-tonight.due{border-left-color:var(--stamp)}
.p-tonight.in{border-left-color:var(--ok);background:#eef5ef}
.p-tonight.done{border-left-color:var(--ink)}
.p-tonight .h-btn{margin-top:6px}
.p-checklist{list-style:none;margin:0;padding:0;counter-reset:c}
.p-checklist li{counter-increment:c;display:flex;justify-content:space-between;gap:12px;padding:12px 0 12px 40px;border-bottom:1px solid var(--line);position:relative;align-items:center}
.p-checklist li:last-child{border-bottom:0}
.p-checklist li::before{content:counter(c);position:absolute;left:0;width:28px;height:28px;border-radius:50%;border:2px solid var(--ink);display:grid;place-items:center;font-weight:800;font-size:.85rem}
.p-checklist li.done::before{content:'✓';background:var(--ok);border-color:var(--ok);color:#fff}
.p-checklist li>:first-child{font-weight:700;color:var(--ink)}
.p-checklist li>:last-child{color:var(--carbon);font-size:.9rem;text-align:right}
.p-nights{list-style:none;margin:0;padding:0}
.p-nights li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}
.p-nights li:last-child{border-bottom:0}
.p-nights span{color:var(--carbon);text-align:right}
.p-night-list{list-style:none;margin:0;padding:0}
.p-night-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line)}
.p-night-list li>div{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.p-night-list li.st-scheduled{background:#eef5ef}
.p-night-list form{margin:0}
.p-tag{display:inline-block;font-size:.75rem;font-weight:700;background:var(--ink);color:var(--paper);padding:1px 7px;border-radius:3px;vertical-align:2px}
.p-status{display:inline-block;font-size:.85rem;font-weight:700;color:var(--warn,#9a6200)}
.p-status.ok{color:var(--ok)}
.p-status.off{color:var(--carbon)}
.p-status.todo{color:var(--stamp)}
.p-doc-list{list-style:none;margin:0;padding:0}
.p-doc-list a{display:flex;flex-direction:column;gap:2px;padding:16px 18px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.p-doc-list li.done a{opacity:.75}
.p-ann{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}
.p-ann:first-of-type{border-top:0;margin-top:0;padding-top:0}
.p-ann.pinned h3::before{content:'📌 '}
.p-form{display:grid;gap:14px}
.p-form label{display:grid;gap:5px;font-weight:600}
.p-auth{margin-top:24px}
.p-code{font-size:2.4rem!important;text-align:center;letter-spacing:.3em;text-transform:uppercase;font-weight:800;padding:.4em!important}
.p-code-form .h-btn{width:100%}
.p-tabs{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);background:var(--ink);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
.p-tabs a{display:flex;flex-direction:column;align-items:center;gap:1px;color:#b9b0a0;text-decoration:none;font-size:.72rem;font-weight:600;padding:4px 0;border-radius:6px}
.p-tabs a .ic{font-size:1.25rem;line-height:1.1}
.p-tabs a.on{color:#fff}
.p-tabs a.p-tab-main{background:var(--stamp);color:#fff;margin:0 4px}
.status-box{margin-top:14px}
.sign-form label.inline{display:flex;gap:10px;align-items:flex-start;font-weight:500}
.linkish{font-size:1rem}
