:root{--bg:#08090b;--panel:#111318;--panel2:#171a20;--text:#f5f5f5;--muted:#a8acb5;--red:#c1121f;--red2:#ef233c;--gold:#d6ad55;--gold2:#f0cc77;--line:#2a2e36;--white:#fff;--ok:#22a06b;--warn:#d98e13;--danger:#d03a3a;--shadow:0 16px 40px rgba(0,0,0,.35)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.45}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,select,textarea{font:inherit}.container{width:min(1180px,calc(100% - 32px));margin:auto}.topbar{position:sticky;top:0;z-index:50;background:rgba(8,9,11,.92);backdrop-filter:blur(12px);border-bottom:1px solid rgba(214,173,85,.18)}.topbar-inner{height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:12px}.brand img{width:48px;height:48px;border-radius:50%;object-fit:cover;border:2px solid var(--gold)}.brand strong{display:block;letter-spacing:.08em}.brand small{display:block;color:var(--gold2);font-size:.73rem;letter-spacing:.13em}.nav{display:flex;align-items:center;gap:20px;color:#d7d8dc;font-size:.92rem}.nav a:hover{color:var(--gold2)}.nav-actions{display:flex;gap:10px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 18px;border-radius:8px;border:1px solid transparent;cursor:pointer;font-weight:700;transition:.2s ease;background:#222;color:#fff}.btn:hover{transform:translateY(-1px);filter:brightness(1.06)}.btn-primary{background:linear-gradient(135deg,var(--red),var(--red2));box-shadow:0 8px 25px rgba(193,18,31,.25)}.btn-gold{background:linear-gradient(135deg,#aa7927,var(--gold2));color:#15100a}.btn-outline{border-color:#464b55;background:transparent}.btn-ghost{background:transparent;color:var(--muted)}.btn-danger{background:var(--danger)}.btn-success{background:var(--ok)}.btn-sm{min-height:34px;padding:0 12px;font-size:.85rem}.hero{min-height:660px;background-image:linear-gradient(90deg,rgba(7,7,9,.98) 0%,rgba(7,7,9,.88) 38%,rgba(7,7,9,.28) 78%,rgba(7,7,9,.58) 100%),url('../img/hero-dojo.jpg');background-size:cover;background-position:center;display:flex;align-items:center;border-bottom:1px solid rgba(214,173,85,.35)}.hero-content{max-width:690px;padding:82px 0}.eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--gold2);font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.16em}.eyebrow:before{content:"";width:34px;height:2px;background:var(--red2)}h1,h2,h3{line-height:1.12;margin:0 0 16px}.hero h1{font-size:clamp(2.65rem,6vw,5.5rem);text-transform:uppercase;letter-spacing:-.04em}.hero h1 span{color:var(--red2)}.hero p{font-size:1.12rem;color:#d2d3d7;max-width:620px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.hero-quote{margin-top:34px;padding-left:18px;border-left:3px solid var(--gold);color:#bbb;font-style:italic}.section{padding:78px 0}.section-dark{background:#0c0e12}.section-title{max-width:760px;margin-bottom:32px}.section-title h2{font-size:clamp(2rem,3.5vw,3.2rem)}.section-title p{color:var(--muted)}.grid{display:grid;gap:20px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:linear-gradient(180deg,#15181e,#111318);border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:var(--shadow)}.card.flat{box-shadow:none}.feature-icon{width:48px;height:48px;border-radius:12px;background:rgba(193,18,31,.14);display:grid;place-items:center;color:var(--red2);font-size:1.4rem;margin-bottom:18px}.feature-card p,.muted{color:var(--muted)}.schedule-card .day{color:var(--gold2);font-weight:800;text-transform:uppercase;letter-spacing:.08em}.schedule-card .time{font-size:1.7rem;font-weight:900;margin:8px 0}.plan-card{position:relative;overflow:hidden}.plan-card.featured{border-color:rgba(214,173,85,.65)}.plan-price{font-size:2.4rem;font-weight:900;color:var(--red2)}.plan-price small{font-size:.8rem;color:var(--muted);font-weight:500}.belt-row{display:flex;gap:12px;flex-wrap:wrap}.belt-chip{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:999px;background:#12141a}.belt-swatch{width:28px;height:10px;border-radius:3px;border:1px solid rgba(255,255,255,.25)}.gallery{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:14px}.gallery img{width:100%;height:260px;object-fit:cover;border-radius:14px;border:1px solid rgba(214,173,85,.25)}.gallery img:first-child{height:534px;grid-row:span 2}.footer{border-top:1px solid var(--line);padding:30px 0;color:var(--muted)}.footer-inner{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr)}.auth-art{background:linear-gradient(90deg,rgba(0,0,0,.24),rgba(0,0,0,.62)),url('../img/hero-dojo.jpg') center/cover;position:relative}.auth-art:after{content:"";position:absolute;inset:0;border-right:1px solid rgba(214,173,85,.35)}.auth-panel{display:grid;place-items:center;padding:40px;background:#0d0f13}.auth-box{width:min(520px,100%)}.auth-logo{display:flex;align-items:center;gap:14px;margin-bottom:28px}.auth-logo img{width:70px;height:70px;object-fit:cover;border-radius:50%;border:2px solid var(--gold)}.auth-box h1{font-size:2.35rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-group{margin-bottom:16px}.form-group.full{grid-column:1/-1}.label{display:block;font-size:.86rem;font-weight:800;margin-bottom:7px;color:#e7e7e9}.input,.select,.textarea{width:100%;background:#12151b;color:#fff;border:1px solid #343945;border-radius:9px;padding:12px 13px;outline:none}.input:focus,.select:focus,.textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(214,173,85,.09)}.textarea{min-height:104px;resize:vertical}.help{font-size:.78rem;color:var(--muted);margin-top:5px}.check-row{display:flex;gap:14px;flex-wrap:wrap}.check{display:flex;align-items:center;gap:8px;color:#dcdde1}.alert{padding:13px 15px;border-radius:10px;margin:0 0 14px;border:1px solid}.alert-success{background:rgba(34,160,107,.12);border-color:rgba(34,160,107,.4);color:#c9f5e1}.alert-warning{background:rgba(217,142,19,.11);border-color:rgba(217,142,19,.4);color:#f1d49c}.alert-danger{background:rgba(208,58,58,.12);border-color:rgba(208,58,58,.4);color:#ffd0d0}.alert-info{background:rgba(66,135,245,.1);border-color:rgba(66,135,245,.35);color:#cadcff}.steps{display:flex;gap:8px;overflow:auto;padding-bottom:8px;margin:0 0 24px}.step{display:flex;align-items:center;gap:8px;white-space:nowrap;padding:8px 12px;border-radius:999px;background:#171a20;color:#8f949f;border:1px solid #2c313a}.step.active{color:#fff;border-color:var(--red);background:rgba(193,18,31,.13)}.step.done{color:#d5f5e7;border-color:rgba(34,160,107,.5)}.step-num{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#272b34;font-size:.75rem;font-weight:900}.wizard-shell{padding:40px 0 80px}.wizard-card{background:#0f1115;border:1px solid var(--line);border-radius:18px;overflow:hidden}.wizard-head{padding:24px 28px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,rgba(193,18,31,.12),transparent)}.wizard-body{padding:28px}.accordion{border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:12px}.accordion summary{cursor:pointer;padding:15px 18px;background:#171a20;font-weight:800;list-style:none}.accordion summary::-webkit-details-marker{display:none}.accordion[open] summary{border-bottom:1px solid var(--line);color:var(--gold2)}.accordion-content{padding:18px}.app-shell{min-height:100vh;display:grid;grid-template-columns:255px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:#0a0b0e;border-right:1px solid var(--line);padding:18px 14px;overflow:auto}.side-brand{display:flex;align-items:center;gap:10px;padding:6px 8px 22px}.side-brand img{width:48px;height:48px;border-radius:50%;object-fit:cover;border:2px solid var(--gold)}.side-brand strong{font-size:.84rem;letter-spacing:.04em}.side-nav{display:grid;gap:5px}.side-nav a{padding:11px 12px;border-radius:9px;color:#b8bbc4;display:flex;align-items:center;gap:10px}.side-nav a:hover,.side-nav a.active{background:linear-gradient(90deg,var(--red),#96121a);color:#fff}.side-divider{height:1px;background:var(--line);margin:14px 0}.app-main{min-width:0}.app-top{height:72px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:#0e1014;position:sticky;top:0;z-index:20}.app-content{padding:28px}.page-title{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px}.page-title h1{font-size:2rem}.page-title p{margin:5px 0 0;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.stat{background:#12151b;border:1px solid var(--line);border-radius:14px;padding:18px}.stat-label{font-size:.82rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.stat-value{font-size:2rem;font-weight:900;margin-top:8px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}.table{width:100%;border-collapse:collapse;min-width:760px;background:#101318}.table th,.table td{padding:13px 14px;text-align:left;border-bottom:1px solid #242832;font-size:.9rem}.table th{font-size:.77rem;text-transform:uppercase;letter-spacing:.06em;color:#989da7;background:#171a20}.table tr:last-child td{border-bottom:0}.badge{display:inline-flex;padding:5px 9px;border-radius:999px;background:#272b34;color:#d8dae0;font-size:.74rem;font-weight:800}.badge.paid,.badge.approved,.badge.present,.badge.active,.badge.confirmed{background:rgba(34,160,107,.15);color:#8fe0ba}.badge.pending,.badge.pending_review,.badge.awaiting_receipt,.badge.draft{background:rgba(217,142,19,.14);color:#f4ca80}.badge.rejected,.badge.overdue,.badge.absent,.badge.blocked{background:rgba(208,58,58,.15);color:#ff9b9b}.progress{height:8px;background:#262a33;border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--red),var(--gold));border-radius:inherit}.dashboard-hero{padding:24px;background:linear-gradient(120deg,#171a20,#0e1014 55%,rgba(193,18,31,.18));border:1px solid var(--line);border-radius:16px;margin-bottom:20px}.dashboard-hero h2{font-size:2rem}.kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.quick-card{display:flex;gap:14px;align-items:flex-start}.quick-icon{width:44px;height:44px;flex:0 0 auto;border-radius:11px;background:rgba(193,18,31,.13);display:grid;place-items:center;color:var(--red2);font-size:1.25rem}.payment-box{border:1px dashed rgba(214,173,85,.55);border-radius:14px;padding:20px;background:rgba(214,173,85,.04)}.pix-key{font-size:1.45rem;font-weight:900;letter-spacing:.04em}.receipt-preview{max-height:350px;border-radius:10px;margin-top:12px}.day-tabs{display:flex;gap:8px;overflow:auto;margin-bottom:16px}.day-tab{padding:10px 12px;border-radius:8px;background:#15181e;border:1px solid var(--line);color:#c6c8ce}.day-tab.active{background:var(--red);color:#fff}.empty{padding:28px;text-align:center;color:var(--muted);border:1px dashed #343844;border-radius:12px}.photo-card{display:grid;grid-template-columns:160px 1fr;gap:20px;align-items:center}.photo-card img{width:160px;height:160px;border-radius:14px;object-fit:cover;border:1px solid rgba(214,173,85,.35)}.signature-box{padding:14px;background:#171a20;border-radius:10px;color:var(--muted);font-size:.86rem}.mobile-toggle{display:none;background:#171a20;border:1px solid var(--line);color:white;width:40px;height:40px;border-radius:8px}.admin-actions{display:flex;gap:8px;flex-wrap:wrap}.belt-line{display:flex;gap:10px;flex-wrap:wrap}.belt-option{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#14171d}.belt-option input{margin-right:6px}.install-note{background:#14171d;border:1px solid var(--line);border-radius:12px;padding:18px;color:#c8cad1}.legal{font-size:.86rem;color:#b8bbc3;max-height:300px;overflow:auto;padding:14px;background:#13161b;border:1px solid #2a2e36;border-radius:10px}
@media (max-width:1050px){.nav{display:none}.grid-4,.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-shell{grid-template-columns:1fr}.auth-art{display:none}.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-280px;z-index:70;width:255px;transition:.25s}.sidebar.open{left:0;box-shadow:20px 0 60px rgba(0,0,0,.5)}.mobile-toggle{display:grid;place-items:center}.gallery{grid-template-columns:1fr 1fr}.gallery img:first-child{grid-column:1/-1;height:340px;grid-row:auto}.kpi-grid{grid-template-columns:1fr 1fr}}
@media (max-width:720px){.container{width:min(100% - 22px,1180px)}.topbar-inner{height:68px}.brand small{display:none}.brand strong{font-size:.82rem}.nav-actions .btn-outline{display:none}.hero{min-height:580px}.hero-content{padding:58px 0}.hero h1{font-size:3rem}.section{padding:58px 0}.grid-2,.grid-3,.grid-4,.stats,.kpi-grid{grid-template-columns:1fr}.gallery{grid-template-columns:1fr}.gallery img,.gallery img:first-child{height:260px}.form-grid{grid-template-columns:1fr}.form-group.full{grid-column:auto}.wizard-body,.wizard-head{padding:20px}.app-top{padding:0 16px}.app-content{padding:18px}.page-title{align-items:flex-start;flex-direction:column}.photo-card{grid-template-columns:1fr}.photo-card img{width:100%;height:240px}.auth-panel{padding:24px 18px}.auth-box h1{font-size:1.9rem}}

/* ===== V2 VISUAL — base de interface preservada ===== */
:root{--ui-red:#d30d16;--ui-dark:#0b0e12;--ui-paper:#f5f7fa;--ui-card:#ffffff;--ui-ink:#121722;--ui-muted:#6c7480;--ui-border:#dfe4ea}

/* Cadastro/Login */
.auth-shell{background:#0a0c10}
.auth-art{background-image:linear-gradient(90deg,rgba(0,0,0,.08),rgba(0,0,0,.22)),url('../img/hero-dojo.jpg');background-position:center top;background-size:cover}
.auth-panel{background:#f4f6f8;color:var(--ui-ink);padding:50px 56px;box-shadow:-18px 0 55px rgba(0,0,0,.28)}
.auth-box{width:min(560px,100%);background:#fff;border:1px solid var(--ui-border);border-radius:18px;padding:34px 36px;box-shadow:0 18px 55px rgba(13,20,30,.12)}
.auth-logo{margin-bottom:24px}.auth-logo strong{color:#111722}.auth-logo img{width:76px;height:76px}
.auth-box h1{color:#111722;font-size:2.45rem}.auth-box .muted{color:#69717d}
.auth-box .label{color:#1a2029}.auth-box .input,.auth-box .select,.auth-box .textarea{background:#f7f9fb;color:#121722;border-color:#ccd3dc;min-height:50px}
.auth-box .input:focus,.auth-box .select:focus,.auth-box .textarea:focus{background:#fff;border-color:#d30d16;box-shadow:0 0 0 3px rgba(211,13,22,.10)}
.auth-box .btn-primary{min-height:50px;border-radius:7px;background:linear-gradient(180deg,#e11a23,#c50b14)}

/* Área do aluno e admin: conteúdo claro + sidebar escura */
.app-main{background:#f3f5f8;color:var(--ui-ink)}
.app-top{background:#fff;color:#121722;border-bottom:1px solid var(--ui-border);box-shadow:0 4px 18px rgba(28,35,45,.05)}
.app-top .muted{color:#7b838e!important}.app-content{padding:28px 30px 44px}
.page-title h1,.page-title h2,.page-title h3{color:#111722}.page-title p,.app-main .muted{color:#737b86}
.app-main .card{background:#fff;color:#111722;border:1px solid var(--ui-border);box-shadow:0 7px 24px rgba(26,33,43,.06);border-radius:12px}
.app-main .card h1,.app-main .card h2,.app-main .card h3{color:#111722}
.app-main .stat{background:#fff;border:1px solid var(--ui-border);color:#111722;box-shadow:0 5px 18px rgba(25,32,42,.05);border-radius:11px}
.app-main .stat-label{color:#77808c}.app-main .stat-value{color:#111722}
.app-main .dashboard-hero{background:linear-gradient(110deg,#fff 0%,#fff 62%,#fff3f3 100%);border:1px solid var(--ui-border);box-shadow:0 7px 24px rgba(26,33,43,.06)}
.app-main .dashboard-hero h2{color:#111722}.app-main .quick-icon{background:#fff0f1;color:var(--ui-red)}
.app-main .table-wrap{border-color:var(--ui-border);background:#fff}.app-main .table{background:#fff;color:#18202a}
.app-main .table th{background:#f6f8fa;color:#77808a;border-bottom:1px solid var(--ui-border)}
.app-main .table td{border-bottom:1px solid #edf0f3}.app-main .table tr:hover td{background:#fafbfc}
.app-main .input,.app-main .select,.app-main .textarea{background:#fff;color:#121722;border-color:#ccd3db}.app-main .label{color:#202631}
.app-main .input:focus,.app-main .select:focus,.app-main .textarea:focus{border-color:#d30d16;box-shadow:0 0 0 3px rgba(211,13,22,.08)}
.app-main .accordion{border-color:var(--ui-border);background:#fff}.app-main .accordion summary{background:#f7f8fa;color:#1b222d}.app-main .accordion[open] summary{color:#c60c15;border-bottom-color:var(--ui-border)}
.app-main .accordion-content{background:#fff}.app-main .legal,.app-main .signature-box{background:#f7f8fa;color:#69717c;border-color:#e2e6eb}
.app-main .payment-box{background:#fffdf7;border-color:#d9b86a}.app-main .pix-key{color:#101722}
.app-main .day-tab{background:#fff;color:#222a34;border-color:var(--ui-border)}.app-main .day-tab.active{background:#d30d16;color:#fff;border-color:#d30d16}
.app-main .empty{color:#7c8490;border-color:#cfd5dd;background:#fff}
.app-main .belt-option{background:#fff;border-color:#d8dde4;color:#1a2029}.app-main .belt-option:hover{border-color:#d30d16;background:#fff7f7}
.app-main .btn-outline{border-color:#c9d0d8;color:#202732;background:#fff}.app-main .btn-outline:hover{border-color:#d30d16;color:#c60b14;background:#fff7f7}
.app-main .btn-ghost{color:#737c87}.app-main .alert-success{color:#146442;background:#eaf8f1}.app-main .alert-warning{color:#7d5712;background:#fff7e6}.app-main .alert-danger{color:#8d2020;background:#fff0f0}.app-main .alert-info{color:#235c9e;background:#eef6ff}

/* Sidebar administrativa */
.sidebar{background:linear-gradient(180deg,#0a0d11,#101318);border-right:0;box-shadow:6px 0 25px rgba(0,0,0,.16)}
.side-brand{border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:14px}.side-brand strong{color:#fff}.side-nav a{color:#d5d8de;border-radius:6px}.side-nav a:hover,.side-nav a.active{background:linear-gradient(90deg,#df151f,#be0710);color:#fff;box-shadow:0 8px 22px rgba(197,10,18,.20)}

/* Botões e passos */
.btn-primary{background:linear-gradient(180deg,#e01620,#c40b14);border-radius:7px}.btn-primary:hover{filter:brightness(1.04)}
.app-main .steps{background:#fff;border:1px solid var(--ui-border);border-radius:12px;padding:14px;margin-bottom:18px}
.app-main .step{background:transparent;border:0;color:#818894;padding:6px 10px}.app-main .step-num{background:#e9edf1;color:#59616d}.app-main .step.active{color:#d30d16;background:transparent}.app-main .step.active .step-num{background:#d30d16;color:#fff}.app-main .step.done{color:#277c59}.app-main .step.done .step-num{background:#dff4e9;color:#277c59}

/* Homepage pública */
.topbar{background:rgba(8,10,13,.96);border-bottom:1px solid rgba(255,255,255,.07)}
.hero{min-height:570px;background-image:linear-gradient(90deg,rgba(5,6,8,.98) 0%,rgba(5,6,8,.90) 42%,rgba(5,6,8,.48) 70%,rgba(5,6,8,.30) 100%),url('../img/hero-dojo.jpg');background-position:center;background-size:cover}
.hero-content{max-width:590px;padding:72px 0}.hero h1{font-size:clamp(2.8rem,5vw,4.9rem);line-height:.98}.hero p{font-size:1rem;max-width:520px}.hero-quote{max-width:470px}
.home-values{background:#fff;color:#111722;border-bottom:1px solid #e8ebef}.home-values .container{display:grid;grid-template-columns:repeat(4,1fr);gap:0}.home-value{padding:24px 22px;text-align:center;border-right:1px solid #eceff2}.home-value:last-child{border-right:0}.home-value strong{display:block;font-size:1.05rem}.home-value span{color:#737b85;font-size:.86rem}.home-value i{display:grid;place-items:center;width:46px;height:46px;margin:0 auto 10px;border-radius:50%;background:#fff0f1;color:#d30d16;font-style:normal;font-size:1.35rem;font-weight:900}
.section{padding:64px 0}.section-title{margin-bottom:26px}.section-title h2{font-size:clamp(2rem,3vw,2.8rem)}
.plan-card{border-radius:12px}.plan-card.featured{border:2px solid #d30d16}.plan-card.featured:before{content:'MAIS PROCURADO';position:absolute;top:15px;right:-36px;transform:rotate(38deg);background:#d30d16;color:#fff;font-size:.64rem;font-weight:900;padding:5px 42px;letter-spacing:.06em}


@media(max-width:1050px){.auth-panel{padding:35px 22px}.auth-box{padding:28px}.home-values .container{grid-template-columns:repeat(2,1fr)}.home-value:nth-child(2){border-right:0}.home-value:nth-child(-n+2){border-bottom:1px solid #eceff2}}
@media(max-width:720px){.auth-box{padding:24px 18px;border-radius:12px}.auth-panel{padding:18px 12px}.auth-box h1{font-size:2rem}.app-content{padding:18px 14px 34px}.home-values .container{grid-template-columns:1fr}.home-value{border-right:0;border-bottom:1px solid #eceff2}.hero{min-height:520px;background-position:35% center}.hero h1{font-size:2.65rem}}

/* ===== V3 PRODUÇÃO — HOME, EVENTOS, EXAMES E DASHBOARDS ===== */
.home-hero{position:relative;overflow:hidden;min-height:690px;background-image:linear-gradient(90deg,rgba(4,5,7,.98) 0%,rgba(4,5,7,.92) 46%,rgba(4,5,7,.52) 72%,rgba(4,5,7,.30) 100%),url('../img/hero-dojo.jpg');background-position:center;background-size:cover}
.home-hero:after{content:"";position:absolute;inset:auto 0 0;height:150px;background:linear-gradient(transparent,#08090b);pointer-events:none}.home-hero .container{position:relative;z-index:2}.hero-kanji{position:absolute;right:4.5vw;top:50%;transform:translateY(-50%);font-family:serif;font-weight:900;font-size:clamp(4rem,8vw,8.5rem);line-height:.82;color:rgba(255,255,255,.055);text-align:center;z-index:1}.hero-brand-lockup{display:flex;align-items:center;gap:12px;margin-bottom:22px}.hero-brand-lockup img{width:62px;height:62px;border-radius:50%;object-fit:cover;border:2px solid var(--gold)}.hero-brand-lockup b{display:block;font-size:.92rem;letter-spacing:.11em}.hero-brand-lockup small{display:block;color:var(--gold2);letter-spacing:.16em;font-size:.7rem;margin-top:3px}.home-hero .hero-content{max-width:720px;padding:80px 0 92px}.home-hero h1{font-size:clamp(3rem,6vw,5.8rem);max-width:760px}.home-hero h1 span{display:block;color:var(--red2)}.hero-login{border-color:rgba(255,255,255,.45)}.hero-meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.hero-meta span{font-size:.82rem;color:#d1d2d5;border:1px solid rgba(255,255,255,.12);padding:8px 10px;border-radius:999px;background:rgba(255,255,255,.04)}
.academy-story{align-items:center}.academy-story h2{font-size:clamp(2.2rem,4vw,3.7rem)}.academy-story p{color:var(--muted);font-size:1.02rem}.mission-box{margin:24px 0;padding:20px;border-left:3px solid var(--red);background:#11141a;border-radius:0 12px 12px 0}.mission-box strong{color:var(--gold2);text-transform:uppercase;letter-spacing:.12em}.mission-box p{margin:7px 0 0}.value-list{display:flex;gap:10px;flex-wrap:wrap}.value-list span{background:#14171d;border:1px solid var(--line);padding:9px 11px;border-radius:999px;font-size:.86rem}.dojo-visual{position:relative;min-height:420px;border-radius:20px;overflow:hidden;border:1px solid rgba(214,173,85,.28);box-shadow:var(--shadow)}.dojo-visual img{width:100%;height:100%;min-height:420px;object-fit:cover}.dojo-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.60),transparent 55%)}.dojo-seal{position:absolute;left:22px;bottom:20px;z-index:2;padding:12px 14px;border:1px solid rgba(214,173,85,.45);background:rgba(5,6,8,.72);backdrop-filter:blur(8px)}.dojo-seal b{display:block;color:var(--gold2);font-family:serif;font-size:1.8rem}.dojo-seal small{letter-spacing:.2em}
.schedule-timeline{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:16px;overflow:hidden}.schedule-timeline article{display:flex;gap:14px;padding:24px;border-right:1px solid var(--line);background:linear-gradient(180deg,#14171c,#0d0f13)}.schedule-timeline article:last-child{border-right:0}.schedule-jp{font-family:serif;color:var(--red2);font-size:2rem;line-height:1}.schedule-timeline b,.schedule-timeline strong,.schedule-timeline small{display:block}.schedule-timeline b{color:var(--gold2);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.schedule-timeline strong{font-size:1.15rem;margin:7px 0}.schedule-timeline small{color:var(--muted)}
.plans-modern .plan-card{padding:30px}.plan-kicker{color:var(--gold2);text-transform:uppercase;letter-spacing:.15em;font-size:.77rem;font-weight:900}.plans-modern ul{list-style:none;padding:0;margin:22px 0}.plans-modern li{padding:8px 0;border-bottom:1px solid var(--line);color:#c8cbd1}.plans-modern li:before{content:'✓';color:var(--red2);font-weight:900;margin-right:9px}
.belt-path{display:grid;grid-template-columns:repeat(8,1fr);gap:10px}.belt-step{position:relative;text-align:center;padding:18px 8px;border:1px solid var(--line);border-radius:12px;background:#12151a}.belt-step>span{display:block;height:10px;border-radius:3px;background:var(--belt);border:1px solid rgba(255,255,255,.18);margin-bottom:12px}.belt-step b{display:block;font-size:.86rem}.belt-step small{display:block;color:#555b66;margin-top:5px}
.event-grid{align-items:stretch}.event-card{position:relative;overflow:hidden}.event-card>img{width:calc(100% + 44px);height:180px;object-fit:cover;margin:-22px -22px 20px}.event-date{display:inline-flex;align-items:baseline;gap:5px;color:var(--red2);margin-bottom:8px}.event-date b{font-size:1.7rem}.event-date span{font-size:.75rem;font-weight:900}.event-empty{display:flex;align-items:center;gap:24px;border:1px dashed rgba(214,173,85,.35);padding:28px;border-radius:14px}.event-empty>span{font-family:serif;font-size:3.3rem;color:var(--gold2)}.event-empty h3{margin-bottom:6px}.event-empty p{margin:0;color:var(--muted)}
.photo-showcase{display:grid;grid-template-columns:1.35fr 1fr .55fr;gap:14px}.photo-showcase>img{width:100%;height:360px;object-fit:cover;border-radius:14px;border:1px solid rgba(214,173,85,.22)}.photo-quote{height:360px;border-radius:14px;background:linear-gradient(180deg,#17191f,#0d0f13);border:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;padding:24px}.photo-quote span{font-family:serif;font-size:2.2rem;color:var(--red2);line-height:1}.photo-quote p{font-size:1.05rem;color:#d9dadd;margin:0}.contact-section{background:#0d0f13}.contact-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.map-frame{min-height:340px;border:1px solid rgba(214,173,85,.28);border-radius:16px;overflow:hidden}.map-frame iframe{border:0;width:100%;height:100%;min-height:340px;filter:grayscale(.4) contrast(1.05)}
.student-profile-head{display:grid;grid-template-columns:92px 1fr auto;gap:18px;align-items:center}.student-avatar{width:92px;height:92px;border-radius:16px;object-fit:cover;border:2px solid #d30d16;background:#f0f2f5}.student-avatar-fallback{width:92px;height:92px;border-radius:16px;background:#11151b;color:#fff;display:grid;place-items:center;font-size:2rem;font-weight:900}.dashboard-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.metric-card{background:#fff;border:1px solid var(--ui-border);border-radius:12px;padding:18px}.metric-card b{display:block;font-size:1.8rem}.metric-card span{color:#747d89;font-size:.82rem;text-transform:uppercase;letter-spacing:.06em}.due-alert{display:flex;justify-content:space-between;gap:18px;align-items:center}.membership-card{position:relative;overflow:hidden;max-width:760px;background:linear-gradient(135deg,#090b0f,#171b22 55%,#69090f);color:white;border-radius:20px;padding:28px;border:1px solid rgba(214,173,85,.4);box-shadow:0 20px 45px rgba(0,0,0,.22)}.membership-card:after{content:'空手道';position:absolute;right:22px;top:18px;font-family:serif;font-size:4rem;color:rgba(255,255,255,.05)}.membership-card-head{display:flex;gap:16px;align-items:center}.membership-card-head img{width:64px;height:64px;border-radius:50%;object-fit:cover;border:2px solid var(--gold)}.membership-card-body{display:grid;grid-template-columns:1fr auto;gap:28px;align-items:end;margin-top:24px}.membership-card .qr{width:170px;height:170px;background:#fff;padding:8px;border-radius:10px}.chart-bars{display:flex;align-items:flex-end;gap:10px;height:180px;padding-top:20px}.chart-bar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}.chart-bar i{display:block;width:100%;max-width:42px;min-height:4px;background:linear-gradient(180deg,#e01620,#9d0910);border-radius:6px 6px 2px 2px}.chart-bar span{font-size:.72rem;color:#747d89;margin-top:7px}.chart-bar b{font-size:.72rem;color:#333;margin-bottom:5px}.exam-status{display:flex;gap:12px;align-items:flex-start;padding:16px;border-radius:12px;border:1px solid #e0e5eb;background:#fff}.exam-status strong{display:block;margin-bottom:4px}.exam-status .icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#fff0f1;color:#d30d16;font-weight:900}.media-preview img,.media-preview video{max-width:100%;max-height:260px;border-radius:10px}.media-preview audio{width:100%}
@media(max-width:1050px){.schedule-timeline{grid-template-columns:repeat(2,1fr)}.schedule-timeline article:nth-child(2){border-right:0}.schedule-timeline article:nth-child(-n+2){border-bottom:1px solid var(--line)}.belt-path{grid-template-columns:repeat(4,1fr)}.photo-showcase{grid-template-columns:1fr 1fr}.photo-quote{grid-column:1/-1;height:auto;min-height:180px}.dashboard-grid-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.home-hero{min-height:620px;background-position:58% center}.hero-kanji{display:none}.hero-brand-lockup img{width:54px;height:54px}.hero-meta{display:none}.schedule-timeline{grid-template-columns:1fr}.schedule-timeline article{border-right:0!important;border-bottom:1px solid var(--line)!important}.schedule-timeline article:last-child{border-bottom:0!important}.belt-path{grid-template-columns:repeat(2,1fr)}.photo-showcase{grid-template-columns:1fr}.photo-showcase>img{height:260px}.photo-quote{grid-column:auto}.student-profile-head{grid-template-columns:72px 1fr}.student-avatar,.student-avatar-fallback{width:72px;height:72px}.student-profile-head>div:last-child{grid-column:1/-1}.dashboard-grid-4{grid-template-columns:1fr}.due-alert{align-items:flex-start;flex-direction:column}.membership-card-body{grid-template-columns:1fr}.membership-card .qr{width:150px;height:150px}.home-values .container{grid-template-columns:1fr}}
.event-card>.event-detail-image{width:100%;height:220px;object-fit:cover;margin:14px 0;border-radius:10px;border:1px solid rgba(214,173,85,.25)}
