/* PSB-002: appearance tokens are supplied by SG_Appearance and scoped to plugin surfaces. */
.sg-portal{color:var(--sg-text);font:inherit;font-size:16px;line-height:1.55;max-width:1240px;margin:0 auto;padding:24px 24px 72px}.sg-portal *{box-sizing:border-box}.sg-portal [hidden]{display:none!important}.sg-portal h1,.sg-portal h2,.sg-portal h3,.sg-portal p{color:inherit}.sg-portal h1{font-family:inherit;font-size:clamp(42px,5vw,70px);line-height:1.02;font-weight:800;letter-spacing:-2.5px;margin:14px 0 20px}.sg-portal h1 em{color:var(--sg-accent);font-style:normal}.sg-portal h2{font-size:29px;letter-spacing:-.8px;line-height:1.15;margin:8px 0 20px}.sg-portal h3{font-size:21px;margin:12px 0}.sg-portal p{margin:0 0 16px}.sg-portal a{color:var(--sg-primary)}.sg-portal-hero{background:var(--sg-primary);border-radius:3px;color:var(--sg-on-primary);min-height:340px;display:grid;grid-template-columns:1.4fr 1fr;align-items:center;padding:48px 54px;gap:40px;overflow:hidden}.sg-portal-hero p{color:var(--sg-on-primary);max-width:520px;font-size:17px}.sg-eyebrow{font-size:11px;letter-spacing:2px;font-weight:800;text-transform:uppercase;color:var(--sg-primary)}.sg-portal-hero .sg-eyebrow{color:var(--sg-accent)}.sg-hero-mark{border:1px solid var(--sg-accent);border-radius:50%;width:252px;height:252px;justify-self:center;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.sg-hero-mark:after{content:"";position:absolute;inset:12px;border:1px solid var(--sg-accent);border-radius:50%}.sg-hero-mark span{font-size:78px;letter-spacing:-6px;font-weight:900;line-height:1}.sg-hero-mark small{font-size:10px;letter-spacing:2px;margin-top:8px}.sg-hero-mark i{display:block;width:64px;height:4px;background:var(--sg-accent);margin:18px}.sg-hero-mark b{font-size:11px;letter-spacing:1px;color:var(--sg-accent)}.sg-local-banner{padding:12px 18px;background:var(--sg-warning-background);color:var(--sg-warning);font-size:12px;line-height:1.6;border-bottom:1px solid var(--sg-warning)}.sg-local-banner strong{margin-right:10px;letter-spacing:.8px}.sg-portal-toolbar{display:flex;align-items:center;justify-content:space-between;margin:28px 0 14px}.sg-portal-toolbar p{margin:0}.sg-portal-toolbar a{font-size:13px;text-decoration:none}.sg-tabs{display:flex;gap:28px;border-bottom:1px solid var(--sg-border);margin-bottom:28px;overflow-x:auto}.sg-tabs button{white-space:nowrap;border:0;border-bottom:3px solid transparent;background:none;color:var(--sg-muted);padding:14px 0;font-weight:700;font-size:13px;font-family:inherit;cursor:pointer}.sg-tabs button.is-active{color:var(--sg-primary);border-bottom-color:var(--sg-primary)}.sg-card{background:var(--sg-panel);border:1px solid var(--sg-border);border-radius:3px;padding:26px}.sg-auth{margin-top:28px}.sg-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--sg-border);border:1px solid var(--sg-border);margin:0 0 26px}.sg-stats>div{background:var(--sg-panel);padding:20px 24px;display:flex;flex-direction:column}.sg-stats strong{font-size:32px;line-height:1.2;letter-spacing:-1px}.sg-stats span{font-size:12px;color:var(--sg-muted);margin-top:4px}.sg-overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.sg-next{background:var(--sg-info-background);border:0;padding:32px}.sg-next h2{font-size:34px;margin:15px 0}.sg-next p{color:var(--sg-muted);max-width:400px}.sg-button,.sg-portal .sg-button{display:inline-flex;justify-content:center;align-items:center;gap:24px;background:var(--sg-button);border:1px solid var(--sg-button);border-radius:2px;color:var(--sg-button-text);font-weight:700;font-size:13px;font-family:inherit;line-height:1.4;padding:13px 20px;text-decoration:none;cursor:pointer;min-height:45px}.sg-button:hover{background:var(--sg-button);border-color:var(--sg-button);color:var(--sg-button-text);filter:brightness(.92)}.sg-button.secondary{background:var(--sg-panel);color:var(--sg-link);border-color:var(--sg-border)}.sg-button.danger{background:var(--sg-panel);color:var(--sg-error);border-color:var(--sg-error)}.sg-button:disabled{opacity:.5;cursor:wait}.sg-steps{list-style:none;padding:0;margin:12px 0 0}.sg-steps li{display:flex;gap:18px;padding:16px 0;border-bottom:1px solid var(--sg-border)}.sg-steps li:last-child{border:0;padding-bottom:0}.sg-steps li>span{font-size:12px;font-weight:800;color:var(--sg-link);padding-top:4px}.sg-steps p{font-size:13px;color:var(--sg-muted);margin:3px 0 0}.sg-steps strong{font-size:15px}.sg-section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:32px 0 18px}.sg-section-heading h2{margin:5px 0}.sg-text-button{border:0;background:none;color:var(--sg-primary);font-weight:700;font-size:13px;font-family:inherit;cursor:pointer;padding:6px 0}.sg-subtitle{max-width:800px;color:var(--sg-muted)!important;font-size:14px;margin-bottom:24px!important}.sg-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.sg-grid .sg-card{min-width:0}.sg-player-avatar{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-size:20px;font-weight:800;color:var(--sg-primary);background:var(--sg-info-background);margin-bottom:20px}.sg-player-meta{font-size:13px;color:var(--sg-muted);margin-bottom:18px}.sg-pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--sg-border);padding:5px 9px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--sg-success);background:var(--sg-success-background);border-radius:2px}.sg-pill.cancelled,.sg-pill.expired,.sg-pill.rescheduled{background:var(--sg-table-stripe);color:var(--sg-muted);border-color:var(--sg-border)}.sg-pill.reserved{background:var(--sg-warning-background);color:var(--sg-warning);border-color:var(--sg-warning)}.sg-session-date{font-size:13px;letter-spacing:.4px;font-weight:800;color:var(--sg-link);margin-bottom:14px}.sg-session-info{font-size:13px;color:var(--sg-muted);display:flex;flex-direction:column;gap:6px;margin-bottom:22px}.sg-capacity{font-size:12px;font-weight:700;color:var(--sg-primary);margin-bottom:16px}.sg-price{font-size:16px;font-weight:800}.sg-price small{font-size:11px;color:var(--sg-muted);font-weight:400;display:block}.sg-booking-row{display:grid;grid-template-columns:1fr 1.5fr auto;align-items:center;gap:22px;background:var(--sg-panel);border:1px solid var(--sg-border);border-bottom:0;padding:22px 24px}.sg-booking-row:last-child{border-bottom:1px solid var(--sg-border)}.sg-booking-row h3{margin:5px 0;font-size:17px}.sg-booking-row p{margin:0;font-size:12px;color:var(--sg-muted)}.sg-booking-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.sg-booking-actions .sg-button{font-size:11px;padding:10px 12px;min-height:38px}.sg-empty{padding:38px;text-align:center;background:var(--sg-panel);border:1px dashed var(--sg-border);color:var(--sg-muted);grid-column:1/-1}.sg-empty h3{color:var(--sg-text);margin:0 0 10px}.sg-notice{background:var(--sg-success-background);color:var(--sg-success);border:1px solid var(--sg-success);padding:14px 18px;margin-bottom:20px;font-size:14px}.sg-notice.error{background:var(--sg-error-background);border-color:var(--sg-error);color:var(--sg-error)}.sg-dialog{color:var(--sg-text);background:var(--sg-background);border:0;border-radius:3px;padding:36px;width:min(650px,calc(100vw - 32px));max-height:90vh;box-shadow:0 20px 80px color-mix(in srgb,var(--sg-text) 27%,transparent)}.sg-dialog::backdrop{background:color-mix(in srgb,var(--sg-text) 67%,transparent)}.sg-dialog-close{position:absolute;right:16px;top:12px;background:none;border:0;font-size:28px;cursor:pointer;color:var(--sg-text);line-height:1}.sg-dialog h2{font-weight:700;font-size:28px;line-height:1.1;font-family:inherit;margin:10px 0 24px}.sg-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.sg-field{display:flex;flex-direction:column;gap:5px;margin:0 0 17px}.sg-field label,.sg-field>span{font-size:12px;font-weight:700}.sg-field input,.sg-field select,.sg-field textarea{width:100%;border:1px solid var(--sg-border);background:var(--sg-panel);color:var(--sg-text);border-radius:2px;font-size:14px;font-family:inherit;padding:12px;min-height:43px}.sg-field textarea{resize:vertical}.sg-field small{font-size:11px;color:var(--sg-muted)}.sg-check{display:flex;gap:10px;align-items:flex-start;font-size:12px;line-height:1.5;margin:13px 0}.sg-check input{margin:4px 0 0;accent-color:var(--sg-primary)}.sg-check span{flex:1}.sg-dialog-actions{display:flex;gap:12px;margin-top:24px;justify-content:flex-end}.sg-dialog-error{color:var(--sg-error);font-size:13px;margin-top:15px}.sg-choose-player{display:flex;align-items:center;gap:12px;border:1px solid var(--sg-border);background:var(--sg-panel);padding:14px;margin:8px 0;cursor:pointer}.sg-choose-player strong{display:block;font-size:14px}.sg-choose-player small{color:var(--sg-muted);font-size:12px}.sg-choose-player input{accent-color:var(--sg-primary)}.sg-report-detail{font-size:14px}.sg-report-detail table{border-collapse:collapse;width:100%;font-size:12px;margin:20px 0}.sg-report-detail th,.sg-report-detail td{padding:10px;border:1px solid var(--sg-border);text-align:left}.sg-report-detail th{background:var(--sg-table-header);color:var(--sg-text)}.sg-report-detail pre{white-space:pre-wrap;background:var(--sg-panel);border:1px solid var(--sg-border);padding:16px;font-size:12px}.sg-dialog .sg-subtitle{font-size:13px}@media(max-width:900px){.sg-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sg-portal-hero{padding:36px}.sg-hero-mark{width:200px;height:200px}.sg-hero-mark span{font-size:65px}.sg-overview-grid{gap:16px}.sg-booking-row{grid-template-columns:1fr 1.4fr}.sg-booking-actions{grid-column:1/-1;justify-content:flex-start}}@media(max-width:620px){.sg-portal{padding:12px 14px 44px}.sg-portal-hero{padding:32px 24px;grid-template-columns:1fr;gap:18px;min-height:0}.sg-hero-mark{display:none}.sg-portal h1{font-size:46px}.sg-portal-hero p{font-size:14px}.sg-tabs{gap:22px;margin-top:10px}.sg-stats{grid-template-columns:1fr 1fr}.sg-stats>div{padding:18px}.sg-stats strong{font-size:27px}.sg-overview-grid,.sg-grid{grid-template-columns:1fr}.sg-section-heading{align-items:flex-start}.sg-section-heading h2{font-size:26px}.sg-price{font-size:14px;text-align:right}.sg-card{padding:22px}.sg-next{padding:26px}.sg-booking-row{grid-template-columns:1fr;gap:10px;padding:20px}.sg-dialog{padding:30px 22px}.sg-form-grid{grid-template-columns:1fr}.sg-portal-toolbar{font-size:13px}.sg-portal-toolbar a{font-size:11px}.sg-section-heading>.sg-button{font-size:11px;padding:11px}.sg-local-banner{font-size:10px}.sg-local-banner strong{display:block}.sg-dialog-actions{flex-wrap:wrap}}
@media print{html:has(.sg-report-detail),body:has(.sg-report-detail){height:auto!important;min-height:0!important;margin:0!important}body:has(.sg-report-detail) *:not(:has(.sg-report-detail)):not(.sg-report-detail):not(.sg-report-detail *){display:none!important}body:has(.sg-report-detail) *:has(.sg-report-detail){padding:0!important;margin:0!important;max-width:none!important;height:auto!important;min-height:0!important}body:has(.sg-report-detail) *{visibility:hidden!important}.sg-dialog,.sg-dialog *{visibility:visible!important}.sg-dialog{position:static!important;inset:auto!important;width:100%!important;max-width:none!important;max-height:none!important;overflow:visible!important;box-shadow:none!important;background:var(--sg-panel)!important;padding:20px!important}.sg-dialog .sg-dialog-actions,.sg-dialog-close{display:none!important}.sg-dialog::backdrop{display:none!important}.sg-report-detail table{break-inside:auto}.sg-report-detail tr{break-inside:avoid}.sg-report-detail th{color:var(--sg-text)!important;background:var(--sg-table-header)!important}}.sg-consent-history{padding-left:18px;font-size:12px}.sg-consent-history li{margin-bottom:12px}.sg-consent-history small{color:var(--sg-muted)}

/* PSB-001: compact readable tables, including future portal tables. */
.sg-portal table{border-collapse:collapse;line-height:1.35}.sg-portal table th,.sg-portal table td{padding:5px 8px;font-size:12px}.sg-portal table .sg-button{min-height:32px;padding:5px 9px;font-size:12px}.sg-portal table input,.sg-portal table select{min-height:32px;padding:4px 7px}@media(pointer:coarse){.sg-portal table .sg-button,.sg-portal table input,.sg-portal table select{min-height:44px}}

/* PSB-002: customer and report components share the same semantic palette. */
.sg-portal,.sg-dialog{background:var(--sg-background);color:var(--sg-text);accent-color:var(--sg-primary)}
.sg-portal a,.sg-dialog a{color:var(--sg-link)}
.sg-portal .sg-text-button,.sg-dialog .sg-text-button{color:var(--sg-link)}
.sg-portal :is(a,button,input,select,textarea,summary):focus-visible,.sg-dialog :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--sg-focus);outline-offset:3px}
.sg-portal table th,.sg-dialog table th{background:var(--sg-table-header);color:var(--sg-text)}
.sg-portal table tbody tr:nth-child(even) td,.sg-dialog table tbody tr:nth-child(even) td{background:var(--sg-table-stripe)}
.sg-portal table tbody tr:hover td,.sg-dialog table tbody tr:hover td,.sg-portal table tr[aria-selected=true] td,.sg-dialog table tr[aria-selected=true] td{background:var(--sg-table-hover)}
.sg-portal .sg-notice.info,.sg-dialog .sg-notice.info{background:var(--sg-info-background);border-color:var(--sg-info);color:var(--sg-info)}
.sg-portal .sg-notice.warning,.sg-dialog .sg-notice.warning{background:var(--sg-warning-background);border-color:var(--sg-warning);color:var(--sg-warning)}
.sg-portal .sg-notice.error,.sg-dialog .sg-notice.error{background:var(--sg-error-background);border-color:var(--sg-error);color:var(--sg-error)}
.sg-portal .sg-notice.success,.sg-dialog .sg-notice.success{background:var(--sg-success-background);border-color:var(--sg-success);color:var(--sg-success)}
@media(max-width:620px){.sg-portal .sg-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;overflow:visible}.sg-portal .sg-tabs button{white-space:normal;text-align:left;min-height:44px;padding:11px 0}}
