:root {
  --ink: #151714;
  --ink-2: #22251f;
  --paper: #f2efe6;
  --paper-2: #e8e3d7;
  --paper-3: #d8d0c0;
  --accent: #e8b725;
  --accent-2: #f1c942;
  --muted: #77796f;
  --line: rgba(21, 23, 20, .18);
  --light-line: rgba(255, 255, 255, .22);
  --white: #fffdf7;
  --danger: #a63827;
  --success: #3f6f49;
  --radius: 0px;
  --header-h: 78px;
  --max: 1380px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--paper); }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang HK", "Noto Sans TC", "Microsoft JhengHei", Arial, sans-serif; line-height: 1.5; -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
img { max-width: 100%; display: block; }
svg { display: block; }
::selection { background: var(--accent); color: var(--ink); }

.skip-link { position: fixed; left: 16px; top: -80px; z-index: 999; background: var(--accent); padding: 12px 16px; font-weight: 800; transition: top .2s; }
.skip-link:focus { top: 16px; }

.shell { width: min(calc(100% - 32px), var(--max)); margin-inline: auto; }
.view { display: none; }
.view.active { display: block; }

.site-header { position: sticky; top: 0; z-index: 80; background: rgba(242, 239, 230, .94); border-bottom: 1px solid var(--line); backdrop-filter: blur(14px); }
.header-shell { min-height: var(--header-h); display: grid; grid-template-columns: auto 1fr auto; align-items: stretch; width: min(100%, 1600px); margin: 0 auto; }
.brand { display: flex; align-items: center; gap: 12px; padding: 12px 20px; border-right: 1px solid var(--line); min-width: 228px; }
.brand-mark { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--ink); background: var(--white); }
.brand-mark svg { width: 26px; height: 26px; }
.brand-mark circle, .brand-mark path { fill: none; stroke: var(--ink); stroke-width: 2.2; }
.brand-copy { display: grid; line-height: 1.08; gap: 3px; }
.brand-copy b { font-size: 16px; letter-spacing: .025em; }
.brand-copy small { font-size: 10px; color: var(--muted); letter-spacing: .12em; text-transform: uppercase; }
.primary-nav { display: flex; align-items: stretch; min-width: 0; }
.primary-nav a { display: flex; align-items: center; gap: 9px; padding: 0 18px; border-right: 1px solid var(--line); font-size: 13px; white-space: nowrap; transition: background .2s, color .2s; }
.primary-nav a span { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 9px; color: var(--muted); }
.primary-nav a b { font-weight: 750; }
.primary-nav a:hover, .primary-nav a.active { background: var(--ink); color: var(--paper); }
.primary-nav a:hover span, .primary-nav a.active span { color: var(--accent); }
.header-actions { display: flex; align-items: stretch; }
.lang-toggle { min-width: 58px; border: 0; border-left: 1px solid var(--line); background: transparent; cursor: pointer; font-weight: 800; letter-spacing: .06em; }
.lang-toggle:hover { background: var(--paper-2); }
.student-link { display: flex; align-items: center; gap: 12px; padding: 0 22px; background: var(--accent); font-size: 13px; font-weight: 800; border-left: 1px solid var(--ink); }
.student-link:hover { background: var(--accent-2); }
.menu-toggle { display: none; width: 60px; border: 0; border-left: 1px solid var(--line); background: transparent; padding: 0 18px; cursor: pointer; }
.menu-toggle span { height: 2px; background: var(--ink); display: block; margin: 6px 0; transition: transform .2s; }

.hero { min-height: calc(100vh - var(--header-h)); min-height: 760px; position: relative; color: var(--white); overflow: hidden; background: #26261f; }
.hero-media { position: absolute; inset: 0; background-size: cover; background-position: center; transform: scale(1.01); transition: opacity .55s ease, transform 1s ease; }
.hero-media.changing { opacity: .3; transform: scale(1.04); }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7,8,7,.83) 0%, rgba(7,8,7,.55) 42%, rgba(7,8,7,.14) 76%, rgba(7,8,7,.28) 100%), linear-gradient(0deg, rgba(7,8,7,.56) 0%, transparent 42%); }
.hero-grid { position: absolute; inset: 0; opacity: .13; background-image: linear-gradient(rgba(255,255,255,.4) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.4) 1px, transparent 1px); background-size: 90px 90px; mask-image: linear-gradient(to right, black, transparent 76%); }
.hero-content { min-height: inherit; position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; padding-bottom: 130px; }
.hero-copy { max-width: 900px; padding-top: 120px; }
.eyebrow, .kicker { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; text-transform: uppercase; letter-spacing: .12em; font-size: 11px; font-weight: 700; }
.eyebrow { color: var(--accent); margin: 0 0 22px; }
.kicker { color: var(--muted); margin: 0 0 16px; }
.kicker.light { color: var(--accent); }
.hero h1 { margin: 0; font-size: clamp(54px, 7vw, 112px); letter-spacing: -.055em; line-height: .9; font-weight: 850; text-transform: uppercase; max-width: 1100px; white-space: pre-line; }
.hero-subtitle { font-size: clamp(16px, 1.5vw, 21px); color: rgba(255,255,255,.78); max-width: 680px; margin: 28px 0 0; line-height: 1.55; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 34px; }
.btn { min-height: 50px; padding: 0 18px; border: 1px solid currentColor; display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; font-size: 12px; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; cursor: pointer; transition: transform .18s, background .18s, color .18s; border-radius: 0; }
.btn:hover { transform: translateY(-2px); }
.btn-accent { background: var(--accent); color: var(--ink); border-color: var(--accent); }
.btn-accent:hover { background: var(--accent-2); }
.btn-dark { background: var(--ink); color: var(--white); border-color: var(--ink); }
.btn-dark:hover { background: #000; }
.btn-outline { background: transparent; color: var(--ink); border-color: var(--line); }
.btn-outline:hover { border-color: var(--ink); }
.btn-ghost-light { background: rgba(255,255,255,.06); color: var(--white); border-color: rgba(255,255,255,.42); backdrop-filter: blur(7px); }
.btn-ghost-light:hover { background: rgba(255,255,255,.15); }
.btn.full { width: 100%; }
.btn.small { min-height: 40px; padding: 0 13px; font-size: 11px; }
.hero-index { padding: 0 0 26px 20px; min-width: 160px; }
.hero-counter { display: flex; align-items: baseline; gap: 8px; justify-content: flex-end; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.hero-counter strong { font-size: 38px; color: var(--accent); }
.hero-counter span { font-size: 12px; color: rgba(255,255,255,.6); }
.hero-dots { display: flex; justify-content: flex-end; gap: 5px; margin-top: 10px; }
.hero-dot { border: 0; padding: 0; width: 28px; height: 3px; background: rgba(255,255,255,.28); cursor: pointer; }
.hero-dot.active { background: var(--accent); }
.hero-bottom { position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); z-index: 3; height: 68px; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--light-line); }
.hero-note { display: flex; align-items: center; gap: 10px; font-size: 12px; color: rgba(255,255,255,.72); }
.dot-live { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 5px rgba(232,183,37,.14); }
.hero-next { background: transparent; border: 0; color: var(--white); font-size: 11px; text-transform: uppercase; letter-spacing: .08em; font-weight: 800; cursor: pointer; }

.statement-section { padding: 90px 0 100px; border-bottom: 1px solid var(--line); }
.statement-grid { display: grid; grid-template-columns: 1.4fr .7fr; gap: 70px; align-items: end; }
.statement-grid h2, .section-head h2, .feature-copy h2, .cta-panel h2, .page-hero h1 { margin: 0; letter-spacing: -.045em; line-height: 1.04; }
.statement-grid h2 { font-size: clamp(38px, 4.7vw, 72px); }
.statement-copy { max-width: 470px; justify-self: end; }
.statement-copy p { margin: 0 0 32px; color: #5c5e56; font-size: 16px; line-height: 1.85; }
.text-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 40px; min-width: 190px; border-bottom: 1px solid var(--ink); padding: 0 0 9px; font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; }
.text-link:hover { color: #6c5a13; }

.section { padding: 88px 0; }
.section-head { display: flex; justify-content: space-between; gap: 30px; align-items: end; margin-bottom: 42px; }
.section-head h2 { font-size: clamp(34px, 4vw, 60px); }
.section-note { max-width: 520px; color: var(--muted); margin: 0; font-size: 13px; }
.program-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--ink); border-left: 1px solid var(--line); }
.program-card { position: relative; min-height: 410px; padding: 22px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); display: flex; flex-direction: column; background: rgba(255,255,255,.08); overflow: hidden; transition: background .2s, transform .2s; }
.program-card:hover { background: var(--white); transform: translateY(-4px); z-index: 1; box-shadow: 0 12px 40px rgba(30,30,20,.08); }
.program-card-top { display: flex; justify-content: space-between; align-items: center; }
.program-card-tag { font-family: ui-monospace, monospace; font-size: 9px; letter-spacing: .1em; color: var(--muted); }
.program-card-arrow { width: 30px; height: 30px; border: 1px solid var(--line); display: grid; place-items: center; }
.program-card h3 { font-size: 30px; letter-spacing: -.035em; line-height: 1.03; margin: 60px 0 12px; }
.program-card .meta { font-size: 12px; color: var(--muted); display: flex; flex-wrap: wrap; gap: 8px 14px; }
.program-card .program-desc { color: #5f6159; font-size: 13px; line-height: 1.65; margin: 18px 0; }
.program-card-bottom { margin-top: auto; padding-top: 18px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; align-items: end; gap: 10px; }
.program-card-price b { display: block; font-size: 20px; }
.program-card-price small { color: var(--muted); font-size: 10px; }
.program-card-spots { text-align: right; font-size: 10px; color: var(--muted); }

.feature-band { display: grid; grid-template-columns: 1.1fr .9fr; background: var(--ink); color: var(--white); min-height: 720px; }
.feature-photo { background: #1c1e1a var(--ph-dark) 82% 50% / 110px no-repeat; min-height: 620px; filter: saturate(.72); }
.feature-copy { padding: 80px max(5vw, 42px); display: flex; flex-direction: column; justify-content: center; }
.feature-copy h2 { font-size: clamp(36px, 4vw, 63px); }
.feature-list { margin-top: 50px; border-top: 1px solid var(--light-line); }
.feature-list > div { display: grid; grid-template-columns: 44px 1fr; align-items: center; gap: 15px; min-height: 88px; border-bottom: 1px solid var(--light-line); }
.feature-list > div > span { color: var(--accent); font-family: ui-monospace, monospace; font-size: 10px; }
.feature-list p { margin: 0; display: flex; justify-content: space-between; gap: 20px; align-items: baseline; }
.feature-list b { font-size: 17px; }
.feature-list small { color: rgba(255,255,255,.56); }
.news-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--ink); }
.news-card { padding: 25px 22px 28px 0; margin-right: 22px; border-bottom: 1px solid var(--line); min-height: 245px; display: flex; flex-direction: column; }
.news-card + .news-card { border-left: 1px solid var(--line); padding-left: 22px; }
.news-date { display: flex; justify-content: space-between; font-family: ui-monospace, monospace; color: var(--muted); font-size: 10px; }
.news-card h3 { font-size: 25px; line-height: 1.08; letter-spacing: -.03em; margin: 45px 0 12px; }
.news-card p { color: var(--muted); font-size: 13px; line-height: 1.65; margin: 0; }
.news-card .news-arrow { margin-top: auto; font-size: 18px; text-align: right; }
.cta-panel { background: #2b3028; color: var(--white); padding: 85px 0; }
.cta-panel-inner { display: flex; align-items: end; justify-content: space-between; gap: 40px; }
.cta-panel h2 { font-size: clamp(42px, 5vw, 76px); }
.cta-panel-actions { display: grid; gap: 8px; min-width: 230px; }

.page-hero { min-height: 480px; background: var(--ink); color: var(--white); display: flex; align-items: end; padding: 95px 0 70px; position: relative; overflow: hidden; }
.page-hero::after { content: ''; position: absolute; right: -140px; top: -240px; width: 720px; height: 720px; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; box-shadow: inset 0 0 0 80px rgba(232,183,37,.02), inset 0 0 0 160px rgba(255,255,255,.02); }
.page-hero-inner { position: relative; z-index: 2; }
.page-hero h1 { font-size: clamp(54px, 7vw, 104px); text-transform: uppercase; }
.page-hero p:not(.kicker) { max-width: 650px; margin: 26px 0 0; color: rgba(255,255,255,.65); line-height: 1.7; }
.page-hero-inner.split { display: grid; grid-template-columns: 1.2fr .7fr; gap: 60px; align-items: end; }
.page-hero-inner.split p:not(.kicker) { justify-self: end; margin: 0; }
.compact-hero { min-height: 420px; background: #1c1e1a var(--ph-dark) 82% 50% / 110px no-repeat; }
.compact-hero::before, .news-hero::before, .contact-hero::before, .about-hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(13,14,12,.9), rgba(13,14,12,.55)); }
.about-hero { background: #1c1e1a var(--ph-dark) 82% 50% / 110px no-repeat; }
.news-hero { background: #1c1e1a var(--ph-dark) 82% 50% / 110px no-repeat; }
.contact-hero { background: #1c1e1a var(--ph-dark) 82% 50% / 110px no-repeat; }

.filters { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 34px; }
.filter-chip { border: 1px solid var(--line); background: transparent; min-height: 40px; padding: 0 16px; font-size: 11px; font-weight: 800; cursor: pointer; text-transform: uppercase; }
.filter-chip:hover, .filter-chip.active { background: var(--ink); color: var(--white); border-color: var(--ink); }
.program-list { border-top: 1px solid var(--ink); }
.program-row { display: grid; grid-template-columns: minmax(220px,1.15fr) minmax(300px,1.4fr) minmax(220px,.8fr) auto; gap: 28px; padding: 30px 0; border-bottom: 1px solid var(--line); align-items: center; }
.program-row:hover { background: rgba(255,255,255,.25); }
.program-row-index { font-family: ui-monospace, monospace; color: var(--muted); font-size: 10px; margin-bottom: 8px; }
.program-row h3 { font-size: 30px; margin: 0 0 8px; letter-spacing: -.03em; }
.program-row-meta { color: var(--muted); font-size: 12px; }
.program-row-desc { margin: 0; color: #5f6159; font-size: 13px; line-height: 1.7; }
.program-row-details { font-size: 12px; }
.program-row-details div { display: flex; justify-content: space-between; gap: 18px; padding: 7px 0; border-bottom: 1px dotted var(--line); }
.program-row-details span { color: var(--muted); }
.program-row-action { display: grid; gap: 9px; min-width: 145px; }
.program-row-price { font-size: 24px; font-weight: 850; text-align: right; }
.program-row-price small { font-size: 10px; color: var(--muted); font-weight: 500; display: block; }

.philosophy-section { padding-bottom: 40px; }
.philosophy-grid { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--ink); border-left: 1px solid var(--line); }
.philosophy-grid article { padding: 24px; min-height: 300px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.philosophy-grid article > span { font-family: ui-monospace, monospace; font-size: 10px; color: var(--muted); }
.philosophy-grid h3 { font-size: 28px; margin: 70px 0 15px; }
.philosophy-grid p { color: var(--muted); font-size: 13px; line-height: 1.7; }
.coach-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.coach-card { background: var(--paper); }
.coach-portrait { aspect-ratio: 4/3; background: linear-gradient(135deg,#272923,#555347); display: grid; place-items: center; overflow: hidden; position: relative; }
.coach-portrait::before, .coach-portrait::after { content: ''; position: absolute; border-radius: 50%; border: 1px solid rgba(255,255,255,.16); }
.coach-portrait::before { width: 72%; height: 72%; }
.coach-portrait::after { width: 48%; height: 48%; }
.coach-initials { font-size: clamp(54px, 7vw, 100px); font-weight: 900; letter-spacing: -.08em; color: var(--accent); position: relative; z-index: 1; }
.coach-copy { padding: 22px; }
.coach-role { font-family: ui-monospace, monospace; font-size: 9px; color: var(--muted); letter-spacing: .08em; }
.coach-copy h3 { font-size: 25px; margin: 10px 0; }
.coach-copy p { font-size: 13px; color: var(--muted); line-height: 1.7; margin: 0; }

.news-page-grid { display: grid; grid-template-columns: 1.4fr .65fr; gap: 60px; align-items: start; }
.news-list { border-top: 1px solid var(--ink); }
.news-list .news-card { margin: 0; padding: 30px 0; min-height: 220px; }
.news-list .news-card + .news-card { border-left: 0; }
.instagram-card { border: 1px solid var(--line); position: sticky; top: calc(var(--header-h) + 24px); padding: 22px; background: var(--paper-2); }
.ig-top { display: flex; justify-content: space-between; font-family: ui-monospace, monospace; font-size: 10px; font-weight: 800; }
.ig-placeholder { min-height: 330px; display: grid; place-items: center; text-align: center; align-content: center; padding: 35px; border: 1px dashed rgba(21,23,20,.28); margin: 24px 0; }
.ig-mark { font-size: 52px; }
.ig-placeholder h3 { margin: 10px 0; font-size: 22px; }
.ig-placeholder p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.7; }
.instagram-card .text-link { width: 100%; }

.contact-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 26px; }
.contact-cards { border-top: 1px solid var(--ink); }
.contact-card { min-height: 130px; display: grid; grid-template-columns: 42px 1fr auto; gap: 20px; align-items: center; border-bottom: 1px solid var(--line); padding: 18px 0; }
.contact-card:hover h3 { transform: translateX(6px); }
.contact-index { font-family: ui-monospace, monospace; font-size: 10px; color: var(--muted); }
.contact-card small { font-family: ui-monospace, monospace; font-size: 9px; color: var(--muted); letter-spacing: .1em; }
.contact-card h3 { margin: 4px 0 0; font-size: 24px; transition: transform .2s; }
.map-card { min-height: 430px; position: relative; border: 1px solid var(--line); background: #d6d0c2; overflow: hidden; }
.map-card iframe { width: 100%; height: 100%; min-height: 430px; border: 0; filter: grayscale(1) contrast(.9); }
.map-overlay { position: absolute; left: 15px; bottom: 15px; background: var(--ink); color: var(--white); padding: 10px 12px; font-size: 10px; }

.portal-view { min-height: calc(100vh - var(--header-h)); background: var(--paper); }
.portal-shell { display: grid; grid-template-columns: .8fr 1.2fr; gap: 70px; padding-top: 60px; padding-bottom: 90px; align-items: start; }
.portal-intro { position: sticky; top: calc(var(--header-h) + 50px); }
.back-link { display: inline-flex; gap: 10px; font-size: 11px; font-weight: 800; margin-bottom: 70px; text-transform: uppercase; }
.portal-intro h1, .admin-login-copy h1 { font-size: clamp(52px, 6vw, 88px); line-height: .92; letter-spacing: -.055em; margin: 0 0 20px; }
.portal-intro > p:not(.kicker) { max-width: 430px; color: var(--muted); }
.portal-visual { margin-top: 60px; min-height: 330px; background: var(--ink); position: relative; overflow: hidden; padding: 28px; color: var(--white); }
.ball-ring { width: 310px; height: 310px; border: 1px solid rgba(232,183,37,.8); border-radius: 50%; position: absolute; right: -75px; bottom: -110px; box-shadow: inset 0 0 0 50px rgba(232,183,37,.04), inset 0 0 0 100px rgba(232,183,37,.025); }
.portal-word { font-size: 49px; font-weight: 900; line-height: .86; letter-spacing: -.06em; position: relative; z-index: 1; }
.auth-panel { border-top: 1px solid var(--ink); background: rgba(255,255,255,.2); }
.auth-tabs { display: grid; grid-template-columns: repeat(3, 1fr); border-bottom: 1px solid var(--line); }
.auth-tab { min-height: 58px; border: 0; border-right: 1px solid var(--line); background: transparent; cursor: pointer; font-size: 11px; font-weight: 800; text-transform: uppercase; }
.auth-tab.active { background: var(--ink); color: var(--white); }
.auth-form { display: none; padding: 38px; }
.auth-form.active { display: block; }
.form-head { margin-bottom: 30px; }
.form-head h2 { margin: 0 0 8px; font-size: 33px; letter-spacing: -.035em; }
.form-head p { color: var(--muted); margin: 0; font-size: 13px; }
label { display: grid; gap: 8px; margin-bottom: 18px; font-size: 11px; font-weight: 800; letter-spacing: .02em; }
input, select, textarea { width: 100%; border: 1px solid var(--line); background: rgba(255,255,255,.44); color: var(--ink); min-height: 48px; padding: 10px 12px; border-radius: 0; outline: none; }
textarea { resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: var(--ink); box-shadow: 0 0 0 2px rgba(232,183,37,.28); }
.form-grid.two { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.form-grid .span-2 { grid-column: span 2; }
.check-label { display: grid; grid-template-columns: 18px 1fr; align-items: start; gap: 10px; font-weight: 500; line-height: 1.6; color: #5d5f56; }
.check-label input { min-height: 0; width: 16px; height: 16px; margin: 3px 0 0; accent-color: var(--ink); }
.privacy-note { background: var(--paper-2); border-left: 3px solid var(--accent); padding: 12px 14px; font-size: 10px; line-height: 1.6; color: var(--muted); margin-bottom: 18px; }
.demo-code { background: #fff5c8; border: 1px solid #d9b847; padding: 10px 12px; margin-bottom: 16px; font-family: ui-monospace, monospace; font-size: 12px; }
.student-dashboard { grid-column: 1 / -1; }
.dashboard-topbar { display: flex; justify-content: space-between; align-items: end; border-bottom: 1px solid var(--ink); padding-bottom: 20px; margin-bottom: 26px; }
.dashboard-topbar h2 { font-size: 38px; margin: 0; letter-spacing: -.04em; }
.dashboard-grid { display: grid; grid-template-columns: 1.3fr .7fr; gap: 16px; }
.dash-card { border: 1px solid var(--line); padding: 24px; background: rgba(255,255,255,.2); min-height: 220px; }
.dash-card.span-2 { grid-column: 1 / -1; }
.dash-card-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--line); padding-bottom: 14px; margin-bottom: 8px; }
.dash-card h3 { font-size: 18px; margin: 0; }
.mini-action { border: 0; background: transparent; font-size: 10px; text-decoration: underline; cursor: pointer; font-weight: 800; }
.student-class-row { display: grid; grid-template-columns: 1fr 1fr auto; gap: 20px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--line); }
.student-class-row:last-child { border-bottom: 0; }
.student-class-row h4 { margin: 0 0 4px; font-size: 18px; }
.student-class-row small, .profile-row span, .announcement-item small { color: var(--muted); }
.student-class-time { font-size: 12px; }
.badge { display: inline-flex; padding: 6px 8px; border: 1px solid var(--line); font-size: 9px; font-family: ui-monospace, monospace; }
.announcement-item { padding: 15px 0; border-bottom: 1px solid var(--line); }
.announcement-item:last-child { border-bottom: 0; }
.announcement-item h4 { margin: 0 0 6px; font-size: 15px; }
.announcement-item p { margin: 0 0 6px; font-size: 12px; color: var(--muted); line-height: 1.6; }
.profile-row { display: grid; grid-template-columns: 110px 1fr; gap: 12px; padding: 10px 0; border-bottom: 1px dotted var(--line); font-size: 12px; }

.admin-view { background: #ece8de; min-height: calc(100vh - var(--header-h)); }
.admin-login-wrap { min-height: calc(100vh - var(--header-h)); display: grid; grid-template-columns: 1fr .75fr; align-items: center; gap: 80px; padding-top: 60px; padding-bottom: 70px; }
.admin-login-copy { max-width: 650px; }
.admin-login-copy > p:not(.kicker) { color: var(--muted); max-width: 520px; }
.admin-login-form { background: var(--ink); color: var(--white); padding: 42px; }
.admin-login-form h2 { font-size: 34px; margin: 0 0 30px; }
.admin-login-form label { color: rgba(255,255,255,.72); }
.admin-login-form input { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.2); color: var(--white); }
.demo-credential { font-size: 10px; color: rgba(255,255,255,.5); line-height: 1.6; margin: 14px 0 0; }
.admin-app { min-height: calc(100vh - var(--header-h)); display: grid; grid-template-columns: 250px minmax(0,1fr); }
.admin-sidebar { background: var(--ink); color: var(--white); position: sticky; top: var(--header-h); height: calc(100vh - var(--header-h)); display: flex; flex-direction: column; }
.admin-brand { display: flex; gap: 10px; align-items: center; padding: 24px 20px; border-bottom: 1px solid var(--light-line); }
.brand-mark.small { width: 32px; height: 32px; border-color: var(--accent); background: transparent; }
.brand-mark.small svg { width: 22px; height: 22px; }
.brand-mark.small circle, .brand-mark.small path { stroke: var(--accent); }
.admin-brand div { display: grid; line-height: 1; gap: 4px; }
.admin-brand b { font-size: 13px; }
.admin-brand small { font-size: 9px; color: rgba(255,255,255,.48); letter-spacing: .12em; }
.admin-nav { display: grid; }
.admin-nav button { min-height: 58px; background: transparent; border: 0; border-bottom: 1px solid rgba(255,255,255,.1); color: rgba(255,255,255,.7); display: grid; grid-template-columns: 32px 1fr; text-align: left; align-items: center; padding: 0 18px; cursor: pointer; }
.admin-nav button span { font-family: ui-monospace, monospace; font-size: 9px; color: rgba(255,255,255,.36); }
.admin-nav button b { font-size: 12px; }
.admin-nav button:hover, .admin-nav button.active { color: var(--ink); background: var(--accent); }
.admin-nav button.active span, .admin-nav button:hover span { color: var(--ink); }
.admin-logout { margin-top: auto; border: 0; border-top: 1px solid var(--light-line); background: transparent; color: var(--white); min-height: 56px; padding: 0 18px; display: flex; justify-content: space-between; align-items: center; font-size: 11px; cursor: pointer; }
.admin-main { min-width: 0; padding: 34px 40px 80px; }
.admin-topbar { display: flex; justify-content: space-between; align-items: end; padding-bottom: 20px; border-bottom: 1px solid var(--ink); margin-bottom: 28px; }
.admin-topbar h2 { font-size: 36px; margin: 0; letter-spacing: -.035em; }
.admin-panel { display: none; }
.admin-panel.active { display: block; }
.stat-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; }
.stat-card { border: 1px solid var(--line); padding: 20px; background: var(--paper); min-height: 145px; }
.stat-card small { font-family: ui-monospace, monospace; color: var(--muted); font-size: 9px; letter-spacing: .08em; }
.stat-card strong { display: block; font-size: 46px; margin-top: 22px; line-height: 1; }
.admin-note-card { margin-top: 18px; border: 1px solid var(--line); padding: 22px; background: #f6edc8; }
.admin-note-card h3 { margin: 0 0 8px; }
.admin-note-card p { margin: 0; color: #6c6650; font-size: 12px; line-height: 1.7; }
.admin-toolbar, .attendance-controls, .panel-actions { display: flex; gap: 9px; align-items: center; margin-bottom: 16px; }
.admin-toolbar input { max-width: 340px; }
.admin-toolbar select { max-width: 260px; }
.panel-actions { justify-content: flex-end; }
.admin-table { width: 100%; border-collapse: collapse; background: var(--paper); font-size: 11px; }
.admin-table th, .admin-table td { border-bottom: 1px solid var(--line); padding: 12px 10px; text-align: left; vertical-align: top; }
.admin-table th { font-family: ui-monospace, monospace; font-size: 9px; letter-spacing: .06em; color: var(--muted); background: var(--paper-2); position: sticky; top: var(--header-h); z-index: 2; }
.admin-table td strong { font-size: 12px; }
.table-scroll { overflow: auto; border: 1px solid var(--line); }
.row-action { border: 1px solid var(--line); background: transparent; min-height: 30px; padding: 0 8px; cursor: pointer; font-size: 9px; font-weight: 800; }
.row-action:hover { background: var(--ink); color: var(--white); }
.split-admin { display: grid; grid-template-columns: .65fr 1.35fr; gap: 20px; align-items: start; }
.admin-form-card { background: var(--paper); border: 1px solid var(--line); padding: 22px; }
.admin-form-card h3 { margin: 0 0 20px; }
.admin-announcement-list { display: grid; gap: 8px; }
.admin-announcement { border: 1px solid var(--line); background: var(--paper); padding: 18px; }
.admin-announcement header { display: flex; justify-content: space-between; gap: 16px; }
.admin-announcement h4 { margin: 0; font-size: 15px; }
.admin-announcement p { margin: 9px 0 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.hero-editor-list { display: grid; gap: 12px; }
.hero-editor { display: grid; grid-template-columns: 220px 1fr; border: 1px solid var(--line); background: var(--paper); }
.hero-editor-preview { min-height: 220px; background-size: cover; background-position: center; position: relative; }
.hero-editor-preview::after { content: ''; position: absolute; inset: 0; background: linear-gradient(45deg, rgba(0,0,0,.55), transparent); }
.hero-editor-fields { padding: 20px; }
.hero-editor-fields .form-grid { gap: 0 12px; }
.hero-editor-fields label { margin-bottom: 11px; }
.hero-editor-fields input { min-height: 40px; }
.hero-upload { display: flex; align-items: center; gap: 10px; margin-top: 8px; }
.hero-upload input[type=file] { border: 0; background: transparent; padding: 0; min-height: 34px; font-size: 10px; }
.attendance-controls select { max-width: 420px; }
.attendance-controls input { max-width: 180px; }
.attendance-status { display: flex; gap: 6px; }
.attendance-status label { margin: 0; display: inline-flex; align-items: center; gap: 4px; font-size: 9px; font-weight: 700; }
.attendance-status input { width: auto; min-height: 0; }

.site-footer { background: #10110f; color: var(--white); padding: 70px 0 22px; }
.footer-top { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; padding-bottom: 65px; }
.footer-brand .brand-mark.large { width: 56px; height: 56px; background: transparent; border-color: rgba(255,255,255,.35); }
.footer-brand .brand-mark.large svg { width: 38px; height: 38px; }
.footer-brand .brand-mark.large circle, .footer-brand .brand-mark.large path { stroke: var(--accent); }
.footer-brand h2 { font-size: 46px; letter-spacing: -.05em; margin: 28px 0 2px; }
.footer-brand p { color: rgba(255,255,255,.55); margin: 0; }
.footer-links { display: grid; grid-template-columns: repeat(3,1fr); gap: 30px; }
.footer-links > div { display: grid; align-content: start; gap: 10px; }
.footer-links small { font-family: ui-monospace, monospace; color: var(--accent); font-size: 9px; letter-spacing: .1em; margin-bottom: 10px; }
.footer-links a { color: rgba(255,255,255,.66); font-size: 12px; }
.footer-links a:hover { color: var(--white); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.12); padding-top: 20px; display: flex; justify-content: space-between; gap: 30px; color: rgba(255,255,255,.35); font-family: ui-monospace, monospace; font-size: 9px; }

.modal { border: 0; padding: 0; background: transparent; width: min(760px, calc(100% - 28px)); max-height: calc(100vh - 32px); }
.modal::backdrop { background: rgba(8,9,8,.72); backdrop-filter: blur(4px); }
.modal-card { background: var(--paper); padding: 28px; max-height: calc(100vh - 32px); overflow: auto; }
.modal-card.wide { width: 100%; }
.modal-head { display: flex; justify-content: space-between; align-items: start; border-bottom: 1px solid var(--line); padding-bottom: 14px; margin-bottom: 22px; }
.modal-head h2 { margin: 0; font-size: 28px; }
.modal-close { border: 1px solid var(--line); background: transparent; width: 38px; height: 38px; font-size: 20px; cursor: pointer; }
.compact-form label { margin-bottom: 11px; }
.compact-form input, .compact-form select { min-height: 42px; }
.check-label.in-form { display: flex; align-items: center; align-self: center; margin: 16px 0; }
.toast { position: fixed; right: 20px; bottom: 20px; z-index: 150; background: var(--ink); color: var(--white); min-width: 240px; max-width: 380px; padding: 14px 16px; transform: translateY(110px); opacity: 0; transition: .25s; box-shadow: 0 14px 50px rgba(0,0,0,.2); font-size: 12px; pointer-events: none; }
.toast.show { transform: translateY(0); opacity: 1; }
.toast.success { border-left: 4px solid var(--accent); }
.toast.error { border-left: 4px solid #d85643; }
.empty-state { padding: 30px 0; color: var(--muted); font-size: 12px; }

@media (max-width: 1180px) {
  .primary-nav a { padding: 0 12px; }
  .brand { min-width: 205px; }
  .program-grid { grid-template-columns: repeat(2,1fr); }
  .philosophy-grid { grid-template-columns: repeat(2,1fr); }
  .stat-grid { grid-template-columns: repeat(2,1fr); }
  .program-row { grid-template-columns: 1fr 1.2fr auto; }
  .program-row-details { grid-column: 1 / 3; }
  .admin-main { padding: 28px 24px 60px; }
}

@media (max-width: 980px) {
  :root { --header-h: 66px; }
  .header-shell { grid-template-columns: auto 1fr auto; min-height: var(--header-h); }
  .brand { border-right: 0; min-width: 0; padding: 9px 14px; }
  .brand-copy small { display: none; }
  .menu-toggle { display: block; justify-self: end; }
  .primary-nav { position: fixed; left: 0; right: 0; top: var(--header-h); bottom: 0; background: var(--ink); color: var(--white); display: none; flex-direction: column; padding: 18px; overflow: auto; }
  body.menu-open .primary-nav { display: flex; }
  .primary-nav a { min-height: 64px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.12); padding: 0 8px; font-size: 18px; }
  .primary-nav a span { color: var(--accent); }
  .header-actions { grid-column: 3; }
  .student-link { display: none; }
  .lang-toggle { min-width: 52px; }
  .hero { min-height: 720px; }
  .hero-content { grid-template-columns: 1fr; padding-bottom: 130px; }
  .hero-index { display: none; }
  .hero-copy { padding-top: 100px; }
  .hero h1 { font-size: clamp(48px, 10vw, 82px); }
  .statement-grid, .page-hero-inner.split, .feature-band, .news-page-grid, .contact-grid, .portal-shell, .admin-login-wrap { grid-template-columns: 1fr; }
  .statement-copy { justify-self: start; }
  .feature-photo { min-height: 500px; }
  .feature-copy { padding: 60px 32px; }
  .coach-grid { grid-template-columns: 1fr 1fr; }
  .instagram-card { position: static; }
  .portal-intro { position: static; }
  .portal-visual { display: none; }
  .portal-shell { gap: 36px; padding-top: 40px; }
  .back-link { margin-bottom: 40px; }
  .admin-login-wrap { gap: 30px; }
  .admin-app { grid-template-columns: 1fr; }
  .admin-sidebar { position: static; height: auto; }
  .admin-nav { display: grid; grid-template-columns: repeat(3,1fr); }
  .admin-nav button { min-height: 54px; }
  .admin-logout { position: absolute; right: 0; top: 0; border: 0; width: 100px; }
  .admin-brand { padding-right: 120px; }
  .admin-sidebar { position: relative; }
  .split-admin { grid-template-columns: 1fr; }
  .hero-editor { grid-template-columns: 180px 1fr; }
  .footer-top { grid-template-columns: 1fr; gap: 50px; }
}

@media (max-width: 700px) {
  .shell { width: min(calc(100% - 22px), var(--max)); }
  .brand-mark { width: 34px; height: 34px; }
  .brand-copy b { font-size: 14px; }
  .hero { min-height: 650px; }
  .hero-copy { padding-top: 80px; }
  .hero h1 { font-size: clamp(46px, 14vw, 67px); }
  .hero-subtitle { font-size: 14px; margin-top: 20px; }
  .hero-actions { display: grid; width: min(100%, 360px); }
  .hero-bottom { height: 58px; }
  .hero-note { font-size: 10px; }
  .hero-next { display: none; }
  .statement-section, .section { padding: 58px 0; }
  .statement-grid { gap: 32px; }
  .statement-grid h2 { font-size: 40px; }
  .section-head { align-items: start; flex-direction: column; margin-bottom: 28px; }
  .section-head h2 { font-size: 38px; }
  .program-grid { grid-template-columns: 1fr; }
  .program-card { min-height: 340px; }
  .program-card h3 { margin-top: 44px; }
  .feature-photo { min-height: 360px; }
  .feature-copy { padding: 50px 18px; }
  .feature-list p { display: grid; gap: 2px; }
  .news-grid { grid-template-columns: 1fr; }
  .news-card, .news-card + .news-card { padding: 22px 0; margin: 0; border-left: 0; }
  .cta-panel { padding: 56px 0; }
  .cta-panel-inner { display: grid; align-items: start; }
  .cta-panel h2 { font-size: 44px; }
  .cta-panel-actions { min-width: 0; }
  .page-hero { min-height: 390px; padding: 80px 0 50px; }
  .page-hero h1 { font-size: 54px; }
  .page-hero-inner.split { gap: 26px; }
  .program-row { grid-template-columns: 1fr; gap: 18px; padding: 24px 0; }
  .program-row-details { grid-column: auto; }
  .program-row-action { grid-template-columns: 1fr 1fr; align-items: end; }
  .program-row-price { text-align: left; }
  .philosophy-grid { grid-template-columns: 1fr; }
  .philosophy-grid article { min-height: 230px; }
  .philosophy-grid h3 { margin-top: 40px; }
  .coach-grid { grid-template-columns: 1fr; }
  .contact-card { min-height: 105px; }
  .map-card, .map-card iframe { min-height: 330px; }
  .auth-form { padding: 24px 16px 30px; }
  .form-grid.two { grid-template-columns: 1fr; }
  .form-grid .span-2 { grid-column: auto; }
  .dashboard-grid { grid-template-columns: 1fr; }
  .dash-card.span-2 { grid-column: auto; }
  .student-class-row { grid-template-columns: 1fr; gap: 8px; }
  .dashboard-topbar { align-items: start; }
  .admin-login-form { padding: 28px 18px; }
  .admin-nav { grid-template-columns: repeat(2,1fr); }
  .admin-main { padding: 22px 12px 50px; }
  .admin-topbar { align-items: start; }
  .admin-topbar .admin-top-actions { display: none; }
  .stat-grid { grid-template-columns: 1fr 1fr; }
  .stat-card { min-height: 120px; padding: 14px; }
  .stat-card strong { font-size: 38px; }
  .admin-toolbar, .attendance-controls { display: grid; grid-template-columns: 1fr; }
  .admin-toolbar input, .admin-toolbar select, .attendance-controls select, .attendance-controls input { max-width: none; }
  .hero-editor { grid-template-columns: 1fr; }
  .hero-editor-preview { min-height: 170px; }
  .footer-links { grid-template-columns: 1fr 1fr; }
  .footer-bottom { flex-direction: column; }
  .footer-brand h2 { font-size: 38px; }
  .modal-card { padding: 18px 14px; }
}

/* StarWorks logo */
.brand-mark{overflow:hidden;padding:0;border-radius:50%;}
.brand-mark img{width:100%;height:100%;object-fit:cover;display:block;}

.nav-mobile-only { display: none !important; }

/* Hero */
.sw-hero { position: relative; min-height: max(720px, calc(100svh - var(--header-h))); background: #0b0c0a; color: var(--white); overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; }
.sw-hero-media { position: absolute; inset: 0; background: center/cover no-repeat; filter: grayscale(.35) contrast(1.05); animation: swZoom 18s ease-out both; }
@keyframes swZoom { from { transform: scale(1.12); } to { transform: scale(1.02); } }
.sw-hero-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,9,8,.6) 0%, rgba(8,9,8,.2) 38%, rgba(8,9,8,.92) 100%), linear-gradient(90deg, rgba(8,9,8,.72), transparent 72%); }
.sw-hero-lines { position: absolute; inset: 0; background-image: linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px); background-size: calc(100% / 6) 100%; pointer-events: none; }
.sw-hero-inner { position: relative; z-index: 2; padding: 120px 0 34px; }
.sw-hero-eyebrow { display: flex; align-items: center; gap: 12px; margin-bottom: 26px; }
.sw-hero-title { margin: 0; font-size: clamp(64px, 15vw, 250px); line-height: .82; letter-spacing: -.065em; font-weight: 900; text-transform: uppercase; }
.sw-hero-title span { display: block; }
.sw-hero-title .sw-outline { color: transparent; -webkit-text-stroke: 2px var(--accent); }
.sw-hero-bottom { display: grid; grid-template-columns: auto minmax(0, 540px); justify-content: space-between; align-items: end; gap: 40px; margin-top: 38px; padding-top: 28px; border-top: 1px solid var(--light-line); }
.sw-hero-local { font-size: clamp(42px, 6vw, 100px); font-weight: 900; letter-spacing: .1em; line-height: 1; }
.sw-hero-copy p { margin: 0; color: rgba(255,255,255,.76); font-size: clamp(15px, 1.3vw, 18px); line-height: 1.7; }
.sw-hero-copy .hero-actions { margin-top: 24px; }
.sw-hero-stats { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); border-top: 1px solid var(--light-line); }
.sw-stat { padding: 18px 20px 22px 0; display: flex; align-items: baseline; gap: 12px; }
.sw-stat + .sw-stat { padding-left: 20px; border-left: 1px solid var(--light-line); }
.sw-stat strong { font-size: 36px; color: var(--accent); letter-spacing: -.04em; font-weight: 900; line-height: 1; }
.sw-stat span { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; letter-spacing: .12em; color: rgba(255,255,255,.62); text-transform: uppercase; }

/* Marquee */
.sw-marquee { background: var(--accent); color: var(--ink); overflow: hidden; border-block: 1px solid var(--ink); }
.sw-marquee-track { display: flex; width: max-content; padding: 14px 0; animation: swMarquee 40s linear infinite; font-weight: 900; font-size: clamp(18px, 2.2vw, 30px); letter-spacing: -.02em; text-transform: uppercase; white-space: nowrap; }
.sw-marquee-track span, .sw-marquee-track b { padding-right: 28px; }
.sw-marquee-track b { font-size: .7em; align-self: center; }
@keyframes swMarquee { to { transform: translateX(-50%); } }

/* Intro */
.sw-intro { border-bottom: 1px solid var(--line); }
.sw-intro-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 70px; align-items: end; }
.sw-intro h2 { font-size: clamp(40px, 5.2vw, 86px); line-height: .96; letter-spacing: -.055em; margin: 0; text-transform: uppercase; }
.sw-intro-body { font-size: 16px; line-height: 1.85; color: #4f5149; margin: 0 0 34px; }
.sw-pillars { border-top: 1px solid var(--ink); display: grid; grid-template-columns: 1fr 1fr; }
.sw-pillar { padding: 18px 16px 20px 0; border-bottom: 1px solid var(--line); display: grid; gap: 4px; }
.sw-pillar:nth-child(odd) { border-right: 1px solid var(--line); }
.sw-pillar:nth-child(even) { padding-left: 16px; }
.sw-pillar span { font-family: ui-monospace, monospace; font-size: 10px; color: var(--muted); }
.sw-pillar b { font-size: 22px; letter-spacing: -.02em; }
.sw-pillar small { color: var(--muted); font-size: 12px; }

/* Brands */
.sw-brands { background: var(--ink); color: var(--white); }
.sw-brands .section-head h2 { font-size: clamp(42px, 5.4vw, 86px); text-transform: uppercase; letter-spacing: -.055em; }
.sw-brands .section-note { color: rgba(255,255,255,.55); }
.sw-brand-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.sw-brand { --brand: var(--accent); position: relative; min-height: 470px; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; padding: 24px; isolation: isolate; border: 1px solid rgba(255,255,255,.14); background: #1d1f1b; }
.sw-brand-media { position: absolute; inset: 0; z-index: -2; background: center/cover no-repeat; filter: grayscale(.3) brightness(.92); transition: transform .9s cubic-bezier(.2,.7,.2,1), filter .5s; }
.sw-brand-shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(10,11,10,.25), rgba(10,11,10,.94) 78%); }
.sw-brand::after { content: ''; position: absolute; left: 0; bottom: 0; height: 4px; width: 100%; background: var(--brand); transform: scaleX(.16); transform-origin: left; transition: transform .55s cubic-bezier(.2,.7,.2,1); }
.sw-brand:hover .sw-brand-media, .sw-brand:focus-visible .sw-brand-media { transform: scale(1.06); filter: grayscale(0) brightness(.8); }
.sw-brand:hover::after, .sw-brand:focus-visible::after { transform: scaleX(1); }
.sw-brand-top { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.sw-brand-num { font-family: ui-monospace, monospace; font-size: 10px; color: var(--brand); letter-spacing: .12em; text-transform: uppercase; }
.demo-badge { display: inline-flex; align-items: center; padding: 5px 8px; border: 1px dashed currentColor; font-family: ui-monospace, monospace; font-size: 9px; letter-spacing: .1em; text-transform: uppercase; color: var(--accent); background: rgba(0,0,0,.3); white-space: nowrap; }
.sw-brand-logo { width: 58px; height: 58px; border-radius: 50%; overflow: hidden; display: grid; place-items: center; background: var(--brand, var(--accent)); color: var(--ink); font-weight: 900; font-size: 18px; letter-spacing: -.02em; margin-bottom: 18px; border: 2px solid rgba(255,255,255,.85); flex: none; }
.sw-brand-logo img { width: 100%; height: 100%; object-fit: cover; }
.sw-brand h3 { margin: 0; font-size: clamp(30px, 3.3vw, 50px); line-height: 1; letter-spacing: -.045em; }
.sw-brand h3 small { display: block; font-size: 11px; letter-spacing: .16em; font-family: ui-monospace, monospace; color: rgba(255,255,255,.6); margin-top: 12px; font-weight: 600; }
.sw-brand-intro { color: rgba(255,255,255,.74); font-size: 14px; line-height: 1.65; margin: 14px 0 0; max-width: 480px; }
.sw-brand-foot { margin-top: 22px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.18); display: flex; justify-content: space-between; gap: 12px; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; font-weight: 800; }
.sw-brand-foot span:first-child { color: rgba(255,255,255,.6); font-weight: 600; }
.sw-brand-go { color: var(--brand); white-space: nowrap; }

/* Gallery */
.sw-gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 220px; gap: 8px; }
.sw-tile { position: relative; overflow: hidden; background: #22241f center/cover no-repeat; display: flex; align-items: flex-end; color: var(--white); transition: transform .3s; }
.sw-tile:nth-child(8n+1) { grid-column: span 2; grid-row: span 2; }
.sw-tile:nth-child(8n+6) { grid-column: span 2; }
.sw-tile::after { content: ''; position: absolute; inset: 0; background: linear-gradient(transparent 45%, rgba(0,0,0,.7)); }
a.sw-tile:hover { transform: scale(.985); }
.sw-tile-cap { position: relative; z-index: 1; padding: 14px; font-family: ui-monospace, monospace; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.sw-tile-num { position: absolute; z-index: 1; top: 12px; left: 14px; font-family: ui-monospace, monospace; font-size: 10px; }
.sw-tile.placeholder { background: repeating-linear-gradient(135deg, var(--paper-2) 0 12px, var(--paper) 12px 24px); color: var(--muted); border: 1px dashed rgba(21,23,20,.3); flex-direction: column; justify-content: center; align-items: center; text-align: center; gap: 6px; }
.sw-tile.placeholder::after { display: none; }
.sw-tile.placeholder .ig-mark { font-size: 34px; color: var(--ink); }
.sw-gallery-note { margin: 18px 0 0; font-size: 12px; color: var(--muted); border-left: 3px solid var(--accent); padding-left: 12px; }

/* Company page */
.company-view { --brand: var(--accent); }
.co-hero { min-height: 580px; background: #151714; }
.co-hero::after { display: none; }
.co-hero-media { position: absolute; inset: 0; background: center/cover no-repeat; filter: grayscale(.4) brightness(.62); }
.co-hero::before { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(10,11,10,.94), rgba(10,11,10,.42)), linear-gradient(0deg, rgba(10,11,10,.6), transparent 50%); }
.co-hero-inner { z-index: 2; width: min(calc(100% - 32px), var(--max)); }
.co-hero-inner::after { content: ''; display: block; width: 120px; height: 5px; background: var(--brand); margin-top: 30px; }
.co-hero h1 { font-size: clamp(46px, 7vw, 112px); line-height: .92; letter-spacing: -.055em; margin: 0; }
.co-hero h1 small { display: block; font-size: max(12px, .16em); letter-spacing: .16em; color: var(--brand); margin-top: 16px; font-family: ui-monospace, monospace; font-weight: 700; }
.co-hero-head { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; margin-bottom: 26px; }
.co-hero-head .kicker { margin: 0; color: var(--brand); }
.co-logo { width: 74px; height: 74px; margin: 0; font-size: 22px; }
.page-hero p.co-tagline { font-size: clamp(18px, 2vw, 26px); color: var(--white); font-weight: 850; letter-spacing: -.01em; text-transform: uppercase; margin-top: 22px; }
.back-link.light { color: rgba(255,255,255,.75); margin-bottom: 40px; }
.co-intro { border-bottom: 1px solid var(--line); }
.co-intro-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 70px; align-items: start; }
.co-intro-text { font-size: clamp(19px, 1.9vw, 26px); line-height: 1.55; letter-spacing: -.015em; margin: 0 0 30px; font-weight: 600; }
.co-facts { border-top: 3px solid var(--brand); }
.co-facts > div { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 15px 0; border-bottom: 1px solid var(--line); }
.co-facts > div > span { color: var(--muted); font-size: 12px; }
.co-facts b { font-size: 19px; }
.co-facts .co-highlight { justify-content: flex-start; }
.co-facts .co-highlight span { color: var(--brand); font-size: 14px; }
.co-facts .text-link { min-width: 120px; }
.co-section .section-head h2 { text-transform: uppercase; }
.co-events { background: var(--paper-2); }
.program-row.is-event { position: relative; }
.program-row.is-event::before { content: ''; position: absolute; left: -16px; top: 24px; bottom: 24px; width: 3px; background: var(--brand, var(--accent)); }
.row-company { display: inline-block; font-size: 11px; font-weight: 800; margin-bottom: 6px; padding: 3px 7px; background: var(--ink); color: var(--white); border-left: 3px solid var(--brand, var(--accent)); }
.row-company:hover { background: #000; }
.btn[disabled] { opacity: .45; cursor: not-allowed; transform: none; }

/* Student dashboard */
.status { display: inline-flex; align-items: center; padding: 5px 8px; font-family: ui-monospace, monospace; font-size: 9px; letter-spacing: .08em; text-transform: uppercase; border: 1px solid var(--line); white-space: nowrap; background: var(--paper); }
.status-paid, .status-approved, .status-present { background: #e3eedf; border-color: #9fbf98; color: var(--success); }
.status-unpaid, .status-rejected, .status-absent { background: #f6e1dc; border-color: #d9a093; color: var(--danger); }
.status-pending, .status-late { background: #fff3c4; border-color: #e0c45a; color: #6d5600; }
.status-waived, .status-cancelled, .status-leave { background: var(--paper-2); color: var(--muted); }
.outstanding-pill { background: var(--ink); color: var(--accent); padding: 7px 11px; font-weight: 850; font-size: 12px; white-space: nowrap; }
.outstanding-pill.zero { background: var(--paper-2); color: var(--success); }
.fee-row, .leave-row { display: grid; grid-template-columns: 1fr auto auto auto; gap: 14px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--line); }
.leave-row { grid-template-columns: 1fr auto auto; }
.fee-row h4, .leave-row h4 { margin: 0 0 3px; font-size: 15px; }
.fee-row small, .leave-row small, .att-row small { color: var(--muted); font-size: 11px; }
.fee-amt { font-weight: 850; font-size: 17px; }
.pay-instructions { margin: 16px 0 0; font-size: 12px; transition: box-shadow .3s; }
.pay-instructions.flash { box-shadow: 0 0 0 3px var(--accent); }
.leave-form { padding: 12px 0 8px; border-bottom: 1px solid var(--line); margin-bottom: 4px; }
.leave-form label { margin-bottom: 12px; }
.leave-form input, .leave-form select, .leave-form textarea { min-height: 42px; }
.att-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 12px 0; }
.att-summary > div { border: 1px solid var(--line); padding: 10px 6px; text-align: center; }
.att-summary b { display: block; font-size: 24px; line-height: 1.1; }
.att-summary span { font-size: 9px; font-family: ui-monospace, monospace; text-transform: uppercase; }
.att-list { max-height: 340px; overflow: auto; }
.att-row { display: grid; grid-template-columns: 92px 1fr auto; gap: 12px; align-items: center; padding: 11px 0; border-bottom: 1px dotted var(--line); font-size: 12px; }
.row-company-label { display: block; font-family: ui-monospace, monospace; font-size: 9px !important; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 4px; }

/* Admin */
.admin-sidebar { overflow-y: auto; }
.admin-filters { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 16px; }
.admin-filters select, .admin-filters input { width: auto; min-width: 180px; max-width: 320px; min-height: 40px; }
.admin-note-card.slim { margin: 0 0 16px; padding: 12px 14px; font-size: 12px; color: var(--muted); }
.admin-summary { font-size: 13px; margin: 0 0 12px; }
.stat-card em { display: block; font-style: normal; font-size: 12px; color: var(--danger); margin-top: 6px; font-weight: 700; }
.company-admin-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.company-admin-card { border: 1px solid var(--line); background: var(--paper); border-top: 4px solid var(--brand); }
.company-admin-cover { height: 130px; background: #333 center/cover no-repeat; position: relative; }
.company-admin-cover .sw-brand-logo { position: absolute; left: 14px; bottom: -24px; width: 50px; height: 50px; margin: 0; font-size: 14px; }
.company-admin-body { padding: 32px 16px 16px; }
.company-admin-body h4 { margin: 0; font-size: 18px; }
.company-admin-body small { color: var(--muted); font-size: 11px; }
.company-admin-meta { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0; }
.company-admin-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.row-action.danger { color: var(--danger); }
.row-muted { opacity: .55; }
.fee-table input, .fee-table select { min-height: 36px; padding: 6px 8px; font-size: 12px; min-width: 90px; }
.table-actions { display: flex; gap: 4px; flex-wrap: wrap; }
.home-editor { display: grid; gap: 14px; }
.home-editor fieldset { border: 1px solid var(--line); background: var(--paper); padding: 18px; margin: 0; min-width: 0; }
.home-editor legend { font-family: ui-monospace, monospace; font-size: 10px; letter-spacing: .12em; font-weight: 800; padding: 0 6px; text-transform: uppercase; }
.home-editor label { margin-bottom: 10px; }
.home-editor input, .home-editor textarea { min-height: 40px; }
.editor-sub { margin: 22px 0 4px; font-size: 13px; text-transform: uppercase; letter-spacing: .06em; }
.list-item { border-top: 1px dashed var(--line); padding: 12px 0; display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 16px; }
.home-editor fieldset > .list-item:first-of-type { border-top: 0; }
.list-item.no-thumb { grid-template-columns: minmax(0, 1fr); }
.list-thumb { aspect-ratio: 1; background: var(--paper-2) center/cover no-repeat; border: 1px solid var(--line); }
.list-actions { display: flex; gap: 6px; }
.form-grid.three { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 12px; }
.upload-field { display: grid; gap: 6px; margin-bottom: 11px; }
.upload-field label { margin-bottom: 0; }
.upload-field input[type=file] { border: 0; background: transparent; padding: 0; min-height: 30px; font-size: 10px; }

@media (max-width: 1180px) {
  .stat-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 980px) {
  .nav-mobile-only { display: flex !important; }
  .sw-hero-bottom { grid-template-columns: 1fr; gap: 22px; }
  .sw-intro-grid, .co-intro-grid { grid-template-columns: 1fr; gap: 36px; }
  .sw-brand-grid { grid-template-columns: 1fr; }
  .sw-gallery-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 170px; }
  .admin-nav { grid-template-columns: repeat(3, 1fr); }
  .program-row.is-event::before { left: -8px; }
}
@media (max-width: 700px) {
  .sw-hero { min-height: calc(100svh - var(--header-h)); }
  .sw-hero-inner { padding-top: 64px; }
  .sw-hero-title { font-size: clamp(44px, 15.5vw, 120px); }
  .sw-hero-title .sw-outline { -webkit-text-stroke-width: 1.5px; }
  .sw-hero-local { font-size: 42px; }
  .sw-hero-copy .hero-actions { display: grid; }
  .sw-hero-stats { grid-template-columns: repeat(3, 1fr); }
  .sw-stat { flex-direction: column; gap: 4px; padding: 14px 8px 16px 0; }
  .sw-stat + .sw-stat { padding-left: 10px; }
  .sw-stat strong { font-size: 26px; }
  .sw-stat span { font-size: 9px; letter-spacing: .06em; }
  .sw-brand { min-height: 410px; padding: 18px; }
  .sw-pillars { grid-template-columns: 1fr; }
  .sw-pillar:nth-child(odd) { border-right: 0; }
  .sw-pillar:nth-child(even) { padding-left: 0; }
  .sw-gallery-grid { grid-auto-rows: 140px; gap: 6px; }
  .co-hero { min-height: 500px; }
  .co-logo { width: 58px; height: 58px; }
  .fee-row { grid-template-columns: 1fr auto; }
  .fee-row .btn { grid-column: 1 / -1; }
  .att-summary { grid-template-columns: repeat(2, 1fr); }
  .att-row { grid-template-columns: 80px 1fr; }
  .att-row .status { grid-column: 2; justify-self: start; }
  .list-item { grid-template-columns: 1fr; }
  .list-thumb { aspect-ratio: 16 / 7; }
  .form-grid.three { grid-template-columns: 1fr; }
  .admin-nav { grid-template-columns: repeat(3, 1fr); }
  .admin-filters { display: grid; grid-template-columns: 1fr; }
  .admin-filters select, .admin-filters input { max-width: none; width: 100%; }
  .program-row.is-event::before { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .sw-marquee-track, .sw-hero-media { animation: none; }
}

:root { --ph-dark: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27rgba(255%2C255%2C255%2C0.6)%27%20stroke-width%3D%271.1%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%273%27%20y%3D%274.5%27%20width%3D%2718%27%20height%3D%2715%27%20rx%3D%272%27%2F%3E%3Ccircle%20cx%3D%278.5%27%20cy%3D%279.5%27%20r%3D%271.5%27%2F%3E%3Cpath%20d%3D%27M21%2015.5l-4.8-4.8L6.5%2019.5%27%2F%3E%3C%2Fsvg%3E"); --ph-light: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23b5b1a6%27%20stroke-width%3D%271.1%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%273%27%20y%3D%274.5%27%20width%3D%2718%27%20height%3D%2715%27%20rx%3D%272%27%2F%3E%3Ccircle%20cx%3D%278.5%27%20cy%3D%279.5%27%20r%3D%271.5%27%2F%3E%3Cpath%20d%3D%27M21%2015.5l-4.8-4.8L6.5%2019.5%27%2F%3E%3C%2Fsvg%3E"); }
.sw-hero-media:not([style*="url("]) { background: #151714 var(--ph-dark) 80% 54% / clamp(72px, 7vw, 110px) no-repeat; filter: none; animation: none; }
.sw-brand-media:not([style*="url("]) { background: #1c1e1a var(--ph-dark) center 34% / 64px no-repeat; filter: none; }
.co-hero-media:not([style*="url("]) { background: #1c1e1a var(--ph-dark) 80% 50% / 110px no-repeat; filter: none; }
.company-admin-cover:not([style*="url("]) { background: #1c1e1a var(--ph-dark) center / 46px no-repeat; }
.list-thumb:not([style*="url("]) { background: #f4f2ec var(--ph-light) center / 28px no-repeat; }
.sw-tile-empty { background: #f8f7f2 var(--ph-light) center / 56px no-repeat; border: 1px solid rgba(21,23,20,.08); }
.sw-tile-empty::after { display: none; }
@media (max-width: 700px) {
  .sw-hero-media:not([style*="url("]) { background-position: center 16%; background-size: 72px; }
  .co-hero-media:not([style*="url("]) { background-position: 85% 22%; background-size: 64px; }
  .compact-hero, .about-hero, .news-hero, .contact-hero { background-position: 88% 18%; background-size: 64px; }
}

.sw-hero-media.has-slides { background: #0b0c0a; filter: grayscale(.2) contrast(1.05); }
.sw-ig[hidden] { display: none; }
.sw-hero-slide { position: absolute; inset: 0; background: center/cover no-repeat; opacity: 0; transform: scale(1.04); transition: opacity 1.4s ease, transform 7s ease-out; }
.sw-hero-slide.is-on { opacity: 1; transform: scale(1); }
.sw-hero-media.has-slides::after { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at 60% 40%, transparent 30%, rgba(8,9,8,.55) 100%), repeating-linear-gradient(0deg, rgba(255,255,255,.025) 0 1px, transparent 1px 3px); pointer-events: none; }
.sw-hero-dots { position: absolute; z-index: 3; right: 24px; top: 50%; transform: translateY(-50%); display: grid; gap: 8px; }
.sw-hero-dots span { width: 3px; height: 26px; background: rgba(255,255,255,.28); transition: background .4s, height .4s; }
.sw-hero-dots span.is-on { background: var(--accent); height: 44px; }

.sw-ig { background: var(--ink); color: var(--white); }
.sw-ig .section-head { margin-bottom: 30px; }
.sw-ig .section-head h2 { font-size: clamp(42px, 5.4vw, 86px); text-transform: uppercase; letter-spacing: -.055em; }
.sw-ig .section-note { color: rgba(255,255,255,.6); max-width: 420px; }
.sw-ig-accounts { display: flex; flex-wrap: wrap; gap: 10px; border-top: 1px solid var(--light-line); padding-top: 26px; }
.sw-ig-badge { --brand: var(--accent); position: relative; display: inline-flex; align-items: center; gap: 12px; padding: 8px 16px 8px 8px; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; background: rgba(255,255,255,.04); transition: border-color .25s, background .25s, transform .25s; max-width: 100%; }
.sw-ig-badge:hover, .sw-ig-badge:focus-visible { border-color: var(--brand); background: rgba(255,255,255,.08); transform: translateY(-2px); }
.sw-ig-badge-icon { position: relative; flex: 0 0 auto; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: var(--brand) center/cover no-repeat; color: var(--ink); font-weight: 900; font-size: 14px; letter-spacing: -.02em; }
.sw-ig-badge-ring { position: absolute; left: 4px; top: 50%; width: 54px; height: 54px; margin-top: -27px; border-radius: 50%; background: conic-gradient(#feda75, #fa7e1e, #d62976, #962fbf, #4f5bd5, #feda75); -webkit-mask: radial-gradient(circle, transparent 25px, #000 25.5px); mask: radial-gradient(circle, transparent 25px, #000 25.5px); opacity: .9; pointer-events: none; }
.sw-ig-badge-text { min-width: 0; }
.sw-ig-badge-text b { display: block; font-size: 14px; letter-spacing: -.01em; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sw-ig-badge-text small { display: block; margin-top: 2px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10.5px; letter-spacing: .04em; color: rgba(255,255,255,.58); white-space: nowrap; }
.sw-ig-badge-go { color: var(--brand); font-weight: 800; margin-left: 2px; }
@media (max-width: 700px) {
  .sw-hero-dots { right: 12px; }
  .sw-ig-accounts { flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x mandatory; margin-right: -20px; padding-right: 20px; scrollbar-width: none; }
  .sw-ig-accounts::-webkit-scrollbar { display: none; }
  .sw-ig-badge { flex: 0 0 auto; scroll-snap-align: start; }
}
@media (prefers-reduced-motion: reduce) {
  .sw-hero-slide { transition: opacity .3s; transform: none; }
}

.status-partial { background: #fdebd0; border-color: #e3b36b; color: #8a5300; }
.status-overdue { background: var(--danger); border-color: var(--danger); color: #fff; }
.status-confirmed { background: #e3eedf; border-color: #9fbf98; color: var(--success); }
.pay-summary .stat-grid { margin-bottom: 16px; }
.pay-stat strong { font-size: 34px; }
.pay-stat.is-good em { color: var(--success); }
.pay-stat.is-warn em { color: #8a5300; }
.pay-stat.is-bad strong { color: var(--danger); }
.pay-filters, .pay-actions { flex-wrap: wrap; align-items: center; }
.pay-filters input[type=search] { min-width: 220px; flex: 1; }
.pay-actions { margin-top: -6px; }
.inline-label { display: inline-flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 700; color: var(--muted); }
.inline-label input { min-height: 36px; }
.pay-table td { vertical-align: top; font-size: 12px; }
.pay-table td small { color: var(--muted); }
.pay-table .status { margin: 0 4px 4px 0; }
.pay-table tr.pay-row-overdue td:first-child { box-shadow: inset 3px 0 0 var(--danger); }
.pay-table tr.pay-row-paid td, .pay-table tr.pay-row-waived td { color: #5d5f56; }
.row-action.primary { background: var(--ink); color: var(--white); }
.row-action.primary:hover { background: var(--accent); color: var(--ink); }
.proof-line { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 6px; padding: 6px; border: 1px dashed #e0c45a; background: #fffaf0; }
.proof-line small { flex-basis: 100%; }
.proof-line.student { border-color: var(--line); background: transparent; padding: 4px 0 0; border-width: 1px 0 0; }
.proof-line.student small { flex-basis: auto; }
.fee-row-v3 .fee-meta { display: block; margin-top: 3px; }
.fee-row-v3.pay-row-overdue h4 { color: var(--danger); }
.pay-modal-info { margin: 0 0 14px; padding: 10px 12px; background: var(--paper); font-size: 12px; line-height: 1.6; }
@media (max-width: 760px) {
  .pay-stat strong { font-size: 26px; }
  .pay-filters > *, .pay-actions > * { flex: 1 1 100%; }
}
.admin-login-wrap[hidden], .admin-app[hidden], .auth-panel[hidden], .student-dashboard[hidden] { display: none !important; }
.portal-shell:has(.student-dashboard:not([hidden])) .portal-intro { position: static; }
.portal-shell:has(.student-dashboard:not([hidden])) .portal-visual { display: none; }
.table-scroll .admin-table th { top: 0; }
.fee-row-v3 .status { justify-self: start; }

.sw-ig-badge-icon { overflow: hidden; }
.sw-ig-badge-icon .sw-ig-avatar { position: absolute; inset: 0; width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: block; background: #fff; }
.sw-ig-badge-icon.has-img { background-color: #fff; }
.sw-ig-badge-icon.has-img .sw-ig-badge-initials { visibility: hidden; }

@media (max-width: 700px) {
  /* iOS: 16px inputs avoid zoom on focus */
  input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="color"]), select, textarea { font-size: 16px; min-height: 46px; }
  textarea { min-height: 96px; }
  .compact-form input, .compact-form select, .leave-form input, .leave-form select, .hero-editor input, .hero-editor select { min-height: 46px; }
  .upload-field input[type=file], input[type=file] { min-height: 44px; font-size: 13px; }
  .btn, .btn.small { min-height: 44px; }
  .filter-chip { min-height: 44px; }
  .text-link { min-height: 44px; padding-bottom: 0; }
  .back-link { min-height: 44px; align-items: center; margin-bottom: 26px; }
  .mini-action { min-height: 44px; min-width: 44px; padding: 0 6px; }
  .modal-close { width: 44px; height: 44px; }
  .row-action { min-height: 44px; min-width: 44px; padding: 0 12px; font-size: 11px; }
  .row-company { display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px; }
  .check-label { min-height: 44px; align-items: center; }
  .check-label input { width: 22px; height: 22px; margin: 0; }
  .check-label { grid-template-columns: 22px 1fr; }
  .site-footer { padding-top: 50px; }
  .footer-links > div { gap: 0; }
  .footer-links a { display: flex; align-items: center; min-height: 44px; font-size: 14px; border-bottom: 1px solid rgba(255,255,255,.07); }
  .footer-bottom { flex-wrap: wrap; align-items: center; gap: 6px 20px; }
  .footer-bottom a { display: inline-flex; align-items: center; min-height: 44px; font-size: 11px; }
  .sw-ig-accounts { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; overflow: visible; margin-right: 0; padding-right: 0; scroll-snap-type: none; }
  .sw-ig-badge { width: 100%; min-width: 0; min-height: 66px; padding-right: 18px; }
  .sw-ig-badge-text { flex: 1 1 auto; }
  .sw-ig-badge-go { margin-left: auto; font-size: 18px; }
  .toast { left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); min-width: 0; max-width: none; }
  .modal { width: calc(100% - 16px); max-height: calc(100dvh - 16px); }
  .modal-card { max-height: calc(100dvh - 16px); padding: 18px 14px calc(18px + env(safe-area-inset-bottom)); }
  .modal-card .form-grid, .modal-card .two-col { grid-template-columns: minmax(0, 1fr); }
  .dashboard-topbar .btn.small { min-width: 64px; }
  .admin-app { grid-template-columns: minmax(0, 1fr); }
  .admin-sidebar { min-width: 0; position: sticky; top: var(--header-h); z-index: 30; height: auto; flex-direction: row; align-items: stretch; overflow: visible; box-shadow: 0 6px 18px rgba(0,0,0,.18); }
  .admin-brand { display: none; }
  .admin-nav { display: flex; flex: 1 1 auto; min-width: 0; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .admin-nav::-webkit-scrollbar { display: none; }
  .admin-nav button { flex: 0 0 auto; min-height: 50px; display: inline-flex; gap: 6px; padding: 0 14px; border-bottom: 0; border-right: 1px solid rgba(255,255,255,.1); scroll-snap-align: start; white-space: nowrap; }
  .admin-nav button span { font-size: 8px; }
  .admin-logout { position: static; flex: 0 0 auto; width: auto; min-height: 50px; margin: 0; border-top: 0; border-left: 1px solid var(--light-line); padding: 0 14px; gap: 6px; }
  .admin-main { padding: 18px 12px 50px; }
  .admin-topbar { gap: 12px; }
  .admin-top-actions { width: 100%; }
  .admin-top-actions .btn { flex: 1 1 auto; justify-content: center; }
  .company-admin-actions .row-action { flex: 1 1 auto; }
  .table-scroll { overflow: visible; border: 0; }
  .admin-table, .admin-table tbody { display: block; width: 100%; background: transparent; }
  .admin-table thead { display: none; }
  .admin-table tr { display: block; background: var(--paper); border: 1px solid var(--line); margin-bottom: 10px; padding: 4px 14px 12px; }
  .admin-table td { display: block; position: relative; padding: 9px 0 9px 94px; min-height: 36px; border-bottom: 1px dashed var(--line); font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; box-shadow: none !important; }
  .admin-table td::before { content: attr(data-label); position: absolute; left: 0; top: 11px; width: 84px; font-family: ui-monospace, monospace; font-size: 10px; letter-spacing: .04em; line-height: 1.4; color: var(--muted); }
  .admin-table td.cell-head { font-size: 13px; padding: 12px 0 9px; }
  .admin-table td.cell-head::before { display: none; }
  .admin-table td.cell-head strong { font-size: 17px; margin-right: 6px; }
  .admin-table td.cell-actions, .admin-table td.cell-full { border-bottom: 0; padding: 10px 0 0; }
  .admin-table td.cell-actions::before, .admin-table td.cell-full::before { display: none; }
  .admin-table td.cell-empty { display: none; }
  .admin-table td:last-child { border-bottom: 0; }
  .admin-table td input, .admin-table td select { width: 100%; }
  .table-actions { display: flex; flex-wrap: wrap; gap: 8px; }
  .table-actions .row-action { flex: 1 1 30%; }
  .pay-table tr.pay-row-overdue { border-left: 4px solid var(--danger); }
  .proof-line { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 8px; }
  .proof-line small { flex: 1 1 100%; order: -1; }
  .proof-line .row-action { flex: 1 1 28%; }
  .attendance-status { flex-wrap: wrap; gap: 6px; }
  .attendance-status label { min-height: 44px; padding: 0 12px; border: 1px solid var(--line); font-size: 12px; }
  .attendance-status label:has(input:checked) { background: var(--ink); color: var(--white); border-color: var(--ink); }
}

.status-moved { background: #e6ecf6; border-color: #9fb2d3; color: #2c4a7a; }
.tag-mini { display: inline-flex; align-items: center; gap: 4px; margin-left: 6px; padding: 2px 6px; font-size: 10px; font-weight: 800; line-height: 1.4; border: 1px solid var(--line); background: var(--paper-2); color: var(--ink); white-space: nowrap; vertical-align: middle; }
.tag-pass { background: #fff3c4; border-color: #e0c45a; color: #5e4a00; }
.tag-swap { background: #e6ecf6; border-color: #9fb2d3; color: #2c4a7a; }
.tag-warn { background: #f6e1dc; border-color: #d9a093; color: var(--danger); }
.roster-tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 5px; }
.roster-tags .tag-mini { margin-left: 0; }
.att-guest { background: rgba(159,178,211,.12); }
.nav-count { display: inline-flex; min-width: 18px; height: 18px; padding: 0 5px; margin-left: 6px; align-items: center; justify-content: center; background: var(--danger); color: #fff; font-style: normal; font-size: 10px; font-weight: 800; border-radius: 9px; }
.nav-count[hidden] { display: none; }
.admin-hint { margin: 0 0 16px; padding: 10px 14px; border-left: 3px solid var(--accent); background: var(--paper-2); font-size: 12px; line-height: 1.6; color: var(--muted); }
.admin-subhead { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 26px 0 12px; }
.admin-subhead h3 { margin: 0; font-size: 18px; }
.muted-dash { color: var(--muted); }
.check-label.in-form { align-self: end; }

.pass-cell { display: grid; gap: 2px; min-width: 130px; padding: 4px 0; }
.pass-cell + .pass-cell { border-top: 1px dashed var(--line); }
.pass-cell b { font-size: 13px; }
.pass-cell small { color: var(--muted); font-size: 10px; }
.pass-cell .status { justify-self: start; margin-top: 2px; }
.pass-lost { color: var(--danger) !important; font-weight: 700; }
.pass-state.pass-active { background: #e3eedf; border-color: #9fbf98; color: var(--success); }
.pass-state.pass-expired, .pass-state.pass-void { background: #f6e1dc; border-color: #d9a093; color: var(--danger); }
.pass-state.pass-used, .pass-state.pass-upcoming { background: var(--paper-2); color: var(--muted); }
.pass-bar { height: 6px; background: var(--paper-3, #e7e3d8); margin: 6px 0; overflow: hidden; }
.pass-bar i { display: block; height: 100%; background: var(--accent); transition: width .5s ease; }
#studentPasses { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; padding-top: 10px; }
.pass-card { border: 1px solid var(--line); background: var(--paper); padding: 18px; display: grid; gap: 8px; border-top: 4px solid var(--accent); }
.pass-card.pass-expired, .pass-card.pass-used { border-top-color: var(--muted); opacity: .82; }
.pass-head { display: flex; justify-content: space-between; gap: 10px; align-items: start; }
.pass-head small { font-family: ui-monospace, monospace; font-size: 9px; letter-spacing: .1em; color: var(--muted); }
.pass-head h4 { margin: 2px 0 0; font-size: 18px; }
.pass-badges { display: flex; gap: 4px; flex-wrap: wrap; justify-content: end; }
.pass-numbers { display: grid; grid-template-columns: 1.4fr 1fr 1fr; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.pass-numbers div { padding: 10px 0; display: grid; }
.pass-numbers div + div { border-left: 1px solid var(--line); padding-left: 12px; }
.pass-numbers strong { font-size: 30px; letter-spacing: -.04em; line-height: 1; }
.pass-numbers div:first-child strong { font-size: 44px; color: var(--ink); }
.pass-numbers span { font-size: 11px; color: var(--muted); margin-top: 4px; }
.pass-valid { margin: 0; font-size: 12px; }
.pass-valid.muted { color: var(--muted); }
.pass-alert { padding: 8px 10px; font-size: 12px; font-weight: 700; background: #fff3c4; border-left: 3px solid #e0c45a; color: #5e4a00; }
.pass-alert.bad { background: #f6e1dc; border-left-color: var(--danger); color: var(--danger); }
.pass-usage summary { cursor: pointer; font-size: 12px; font-weight: 800; }
.pass-usage ul { list-style: none; margin: 8px 0 0; padding: 0; }
.pass-usage li { display: grid; grid-template-columns: 86px 1fr auto; gap: 8px; align-items: center; padding: 6px 0; border-bottom: 1px solid var(--line); font-size: 12px; }
.makeup-row { grid-template-columns: 1fr auto auto; }
#makeupForm { margin-bottom: 8px; }
.pkg-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px; }
.pkg-card { border: 1px solid var(--line); background: var(--paper); padding: 18px; display: grid; gap: 6px; align-content: start; }
.pkg-card.is-off { opacity: .55; }
.pkg-top { display: flex; align-items: baseline; gap: 6px; }
.pkg-top strong { font-size: 46px; line-height: 1; letter-spacing: -.05em; }
.pkg-top span { font-size: 12px; color: var(--muted); }
.pkg-card h4 { margin: 4px 0 0; font-size: 17px; }
.pkg-card p { margin: 0; font-size: 12px; font-weight: 700; }
.pkg-card small { color: var(--muted); font-size: 11px; }
.pkg-foot { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 8px; }
.pkg-foot .row-action:first-of-type { margin-left: auto; }
.pkg-classes { display: grid; gap: 6px; }
.pkg-classes > div { display: flex; flex-wrap: wrap; gap: 6px 14px; }
.pkg-classes small { color: var(--muted); font-size: 11px; }
.detail-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 26px; }
.detail-grid h4 { margin: 16px 0 8px; font-size: 14px; }
.detail-grid p { margin: 0; font-size: 13px; }
.detail-head { display: flex; justify-content: space-between; align-items: center; }
.detail-enr { display: flex; justify-content: space-between; gap: 10px; align-items: center; padding: 6px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.detail-enr select { width: auto; padding: 6px 8px; }
.detail-att { display: grid; gap: 4px; font-size: 12px; }
.pass-mini { border: 1px solid var(--line); padding: 10px 12px; margin-bottom: 8px; background: var(--paper); font-size: 12px; }
.pass-mini small { color: var(--muted); }
.pass-mini-num { font-weight: 800; margin-top: 4px; }

.league-hero { background: #1c1e1a var(--ph-dark) 82% 50% / 110px no-repeat; }
.league-hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(13,14,12,.92), rgba(13,14,12,.5)); }
.league-body { padding: 50px 0 90px; }
.lg-comps { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 18px; }
.lg-comps button { border: 1px solid var(--line); background: var(--paper); padding: 10px 14px; cursor: pointer; font-weight: 800; font-size: 13px; display: grid; text-align: left; gap: 2px; }
.lg-comps button small { font-family: ui-monospace, monospace; font-size: 9px; color: var(--muted); font-weight: 400; }
.lg-comps button.active { background: var(--ink); color: var(--white); border-color: var(--ink); }
.lg-comps button.active small { color: var(--accent); }
.lg-hero { position: relative; display: grid; grid-template-columns: 1.3fr .9fr; gap: 30px; padding: 44px; color: var(--white); background: #1c1e1a center / cover no-repeat; min-height: 340px; overflow: hidden; }
.lg-hero-shade { position: absolute; inset: 0; background: linear-gradient(100deg, rgba(13,14,12,.94) 30%, rgba(13,14,12,.55)); }
.lg-hero-body, .lg-hero-table { position: relative; z-index: 1; }
.lg-hero h2 { font-size: clamp(34px, 4vw, 58px); margin: 6px 0 14px; letter-spacing: -.04em; line-height: 1; }
.lg-hero p:not(.kicker) { color: rgba(255,255,255,.72); line-height: 1.7; font-size: 14px; max-width: 560px; }
.lg-meta { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; font-size: 12px; color: rgba(255,255,255,.8); }
.lg-st-ongoing { background: var(--accent); border-color: var(--accent); color: var(--ink); }
.lg-st-upcoming { background: #e6ecf6; color: #2c4a7a; }
.lg-hero-table { background: rgba(244,241,232,.96); color: var(--ink); padding: 16px; align-self: end; }
.lg-hero-table h4 { margin: 0 0 6px; font-size: 13px; font-family: ui-monospace, monospace; letter-spacing: .1em; }
.lg-hero-table .lg-note { display: none; }
.lg-tabs { display: flex; gap: 0; border-bottom: 2px solid var(--ink); margin: 28px 0 22px; overflow-x: auto; }
.lg-tabs button { border: 0; background: transparent; padding: 13px 20px; font-weight: 800; font-size: 14px; cursor: pointer; white-space: nowrap; color: var(--muted); }
.lg-tabs button.active { background: var(--ink); color: var(--accent); }
.lg-round h4 { font-family: ui-monospace, monospace; font-size: 11px; letter-spacing: .12em; margin: 22px 0 8px; color: var(--muted); text-transform: uppercase; }
.lg-match { display: grid; grid-template-columns: 150px 1fr 130px 1fr; align-items: center; gap: 14px; padding: 14px 16px; background: var(--paper); border: 1px solid var(--line); margin-bottom: 6px; }
.lg-match.is-final { border-left: 4px solid var(--accent); }
.lg-when { display: grid; font-size: 12px; }
.lg-when b { font-size: 14px; }
.lg-when small { color: var(--muted); font-size: 10px; }
.lg-side { display: flex; align-items: center; gap: 10px; font-weight: 700; font-size: 15px; }
.lg-side.away { justify-content: end; text-align: right; }
.lg-side.win { font-weight: 900; }
.lg-side.win span::after { content: ' ●'; color: var(--accent); font-size: 10px; }
.lg-score { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; text-align: center; }
.lg-score b { font-size: 28px; letter-spacing: -.04em; }
.lg-score i { font-style: normal; color: var(--muted); }
.lg-score em { grid-column: 1 / -1; font-style: normal; font-weight: 900; color: var(--muted); font-size: 18px; }
.lg-score small { grid-column: 1 / -1; font-family: ui-monospace, monospace; font-size: 9px; color: var(--muted); text-transform: uppercase; letter-spacing: .1em; }
.lg-logo { width: 38px; height: 38px; flex: none; display: grid; place-items: center; }
.lg-logo img { width: 100%; height: 100%; object-fit: contain; }
.lg-logo span { width: 100%; height: 100%; display: grid; place-items: center; color: #fff; font-size: 11px; font-weight: 900; border-radius: 50%; }
.lg-logo.sm { width: 24px; height: 24px; }
.lg-logo.lg { width: 64px; height: 64px; margin-top: -48px; background: var(--paper); border-radius: 50%; padding: 4px; box-shadow: 0 0 0 3px var(--team, var(--accent)); }
.lg-table { width: 100%; border-collapse: collapse; font-size: 13px; background: var(--paper); }
.lg-table th { font-family: ui-monospace, monospace; font-size: 10px; font-weight: 400; color: var(--muted); text-align: center; padding: 9px 6px; border-bottom: 2px solid var(--ink); }
.lg-table td { text-align: center; padding: 10px 6px; border-bottom: 1px solid var(--line); }
.lg-table tbody tr:first-child td { background: rgba(232,183,37,.14); }
.lg-team { display: flex; align-items: center; gap: 8px; text-align: left !important; font-weight: 800; }
.lg-table th:nth-child(2) { text-align: left; }
.lg-form { display: inline-flex; gap: 3px; }
.lg-form i { font-style: normal; width: 18px; height: 18px; display: grid; place-items: center; font-size: 9px; font-weight: 900; color: #fff; }
.f-W { background: var(--success); } .f-L { background: var(--danger); } .f-D { background: var(--muted); }
.lg-note { font-size: 11px; color: var(--muted); margin: 10px 0 0; }
.lg-teams { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 16px; }
.lg-team-card { background: var(--paper); border: 1px solid var(--line); border-top: 4px solid var(--team); overflow: hidden; }
.lg-team-photo { height: 150px; background: var(--team) center / cover no-repeat; }
.lg-team-body { padding: 0 18px 18px; display: grid; gap: 6px; }
.lg-team-body h4 { margin: 4px 0 0; font-size: 19px; }
.lg-team-body small { color: var(--muted); font-size: 11px; }
.lg-team-body p { margin: 0; font-size: 13px; line-height: 1.6; color: var(--muted); }
.lg-team-rec { display: flex; gap: 6px; flex-wrap: wrap; }
.lg-team-rec span { font-size: 11px; font-weight: 800; padding: 4px 7px; background: var(--paper-2); }
.lg-photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.lg-photo { position: relative; display: block; overflow: hidden; background: var(--ink); margin: 0; aspect-ratio: 4 / 3; }
.lg-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
a.lg-photo:hover img { transform: scale(1.05); }
a.lg-photo span { position: absolute; left: 0; right: 0; bottom: 0; padding: 22px 12px 10px; color: #fff; font-size: 12px; background: linear-gradient(transparent, rgba(0,0,0,.75)); }
.lg-photos.admin .lg-photo { aspect-ratio: auto; background: var(--paper); border: 1px solid var(--line); }
.lg-photos.admin img { height: 140px; }
.lg-photos.admin figcaption { display: flex; gap: 6px; padding: 6px; }
.lg-photos.admin input { flex: 1; padding: 6px 8px; font-size: 12px; }
.lg-admin-bar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 8px; }
.lg-admin-grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: 22px; }
.lg-score-in { white-space: nowrap; }
.lg-score-in input { width: 58px; padding: 6px; text-align: center; font-weight: 800; font-size: 15px; }
.lg-score-in i { font-style: normal; margin: 0 4px; }
.lg-admin-teams { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; }
.lg-admin-team { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; padding: 10px; border: 1px solid var(--line); background: var(--paper); opacity: .6; }
.lg-admin-team.in { opacity: 1; }
.lg-admin-team small { display: block; color: var(--muted); font-size: 10px; }
.lg-upload { cursor: pointer; }

@media (max-width: 980px) {
  .lg-hero { grid-template-columns: 1fr; padding: 30px 24px; }
  .lg-admin-grid, .detail-grid { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .lg-match { grid-template-columns: 1fr auto 1fr; gap: 8px; padding: 12px; }
  .lg-when { grid-column: 1 / -1; display: flex; gap: 8px; align-items: baseline; }
  .lg-side { font-size: 13px; flex-direction: column; text-align: center; gap: 4px; }
  .lg-side.away { flex-direction: column-reverse; text-align: center; justify-content: center; }
  .lg-score b { font-size: 22px; }
  .lg-hero h2 { font-size: 32px; }
  .lg-tabs button { padding: 11px 14px; font-size: 13px; }
  .lg-table { font-size: 12px; }
  .lg-photos { grid-template-columns: 1fr 1fr; gap: 6px; }
  a.lg-photo span { font-size: 10px; padding: 14px 6px 6px; }
  #studentPasses { grid-template-columns: 1fr; }
  .pass-numbers div:first-child strong { font-size: 36px; }
  .pkg-grid { grid-template-columns: 1fr; }
}
.admin-sidebar { overflow-y: auto; }
.admin-nav button { min-height: 50px; grid-template-columns: 32px 1fr auto; }
.lg-admin-matches .table-actions { flex-wrap: nowrap; }
@media (max-width: 980px) { .admin-nav button { min-height: 50px; } }
.th-pass { min-width: 120px; white-space: nowrap; }
.league-hero { background: #1c1e1a url('img/ig/sw01_game_clip_sep17.jpg') center 40% / cover no-repeat; }
.league-hero::before { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(13,14,12,.92), rgba(13,14,12,.5)); }
.lg-admin-grid { grid-template-columns: 1fr; }
@media (min-width: 1500px) { .lg-admin-grid { grid-template-columns: 1.6fr 1fr; } }
.lg-admin-matches .row-action { white-space: nowrap; }

@media (max-width: 700px) {
  .admin-table td.lg-score-in { display: flex; align-items: center; gap: 8px; white-space: normal; }
  .admin-table td.lg-score-in input { flex: 1 1 0; width: auto; min-width: 0; max-width: 110px; }
  .admin-table td.lg-score-in i { margin: 0; }
  .lg-admin-matches .table-actions { flex-wrap: wrap; }
  .lg-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .lg-table th { white-space: nowrap; padding: 8px 4px; }
  .lg-table td { padding: 9px 4px; }
  .lg-table td:first-child, .lg-table th:first-child { padding-left: 2px; }
  .lg-full th:nth-child(5), .lg-full td:nth-child(5), .lg-full th:nth-child(7), .lg-full td:nth-child(7), .lg-full th:nth-child(8), .lg-full td:nth-child(8) { display: none; }
  .lg-team { gap: 6px; font-size: 12px; line-height: 1.3; min-width: 0; }
  .lg-team .lg-logo.sm { flex: 0 0 auto; }
  .lg-form i { width: 16px; height: 16px; }
  .lg-hero { padding: 26px 16px; gap: 20px; }
  .lg-hero-table { padding: 12px 10px; }
  .pass-usage summary { display: flex; align-items: center; min-height: 44px; }
  .pass-usage li { grid-template-columns: 78px 1fr auto; }
  .attendance-status { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .attendance-status label { justify-content: center; white-space: nowrap; padding: 0 8px; }
  #adminStudents .admin-table td.cell-head { font-family: ui-monospace, monospace; font-size: 10px; color: var(--muted); padding: 10px 0 0; border-bottom: 0; min-height: 0; }
}

.m-only, .m-sum, .m-chev, .m-count { display: none; }
@media (max-width: 700px) {
  .m-only { display: revert; }
  .m-chev { display: inline-block; flex: 0 0 auto; width: 10px; height: 10px; margin: 0 4px 0 auto; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-3px) rotate(45deg); transition: transform .18s ease; opacity: .7; }
  .m-open > .m-toggle > .m-chev, .m-open > .m-toggle .m-chev, .m-sub.m-open .m-chev { transform: translateY(2px) rotate(-135deg); }
  .m-toggle { cursor: pointer; -webkit-tap-highlight-color: transparent; user-select: none; }

  .admin-table tr.m-row { position: relative; padding: 2px 14px 10px; margin-bottom: 12px; }
  .admin-table tr.m-row > td.cell-title { padding: 14px 30px 10px 0; cursor: pointer; -webkit-tap-highlight-color: transparent; }
  .admin-table tr.m-row > td.cell-title::after { content: ''; position: absolute; right: 2px; top: 19px; width: 9px; height: 9px; border-right: 2px solid var(--ink); border-bottom: 2px solid var(--ink); transform: rotate(45deg); opacity: .65; transition: transform .18s ease; }
  .admin-table tr.m-row.m-open > td.cell-title::after { transform: translateY(5px) rotate(-135deg); }
  .admin-table tr.m-row:not(.m-open) > td:not(.cell-head):not(.cell-title) { display: none; }
  .admin-table tr.m-row:not(.m-open) { padding-bottom: 2px; }
  .admin-table tr.m-row:not(.m-open) > td.cell-title { border-bottom: 0; }
  .admin-table tr.m-row:not(.m-open) > td.cell-title small, .admin-table tr.m-row:not(.m-open) > td.cell-title .tag-mini { display: none; }
  .admin-table tr.m-row.m-open { box-shadow: 0 6px 18px rgba(0,0,0,.08); border-color: var(--ink); }
  .admin-table tr.m-row > td.cell-title strong { font-size: 18px; }
  .m-sum { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-top: 6px; }
  tr.m-open .m-sum { display: none; }
  .m-sum .m-key { font-size: 14px; font-weight: 800; color: var(--ink); font-family: inherit; }
  .m-sum .m-key + .m-key::before { content: '·'; margin-right: 10px; color: var(--muted); font-weight: 400; }
  .m-sum .m-note { font-weight: 400; color: var(--muted); font-size: 12px; }
  .m-sum .status { font-size: 10px; }
  .m-sum .m-unset { background: transparent; border: 1px dashed var(--muted); color: var(--muted); }
  #adminStudents .admin-table tr.m-row > td.cell-head { padding: 10px 0 0; }
  #adminStudents .admin-table tr.m-row > td.cell-title { border-bottom: 0; padding-top: 2px; }
  #adminStudents .admin-table tr.m-row > td.cell-title::before { display: none; }
  #adminStudents .admin-table tr.m-row > td.cell-title::after { top: 30px; }
  #adminStudents .admin-table tr.m-row.m-open > td.cell-title { padding-left: 0; border-bottom: 1px dashed var(--line); }
  .lg-admin-matches tr.m-row .m-sum .m-key { font-size: 16px; letter-spacing: -.01em; flex: 1 1 100%; }
  #attendanceTable tr.m-row > td.cell-title { font-size: 14px; }
  #attendanceTable tr.m-row.m-open { border-left: 4px solid var(--accent); }

  .admin-hint.m-clamp:not(.m-open) { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; cursor: pointer; position: relative; }
  .admin-hint.m-clamp { font-size: 12px; }

  .dashboard-grid { gap: 12px; grid-template-columns: minmax(0, 1fr); }
  .student-dashboard, .dashboard-grid, .dashboard-grid > .dash-card, .dash-card-head > * { min-width: 0; }
  .dash-card.m-coll { min-height: 0; padding: 0 16px; }
  .dash-card.m-coll > .dash-card-head { min-height: 60px; margin: 0; padding: 12px 0; border-bottom: 0; gap: 10px; flex-wrap: nowrap; }
  .dash-card.m-coll.m-open > .dash-card-head { border-bottom: 1px solid var(--line); margin-bottom: 10px; }
  .dash-card.m-coll.m-open { padding-bottom: 16px; border-color: var(--ink); }
  .dash-card.m-coll:not(.m-open) > :not(.dash-card-head) { display: none !important; }
  .dash-card-head h3 { white-space: nowrap; font-size: 19px; margin: 0; flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
  .dash-card-head .text-link { font-size: 11px; white-space: nowrap; min-height: 36px; margin-left: auto; flex: 0 0 auto; }
  .dash-card-head .text-link + .m-count, .dash-card-head .text-link ~ .m-chev { margin-left: 8px; }
  .dash-card-head .pill, .dash-card-head [class*=pill], .dash-card-head > span:not(.m-count) { white-space: nowrap; flex: 0 0 auto; margin-left: auto; font-size: 11px; }
  .dash-card-head .pill ~ .m-chev, .dash-card-head > span ~ .m-chev { margin-left: 6px; }
  .m-count { display: inline-flex; align-items: center; margin-left: auto; padding: 2px 8px; font-size: 12px; font-weight: 800; background: var(--paper-2); border: 1px solid var(--line); white-space: nowrap; }
  .m-count:empty { display: none; }
  .m-count:not(:empty) + .m-chev { margin-left: 8px; }
  .dash-card-head .btn.small { min-height: 36px; padding: 0 10px; margin-left: auto; }

  .pass-card.m-coll { gap: 6px; padding: 14px 16px; cursor: pointer; }
  .pass-card.m-coll.m-open { cursor: default; }
  .pass-card .pass-head { align-items: center; }
  .pass-card .pass-head small { display: none; }
  .pass-card .pass-head h4 { font-size: 17px; }
  .pass-card:not(.m-open) > :not(.pass-head):not(.pass-sumline) { display: none !important; }
  .pass-card.m-open > .pass-sumline { display: none !important; }
  .pass-sumline { display: flex !important; align-items: baseline; gap: 6px; margin: 0; flex-wrap: wrap; }
  .pass-sumline b { font-size: 34px; letter-spacing: -.04em; line-height: 1; }
  .pass-sumline span { font-size: 13px; font-weight: 700; }
  .pass-sumline em { font-style: normal; font-size: 12px; color: var(--muted); margin-left: auto; }
  .pass-card.m-open .pass-numbers div:first-child strong { font-size: 46px; }
  .pass-card .pass-badges .status { font-size: 10px; }

  .pkg-card.m-coll { padding: 14px 16px; gap: 4px; cursor: pointer; }
  .pkg-card.m-coll > h4 { display: flex; align-items: center; gap: 8px; }
  .pkg-card.m-coll:not(.m-open) > small, .pkg-card.m-coll:not(.m-open) > .pkg-foot { display: none; }

  .lg-hero-body > p:not(.kicker), .lg-hero-table { display: none; }
  .lg-hero h2 { font-size: 30px; }
  .lg-round.m-coll { border: 1px solid var(--line); background: var(--paper); margin-bottom: 10px; padding: 0 12px; }
  .lg-round.m-coll > h4 { display: flex; align-items: center; gap: 10px; margin: 0; min-height: 52px; font-size: 13px; color: var(--ink); }
  .lg-round.m-coll > h4 em { font-style: normal; font-weight: 400; color: var(--muted); font-size: 11px; letter-spacing: .04em; }
  .lg-round.m-coll:not(.m-open) > .lg-match { display: none; }
  .lg-round.m-coll.m-open { border-color: var(--ink); padding-bottom: 8px; }
  .lg-match .lg-score b { font-size: 26px; }
  .lg-team-card.m-coll:not(.m-open) .lg-team-photo, .lg-team-card.m-coll:not(.m-open) .lg-team-body > small, .lg-team-card.m-coll:not(.m-open) .lg-team-body > p { display: none; }
  .lg-team-card.m-coll:not(.m-open) { cursor: pointer; }
  .lg-team-card.m-coll:not(.m-open) .lg-team-body { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: center; gap: 4px 12px; padding: 12px 14px; }
  .lg-team-card.m-coll:not(.m-open) .lg-logo.lg { width: 44px; height: 44px; margin: 0; grid-row: span 2; }
  .lg-team-card.m-coll:not(.m-open) .lg-team-body h4 { margin: 0; font-size: 16px; }
  .lg-team-card.m-coll:not(.m-open) .lg-team-rec { grid-column: 2; margin: 0; font-size: 12px; }
  .lg-team-card.m-coll:not(.m-open) .lg-team-body > .m-chev { grid-column: 3; grid-row: 1 / span 2; }
  .lg-team-card.m-coll.m-open .lg-team-body > .m-chev { position: absolute; right: 16px; top: 14px; transform: translateY(2px) rotate(-135deg); color: var(--white); }
  .lg-team-card.m-coll { position: relative; }

  #adminLeague .admin-subhead.m-sub { border: 1px solid var(--line); background: var(--paper); padding: 6px 12px; margin: 12px 0 0; min-height: 54px; }
  #adminLeague .admin-subhead.m-sub h3 { display: flex; align-items: center; gap: 10px; flex: 1 1 auto; margin: 0; min-height: 42px; font-size: 16px; }
  #adminLeague .admin-subhead.m-sub.m-open { border-color: var(--ink); margin-bottom: 10px; }
  #adminLeague .admin-subhead.m-sub:not(.m-open) + *, #adminLeague section > .admin-subhead.m-sub:not(.m-open) ~ * { display: none !important; }
  #adminLeague .lg-admin-grid { gap: 0; }
}
