@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@700;800;900&family=Noto+Sans+TC:wght@400;500;700;900&display=swap');
:root{--ink:#161818;--acid:#e9ff57;--pink:#f05299;--paper:#f4f5f1;--muted:#636965;--line:#d8ddd4}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 'Noto Sans TC',sans-serif}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #d22c79;outline-offset:3px}[hidden]{display:none!important}.test-banner{background:var(--acid);padding:8px 5%;font-size:14px;font-weight:700;display:flex;justify-content:space-between;gap:12px}header{padding:25px 5%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:20px}.brand{text-decoration:none;color:var(--ink);font:900 43px/.85 'Barlow Condensed',sans-serif;letter-spacing:-1px}.brand span{display:block;font:700 11px/1.5 sans-serif;letter-spacing:1.4px;margin-top:9px}nav{display:flex;gap:8px}.nav{border:0;background:transparent;padding:10px 15px;border-radius:4px;font-weight:700}.nav.active{background:var(--ink);color:white}main{max-width:1400px;padding:0 5%;margin:auto}.intro{display:flex;align-items:flex-end;justify-content:space-between;padding:43px 0 32px;gap:25px}.eyebrow{font-size:13px;font-weight:700;letter-spacing:1.8px;margin:0 0 12px}h1{font:900 clamp(60px,7.5vw,108px)/.96 'Barlow Condensed',sans-serif;letter-spacing:-1.5px;margin:0}h1 span{font:900 clamp(28px,3.7vw,48px)/1.55 'Noto Sans TC',sans-serif;letter-spacing:-1px}.intro-note{border-left:3px solid var(--pink);padding-left:22px;margin:0 0 10px;color:var(--muted);line-height:2;font-size:14px}.intro-note strong{color:var(--ink)}.demo-control{background:#e7eae2;display:flex;align-items:center;gap:16px;padding:13px 18px;margin-bottom:26px;border-radius:5px}.demo-control label{margin:0;white-space:nowrap}.demo-control select{width:auto;margin:0;background:white}.demo-control span{font-size:13px;color:var(--muted)}.booking-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:26px}.panel{background:white;border:1px solid var(--line);padding:26px;margin:0 0 24px;border-radius:8px}.section-head{display:flex;gap:12px;align-items:center;margin-bottom:22px;flex-wrap:wrap}h2{font-size:20px;line-height:1.5;margin:0 0 15px}.section-head h2{margin:0}.num{background:var(--ink);color:var(--acid);font:800 20px 'Barlow Condensed',sans-serif;padding:5px 9px}.pill{margin-left:auto;font-size:14px;background:var(--acid);padding:3px 10px;border-radius:3px}label{display:block;font-weight:700;font-size:14px;margin:17px 0 7px}input,select{border:1px solid #b7c0b3;border-radius:4px;background:#fff;width:100%;padding:11px 12px;color:var(--ink);min-height:46px}.hint,.fine{color:var(--muted);font-size:14px}.fine{font-size:12px}.plans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:20px}.plan{border:1px solid var(--line);padding:17px;text-align:left;background:white;border-radius:5px}.plan.selected{border:2px solid var(--ink);background:var(--acid);padding:16px}.plan strong{display:block;font-size:17px}.plan span{font-size:14px}.day-title{font:800 24px 'Barlow Condensed',sans-serif;margin:25px 0 10px;display:flex;align-items:center;gap:12px}.day-title span{font:500 14px 'Noto Sans TC',sans-serif;color:var(--muted)}.course{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding:13px 0;cursor:pointer;margin:0;font-weight:400}.course input{width:19px;height:19px;min-height:0;accent-color:var(--ink);flex-shrink:0}.course .time{font-size:13px;color:var(--muted);min-width:92px}.course strong{font-size:17px}.course small{font-size:12px;margin-left:auto;color:var(--muted)}.summary{position:sticky;top:20px;background:var(--ink);color:white;padding:27px;border-radius:8px}.summary .eyebrow{color:var(--acid)}.summary h2{font-size:28px}.price{font:800 43px/1.3 'Barlow Condensed',sans-serif;color:var(--acid)}.summary p{font-size:14px}.summary .hint,.summary .fine{color:#c3cbbd}.summary hr{border:0;border-top:1px solid #444b44;margin:22px 0}.summary-line{font-size:13px;padding:7px 0;border-bottom:1px solid #3e453d}.primary{border:0;border-radius:4px;background:var(--acid);color:var(--ink);font-weight:700;padding:15px 18px;width:100%;margin-top:15px;display:flex;justify-content:space-between;align-items:center}.primary:hover:not(:disabled){background:#d5ee3a}.secondary,.text-button{border:1px solid var(--line);background:white;padding:9px 14px;border-radius:4px}.text-button{margin:25px 0}.smaller{font-family:'Noto Sans TC',sans-serif;font-size:40px;line-height:1.4;margin:12px 0 24px}.view:not(#booking){padding-top:30px}.notice{background:#f7edce;border-left:4px solid #caa943;padding:16px 20px;margin-bottom:24px;font-size:14px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:24px}.stat{background:var(--ink);color:white;padding:23px;border-radius:6px}.stat strong{display:block;font:800 38px 'Barlow Condensed',sans-serif;color:var(--acid)}.stat span{font-size:14px}.status{display:inline-block;background:#fff0b8;padding:4px 10px;font-size:14px;border-radius:4px}.status.confirmed{background:var(--acid)}.order{padding:22px 0;border-bottom:1px solid var(--line)}.order:first-child{padding-top:0}.order p{margin:6px 0}.order .primary{width:auto}.order-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.schedule-row{display:grid;grid-template-columns:95px 115px 1fr;gap:8px;padding:14px 0;border-bottom:1px solid var(--line)}.schedule-row span{font-size:14px}.capacity-row{display:grid;grid-template-columns:1fr 120px 100px;gap:16px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}progress{width:100%;accent-color:var(--ink)}footer{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding:35px 0;margin-top:45px;font-weight:700;font-size:14px}footer span{color:var(--muted);font-weight:400}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:14px 22px;background:var(--ink);color:white;border:1px solid var(--acid);border-radius:6px;z-index:10;max-width:90%;width:max-content}#form-error{color:#b32354}.mail-sheet{max-width:700px;background:var(--paper);padding:25px}.empty{padding:30px 0;color:var(--muted)}@media(max-width:900px){.booking-grid{grid-template-columns:1fr}.summary{position:static}.intro-note{display:none}.demo-control{flex-wrap:wrap}.summary-line{display:inline-block;margin-right:15px}.test-banner span{display:none}}@media(max-width:600px){header{align-items:flex-start;flex-direction:column;gap:22px}nav{width:100%;gap:5px}.nav{flex:1;font-size:14px;padding:10px 6px}.intro{padding:32px 0 20px}.eyebrow{font-size:11px}.panel{padding:18px}.course{gap:9px;flex-wrap:wrap}.course .time{min-width:85px;font-size:12px}.course strong{font-size:15px}.course small{font-size:11px}.plans{gap:8px}.plan{padding:13px}.plan.selected{padding:12px}.stats{gap:8px}.stat{padding:15px 10px}.stat span{font-size:12px}.schedule-row{grid-template-columns:58px 95px 1fr;font-size:14px}.schedule-row span{font-size:12px}.capacity-row{grid-template-columns:1fr 70px}.capacity-row progress{display:none}.smaller{font-size:30px}footer{flex-direction:column}.demo-control select{width:100%}}

/* BOSSY 2027 social template palette */
:root{--ink:#10151a;--acid:#f4dc38;--pink:#ed0054;--paper:#e9e9e6;--muted:#59616a;--line:#c5c9ce;--blue:#00547e}
body{background:#00547e;color:var(--ink)}header{background:#00466b;border-bottom:3px solid var(--pink)}.brand{color:var(--acid)}.brand span{color:white}.nav{color:white}.nav.active{color:#0c2637;background:var(--acid)}main{background:transparent}.intro{color:white;border-bottom:1px solid #51829a;margin-bottom:24px}.intro h1{color:var(--acid)}.intro h1 span{color:white}.intro-note{color:#f1f3f4;border-color:var(--pink)}.intro-note strong{color:var(--acid)}.demo-control{background:#e3e5e4;border-left:5px solid var(--pink);border-radius:0}.panel{border-radius:2px;border:1px solid #d5d8da;border-top:4px solid #131b22}.summary{background:#101820;border-radius:2px;border-top:5px solid var(--pink)}.plan{border-radius:0}.plan.selected{background:var(--acid);border-color:#00547e}.num{background:#00547e;color:var(--acid)}.pill{border-radius:0}.primary{border-radius:0}.primary:hover:not(:disabled){background:#ffe959}.stat{border-radius:0;border-bottom:4px solid var(--pink)}.smaller,.view>.eyebrow{color:white}.text-button{background:var(--acid);border:0}.notice{background:#f7efc8;border-color:var(--pink)}footer{color:var(--acid);border-color:#51829a}footer span{color:#e1e9ee}.mail-sheet{background:#edf0f1;border-top:5px solid var(--blue)}.member-review{background:#fff1c0;border-left:3px solid var(--pink);padding:10px 14px}.code-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:15px}.code-row{display:flex;gap:20px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}.code-row>div{flex:1;overflow-wrap:anywhere}.code-row span{font-size:14px}.code-row strong{color:var(--blue)}#code-error{color:#b32354}.test-banner{background:var(--acid)}@media(max-width:600px){.code-fields{grid-template-columns:1fr;gap:0}.code-row{gap:8px;flex-wrap:wrap}.code-row>div{min-width:100%}}

/* Room for bilingual labels */
.section-head{align-items:flex-start}.section-head h2{flex:1;min-width:160px}.nav{font-size:14px}.plan strong{font-size:16px}.intro h1 span{font-size:clamp(22px,2.6vw,36px)}.course{flex-wrap:wrap}.summary h2{font-size:25px}.smaller{font-size:clamp(26px,4vw,40px)}.code-row .secondary{max-width:140px}.stats .stat span{display:block}@media(max-width:600px){.nav{font-size:12px}.demo-control label{white-space:normal}.section-head h2{min-width:140px}.plans{grid-template-columns:1fr}.schedule-row{grid-template-columns:55px 95px minmax(0,1fr)}.stat span{font-size:12px}}

.finance-form{margin:16px 0;padding:16px;border:1px solid var(--line);background:#f3f6f8}.finance-check{display:flex;align-items:center;gap:10px}.finance-check input{width:20px;min-height:20px;flex-shrink:0}.finance-error{color:#b32354}
.auth-panel{margin-top:1.25rem}.auth-panel form{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.auth-panel input{max-width:340px}.auth-panel label{width:100%}.auth-panel [hidden]{display:none}#payment-instructions{white-space:normal;overflow-wrap:anywhere}.order-head strong{overflow-wrap:anywhere;min-width:0}.order p{overflow-wrap:anywhere}#connection-status{height:auto;white-space:normal}#admin[hidden],.view[hidden]{display:none}

/* Official brand and bilingual payment terms */
.brand{display:block;flex-shrink:0;max-width:100%}.official-logo{display:block;width:300px;max-width:100%;height:auto;background:transparent;border-radius:0;padding:0}.brand span{text-align:center;color:var(--acid);font-size:12px}
.registration-policy{margin:24px 0;padding:22px;background:#f8fafb;border:1px solid #aebfc9;border-top:4px solid var(--pink);overflow-wrap:anywhere;font-size:16px;line-height:1.85}.registration-policy h3{margin:24px 0 12px;font-size:19px}.registration-policy h4{margin-bottom:8px;font-size:16px}.registration-policy ul{padding-left:22px}.registration-policy li{margin:10px 0}.registration-policy [lang=en]{border-top:1px solid #bacbd4;margin-top:24px;padding-top:8px}.registration-policy .hint [lang=en]{border:0;margin:0;padding:0}.policy-consent{display:flex;align-items:flex-start;gap:12px;padding:18px;background:#fff3c8;border:2px solid #075378;font-size:16px;line-height:1.8;margin:24px 0}.policy-consent input{width:22px;height:22px;min-height:22px;flex:0 0 22px;margin:5px 0 0;accent-color:#075378}.policy-consent span{min-width:0}
@media(max-width:650px){header{flex-wrap:wrap;justify-content:center}.official-logo{width:250px}.registration-policy{padding:16px}.policy-consent{padding:14px}nav{flex-wrap:wrap;justify-content:center}}

.ticket-table-wrap{overflow-x:auto}.ticket-table{width:100%;border-collapse:collapse;font-size:16px}.ticket-table th,.ticket-table td{padding:14px 12px;text-align:left;border-bottom:1px solid var(--line)}.ticket-table thead,.ticket-table tfoot{background:#e4edf2}.ticket-table td{text-align:center;font-variant-numeric:tabular-nums}.mail-body{white-space:pre-wrap;overflow-wrap:anywhere;font:16px/1.85 'Noto Sans TC',sans-serif}#mail{scroll-margin-top:24px}#mail-preview-title:focus{outline:2px solid var(--pink);outline-offset:5px}@media(max-width:600px){.ticket-table{font-size:14px}.ticket-table th,.ticket-table td{padding:10px 6px}}

/* Compact organizer finance fields and prominent class-change notice. */
#admin .finance-form{width:100%;max-width:440px;box-sizing:border-box;padding:16px;margin:16px 0}
#admin .finance-form input[type=date],#admin .finance-form input[type=number]{display:block;width:220px;max-width:100%;box-sizing:border-box;min-height:44px}
#admin .finance-form button{width:auto;max-width:100%;min-height:44px}
#admin .finance-check{line-height:1.6;flex-wrap:nowrap}
.schedule-notice{color:#b42318;font-size:16px;line-height:1.75;font-weight:600;margin:16px 0 24px}
.schedule-notice [lang=en]{display:inline-block;margin-top:6px}

.identity-tickets{min-width:650px}.identity-tickets thead th:not(:first-child){text-align:center}.identity-tickets td strong{display:block;font-size:20px}.identity-tickets td small{display:block;font-size:14px;white-space:nowrap;color:#526170;margin-top:4px}.code-usage{display:flex;flex-wrap:wrap;gap:12px 24px;margin:12px 0 6px}.code-usage span{font-size:16px}.code-usage b{font-size:20px;color:var(--blue)}.code-row small{font-size:14px;color:#526170}

.schedule-poster{width:100%;max-width:720px;margin:24px auto 32px}.schedule-poster a{display:block}.schedule-poster img{display:block;width:100%;height:auto}.schedule-poster figcaption{color:#fff;text-align:center;font-size:14px;line-height:1.6;margin-top:10px}.schedule-poster a:focus-visible{outline:3px solid var(--acid);outline-offset:5px}

@media(min-width:769px){.schedule-poster{max-width:648px;width:90%}}
.instructor-links{max-width:720px;margin:0 auto 32px;color:#fff}.instructor-links h2{font-size:22px;line-height:1.5;margin:0 0 16px}.instructor-links h2 span{font-size:16px;font-weight:400}.instructor-links ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;list-style:none;padding:0;margin:0}.instructor-links a{display:flex;flex-direction:column;justify-content:center;gap:4px;padding:14px 16px;min-height:72px;border:1px solid #87adc0;color:#fff;text-decoration:none;overflow-wrap:anywhere}.instructor-links a strong{font-size:18px;color:var(--acid)}.instructor-links a span{font-size:14px;text-decoration:underline;text-underline-offset:3px}.instructor-links a:hover{background:#00466b}.instructor-links a:focus-visible{outline:3px solid var(--acid);outline-offset:3px}@media(max-width:600px){.instructor-links ul{grid-template-columns:repeat(2,minmax(0,1fr))}.instructor-links a{padding:12px}}

.demo-control{flex-wrap:wrap}.demo-control .phase-label{font-size:16px;color:var(--ink)}.demo-control #phase{font-size:18px;color:var(--ink)}
