:root{
  --navy:#0b2f4a;--navy-2:#123f61;--blue:#075985;--cyan:#0e7490;--sky:#eaf6fb;
  --green:#5d8f2f;--lime:#84b83d;--yellow:#f5c542;--orange:#ed8a2f;--purple:#7c5ac7;
  --red:#c94b43;--ink:#172231;--muted:#687687;--line:#dce5eb;--bg:#f4f7fa;--surface:#fff;
  --shadow:0 22px 55px rgba(18,62,93,.12);--shadow-sm:0 10px 28px rgba(18,62,93,.08);
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:radial-gradient(circle at 90% 5%,rgba(14,116,144,.06),transparent 28%),var(--bg)}
a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.muted{color:var(--muted)}.small{font-size:.84rem}.stack{display:grid;gap:17px}.full{width:100%}

/* App shell */
.app-shell{min-height:100vh;display:grid;grid-template-columns:276px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;padding:26px 19px 18px;display:flex;flex-direction:column;background:linear-gradient(160deg,#123f61 0%,#092d47 70%,#0c3855 100%);color:#fff;z-index:30;overflow:hidden}
.sidebar-glow{position:absolute;border-radius:50%;filter:blur(4px);opacity:.28;pointer-events:none}.glow-one{width:170px;height:170px;background:#0ea5b7;right:-95px;top:30px}.glow-two{width:120px;height:120px;background:#92bf42;left:-75px;bottom:120px}
.brand{position:relative;display:flex;gap:12px;align-items:center;z-index:1}.brand-mark{width:49px;height:49px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,#0f88ad,#69a83a);font-size:1.5rem;font-weight:950;color:#fff;box-shadow:0 10px 24px rgba(0,0,0,.17);position:relative}.brand-mark i{position:absolute;right:3px;bottom:3px;background:var(--yellow);color:#243b4a;font-size:.52rem;font-style:normal;padding:2px 4px;border-radius:5px}.brand strong,.brand small,.sidebar-user strong,.sidebar-user small{display:block}.brand strong{font-size:.98rem}.brand small{color:#bcd3df;margin-top:3px;font-size:.79rem}
.nav-label{position:relative;margin:34px 12px 10px;font-size:.65rem;letter-spacing:.15em;color:#86aabb;font-weight:850}.sidebar nav{position:relative;display:grid;gap:7px;z-index:1}.sidebar nav a{display:flex;align-items:center;gap:12px;padding:12px 13px;border-radius:13px;color:#ccdde6;font-weight:760;transition:.2s}.sidebar nav a>span{width:28px;height:28px;border-radius:9px;background:rgba(255,255,255,.08);display:grid;place-items:center;font-size:1rem}.sidebar nav a:hover,.sidebar nav a.active{color:#fff;background:linear-gradient(90deg,rgba(255,255,255,.16),rgba(255,255,255,.07));transform:translateX(2px)}.sidebar nav a.active>span{background:var(--yellow);color:#264354}
.sidebar-cta{position:relative;margin-top:24px;padding:14px;border-radius:16px;display:flex;align-items:center;gap:11px;background:linear-gradient(135deg,#f5c542,#f0a52f);color:#284152;box-shadow:0 12px 28px rgba(0,0,0,.18);z-index:1}.sidebar-cta>span{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:rgba(255,255,255,.5);font-size:1.35rem}.sidebar-cta strong,.sidebar-cta small{display:block}.sidebar-cta small{font-size:.72rem;opacity:.8;margin-top:2px}
.sidebar-user{position:relative;margin-top:auto;padding-top:18px;border-top:1px solid rgba(255,255,255,.14);display:flex;gap:10px;align-items:center;z-index:1}.user-copy{min-width:0}.sidebar-user strong{font-size:.86rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user small{color:#b8cedb;font-size:.75rem}.avatar{width:41px;height:41px;flex:0 0 41px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#f7d267,#ef9e38);color:#1b4560;font-weight:950}.logout{position:relative;width:100%;margin-top:13px;padding:10px;border:1px solid rgba(255,255,255,.17);border-radius:11px;background:rgba(255,255,255,.07);color:#fff;z-index:1}.logout:hover{background:rgba(255,255,255,.12)}
main{min-width:0}.topbar{position:sticky;top:0;z-index:20;min-height:82px;padding:14px 30px;display:flex;gap:14px;align-items:center;background:rgba(255,255,255,.93);backdrop-filter:blur(14px);border-bottom:1px solid rgba(215,225,232,.8)}.topbar-title strong,.topbar-title small{display:block}.topbar-title strong{font-size:1rem}.topbar-title small{margin-top:3px;color:var(--muted);font-size:.78rem}.topbar-badge{margin-left:auto;display:flex;align-items:center;gap:7px;border:1px solid #cde5d1;background:#f1faf2;color:#397043;border-radius:999px;padding:7px 11px;font-size:.75rem;font-weight:800}.topbar-badge span{width:8px;height:8px;border-radius:50%;background:#45a452;box-shadow:0 0 0 4px rgba(69,164,82,.12)}.menu-button{display:none;border:0;background:var(--sky);color:var(--blue);width:42px;height:42px;border-radius:11px;font-size:1.2rem}.content{padding:30px;max-width:1540px;margin:auto}

/* Alerts and buttons */
.flash-stack{display:grid;gap:9px;margin-bottom:18px}.flash{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:12px;border:1px solid;font-weight:650;box-shadow:0 7px 20px rgba(20,55,80,.05)}.flash>span{width:23px;height:23px;border-radius:50%;display:grid;place-items:center;font-weight:900}.flash.success{color:#286235;background:#edf8ef;border-color:#b9dfc0}.flash.success>span{background:#d1eed6}.flash.error{color:#9a342d;background:#fff1f0;border-color:#efc7c3}.flash.error>span{background:#f6d9d6}.flash.info{color:#1f5b78;background:#eef8fd;border-color:#c2e2ef}.flash.info>span{background:#d7eff8}
.btn{border:0;border-radius:12px;min-height:43px;padding:10px 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:850;transition:.18s}.btn:hover{transform:translateY(-1px)}.btn.primary{color:#fff;background:linear-gradient(135deg,var(--blue),#0d7b99);box-shadow:0 10px 20px rgba(7,89,133,.22)}.btn.secondary{color:var(--blue);background:var(--sky);border:1px solid #d1eaf4}.btn.light{color:#173e53;background:#fff;box-shadow:0 10px 25px rgba(0,0,0,.12)}.btn.glass{color:#fff;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.13);backdrop-filter:blur(8px)}.btn.ghost{color:#526271;background:#f2f5f7;border:1px solid #e2e8ec}.btn.outline{color:var(--blue);background:#fff;border:1px solid #aacbd9}.btn-large{min-height:50px;padding:13px 18px}.text-link{color:var(--blue);font-weight:850}

/* Dashboard */
.hero-card{min-height:288px;border-radius:28px;padding:40px;display:flex;align-items:center;justify-content:space-between;gap:30px;color:#fff;background:radial-gradient(circle at 78% 18%,rgba(245,197,66,.55),transparent 18%),radial-gradient(circle at 96% 90%,rgba(109,170,59,.55),transparent 28%),linear-gradient(125deg,#075985,#0e7490 62%,#518c35);box-shadow:var(--shadow);overflow:hidden;position:relative}.hero-card:before{content:"";position:absolute;width:230px;height:230px;border:1px solid rgba(255,255,255,.15);border-radius:50%;right:70px;top:25px}.hero-copy{position:relative;z-index:2}.hero-card h1{font-size:clamp(2.2rem,4vw,3.45rem);line-height:1.02;max-width:760px;margin:9px 0 13px;letter-spacing:-.045em}.hero-card p{max-width:700px;color:#e1f2f7;line-height:1.65;font-size:1.02rem}.eyebrow,.section-kicker{font-size:.72rem;text-transform:uppercase;letter-spacing:.13em;font-weight:900}.eyebrow{color:#f7fbdc}.section-kicker{color:var(--cyan);display:block;margin-bottom:7px}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.hero-orbit{position:relative;flex:0 0 250px;width:250px;height:250px;display:grid;place-items:center;z-index:2}.orbit-main{width:102px;height:102px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#f9d453,#ef9b36);font-size:3rem;box-shadow:0 20px 35px rgba(0,0,0,.2)}.orbit-item{position:absolute;width:54px;height:54px;border-radius:17px;background:rgba(255,255,255,.93);display:grid;place-items:center;font-size:1.65rem;font-style:normal;box-shadow:0 12px 25px rgba(0,0,0,.18)}.o1{top:12px;left:32px}.o2{top:35px;right:8px}.o3{bottom:18px;right:25px}.o4{bottom:4px;left:24px}
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:22px 0 34px}.metrics article{padding:20px;border-radius:19px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:14px}.metric-icon{width:50px;height:50px;flex:0 0 50px;border-radius:15px;display:grid;place-items:center;font-size:1.35rem}.metric-icon.blue{background:#e7f4fa;color:#0b6b91}.metric-icon.green{background:#edf7e7;color:#58882d}.metric-icon.orange{background:#fff3e7;color:#cf6f22}.metric-icon.purple{background:#f1ecfb;color:#7553b8}.metrics strong,.metrics small{display:block}.metrics strong{font-size:1.75rem;line-height:1}.metrics small{color:var(--muted);margin-top:5px}.section-heading,.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:25px 0 17px}.section-heading h2,.page-head h1{margin:0 0 6px;font-size:clamp(1.65rem,3vw,2.25rem);letter-spacing:-.025em}.section-heading p,.page-head p{margin:0;color:var(--muted)}.page-actions{display:flex;gap:10px;flex-wrap:wrap}.step-indicator{display:flex;align-items:center;gap:7px}.step-indicator span{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:#e7edf1;color:#7c8995;font-weight:900}.step-indicator span.active{background:var(--blue);color:#fff}.step-indicator i{width:32px;height:2px;background:#dbe3e8}
.course-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.course-card{padding:20px;background:#fff;border:1px solid var(--line);border-radius:19px;box-shadow:0 8px 25px rgba(20,55,80,.045);transition:.2s}.course-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-sm)}.course-card-top{display:flex;justify-content:space-between;align-items:center}.course-icon{width:49px;height:49px;border-radius:15px;background:linear-gradient(135deg,#eff8fb,#e8f3e3);display:grid;place-items:center;font-size:1.65rem}.course-location{font-size:.7rem;font-weight:850;color:var(--blue);background:var(--sky);padding:5px 8px;border-radius:999px}.course-card h3{margin:14px 0 6px}.course-card p{color:var(--muted);font-size:.86rem;min-height:22px}.progress{height:8px;background:#e9eef2;border-radius:999px;overflow:hidden;margin:18px 0 9px}.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),#68a53c);border-radius:inherit}.course-footer{display:flex;justify-content:space-between;font-size:.8rem}.course-footer span{color:var(--muted)}.course-footer strong{color:#39783f}

/* Forms */
.table-card,.form-card,.filter-card,.post-card,.summary-card,.list-toolbar{background:#fff;border:1px solid var(--line);border-radius:19px;box-shadow:0 8px 25px rgba(20,55,80,.055)}.form-card{padding:26px}.form-card fieldset{border:0;padding:0;margin:0 0 12px}.form-card legend{font-size:1.1rem;font-weight:900;margin-bottom:15px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.compact-grid{gap:12px}.span-2{grid-column:span 2}label{display:grid;gap:7px;color:#344555;font-size:.88rem;font-weight:780}input,select,textarea{width:100%;border:1px solid #d8e2e8;border-radius:12px;padding:12px 13px;outline:none;background:#fff;color:var(--ink);transition:.15s}input:focus,select:focus,textarea:focus{border-color:#3a94b0;box-shadow:0 0 0 4px rgba(58,148,176,.12)}input[readonly]{background:#f3f6f8;color:#5d6a75}textarea{min-height:96px;resize:vertical}.form-actions,.table-actions{display:flex;justify-content:flex-end;gap:10px}.admin-note{margin-top:16px;padding:12px 14px;border-radius:12px;background:#eff8fc;color:#275f79;border:1px solid #cce6f0;font-size:.84rem}.registration-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}.registration-main{display:grid;gap:18px}.registration-summary{position:sticky;top:104px}.summary-card{padding:24px;background:linear-gradient(180deg,#fff,#f6fafc)}.summary-icon{width:49px;height:49px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(135deg,#f6d25d,#f0a43b);font-size:1.5rem}.summary-card h3{margin:15px 0 9px}.summary-card ul{margin:0;padding-left:20px;color:var(--muted);line-height:1.8;font-size:.87rem}.summary-actions{display:grid;gap:9px;margin-top:22px}.form-section-title{display:flex;align-items:center;gap:12px;margin-bottom:20px}.form-section-title>span{width:40px;height:40px;border-radius:13px;background:linear-gradient(135deg,var(--blue),var(--cyan));color:#fff;display:grid;place-items:center;font-size:.79rem;font-weight:900;box-shadow:0 8px 18px rgba(7,89,133,.18)}.form-section-title h2,.form-section-title p{margin:0}.form-section-title h2{font-size:1.16rem}.form-section-title p{color:var(--muted);font-size:.83rem;margin-top:3px}.participant-data-grid{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:20px}.photo-capture-card{border:1px dashed #b9ced9;background:#f7fbfd;border-radius:17px;padding:13px}.photo-frame{aspect-ratio:3/4;border-radius:13px;overflow:hidden;background:linear-gradient(135deg,#e9f2f6,#edf3eb);display:grid;place-items:center;border:1px solid #d8e6ec}.photo-frame video,.photo-frame img{width:100%;height:100%;object-fit:cover}.photo-placeholder{text-align:center;padding:14px;color:#61717f}.photo-placeholder span{display:block;font-size:2.3rem}.photo-placeholder strong,.photo-placeholder small{display:block}.photo-placeholder small{font-size:.75rem;margin-top:4px}.photo-actions{display:grid;gap:8px;margin-top:11px}.upload-photo-button{display:flex;align-items:center;justify-content:center;min-height:43px;border-radius:12px;background:#fff;border:1px solid #cddde5;color:var(--blue);font-weight:850;cursor:pointer;text-align:center;padding:9px}.upload-photo-button input{position:absolute;opacity:0;width:1px;height:1px}.photo-help{display:block;color:var(--muted);font-size:.72rem;text-align:center;margin-top:8px;line-height:1.4}
.course-select-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.course-option{position:relative;display:flex;align-items:center;gap:11px;padding:14px;border:1px solid var(--line);border-radius:15px;cursor:pointer;transition:.16s;background:#fff}.course-option:hover{border-color:#9bc4d4}.course-option input{position:absolute;opacity:0;width:auto}.course-check{flex:0 0 24px;width:24px;height:24px;display:grid;place-items:center;border-radius:8px;border:1px solid #b9c6ce;color:transparent}.course-option:has(input:checked){border-color:#4f9db7;background:#f0f9fc;box-shadow:0 7px 18px rgba(7,89,133,.07)}.course-option:has(input:checked) .course-check{background:var(--blue);border-color:var(--blue);color:#fff}.course-option-icon{font-size:1.45rem}.course-option-copy{min-width:0}.course-option small,.course-option em{display:block;margin-top:4px}.course-option small{color:var(--muted);font-size:.77rem}.course-option em{color:#397942;font-style:normal;font-size:.74rem;font-weight:850}.course-option.full{opacity:.52;cursor:not-allowed}.consent{display:flex;align-items:flex-start;gap:11px;padding:15px;background:#f7fafb;border:1px solid #e2e9ed;border-radius:13px}.consent input{width:auto;margin-top:4px}.consent strong{display:block;margin-bottom:3px}.consent span{font-weight:500;line-height:1.48}

/* Lists / tables */
.list-toolbar{display:flex;justify-content:space-between;align-items:center;padding:13px 15px;margin-bottom:13px}.search-box{display:flex;align-items:center;gap:9px;max-width:520px;flex:1}.search-box>span{color:var(--blue);font-size:1.2rem}.search-box input{border:0;box-shadow:none;padding:8px 0}.search-box input:focus{box-shadow:none}.list-count{color:var(--muted);font-size:.85rem}.list-count strong{color:var(--blue)}.registration-list{display:grid;gap:12px}.registration-card{display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:16px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:18px;padding:15px;box-shadow:0 7px 22px rgba(20,55,80,.045);transition:.16s}.registration-card:hover{border-color:#b9d2de;box-shadow:var(--shadow-sm)}.participant-photo{width:76px;height:88px;border-radius:14px;overflow:hidden;background:linear-gradient(135deg,#e6f3f8,#e9f2e3);display:grid;place-items:center}.participant-photo img{width:100%;height:100%;object-fit:cover}.participant-photo span{font-size:2rem;font-weight:900;color:var(--blue)}.participant-title{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.participant-title h2{margin:3px 0 0;font-size:1.18rem}.participant-code{font-size:.68rem;font-weight:900;letter-spacing:.08em;color:var(--cyan)}.participant-details{display:grid;grid-template-columns:110px minmax(150px,1fr) 130px minmax(240px,1.5fr);gap:12px;margin-top:10px}.participant-details span{font-size:.82rem;color:#425261}.participant-details b{display:block;font-size:.65rem;text-transform:uppercase;letter-spacing:.06em;color:#88939d;margin-bottom:3px}.registration-actions{display:flex;gap:7px;align-items:center}.action-button{border:0;border-radius:11px;padding:9px 11px;display:flex;align-items:center;gap:6px;font-weight:800;white-space:nowrap}.action-button.print{background:#eaf6fb;color:var(--blue)}.action-button.delete{background:#fff0ef;color:#a43c34}.badge{display:inline-flex;border-radius:999px;padding:6px 9px;font-size:.7rem;font-weight:850;white-space:nowrap}.badge.success,.badge-button.success{background:#eaf7eb;color:#2f7037}.badge.danger,.badge-button.danger{background:#fdecea;color:#a33c33}.badge.neutral{background:#f1f3f5;color:#697580}.empty-card{padding:35px;text-align:center;color:var(--muted)}.empty-state{padding:70px 25px;text-align:center;background:#fff;border:1px dashed #c8d8e1;border-radius:22px}.empty-state>div{font-size:3rem}.empty-state h2{margin:12px 0 5px}.empty-state p{color:var(--muted);margin:0 0 20px}
.table-card{overflow:auto}table{width:100%;border-collapse:collapse;min-width:760px}th,td{padding:14px 15px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:#516070;background:#f8fafb}td small{display:block;color:var(--muted);margin-top:4px}.wide-cell{min-width:260px}.icon-danger,.comment-delete{border:0;background:#fdecea;color:#a33c33;border-radius:9px;width:36px;height:36px}.split-layout{display:grid;grid-template-columns:360px minmax(0,1fr);gap:20px;align-items:start}.sticky-card{position:sticky;top:100px}.check-list{display:grid;gap:8px;margin-top:9px;padding:12px;background:#f7f9fa;border-radius:11px;max-height:260px;overflow:auto}.check-list label{display:flex;align-items:flex-start;gap:8px;font-weight:600}.check-list input{width:auto}.field-title{font-size:.9rem}.badge-button{border:0;border-radius:999px;padding:6px 10px;font-weight:800}.filter-card{padding:16px;display:grid;grid-template-columns:1fr 240px auto;gap:12px;align-items:end;margin-bottom:16px}.attendance-options{display:flex;gap:8px;flex-wrap:wrap}.attendance-options label{display:block}.attendance-options input{position:absolute;opacity:0;width:auto}.attendance-options span{display:inline-flex;padding:7px 10px;border-radius:9px;border:1px solid var(--line);font-size:.8rem}.attendance-options input:checked + .present{background:#e7f5e9;border-color:#9ed0a5;color:#27692f}.attendance-options input:checked + .absent{background:#fdecea;border-color:#e7aaa5;color:#9e342c}.attendance-options input:checked + .justified{background:#fff4da;border-color:#e5c474;color:#80600c}.table-actions{padding:16px}

/* Gallery */
.upload-card{margin-bottom:22px}.file-field small{color:var(--muted);font-weight:500}.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.post-card{overflow:hidden}.post-media{background:#0f1b24;display:grid;place-items:center;aspect-ratio:16/10}.post-media img,.post-media video{width:100%;height:100%;object-fit:contain}.post-body{padding:20px}.post-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.post-head h2{margin:5px 0 0}.post-head .eyebrow{color:var(--blue)}.comments{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.comments h3{font-size:1rem}.comment{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #edf1f4}.comment strong,.comment small{display:block}.comment small{color:var(--muted);margin-top:2px}.comment p{margin:7px 0 0}.comment-delete{width:28px;height:28px}.comment-form{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:14px}.gallery-empty{grid-column:1/-1}.error-card{text-align:center;padding:70px 20px;background:#fff;border-radius:20px}.error-card>strong{font-size:5rem;color:var(--blue)}

/* Authentication */
.auth-page{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr;background:#eef5f7}.auth-hero{position:relative;min-height:100vh;background:linear-gradient(145deg,rgba(7,61,91,.16),rgba(6,45,69,.91)),url('/static/portada.jpg') center/cover,linear-gradient(135deg,#075985,#568f37);display:flex;align-items:flex-end;padding:55px;color:#fff;overflow:hidden}.auth-hero:before{content:"";position:absolute;width:390px;height:390px;border-radius:50%;border:1px solid rgba(255,255,255,.17);right:-100px;top:-90px}.auth-hero-copy{position:relative;max-width:720px;z-index:2}.auth-kicker{font-size:.72rem;letter-spacing:.16em;font-weight:900;color:#f8eaa2}.auth-hero-copy h1,.register-visual h1{font-size:clamp(2.8rem,5.5vw,5.4rem);line-height:.93;margin:15px 0 20px;letter-spacing:-.055em}.auth-hero-copy h1 em{font-style:normal;color:#f6d45c}.auth-hero-copy p{font-size:1.04rem;line-height:1.7;max-width:640px;color:#e4f2f6}.auth-pills{display:flex;gap:9px;flex-wrap:wrap;margin-top:24px}.auth-pills span{padding:8px 11px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);font-size:.78rem;font-weight:800}.floating-shape{position:absolute;width:64px;height:64px;border-radius:20px;background:rgba(255,255,255,.9);display:grid;place-items:center;font-size:1.8rem;box-shadow:0 15px 35px rgba(0,0,0,.2);z-index:2}.shape-a{right:55px;top:30%}.shape-b{right:150px;top:15%;transform:rotate(-8deg)}.shape-c{right:180px;bottom:18%;transform:rotate(8deg)}.auth-panel{display:grid;place-items:center;padding:34px}.auth-card{width:min(455px,100%);padding:36px;background:#fff;border:1px solid rgba(215,225,232,.9);border-radius:26px;box-shadow:var(--shadow)}.auth-logo{display:flex;align-items:center;gap:11px;margin-bottom:30px}.auth-logo>span{width:45px;height:45px;border-radius:15px;background:linear-gradient(135deg,var(--blue),var(--green));display:grid;place-items:center;color:#fff;font-size:1.3rem;font-weight:950}.auth-logo strong,.auth-logo small{display:block}.auth-logo small{color:var(--muted);font-size:.75rem}.auth-heading>span{font-size:.67rem;letter-spacing:.13em;font-weight:900;color:var(--cyan)}.auth-heading h2{font-size:2.15rem;margin:5px 0 6px;letter-spacing:-.03em}.auth-heading p{margin:0 0 24px;color:var(--muted);line-height:1.5}.input-icon{position:relative}.input-icon>span{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:#7c8a95;font-size:.8rem}.input-icon input{padding-left:38px}.auth-divider{display:flex;align-items:center;gap:10px;margin:22px 0;color:#8a969f;font-size:.75rem}.auth-divider:before,.auth-divider:after{content:"";height:1px;background:#e1e7eb;flex:1}.demo{margin-top:17px;padding:0;background:#f1f7fa;border-radius:12px;color:var(--blue);font-size:.82rem}.demo summary{padding:12px;cursor:pointer;font-weight:850}.demo div{display:grid;gap:3px;padding:0 12px 12px}.auth-link{text-align:center;margin:20px 0 0;color:var(--muted)}.auth-link a,.back-link{color:var(--blue);font-weight:850}.auth-flashes{position:fixed;z-index:50;top:18px;right:18px;max-width:430px}.register-page{grid-template-columns:.85fr 1.15fr}.register-visual{min-height:100vh;padding:45px;display:flex;flex-direction:column;justify-content:space-between;color:#fff;background:radial-gradient(circle at 80% 12%,rgba(245,197,66,.46),transparent 20%),linear-gradient(145deg,#075985,#0c7189 62%,#5b9139)}.register-visual>div{max-width:600px}.register-visual h1{font-size:clamp(2.6rem,5vw,4.8rem)}.register-visual p{line-height:1.7;color:#e1f1f5}.light-back{color:#fff}.mobile-back{display:none}.wide-auth{width:min(620px,100%)}.privacy-note{text-align:center;color:var(--muted);font-size:.78rem;margin:20px 0 0}

@media(max-width:1180px){.course-grid{grid-template-columns:repeat(2,1fr)}.metrics{grid-template-columns:repeat(2,1fr)}.registration-layout{grid-template-columns:1fr}.registration-summary{position:static}.summary-card{display:grid;grid-template-columns:auto 1fr auto;gap:15px;align-items:center}.summary-card h3{margin:0}.summary-card ul{display:none}.summary-actions{display:flex;margin:0}.participant-details{grid-template-columns:100px 1fr 120px}.wide-detail{grid-column:1/-1}.auth-page{grid-template-columns:1fr}.auth-hero,.register-visual{display:none}.auth-panel{min-height:100vh}.mobile-back{display:inline-block;margin-bottom:18px}.gallery-grid{grid-template-columns:1fr}.split-layout{grid-template-columns:1fr}.sticky-card{position:static}}
@media(max-width:820px){.app-shell{display:block}.sidebar{position:fixed;left:-290px;width:276px;transition:left .22s}.sidebar.open{left:0;box-shadow:15px 0 45px rgba(8,36,55,.25)}.menu-button{display:grid;place-items:center}.content{padding:18px}.topbar{padding:13px 18px;min-height:72px}.topbar-badge{display:none}.hero-card{padding:27px;align-items:flex-start;flex-direction:column}.hero-orbit{display:none}.metrics,.course-grid,.form-grid,.course-select-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.participant-data-grid{grid-template-columns:1fr}.photo-capture-card{max-width:330px;width:100%;margin:auto}.page-head,.section-heading{align-items:flex-start;flex-direction:column}.filter-card{grid-template-columns:1fr}.summary-card{display:block}.summary-card h3{margin:14px 0 8px}.summary-card ul{display:block}.summary-actions{display:grid;margin-top:18px}.registration-card{grid-template-columns:66px minmax(0,1fr)}.participant-photo{width:66px;height:78px}.registration-actions{grid-column:1/-1;justify-content:flex-end;border-top:1px solid #edf1f4;padding-top:11px}.participant-title{display:block}.participant-title .badge{margin-top:7px}.participant-details{grid-template-columns:1fr 1fr}.wide-detail{grid-column:1/-1}.list-toolbar{align-items:stretch;flex-direction:column}.list-count{text-align:right}.auth-panel{padding:18px}.auth-card{padding:26px}.comment-form{grid-template-columns:1fr}}
@media(max-width:520px){.content{padding:14px}.hero-card{border-radius:20px;padding:23px}.hero-card h1{font-size:2.2rem}.metrics{gap:10px}.metrics article{padding:15px}.metric-icon{width:44px;height:44px;flex-basis:44px}.form-card{padding:18px}.form-section-title{align-items:flex-start}.participant-details{grid-template-columns:1fr}.wide-detail{grid-column:auto}.registration-card{grid-template-columns:58px minmax(0,1fr);padding:12px;gap:11px}.participant-photo{width:58px;height:68px}.action-button span{display:none}.page-actions{width:100%}.page-actions .btn{flex:1}.auth-card{padding:22px}.compact-grid{grid-template-columns:1fr}}


/* Branding: only Comisión Socio Cultural */
.brand-logo{width:50px;height:50px;background:#fff;border-radius:15px;padding:5px;box-shadow:0 8px 18px rgba(0,0,0,.14)}
.brand-logo img,.auth-logo-main img,.register-logo img{width:100%;height:100%;object-fit:contain;display:block}
.auth-logo-images{align-items:center}
.auth-logo-main{width:70px;height:70px;flex:0 0 70px;background:#fff;border:1px solid #e3ebef;border-radius:18px;padding:7px;display:grid;place-items:center;box-shadow:0 9px 20px rgba(8,36,55,.08)}
.register-visual-copy{max-width:610px}
.register-logo{width:92px;height:92px;background:rgba(255,255,255,.97);border-radius:22px;padding:9px;margin-bottom:24px;box-shadow:0 18px 38px rgba(0,0,0,.18)}
.selection-info{display:flex;justify-content:space-between;gap:10px;align-items:center;background:linear-gradient(135deg,#eff8fc,#f8fcfd);border:1px solid #cfe7f1;color:#245a70;padding:12px 14px;border-radius:14px;margin-bottom:12px;font-size:.88rem;font-weight:700}
#courseSelectionCounter{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;background:#fff;color:#0e7490;border:1px solid #bfdce8;font-weight:900;white-space:nowrap}
.attendance-info-banner{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 16px}
.attendance-info-banner>div{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 16px;box-shadow:0 12px 24px rgba(8,36,55,.05)}
.course-filter-bar{display:flex;align-items:end;gap:12px;padding:15px 17px;margin-bottom:16px;background:#fff;border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow-sm)}
.course-filter-bar label{flex:1;max-width:520px}
@media(max-width:820px){.selection-info{flex-direction:column;align-items:flex-start}.brand-logo{width:46px;height:46px}.attendance-info-banner{grid-template-columns:1fr}.course-filter-bar{align-items:stretch;flex-direction:column}.course-filter-bar label{max-width:none}}


/* Registration status and confirmation */
.form-error-summary{display:flex;gap:14px;align-items:flex-start;margin:0 0 18px;padding:18px 20px;border:1px solid #efb8b2;background:#fff1f0;border-radius:18px;color:#8f2f27;box-shadow:0 12px 30px rgba(143,47,39,.08)}.form-error-icon{width:38px;height:38px;flex:0 0 38px;border-radius:12px;background:#d94a3f;color:#fff;display:grid;place-items:center;font-size:1.25rem;font-weight:950}.form-error-summary strong{font-size:1.05rem}.form-error-summary p{margin:4px 0 6px}.form-error-summary ul{margin:0;padding-left:19px}.form-error-summary li{margin:4px 0}.field-help{display:block;margin-top:6px;color:#597181;font-weight:650}.age-eligibility-notice{margin:0 0 12px;padding:11px 13px;border-radius:12px;background:#edf8ee;border:1px solid #badcc0;color:#34703d;font-weight:750;font-size:.84rem}.age-eligibility-notice.warning{background:#fff4e7;border-color:#efc98e;color:#84550d}.course-option .age-status{display:block;margin-top:5px;color:#348044;font-size:.72rem}.course-option.age-incompatible{opacity:.55;background:#f6f7f8;cursor:not-allowed}.course-option.age-incompatible .age-status{color:#9d463d}.success-confirmation{max-width:980px;margin:28px auto;padding:42px;background:linear-gradient(145deg,#fff,#f6fcf7);border:1px solid #cce4d0;border-radius:30px;box-shadow:var(--shadow);text-align:center}.success-check{width:78px;height:78px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#3e8a49,#69a83a);color:#fff;font-size:2.5rem;font-weight:950;box-shadow:0 15px 30px rgba(62,138,73,.22)}.success-confirmation h1{font-size:clamp(2rem,4vw,3.2rem);margin:6px 0 10px;letter-spacing:-.04em;color:#235d2b}.success-confirmation>p{color:#52666e;font-size:1.05rem}.confirmation-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:26px 0}.confirmation-summary-grid>div{padding:18px;background:#fff;border:1px solid #dfe9e2;border-radius:18px;text-align:left}.confirmation-summary-grid span,.confirmation-summary-grid small{display:block;color:var(--muted)}.confirmation-summary-grid strong{display:block;margin:5px 0;font-size:1.05rem}.confirmation-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:25px}.temporary-access-box{max-width:620px;margin:18px auto;padding:15px 18px;text-align:left;border-radius:16px;background:#fff8e7;border:1px solid #efd28b}.temporary-access-box p{margin:5px 0}.temporary-access-box code{font-weight:900;color:#7f5710}

/* Teacher management */
.teacher-form-card{padding:24px;margin-bottom:26px}.teacher-form-header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:20px}.teacher-form-header h2{margin:0 0 5px}.teacher-form-header p{margin:0;color:var(--muted)}.teacher-access-hint{padding:10px 13px;border-radius:12px;background:#eff7fb;color:#31657c;font-size:.82rem;font-weight:800}.teacher-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.teacher-form-grid label>small{display:block;margin-top:5px;color:var(--muted);font-weight:550}.password-field{position:relative}.password-field input{padding-right:45px}.password-field button{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:transparent;width:34px;height:34px}.teacher-course-section{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.teacher-course-section>div:first-child small{display:block;margin-top:4px;color:var(--muted)}.teacher-course-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:12px}.teacher-course-grid label{display:flex;gap:9px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:13px;background:#fafcfd;cursor:pointer}.teacher-course-grid input{width:auto}.teacher-course-grid label>span{font-size:1.25rem}.teacher-course-grid strong,.teacher-course-grid small{display:block}.teacher-course-grid small{color:var(--muted);font-size:.72rem}.teacher-submit-bar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.teacher-submit-bar span{color:var(--muted);font-size:.84rem}

/* Attendance clarity */
.attendance-info-banner{grid-template-columns:repeat(4,minmax(0,1fr))}.attendance-empty-guide{display:flex;gap:14px;align-items:center;padding:24px;background:#fff;border:1px dashed #b9ced9;border-radius:18px;color:#46606e}.attendance-empty-guide>span{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:var(--blue);color:#fff;font-weight:900}.attendance-empty-guide strong{font-size:1.05rem}.attendance-empty-guide p{margin:4px 0 0}.attendance-course-title{display:flex;justify-content:space-between;align-items:center;margin:18px 0 10px;padding:14px 17px;background:#fff;border:1px solid var(--line);border-radius:16px}.attendance-course-title>div{display:flex;gap:10px;align-items:center}.attendance-course-title strong,.attendance-course-title small{display:block}.attendance-course-title small{color:var(--muted)}.attendance-course-title>span{font-weight:850;color:var(--blue)}
@media(max-width:1050px){.teacher-form-grid{grid-template-columns:repeat(2,1fr)}.teacher-course-grid{grid-template-columns:repeat(2,1fr)}.attendance-info-banner{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.confirmation-summary-grid,.teacher-form-grid,.teacher-course-grid,.attendance-info-banner{grid-template-columns:1fr}.success-confirmation{padding:25px 18px}.teacher-form-header,.teacher-submit-bar{flex-direction:column}.teacher-submit-bar .btn{width:100%}.confirmation-actions .btn{width:100%}}


/* Administrative commands and network access */
.admin-command-center{margin:22px 0 18px}.admin-command-heading h2{margin:0 0 5px;font-size:1.65rem}.admin-command-heading p{margin:0;color:var(--muted)}
.admin-command-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:15px}
.admin-command-card{display:grid;grid-template-columns:54px 1fr auto;gap:13px;align-items:center;padding:18px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 12px 28px rgba(8,36,55,.06);transition:.18s}
.admin-command-card:hover{transform:translateY(-2px);box-shadow:0 18px 36px rgba(8,36,55,.1);border-color:#a9cedd}.admin-command-card>span{width:54px;height:54px;border-radius:17px;display:grid;place-items:center;font-size:1.65rem}.teacher-command>span{background:#e9f3ff}.registration-command>span{background:#fff3d5}.print-command>span{background:#e8f7ec}.admin-command-card strong,.admin-command-card small{display:block}.admin-command-card strong{font-size:1rem}.admin-command-card small{color:var(--muted);line-height:1.42;margin-top:4px}.admin-command-card>b{font-size:1.4rem;color:var(--cyan)}
.network-access-card{display:grid;grid-template-columns:64px 1fr auto;gap:16px;align-items:center;padding:20px;margin:0 0 22px;background:linear-gradient(135deg,#f0f9fc,#fff);border:1px solid #cce5ef;border-radius:22px;box-shadow:0 12px 28px rgba(8,36,55,.05)}.network-access-icon{width:64px;height:64px;border-radius:20px;background:linear-gradient(135deg,var(--blue),var(--cyan));display:grid;place-items:center;color:#fff;font-size:1.8rem}.network-access-copy h2{font-size:1.28rem;margin:0 0 5px}.network-access-copy p{margin:0 0 8px;color:var(--muted)}.network-access-copy code{display:inline-block;background:#0d3148;color:#fff;padding:8px 11px;border-radius:10px;font-size:.9rem;word-break:break-all}.network-access-copy small{display:block;color:var(--muted);margin-top:7px}
.print-ficha-button{background:linear-gradient(135deg,#fff6d8,#fff);border:1px solid #f0c960!important;color:#6e5200!important;font-weight:900!important;box-shadow:0 8px 18px rgba(189,139,0,.12)}.print-ficha-button:hover{background:#ffefb8!important}.print-ficha-icon{width:32px;height:32px;border-radius:10px;background:#f7c543;display:grid;place-items:center;font-size:1rem}
@media(max-width:1050px){.admin-command-grid{grid-template-columns:1fr}.network-access-card{grid-template-columns:56px 1fr}.network-access-card>.btn{grid-column:1/-1;width:100%}}
@media(max-width:620px){.network-access-card{grid-template-columns:1fr}.network-access-icon{width:52px;height:52px}.admin-command-card{grid-template-columns:48px 1fr auto;padding:15px}.admin-command-card>span{width:48px;height:48px}.print-ficha-button{width:100%;justify-content:center}}

.attendance-course-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.attendance-print-button{white-space:nowrap}.attendance-course-actions>span{font-weight:800;color:var(--muted);font-size:.84rem}@media(max-width:820px){.attendance-course-title{align-items:flex-start;gap:12px}.attendance-course-actions{width:100%;justify-content:flex-start}.attendance-print-button{width:100%;text-align:center}}

/* Family privacy and physical-delivery notices */
.family-private-panel{margin:22px 0;padding:26px;border-radius:24px;background:linear-gradient(135deg,#f4fbfd,#f7fbf3);border:1px solid #d7e8e3;box-shadow:0 14px 32px rgba(8,36,55,.06)}
.family-private-heading h2{margin:5px 0 8px}.family-private-heading p{margin:0;color:var(--muted);max-width:820px;line-height:1.55}
.family-private-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:20px}.family-private-actions>a{display:flex;align-items:center;gap:13px;padding:17px;background:#fff;border:1px solid var(--line);border-radius:17px;box-shadow:0 10px 24px rgba(8,36,55,.05);transition:.18s}.family-private-actions>a:hover{transform:translateY(-2px);border-color:#9ec6d5}.family-private-actions>a>span{font-size:1.65rem}.family-private-actions strong,.family-private-actions small{display:block}.family-private-actions small{color:var(--muted);margin-top:3px}
.delivery-reminder{display:flex;align-items:flex-start;gap:13px;max-width:850px;margin:18px auto 24px;padding:16px 18px;border-radius:16px;background:#fff8df;border:1px solid #ead28d;text-align:left}.delivery-reminder>span{font-size:1.6rem}.delivery-reminder strong{display:block;color:#795b0b}.delivery-reminder p{margin:4px 0 0!important;color:#665a35!important;font-size:.92rem}
@media(max-width:820px){.family-private-actions{grid-template-columns:1fr}.delivery-reminder{margin-left:0;margin-right:0}}

/* Flexible attendance dates and teacher guidance */
.attendance-date-help{display:flex;align-items:flex-start;gap:14px;margin:0 0 16px;padding:15px 17px;border:1px solid #cfe3ed;border-radius:17px;background:linear-gradient(135deg,#f2f9fc,#fff);box-shadow:0 10px 24px rgba(8,36,55,.045)}
.attendance-date-help>span{font-size:1.55rem}.attendance-date-help strong{display:block;color:var(--blue)}.attendance-date-help p{margin:4px 0 0;color:var(--muted);line-height:1.5}
.attendance-filter-card{grid-template-columns:minmax(260px,1.35fr) minmax(250px,.75fr) auto}
.teacher-login-guide{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:18px;margin:0 0 20px;padding:20px 22px;border-radius:21px;background:linear-gradient(135deg,#eef8fc,#f8fbf4);border:1px solid #cfe1e6;box-shadow:var(--shadow-sm)}
.teacher-login-guide-icon{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:#fff;border:1px solid var(--line);font-size:1.7rem}.teacher-login-guide-copy h2{margin:3px 0 8px}.teacher-login-guide-copy ol{margin:0;padding-left:19px;color:var(--muted);line-height:1.55}.teacher-login-guide-copy li+li{margin-top:4px}.teacher-login-guide-copy strong{color:var(--ink)}
.teacher-workspace{margin:22px 0;padding:25px;border-radius:24px;background:linear-gradient(135deg,#f1f9fc,#f7fbf3);border:1px solid #d5e7e4;box-shadow:0 14px 32px rgba(8,36,55,.06)}
.teacher-workspace-heading h2{margin:4px 0 7px}.teacher-workspace-heading p{margin:0;color:var(--muted)}
.teacher-workspace-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-top:18px}.teacher-workspace-grid>a{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:11px;padding:15px;background:#fff;border:1px solid var(--line);border-radius:17px;box-shadow:0 8px 22px rgba(8,36,55,.045);transition:.18s}.teacher-workspace-grid>a:hover{transform:translateY(-2px);border-color:#9ec5d4}.teacher-workspace-grid>a>span{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:var(--sky);font-size:1.45rem}.teacher-workspace-grid strong,.teacher-workspace-grid small{display:block}.teacher-workspace-grid small{margin-top:3px;color:var(--muted);line-height:1.35}.teacher-workspace-grid b{color:var(--cyan);font-size:1.15rem}
@media(max-width:1100px){.teacher-workspace-grid{grid-template-columns:repeat(2,1fr)}.teacher-login-guide{grid-template-columns:58px 1fr}.teacher-login-guide>.btn{grid-column:1/-1;width:100%}}
@media(max-width:820px){.attendance-filter-card{grid-template-columns:1fr}.teacher-workspace-grid{grid-template-columns:1fr}.teacher-login-guide{grid-template-columns:1fr}.teacher-login-guide-icon{width:52px;height:52px}.attendance-date-help{padding:14px}}

.action-button.edit{background:#fff7df;color:#805b00;border-color:#efd38a}.action-button.edit:hover{background:#ffefbd;transform:translateY(-1px)}
.edit-permission-note{margin:0 0 18px;border-left:4px solid #0e7490}

/* Identity documents and teacher read-only access */
.teacher-readonly-badge{display:inline-flex;align-items:center;gap:7px;padding:9px 12px;border-radius:11px;background:#eef5f8;color:#456475;border:1px solid #d6e4ea;font-weight:850;white-space:nowrap}
.identity-upload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.identity-upload-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:18px;border:1px dashed #a9c8d7;border-radius:18px;background:linear-gradient(145deg,#f7fbfd,#fff);cursor:pointer;overflow:hidden}
.identity-upload-card:hover{border-color:var(--cyan);box-shadow:0 10px 24px rgba(8,89,126,.07)}
.identity-upload-icon{font-size:1.8rem}.identity-upload-card>strong{font-size:1rem}.identity-upload-card>small{color:var(--muted);line-height:1.45}.identity-upload-card>em{font-size:.76rem;color:#397942;font-style:normal;font-weight:750}
.identity-upload-card input{position:absolute;opacity:0;width:1px;height:1px}
.identity-upload-action{display:inline-flex;padding:9px 12px;border-radius:11px;background:#eaf6fb;color:var(--blue);font-weight:850}
.identity-preview{width:100%;height:180px;object-fit:contain;background:#eef3f6;border:1px solid #d5e2e8;border-radius:12px;margin-top:4px}
@media(max-width:820px){.identity-upload-grid{grid-template-columns:1fr}.identity-preview{height:155px}}

/* Privacy, terms and sensitive documents */
.sidebar-legal{display:flex;justify-content:center;gap:7px;margin:12px 0 8px;color:#b9d2df;font-size:.72rem;position:relative;z-index:1}.sidebar-legal a:hover{color:#fff}.public-legal-footer{position:fixed;bottom:12px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;z-index:30;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.94);border:1px solid #dce7ec;box-shadow:0 8px 22px rgba(8,36,55,.1);font-size:.72rem;color:#64717b}.public-legal-footer a{font-weight:800;color:var(--blue)}
.legal-consent{display:flex;align-items:flex-start;gap:12px;padding:16px;border-radius:15px;border:1px solid #d7e3e9;background:#f8fbfc;line-height:1.55}.legal-consent input{width:auto;margin-top:5px;flex:0 0 auto}.legal-consent strong{display:block;margin-bottom:4px}.legal-consent a{color:var(--blue);font-weight:850;text-decoration:underline}.required-consent{border-color:#9fcada;background:linear-gradient(135deg,#eff9fc,#f9fcfd)}.optional-consent{border-color:#e3dfc4;background:#fffdf4}.compact-consent{font-size:.83rem}.consent-stack{display:grid;gap:12px}.consent-help{margin:12px 0 0;color:var(--muted);font-size:.82rem;line-height:1.5}.consent-help a{color:var(--blue);font-weight:800}
.legal-page{width:min(980px,100%);margin:0 auto;padding:8px 0 45px}.standalone-legal-wrap{min-height:100vh;background:linear-gradient(135deg,#eef6f8,#f8fbfc);padding:38px 20px}.legal-hero{padding:28px;border-radius:24px;background:linear-gradient(135deg,#075985,#0d7189 65%,#4c8b38);color:#fff;margin-bottom:18px;box-shadow:var(--shadow)}.legal-hero .section-kicker{color:#f8e39a}.legal-hero h1{font-size:clamp(2.1rem,4vw,3.4rem);margin:8px 0}.legal-hero p{max-width:780px;color:#e6f4f7;line-height:1.65}.legal-card{padding:24px 26px;background:#fff;border:1px solid var(--line);border-radius:18px;margin-bottom:13px;box-shadow:0 10px 26px rgba(8,36,55,.04)}.legal-card h2{margin:0 0 10px;font-size:1.2rem}.legal-card p,.legal-card li{line-height:1.65;color:#455562}.legal-card ul{margin:8px 0 0;padding-left:22px}.legal-card a{color:var(--blue);font-weight:800}.legal-warning{border-left:5px solid #f2b844}.legal-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:18px}
.document-view-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.document-view-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:var(--shadow)}.document-view-card>div{display:flex;align-items:center;gap:10px;margin-bottom:14px}.document-view-card>div>span{font-size:1.8rem}.document-view-card h2{font-size:1.05rem;margin:0}.document-view-card img{display:block;width:100%;max-height:620px;object-fit:contain;border-radius:14px;background:#eef3f5;border:1px solid #dce5ea}.sensitive-data-notice{margin-top:18px;padding:16px 18px;border-radius:15px;background:#fff4e8;border:1px solid #efc795}.sensitive-data-notice strong{display:block;margin-bottom:4px}.sensitive-data-notice p{margin:0;color:#725334}
.action-button.documents{background:#eef5ff;color:#315c91}.privacy-accept-page{min-height:calc(100vh - 160px);display:grid;place-items:center;padding:25px}.privacy-accept-card{width:min(720px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;padding:34px;box-shadow:var(--shadow)}.privacy-shield{font-size:3rem}.privacy-accept-card h1{font-size:2rem;margin:8px 0}.privacy-accept-card>p{color:var(--muted);line-height:1.65}.privacy-summary-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:18px 0}.privacy-summary-list span{padding:11px 13px;background:#f3f8fa;border-radius:12px;font-size:.85rem;font-weight:700}
@media(max-width:820px){.public-legal-footer{position:static;transform:none;margin:10px auto 18px;width:max-content;max-width:94%;flex-wrap:wrap;justify-content:center}.document-view-grid,.privacy-summary-list{grid-template-columns:1fr}.legal-page{padding-bottom:18px}.standalone-legal-wrap{padding:18px 12px}.legal-card{padding:19px}.privacy-accept-page{padding:12px}.privacy-accept-card{padding:22px}.legal-actions{justify-content:stretch}.legal-actions .btn{flex:1}}

.forgot-password-link{text-align:right;margin:-7px 0 4px}.forgot-password-link a{color:var(--blue);font-weight:850;font-size:.86rem}.recovery-note{margin-top:20px;padding:14px 16px;border-radius:14px;background:#f2f8fb;border:1px solid #d5e8f0}.recovery-note strong{display:block;color:var(--blue)}.recovery-note p{margin:5px 0 0;color:var(--muted);line-height:1.5}.teacher-reset-button{white-space:nowrap;padding:8px 10px;font-size:.78rem}

.teacher-account-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.teacher-account-actions form{margin:0}.teacher-delete-button{white-space:nowrap;padding:8px 10px;font-size:.78rem;background:#fdecea;color:#a33c33;border:1px solid #f2c7c3}.teacher-delete-button:hover{background:#f9d9d6}.teacher-delete-button:focus-visible{outline:3px solid rgba(163,60,51,.2)}
