@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/c3cb240f9c892514-s.3z_x6eowsw16y.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.2_mbdogr7ni8i.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/c3cb240f9c892514-s.3z_x6eowsw16y.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.2_mbdogr7ni8i.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/c3cb240f9c892514-s.3z_x6eowsw16y.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.2_mbdogr7ni8i.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}.dm_sans_f7a1aa10-module__ocMDgG__className{font-family:DM Sans,DM Sans Fallback;font-style:normal}.dm_sans_f7a1aa10-module__ocMDgG__variable{--font-dm-sans:"DM Sans", "DM Sans Fallback"}
:root{--font-display:"DM Sans", "Avenir Next", "Segoe UI", sans-serif;--font-body:Outfit, Inter, "Segoe UI", sans-serif;--color-brand-50:#fdf8fb;--color-brand-100:#fdf5fa;--color-brand-200:#faeef6;--color-brand-400:#c47aa8;--color-brand-500:#8b2060;--color-brand-600:#6b1245;--color-brand-700:#5c0f38;--color-surface:#fff;--color-border:#ede4ed;--color-border-strong:#d1d5db;--color-text:#1a0a1e;--color-text-secondary:#374151;--color-text-muted:#5f6672;--color-text-faint:#676e7b;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--radius-sm:.375rem;--radius-lg:.75rem;--radius-full:9999px;--shadow-card:0 1px 4px #0000000d;--shadow-primary:0 4px 16px #8b206059;--shadow-primary-pressed:0 2px 8px #8b206040;--focus-ring-color:var(--color-brand-500);--focus-ring:0 0 0 3px #8b206073;--text-display-lg:2.25rem;--text-subheading:1rem;--text-body:.875rem;--text-label:.75rem;--text-caption:.75rem;--text-tag:.75rem;--color-canvas:#f6f4f8;--color-border-subtle:#f8f4f8;--color-focus:#8b2060;--color-danger:#b91c1c;--color-danger-bg:#fef2f2;--color-success:#166534;--color-success-bg:#dcfce7;--color-warning:#92400e;--color-warning-bg:#fffbeb;--color-info:#1e40af;--color-info-bg:#dbeafe;--shadow-hover:0 4px 16px #8b20601f;--radius-card:1rem;--font-sans:var(--font-dm-sans), "DM Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.25rem;--font-size-xl:clamp(2rem, 5vw, 3.5rem);--radius-md:.75rem;--shadow-sm:0 1px 2px #17211d14;--content-width:72rem}*{box-sizing:border-box}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;scroll-padding-top:4.5rem}body{background:var(--color-canvas);min-height:100vh;color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-size-base);margin:0;line-height:1.5}button,input,select,textarea{font:inherit}textarea{width:100%;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.page-heading,.action-row,.filter-bar{justify-content:space-between;align-items:end;gap:var(--space-4);flex-wrap:wrap;display:flex}.button-link{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--color-brand-500);color:#fff;font-weight:700;text-decoration:none;display:inline-block}.button-link:hover{background:var(--color-brand-600)}.button-link-secondary{background:var(--color-surface);color:var(--color-brand-600);box-shadow:inset 0 0 0 1px var(--color-brand-400)}.button-link-secondary:hover{background:var(--color-brand-50)}.page-heading>.action-row,p.action-row{align-items:center}table{border-collapse:collapse;width:100%}th,td{padding:var(--space-3);text-align:left;border-bottom:1px solid var(--color-border);vertical-align:top}.stat-grid{gap:var(--space-4);margin-block:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));display:grid}.stat-card{gap:var(--space-1);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card);display:grid}.stat-card strong{font-size:1.75rem}.stat-card span,.stat-card small{color:var(--color-text-muted)}.status-badge{background:var(--color-brand-100);font-size:var(--font-size-sm);border-radius:999px;padding:.15rem .5rem;font-weight:700;display:inline-block}.report-table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card);overflow-x:auto}th{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-faint);font-size:.6875rem;font-weight:600}:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.page-shell{min-height:100vh;padding:var(--space-6);place-items:center;display:grid}.foundation-card{width:min(100%,42rem);padding:var(--space-12);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm)}.foundation-card h1{margin:0 0 var(--space-4);font-size:var(--font-size-xl);line-height:1.1}.foundation-card p:last-child{color:var(--color-text-muted);margin-bottom:0}.eyebrow{margin:0 0 var(--space-2);color:var(--color-brand-700);font-size:var(--font-size-sm);letter-spacing:.08em;text-transform:uppercase;font-weight:700}a{color:var(--color-brand-700)}button{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--color-brand-500);color:var(--color-surface);cursor:pointer;border:0;font-weight:700}button:hover{background:var(--color-brand-600)}input,select{width:100%;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text)}.admin-content{width:min(100%, var(--content-width));margin-inline:auto}.admin-grid,.role-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));display:grid}.panel{padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card)}.form-stack,.form-stack label{gap:var(--space-3);display:grid}.form-stack{align-content:start}:is(.form-stack label:has(>input[type=checkbox]),.form-stack label:has(>input[type=radio])){align-items:center;gap:var(--space-2);display:flex}.form-stack label>input[type=checkbox],.form-stack label>input[type=radio]{flex:none;width:auto;margin:0}.record-list{gap:var(--space-3);padding:0;list-style:none;display:grid}.record-list li{padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border);display:grid}.record-list span,.status-line{color:var(--color-text-muted);font-size:var(--font-size-sm)}.danger-button{background:var(--color-danger)}.training-card-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));display:grid}.training-card h3,.content-block h3{margin-top:0}.training-player{gap:var(--space-6);display:grid}.training-player progress{width:100%;height:1rem;accent-color:var(--color-brand-600)}.section-nav{gap:var(--space-3);flex-wrap:wrap;display:flex}.content-block{padding-block:var(--space-4);border-bottom:1px solid var(--color-border)}.inline-form{gap:var(--space-2);min-width:14rem;display:grid}.dev-banner{margin:0 0 var(--space-4);padding:var(--space-2) var(--space-3);border:1px dashed var(--color-brand-400);border-radius:var(--radius-sm);background:var(--color-brand-50);font-size:var(--font-size-sm)}.app-toast{right:var(--space-6);bottom:var(--space-6);z-index:50;max-width:min(24rem, calc(100vw - 2 * var(--space-6)));padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);color:var(--color-success);background:var(--color-success-bg);box-shadow:var(--shadow-card);font-size:var(--font-size-sm);margin:0;position:fixed}.app-toast[data-visible=false]{clip:rect(0 0 0 0);width:1px;height:1px;box-shadow:none;padding:0;position:absolute;overflow:hidden}.app-toast:before{content:"✓ "}.unsupported-browser{display:none}html[data-unsupported-browser] .unsupported-browser{padding:var(--space-4);background:var(--color-danger-bg);color:var(--color-danger);font-size:var(--font-size-base);display:block}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.form-message:empty{display:none}.form-message{margin:var(--space-2) 0 0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.form-message-ok{color:var(--color-success);background:var(--color-success-bg)}.form-message-ok:before{content:"✓ "}.form-message-error{color:var(--color-danger);background:var(--color-danger-bg)}.form-message-error:before{content:"Error: ";font-weight:600}.form-message-field{display:block}button:disabled{cursor:progress;opacity:.7}@media (max-width:40rem){.admin-header{flex-direction:column;align-items:flex-start}}.app-shell{background:var(--color-canvas);grid-template-columns:14rem minmax(0,1fr);min-height:100vh;display:grid}.app-sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.app-brand{box-sizing:border-box;align-items:center;gap:var(--space-2);height:4rem;padding:0 var(--space-4);background:linear-gradient(#1a0a1e 0%,#4a1040 50%,#6b1245 100%);border-bottom:1px solid #ffffff24;flex-shrink:0;text-decoration:none;display:flex}.app-brand-mark{border-radius:var(--radius-sm);color:#fff;background:#ffffff29;flex-shrink:0;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;display:flex}.app-brand strong{font-size:var(--font-size-base);color:#fff;font-weight:700;display:block}.app-brand span span{color:#ffffffb8;font-size:.6875rem;font-weight:500;display:block}.app-nav-group{margin:var(--space-3) 0}.app-nav-group-label{padding:var(--space-1) var(--space-4);margin:0 0 var(--space-1);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-faint);font-size:.6875rem;font-weight:600}.app-nav{gap:.125rem;display:grid}.app-nav a,.app-mobile-nav a{align-items:center;gap:var(--space-2);padding:.5rem var(--space-4);margin-right:var(--space-2);border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:500;text-decoration:none;transition:background-color .1s,color .1s;display:flex}.app-nav a svg,.app-mobile-nav a svg{color:var(--color-text-faint);flex-shrink:0}.app-nav a:hover,.app-nav a:focus-visible{background:var(--color-brand-50);color:var(--color-text)}.app-nav a[aria-current=page]{background:var(--color-brand-100);color:var(--color-brand-600);font-weight:700}.app-nav a[aria-current=page] svg{color:var(--color-brand-500)}.app-sidebar-footer{padding:var(--space-4);border-top:1px solid var(--color-border);margin-top:auto}.app-sidebar-identity{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);min-width:0;display:flex}.app-sidebar-avatar{background:linear-gradient(135deg, var(--color-brand-500), var(--color-brand-700));color:#fff;width:2rem;height:2rem;font-size:var(--font-size-sm);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.app-sidebar-identity strong{min-width:0;font-size:var(--font-size-sm);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.app-sidebar-actions{align-items:center;gap:var(--space-2);display:flex}.app-sidebar-action-form{flex:1;margin:0}.app-sidebar-action{border-radius:var(--radius-sm);width:100%;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;gap:6px;padding:.4rem 0;font-family:inherit;font-size:.8125rem;font-weight:600;text-decoration:none;transition:background-color .1s,color .1s;display:flex}.app-sidebar-action:hover,.app-sidebar-action:focus-visible{background:var(--color-brand-50);color:var(--color-text)}.app-workspace{min-width:0}.app-header{z-index:30;box-sizing:border-box;height:4rem;padding:0 var(--space-6);align-items:center;gap:var(--space-4);color:#fff;background:linear-gradient(#1a0a1e 0%,#4a1040 50%,#6b1245 100%);border-bottom:1px solid #ffffff24;grid-template-columns:1fr auto 1fr;display:grid;position:sticky;top:0}.app-header :focus-visible{outline-color:#fff}.app-header-left{align-items:center;gap:var(--space-3);min-width:0;display:flex}.app-header-title{font-size:var(--font-size-base);letter-spacing:.02em;color:#fff;white-space:nowrap;margin:0;font-weight:700}.app-header-date{color:#ffffffc7;font-size:var(--font-size-sm);white-space:nowrap;justify-self:center;margin:0}.app-header-welcome{color:#ffffffe0;font-size:var(--font-size-sm);white-space:nowrap;justify-self:end}.app-header-welcome strong{color:#fff;font-weight:700}.app-main{width:min(100%,90rem);padding:var(--space-8);margin:0 auto}.app-mobile-nav{display:none}.app-mobile-nav summary{cursor:pointer;font-size:var(--font-size-sm);color:#fff;font-weight:600}.app-mobile-nav nav{z-index:20;margin-top:var(--space-2);padding:var(--space-2);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:14rem;max-height:calc(100vh - 5rem);box-shadow:var(--shadow-hover);gap:.125rem;display:grid;position:absolute;overflow-y:auto}.app-mobile-nav-account{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border);gap:.125rem;display:grid}.app-mobile-nav-account button{width:100%;padding:.5rem var(--space-4);text-align:left;font:inherit;font-size:var(--font-size-sm);color:var(--color-text-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;font-weight:500}.app-mobile-nav-account button:hover,.app-mobile-nav-account button:focus-visible{background:var(--color-brand-50)}@media (max-width:60rem){.app-shell{display:block}.app-sidebar{display:none}.app-mobile-nav{display:block}.app-header-date{display:none}.app-main{padding:var(--space-5)}.app-header{padding-inline:var(--space-4);grid-template-columns:minmax(0,1fr) auto}.app-header-title{text-overflow:ellipsis;font-size:var(--font-size-sm);overflow:hidden}}@media (max-width:40rem){.app-header-welcome{display:none}.app-main{padding:var(--space-4)}}.report-table-wrap:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.back-link{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-brand-600);font-weight:600;text-decoration:none;display:inline-flex}.back-link:hover{background:var(--color-brand-50)}.how-to{margin:0 0 var(--space-4);padding:var(--space-2) var(--space-3);border:1px solid var(--color-brand-200);background:var(--color-brand-100);border-radius:10px}.how-to>summary{cursor:pointer;color:var(--color-brand-500);font-size:.8125rem;font-weight:600}.how-to-body{gap:var(--space-3);max-width:45rem;margin-top:var(--space-2);flex-direction:column;display:flex}.how-to-text{font-size:.8125rem;line-height:1.55}.how-to-text p{margin:0 0 var(--space-2)}.how-to-text p:last-child{margin-bottom:0}.how-to-example{padding:var(--space-2) var(--space-3);border:1px solid var(--color-brand-200);background:var(--color-surface);border-radius:8px}.how-to-example-label{color:var(--color-text-muted);letter-spacing:.07em;text-transform:uppercase;margin:0;font-size:.6875rem;font-weight:700}.how-to-example-name{margin:var(--space-1) 0 var(--space-2);font-size:.8125rem;font-weight:600}.how-to-example dl{grid-template-columns:minmax(7.5rem,34%) 1fr;align-items:baseline;gap:.375rem .875rem;margin:0;display:grid}.how-to-example dt{color:var(--color-text-muted);font-size:.75rem}.how-to-example dd{margin:0;font-size:.8125rem}.how-to-punch{margin:var(--space-2) 0 0;color:var(--color-brand-500);font-size:.75rem;font-weight:600}.how-to-note{margin:var(--space-1) 0 0;color:var(--color-text-muted);font-size:.75rem}@media (max-width:40rem){.how-to-example dl{grid-template-columns:1fr}.how-to-example dd{margin-bottom:var(--space-1)}}
