/* Portal is a dark application, including its legacy task and account views. */
.portal-app{--bg:#071321;--gold:#D9BC7E;--muted:#B9C5D2;--portal-panel:#0E2034;--portal-line:#D9BC7E33;background:var(--bg);color:#F4F1E8;font-family:ShopThai,system-ui,sans-serif;color-scheme:dark}
.portal-app .portal-header{display:block;background:#0B1B2B;border-bottom:1px solid var(--portal-line);padding:22px max(20px,calc((100vw - 1060px)/2));}
.portal-headbar{display:flex;align-items:center;justify-content:space-between;gap:20px;min-width:0}
.portal-app .portal-brand{display:flex;align-items:center;gap:14px;min-width:0;flex:1;text-decoration:none}
.portal-app .portal-brand img{width:52px;height:52px;flex:0 0 52px;border:1px solid #D9BC7E66;box-shadow:0 0 0 5px #D9BC7E08}
.portal-app .portal-brand strong{display:block;font-size:22px;color:#D9BC7E;line-height:1.5;white-space:nowrap}
.portal-app .portal-brand small{display:block;color:#B9C5D2;font-size:13px;margin-top:1px}
.portal-app #logout{flex:0 0 auto;white-space:nowrap;min-height:46px;padding:10px 16px;color:#F4F1E8;background:#142C42;border:1px solid #D9BC7E55;font-size:14px}
.portal-app .portal-nav{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:22px 0 0;padding-top:16px;border-top:1px solid #D9BC7E22}
.portal-app .portal-nav a{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 15px;background:#11263A;border:1px solid #D9BC7E22;border-radius:10px;color:#D8E1E9;text-decoration:none;white-space:nowrap;font-size:14px;font-weight:600}
.portal-app .portal-nav a:hover{color:#D9BC7E;border-color:#D9BC7E88}
.portal-app main{max-width:1100px;margin:36px auto;padding:0 20px}
.portal-app h1{color:#F4F1E8;font-size:clamp(28px,4vw,42px);font-weight:750;line-height:1.4;letter-spacing:-.025em;margin:10px 0 14px;overflow-wrap:anywhere}
.portal-app h2,.portal-app h3{color:#F4F1E8;line-height:1.5}
.portal-app #intro{color:#B9C5D2;max-width:760px;font-size:16px;line-height:1.9}
.portal-app .eyebrow{color:#D9BC7E;font-size:13px;letter-spacing:.04em;margin-bottom:8px}
.portal-app .notice{background:#10273B;color:#D8E1E9;border:1px solid var(--portal-line);border-left:3px solid #D9BC7E;border-radius:12px;padding:16px 18px;line-height:1.8;font-size:14px}
.portal-app .notice a{color:#EDD5A4;text-underline-offset:4px;font-weight:700}
.portal-app .badge{background:#142C42;color:#E8D5AA;border:1px solid var(--portal-line);padding:10px 14px;font-size:14px;overflow-wrap:anywhere;max-width:100%}
.portal-app section,.portal-app article,.portal-app details{background:#0E2034;color:#F4F1E8;border:1px solid var(--portal-line)}
.portal-app #dashboard{background:transparent;border:0}
.portal-app #tabs{gap:12px;margin:24px 0}
.portal-app #tabs>button{background:linear-gradient(145deg,#142D44,#0D2033);color:#F4F1E8;border:1px solid #D9BC7E3D;border-radius:15px;box-shadow:0 8px 24px #0002;font-weight:650;min-height:82px;line-height:1.5;padding:18px}
.portal-app #tabs>button[aria-pressed=true]{background:#D9BC7E;color:#071321;border-color:#ECD7AA;box-shadow:0 0 0 1px #ECD7AA33}
.portal-app button,.portal-app .sign-in{background:#D9BC7E;color:#071321;border:1px solid #E6CCA0;border-radius:11px;font-weight:700;min-height:48px}
.portal-app button.secondary,.portal-app .owner-actions button{background:#142C42;color:#F4F1E8;border-color:#D9BC7E44}
.portal-app .owner-actions button[aria-pressed=true]{background:#D9BC7E;color:#071321}
.portal-app input,.portal-app select,.portal-app textarea{background:#081929;color:#F4F1E8;border:1px solid #8DA1B266;border-radius:10px;min-width:0}
.portal-app input::placeholder,.portal-app textarea::placeholder{color:#9CAFC1;opacity:1}
.portal-app input[type=checkbox],.portal-app input[type=radio]{accent-color:#D9BC7E}
.portal-app label{color:#D2DDE7}
.portal-app #feedback{background:#122B40;color:#F4F1E8;border-color:#D9BC7E;border-radius:10px;overflow-wrap:anywhere}
.portal-app .task-card{border-left:3px solid #D9BC7E}
.portal-app .task-category{background:#17344D;color:#E3EAF0}
.portal-app .task-status{background:#3B3423;color:#F3DDAE}
.portal-app .overdue{background:#442C30;color:#FFD0C7}
.portal-app .task-text{background:#081929;color:#D7E1E9;border:1px solid #D9BC7E22}
.portal-app .task-card>button{background:#D9BC7E;color:#071321}
.portal-app .task-card details{background:#10273B;border-color:var(--portal-line)}
.portal-app .availability{background:#0B1B2B;color:#B9C5D2;border-color:#8DA1B255}
.portal-app .calendar-picker{background:#10273B}
.portal-app a:not(.portal-brand):not(.sign-in){color:#E6CF9F}
.portal-app .file-link{color:#E6CF9F;text-underline-offset:4px}
.portal-app .muted,.portal-app footer{color:#B9C5D2}
.portal-app footer{max-width:1100px;border-top:1px solid var(--portal-line)}
.portal-app :focus-visible{outline:3px solid #EDD5A4!important;outline-offset:4px!important}
.portal-app [hidden]{display:none!important}
@media(max-width:600px){
 .portal-app .portal-header{padding:18px 16px 16px}
 .portal-headbar{gap:12px}
 .portal-app .portal-brand{gap:11px}
 .portal-app .portal-brand strong{font-size:18px}
 .portal-app .portal-brand small{font-size:11px;display:block}
 .portal-app .portal-brand img{width:44px;height:44px;flex-basis:44px}
 .portal-app #logout{padding:9px 11px;font-size:12px}
 .portal-app .portal-nav{gap:8px;margin-top:18px;padding-top:14px;justify-content:flex-start}
 .portal-app .portal-nav a{font-size:13px;padding:9px 12px;min-height:44px}
 .portal-app main{margin-top:28px;padding:0 16px}
 .portal-app #intro{font-size:15px}
 .portal-app #tabs{gap:10px}
 .portal-app #tabs>button{padding:16px 12px;min-height:86px;font-size:15px}
 .portal-app .notice{padding:14px 16px;font-size:13px}
 .portal-app .owner-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:350px){.portal-app .portal-brand strong{font-size:16px}.portal-app .portal-brand small{font-size:10px}.portal-app #logout{padding:8px;font-size:11px}}
