:root{--blue:#174e98;--blue-dark:#123b73;--gold:#ffc20a;--goldsoft:#fff3c3;--bg:#f5f7fc;--ink:#1d2736;--muted:#5e6d80;--border:#dfe5ed;--red:#ad3038;--green:#186b47;--radius:16px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 system-ui,-apple-system,Segoe UI,Arial,sans-serif}a{color:var(--blue)}h1{font-size:clamp(1.65rem,4vw,2.4rem);line-height:1.2;margin:.1rem 0 1rem}h2{font-size:1.35rem;line-height:1.25}h3{font-size:1.05rem}small,.small{font-size:.85rem}.muted{color:var(--muted)}.container{width:min(1080px,calc(100% - 32px));margin-inline:auto}.site-header{background:#fff;border-bottom:4px solid var(--gold);box-shadow:0 2px 10px #172e4612}.header-inner{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:78px;padding:9px 0}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);min-width:0}.brand img{width:55px;height:55px;object-fit:contain}.brand strong{font-size:1.18rem;color:var(--blue);display:block}.brand small{display:block;font-size:.73rem;color:var(--muted)}.nav{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.nav a{text-decoration:none;font-weight:600;font-size:.93rem}.page{min-height:calc(100vh - 160px);padding:28px 0 55px}.footer{border-top:1px solid var(--border);padding:24px 0;color:var(--muted);font-size:.84rem;background:white}.panel,.stand-card{background:white;border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin:18px 0;box-shadow:0 2px 10px #283c5a09}.panel hr{border:0;border-top:1px solid var(--border);margin:22px 0}.narrow{max-width:580px;margin:16px auto}.hero{background:linear-gradient(120deg,#123b73 0%,#1a69af 100%);border-radius:24px;padding:clamp(24px,5vw,56px);color:white;overflow:hidden;position:relative}.hero:before{content:'';position:absolute;right:-70px;top:-90px;width:260px;height:260px;background:#ffc20a;opacity:.18;border-radius:50%}.hero h1{max-width:660px;font-size:clamp(2rem,5vw,3.1rem)}.hero p{max-width:610px;font-size:1.07rem}.eyebrow{text-transform:uppercase;font-size:.77rem;letter-spacing:.1em;font-weight:750;margin-bottom:10px;color:var(--blue)}.hero .eyebrow{color:var(--gold)}.hero .btn{background:var(--gold);color:#172b46}.hero .btn-outline{border:1px solid white;color:white;background:transparent}.hero .btn:hover{filter:brightness(.94)}.hero .stats{display:flex;flex-wrap:wrap;gap:9px;margin-top:26px}.hero .stats span{border:1px solid #ffffff66;border-radius:99px;padding:6px 11px;font-size:.85rem;background:#ffffff12}.btn{display:inline-flex;justify-content:center;align-items:center;padding:11px 18px;border:0;border-radius:10px;background:var(--blue);color:#fff;font:inherit;font-weight:700;cursor:pointer;text-decoration:none;min-height:43px}.btn:hover{background:var(--blue-dark);color:white}.btn-small{font-size:.87rem;padding:7px 12px;min-height:34px}.btn-outline{border:1px solid var(--blue);color:var(--blue);background:white}.btn-outline:hover{background:#eaf1fa;color:var(--blue)}.btn-danger{background:var(--red)}.btn-danger:hover{background:#922027}.btn:disabled{opacity:.45;cursor:not-allowed}.wide{width:100%}.inline{display:inline;margin:0}.text-btn{border:0;background:transparent;color:var(--blue);font-weight:700;cursor:pointer;font:inherit}.actions{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:15px}.cards>div{background:var(--bg);border-radius:12px;padding:18px}.cards p{margin:.3em 0}.cards>.stand-card,.cards>.panel{margin:0}.stand-card{display:flex;flex-direction:column;gap:9px;text-decoration:none;color:var(--ink);transition:transform .16s,border-color .16s}.stand-card:hover{transform:translateY(-2px);border-color:var(--blue)}.stand-card strong{font-size:1.13rem}.stand-card small{color:var(--muted)}.stand-number{color:var(--blue);font-weight:750;font-size:.8rem}.passport-top{background:linear-gradient(135deg,#fff 65%,var(--goldsoft));border-radius:18px;border:1px solid var(--border);padding:28px;display:flex;justify-content:space-between;align-items:center;gap:20px}.passport-top p{margin:0;color:var(--muted)}.points{background:var(--blue);color:white;padding:17px 24px;border-radius:13px;text-align:center;min-width:150px}.points strong{display:block;font-size:2.4rem;line-height:1.1}.points span{font-size:.8rem}.statline{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:20px 0}.statline>span{padding:8px 12px;background:white;border-radius:10px}.pill{border-radius:100px;padding:5px 10px;font-size:.78rem;font-weight:700;width:fit-content}.pill.good{background:#e1f6eb;color:#12663d}.pill.pending{background:#fff1cb;color:#785507}.alert{background:#eaf1fc;border-left:4px solid var(--blue);padding:13px 16px;border-radius:8px;margin-bottom:18px}.alert.ok{background:#e6f6ef;border-color:var(--green)}.alert.error{background:#fdeced;border-color:var(--red)}.success{color:var(--green)}.error-text{color:var(--red)}.twocol{display:grid;grid-template-columns:1fr 1fr;gap:14px}.panel label{display:block;font-weight:650;font-size:.93rem;margin-bottom:14px}.panel input:not([type=checkbox]),.panel select,.panel textarea{display:block;width:100%;font:inherit;font-weight:400;color:var(--ink);margin-top:6px;padding:11px 12px;min-height:42px;border:1px solid #b9c4d5;border-radius:9px;background:#fff}.panel input:focus,.panel textarea:focus,.panel select:focus{outline:3px solid #e4efff;border-color:var(--blue)}.panel .check{display:flex;align-items:flex-start;gap:10px;font-weight:400}.panel .check input{margin-top:5px;accent-color:var(--blue)}.panel details{border:1px solid var(--border);border-radius:10px;padding:12px;margin:16px 0}.panel details summary{cursor:pointer;font-weight:700}.qrbox{margin:20px auto;display:flex;justify-content:center;min-height:310px;align-items:center}.qrbox canvas{width:min(300px,100%);height:auto;image-rendering:pixelated;border:7px solid white;box-shadow:0 3px 17px #20375c22}.center{text-align:center}.photo-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.photocard img{width:100%;height:210px;object-fit:cover;border-radius:11px;background:#eaf0f7}.photocard form{margin-top:12px}.photocard .actions .btn{flex:1}.photocard h3{margin:12px 0 6px}.overflow{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:460px;font-size:.91rem}th,td{border-bottom:1px solid var(--border);padding:11px;text-align:left;vertical-align:top}th{color:var(--muted);background:#f8fafd}p{overflow-wrap:anywhere}.big-pin{font-size:1.9rem;letter-spacing:.15em;margin-left:12px;font-weight:900}.statline .pill{white-space:normal}@media(max-width:700px){.brand img{height:42px;width:42px}.brand small{font-size:.65rem}.brand strong{font-size:1.02rem}.nav{gap:8px}.nav a,.text-btn{font-size:.82rem}.header-inner{align-items:flex-start}.twocol{grid-template-columns:1fr;gap:0}.passport-top{flex-direction:column;align-items:stretch}.points{width:100%}.panel{padding:18px}.page{padding-top:17px}.hero{border-radius:15px}.cards{grid-template-columns:1fr}.photo-grid{grid-template-columns:1fr 1fr}.photocard img{height:140px}.photocard .actions{flex-direction:column}}@media(max-width:460px){.photo-grid{grid-template-columns:1fr}.header-inner{flex-direction:column;align-items:center}.nav{justify-content:center}.brand{align-self:flex-start}}
.metrics{margin:20px 0}.metrics>div{background:#fff;border:1px solid var(--border);padding:20px}.metrics strong{display:block;color:var(--blue);font-size:2rem;line-height:1.2;margin-top:6px}
.ranking-list{list-style:none;padding:0;margin:20px 0}.ranking-list li{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--border)}.ranking-position{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:50%;background:var(--goldsoft);color:var(--blue-dark);font-weight:800}.ranking-name{flex:1;min-width:0;overflow-wrap:anywhere;font-weight:650}.ranking-points{flex-shrink:0;color:var(--blue-dark);font-size:.9rem}.ranking-points strong{font-size:1.15rem}.ranking-empty{background:var(--bg);padding:18px;border-radius:12px}@media(max-width:460px){.ranking-list li{gap:9px}.ranking-position{flex-basis:30px;height:30px}.ranking-points{font-size:.8rem}}

.hero .alert{color:var(--blue-dark);margin:0;align-self:center}
.merit-award-row{padding:14px 0;border-top:1px solid var(--border)}.merit-award-row>b{display:block;margin-bottom:10px}.merit-award-row form{margin:10px 0}.merit-award-row .pill{display:inline-block}

.qr-print-crest{width:85px;height:85px;object-fit:contain}.qr-print-expiry{font-weight:700;color:var(--blue-dark)}
@media print{@page{size:A4 portrait;margin:18mm}.site-header,.footer,.no-print{display:none!important}body{background:#fff;color:#000}.page{padding:0;min-height:0;width:100%}.qr-print-sheet{max-width:none;margin:0;border:0;padding:0;box-shadow:none;break-inside:avoid}.qr-print-sheet h1{font-size:22pt}.qr-print-sheet h2{font-size:18pt}.qr-print-sheet .qrbox{min-height:0;margin:10mm auto}.qr-print-sheet .qrbox canvas{width:90mm!important;height:90mm!important;box-shadow:none;border:0}.qr-print-expiry{color:#000}}

.qr-print-controls{max-width:850px;margin:18px auto}.qr-print-sheet{max-width:700px;margin:24px auto}.qr-print-sheet h1{font-size:1.8rem}.qr-visitor-steps{text-align:left;max-width:570px;margin:16px auto;padding-left:24px}.qr-visitor-steps li{margin:8px 0}.qr-print-grade{margin:4px 0 12px}.qr-print-note{font-size:.9rem;margin:6px 0}.qr-print-sheet .qrbox:empty::before{content:'El QR aparecerÃ¡ aquÃ­ despuÃ©s de generarlo';color:var(--muted);font-size:.9rem}
@media print{body.qr-print-page .page>:not(.qr-print-sheet){display:none!important}.qr-print-sheet{max-width:none;margin:0}.qr-print-sheet h1{font-size:18pt;line-height:1.15;margin:2mm 0 4mm}.qr-print-sheet h2{font-size:15pt;margin:2mm 0}.qr-print-sheet h3{font-size:12pt;margin:3mm 0}.qr-print-sheet .qr-print-crest{width:16mm;height:16mm}.qr-print-sheet .qr-visitor-steps{font-size:11pt;line-height:1.3;margin:4mm auto;max-width:none}.qr-print-sheet .qr-visitor-steps li{margin:2mm 0}.qr-print-sheet .qrbox{margin:5mm auto}.qr-print-sheet .qrbox canvas{width:70mm!important;height:70mm!important}.qr-print-sheet .qr-print-expiry,.qr-print-sheet .qr-print-note{font-size:9pt;line-height:1.25;margin:2mm 0}}

.photo-current{display:block;width:100%;max-height:420px;object-fit:contain;background:var(--bg);border-radius:12px;margin:16px auto}
.draw-card{display:flex;align-items:flex-start;gap:20px;border-top:4px solid var(--gold)}.draw-card h2{margin:0 0 10px}.draw-icon{display:grid;place-items:center;flex:0 0 64px;width:64px;height:64px;border-radius:16px;background:var(--goldsoft);font-size:2rem}.draw-card p{margin:8px 0 14px}@media(max-width:560px){.draw-card{gap:12px}.draw-icon{flex-basis:40px;width:40px;height:40px;font-size:1.4rem}.draw-card h2{font-size:1.25rem}}

.question-summary{border-top:1px solid var(--border);padding:14px 0}.question-summary h3{margin:5px 0}

.dashboard-shortcuts{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0}.dashboard-shortcuts a{background:white;border:1px solid var(--border);border-radius:30px;padding:7px 14px;text-decoration:none;font-weight:650}.dashboard-section{scroll-margin-top:20px;margin:32px 0 40px;border-top:1px solid var(--border);padding-top:20px}.dashboard-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.dashboard-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.dashboard-charts .panel{margin:0;max-height:420px;overflow:auto}.dashboard-charts h3{margin-top:0}.dashboard-bar-row{margin:18px 0}.dashboard-bar-row>div:first-child{display:flex;justify-content:space-between;gap:15px;font-size:.9rem}.dashboard-bar-track{margin-top:7px;background:#edf1f8;border-radius:8px;height:14px;overflow:hidden}.dashboard-bar{height:100%;background:var(--blue);border-radius:8px;transition:width .4s}.dashboard-stand h3{margin:8px 0}.dashboard-section>h3{margin:26px 0 12px}.dashboard-section .cards>.panel{margin:0}@media(max-width:700px){.dashboard-charts{grid-template-columns:1fr}.dashboard-heading h2{font-size:1.25rem}}@media(prefers-reduced-motion:reduce){.dashboard-bar{transition:none}}

.profile-image-block{display:flex;justify-content:center;margin:20px 0}.profile-avatar{width:120px;height:120px;border-radius:50%;object-fit:cover;border:4px solid var(--gold);background:#edf3fb}.profile-avatar-empty{display:grid;place-items:center;font-size:3.5rem}

.qr-print-sheet[hidden]{display:none!important}

.stand-qr-menu{max-width:480px}.stand-qr-menu summary{color:var(--blue);padding:5px}.stand-qr-menu nav{display:grid;gap:6px;margin-top:12px}.stand-qr-menu nav a{display:block;padding:10px 12px;border:1px solid var(--border);border-radius:8px;text-decoration:none;background:var(--bg)}.stand-qr-menu nav a:hover,.stand-qr-menu nav a:focus-visible{background:#eaf1fa;border-color:var(--blue)}

.stand-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px}.stand-content{min-width:0}.stand-photo h4{margin:0 0 12px}.stand-photo img,.stand-photo-empty{width:100%;height:165px;border-radius:12px;background:var(--bg);border:1px solid var(--border);object-fit:contain}.stand-photo-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;font-size:.85rem;color:var(--muted)}.stand-photo-empty span:first-child{font-size:2rem}.stand-photo form{margin-top:14px}.stand-photo input[type=file]{max-width:100%;font-size:.78rem;padding:7px!important}.stand-photo label,.stand-photo .check{font-size:.8rem}.stand-photo .small{font-size:.75rem}.stand-content .stand-qr-menu{max-width:none;margin-top:20px}@media(max-width:760px){.stand-layout{grid-template-columns:1fr}.stand-photo{max-width:300px;width:100%}}

.institution-badge{display:flex;align-items:center;gap:10px;margin:10px 0;font-size:.85rem}.institution-badge img{width:48px;height:48px;object-fit:contain}.institution-badge small{display:block;color:var(--muted)}.institution-preview{width:100%;max-width:300px;max-height:200px;object-fit:contain;margin:12px 0}@media print{.institution-badge{justify-content:center}.institution-badge img{width:12mm;height:12mm}}

#teacher-registration-fields[hidden]{display:none!important}

.stand-teachers{font-size:.9rem;margin:12px 0 18px}.stand-teachers>div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px;margin:7px 0}.stand-teachers dt{color:var(--muted);font-weight:650}.stand-teachers dd{margin:0;overflow-wrap:anywhere}.stand-teachers dd span{display:block}@media(max-width:560px){.stand-teachers>div{grid-template-columns:1fr;gap:2px}}

.stand-photo-editor summary{color:var(--blue);font-weight:700}.stand-photo-editor{margin:12px 0!important}.stand-location{margin:10px 0 18px}.stand-photo-editor form{margin-top:14px}

.school-stand-group{border:1px solid var(--border);border-radius:16px;margin:20px 0;background:#fff}.school-stand-group>summary{cursor:pointer;padding:18px 22px;color:var(--blue);font-weight:700}.school-stand-heading{display:inline-flex;align-items:center;gap:14px;vertical-align:middle;max-width:calc(100% - 100px)}.school-stand-heading img{width:56px;height:56px;object-fit:contain}.school-stand-heading strong{display:block}.school-stand-heading small{display:block;font-weight:400;color:var(--muted);margin-top:4px}.school-stand-count{display:inline-block;margin-left:16px;color:var(--muted);font-size:.85rem;white-space:nowrap}.school-stand-group>.cards{padding:0 18px 18px}.school-stand-group .dashboard-stand{box-shadow:none}.school-stand-group[open]>summary{border-bottom:1px solid var(--border);margin-bottom:18px}@media(max-width:560px){.school-stand-group>summary{padding:15px}.school-stand-heading{max-width:calc(100% - 30px);gap:10px}.school-stand-heading img{width:42px;height:42px}.school-stand-count{display:block;margin:10px 0 0 24px}.school-stand-group>.cards{padding:0 10px 10px}}

.school-stand-group>.cards{grid-template-columns:1fr}

.school-stand-group>summary{position:relative;padding-right:110px}.school-stand-group .school-stand-heading{max-width:calc(100% - 24px)}.school-stand-group>summary>.school-stand-count{position:absolute;right:22px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;margin:0;min-width:64px;color:var(--blue);line-height:1}.school-stand-count strong{font-size:2.25rem;font-weight:800}.school-stand-count>span{font-size:.72rem;font-weight:750;letter-spacing:.08em}@media(max-width:560px){.school-stand-group>summary{padding-right:86px}.school-stand-group>summary>.school-stand-count{right:15px;min-width:52px}.school-stand-count strong{font-size:1.85rem}.school-stand-count>span{font-size:.65rem}}

.stand-description{margin:16px 0 20px}.stand-description h4{margin:0 0 8px;font-size:.95rem}.stand-description p{margin:0;white-space:normal}.stand-description details{padding:0;border:0;margin:0;border-radius:0}.stand-description summary{font-weight:400;list-style:none;cursor:pointer;overflow-wrap:anywhere}.stand-description summary::-webkit-details-marker{display:none}.stand-read-more,.stand-read-less{color:var(--blue);text-decoration:underline;margin-left:8px;white-space:nowrap}.stand-read-less{display:none}.stand-description details[open] .stand-description-short,.stand-description details[open] .stand-read-more{display:none}.stand-description details[open] .stand-read-less{display:inline;margin-left:0}.stand-description .stand-description-full{margin-top:8px;overflow-wrap:anywhere}

.stand-search{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:16px;align-items:end;margin-top:20px}.stand-search label{margin:0;min-width:0}.stand-search .actions{margin:0;align-items:center}.stand-search input,.stand-search select{width:100%;min-width:0}@media(max-width:900px){.stand-search{grid-template-columns:1fr}.stand-search .actions{flex-wrap:wrap}}

.stand-identification{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.stand-identification>div{min-width:0;overflow-wrap:anywhere}.stand-identification .stand-number{margin-top:0}.stand-code-large{display:block;flex:0 1 auto;max-width:40%;font-size:2.5rem;line-height:1.1;font-weight:800;color:var(--blue);text-align:right;overflow-wrap:anywhere}.stand-identification h3{margin-bottom:0}.stand-identification+.stand-teachers{margin-top:0}.stand-identification+.stand-teachers>div:first-child{margin-top:4px}@media(max-width:600px){.stand-identification{gap:12px}.stand-code-large{font-size:2rem}}

.stand-qr-tools{display:flex;align-items:flex-start;gap:12px;margin-top:20px}.stand-content .stand-qr-tools .stand-qr-menu{flex:1;min-width:0;margin:0}.stand-qr-history{flex:0 1 auto;text-align:center}@media(max-width:600px){.stand-qr-tools{flex-direction:column}.stand-content .stand-qr-tools .stand-qr-menu,.stand-qr-history{width:100%}}

.audit-entry pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:500px;overflow:auto;font-size:.85rem}.audit-entry h2{font-size:1.1rem}

.stand-qr-tools{flex-wrap:wrap}.stand-content .stand-qr-tools .stand-qr-menu{flex:0 1 auto;padding:0;border:0;border-radius:0}.stand-qr-tools .stand-qr-menu>summary{display:inline-flex;gap:8px;padding:7px 12px;font-size:.87rem;min-height:34px;list-style:none}.stand-qr-tools .stand-qr-menu>summary::-webkit-details-marker{display:none}.stand-qr-tools .stand-qr-menu>summary::before{content:"▸"}.stand-qr-tools .stand-qr-menu[open]>summary::before{content:"▾"}@media(max-width:600px){.stand-qr-tools .stand-qr-menu>summary{width:100%}}

.qr-print-identity{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:start;margin:20px 0;text-align:left}.qr-print-identity .institution-badge{margin:0;align-items:center;font-size:.9rem}.qr-print-identity .institution-badge img{width:64px;height:64px;flex-shrink:0}.qr-print-identity .institution-badge span{min-width:0;overflow-wrap:anywhere}.qr-print-identity .institution-badge small{text-align:center}.qr-print-project{margin:0;font-size:.9rem;line-height:1.4}.qr-print-project>div{margin:0 0 5px;overflow-wrap:anywhere}.qr-print-project dt,.qr-print-project dd{display:inline;margin:0}.qr-print-project dt{font-weight:400;margin-right:5px}.qr-print-project-title dt,.qr-print-project-title dd{font-weight:700}@media screen and (max-width:600px){.qr-print-identity{grid-template-columns:1fr;gap:16px}}@media print{.qr-print-identity{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:5mm;margin:4mm 0;break-inside:avoid}.qr-print-identity .institution-badge{justify-content:flex-start;font-size:10pt}.qr-print-identity .institution-badge img{width:14mm;height:14mm}.qr-print-project{font-size:10pt;line-height:1.25}.qr-print-project>div{margin-bottom:1mm}}

.qr-print-identity{width:100%;max-width:570px;margin:20px auto;padding-left:24px}.qr-print-identity .institution-badge small{text-align:left}@media print{.qr-print-identity{max-width:none;margin:4mm auto;padding-left:24px}}

.qr-print-project-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;width:100%;max-width:570px;margin:18px auto;padding-left:24px;text-align:left}.qr-print-project-heading>div{min-width:0;overflow-wrap:anywhere}.qr-print-project-heading .eyebrow{margin:0 0 4px}.qr-print-project-heading h2{margin:0;font-size:1.3rem}.qr-print-stand-code{max-width:40%;font-size:2.5rem;line-height:1.1;color:var(--blue);text-align:right;overflow-wrap:anywhere}@media print{.qr-print-project-heading{max-width:none;margin:4mm auto;padding-left:24px;break-inside:avoid}.qr-print-project-heading h2{font-size:15pt;margin:0}.qr-print-stand-code{font-size:28pt}}

.qr-print-project-heading{align-items:flex-start}.qr-print-project-heading>.qr-print-stand-heading{max-width:40%;flex-shrink:0;text-align:right}.qr-print-stand-heading .qr-print-stand-code{display:block;max-width:none}

.platform-logo-preview{display:block;width:160px;height:160px;object-fit:contain;margin:20px auto}.brand img{object-fit:contain}

.brand>span{min-width:0;overflow-wrap:anywhere}.brand img{flex-shrink:0}

.public-stand-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.public-stand-card{min-width:0;margin:0}.public-stand-card h2{overflow-wrap:anywhere}.public-stand-card .stand-description{margin-bottom:0}@media(max-width:700px){.public-stand-list{grid-template-columns:1fr}}

.public-institution{display:flex;align-items:center;gap:12px;margin:0 0 14px}.public-institution img{width:52px;height:52px;object-fit:contain;flex-shrink:0}.public-institution p{margin:0;overflow-wrap:anywhere}.public-project-counts{display:flex;flex-wrap:wrap;gap:8px 20px;border-top:1px solid var(--border);padding-top:12px;margin-top:16px;font-size:.9rem}

.public-stand-card .stand-number{margin:0 0 4px}.public-stand-card .stand-identification h2{margin:0}.public-stand-card .stand-description{margin-top:10px}.public-stand-card .stand-description h4{margin:0 0 6px}

.stand-area-fields{border:1px solid var(--border);border-radius:10px;padding:16px;margin:16px 0}.stand-area-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px}.stand-area-options .check{margin:0}.stand-area-summary{font-size:.9rem;margin:10px 0;overflow-wrap:anywhere}@media(max-width:600px){.stand-area-options{grid-template-columns:1fr}}

.dashboard-stand .stand-identification .stand-number{margin:0 0 4px}.dashboard-stand .stand-identification h3{margin:0}.dashboard-stand .stand-identification .stand-area-summary{margin:4px 0 0}.dashboard-stand .stand-teachers{margin:6px 0 10px}.dashboard-stand .stand-teachers>div{margin:4px 0}.dashboard-stand .stand-description{margin:8px 0 14px}.dashboard-stand .stand-description h4{margin:0 0 6px}

.stand-area-transversal{font-weight:400;color:inherit}.dashboard-stand .stand-number,.dashboard-stand .stand-code-large,.dashboard-stand .stand-teachers dt,.dashboard-stand .stand-content .muted,.dashboard-stand .stand-photo-empty,.dashboard-stand .stand-image-empty,.public-stand-card .stand-number,.public-stand-card .stand-code-large,.public-stand-card .muted,.public-project-counts{color:var(--ink)}.school-stand-heading strong,.school-stand-heading small,.school-stand-group>summary>.school-stand-count{color:var(--ink)}

.stand-identification>.project-position{max-width:40%;flex-shrink:0;text-align:right}.project-position .stand-code-large{max-width:none;display:block}.project-position-label{display:block;font-size:.75rem;font-weight:700;letter-spacing:.08em;margin-top:4px}.project-position .project-state{display:block;font-size:.8rem;line-height:1.3;color:var(--green);font-weight:600;margin-top:5px}

.dashboard-stand .stand-identification .stand-teachers{margin:4px 0 0;line-height:1.35}.dashboard-stand .stand-identification .stand-teachers>div{margin:2px 0}.dashboard-stand .stand-identification .stand-teachers>div:first-child{margin-top:0}.dashboard-stand .stand-description{margin-top:6px}.dashboard-stand .stand-description h4{margin-bottom:4px}

.project-position .project-state{display:inline-block;padding:4px 8px;border-radius:6px;border:1px solid transparent;font-size:.75rem;font-weight:650;text-transform:uppercase}.project-position .project-state--habilitado{background:#c9efdb;color:#102d21;border-color:#81c9a2}.project-position .project-state--en_proceso{background:#fff1b8;color:#443300;border-color:#d9b64b}.project-position .project-state--deshabilitado{background:#f9d6d5;color:#59191d;border-color:#d99794}

.public-stand-card .public-institution{margin-bottom:8px}.public-stand-card .stand-identification .stand-number{margin:0 0 3px;line-height:1.35}.public-stand-card .stand-identification h2{margin:0;line-height:1.25}.public-stand-card .stand-area-summary{margin:4px 0 0}.public-stand-card .stand-description{margin-top:6px}.public-stand-card .stand-description h4{margin-bottom:4px}.public-stand-card .public-project-counts{margin-top:12px;padding-top:10px}.stand-search.public-project-search{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,.9fr) auto}@media(max-width:1100px){.stand-search.public-project-search{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.stand-search.public-project-search{grid-template-columns:1fr}}

.public-team-column{flex:1 1 170px;min-width:0}.public-team-heading{margin:0 0 4px}.public-team-names{list-style:none;margin:0;padding:0;font-size:.9rem;line-height:1.45}.public-team-names li{margin:2px 0;overflow-wrap:anywhere}.public-team-column>.muted{margin:0}

.public-project-title-link{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.public-project-title-link:hover,.public-project-title-link:focus-visible{color:var(--blue)}.public-project-detail h1{margin:4px 0;font-size:1.8rem;overflow-wrap:anywhere}.public-project-detail .stand-number{margin:0}.public-project-detail .stand-area-summary{margin:6px 0 0}.public-project-description{margin:18px 0;overflow-wrap:anywhere}.public-project-description h2{margin:0 0 6px}.public-project-description p{margin:0}.public-project-detail .public-project-counts{gap:16px 30px}

.stand-documents-link{width:100%;margin-top:10px}.project-documents{margin-top:24px;scroll-margin-top:20px}.project-document-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.project-document-column{border:1px solid var(--border);border-radius:12px;padding:16px;min-width:0}.project-document-column h3{margin-top:0}.project-document-column h4{margin:18px 0 6px}.project-document-row{border-top:1px solid var(--border);padding:10px 0;overflow-wrap:anywhere}.project-document-row p{margin:0 0 6px}.project-document-row .actions form{margin:0}.public-field-documents{margin-top:20px;overflow-wrap:anywhere}@media(max-width:700px){.project-document-columns{grid-template-columns:1fr}}

.document-status{display:inline-block;padding:.25rem .55rem;border:1px solid;border-radius:6px;font-size:.85rem;font-weight:600;line-height:1.4}
.document-status--pendiente_subida{background:#edf0f5;border-color:#a9b4c2;color:#253344}
.document-status--pendiente_verificacion{background:#fff1b8;border-color:#c6a84e;color:#443300}
.document-status--valido{background:#c9efdb;border-color:#69b98b;color:#102d21}
.document-status--volver_subir{background:#f9d6d5;border-color:#d38b88;color:#59191d}
.document-observation{overflow-wrap:anywhere}.document-review{margin:.75rem 0}.document-review summary{cursor:pointer;font-weight:600}.document-review form{margin-top:.75rem}

.project-images-editor{margin:1.5rem 0;scroll-margin-top:1rem}.project-photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem;margin:1rem 0}.project-photo-item{border:1px solid var(--line,#d8e2ef);border-radius:12px;padding:1rem;min-width:0}.project-photo-grid img{display:block;width:100%;height:190px;object-fit:contain;background:#f4f6fb;border-radius:8px}.project-photo-item .actions{margin:.5rem 0}.project-photo-item details{margin-top:.75rem}.project-photo-item summary{cursor:pointer;font-weight:600}.project-cover-label{font-weight:600;color:#102d21;background:#c9efdb;border-radius:6px;padding:.3rem .6rem;display:inline-block}.public-project-cover{display:block;margin-bottom:1rem}.public-project-cover img{display:block;width:100%;max-height:220px;aspect-ratio:16/9;object-fit:cover;border-radius:10px}.public-project-gallery{margin:1rem 0}.public-project-gallery .project-photo-grid img{height:240px}@media(max-width:520px){.project-photo-grid{grid-template-columns:1fr}}

.project-position .project-public-link{display:block;margin-top:8px;text-align:center;font-weight:600;letter-spacing:normal;text-transform:none}

.public-project-detail>.public-project-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:0;margin:12px 0 0;padding:0;gap:12px 24px}.public-project-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,280px);gap:24px;margin-top:18px;align-items:start}.public-project-body .public-project-description{margin:0}.public-project-downloads{padding:14px;border:1px solid var(--border);border-radius:10px;min-width:0;overflow-wrap:anywhere}.public-project-downloads h2{font-size:1rem;margin:0 0 8px}.public-project-downloads p{margin:0 0 8px}.public-project-downloads p:last-child{margin-bottom:0}.public-project-downloads ul{margin:0;padding-left:18px}.public-project-downloads li{margin:6px 0}@media(max-width:700px){.public-project-body{grid-template-columns:1fr;gap:16px}.public-project-detail>.public-project-counts{grid-template-columns:1fr;gap:12px}}

.public-project-gallery{min-width:0}.public-project-photo-row{display:flex;flex-wrap:nowrap;gap:12px;overflow-x:auto;max-width:100%;padding-bottom:8px;scroll-snap-type:x proximity}.public-project-photo-row>a{flex:0 0 calc((100% - 48px)/5);min-width:140px;scroll-snap-align:start}.public-project-photo-row img{display:block;width:100%;height:160px;object-fit:contain;background:#f4f6fb;border-radius:8px}

.public-project-photo-row>.public-project-photo-placeholder{flex:0 0 calc((100% - 48px)/5);min-width:140px;height:160px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;background:#f0f2f5;color:#768394;border:1px solid #e1e5eb;border-radius:8px;scroll-snap-align:start;font-size:.85rem}.public-project-photo-placeholder svg{color:#a3adb9}

.public-project-photo-row>[data-gallery-photo]{cursor:zoom-in}.project-photo-dialog{width:min(1100px,calc(100% - 24px));max-width:calc(100% - 24px);max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);padding:16px;border:1px solid var(--border);border-radius:14px;background:#fff;color:var(--ink);overflow:auto}.project-photo-dialog::backdrop{background:rgba(13,22,37,.78)}.project-photo-dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.project-photo-dialog-heading h2{margin:0;font-size:1.1rem}.project-photo-dialog-stage{display:flex;justify-content:center;align-items:center;min-width:0;background:#f0f2f5;border-radius:8px}.project-photo-dialog-stage img{display:block;width:auto;height:auto;max-width:100%;max-height:calc(100vh - 160px);max-height:calc(100dvh - 160px);object-fit:contain}.project-photo-dialog [data-gallery-caption]{margin:8px 0 0;text-align:center}.project-photo-dialog-open{overflow:hidden}

.school-management-editor{margin:1.5rem 0;scroll-margin-top:1rem}.management-director-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.management-vice-row{display:grid;grid-template-columns:minmax(160px,1fr) repeat(2,minmax(0,1fr)) auto;gap:12px;align-items:end;padding:12px 0;border-bottom:1px solid var(--border);margin-bottom:12px}.management-vice-row label{margin:0}.management-vice-row .btn{margin-bottom:0}.public-project-detail>.public-project-counts{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:900px){.management-vice-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.public-project-detail>.public-project-counts,.management-director-fields,.management-vice-row{grid-template-columns:1fr}}

.management-director-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.management-vice-row{grid-template-columns:repeat(2,minmax(0,1fr)) minmax(180px,1fr) auto}.management-director-fields input[readonly]{background:#f4f6fb;color:var(--ink)}@media(max-width:900px){.management-vice-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.management-director-fields,.management-vice-row{grid-template-columns:1fr}}

.project-description-editor{margin-bottom:1rem}.project-description-editor>.ql-toolbar{margin-top:8px}.project-description-editor [data-description-canvas]{min-height:300px}.project-description-editor .ql-editor{min-height:300px;max-height:650px;overflow-y:auto;font-family:inherit;font-size:1rem;line-height:1.6}.project-description-editor .ql-toolbar{border-radius:10px 10px 0 0;position:sticky;top:0;background:#fff;z-index:2}.project-description-editor .ql-container{border-radius:0 0 10px 10px}.project-description-editor .ql-snow .ql-picker.ql-font{width:130px}.project-description-editor .ql-font-arial,.project-description-editor .ql-picker-item[data-value="arial"]{font-family:Arial,sans-serif}.project-description-editor .ql-font-georgia,.project-description-editor .ql-picker-item[data-value="georgia"]{font-family:Georgia,serif}.project-description-editor .ql-font-verdana,.project-description-editor .ql-picker-item[data-value="verdana"]{font-family:Verdana,sans-serif}.project-description-editor .ql-font-courier-new,.project-description-editor .ql-picker-item[data-value="courier-new"]{font-family:"Courier New",monospace}.project-description-editor .ql-snow .ql-picker.ql-font .ql-picker-label::before,.project-description-editor .ql-snow .ql-picker.ql-font .ql-picker-item::before{content:attr(data-label)}.project-description-editor .rich-editor-action{font-size:22px;line-height:22px}.description-limit-error{color:#9b1c1c;font-weight:600}.project-rich-description{overflow-wrap:anywhere}.public-project-description .project-rich-description p{margin:0 0 .6em}.public-project-description .project-rich-description h1,.public-project-description .project-rich-description h2,.public-project-description .project-rich-description h3{margin:.6em 0 .3em}.project-rich-description ul,.project-rich-description ol{margin:.5em 0;padding-left:1.8em}.project-rich-description li{margin:.2em 0}.project-rich-description> :last-child{margin-bottom:0}

.project-description-editor [hidden]{display:none!important}

.registration-panel [hidden],.registration-school-picker [hidden]{display:none!important}.registration-panel fieldset{min-width:0;margin:16px 0;padding:14px;border:1px solid var(--border);border-radius:10px}.registration-panel legend{font-weight:700;padding:0 5px}.registration-levels{display:grid;gap:8px}.registration-levels label{margin:0}.registration-school-picker{position:relative;margin-bottom:16px}.catalog-options{max-height:300px;overflow-y:auto;border:1px solid var(--border);border-radius:10px;margin-top:5px;background:#fff}.catalog-option{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:12px;text-align:left;border:0;border-bottom:1px solid var(--border);background:#fff;color:var(--ink);font:inherit;cursor:pointer}.catalog-option:last-child{border-bottom:0}.catalog-option:hover,.catalog-option-active{background:#eaf1fa}.catalog-option small{display:block;color:var(--muted);margin-top:3px}.school-verified{flex-shrink:0;background:#087f3f;color:#fff;font-size:.75rem;font-weight:750;padding:4px 7px;border-radius:6px}.registration-profile-summary{margin:12px 0 20px;padding:12px;background:#f4f6fb;border-radius:10px}.registration-profile-summary h2{font-size:1rem;margin:0 0 6px}.registration-profile-summary p{margin:0}.registration-school-picker [data-catalog-status]{margin:6px 0}

.catalog-option>span{min-width:0;overflow-wrap:anywhere}

.profile-participation-form [hidden]{display:none!important}
.profile-participation-form fieldset{margin:16px 0}
#profile-change-dialog{max-width:600px;width:calc(100% - 32px);padding:24px;border:1px solid #d6deea;border-radius:16px;color:#1f2937}
#profile-change-dialog::backdrop{background:rgb(0 0 0 / .55)}
#profile-change-dialog h2{margin-top:0}
.notification-bell{display:inline-flex;align-items:center;position:relative;padding:8px;gap:4px}
.notification-count{background:#b91c1c;color:white;border-radius:20px;min-width:20px;text-align:center;font-size:12px;padding:2px 5px}
.notification-item{padding:18px 0;border-top:1px solid #d6deea;overflow-wrap:anywhere}
.notification-item h2{font-size:1.15rem;margin:0 0 8px;font-weight:inherit}
.notification-item p{font-weight:inherit}
.notification-read{font-weight:700}
.notification-unread{font-weight:400}

.participation-table-scroll{overflow-x:auto;margin:16px 0 24px}
.participation-relations{width:100%;border-collapse:collapse;min-width:570px}
.participation-relations caption{text-align:left;font-size:.9rem;margin-bottom:8px}
.participation-relations th,.participation-relations td{padding:14px 16px;border:1px solid #d6deea;text-align:left;vertical-align:top;overflow-wrap:anywhere}
.participation-relations thead th{background:#eef3fb}
.participation-relations tbody th{width:34%;font-weight:600}
.participation-relations td:last-child{width:26%}
.participation-editor{max-width:780px}

[data-affiliation-new] [hidden]{display:none!important}
.affiliation-request{border-top:1px solid #d6deea;padding:20px 0}
.affiliation-inline{margin:8px 0}
.participation-relations .btn{white-space:normal;margin:4px 0}
#affiliation-confirm-dialog{max-width:600px;width:calc(100% - 32px);padding:24px;border:1px solid #d6deea;border-radius:16px;color:#1f2937}
#affiliation-confirm-dialog::backdrop{background:rgb(0 0 0 / .55)}
.participation-page .participation-relations{min-width:850px}

.participation-page .participation-relations{min-width:1000px}
.participation-page .participation-relations th:first-child{width:24%}
.participation-page .participation-relations td:nth-child(2){min-width:180px}
.participation-page .participation-relations td:nth-child(3){min-width:145px}
.participation-page .participation-relations td:nth-child(4){white-space:nowrap;width:100px}
.participation-page .participation-relations td:last-child{min-width:235px;width:26%}
.participation-page .participation-relations form{margin:0}

/* Project requirements: accessible, native switches. */
.project-review-page label.requirement-switch{display:flex;align-items:center;gap:.65rem;position:relative;margin:.8rem 0;cursor:pointer;font-weight:400}
.requirement-switch input{position:absolute;opacity:0;width:1px;height:1px}
.requirement-track{display:inline-block;flex:0 0 48px;width:48px;height:28px;border-radius:20px;background:#737d89;border:2px solid #737d89;position:relative}
.requirement-track::after{content:"";position:absolute;width:20px;height:20px;border-radius:50%;background:#fff;left:2px;top:2px;transition:transform .15s}
.requirement-switch input:checked+.requirement-track{background:#128146;border-color:#128146}
.requirement-switch input:checked+.requirement-track::after{transform:translateX(20px)}
.requirement-switch input:focus-visible+.requirement-track{outline:3px solid #174e98;outline-offset:3px}
.requirement-free-row{padding:.7rem 0;border-bottom:1px solid #d9e1ec}
.project-state--en_revision{background:#fff1be;color:#342900;border:1px solid #d9ac22}
.project-state--rechazado,.project-state--suspendido{background:#ffd9d9;color:#641414;border:1px solid #d28b8b}
.project-review-page>.project-position{float:right}.project-review-page h2{margin-top:1rem}
@media(prefers-reduced-motion:reduce){.requirement-track::after{transition:none}}

[data-public-geography] [hidden]{display:none!important}

.signup-wizard [hidden]{display:none!important}.signup-age-switch{display:flex!important;align-items:center;gap:.65rem;position:relative;cursor:pointer;font-weight:400!important}.signup-age-switch input[type=checkbox]{position:absolute;opacity:0;width:1px;height:1px}.signup-age-track{display:inline-block;flex:0 0 48px;width:48px;height:28px;border:2px solid #737d89;background:#737d89;border-radius:20px;position:relative}.signup-age-track:after{content:"";position:absolute;left:2px;top:2px;width:20px;height:20px;border-radius:50%;background:#fff}.signup-age-switch input:checked+.signup-age-track{background:#128146;border-color:#128146}.signup-age-switch input:checked+.signup-age-track:after{transform:translateX(20px)}.signup-age-switch input:focus-visible+.signup-age-track{outline:3px solid #174e98;outline-offset:3px}

.catalog-year-options{display:flex;flex-wrap:wrap;gap:12px 24px}.catalog-year-options .check{margin:4px 0}.project-publication-year{margin:8px 0;font-size:.9rem}.public-project-search{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}

.qr-scanner-nav{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;line-height:1}.qr-scanner-launch{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px}.passport-scan-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:20px 0}.passport-scan-actions p{margin:0}.qr-scanner-open{overflow:hidden}.qr-scanner-dialog{width:min(600px,calc(100% - 24px));max-height:calc(100dvh - 24px);overflow:auto;border:1px solid var(--border,#d9e2f0);border-radius:20px;padding:20px;color:var(--text,#1f2937);background:#fff}.qr-scanner-dialog::backdrop{background:rgba(15,23,42,.72)}.qr-scanner-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.qr-scanner-heading h2{margin:0}.qr-scanner-camera{position:relative;aspect-ratio:4/3;background:#101827;border-radius:14px;overflow:hidden}.qr-scanner-camera video{display:block;width:100%;height:100%;object-fit:cover}.qr-scanner-guide{position:absolute;inset:15%;border:3px solid #fff;border-radius:12px;pointer-events:none;box-shadow:0 0 0 100px rgba(0,0,0,.12)}.qr-scanner-status{min-height:3em;margin:12px 0}.qr-scanner-dialog [hidden]{display:none!important}@media(max-width:600px){.passport-scan-actions{align-items:stretch;gap:10px}.passport-scan-actions .qr-scanner-launch{width:100%}.qr-scanner-dialog{padding:16px}}

/* Notifications in the account header. */
.notification-menu{position:relative}.notification-menu>summary{cursor:pointer;list-style:none;color:var(--blue);border-radius:8px}.notification-menu>summary::-webkit-details-marker{display:none}.notification-menu>summary:focus-visible,.notification-open:focus-visible,.notification-delete:focus-visible{outline:3px solid #8ab8f4;outline-offset:2px}.notification-count[hidden],.notification-empty[hidden]{display:none!important}.notification-dropdown{position:absolute;right:0;top:calc(100% + 10px);z-index:100;width:380px;max-width:calc(100vw - 24px);background:white;border:1px solid var(--border);border-radius:14px;box-shadow:0 12px 35px #172e4633;color:var(--ink);overflow:hidden;text-align:left}.notification-dropdown h2{margin:0;padding:16px;font-size:1.05rem}.notification-latest{max-height:min(55vh,440px);overflow:auto;overscroll-behavior:contain}.notification-short{padding:12px 16px;border-top:1px solid var(--border);overflow-wrap:anywhere}.notification-short form{margin:0}.notification-open{display:block;width:100%;border:0;background:transparent;text-align:left;padding:0;color:var(--ink);font:inherit;cursor:pointer}.notification-open:hover .notification-title{text-decoration:underline;color:var(--blue)}.notification-title,.notification-preview,.notification-date{display:block}.notification-preview{font-size:.9rem;margin-top:5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notification-date{font-size:.78rem;margin-top:6px;color:var(--muted)}.notification-delete{border:0;background:transparent;color:var(--red);font:inherit;font-size:.82rem;cursor:pointer;padding:6px 0}.notification-delete:disabled{opacity:.6;cursor:wait}.notification-all{display:block;padding:14px 16px;border-top:1px solid var(--border);background:var(--bg)}.notification-empty{padding:0 16px 14px;margin:0}.notification-feedback{font-size:.85rem;padding:0 16px;margin:0}.notification-feedback:not(:empty){padding:12px 16px}.notification-detail h1,.notification-detail p{font-weight:inherit}.notification-detail .notification-message{white-space:normal}.notification-item .notification-preview{-webkit-line-clamp:3}.notification-item form{margin:0}.notification-read .notification-open{font-weight:700}.notification-unread .notification-open{font-weight:400}@media(max-width:700px){.notification-dropdown{position:fixed;top:110px;right:12px;width:380px;max-height:calc(100dvh - 130px);overflow:auto}}@media(max-width:460px){.notification-dropdown{top:150px;max-height:calc(100dvh - 170px)}}

/* Ingreso con PIN en casilleros */
.login-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:980px;margin:0 auto;align-items:start}
.login-layout>.panel{margin:0}
@media (max-width:760px){.login-layout{grid-template-columns:1fr}}
.signup-card{background:#f8fbff;border:2px dashed #b9c9e4}
.signup-card .btn{display:block;width:100%;text-align:center;margin-top:8px}
.pin-boxes{display:flex;gap:14px;justify-content:center;margin:18px 0 22px}
.panel .pin-boxes input.pin-box{min-height:0;width:64px;flex:0 0 64px;height:72px;margin:0;padding:14px 0 0;text-align:center;font-size:2.6rem;font-weight:700;line-height:1;border:2px solid #8a94a6;border-radius:12px;background:#fff;caret-color:transparent}
.panel .pin-boxes input.pin-box:focus{outline:3px solid #e4efff;border-color:var(--blue)}
@media (max-width:400px){.pin-boxes{gap:10px}.panel .pin-boxes input.pin-box{width:56px;flex-basis:56px;height:64px}}
.login-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 28px;margin:16px 0 6px}
.login-card form.inline{display:flex;justify-content:center}

/* Avisos de resultado (flash) */
.flash{display:flex;align-items:flex-start;gap:14px;padding:16px 18px;margin:0 0 22px;border:2px solid;border-radius:12px;box-shadow:0 8px 24px rgba(16,24,40,.14);font-size:1.02rem;animation:flash-in .35s ease-out}
.flash-icon{flex:0 0 38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.3rem;font-family:Georgia,serif;color:#fff}
.flash-text{flex:1;align-self:center;line-height:1.45}
.flash-title{display:block;font-size:1.06rem;margin-bottom:2px}
.flash-close{background:none;border:0;padding:0 4px;font-size:1.7rem;line-height:1;color:inherit;opacity:.6;cursor:pointer}
.flash-close:hover,.flash-close:focus{opacity:1}
.flash-ok{background:#e3f7ec;border-color:#1f9d55;color:#0f5132}.flash-ok .flash-icon{background:#1f9d55}
.flash-error{background:#fde8e8;border-color:#d62d2d;color:#7f1d1d}.flash-error .flash-icon{background:#d62d2d}
.flash-info{background:#fff6dc;border-color:#e0a800;color:#5c4400}.flash-info .flash-icon{background:#e0a800}
@keyframes flash-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.flash{animation:none}}

.pin-confirmed{color:#0f5132;background:#e3f7ec;border:1px solid #1f9d55;border-radius:8px;padding:8px 12px}

.pin-label{text-align:center;font-weight:700;margin:16px 0 0}

.flash-leaving{animation:flash-out .45s ease-in forwards}
@keyframes flash-out{to{opacity:0;transform:translateY(-24px)}}

.registration-toggle .status-on{color:#0f5132;background:#e3f7ec;padding:2px 10px;border-radius:999px}
.registration-toggle .status-off{color:#7f1d1d;background:#fde8e8;padding:2px 10px;border-radius:999px}

/* Términos y privacidad */
.terms-index{display:flex;flex-wrap:wrap;gap:8px 20px;margin:8px 0 18px}
.terms-doc{border-top:1px solid #e3e8f0;margin-top:22px;padding-top:6px}
.rich-text h3{font-size:1.12rem;margin:18px 0 6px}
.rich-text ul,.rich-text ol{padding-left:1.4em;margin:6px 0 10px}
.rich-text li{margin:3px 0}
[data-richtext-canvas] .ql-editor{min-height:260px}

/* Pie de página y aviso legal */
.footer-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 24px}
.legal-menu{position:relative}
.legal-menu summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:6px;color:var(--blue);font-weight:600}
.legal-menu summary::-webkit-details-marker{display:none}
.legal-menu summary::after{content:'\25BE';transition:transform .2s}
.legal-menu[open] summary::after{transform:rotate(180deg)}
.legal-menu ul{position:absolute;right:0;bottom:calc(100% + 10px);min-width:250px;margin:0;padding:8px 0;list-style:none;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 30px rgba(16,24,40,.16);z-index:30}
.legal-menu li a{display:block;padding:9px 16px;color:var(--ink);text-decoration:none;font-size:.9rem}
.legal-menu li a:hover,.legal-menu li a:focus{background:#f2f6fc;color:var(--blue)}
@media (max-width:600px){.legal-menu ul{right:auto;left:0}}

/* Registro: usuario con validación en vivo, PIN en casilleros, edad y correo */
.username-field label{margin-bottom:0}
.username-input{position:relative}
.panel .username-input input{padding-right:96px}
.panel .username-field.is-ok .username-input input{border:2px solid #1f9d55;background:#e3f7ec;color:#0f5132;font-weight:600}
.panel .username-field.is-bad .username-input input{border:2px solid #d62d2d;background:#fde8e8}
.panel .username-field.is-checking .username-input input{border:2px solid #e0a800}
.username-clear{position:absolute;right:8px;top:calc(50% + 3px);transform:translateY(-50%);height:32px;padding:0 14px;border:0;border-radius:999px;background:#1f9d55;color:#fff;font:inherit;font-size:.86rem;font-weight:700;line-height:32px;cursor:pointer}
.username-clear:hover,.username-clear:focus-visible{background:#157a40;outline:3px solid #e4efff}
.username-field.is-bad .username-clear{background:#d62d2d}
.username-field.is-bad .username-clear:hover,.username-field.is-bad .username-clear:focus-visible{background:#b42318}
.username-status{margin:6px 0 16px;font-size:.86rem;color:var(--muted)}
.username-field.is-ok .username-status{color:#0f5132;font-weight:700}
.username-field.is-bad .username-status{color:#b42318;font-weight:700}
.field-title{font-weight:650;font-size:.93rem;margin:0 0 4px}
.panel .pin-boxes.pin-boxes-sm{justify-content:flex-start;gap:10px;margin:6px 0 16px}
.panel .pin-boxes-sm input.pin-box{width:50px;flex:0 0 50px;height:56px;padding:12px 0 0;font-size:2.2rem;border-radius:10px}
.age-field{margin:0 0 16px}
.panel .switch-row{display:flex;align-items:center;gap:14px;font-weight:400;margin:0 0 6px;cursor:pointer}
.switch{position:relative;flex:0 0 54px;width:54px;height:30px}
.panel .switch input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1}
.switch-slider{position:absolute;inset:0;border-radius:999px;background:#c9d1dd;transition:background .2s}
.switch-slider::before{content:'';position:absolute;left:3px;top:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .2s}
.switch input:checked+.switch-slider{background:#ffbf08}
.switch input:checked+.switch-slider::before{transform:translateX(24px)}
.switch input:focus-visible+.switch-slider{outline:3px solid #e4efff;outline-offset:2px}
.panel .switch input:disabled{cursor:not-allowed}
.switch input:disabled+.switch-slider{opacity:.75}
.email-callout{background:#fff6dc;border:2px solid #e0a800;border-radius:10px;padding:12px 14px;color:#5c4400;margin:-6px 0 16px;font-size:.92rem}
@media (prefers-reduced-motion:reduce){.switch-slider,.switch-slider::before{transition:none}}

/* Registro: reglas del nombre de usuario, ayuda si está ocupado y recordatorio final */
.username-rules{background:#f6f8fc;border:1px solid var(--border);border-radius:10px;padding:10px 14px;margin:8px 0 16px;font-size:.88rem}
.username-rules p{margin:0 0 6px}
.username-rules ul{list-style:none;padding:0;margin:0 0 6px}
.username-rules li{position:relative;padding-left:24px;margin:3px 0}
.rules-ok li::before{content:'\2713';position:absolute;left:4px;color:#1f9d55;font-weight:800}
.rules-no li::before{content:'\2717';position:absolute;left:4px;color:#d62d2d;font-weight:800}
@media (min-width:520px){.username-rules{display:grid;grid-template-columns:1fr 1fr;column-gap:16px}.username-rules>p{grid-column:1/-1}}
.username-rules[hidden],.username-help[hidden]{display:none}
.username-help{margin:0 0 14px}
.username-help .btn{margin:0 0 8px}
.username-help p{margin:0}
.signup-reminder{background:#eaf1fc;border-left:4px solid var(--blue);border-radius:8px;padding:10px 14px;margin:6px 0 16px;font-size:.9rem}

/* Indicaciones del usuario: solo con foco o mouse encima; ✕ para ocultarlas */
.username-clear{top:13px;transform:none}
.username-input .username-rules{margin:8px 0 0;padding:12px 44px 10px 14px;animation:rules-in .18s ease-out}
.rules-close{position:absolute;top:6px;right:6px;width:30px;height:30px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:1.4rem;line-height:30px;cursor:pointer}
.rules-close:hover,.rules-close:focus-visible{background:#e9eef6;color:var(--ink);outline:none}
.username-input .username-rules{position:relative}
@media (min-width:700px){
.username-input .username-rules{position:absolute;left:0;right:0;bottom:calc(100% + 30px);z-index:25;margin:0;background:#fff;box-shadow:0 12px 28px rgba(16,24,40,.18)}
.username-input .username-rules::after{content:'';position:absolute;left:28px;bottom:-8px;width:14px;height:14px;background:#fff;border-right:1px solid var(--border);border-bottom:1px solid var(--border);transform:rotate(45deg)}
}
@media (min-width:1240px){
.username-input .username-rules{display:block;left:calc(100% + 18px);right:auto;bottom:auto;top:-30px;width:330px}
.username-input .username-rules::after{left:-8px;top:46px;bottom:auto;border:0;border-left:1px solid var(--border);border-bottom:1px solid var(--border)}
}
@keyframes rules-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.username-input .username-rules{animation:none}}

/* Correo: validación en vivo y confirmación pendiente */
.email-field label{margin-bottom:0}
.panel .email-field.is-ok input{border:2px solid #1f9d55;background:#e3f7ec}
.panel .email-field.is-warn input{border:2px solid #e0a800;background:#fff9e6}
.panel .email-field.is-bad input{border:2px solid #d62d2d;background:#fde8e8}
.email-status{margin:6px 0 8px;font-size:.86rem;font-weight:700}
.email-field.is-ok .email-status{color:#0f5132}
.email-field.is-warn .email-status{color:#7a5a00}
.email-field.is-bad .email-status{color:#b42318}
.email-field [data-email-suggest]{margin:0 0 10px}
.email-pending{background:#fff6dc;border:2px solid #e0a800;border-radius:10px;padding:12px 14px;color:#5c4400;margin:12px 0 16px}
.email-pending p{margin:0 0 10px}

/* Pantalla de PIN: cambiar de usuario, separado y con ícono */
.switch-user{border-top:1px solid var(--border);margin-top:18px;padding-top:16px;text-align:center}
.switch-user p{margin:0 0 10px;color:var(--muted)}
.switch-user form{display:flex;justify-content:center}
.switch-user-btn{display:inline-flex;align-items:center;gap:8px}
.switch-user-btn svg{flex:0 0 auto}

/* Sugerencias de nombre de usuario como texto */
.username-suggestions{margin:0 0 8px;font-size:.92rem;line-height:1.9}
.suggestion-link{background:none;border:0;padding:2px 4px;margin:0;font:inherit;font-weight:700;color:var(--blue);text-decoration:underline;text-underline-offset:3px;cursor:pointer;border-radius:4px}
.suggestion-link:hover,.suggestion-link:focus-visible{color:var(--blue-dark);background:#eaf1fc;outline:none}

/* PIN: sin JavaScript los dígitos se ocultan igual; con JavaScript se muestran asteriscos */
.pin-box:not(.pin-ready){-webkit-text-security:disc}

.sr-only{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* Menú de la cuenta (foto de perfil) */
.user-menu{position:relative}
.user-menu>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:9px;padding:4px 6px 4px 10px;border:1px solid transparent;border-radius:999px;color:var(--ink)}
.user-menu>summary::-webkit-details-marker{display:none}
.user-menu>summary:hover,.user-menu[open]>summary{background:var(--bg);border-color:var(--border)}
.user-menu>summary:focus-visible{outline:3px solid #8ab8f4;outline-offset:2px}
.user-menu-id{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2;max-width:200px;min-width:0;text-align:right}
.user-menu-id strong{font-size:.8rem}
.user-menu-id small{font-size:.68rem;color:var(--muted)}
.user-menu-id>*,.user-menu-head small,.user-menu-head strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;flex:none;border:2px solid var(--gold)}
.user-avatar-initials{display:inline-flex;align-items:center;justify-content:center;background:var(--blue);color:#fff;font-weight:700;font-size:.88rem;letter-spacing:.02em}
.user-avatar-lg{width:48px;height:48px;font-size:1.02rem}
.user-menu-caret{flex:none;color:var(--muted);transition:transform .15s}
.user-menu[open] .user-menu-caret{transform:rotate(180deg)}
.user-menu-panel{position:absolute;right:0;top:calc(100% + 10px);z-index:110;width:300px;max-width:calc(100vw - 24px);padding:8px;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 12px 35px #172e4633;color:var(--ink);text-align:left}
.user-menu-head{display:flex;align-items:center;gap:12px;padding:8px 10px 12px;margin-bottom:6px;border-bottom:1px solid var(--border)}
.user-menu-head>span{display:flex;flex-direction:column;min-width:0;line-height:1.3}
.user-menu-head strong{font-size:.95rem}
.user-menu-head small{font-size:.78rem;color:var(--muted)}
.nav .user-menu-panel a,.user-menu-panel button{display:flex;align-items:center;gap:11px;width:100%;padding:9px 10px;border:0;border-radius:9px;background:none;color:var(--ink);font:inherit;font-size:.9rem;font-weight:600;text-align:left;text-decoration:none;cursor:pointer}
.nav .user-menu-panel a:hover,.user-menu-panel button:hover,.nav .user-menu-panel a:focus-visible,.user-menu-panel button:focus-visible{background:var(--bg);color:var(--blue);outline:none}
.user-menu-panel svg{flex:none;color:var(--muted)}
.nav .user-menu-panel .user-menu-status{font-size:.84rem}
.user-menu-status.is-ok svg{color:var(--green)}
.user-menu-status.is-warn{color:#8a5a00}.user-menu-status.is-warn svg{color:#c48a00}
.user-menu-panel hr{border:0;border-top:1px solid var(--border);margin:6px 0}
.user-menu-panel form{margin:0}
.user-menu-logout button,.user-menu-logout button svg{color:var(--red)}
@media(max-width:700px){.user-menu-id,.user-menu-caret{display:none}.user-menu>summary{padding:2px}.user-menu-panel{position:fixed;top:auto;left:auto;right:12px;margin-top:10px;max-height:calc(100dvh - 140px);overflow:auto}}

/* Menú de la cuenta: en la barra solo nombre de pila, palomita y foto */
.user-menu-id{flex-direction:row;align-items:center;gap:4px}
.user-menu-id strong{font-size:.86rem}
.verified-badge{display:inline-block;flex:none;vertical-align:-.15em;margin-left:3px}
.user-menu-head strong{display:flex;align-items:center;gap:2px;white-space:normal}
.nav .user-menu-panel .user-menu-status.is-verified{color:#0d6fb8}
.verify-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;margin-left:auto;border-radius:999px;background:var(--red);color:#fff;font-size:.72rem;font-weight:700}
.stand-card .verify-count{margin-left:6px}

/* Verificación de perfil */
.verify-box{display:flex;gap:14px;align-items:flex-start;margin:14px 0 20px;padding:16px;border-radius:14px;border:1px solid var(--border);background:#fff}
.verify-box p{margin:.3em 0}
.verify-ok{border-color:#9fd3f7;background:#eef8ff}
.verify-pending{border-color:#f1d27a;background:var(--goldsoft)}.verify-pending>svg{color:#a87400;flex:none}
.verify-request{display:block;border:2px solid #1d9bf0;background:#f5fbff}
.verify-request-head{display:flex;gap:12px;align-items:flex-start}
.verify-request-head h2{margin:0 0 4px}
.verify-rejected{margin:12px 0;padding:10px 12px;border-radius:10px;background:#fdecee;color:var(--red)}
.verify-needed{margin:14px 0;padding:12px 14px;border-left:5px solid var(--gold);border-radius:10px;background:var(--goldsoft)}
.verify-needed ul{margin:6px 0 6px 1.1em;padding:0}
.verify-docs{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin:12px 0}
.verify-doc{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px dashed #9db3cf;border-radius:12px;background:#fff}
.verify-doc.is-ready{border-style:solid;border-color:var(--green)}
.verify-doc.is-missing{border-color:var(--red);background:#fff7f8}
.verify-doc-label{font-weight:700}
.verify-doc-preview{display:flex;align-items:center;justify-content:center;min-height:110px;border-radius:9px;background:var(--bg);overflow:hidden;text-align:center}
.verify-doc-preview img{display:block;width:100%;max-height:170px;object-fit:contain}
.verify-file-name{padding:8px;font-weight:600;word-break:break-all}
.verify-doc-actions{display:flex;flex-wrap:wrap;gap:8px}
.verify-doc-actions .btn{display:inline-flex;align-items:center;gap:6px;flex:1 1 auto;justify-content:center}
.verify-doc-error{margin:0;color:var(--red);font-size:.85rem;font-weight:600}
.verify-card{padding:14px 0;border-top:1px solid var(--border)}
.verify-card header{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}
.verify-card header small{flex-basis:100%;color:var(--muted)}
.verify-card-docs{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0}
.verify-thumb{display:flex;flex-direction:column;gap:4px;width:150px;text-decoration:none;font-size:.82rem;font-weight:600}
.verify-thumb img,.verify-pdf{width:150px;height:105px;object-fit:cover;border-radius:8px;border:1px solid var(--border);background:var(--bg)}
.verify-pdf{display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--red)}
.verify-card-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start}
.verify-card-actions .btn{display:inline-flex;align-items:center;gap:6px}
.verify-card-actions .verified-badge{margin:0}
.verify-reject>summary{list-style:none;cursor:pointer}.verify-reject>summary::-webkit-details-marker{display:none}
.verify-reject form{display:flex;flex-direction:column;gap:8px;margin-top:8px;max-width:420px}
.verify-reject textarea{width:100%}
.btn.verify-danger{background:var(--red);border-color:var(--red);color:#fff}
.verify-history{list-style:none;margin:0;padding:0}
.verify-history li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 12px;padding:9px 0;border-top:1px solid var(--border);font-size:.92rem}
@media(max-width:560px){.verify-box{padding:13px}.verify-thumb,.verify-thumb img,.verify-pdf{width:calc(50vw - 40px)}.verify-card-actions>*{flex:1 1 100%}.verify-card-actions .btn{width:100%;justify-content:center}}

/* Soporte técnico */
.support-form{display:flex;flex-direction:column;gap:6px}
.support-form label{font-weight:700;margin-top:10px}
.support-form input:not([type=file]),.support-form textarea{width:100%}
.support-form .field-help{margin:2px 0 0}
.support-form>.btn{margin-top:16px;align-self:flex-start}
.support-files{margin:12px 0 0;padding:12px 14px;border:1px dashed #9db3cf;border-radius:12px}
.support-files legend{padding:0 6px;font-weight:700}
.support-files p{margin:0 0 8px}
.support-file-actions{display:flex;flex-wrap:wrap;gap:8px}
.support-file-actions .btn{display:inline-flex;align-items:center;gap:6px}
.support-file-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.support-file-list li{display:flex;align-items:center;gap:10px;padding:6px 8px;border:1px solid var(--border);border-radius:9px;background:#fff}
.support-file-list img,.support-file-ext{width:44px;height:44px;flex:none;border-radius:6px;object-fit:cover;background:var(--bg)}
.support-file-ext{display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:800;color:var(--blue)}
.support-file-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.88rem}
@media(max-width:560px){.support-form>.btn,.support-file-actions .btn{width:100%;justify-content:center}}

/* Cámara web para «Sacar foto» en computadoras */
.camera-dialog{width:min(720px,calc(100% - 24px));max-height:calc(100dvh - 24px);overflow:auto;padding:18px;border:1px solid var(--border);border-radius:18px;background:#fff;color:var(--ink)}
.camera-dialog::backdrop{background:#0f1f3acc}
.camera-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.camera-head h2{margin:0}
.camera-stage{display:flex;align-items:center;justify-content:center;min-height:220px;border-radius:12px;background:#0f1f3a;overflow:hidden}
.camera-stage video,.camera-stage img{display:block;width:100%;max-height:60dvh;object-fit:contain}
.camera-stage [hidden]{display:none}
.camera-status{margin:10px 0;color:var(--muted)}
.camera-actions{display:flex;flex-wrap:wrap;gap:10px}
@media(max-width:560px){.camera-dialog{padding:14px}.camera-actions .btn{flex:1 1 100%}}
