:root {--color-primary:#174EA6;--color-secondary:#334155;--color-accent:#D97706;--color-background:#F8FAFC;--color-text:#0F172A;--color-success:#166534;--line:#e2e8f0;--muted:#64748b;--radius:18px}
*{box-sizing:border-box}body{margin:0;background:#f8fafc;color:var(--color-text);font-family:Segoe UI,Arial,sans-serif;line-height:1.55}h1,h2,h3,p{margin-top:0}h1{font-weight:750;letter-spacing:-.04em;font-size:2.6rem}h2{font-size:1.3rem;font-weight:700;letter-spacing:-.02em}h3{font-size:1.08rem;font-weight:650}a{color:var(--color-primary)}button,input,select{font:inherit}small{font-size:.8rem;color:var(--muted)}button:focus-visible,a:focus-visible{outline:3px solid #f59e0b;outline-offset:4px}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-shell>main{flex:1}.site-header{background:white;border-bottom:1px solid var(--line)}.site-nav{max-width:1180px;padding:22px 32px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#0f172a;font-size:1.08rem;font-weight:750;line-height:1.2}.brand-mark,.mini-mark{background:#174ea6;color:white;border-radius:12px;display:grid;place-items:center;width:42px;height:42px;font-weight:800}.brand-light{display:block;font-size:.78rem;font-weight:500;color:#64748b;margin-top:3px}.nav-actions{display:flex;align-items:center;gap:24px}.nav-entry{text-decoration:none;color:#475569;font-size:.9rem}.nav-entry.active{color:#174ea6}.btn{border-radius:10px;padding:10px 18px;font-weight:650;font-size:.9rem}.btn-lg{padding:14px 23px}.btn-sm{padding:8px 13px}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:white}.btn-primary:hover,.btn-primary:focus{background:var(--color-primary);border-color:var(--color-primary);filter:brightness(.9)}.btn-outline-primary{color:var(--color-primary);border-color:var(--color-primary)}.btn-outline-primary:hover{background:var(--color-primary);border-color:var(--color-primary)}.btn:disabled{opacity:.5}.site-footer{max-width:1180px;width:100%;padding:28px 32px;margin:auto;display:flex;justify-content:space-between;gap:15px;color:#64748b;font-size:.78rem;border-top:1px solid var(--line)}.site-footer>span:first-child{font-weight:650}.eyebrow{font-size:.69rem;letter-spacing:.13em;font-weight:750;color:var(--color-primary)}.landing-hero{max-width:1180px;padding:88px 32px 76px;margin:auto;display:grid;grid-template-columns:1.1fr 1fr;gap:72px;align-items:center}.hero-copy h1{font-size:3.6rem;line-height:1.1;margin:19px 0 24px}.hero-copy h1 span{color:#174ea6}.hero-copy>p{font-size:1.1rem;color:#64748b;max-width:470px;margin-bottom:30px}.hero-actions{display:flex;align-items:center;gap:24px}.text-link{text-decoration:none;font-weight:600;font-size:.9rem}.hero-note{margin-top:25px;font-size:.8rem;color:#64748b;display:flex;gap:9px;align-items:center}.small-check{color:#166534;background:#dcfce7;border-radius:50%;width:20px;height:20px;display:grid;place-items:center;font-weight:bold}.hero-panel{background:white;border:1px solid #dbe5f0;border-radius:22px;box-shadow:0 22px 50px #174ea60d;transform:rotate(1deg);overflow:hidden}.hero-panel-top{display:flex;align-items:center;gap:12px;padding:20px;border-bottom:1px solid var(--line);font-size:.8rem;font-weight:650}.mini-mark{width:30px;height:30px;border-radius:8px}.hero-panel-top .badge-soft{margin-left:auto;font-size:.55rem;padding:5px 8px}.badge-soft{background:#eaf1fc;color:#174ea6;padding:8px 13px;border-radius:8px;font-size:.72rem;font-weight:750;white-space:nowrap}.hero-panel-body{padding:32px}.hero-panel-body h2{font-size:2rem;margin:10px 0}.hero-panel-body>p{font-size:.85rem;color:#64748b;margin-bottom:20px}.workflow-row{display:flex;align-items:center;gap:15px;padding:16px 0;border-bottom:1px solid #edf2f7}.workflow-row:last-child{border:0}.workflow-row>b{background:#eff6ff;border-radius:10px;display:grid;place-items:center;min-width:38px;height:38px;font-size:.75rem;color:#174ea6}.workflow-row strong,.workflow-row span{display:block}.workflow-row strong{font-size:.88rem}.workflow-row span{font-size:.76rem;color:#64748b}.workflow-row i{color:#166534;font-style:normal;margin-left:auto}.hero-panel-bottom{background:#f8fafc;padding:16px;text-align:center;font-size:.75rem;color:#64748b}.landing-benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:45px;max-width:1180px;padding:10px 32px 60px;margin:auto}.landing-benefits article{padding-top:24px;border-top:1px solid #cbd5e1}.benefit-number{color:#174ea6;font-size:.7rem;font-weight:750}.landing-benefits h2{font-size:1.08rem;margin:10px 0}.landing-benefits p{color:#64748b;font-size:.88rem}.page-container{max-width:1180px;margin:auto;padding:45px 32px 60px}.page-heading{margin-bottom:30px}.page-heading h1{margin:7px 0 12px}.page-heading p{color:#64748b}.surface-card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:28px;margin-bottom:24px}.section-heading{display:flex;align-items:center;gap:12px;margin-bottom:22px}.section-heading h2{margin:0}.step-marker{background:#eaf1fc;border-radius:9px;display:grid;place-items:center;width:30px;height:30px;color:#174ea6;font-weight:750;font-size:.8rem}.editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:32px}.field-label{display:block;font-size:.82rem;font-weight:650;margin:16px 0 7px}.form-control{min-height:44px;border:1px solid #cbd5e1;border-radius:9px;font-size:.9rem;padding:10px 12px}.form-control:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #174ea618}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.form-actions{display:flex;align-items:center;gap:20px;margin:25px 0}.form-actions>span{font-size:.8rem;color:#64748b}.event-preview{background:var(--color-background);border:1px solid var(--line);border-radius:20px;padding:28px;color:var(--color-text);position:sticky;top:24px}.event-preview>.eyebrow{display:block;margin-bottom:28px}.event-monogram{height:65px;width:65px;display:grid;place-items:center;background:var(--color-primary);color:white;border-radius:16px;font-size:1.5rem;font-weight:750}.event-preview h2{font-size:1.55rem;margin:24px 0 12px}.event-preview p{font-size:.85rem;color:var(--color-secondary)}.event-preview>span:not(.eyebrow):not(.event-monogram){font-size:.9rem}.event-preview strong{font-size:.8rem;color:var(--color-primary)}.preview-line{height:3px;width:40px;background:var(--color-accent);margin:28px 0 18px}.aside-note{padding:20px;color:#64748b;font-size:.8rem}.palette-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.palette-card{border:1px solid var(--line);border-radius:12px;padding:13px;background:white;text-align:left;font-size:.76rem;position:relative;color:#334155}.palette-card.selected{border:2px solid var(--color-primary);padding:12px}.swatch-strip{display:flex;gap:5px;margin-bottom:10px}.swatch-strip i{width:25px;height:19px;border-radius:5px;background:var(--color-primary)}.swatch-strip i:nth-child(2){background:var(--color-secondary)}.swatch-strip i:nth-child(3){background:var(--color-accent)}.selection-indicator{position:absolute;right:12px;top:14px;color:var(--color-primary);font-weight:750}.access-layout{max-width:650px;margin:auto;padding:55px 25px}.access-layout h1{font-size:2.2rem}.access-layout .surface-card p{font-size:.9rem;color:#64748b}.loading-panel{padding:45px;color:#64748b;text-align:center}.event-admin{background:var(--color-background);color:var(--color-text);min-height:calc(100vh - 175px)}.admin-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.event-brand{display:flex;align-items:center;gap:20px}.event-brand img{width:68px;height:68px;object-fit:contain;border:1px solid var(--line);border-radius:14px;background:white;padding:5px}.event-brand h1{font-size:2.2rem;margin:6px 0 0}.event-meta{color:var(--color-secondary);font-size:.9rem;margin:20px 0 25px}.event-meta span{padding:0 10px}.configuration-banner{display:flex;justify-content:space-between;gap:20px;padding:20px 24px;background:#eff6ff;border:1px solid #dbeafe;border-radius:14px;margin-bottom:24px;color:#1e40af}.configuration-banner strong{font-size:.73rem;letter-spacing:.08em;display:block}.configuration-banner span{display:block;font-size:.8rem;margin-top:3px}.configuration-banner>div:last-child{text-align:right}.configuration-banner b{font-size:1.2rem}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:30px}.stats-grid>div{background:white;border:1px solid var(--line);border-radius:14px;padding:20px}.stats-grid span{display:block;color:#64748b;font-size:.76rem}.stats-grid strong{display:block;font-size:1.6rem;margin-top:8px;letter-spacing:-.03em}.admin-tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:25px;overflow:auto}.admin-tabs button{background:none;border:0;border-bottom:3px solid transparent;padding:15px 22px;font-size:.86rem;white-space:nowrap;color:var(--color-secondary)}.admin-tabs button.active{border-color:var(--color-primary);color:var(--color-primary);font-weight:700}.created-banner{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:14px;padding:25px;margin-bottom:28px;color:#14532d}.created-banner p{font-size:.9rem;margin:8px 0 16px}.section-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}.section-toolbar h2{margin:0}.search-form{display:flex;gap:12px;margin-bottom:20px;max-width:600px}.guest-editor{padding:24px;border:1px solid var(--line);background:#f8fafc;border-radius:12px;margin-bottom:25px}.table{font-size:.82rem}.table thead th{font-size:.71rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b;background:#f8fafc;padding:14px 12px;white-space:nowrap}.table td{padding:16px 12px}.row-actions{display:flex;gap:8px}.status-label{font-size:.73rem;color:#475569}.pagination-bar{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:#64748b;gap:15px}.pagination-bar>div{display:flex;gap:8px}.empty-state{padding:35px!important;text-align:center;color:#64748b!important}.link-row{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:22px 0}.link-row small{display:block;margin-top:4px}.validation-message,.validation-errors{color:#b91c1c;font-size:.82rem}.invalid{border-color:#b91c1c}.alert{border-radius:12px;font-size:.9rem}.form-check-input:checked{background-color:var(--color-primary);border-color:var(--color-primary)}#blazor-error-ui{display:none;position:fixed;bottom:0;width:100%;padding:15px;background:#fff7ed;color:#7c2d12;z-index:1000}#blazor-error-ui .dismiss{float:right;background:none;border:0;font-size:1.2rem}
@media(min-width:1000px){.event-admin .palette-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:900px){.landing-hero{grid-template-columns:1fr;gap:40px;padding-top:55px}.hero-copy h1{font-size:3rem}.hero-panel{max-width:600px;transform:none}.editor-layout{grid-template-columns:1fr}.editor-layout aside{display:none}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.landing-benefits{gap:20px}}
@media(max-width:600px){.site-nav{padding:18px 20px}.nav-actions{gap:14px}.nav-entry{font-size:.8rem}.brand{font-size:.92rem}.brand-mark{width:36px;height:36px}.hero-copy h1{font-size:2.5rem}.landing-hero{padding:45px 22px}.hero-copy>p{font-size:1rem}.hero-actions{gap:15px;flex-wrap:wrap}.hero-panel-body{padding:24px}.hero-panel-top{padding:14px;font-size:.72rem;gap:8px}.landing-benefits{grid-template-columns:1fr;padding:0 22px 40px;gap:12px}.page-container{padding:30px 18px 45px}h1{font-size:2.2rem}.surface-card{padding:20px}.form-grid{grid-template-columns:1fr}.form-actions{align-items:flex-start;flex-direction:column;gap:12px}.admin-heading{align-items:flex-start;flex-direction:column}.event-brand{gap:15px}.event-brand h1{font-size:1.65rem}.event-brand img,.event-brand .event-monogram{height:55px;width:55px}.configuration-banner{padding:16px;gap:12px}.configuration-banner>div:last-child{min-width:105px}.stats-grid{gap:10px}.stats-grid>div{padding:16px}.stats-grid strong{font-size:1.35rem}.admin-tabs button{padding:14px 15px}.site-footer{padding:22px;flex-direction:column;gap:5px}.search-form{gap:8px}.section-toolbar{align-items:flex-start}.section-toolbar .btn{font-size:.8rem}.link-row{gap:12px}.link-row strong{font-size:.9rem}.pagination-bar{flex-wrap:wrap}}

h1:focus { outline: none; }
.entry-qr svg { width:100%; height:auto; }
.qr-status { text-align:center; font-size:clamp(1.35rem,3vw,2.5rem); font-weight:800; line-height:1.3; white-space:pre-line; padding:1.5rem; min-height:7rem; margin-top:1rem; }
.qr-camera-preview { display:block; width:100%; max-width:480px; border-radius:12px; margin:1rem auto; }
/* Keep the video mounted and playing for canvas decoding without a visible preview. */
.qr-camera-hidden { position:fixed; width:1px; height:1px; opacity:0; pointer-events:none; overflow:hidden; }
@media print { @page { size:A4; margin:15mm; } .site-header,.site-footer,.no-print,#blazor-error-ui,.components-reconnect-modal { display:none !important; } body,.app-shell { background:white !important; min-height:0; } .invitation-print { color:#111 !important; background:white !important; box-shadow:none; border:0; margin:0 auto; max-width:170mm; padding:5mm; break-inside:avoid; } .invitation-print .event-brand { justify-content:center; } .invitation-print .entry-qr { width:70mm; max-width:70mm !important; } .invitation-print h1 { font-size:22pt; } }
.guest-actions-cell { width:1%; white-space:nowrap; vertical-align:top; } .guest-actions-menu { min-width:110px; } .guest-actions-menu summary { cursor:pointer; list-style:none; } .guest-actions-menu summary::-webkit-details-marker { display:none; } .guest-actions-options { display:none; min-width:200px; padding:.5rem 0; } .guest-actions-menu[open] > .guest-actions-options { display:flex; flex-direction:column; gap:.35rem; } .guest-actions-options .btn { text-align:left; white-space:normal; } 
.guest-actions-options { position:fixed; z-index:1050; background:white; border:1px solid #dbe2ea; border-radius:12px; box-shadow:0 12px 30px #0f172a26; padding:.5rem; max-height:calc(100vh - 24px); overflow-y:auto; min-width:0; }
.search-form { flex-wrap:wrap; } .search-form .form-control { flex:2 1 220px; } .search-form .form-select { flex:1 1 170px; width:auto; }
.guest-click-row { cursor:pointer; } .guest-click-row:hover>td { background:#eef4ff; } .guest-click-row:focus-visible { outline:3px solid #174ea6; outline-offset:-3px; }
.guest-state-panel { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:1rem; padding:1rem; margin-bottom:1.25rem; border:1px solid var(--line); background:#f8fafc; border-radius:12px; } .guest-state-panel .field-label { display:block; margin:0 0 .35rem; }
/* Crédito discreto de la plataforma, visible durante el desplazamiento. */
.platform-credit{position:fixed;right:16px;bottom:12px;z-index:20}.platform-credit a{display:flex;align-items:center;gap:8px;padding:7px 11px;background:#fffffff2;border:1px solid #e2e8f0;border-radius:9px;box-shadow:0 2px 8px #0b23410a;color:#64748b;text-decoration:none;font-size:.7rem;line-height:1.2}.platform-credit a:hover{color:#174ea6;border-color:#b8cce8}.credit-mark{display:grid;place-items:center;width:23px;height:23px;border-radius:6px;background:#174ea6;color:white;font-size:.8rem;font-weight:800}.platform-credit strong{font-weight:650}.app-shell>main{padding-bottom:64px}
@media(max-width:600px){.platform-credit{right:10px;bottom:10px}.platform-credit a{font-size:.65rem;padding:6px 9px}}
@media print{.platform-credit{display:none!important}.app-shell>main{padding-bottom:0}}
.field-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}.field-options h5{font-size:.9rem;font-weight:700;margin:0 0 12px}.field-options label{display:block;margin-bottom:10px;font-size:.88rem}.field-options small{display:block;line-height:1.5}
.internal-control>section,.internal-control>details{margin-bottom:24px}.internal-control h1{font-size:2rem}.internal-control summary{cursor:pointer;font-weight:700}.internal-operation{padding:22px;margin-top:24px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc}.internal-operation .form-control{max-width:650px}

@media(min-width:900px){body:has(.attendance-page) .site-nav{height:60px;min-height:60px;padding:6px 20px}body:has(.attendance-page) .company-brand img{max-height:42px}body:has(.attendance-page) .app-shell>main{padding-bottom:34px}body:has(.attendance-page) .platform-credit{bottom:4px}}

@media(min-width:700px){body:has(.attendance-page) .site-nav{height:60px;min-height:60px;padding:6px 20px}body:has(.attendance-page) .company-brand img{max-height:42px}body:has(.attendance-page) .app-shell>main{padding-bottom:44px}}
@media(min-width:700px) and (max-height:650px){body:has(.attendance-page) .site-nav{height:44px;min-height:44px;padding:4px 16px}body:has(.attendance-page) .company-brand img{max-height:30px}body:has(.attendance-page) .app-shell>main{padding-bottom:32px}body:has(.attendance-page) .platform-credit{bottom:3px}body:has(.attendance-page) .platform-credit a{font-size:.6rem;padding:4px 7px}body:has(.attendance-page) .credit-mark{width:18px;height:18px}}

@media(min-width:700px) and (max-height:520px){body:has(.attendance-page) .site-nav{height:32px;min-height:32px;padding:2px 12px}body:has(.attendance-page) .company-brand img{max-height:24px}body:has(.attendance-page) .app-shell>main{padding-bottom:28px}body:has(.attendance-page) .platform-credit a{padding:2px 6px}}
