:root{
  --blue:#0968ff; --blue2:#004fda; --yellow:#fff200; --ink:#081225; --muted:#607086; --paper:#ffffff; --soft:#f2f6ff; --line:#dce5f5; --dark:#071223; --green:#20c875; --red:#fb4b57; --orange:#ffb020; --radius:24px; --shadow:0 18px 50px rgba(8,18,37,.12);
}
*{box-sizing:border-box} html{scroll-behavior:smooth;overflow-x:hidden} body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#f6f8fc;color:var(--ink);line-height:1.65;overflow-x:hidden;padding-bottom:82px} a{color:inherit;text-decoration:none} img{max-width:100%;display:block} button,input,select,textarea{font:inherit} .skip-link{position:absolute;left:-999px;top:8px;background:#fff;padding:10px 14px;border-radius:12px;z-index:1000}.skip-link:focus{left:8px}.shell{width:min(1180px,100% - 28px);margin-inline:auto}.top-strip{height:5px;background:linear-gradient(90deg,var(--yellow),var(--blue),var(--yellow))}.site-header{position:sticky;top:0;background:rgba(7,18,35,.94);backdrop-filter:blur(14px);z-index:50;box-shadow:0 10px 30px rgba(0,0,0,.16)}.header-inner{min-height:72px;display:flex;align-items:center;gap:18px}.brand{display:flex;align-items:center;min-width:150px}.brand img{height:48px;width:auto;object-fit:contain}.desktop-nav{display:none;align-items:center;gap:4px;margin-inline:auto}.desktop-nav a{font-size:13px;font-weight:900;text-transform:uppercase;color:#eaf2ff;padding:12px 14px;border-radius:999px;letter-spacing:.03em}.desktop-nav a:hover,.desktop-nav a.is-active{background:rgba(9,104,255,.18);color:var(--yellow)}.header-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.portal-link{display:none;color:#fff;font-weight:800;font-size:13px}.btn,.btn-outline,.btn-white{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:none;border-radius:18px;padding:14px 20px;font-weight:950;letter-spacing:.02em;cursor:pointer;transition:.18s ease;min-height:48px}.btn{background:linear-gradient(135deg,var(--blue),#003eb1);color:#fff;box-shadow:0 12px 30px rgba(9,104,255,.25)}.btn:hover{transform:translateY(-2px);box-shadow:0 18px 40px rgba(9,104,255,.34)}.btn-outline{background:#fff;color:var(--blue);border:2px solid var(--blue)}.btn-white{background:#fff;color:var(--ink)}.btn-small{padding:10px 14px;min-height:40px;border-radius:14px;font-size:13px}.mobile-app-nav{position:fixed;left:0;right:0;bottom:0;z-index:90;display:grid;grid-template-columns:repeat(5,1fr);gap:4px;padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:rgba(7,18,35,.96);border-top:1px solid rgba(255,255,255,.12);box-shadow:0 -20px 50px rgba(0,0,0,.28);backdrop-filter:blur(16px)}.mobile-app-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;color:#c8d9f7;border-radius:16px;padding:7px 2px;font-size:10px;font-weight:900}.mobile-app-nav a span{font-size:18px;line-height:1}.mobile-app-nav a.is-active,.mobile-app-nav a:hover{background:rgba(9,104,255,.22);color:#fff}.main-content{min-height:70vh}.hero{position:relative;overflow:hidden;background:#071223;color:#fff}.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,18,35,.34),rgba(7,18,35,.96)),radial-gradient(circle at 88% 18%,rgba(255,242,0,.28),transparent 25%),radial-gradient(circle at 8% 15%,rgba(9,104,255,.5),transparent 32%);z-index:1}.hero-media{position:absolute;inset:0;opacity:.86}.hero-media img{width:100%;height:100%;object-fit:cover;filter:saturate(1.08) contrast(1.04)}.hero-inner{position:relative;z-index:2;min-height:calc(100svh - 77px);display:grid;align-items:end;padding:36px 0}.hero-card{padding:24px;border-radius:28px;background:linear-gradient(180deg,rgba(7,18,35,.74),rgba(7,18,35,.93));border:1px solid rgba(255,255,255,.14);box-shadow:var(--shadow);backdrop-filter:blur(16px)}.hero-logo{height:58px;width:auto;margin-bottom:18px}.eyebrow{display:inline-flex;gap:8px;align-items:center;border-radius:999px;background:rgba(255,242,0,.12);border:1px solid rgba(255,242,0,.35);color:#fff;padding:8px 12px;font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}.hero h1,.page-hero h1{margin:14px 0 12px;font-size:clamp(36px,10vw,86px);line-height:.94;letter-spacing:-.06em;text-wrap:balance}.hero p{color:#dbe8ff;font-size:clamp(16px,4vw,21px);margin:0 0 20px}.hero-actions{display:flex;flex-direction:column;gap:10px}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px}.stat{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.11);border-radius:18px;padding:12px;text-align:center}.stat b{display:block;color:var(--yellow);font-size:20px;line-height:1}.stat span{font-size:11px;color:#c8d9f7;font-weight:800;text-transform:uppercase}.section{padding:56px 0}.section.alt{background:#eaf0fa}.section.dark{background:#071223;color:#fff}.section-head{margin-bottom:24px}.section-head.center{text-align:center}.kicker{color:var(--blue);font-weight:950;text-transform:uppercase;letter-spacing:.12em;font-size:12px}.section h2,.page-title{font-size:clamp(30px,7vw,54px);line-height:1.02;letter-spacing:-.05em;margin:6px 0 12px}.section p.lead,.page-lead{font-size:18px;color:var(--muted);max-width:760px}.dark .lead,.dark .muted{color:#cad9ef}.grid{display:grid;gap:18px}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 12px 34px rgba(8,18,37,.08);overflow:hidden}.card-pad{padding:20px}.feature-card{padding:22px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 10px 28px rgba(8,18,37,.08)}.feature-icon{width:50px;height:50px;border-radius:18px;background:linear-gradient(135deg,var(--blue),#033aa3);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;margin-bottom:14px}.feature-card h3,.class-card h3,.product-card h3{margin:0 0 8px;line-height:1.12;font-size:21px}.feature-card p{margin:0;color:var(--muted)}.intro-split{display:grid;gap:24px;align-items:center}.photo-stack{display:grid;grid-template-columns:1fr 1fr;gap:12px}.photo-stack img{width:100%;height:180px;object-fit:cover;border-radius:24px;box-shadow:var(--shadow)}.photo-stack img:first-child{grid-column:1/-1;height:230px}.class-card{display:grid;gap:0;overflow:hidden}.class-card .class-image{height:220px;object-fit:cover;width:100%;background:#eef3fb}.class-card .class-logo{max-height:92px;width:auto;object-fit:contain;margin-bottom:12px}.class-content{padding:20px}.pill-row{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.pill{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:7px 10px;background:#eef4ff;color:#084ac8;font-size:12px;font-weight:950}.tick-list{padding-left:0;list-style:none;display:grid;gap:8px;margin:16px 0}.tick-list li{position:relative;padding-left:26px;font-weight:800;color:#273348}.tick-list li::before{content:"✓";position:absolute;left:0;top:0;color:var(--green);font-weight:950}.session-mini{background:#f7f9fe;border:1px solid var(--line);border-radius:18px;overflow:hidden;margin-top:14px}.session-mini-head{display:flex;justify-content:space-between;gap:10px;background:var(--blue);color:#fff;padding:12px 14px;font-weight:950}.session-mini-row{display:grid;gap:4px;padding:13px 14px;border-top:1px solid var(--line)}.session-mini-row b{font-size:13px}.muted{color:var(--muted)}.timetable-grid{display:grid;gap:18px}.day-card{background:#fff;border-radius:24px;overflow:hidden;border:1px solid var(--line);box-shadow:0 10px 28px rgba(8,18,37,.08)}.day-head{display:flex;justify-content:space-between;gap:12px;align-items:center;background:linear-gradient(135deg,var(--blue),#0246c6);color:#fff;padding:16px;font-weight:950}.day-row{display:grid;grid-template-columns:1fr;gap:6px;padding:15px 16px;border-top:1px solid var(--line)}.day-row b{font-size:13px}.time-badge{color:#101b2f;font-weight:950}.booking-panel{display:grid;gap:18px}.form-card{background:#fff;border:1px solid var(--line);border-radius:28px;padding:20px;box-shadow:var(--shadow)}.field{display:grid;gap:7px;margin-bottom:14px}.field label{font-weight:900;font-size:13px;color:#26364f}.field input,.field select,.field textarea{width:100%;border:1px solid #cbd7ea;border-radius:16px;padding:13px 14px;background:#fff;color:var(--ink);outline:none}.field textarea{min-height:120px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(9,104,255,.12)}.form-grid{display:grid;gap:0}.notice{border-radius:20px;padding:16px;background:#fff9d8;border:1px solid #f2dc72;color:#544800;font-weight:800}.shop-grid{display:grid;gap:18px}.product-card img{width:100%;aspect-ratio:1/1;object-fit:cover;background:#edf2fb}.product-card .price{font-size:24px;font-weight:950;color:var(--blue)}.contact-list{display:grid;gap:12px}.contact-item{display:flex;gap:12px;padding:16px;border-radius:20px;background:#fff;border:1px solid var(--line)}.contact-item b{display:block}.instagram-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.instagram-grid img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:16px}.page-hero{background:linear-gradient(135deg,#071223,#082957 56%,#0968ff);color:#fff;padding:42px 0 32px;position:relative;overflow:hidden}.page-hero::after{content:"";position:absolute;right:-120px;top:-160px;width:360px;height:360px;border-radius:50%;background:rgba(255,242,0,.18)}.page-hero .shell{position:relative;z-index:2}.breadcrumbs{font-weight:900;color:#dce8ff;font-size:13px}.page-hero p{max-width:780px;color:#dce8ff}.login-wrap{min-height:70vh;display:grid;align-items:center;padding:40px 0}.portal-shell{display:grid;gap:20px}.portal-layout{display:grid;gap:20px}.portal-sidebar{background:#071223;color:#fff;border-radius:28px;padding:18px}.portal-sidebar a{display:flex;gap:10px;align-items:center;color:#d8e7ff;padding:12px;border-radius:16px;font-weight:900}.portal-sidebar a:hover,.portal-sidebar a.is-active{background:rgba(9,104,255,.22);color:#fff}.dashboard-cards{display:grid;grid-template-columns:1fr;gap:14px}.dash-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:18px;box-shadow:0 10px 28px rgba(8,18,37,.08)}.dash-card b{display:block;font-size:28px;line-height:1;color:var(--blue)}.register-list{display:grid;gap:12px}.child-row{background:#fff;border:1px solid var(--line);border-radius:22px;padding:16px;display:grid;gap:12px}.child-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.status{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:950}.status.paid{background:#e8fff3;color:#007a3e}.status.due{background:#fff7dc;color:#9a6500}.status.failed{background:#ffe9ec;color:#b40018}.status.trial{background:#eaf1ff;color:#0649bd}.quick-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.quick-actions button{border:1px solid var(--line);background:#f7f9ff;border-radius:14px;padding:10px;font-weight:900}.quick-actions button.present{background:#eafff4;color:#007a3e}.quick-actions button.absent{background:#fff0f2;color:#a70818}.admin-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:24px;background:#fff;max-width:100%}.admin-table{width:100%;border-collapse:collapse;min-width:760px}.admin-table th,.admin-table td{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;font-size:14px}.admin-table th{background:#f4f7fe;color:#41516a;font-weight:950}.flash{margin-top:14px;border-radius:18px;padding:14px 16px;font-weight:900}.flash.success{background:#eafff4;color:#006e39;border:1px solid #aee9c9}.flash.error{background:#fff0f2;color:#a70818;border:1px solid #ffc8ce}.site-footer{background:#030a14;color:#d8e7ff;padding:42px 0 120px}.footer-grid{display:grid;gap:26px}.footer-logo{width:190px;margin-bottom:12px}.site-footer a{color:#fff;font-weight:800}.footer-links{display:grid;gap:8px}.mini-copy{font-size:13px;color:#94a8c8}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;clip:rect(0,0,0,0);overflow:hidden;border:0}.cta-band{background:linear-gradient(135deg,var(--blue),#003cab);color:#fff;border-radius:32px;padding:28px;overflow:hidden;position:relative}.cta-band::after{content:"";position:absolute;right:-70px;bottom:-100px;width:250px;height:250px;border-radius:50%;background:rgba(255,242,0,.22)}.cta-band>*{position:relative;z-index:2}.cta-band h2{margin-top:0;color:#fff}.empty-state{padding:24px;background:#fff;border:1px dashed #b8c7de;border-radius:24px;text-align:center}.security-note{font-size:13px;color:#607086}.two-col-copy{display:grid;gap:18px}.app-panel{background:linear-gradient(180deg,#fff,#f5f8ff);border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow);padding:18px}.timeline{display:grid;gap:12px}.timeline-item{padding:15px;border:1px solid var(--line);border-radius:18px;background:#fff}.timeline-item b{display:block}.alert-dot{width:10px;height:10px;border-radius:50%;background:var(--green);display:inline-block}.section-tight{padding:32px 0}.image-card{border-radius:28px;overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line);background:#fff}.image-card img{width:100%;height:100%;object-fit:cover}.caption{font-size:13px;font-weight:800;color:#53647b;margin-top:8px}.wide-image{width:100%;border-radius:28px;box-shadow:var(--shadow)}
@media (min-width:700px){body{padding-bottom:0}.hero-actions{flex-direction:row}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(2,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.intro-split{grid-template-columns:1.1fr .9fr}.class-card{grid-template-columns:.92fr 1.08fr}.class-card:nth-child(even){grid-template-columns:1.08fr .92fr}.class-card:nth-child(even) .class-image{order:2}.class-card .class-image{height:100%;min-height:430px}.form-grid{grid-template-columns:repeat(2,1fr);gap:14px}.booking-panel{grid-template-columns:1.1fr .9fr}.instagram-grid{grid-template-columns:repeat(4,1fr)}.dashboard-cards{grid-template-columns:repeat(2,1fr)}.quick-actions{grid-template-columns:repeat(4,1fr)}.footer-grid{grid-template-columns:1.5fr 1fr 1fr}.hero-card{max-width:720px}.hero-inner{align-items:center}.photo-stack img{height:210px}.photo-stack img:first-child{height:250px}.timetable-grid{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1000px){.desktop-nav{display:flex}.portal-link{display:inline-flex}.mobile-app-nav{display:none}.header-actions{margin-left:0}.grid-3{grid-template-columns:repeat(3,1fr)}.portal-layout{grid-template-columns:260px 1fr}.dashboard-cards{grid-template-columns:repeat(4,1fr)}.shop-grid{grid-template-columns:repeat(2,1fr)}.hero-inner{min-height:720px}.section{padding:76px 0}.site-footer{padding-bottom:46px}}
@media (max-width:430px){.shell{width:min(100% - 22px,1180px)}.header-inner{min-height:64px}.brand img{height:40px}.header-actions .btn{display:none}.hero-card{padding:19px}.stats-row{grid-template-columns:1fr 1fr}.stats-row .stat:last-child{grid-column:1/-1}.section{padding:44px 0}.class-content,.form-card{padding:17px}.day-head,.session-mini-head{align-items:flex-start;flex-direction:column}.page-hero{padding-top:34px}.page-hero h1{font-size:42px}.photo-stack{grid-template-columns:1fr}.photo-stack img,.photo-stack img:first-child{height:230px}.instagram-grid{grid-template-columns:repeat(2,1fr)}}

/* =========================================================
   Skillz Skool 2026 Full Platform additions
   Number 1 visual rule: real content images are never cropped.
   ========================================================= */
html, body { max-width:100%; overflow-x:hidden !important; }
body { touch-action: manipulation; }
img, video, canvas { max-width:100%; }
.image-contain,
.card img,
.class-card .class-image,
.product-card img,
.instagram-grid img,
.photo-stack img,
.image-card img,
.wide-image,
.hero-media img {
    object-fit: contain !important;
    object-position: center center !important;
    background: linear-gradient(135deg,#eef5ff,#ffffff) !important;
}
.hero-media img { filter:saturate(1.05) contrast(1.02); }
.class-card .class-image {
    padding: 0;
    min-height: 280px;
    max-height: 720px;
    height: 100%;
}
.product-card img,.instagram-grid img { padding: 6px; }
.photo-stack img { padding: 4px; }
.wide-image { height:auto !important; }
.portal-login-copy { color:#fff; background:linear-gradient(135deg,#06172f,#063eb9 70%,#0968ff); }
.portal-login-copy h1 { font-size: clamp(34px,7vw,64px); line-height:.96; letter-spacing:-.055em; }
.staff-login-copy { background:linear-gradient(135deg,#071223,#14224f 60%,#0cc67b); }
.ghost-top { background:rgba(255,255,255,.12); box-shadow:none; }
.portal-hero { background:radial-gradient(circle at 82% 5%,rgba(255,242,0,.23),transparent 28%),linear-gradient(135deg,#071223,#062d7a 58%,#0968ff); }
.staff-hero { background:radial-gradient(circle at 84% 8%,rgba(32,200,117,.25),transparent 28%),linear-gradient(135deg,#071223,#0d3b4f 58%,#0968ff); }
.admin-hero { background:radial-gradient(circle at 84% 8%,rgba(255,176,32,.24),transparent 30%),linear-gradient(135deg,#071223,#341b62 58%,#0968ff); }
.portal-main { min-width:0; }
.mini-profile { display:flex; align-items:center; gap:12px; padding:13px 0; border-bottom:1px solid var(--line); }
.mini-profile small { display:block; color:var(--muted); }
.avatar { width:42px; height:42px; border-radius:16px; background:linear-gradient(135deg,var(--blue),#003eb1); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-weight:950; }
.checkline { display:flex; align-items:center; gap:10px; font-weight:900; margin:12px 0 18px; }
.checkline input { width:20px; height:20px; }
.payment-element-shell { border:1px dashed #b9c9e3; border-radius:18px; padding:16px; margin:10px 0 14px; background:#f8fbff; }
.message-bubble { border-radius:22px; padding:14px 16px; margin:0 0 12px; border:1px solid var(--line); background:#fff; box-shadow:0 8px 20px rgba(8,18,37,.06); }
.message-bubble.staff,.message-bubble.admin { border-left:6px solid var(--blue); }
.message-bubble.parent { border-left:6px solid var(--green); }
.message-bubble p { margin:.45rem 0 0; }
.role-badge { display:inline-flex; align-items:center; border-radius:999px; padding:4px 8px; font-size:11px; font-weight:950; margin-left:5px; vertical-align:middle; }
.role-badge.parent { background:#e7fff2; color:#047341; }
.role-badge.staff { background:#e9f1ff; color:#0649bd; }
.role-badge.admin { background:#fff5dc; color:#8a5a00; }
.filter-bar { display:grid; grid-template-columns:1fr; gap:10px; background:#fff; border:1px solid var(--line); border-radius:24px; padding:14px; box-shadow:0 10px 24px rgba(8,18,37,.06); margin-bottom:16px; }
.filter-bar label { font-weight:950; }
.filter-bar select,.inline-admin-form select,.inline-admin-form input { border:1px solid #cbd7ea; border-radius:14px; padding:11px 12px; min-width:0; }
.session-summary { display:flex; flex-direction:column; gap:12px; background:linear-gradient(135deg,#fff,#f2f6ff); border:1px solid var(--line); border-radius:28px; padding:18px; box-shadow:var(--shadow); margin-bottom:16px; }
.session-summary h2 { margin:0; }
.capacity-pill { align-self:flex-start; border-radius:999px; background:#071223; color:#fff; font-weight:950; padding:10px 14px; }
.attendance-pills { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }
.attendance-pills label { cursor:pointer; }
.attendance-pills input { position:absolute; opacity:0; pointer-events:none; }
.attendance-pills span { display:flex; align-items:center; justify-content:center; border:1px solid var(--line); border-radius:16px; padding:12px 8px; font-weight:950; background:#f8fbff; }
.attendance-pills input:checked + span { background:linear-gradient(135deg,var(--blue),#003eb1); color:#fff; border-color:transparent; box-shadow:0 10px 25px rgba(9,104,255,.22); }
.sticky-save { position:sticky; bottom:88px; z-index:30; padding:10px; background:rgba(246,248,252,.82); backdrop-filter:blur(14px); border-radius:24px; margin-top:12px; }
.sticky-save .btn { width:100%; }
.admin-card-list { display:grid; gap:14px; }
.inline-admin-form { display:grid; grid-template-columns:1fr; gap:8px; background:#f8fbff; border:1px solid var(--line); border-radius:18px; padding:12px; }
.clickable { display:block; color:inherit; }
.note-form { margin:14px 0; padding:14px; border:1px solid var(--line); border-radius:20px; background:#f8fbff; }
.warning b { color:var(--orange) !important; }
.mobile-more-sheet { position:fixed; inset:0; z-index:120; background:rgba(0,0,0,.42); opacity:0; pointer-events:none; transition:.18s ease; display:flex; align-items:flex-end; }
.mobile-more-sheet.is-open { opacity:1; pointer-events:auto; }
.mobile-more-panel { width:100%; background:#fff; border-radius:28px 28px 0 0; padding:14px 14px calc(96px + env(safe-area-inset-bottom)); box-shadow:0 -20px 55px rgba(0,0,0,.25); display:grid; gap:8px; }
.mobile-more-panel a { padding:16px; border-radius:18px; background:#f3f7ff; font-weight:950; }
.mobile-more-head { display:flex; align-items:center; justify-content:space-between; padding:10px 6px; }
.mobile-more-head b { font-size:22px; }
.mobile-more-head button { width:42px; height:42px; border:none; border-radius:16px; background:#071223; color:#fff; font-size:26px; line-height:1; }
.desktop-nav a, .mobile-app-nav a { white-space:nowrap; }
@media (min-width:700px){
    .filter-bar { grid-template-columns:auto 1fr auto; align-items:center; }
    .session-summary { flex-direction:row; align-items:center; justify-content:space-between; }
    .attendance-pills { grid-template-columns:repeat(4,1fr); }
    .inline-admin-form { grid-template-columns:160px 180px minmax(180px,1fr) auto; align-items:center; }
}
@media (min-width:1000px){
    .class-card .class-image { min-height:430px; }
    .mobile-more-sheet { display:none; }
}
@media (max-width:699px){
    .class-card { display:flex !important; flex-direction:column !important; }
    .class-card:nth-child(even) .class-image { order:0 !important; }
    .class-card .class-image { width:100%; height:auto !important; max-height:none; min-height:0; aspect-ratio:auto; }
    .shell { width:min(100% - 24px,1180px) !important; }
    .site-header .brand { min-width:0; }
    .header-actions { gap:6px; }
    .header-actions .btn-small { padding:9px 11px; font-size:12px; min-height:38px; }
    .portal-sidebar { display:none; }
    .section { padding-left:0; padding-right:0; }
    .form-card,.app-panel,.card,.feature-card,.child-row,.dash-card,.day-card { border-radius:22px; }
    .quick-actions,.attendance-pills { grid-template-columns:1fr 1fr; }
    .admin-table { min-width:720px; }
}


/* =========================================================
   28 Apr 2026 UX patch: app modals, portal spacing, mobile-safe menus
   ========================================================= */
[hidden]{display:none !important;}
body.has-open-overlay{overflow:hidden;}

.portal-layout,
.portal-main,
.app-panel,
.form-card,
.child-row,
.timeline-item,
.message-bubble,
.session-summary,
.register-selected-panel,
.register-child-list,
.admin-card-list{
    min-width:0;
}

.portal-main{display:grid;gap:18px;}
.portal-main.grid{display:grid;}
.app-panel,
.form-card,
.child-row,
.timeline-item,
.message-bubble,
.dash-card{
    line-height:1.62;
}
.app-panel h2,
.form-card h2,
.child-row h3,
.timeline-item h3,
.session-summary h2{
    margin-top:0;
    margin-bottom:10px;
    line-height:1.16;
}
.app-panel h3,
.form-card h3{
    margin:18px 0 10px;
    line-height:1.2;
}
.app-panel p,
.form-card p,
.child-row p,
.timeline-item p{
    margin-top:6px;
    margin-bottom:8px;
}
.timeline-item{
    display:grid;
    gap:7px;
}
.timeline-item small,
.child-row small{
    display:block;
    line-height:1.5;
    color:var(--muted);
}
.panel-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    margin-bottom:16px;
}
.panel-head p{margin:5px 0 0;color:var(--muted);}
.panel-actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    align-items:center;
}
.btn-danger{
    background:linear-gradient(135deg,#fb4b57,#b40018) !important;
    color:#fff !important;
    box-shadow:0 12px 30px rgba(251,75,87,.22) !important;
}
.btn-soft{
    background:#eef4ff;
    color:#0649bd;
    box-shadow:none;
}
.modal-overlay{
    position:fixed;
    inset:0;
    z-index:160;
    display:flex;
    align-items:flex-end;
    justify-content:center;
    padding:14px;
    background:rgba(3,10,20,.58);
    backdrop-filter:blur(10px);
}
.modal-card{
    width:min(720px,100%);
    max-height:min(88svh,840px);
    overflow:auto;
    background:#fff;
    border:1px solid rgba(255,255,255,.7);
    border-radius:28px;
    box-shadow:0 28px 80px rgba(0,0,0,.34);
    padding:18px;
}
.modal-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    margin-bottom:16px;
    padding-bottom:14px;
    border-bottom:1px solid var(--line);
}
.modal-head h2{
    margin:0 0 5px;
    line-height:1.14;
}
.modal-head p{
    margin:0;
    color:var(--muted);
}
.modal-close{
    width:44px;
    height:44px;
    flex:0 0 44px;
    border:0;
    border-radius:16px;
    background:#071223;
    color:#fff;
    font-size:26px;
    line-height:1;
    cursor:pointer;
}
.modal-actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:14px;
}
.modal-actions .btn,
.modal-actions .btn-outline,
.modal-actions .btn-danger{flex:1 1 170px;}
.mobile-more-sheet{
    padding:14px;
}
.mobile-more-panel{
    border-radius:28px;
    max-height:82svh;
    overflow:auto;
}
.mobile-more-panel a{
    display:flex;
    align-items:center;
    gap:10px;
    line-height:1.35;
}
.portal-sidebar{
    display:grid;
    gap:6px;
}
.admin-table-wrap{
    -webkit-overflow-scrolling:touch;
}
.portal-card-list,
.register-child-list{
    display:grid;
    gap:12px;
}
.child-select-card{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:14px;
    border:1px solid var(--line);
    border-radius:20px;
    background:#fff;
}
.child-select-card.is-active{
    border-color:var(--blue);
    box-shadow:0 0 0 4px rgba(9,104,255,.10);
}
.child-select-card b{
    display:block;
    line-height:1.25;
}
.child-select-card small{
    display:block;
    color:var(--muted);
    margin-top:5px;
}
.register-selected-panel{
    background:linear-gradient(180deg,#fff,#f5f8ff);
    border:1px solid var(--line);
    border-radius:28px;
    box-shadow:var(--shadow);
    padding:18px;
    display:grid;
    gap:14px;
}
.register-profile-head{
    display:flex;
    justify-content:space-between;
    gap:14px;
    align-items:flex-start;
}
.register-profile-head h2{
    margin:0 0 6px;
    line-height:1.12;
}
.register-meta{
    display:grid;
    gap:8px;
}
.register-meta div{
    border:1px solid var(--line);
    border-radius:16px;
    padding:11px 12px;
    background:#fff;
}
.register-meta b{
    display:block;
    font-size:12px;
    color:#41516a;
    text-transform:uppercase;
    letter-spacing:.05em;
    margin-bottom:3px;
}
.parent-context{
    border-radius:18px;
    background:#f8fbff;
    border:1px solid var(--line);
    padding:12px;
    display:grid;
    gap:4px;
}
.simple-action-row{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}
.simple-action-row > *{flex:1 1 160px;}
.message-context{
    border:1px solid var(--line);
    background:#f8fbff;
    border-radius:20px;
    padding:14px;
    margin-bottom:14px;
    display:grid;
    gap:6px;
}
.footer-logo{
    background:#fff;
    border-radius:18px;
    padding:8px;
}
.site-footer .footer-logo.image-contain{
    object-fit:contain !important;
}

@media (min-width:700px){
    .modal-overlay{
        align-items:center;
        padding:24px;
    }
    .modal-card{
        padding:22px;
        border-radius:32px;
    }
    .register-workspace{
        display:grid;
        grid-template-columns:minmax(240px,.75fr) minmax(0,1.25fr);
        gap:18px;
        align-items:start;
    }
    .register-meta{
        grid-template-columns:repeat(2,1fr);
    }
}

@media (max-width:999px){
    .section-customer .shell,
    .section-staff .shell,
    .section-admin .shell{
        width:min(100% - 24px,1180px) !important;
    }
    .section-customer .page-hero,
    .section-staff .page-hero,
    .section-admin .page-hero{
        padding-left:0;
        padding-right:0;
    }
    .portal-layout{
        gap:16px;
    }
    .portal-main{
        gap:16px;
    }
}

@media (max-width:699px){
    .panel-head,
    .child-top,
    .register-profile-head{
        flex-direction:column;
        align-items:stretch;
    }
    .panel-actions .btn,
    .panel-actions .btn-outline,
    .panel-actions .btn-soft{
        width:100%;
    }
    .modal-overlay{
        align-items:flex-end;
        padding:12px;
        padding-bottom:calc(12px + env(safe-area-inset-bottom));
    }
    .modal-card{
        width:100%;
        max-height:86svh;
        border-radius:26px 26px 22px 22px;
        padding:16px;
    }
    .modal-actions{
        display:grid;
        grid-template-columns:1fr;
    }
    .modal-actions .btn,
    .modal-actions .btn-outline,
    .modal-actions .btn-danger{
        width:100%;
    }
    .mobile-app-nav{
        grid-template-columns:repeat(5,minmax(0,1fr));
    }
    .mobile-app-nav a b{
        max-width:100%;
        overflow:hidden;
        text-overflow:ellipsis;
    }
    .attendance-pills{
        grid-template-columns:1fr 1fr;
    }
    .register-selected-panel,
    .app-panel,
    .form-card,
    .child-row{
        padding:16px;
    }
    .simple-action-row{
        display:grid;
        grid-template-columns:1fr;
    }
}

@media (max-width:430px){
    .header-actions .btn{display:inline-flex !important;}
    .header-actions .ghost-top{display:inline-flex !important;}
}
