:root{--bg:#0b1320;--panel:#111a28;--panel-2:#16202f;--line:#243246;--ink:#e8edf7;--ink-dim:#a9b3c7;--ink-faint:#6b7689;--teal:#1DBA9C;--teal-deep:#159d86;--amber:#1DBA9C;--pass:#1DBA9C;--fail:#f85149;--media:#e9b44c;--mono:ui-monospace,"JetBrains Mono",Menlo,Consolas,monospace;--sans:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--display:"Sora","Inter",sans-serif;color-scheme:dark}:root[data-theme=light]{--bg:#f3f5f9;--panel:#ffffff;--panel-2:#e9edf4;--line:#c9d1de;--ink:#0b1220;--ink-dim:#2c3a52;--ink-faint:#4d596f;--teal:#0c8f7a;--teal-deep:#0a6f5e;--amber:#0c8f7a;--pass:#0c8f7a;--fail:#c73830;--media:#a56f0d;color-scheme:light}:root[data-theme=light] body{font-weight:500}:root[data-theme=light] .mc-letter,:root[data-theme=light] .ninja-msg-kicker,:root[data-theme=light] .section-link{color:var(--teal-deep)}:root[data-theme=light] body{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}:root[data-theme=light] .dash-logo{content:url(/uploads/logo-horizontal-color.svg)}:root[data-theme=light] .dash-nav{background:rgba(255,255,255,.82)}body.landing-mode{--bg:#0b1320;--panel:#111a28;--panel-2:#16202f;--line:#243246;--ink:#e8edf7;--ink-dim:#a9b3c7;--ink-faint:#6b7689;color-scheme:dark}input[type=date]::-webkit-calendar-picker-indicator{opacity:.65;cursor:pointer}input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}*{box-sizing:border-box}body,html{height:100%;margin:0}*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--ink) 22%,var(--panel-2)) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-corner,::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--ink) 22%,var(--panel-2));border-radius:99px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--ink) 34%,var(--panel-2));border:2px solid transparent;background-clip:padding-box}:root{--control-h:40px;--form-gap:12px;--on-teal:#06281c}:root[data-theme=light]{--on-teal:#ffffff}body{background:var(--bg);color:var(--ink);font-family:var(--sans);overflow:hidden}.app{height:100vh;height:100dvh;display:flex;flex-direction:column}body.dragging{-webkit-user-select:none;-moz-user-select:none;user-select:none}.loading{padding:30px;color:var(--ink-dim);font-family:var(--mono)}.topnav{display:flex;align-items:center;gap:14px;padding:10px 18px;background:var(--panel);border-bottom:1px solid var(--line);flex-shrink:0}.brand{font-family:var(--mono);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim)}.brand b{color:var(--ink);font-weight:600}.spacer{flex:1 1}.who{font-family:var(--mono);font-size:12px;color:var(--ink-dim)}.topnav form{display:inline}.auth-wrap{flex:1 1;display:flex;align-items:center;justify-content:center;padding:24px}.auth-card{width:100%;max-width:380px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:28px}.auth-card h1{margin:0 0 8px;font-size:22px}.auth-card .muted{color:var(--ink-dim);font-size:14px;margin:0 0 18px}.auth-card form{display:flex;flex-direction:column;gap:var(--form-gap)}.auth-card input{font-family:var(--mono);font-size:14px;padding:0 12px;height:var(--control-h);border-radius:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink)}.auth-card input:focus{outline:2px solid var(--amber)}.btn{font-family:var(--mono);font-size:14px;line-height:1;border-radius:6px;border:1px solid var(--line);background:var(--panel-2);padding:0 14px;height:var(--control-h);cursor:pointer;display:inline-flex;align-items:center;gap:6px;justify-content:center}.btn,.btn:hover{color:var(--ink)}.btn:hover{border-color:var(--ink-faint)}.btn.primary{background:linear-gradient(135deg,var(--teal),var(--teal-deep));color:var(--on-teal);border-color:var(--teal);font-weight:700}.btn.primary:hover{filter:brightness(1.08)}.btn:disabled,.btn:disabled:hover{opacity:.45;cursor:not-allowed;filter:none;border-color:var(--line)}.ide{flex:1 1;display:flex;flex-direction:column;min-height:0}.toolbar{display:flex;align-items:center;gap:14px;padding:8px 18px;background:var(--panel);border-bottom:1px solid var(--line);flex-shrink:0}select{font-family:var(--mono);font-size:13px;border-radius:6px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink);padding:0 12px;height:var(--control-h);cursor:pointer}.toolbar .btn{min-width:36px}.timer{font-family:var(--mono);font-size:14px;font-weight:600;padding:0 12px;height:var(--control-h);display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:6px;min-width:84px;text-align:center;background:var(--panel-2)}.timer.danger{color:var(--media);border-color:color-mix(in srgb,var(--media) 50%,var(--line))}.timer.over{color:var(--fail);border-color:color-mix(in srgb,var(--fail) 55%,var(--line))}main{flex:1 1;display:flex;min-height:0}.left{min-width:220px;overflow-y:auto;padding:24px 28px;border-right:1px solid var(--line);background:var(--panel);position:relative}.right{flex:1 1;display:flex;flex-direction:column;min-width:0}.editor-wrap{flex:1 1;min-height:200px;overflow:hidden}.mc-stack{flex:1 1;overflow-y:auto;background:var(--bg)}.mc-flow{max-width:860px;margin:0 auto;padding:18px 36px 10px}.mc-flow .statement{margin:8px 0 16px}.mc-panel{padding:26px 30px;max-width:760px}.mc-flow .mc-panel{padding:0;max-width:none}.toolbar-pos{font-family:var(--mono);font-size:12.5px;color:var(--ink-dim);white-space:nowrap;padding:0 4px}.mc-nav{position:-webkit-sticky;position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding:12px 0;border-top:1px solid var(--line);background:var(--bg)}.mc-progress{color:var(--ink-faint)}.mc-instr,.mc-progress{font-family:var(--mono);font-size:12px}.mc-instr{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-dim);margin-bottom:10px}.mc-options{display:flex;flex-direction:column;gap:8px}.mc-option{display:flex;align-items:flex-start;gap:12px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);cursor:pointer;transition:border-color .15s,background .15s}.mc-option:hover{border-color:var(--ink-faint)}.mc-option.selected{border-color:var(--teal);background:color-mix(in srgb,var(--teal) 10%,var(--panel))}.mc-option input{margin-top:2px;width:16px;height:16px;accent-color:var(--teal);cursor:pointer;flex-shrink:0}.mc-letter{font-family:var(--mono);font-weight:700;font-size:14px;color:var(--teal);min-width:20px}.mc-text{font-size:14.5px;line-height:1.5}.mc-option.selected .mc-text,.mc-text{color:var(--ink)}.mc-options.figures{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:10px;gap:10px}.mc-options.figures .mc-option{flex-direction:column;align-items:center;text-align:center;gap:8px;padding:14px}.mc-text img,.mc-text svg{display:block;max-height:140px;margin:0 auto}.mc-text img,.mc-text svg,.statement img,.statement svg{max-width:100%;height:auto;color:var(--ink)}.cm-editor{height:100%}.reto-head{display:flex;align-items:center;gap:12px;margin-bottom:4px}.reto-head h1{font-size:21px;margin:0;line-height:1.2}.badge{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;padding:3px 9px;border-radius:20px;border:1px solid var(--line);white-space:nowrap}.badge.facil{color:var(--pass);border-color:color-mix(in srgb,var(--pass) 40%,var(--line))}.badge.media{color:var(--media);border-color:color-mix(in srgb,var(--media) 40%,var(--line))}.badge.dificil{color:var(--fail);border-color:color-mix(in srgb,var(--fail) 40%,var(--line))}.statement{color:var(--ink-dim);font-size:14px;line-height:1.65}.statement h2{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink);margin:24px 0 8px}.statement p{margin:8px 0}.statement code,.statement strong{color:var(--ink)}.statement code{font-family:var(--mono);font-size:12.5px;background:var(--panel-2);border:1px solid var(--line);border-radius:5px;padding:1px 6px}.statement ul{padding-left:20px}.statement li{margin:3px 0}table.samples{border-collapse:collapse;width:100%;margin:8px 0;font-family:var(--mono);font-size:12px}table.samples td,table.samples th{border:1px solid var(--line);padding:6px 9px;text-align:left}table.samples th{color:var(--ink);background:var(--panel-2)}table.samples td{color:var(--ink-dim)}.hidden-note{font-size:12px;color:var(--ink-faint);font-style:italic;margin-top:6px}.panel-toggle{background:none;border:1px solid var(--line);border-radius:6px;color:var(--ink-dim);cursor:pointer;font-size:15px;line-height:1;padding:3px 9px;font-family:var(--mono);transition:transform .15s}.panel-toggle:hover{color:var(--ink);border-color:var(--ink-faint)}.reto-head .panel-toggle{transform:rotate(180deg)}.console-head .panel-toggle{transform:rotate(90deg)}.console-head .panel-toggle.collapsed{transform:rotate(-90deg)}.rail{display:none}.left.collapsed{width:38px!important;min-width:38px;padding:0;overflow:hidden}.left.collapsed .reto-head,.left.collapsed .statement{display:none}.left.collapsed .rail{display:flex;align-items:center;justify-content:center;height:100%;width:100%;writing-mode:vertical-rl;background:var(--panel);border:none;color:var(--ink-dim);cursor:pointer;font-family:var(--mono);font-size:12px;letter-spacing:.12em}.left.collapsed .rail:hover{color:var(--ink)}.divider-x{width:6px;cursor:col-resize}.divider-x,.divider-y{flex-shrink:0;background:var(--line);touch-action:none}.divider-y{height:6px;cursor:row-resize}.divider-x:hover,.divider-y:hover{background:var(--ink-faint)}.console{flex-shrink:0;border-top:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column}.console.collapsed{height:auto!important}.console-head{display:flex;align-items:center;gap:14px;padding:8px 16px;border-bottom:1px solid var(--line);color:var(--ink-dim)}.console-head,.tab{font-family:var(--mono);font-size:12px}.tab{background:none;border:none;border-bottom:2px solid transparent;border-radius:0;padding:4px 2px;color:var(--ink-faint);cursor:pointer}.tab.active{color:var(--ink);border-bottom-color:var(--amber)}.pill{font-family:var(--mono);font-size:12px;padding:2px 9px;border-radius:20px;border:1px solid var(--line)}.pill.ok{color:var(--pass);border-color:color-mix(in srgb,var(--pass) 40%,var(--line))}.pill.no{color:var(--fail);border-color:color-mix(in srgb,var(--fail) 40%,var(--line))}.results{flex:1 1;overflow-y:auto;padding:6px 0}.case{display:grid;grid-template-columns:22px 1fr;grid-gap:10px;gap:10px;align-items:baseline;padding:7px 16px;font-family:var(--mono);font-size:12.5px;border-bottom:1px solid color-mix(in srgb,var(--line) 50%,transparent)}.case .mark{font-weight:700}.case.pass .mark{color:var(--pass)}.case.fail .mark{color:var(--fail)}.case .name{color:var(--ink)}.case .detail{color:var(--ink-faint);font-size:11.5px;grid-column:2/-1}.case .detail b{color:var(--ink-dim);font-weight:400}.stdout{flex:1 1;overflow:auto;margin:0;padding:10px 16px;font-family:var(--mono);font-size:12px;color:var(--ink-dim);white-space:pre-wrap}.preview-frame{flex:1 1;width:100%;border:0;background:#fff}.preview-wrap{flex:1 1;display:flex;flex-direction:column;min-height:0}.preview-canvas{flex:1 1;overflow:auto;background:#fff;color:#111;padding:16px}.preview-error{padding:10px 16px;font-family:var(--mono);font-size:12px;color:var(--fail)}.preview-error.muted,.preview-props{color:var(--ink-faint)}.preview-props{padding:4px 16px;border-top:1px solid var(--line);font-family:var(--mono);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.samples-list{padding-left:20px;margin:8px 0}.samples-list>li{margin:8px 0}.samples-list ul{padding-left:18px;margin:4px 0}.samples-list li{margin:3px 0}.case-props{font-family:var(--mono);font-size:12px;color:var(--ink-faint);margin:2px 0}@media (max-width:760px){main:has(>.left){flex-direction:column}.left{width:100%!important;min-width:0;max-height:36vh;flex-shrink:0;border-right:none;border-bottom:1px solid var(--line);padding:14px 16px}.divider-x{display:none}.left.collapsed{width:100%!important;height:38px;max-height:38px;padding:0}.left.collapsed .rail{writing-mode:horizontal-tb;height:38px}}.auth-card.landing{max-width:440px;text-align:left}.auth-card .kicker{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--amber);margin-bottom:8px}.admin{flex:1 1;overflow:auto;padding:32px 40px;display:flex;flex-direction:column}.admin>.site-footer{margin:auto -40px -32px}.admin>:has(+.site-footer){margin-bottom:36px}.admin>*{flex-shrink:0}.admin-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.admin-head h1{margin:0;font-size:24px}.admin h2{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-dim);margin:28px 0 8px}table.grid{border-collapse:collapse;width:100%;font-size:14px}table.grid td,table.grid th{border:1px solid var(--line);padding:8px 12px;text-align:left}table.grid th{color:var(--ink);background:var(--panel-2);font-weight:600;font-size:13px}table.grid td{color:var(--ink-dim)}table.grid td.mono{font-family:var(--mono);font-size:13px;color:var(--ink);word-break:break-all}.muted{color:var(--ink-faint)}.grant-form{display:flex;gap:var(--form-gap);align-items:center;margin:6px 0 4px;flex-wrap:wrap}.grant-form input{font-family:var(--mono);font-size:13px;border-radius:6px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink);min-width:260px}.grant-form input,.grant-form select{padding:0 11px;height:var(--control-h)}.grant-form input[type=file]{min-width:auto;padding:7px 11px;height:auto}.btn.danger{color:var(--fail);border-color:color-mix(in srgb,var(--fail) 45%,var(--line))}.btn.danger:hover{background:color-mix(in srgb,var(--fail) 14%,transparent);color:var(--fail)}.row-actions{display:flex;gap:8px;align-items:center}.s3-path{display:flex;flex-direction:column;gap:5px;padding:12px 16px}.s3-path-label{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-dim)}.s3-path-value{font-family:var(--mono);font-size:13px;color:var(--teal);background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:7px 10px;word-break:break-all}.tests-grid .u-row{cursor:pointer}.tests-grid .u-row:hover{background:color-mix(in srgb,var(--teal) 7%,transparent)}.batch-form{align-items:flex-start}.batch-form textarea{font-family:var(--mono);font-size:13px;padding:9px 11px;border-radius:6px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink);min-width:320px;resize:vertical}.batch-form textarea:focus{outline:2px solid var(--amber)}.dash-actions{display:flex;align-items:center;gap:8px}.notif,.notif-trigger{position:relative}.notif-trigger{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:9px;border:1px solid color-mix(in srgb,var(--media) 35%,var(--line));background:var(--panel-2);color:var(--media);cursor:pointer}.notif-trigger:hover{filter:brightness(1.12);border-color:color-mix(in srgb,var(--media) 55%,var(--line))}.notif-badge{position:absolute;top:-5px;right:-5px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:var(--fail);color:#fff;font-size:10.5px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--panel)}.notif-pop{position:absolute;right:0;top:calc(100% + 8px);width:320px;max-height:380px;overflow-y:auto;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 40px rgba(0,0,0,.4);z-index:60;padding:6px}.notif-pop-head{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-dim);padding:8px 10px 6px}.notif-empty{margin:0;padding:10px;font-size:13px;color:var(--ink-faint)}.notif-item{display:flex;align-items:flex-start;gap:9px;padding:9px 10px;border-radius:8px;text-decoration:none;color:var(--ink);font-size:13.5px;line-height:1.4}.notif-item:hover{background:var(--panel)}.notif-dot{width:8px;height:8px;border-radius:50%;background:var(--teal);margin-top:6px;flex-shrink:0}.notif-dot.overdue{background:var(--fail)}.notif-text{flex:1 1}.grid-controls{justify-content:space-between;gap:14px;margin:6px 0 10px}.grid-controls,.grid-left{display:flex;align-items:center;flex-wrap:wrap}.grid-left{gap:12px}.grid-search{display:flex;gap:8px;align-items:center}.grid-search input{font-family:var(--mono);font-size:13px;padding:0 30px 0 11px;height:var(--control-h);border-radius:6px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink);min-width:240px}.grid-search input:focus{outline:2px solid var(--amber)}.grid-search .search-wrap{position:relative;display:inline-flex;align-items:center}.search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--ink-dim);font-size:16px;line-height:1;padding:2px 5px;cursor:pointer;border-radius:4px}.search-clear:hover{color:var(--ink);background:var(--panel)}.combo{position:relative}.combo-trigger{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:13px;height:var(--control-h);padding:0 11px;border-radius:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink);cursor:pointer;min-width:200px;justify-content:space-between}.combo-trigger:focus{outline:2px solid var(--amber)}.combo-caret{color:var(--ink-dim);font-size:11px}.combo-list{position:absolute;top:calc(100% + 4px);left:0;z-index:40;min-width:280px;max-width:380px;max-height:300px;overflow-y:auto;overflow-x:hidden;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:4px;box-shadow:0 10px 28px rgba(0,0,0,.35)}.combo-filter{width:100%;font-family:var(--mono);font-size:13px;height:32px;padding:0 10px;margin-bottom:4px;border-radius:6px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink)}.combo-filter:focus{outline:2px solid var(--amber)}.combo-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:0;background:transparent;color:var(--ink);font-size:13px;padding:8px 10px;border-radius:6px;cursor:pointer}.combo-item:hover{background:var(--panel-2)}.combo-item.active{background:color-mix(in srgb,var(--teal) 14%,transparent)}.combo-item input[type=checkbox]{accent-color:var(--teal)}.combo-name{flex:1 1;min-width:0}.combo-name,.combo-slug{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.combo-slug{font-size:11px;color:var(--ink-faint);max-width:45%}.combo-all{border-bottom:1px solid var(--line);border-radius:0;margin-bottom:4px}.company-link{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--ink-faint);text-decoration-color:var(--ink-faint);text-underline-offset:3px}.company-link:hover{color:var(--teal);-webkit-text-decoration-color:var(--teal);text-decoration-color:var(--teal)}.req-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:2000;background:transparent;pointer-events:none}.req-progress-bar{height:100%;background:linear-gradient(90deg,var(--teal),var(--amber));border-radius:0 2px 2px 0;transition:width .25s ease;box-shadow:0 0 10px color-mix(in srgb,var(--teal) 60%,transparent)}.req-overlay{position:fixed;inset:0;z-index:1990;display:flex;align-items:center;justify-content:center;background:rgba(7,12,20,.38);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);pointer-events:none;animation:reqfade .2s ease}@keyframes reqfade{0%{opacity:0}to{opacity:1}}.req-ninja{width:150px;pointer-events:none;filter:drop-shadow(0 12px 24px rgba(0,0,0,.5))}.req-ninja-svg{height:170px;display:flex;justify-content:center}.req-ninja-svg svg{height:100%;width:auto}.req-balls{position:relative;height:34px;margin-bottom:-6px;z-index:1}.req-ball{position:absolute;left:50%;width:12px;height:12px;border-radius:50%;animation:juggle .9s ease-in-out infinite}.req-ball:first-child{background:var(--teal);animation-delay:0s}.req-ball:nth-child(2){background:var(--amber);animation-delay:-.3s}.req-ball:nth-child(3){background:#d6394b;animation-delay:-.6s}@keyframes juggle{0%{transform:translate(-26px,22px)}25%{transform:translate(-2px,-8px)}50%{transform:translate(22px,22px)}75%{transform:translate(-2px,34px)}to{transform:translate(-26px,22px)}}.user-pick{max-height:220px;overflow-y:auto;border:1px solid var(--line);border-radius:8px;padding:4px;margin-top:6px;background:var(--panel)}.grid-paging{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--ink-dim)}.grid-size{display:inline-flex;align-items:center;gap:6px}.grid-size select{height:32px;padding:0 8px}.grid-range{white-space:nowrap}.grid-page,.grid-range{font-family:var(--mono)}.grid-page{min-width:46px;text-align:center}.grid-paging .btn{min-width:34px;padding:0 10px}.grid-paging .btn:disabled{opacity:.4;cursor:not-allowed}.sort-link{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:2px;cursor:pointer}.sort-link.active,.sort-link:hover{color:var(--ink)}.sort-arrow{font-size:9px;color:var(--teal)}.form-error{color:var(--fail);font-size:13px;margin:6px 0;padding-left:18px}ul.form-error{list-style:none;padding-left:0}ul.form-error li{margin:2px 0}.form-ok{color:var(--pass);font-size:13px;margin:6px 0}.admin-modal{position:relative;width:100%;max-width:520px;max-height:88vh;overflow-y:auto;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:26px 28px;display:flex;flex-direction:column;min-height:380px}.admin-modal>form{flex:1 1;display:flex;flex-direction:column;min-height:0}.admin-modal.confirm-modal{min-height:0}.admin-form{gap:16px}.admin-form,.admin-form .field{display:flex;flex-direction:column}.admin-form .field{gap:6px}.admin-form .field-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.field-check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink);cursor:pointer}.field-check input{width:15px;height:15px;accent-color:var(--teal)}.preview-modal{position:relative;width:94vw;height:90vh;max-width:1400px;background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 30px 80px -28px rgba(0,0,0,.85)}.preview-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 14px;border-bottom:1px solid var(--line);flex-shrink:0}.preview-title{font-family:var(--mono);font-size:13px;color:var(--ink-dim)}.preview-head .otp-close{position:static}.preview-ide{flex:1 1;min-height:0;display:flex;flex-direction:column}.preview-ide .ide{flex:1 1;min-height:0}.admin-form input:not([type=checkbox]):not([type=radio]):not([type=file]){font-family:var(--mono);font-size:13px;padding:0 11px;height:var(--control-h);border-radius:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink)}.admin-form input:focus{outline:2px solid var(--amber)}.admin-form input[readonly]{opacity:.7;cursor:not-allowed}.field-hint{font-size:12.5px;color:var(--ink-faint)}.admin-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.admin-form input[type=email],.admin-form select{height:var(--control-h);padding:0 11px}.admin-form input[type=email],.admin-form select,.admin-form textarea{font-family:var(--mono);font-size:13px;border-radius:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink)}.admin-form textarea{padding:9px 11px;resize:vertical;min-height:96px;line-height:1.5}.admin-form input[type=email]:focus,.admin-form select:focus,.admin-form textarea:focus{outline:2px solid var(--amber)}.admin-form input[type=file]{font-size:12.5px;color:var(--ink-dim)}.admin-form code{font-family:var(--mono);font-size:12px;background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:0 4px;color:var(--ink)}.ex-picker{display:flex;flex-direction:column;gap:2px;max-height:200px;overflow-y:auto;border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:var(--panel-2)}.ex-option{display:flex;align-items:center;gap:9px;font-size:13px;padding:5px 4px;border-radius:6px;cursor:pointer}.ex-option:hover{background:var(--panel)}.ex-option input{width:15px;height:15px;accent-color:var(--teal);flex-shrink:0}.pts-input{width:70px;height:30px;font-family:var(--mono);font-size:13px;padding:0 8px;border-radius:6px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink);flex-shrink:0}.pts-input:focus{outline:2px solid var(--amber)}.ex-option .pts-input{width:70px;height:28px}.ex-check{gap:9px;flex:1 1;min-width:0;cursor:pointer}.ex-check,.pts-form{display:flex;align-items:center}.pts-form{gap:8px}.pts-form .btn{height:30px;padding:0 12px;font-size:12.5px}.dialog-step2{margin-top:2px}.pts-list{display:flex;flex-direction:column;gap:8px;max-height:340px;overflow-y:auto;border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:var(--panel-2)}.pts-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.pts-row-title{font-size:13.5px;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1}.pts-field{display:flex;flex-direction:column;gap:3px;flex-shrink:0}.pts-field .field-hint{font-size:11px}.sim-banner{display:flex;align-items:center;gap:6px;padding:8px 18px;background:color-mix(in srgb,var(--media) 14%,var(--panel));border-bottom:1px solid color-mix(in srgb,var(--media) 45%,var(--line));font-family:var(--mono);font-size:12.5px;flex-shrink:0}.sim-banner,.sim-banner b{color:var(--ink)}.sim-banner-exit{margin-left:auto;color:var(--teal);text-decoration:none;font-weight:700}.sim-banner-exit:hover{text-decoration:underline}.otp-modal.sim-modal{max-width:840px;width:min(92vw,840px)}.sim-rows{display:flex;flex-direction:column;gap:12px;max-height:min(62vh,600px);overflow-y:auto;margin:14px 0;border:1px solid var(--line);border-radius:8px;padding:14px 16px;background:var(--panel-2)}.sim-rows>div{border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent);padding-bottom:10px}.sim-rows>div:last-child{border-bottom:none;padding-bottom:0}.sim-row{display:flex;align-items:baseline;gap:10px;font-size:13px}.sim-mark{font-family:var(--mono);font-weight:700;min-width:16px}.sim-row.ok .sim-mark{color:var(--pass)}.sim-row.bad .sim-mark{color:var(--fail)}.sim-title{flex:1 1;min-width:0;color:var(--ink);line-height:1.45}.sim-detail{font-family:var(--mono);font-size:11.5px;color:var(--ink-faint);flex-shrink:0}.rev-note{font-size:12.5px;line-height:1.5;color:var(--ink-dim);margin:2px 0 6px 26px}.rev-note b{color:var(--ink)}.rev-ref{color:var(--media)}.invite-links{display:flex;flex-direction:column;gap:6px;max-height:240px;overflow-y:auto;border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:var(--panel-2)}.invite-link-row{display:flex;align-items:center;gap:10px}.invite-link-email{flex:0 0 220px;min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:12px;color:var(--ink-dim)}.invite-link-url{flex:1 1;min-width:0;font-size:11.5px;height:28px;padding:0 8px;border-radius:6px;border:1px solid var(--line);background:var(--panel);color:var(--ink)}.tag-row{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px}.tag-chip{font-family:var(--mono);font-size:10px;letter-spacing:.03em;padding:1px 7px;border-radius:20px;border:1px solid color-mix(in srgb,var(--teal) 35%,var(--line));color:var(--teal);background:color-mix(in srgb,var(--teal) 7%,transparent);white-space:nowrap}input[type=file]{font-family:var(--mono);font-size:12.5px;color:var(--ink-dim)}input[type=file]::-webkit-file-upload-button{font-family:var(--mono);font-size:13px;line-height:1;border-radius:6px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink);padding:9px 14px;margin-right:12px;cursor:pointer;-webkit-transition:border-color .15s;transition:border-color .15s}input[type=file]::file-selector-button{font-family:var(--mono);font-size:13px;line-height:1;border-radius:6px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink);padding:9px 14px;margin-right:12px;cursor:pointer;transition:border-color .15s}input[type=file]::-webkit-file-upload-button:hover{border-color:var(--ink-faint)}input[type=file]::file-selector-button:hover{border-color:var(--ink-faint)}.file-pick{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.file-pick .btn{cursor:pointer}.file-hidden{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%)}.file-names{font-family:var(--mono);font-size:12px;color:var(--ink-dim);min-width:0;overflow:hidden;text-overflow:ellipsis}.dp-wrap{position:relative}.dp-trigger{display:flex;align-items:center;gap:8px;width:100%;height:var(--control-h);padding:0 12px;border-radius:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink);font-family:var(--mono);font-size:13.5px;cursor:pointer;text-align:left}.dp-trigger:hover{border-color:var(--ink-faint)}.dp-trigger.empty .dp-label{color:var(--ink-faint)}.dp-label{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dp-clear{color:var(--ink-faint);font-size:16px;line-height:1;padding:2px 4px;border-radius:4px}.dp-clear:hover{color:var(--fail)}.dp-pop{position:absolute;top:calc(100% + 6px);left:0;z-index:40;width:276px;background:color-mix(in srgb,var(--ink) 7%,var(--panel-2));border:1px solid color-mix(in srgb,var(--ink) 18%,var(--line));border-radius:10px;padding:12px;box-shadow:0 12px 32px rgba(0,0,0,.55)}.dp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.dp-month{font-size:13.5px;font-weight:700;color:var(--ink)}.dp-nav{width:28px;height:28px;border-radius:6px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink-dim);cursor:pointer;font-size:15px;line-height:1}.dp-nav:hover{border-color:var(--teal);color:var(--ink)}.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:2px;gap:2px}.dp-wd{font-size:10.5px;text-transform:uppercase;color:var(--ink-dim);text-align:center;padding:4px 0}.dp-day,.dp-wd{font-family:var(--mono)}.dp-day{height:32px;border:1px solid transparent;border-radius:6px;background:none;color:var(--ink);font-size:13.5px;font-weight:600;cursor:pointer}.dp-day:hover{background:color-mix(in srgb,var(--ink) 14%,var(--panel-2));border-color:var(--ink-faint)}.dp-day.today{border-color:var(--teal);color:var(--teal)}.dp-day.selected{background:linear-gradient(135deg,var(--teal),var(--teal-deep));color:#04211a;font-weight:800}.dp-foot{display:flex;justify-content:space-between;margin-top:10px;padding-top:8px;border-top:1px solid var(--line)}.dp-link{background:none;border:none;color:var(--teal);font-family:var(--mono);font-size:12px;cursor:pointer;padding:2px 4px}.dp-link:hover{text-decoration:underline}.pts-head{position:-webkit-sticky;position:sticky;top:-10px;background:var(--panel-2);padding:4px 0;z-index:1}.pts-col{width:70px;flex-shrink:0;font-size:11px;text-align:center}table.grid form{display:inline}.btn.lg{padding:0 22px;font-size:15px}.otp-backdrop{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;background:color-mix(in srgb,#000 68%,transparent);animation:otpFade .18s ease}@keyframes otpFade{0%{opacity:0}to{opacity:1}}.otp-modal{position:relative;width:100%;max-width:400px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:26px 26px 22px;box-shadow:0 30px 80px -28px rgba(0,0,0,.8);animation:otpPop .2s ease}@keyframes otpPop{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.otp-close{position:absolute;top:12px;right:14px;background:none;border:none;color:var(--ink-faint);font-size:22px;line-height:1;cursor:pointer}.otp-close:hover,.otp-title{color:var(--ink)}.otp-title{margin:0 0 4px;font-size:20px}.otp-sub{margin:0 0 18px;font-size:13.5px;color:var(--ink-dim)}.otp-form{display:flex;flex-direction:column;gap:var(--form-gap)}.otp-label{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim)}.otp-form input{font-family:var(--mono);font-size:14px;padding:0 12px;height:var(--control-h);border-radius:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink)}.otp-form input:focus{outline:2px solid var(--amber)}.otp-form .btn{margin-top:2px}.otp-box:disabled,.otp-form .btn:disabled{opacity:.55;cursor:not-allowed}.otp-code-block{margin-top:18px;display:flex;flex-direction:column;gap:8px}.otp-boxes{display:grid;grid-template-columns:repeat(8,1fr);grid-gap:7px;gap:7px}.otp-box{width:100%;aspect-ratio:3/4;text-align:center;font-family:var(--mono);font-size:18px;font-weight:600;text-transform:uppercase;border-radius:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink);padding:0}.otp-box:focus{outline:2px solid var(--amber);border-color:var(--amber)}.otp-error{color:var(--fail)}.otp-error,.otp-info{margin:14px 0 0;font-size:13px}.otp-info{color:var(--ink-dim)}@media (max-width:440px){.otp-box{font-size:15px}.otp-boxes{gap:5px}}.modal-actions{display:flex;justify-content:flex-end;gap:var(--form-gap);margin-top:auto;padding-top:16px;border-top:1px solid var(--line)}.dash-nav{display:flex;align-items:center;gap:14px;padding:8px 56px;background:rgba(13,27,42,.55);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);flex-shrink:0}.dash-brand{font-family:var(--mono);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);text-decoration:none}.dash-brand b{font-weight:600}.dash-brand b,.dash-brand:hover{color:var(--ink)}.dash-brand{display:flex;align-items:center}.dash-logo{height:120px;width:auto;display:block}.user-menu{position:relative}.user-menu-trigger{display:inline-flex;align-items:center;gap:8px;font-family:var(--sans);font-size:13px;color:var(--ink);background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:5px 10px 5px 6px;cursor:pointer}.user-menu-trigger:hover{border-color:var(--ink-faint)}.user-avatar{width:26px;height:26px;border-radius:50%;background:var(--amber);color:var(--on-teal);font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-name{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-caret{color:var(--ink-faint);font-size:11px;transition:transform .15s}.user-caret.open{transform:rotate(180deg)}.user-menu-pop{position:absolute;right:0;top:calc(100% + 6px);min-width:200px;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:6px;box-shadow:0 18px 44px -18px rgba(0,0,0,.75);z-index:50;display:flex;flex-direction:column;gap:2px}.user-menu-item{display:block;width:100%;text-align:left;background:none;border:none;border-radius:6px;padding:9px 11px;font-family:var(--sans);font-size:13.5px;color:var(--ink);cursor:pointer;text-decoration:none}.user-menu-item:hover{background:var(--panel)}.user-menu-item.danger{color:var(--fail)}.user-menu-item.danger:hover{background:color-mix(in srgb,var(--fail) 14%,transparent)}.member-dash{flex:1 1;overflow:auto;padding:32px 40px}.member-dash h1{margin:0 0 20px;font-size:24px}.test-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:16px;gap:16px}.test-card{display:flex;flex-direction:column;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px 20px}.test-card.completed{border-color:color-mix(in srgb,var(--pass) 35%,var(--line))}.test-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.test-card-head h2{margin:0;font-size:16px;color:var(--ink);line-height:1.3}.test-card .test-meta{margin:0;font-size:13px;color:var(--ink-dim);font-family:var(--mono)}.test-card .btn{margin-top:4px;align-self:flex-start}.status-pill{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;padding:3px 9px;border-radius:20px;border:1px solid var(--line);color:var(--ink-dim);white-space:nowrap;flex-shrink:0}.status-pill.in_progress{color:var(--media);border-color:color-mix(in srgb,var(--media) 40%,var(--line))}.status-pill.completed{color:var(--pass);border-color:color-mix(in srgb,var(--pass) 40%,var(--line))}.status-pill.cancelled{color:var(--fail);border-color:color-mix(in srgb,var(--fail) 40%,var(--line))}.member-shell{flex:1 1;display:flex;flex-direction:column;min-height:0;overflow-y:auto}.member-body{display:flex;flex:1 0 auto}.member-side{width:210px;flex-shrink:0;display:flex;flex-direction:column;gap:2px;padding:16px 12px;background:var(--panel);border-right:1px solid var(--line);overflow-y:auto}.member-side-item{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:8px;font-size:14px;color:var(--ink-dim);text-decoration:none}.member-side-item:hover{background:var(--panel-2);color:var(--ink)}.member-side-item.active{background:color-mix(in srgb,var(--teal) 14%,transparent);color:var(--ink)}.member-side-item.active svg{color:var(--teal)}.member-main{flex:1 1;overflow-y:auto;padding:40px 52px}.member-page{max-width:1080px;margin:0 auto;position:relative}.member-greet h1{margin:0;font-size:30px}.member-sub{margin:8px 0 0;font-size:15px;color:var(--ink-dim);gap:6px}.member-sub,.ninja-banner{display:flex;align-items:center}.ninja-banner{gap:36px;margin-top:24px;padding:30px 44px;border-radius:20px;border:1px solid color-mix(in srgb,var(--teal) 28%,var(--line));background:radial-gradient(120% 160% at 12% 20%,#143049 0,#0D1B2A 55%,#0b1320 100%);overflow:hidden;position:relative}.ninja-figure{flex-shrink:0;width:200px;height:230px}.ninja-pet{position:absolute;left:0;top:0;z-index:4;pointer-events:none;opacity:0;transition:opacity .22s ease;will-change:left,top,opacity}.ninja-clip{position:absolute;inset:0;-webkit-clip-path:inset(0 -9999px);clip-path:inset(0 -9999px);z-index:1}.ninja-smoke-stage{z-index:3;pointer-events:none}.ninja-smoke-stage,.ninja-stage{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:var(--ninja-size,205px);height:var(--ninja-size,205px)}.ninja-pet:not(.at-home) .ninja-smoke-stage,.ninja-pet:not(.at-home) .ninja-stage{left:auto;right:-52px;top:0;bottom:auto;transform:none}.nj-pose{opacity:0;transform-box:view-box;transform-origin:220px 250px}.ninja-pet:not(.at-home) .ninja-stage{transform-origin:58% 82%}.ninja-pet.trick-kata .ninja-main .nj-folded,.ninja-pet.trick-kata .ninja-main .nj-sheath{opacity:0}.ninja-pet.trick-kata .ninja-main .nj-pose0{animation:njSwing 2.7s ease-in-out infinite}.ninja-pet.trick-kata .ninja-main .nj-pose1{animation:njSwing 2.7s ease-in-out infinite;animation-delay:.9s}.ninja-pet.trick-kata .ninja-main .nj-pose2{animation:njSwing 2.7s ease-in-out infinite;animation-delay:1.8s}@keyframes njSwing{0%{opacity:0;transform:scale(.84) rotate(-6deg)}9%{opacity:1;transform:scale(1.04) rotate(4deg)}20%{transform:scale(1) rotate(0)}30%{opacity:1;transform:scale(1) rotate(0)}40%{opacity:0;transform:scale(.97) rotate(5deg)}to{opacity:0}}.ninja-pet.trick-kata .ninja-stage{animation:njKata 2s ease-in-out infinite}@keyframes njKata{0%,to{transform:rotate(-3.5deg) translateY(0)}50%{transform:rotate(3.5deg) translateY(-4px)}}.ninja-pet.trick-jump .ninja-stage{animation:njJump .62s ease-in-out 4}@keyframes njJump{0%,to{transform:translateY(0) scaleY(1)}18%{transform:translateY(0) scaleY(.9)}55%{transform:translateY(-26px) scaleY(1.03)}}.ninja-pet.trick-lean .ninja-stage{animation:njLean 1.15s ease-in-out 2}@keyframes njLean{0%,to{transform:rotate(0)}25%{transform:rotate(-13deg)}75%{transform:rotate(13deg)}}.ninja-pet .ninja-main{position:relative;z-index:2;height:100%;animation:petBob 4.2s ease-in-out infinite}.ninja-pet .ninja-svg{height:100%}.ninja-pet .ninja-svg svg{height:100%;width:auto;display:block}@keyframes petBob{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.ninja-clones{position:absolute;left:0;top:0;z-index:3;pointer-events:none;opacity:0;transition:opacity .35s ease;-webkit-clip-path:inset(0 -9999px);clip-path:inset(0 -9999px)}.ninja-clone-stage{width:var(--ninja-size,205px);height:var(--ninja-size,205px)}.ninja-clone-stage,.ninja-clones .hc{position:absolute;left:50%;bottom:0;transform:translateX(-50%)}.ninja-clones .hc{height:100%;opacity:0;filter:drop-shadow(0 0 8px rgba(29,186,156,.55));transition:transform .55s ease,opacity .55s ease}.ninja-clones .hc svg{height:100%;width:auto;display:block}.ninja-clones.clones-out{opacity:1}.ninja-clones.clones-out .hc-l{transform:translateX(calc(-50% - 52px));opacity:.6}.ninja-clones.clones-out .hc-r{transform:translateX(calc(-50% + 52px));opacity:.6}.ninja-clones.clones-merge{opacity:1}.ninja-clones.clones-merge .hc{transform:translateX(-50%);opacity:0}.ninja-smoke{left:50%;top:48%;width:135%;height:135%;transform:translate(-50%,-50%) scale(.4);background:radial-gradient(circle at 50% 55%,rgba(214,219,228,.95) 0,rgba(182,188,202,.78) 40%,rgba(150,156,172,.35) 62%,transparent 76%);filter:blur(7px);opacity:0;z-index:3;pointer-events:none}.ninja-smoke,.ninja-smoke .smk{position:absolute;border-radius:50%}.ninja-smoke .smk{display:block}.ninja-smoke .smk1{left:16%;top:28%;width:46%;height:46%;background:rgba(228,231,239,.9);filter:blur(6px)}.ninja-smoke .smk2{left:42%;top:16%;width:52%;height:52%;background:rgba(198,204,216,.82);filter:blur(8px)}.ninja-smoke .smk3{left:28%;top:46%;width:54%;height:44%;background:rgba(186,192,206,.8);filter:blur(9px)}.ninja-pet.puff .ninja-smoke{animation:ninjaPuff .76s ease-out}@keyframes ninjaPuff{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}25%{opacity:.95;transform:translate(-50%,-50%) scale(1)}55%{opacity:.7;transform:translate(-50%,-50%) scale(1.4)}to{opacity:0;transform:translate(-50%,-50%) scale(1.9)}}@media (prefers-reduced-motion:reduce){.ninja-clones .hc,.ninja-pet .ninja-main,.ninja-pet .ninja-stage,.ninja-pet.puff .ninja-smoke{animation:none;transition:none}}.ninja-msg{flex:1 1;display:flex;flex-direction:column;gap:10px;align-items:flex-start}.ninja-msg-kicker{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--teal)}.ninja-msg-text{margin:0;font-size:24px;line-height:1.35;color:var(--ink);font-weight:700;max-width:46ch}.ninja-msg .btn{margin-top:8px}.due-desc{margin:5px 0 0;font-size:13.5px;color:var(--ink-dim);line-height:1.5}@media (max-width:680px){.ninja-banner{padding:20px}.ninja-figure{width:110px;height:136px}.ninja-msg-text{font-size:17px}}.stat-cards{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:18px;gap:18px;margin:28px 0 10px}.stat-card{display:flex;flex-direction:column;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:26px 28px;min-height:118px;justify-content:center}.stat-lbl{font-size:14px;color:var(--ink-dim)}.stat-num{font-family:var(--display);font-size:46px;font-weight:800;line-height:1}.stat-num.in_progress{color:var(--media)}.stat-num.completed{color:var(--pass)}.member-section{margin-top:40px}.member-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.member-section h2{font-size:17px;margin:0 0 16px;color:var(--ink)}.member-section-head h2{margin:0}.section-link{font-size:13px;color:var(--teal);text-decoration:none}.section-link:hover{text-decoration:underline}.due-list,.history-list,.progress-list{display:flex;flex-direction:column;gap:10px}.due-list,.progress-list{gap:14px}.due-card{justify-content:space-between;gap:16px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px 24px}.due-card,.due-titlerow{display:flex;align-items:center}.due-titlerow{gap:10px}.due-info h3{margin:0;font-size:16px;color:var(--ink)}.due-meta{margin:5px 0 0;font-size:13px;color:var(--ink-dim);font-family:var(--mono)}.progress-card{display:flex;flex-direction:column;gap:14px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px 24px}.progress-bar{height:10px}.progress-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.progress-row h3{margin:0;font-size:15px;color:var(--ink)}.progress-time{font-size:12px;color:var(--ink-faint);font-family:var(--mono);white-space:nowrap}.progress-bar{flex:1 1;height:8px;border-radius:999px;background:var(--panel-2);overflow:hidden}.progress-bar>span{display:block;height:100%;background:linear-gradient(90deg,var(--teal),var(--teal-deep))}.history-row{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 20px;text-decoration:none}.history-row:hover{border-color:var(--ink-faint)}.history-title{font-size:14px;color:var(--ink)}.history-meta{font-size:12.5px;color:var(--ink-dim);font-family:var(--mono);white-space:nowrap}.profile-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:32px 36px;margin-top:22px}.profile-head{gap:22px}.profile-avatar,.profile-head{display:flex;align-items:center}.profile-avatar{width:76px;height:76px;flex-shrink:0;border-radius:50%;justify-content:center;font-family:var(--display);font-weight:800;font-size:28px;color:var(--on-teal);background:linear-gradient(135deg,var(--teal),var(--teal-deep))}.profile-id{flex:1 1;min-width:0}.profile-name{margin:0;font-size:26px;color:var(--ink)}.profile-sub{margin:5px 0 0;font-size:15px;color:var(--ink-dim)}.verified-badge{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--pass);background:color-mix(in srgb,var(--pass) 14%,transparent);border:1px solid color-mix(in srgb,var(--pass) 35%,var(--line));border-radius:999px;padding:7px 14px;white-space:nowrap}.profile-rows{margin-top:26px;border-top:1px solid var(--line)}.profile-actions{display:flex;justify-content:flex-end;margin-top:22px}.profile-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:19px 6px;border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent)}.profile-row:last-child{border-bottom:none}.pr-label{display:flex;align-items:center;gap:12px;font-size:15px;color:var(--ink-dim)}.pr-value{font-size:15px;color:var(--ink);text-align:right}.pr-value.muted{color:var(--ink-faint)}.hist-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.chip{font-size:13px;text-decoration:none;border-radius:999px;padding:6px 13px;background:var(--panel)}.chip:hover{color:var(--ink);border-color:var(--ink-faint)}.chip.active{color:var(--ink);background:color-mix(in srgb,var(--teal) 16%,transparent);border-color:color-mix(in srgb,var(--teal) 40%,var(--line))}.type-tag{font-weight:600}.type-tag.codigo{color:#5b9bf5}.type-tag.aptitud{color:var(--media)}.type-tag.danger{color:var(--fail)}details.hist-item.expired .hd-day,details.hist-item.expired .hist-main h3{opacity:.62}.hist-list{display:flex;flex-direction:column;margin-top:14px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--panel)}.hist-row{display:flex;align-items:center;gap:18px;padding:15px 20px;border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent)}.hist-row:last-child{border-bottom:none}.hist-date{display:flex;flex-direction:column;align-items:center;width:42px;flex-shrink:0;line-height:1}.hd-day{font-family:var(--display);font-weight:800;font-size:22px;color:var(--ink)}.hd-mon{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);margin-top:2px}.hist-main{flex:1 1;min-width:0}.hist-main h3{margin:0;font-size:15px;color:var(--ink)}.hist-sub{margin:4px 0 0;font-size:13px;color:var(--ink-dim);font-family:var(--mono)}.hist-row .btn{flex-shrink:0}.practice-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:14px;gap:14px}.practice-card{display:flex;flex-direction:column;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 18px}.practice-head{display:flex;align-items:center;gap:9px;color:var(--teal)}.practice-head h3{margin:0;font-size:15px;color:var(--ink)}.practice-meta{margin:0;font-size:13px;color:var(--ink-dim);font-family:var(--mono)}.practice-card .btn{width:100%;margin-top:2px}.practice-card form{display:block}.asig-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.asig-list{display:flex;flex-direction:column;margin-top:14px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--panel)}.asig-row{display:flex;align-items:center;gap:14px;padding:15px 18px;border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent)}.asig-row:last-child{border-bottom:none}.asig-ico{width:40px;height:40px;flex-shrink:0;border-radius:10px;display:flex;align-items:center;justify-content:center}.asig-ico.in_progress,.asig-ico.pendiente{color:#5b9bf5;background:color-mix(in srgb,#5b9bf5 16%,transparent)}.asig-ico.vencido{color:var(--fail);background:color-mix(in srgb,var(--fail) 16%,transparent)}.asig-ico.completed{color:var(--pass);background:color-mix(in srgb,var(--pass) 16%,transparent)}.asig-ico.cancelled{color:var(--fail);background:color-mix(in srgb,var(--fail) 14%,transparent)}.asig-main{flex:1 1;min-width:0}.asig-main h3{margin:0;font-size:15px;color:var(--ink)}.asig-meta{margin:5px 0 0;font-size:13px;color:var(--ink-dim);font-family:var(--mono)}.asig-meta.warn{color:var(--media)}.asig-meta.danger{color:var(--fail)}.asig-progress{display:flex;align-items:center;gap:10px;margin-top:8px}.asig-progress .progress-bar{flex:1 1;max-width:240px}.asig-pct{font-size:12.5px;color:var(--ink-dim);font-family:var(--mono)}.asig-badge{font-size:12px;padding:5px 11px;border-radius:999px;white-space:nowrap;flex-shrink:0}.asig-badge.in_progress,.asig-badge.pendiente{color:#9cc4fb;background:color-mix(in srgb,#5b9bf5 16%,transparent)}.asig-badge.vencido{color:var(--fail);background:color-mix(in srgb,var(--fail) 15%,transparent)}.asig-badge.completed{color:var(--pass);background:color-mix(in srgb,var(--pass) 15%,transparent)}.asig-badge.cancelled{color:var(--fail);background:color-mix(in srgb,var(--fail) 15%,transparent)}.asig-row .btn{flex-shrink:0}.asig-row .btn:disabled{opacity:.5;cursor:not-allowed}@media (max-width:680px){.asig-badge{display:none}}details.asig-item,details.hist-item{border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent)}details.asig-item:last-child,details.hist-item:last-child{border-bottom:none}details.asig-item>summary.asig-row,details.hist-item>summary.hist-row{border-bottom:none;cursor:pointer;list-style:none}details.asig-item>summary::-webkit-details-marker,details.hist-item>summary::-webkit-details-marker{display:none}details.asig-item>summary:hover,details.hist-item>summary:hover{background:color-mix(in srgb,var(--ink) 4%,transparent)}.detail-toggle{cursor:pointer}.detail-toggle:after{content:"▾";margin-left:7px;font-size:10px;display:inline-block;transition:transform .15s}details[open] .detail-toggle:after{transform:rotate(180deg)}.row-detail{padding:0 18px 15px;display:flex;flex-direction:column;gap:7px;font-size:13px;color:var(--ink-dim);font-family:var(--mono)}.asig-item .row-detail{padding-left:72px}.hist-item .row-detail{padding-left:78px}.row-detail .rd-line b{color:var(--ink);font-weight:600;margin-right:6px}@media (max-width:680px){.member-body{flex-direction:column}.member-side{width:100%;flex-direction:row;gap:2px;padding:6px 8px;border-right:none;border-bottom:1px solid var(--line);overflow-x:auto;overflow-y:hidden}.member-side-item{flex:1 0 auto;flex-direction:column;gap:3px;padding:7px 9px;font-size:10.5px;justify-content:center;text-align:center;white-space:nowrap}.member-side-item svg{width:20px;height:20px}.member-main{padding:18px 14px 32px}.stat-cards{grid-template-columns:1fr}.asig-row{flex-wrap:wrap;row-gap:8px;padding:12px}.member-main table.grid{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.dash-nav{padding:6px 12px;gap:10px}.dash-logo{height:44px}.toolbar{flex-wrap:wrap;row-gap:6px;padding:8px 10px}.mc-flow{padding:12px 14px 6px}}.test-intro{flex:1 1;overflow:auto;padding:32px 40px;max-width:760px;width:100%;margin:0 auto}.back-link{font-family:var(--mono);font-size:12px;color:var(--ink-dim);text-decoration:none}.back-link:hover{color:var(--ink)}.test-intro h1{margin:12px 0 6px;font-size:26px}.intro-desc{color:var(--ink-dim);font-size:15px;line-height:1.6;margin:0 0 12px}.intro-meta{font-family:var(--mono);font-size:12px;color:var(--ink-faint);margin-bottom:18px}.test-intro .statement{color:var(--ink-dim);font-size:15px;line-height:1.7}.test-intro .statement h2{font-size:14px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink);margin:22px 0 8px}.test-intro .statement strong{color:var(--ink)}.test-intro .statement code{font-family:var(--mono);font-size:13px;background:var(--panel-2);border:1px solid var(--line);border-radius:5px;padding:1px 6px;color:var(--ink)}.test-intro .statement ul{padding-left:20px}.test-intro .statement li{margin:4px 0}.test-reco{margin-top:24px;border:1px solid color-mix(in srgb,var(--media) 35%,var(--line));border-radius:10px;padding:14px 18px;background:color-mix(in srgb,var(--media) 7%,transparent)}.test-reco h2{margin:0 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--media)}.test-reco ul{margin:0;padding-left:20px;color:var(--ink-dim);font-size:14px;line-height:1.6}.test-reco li{margin:5px 0}.test-reco b{color:var(--ink)}.test-reco.guide{border-color:var(--line);background:color-mix(in srgb,var(--ink) 3%,transparent)}.test-reco.guide h2{color:var(--ink)}.reco-intro{margin:0 0 12px;color:var(--ink-dim);font-size:14px}.reco-legend{display:flex;flex-direction:column;gap:12px;margin:0}.reco-item{display:flex;align-items:flex-start;gap:14px}.reco-key{flex-shrink:0;font-family:var(--mono);font-size:13px;line-height:1;height:var(--control-h);min-width:36px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:6px;background:var(--panel-2);color:var(--ink);white-space:nowrap}.reco-key.reco-primary{background:linear-gradient(135deg,var(--teal),var(--teal-deep));color:var(--on-teal);border-color:var(--teal);font-weight:700}.reco-key.reco-timer{font-weight:600;min-width:84px}.reco-caret{color:var(--ink-faint);font-size:10px}.reco-desc{font-size:14px;line-height:1.6;color:var(--ink-dim);padding-top:5px}.reco-desc b{color:var(--ink)}@media(max-width:640px){.reco-item{flex-direction:column;gap:5px}.reco-desc{padding-top:0}}.intro-actions{display:flex;align-items:center;gap:14px;margin-top:28px;flex-wrap:wrap}.finished-badge{font-family:var(--mono);font-size:14px;color:var(--pass);border:1px solid color-mix(in srgb,var(--pass) 40%,var(--line));border-radius:8px;padding:10px 16px;background:color-mix(in srgb,var(--pass) 8%,transparent)}.finished-badge.cancelled{color:var(--fail);border-color:color-mix(in srgb,var(--fail) 40%,var(--line));background:color-mix(in srgb,var(--fail) 8%,transparent)}.admin-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:4px 0 8px}.admin-tab{font-family:var(--mono);font-size:13.5px;color:var(--ink-dim);text-decoration:none;padding:9px 14px;border-bottom:2px solid transparent;margin-bottom:-1px}.admin-tab:hover{color:var(--ink)}.admin-tab.active{color:var(--ink);border-bottom-color:var(--amber)}.cell-sub{font-size:12px;color:var(--ink-faint);margin-top:2px}.memorize-stage{display:flex;flex-direction:column}.memorize-count{margin-left:auto;font-family:var(--mono);font-weight:700;font-size:22px;min-width:52px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid color-mix(in srgb,var(--media) 55%,var(--line));border-radius:10px;color:var(--media);background:color-mix(in srgb,var(--media) 10%,transparent)}.memorize-hint{font-family:var(--mono);font-size:12.5px;color:var(--ink-dim);margin:4px 0 18px}.memorize-body{font-size:20px;line-height:1.8;text-align:center;padding:34px 20px;border:1px dashed color-mix(in srgb,var(--teal) 45%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--teal) 5%,transparent)}.memorize-body strong{color:var(--ink);font-size:22px}.pts-row-all{background:color-mix(in srgb,var(--teal) 6%,transparent);border-bottom:1px dashed color-mix(in srgb,var(--teal) 40%,var(--line))}.pts-all-check{display:inline-flex;align-items:center;gap:8px;cursor:pointer;white-space:normal}.pts-input[readonly]{opacity:.5;pointer-events:none;background:var(--panel)}.company-add{margin-top:8px;font-family:var(--mono);font-size:12.5px;height:32px;padding:0 8px;border-radius:6px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink);max-width:280px}.team-new{display:flex;gap:8px;margin:6px 0 14px}.team-new select{font-size:12.5px;padding:0 8px;min-width:180px}.team-new input[type=text],.team-new select{font-family:var(--mono);height:var(--control-h);border-radius:6px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink)}.team-new input[type=text]{font-size:13px;padding:0 11px;min-width:280px}.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));grid-gap:14px;gap:14px;margin-bottom:20px}.team-card{display:flex;flex-direction:column;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 18px}.team-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.team-head h3{margin:0;font-size:15px}.team-add{display:flex;gap:8px}.team-add select{flex:1 1;min-width:0;font-family:var(--mono);font-size:12.5px;height:32px;padding:0 8px;border-radius:6px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink)}@media (max-width:680px){.team-grid{grid-template-columns:1fr}.team-new{flex-wrap:wrap}.team-new input[type=text]{min-width:0;flex:1 1 100%}}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-family:var(--mono);padding:3px 6px 3px 10px;border-radius:20px;border:1px solid var(--line);color:var(--ink-dim)}.chip.in_progress{color:var(--media);border-color:color-mix(in srgb,var(--media) 40%,var(--line))}.chip.completed{color:var(--pass);border-color:color-mix(in srgb,var(--pass) 40%,var(--line))}.chip-x{display:inline}.chip-x button{background:none;border:none;color:var(--ink-faint);cursor:pointer;font-size:14px;line-height:1;padding:0 2px}.chip-x button:hover{color:var(--fail)}.report-cards{display:flex;gap:14px;margin:6px 0 18px;flex-wrap:wrap}.report-card{display:flex;flex-direction:column;gap:2px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 22px;min-width:130px}.report-num{font-size:26px;font-weight:700;color:var(--ink)}.report-lbl{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-dim)}.report-dims{display:inline-flex;gap:2px;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:3px;margin:4px 0 16px}.report-dim{font-family:var(--mono);font-size:12.5px;color:var(--ink-dim);text-decoration:none;padding:7px 15px;border-radius:7px;transition:color .15s,background .15s}.report-dim:hover{color:var(--ink)}.report-dim.active{color:var(--on-teal);background:linear-gradient(135deg,var(--teal),var(--teal-deep));font-weight:700}.report-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));grid-gap:14px;gap:14px;margin:8px 0 22px}.chart-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px 20px;min-width:0}.chart-title{font-family:var(--display);font-size:14px;color:var(--ink);margin:0 0 2px}.chart-sub{font-size:11.5px;color:var(--ink-faint);margin:0 0 14px}.chart-empty{padding:24px 0;text-align:center}.hbar{display:flex;flex-direction:column;gap:9px}.hbar-row{display:grid;grid-template-columns:minmax(90px,150px) 1fr 46px;align-items:center;grid-gap:10px;gap:10px;font-size:12.5px}.hbar-label{color:var(--ink-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hbar-track{height:13px;background:var(--panel-2);border-radius:7px;overflow:hidden}.hbar-fill{display:block;height:100%;border-radius:7px;min-width:2px;transition:width .2s}.hbar-val{text-align:right;color:var(--ink);font-family:var(--mono);font-size:12px}.histo{display:flex;align-items:flex-end;gap:10px;height:170px;padding-top:8px}.histo-col{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px;height:100%}.histo-bar{width:100%;max-width:54px;border-radius:6px 6px 0 0;min-height:2px}.histo-n{color:var(--ink-dim);min-height:14px}.histo-n,.histo-x{font-family:var(--mono);font-size:11px}.histo-x{color:var(--ink-faint)}.donut-wrap{display:flex;flex-direction:column;align-items:center;gap:6px}.donut{width:150px;height:150px}.donut-center{fill:var(--ink);font-family:var(--display);font-size:22px;font-weight:700}.donut-center-sub{fill:var(--ink-faint);font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.chart-legend{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;font-size:11.5px;color:var(--ink-dim)}.chart-legend span{display:inline-flex;align-items:center;gap:6px}.chart-legend b{color:var(--ink);font-weight:600}.legend-dot{width:9px;height:9px;border-radius:2px;flex-shrink:0}.chart-note{font-size:11.5px;color:var(--ink-faint);margin:-8px 0 16px}.report-filters{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;margin:2px 0 16px}.report-filter{display:inline-flex;flex-direction:column;gap:5px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-dim);font-family:var(--mono)}.report-filter select{min-width:200px;max-width:320px}.report-head-row{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:14px}.report-head-row h2{margin:0}.report-head-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.report-head-actions .report-dims{margin:0}.site-footer{background:#081019;border-top:1px solid rgba(255,255,255,.07);padding:56px 56px 40px;font-family:Manrope,sans-serif;color:#9aa6bb}.sf-row{display:flex;flex-wrap:wrap;gap:40px;align-items:stretch}.sf-brand{flex:1 1 260px;max-width:340px}.sf-brand img{height:84px;width:auto;display:block;margin-bottom:14px}.sf-tagline{font-size:14px;line-height:1.6}.sf-menu{flex:1 1 300px;flex-direction:column;align-items:center}.sf-contact,.sf-menu{display:flex;padding-top:24px}.sf-contact{flex:1 1 260px;flex-direction:column;align-items:flex-end}.sf-heading{font-family:Sora,sans-serif;font-weight:700;font-size:14px;color:#e8edf7;margin-bottom:14px}.sf-links{font-size:14px;display:flex;flex-wrap:wrap;gap:24px}.sf-contact a,.sf-links a{color:#9aa6bb;text-decoration:none;font-size:14px}.sf-contact a:hover,.sf-links a:hover{color:#e8edf7}.sf-copy{margin-top:auto;padding-top:14px;font-size:13px;white-space:nowrap}@media (max-width:1050px){.sf-contact,.sf-menu{padding-top:0;align-items:flex-start}.sf-copy{white-space:normal}}.mode-tabs{display:flex;gap:6px;margin:-6px 0 16px;border-bottom:1px solid var(--line);padding-bottom:0}.mode-tab{border:0;background:transparent;color:var(--ink-dim);font-size:13px;padding:8px 14px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.mode-tab:hover{color:var(--ink)}.mode-tab.active{color:var(--teal);border-bottom-color:var(--teal);font-weight:600}.admin-modal-wide{max-width:980px}.dialog-cols{display:grid;grid-template-columns:1fr 1fr;grid-gap:26px;gap:26px;align-items:start}@media (max-width:860px){.dialog-cols{grid-template-columns:1fr}}.dialog-col{gap:16px;min-width:0}.dialog-col,.picker-filters{display:flex;flex-direction:column}.picker-filters{gap:8px;margin-top:6px}.picker-filter-row{display:flex;gap:8px;flex-wrap:wrap}.picker-filter-row select{flex:1 1;min-width:130px;font-family:var(--mono);font-size:12.5px;height:32px;padding:0 8px;border-radius:6px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink)}.ex-picker-tall{max-height:340px;overflow-y:auto}.wizard-steps{display:flex;align-items:center;gap:8px;margin:16px 0 24px}.wstep{gap:7px;font-size:12.5px;color:var(--ink-faint);white-space:nowrap}.wstep,.wstep-num{display:inline-flex;align-items:center}.wstep-num{justify-content:center;width:22px;height:22px;border-radius:50%;border:1px solid var(--line);background:var(--panel-2);font-size:11.5px;font-weight:700;line-height:1}.wstep.active{color:var(--ink);font-weight:600}.wstep.active .wstep-num{background:var(--teal);border-color:var(--teal);color:var(--on-teal)}.wstep.done{color:var(--teal)}.wstep.done .wstep-num{border-color:var(--teal);color:var(--teal);background:transparent}.wstep-line{flex:0 0 28px;height:1px;background:var(--line)}.admin-modal-wide{max-width:1180px;height:min(780px,92vh);display:flex;flex-direction:column;overflow:hidden}.admin-modal-wide .admin-form{flex:1 1;min-height:0}.step-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:4px 6px 4px 4px;margin:-4px -6px -4px -4px}.step-body.dialog-cols{align-items:stretch}.step-fill{overflow:visible;display:flex;flex-direction:column}@media (max-width:860px){.admin-modal-wide{height:auto;max-height:88vh;overflow-y:auto;display:block}.admin-modal-wide .admin-form{min-height:auto}}.pick-panels{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px;gap:20px;align-items:stretch;flex:1 1;min-height:0}@media (max-width:860px){.pick-panels{grid-template-columns:1fr}}.pick-panel{display:flex;flex-direction:column;gap:10px;min-width:0;min-height:0}.pick-panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.pick-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:2px}.pick-search-row,.pick-toolbar .combo-filter{flex:1 1 100%;min-width:0}.pick-search-row{display:flex;gap:8px}.pick-search-row .combo-filter{flex:7 1;min-width:0}.pick-search-row .pick-tag-select{flex:3 1;min-width:110px;max-width:30%}.pick-toolbar select{flex:1 1;min-width:130px;font-family:var(--mono);font-size:12.5px;height:34px;padding:0 8px;border-radius:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink)}.pts-total{margin-right:auto;align-self:center;font-size:13.5px;font-weight:700;color:var(--teal)}.pts-total.over{color:var(--fail)}.pick-list{display:flex;flex-direction:column;gap:4px;flex:1 1;min-height:160px;overflow-y:auto;border:1px solid var(--line);border-radius:8px;padding:8px;background:var(--panel-2)}.pick-row-icon{flex:none;font-size:16px;line-height:1}.pick-list-chosen{border-color:color-mix(in srgb,var(--teal) 45%,var(--line))}.pick-empty{padding:10px 12px;margin:0;font-size:13px}.pick-row{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:6px;font-size:14px;line-height:1.4}.pick-row .pick-add,.pick-row .pick-row-actions{margin-left:auto}.pick-row:hover{background:color-mix(in srgb,var(--ink) 6%,transparent)}.pick-row-text{min-width:0;overflow:hidden;text-overflow:ellipsis}.pick-order{color:var(--ink-faint);font-family:var(--mono);font-size:12px}.pick-row-slot{border:1px dashed color-mix(in srgb,var(--teal) 45%,var(--line));border-radius:6px;background:color-mix(in srgb,var(--teal) 6%,transparent)}.pick-row-draggable{cursor:-webkit-grab;cursor:grab}.pick-row-draggable:active{cursor:-webkit-grabbing;cursor:grabbing}.pick-grip{flex:none;color:var(--ink-faint);font-size:13px;letter-spacing:-1px;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:-webkit-grab;cursor:grab}.pick-row-dragging{opacity:.45;outline:1px dashed var(--teal);background:color-mix(in srgb,var(--teal) 10%,transparent)}.module-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:2px 16px;gap:2px 16px}.field-fill{flex:1 1;min-height:0}.field-fill textarea{flex:1 1;min-height:120px;resize:none}.platform-form{max-width:640px;display:flex;flex-direction:column;gap:10px;margin-top:8px}.char-cards{display:flex;gap:16px;flex-wrap:wrap;margin-top:6px}.char-card{position:relative;flex:1 1 220px;display:flex;flex-direction:column;gap:6px;align-items:flex-start;padding:18px 20px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2);cursor:pointer}.char-card:hover{border-color:color-mix(in srgb,var(--teal) 45%,var(--line))}.char-card:has(input:checked){border-color:var(--teal);outline:1px solid var(--teal);background:color-mix(in srgb,var(--teal) 7%,var(--panel-2))}.char-card input{position:absolute;opacity:0;pointer-events:none}.char-emoji{font-size:40px;line-height:1}.char-name{font-weight:700;font-size:15px}.char-active{position:absolute;top:12px;right:14px;font-size:11px;font-weight:700;color:var(--on-teal);background:var(--teal);padding:3px 9px;border-radius:999px}.platform-actions{display:flex;justify-content:flex-start;margin-top:8px}.pick-row-actions{flex:none;display:inline-flex;align-items:center;gap:4px}.pick-list-grow{min-height:120px}.step-fill .pts-list{flex:1 1;min-height:120px;max-height:none}.pick-move{flex:none;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;border:1px solid var(--line);background:transparent;color:var(--ink-dim);font-size:13px;line-height:1;cursor:pointer}.pick-move:hover:not(:disabled){color:var(--ink);background:color-mix(in srgb,var(--ink) 10%,transparent)}.pick-move:disabled{opacity:.3;cursor:default}.pick-add,.pick-remove{flex:none;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;border:1px solid var(--line);background:transparent;color:var(--ink-dim);font-size:16px;line-height:1;cursor:pointer}.pick-add:hover{color:var(--on-teal);background:var(--teal);border-color:var(--teal)}.pick-remove:hover{color:#fff;background:var(--fail);border-color:var(--fail)}.picker-filter-col{display:flex;flex-direction:column;gap:8px}.picker-filter-col select{width:100%;font-family:var(--mono);font-size:12.5px;height:32px;padding:0 8px;border-radius:6px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink)}.pick-row-random{background:color-mix(in srgb,var(--teal) 6%,transparent);border-bottom:1px dashed color-mix(in srgb,var(--teal) 40%,var(--line))}.pick-row-random.disabled{opacity:.55}.pick-row-random.disabled .pick-add{cursor:not-allowed}.random-warning{font-size:13px;line-height:1.55;margin:0;padding:8px 12px;border-radius:8px;color:var(--ink);border:1px solid color-mix(in srgb,var(--media) 55%,var(--line));background:color-mix(in srgb,var(--media) 12%,transparent)}.confirm-modal{max-width:440px}.confirm-warning{font-size:13.5px;color:var(--ink-dim);line-height:1.6;margin:4px 0 14px;padding:10px 14px;border:1px solid color-mix(in srgb,var(--fail) 40%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--fail) 8%,transparent)}.confirm-modal .btn.danger:disabled{opacity:.45;cursor:not-allowed}.chart-link{text-decoration:none;color:inherit;cursor:pointer;border-radius:6px}.chart-link:hover{background:color-mix(in srgb,var(--panel-2) 70%,transparent)}.chart-on{outline:2px solid var(--amber);outline-offset:1px;border-radius:6px}.legend-link{text-decoration:none;color:inherit;cursor:pointer;padding:2px 6px;border-radius:6px}.legend-link:hover{background:var(--panel-2)}.donut-seg-link{cursor:pointer}.donut-seg-link:hover circle{filter:brightness(1.2)}.filter-chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:4px 0 10px;font-size:12.5px}.filter-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;border:1px solid var(--amber);color:var(--amber);text-decoration:none;font-family:var(--mono);font-size:12px}.filter-chip:hover{background:color-mix(in srgb,var(--amber) 12%,transparent)}.filter-chip.clear{border-color:var(--line);color:var(--ink-dim)}.report-stats{display:flex;flex-wrap:wrap;gap:8px 20px;margin:2px 0 16px;font-size:12.5px;color:var(--ink-dim);font-family:var(--mono)}.report-stats b{color:var(--ink);font-weight:600}.print-only{display:none}.report-print-head{align-items:center;gap:18px;background:#0b1524;border-radius:10px;padding:16px 22px}.report-print-head .pph-logo{height:44px;width:auto;display:block}.report-print-head .pph-title{font-family:var(--display);font-weight:700;font-size:16px;color:#e8edf7}.report-print-head .pph-meta{font-size:11.5px;color:#9aa6bb;margin-top:2px}@media print{@page{margin:12mm}body,html{background:#fff!important}.app,body,html{height:auto!important;overflow:visible!important}.app{display:block!important}.admin-head,.admin-tabs,.chart-note,.dash-nav,.no-print,.report-dims,.report-filters,.topnav,footer{display:none!important}.print-only{display:block!important}.report-print-head{display:flex!important;margin-bottom:16px;-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#0b1524!important}.report-print-head .pph-title{color:#e8edf7!important}.report-print-head .pph-meta{color:#9aa6bb!important}.admin{overflow:visible!important;height:auto!important;padding:0!important}.admin,.admin h2,.admin h3,.chart-title{color:#111!important}.report-head-row .btn{display:none!important}.chart-card,.report-card{background:#fff!important;border:1px solid #ccc!important;color:#111!important;page-break-inside:avoid;break-inside:avoid}.hbar-val,.histo-n,.report-num{color:#111!important}.chart-sub,.hbar-label,.histo-x,.report-lbl,.report-stats{color:#333!important}.report-charts{grid-template-columns:1fr 1fr!important}table.grid th{background:#f1f1f1!important;color:#111!important;border-color:#bbb!important}table.grid td{color:#111!important;border-color:#ccc!important}table.grid tr{page-break-inside:avoid;break-inside:avoid}.status-pill{color:#111!important;border-color:#999!important}.hbar-track{background:#eee!important}.donut-center{fill:#111!important}.donut-center-sub{fill:#555!important}.donut,.donut circle,.hbar-fill,.histo-bar,.legend-dot{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}table.grid>tbody>tr:not(.u-detail-row):not(:has(>td.muted:only-child)):hover{background:color-mix(in srgb,var(--teal) 7%,transparent)}table.grid .u-row{cursor:pointer}table.grid .u-row.open{background:color-mix(in srgb,var(--teal) 11%,transparent)}table.grid .u-row.open td{border-bottom-color:transparent}.u-caret{width:30px;text-align:center;color:var(--ink-faint);-webkit-user-select:none;-moz-user-select:none;user-select:none}.role-badge{display:inline-block;font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:20px;border:1px solid var(--line);margin-right:6px;color:var(--ink-dim)}.role-badge.admin{color:var(--teal);border-color:color-mix(in srgb,var(--teal) 45%,var(--line));background:color-mix(in srgb,var(--teal) 10%,transparent)}.role-badge.member{color:var(--ink-dim);border-color:color-mix(in srgb,var(--ink-faint) 50%,var(--line))}.u-detail-row>td{padding:0;background:color-mix(in srgb,var(--panel-2) 60%,var(--bg))}.u-detail-empty{padding:14px 18px}table.grid.sub{margin:10px 14px 14px;width:calc(100% - 28px);font-size:12.5px}table.grid.sub th{background:transparent;color:var(--ink-dim);font-size:11px;text-transform:uppercase;letter-spacing:.05em}table.grid.sub td,table.grid.sub th{border-color:color-mix(in srgb,var(--line) 60%,transparent);padding:7px 10px}table.grid.sub .btn{height:auto;padding:4px 10px;font-size:12px}.admin-head h1,.auth-card h1,.member-dash h1,.otp-title,.reto-head h1,.test-intro h1{font-family:var(--display);letter-spacing:-.02em}h1,h2,h3{font-family:var(--display)}.btn{font-family:var(--sans);font-weight:600}body.landing-mode{overflow:auto}body.landing-mode .app{height:auto;display:block;overflow:visible}.kata{min-height:100vh}.kata .klink{cursor:pointer;transition:color .15s}.kata .klink:hover{color:#fff!important}.kata .kbtn{transition:filter .15s,background .15s}.kata .kbtn-primary:hover{filter:brightness(1.07)!important}.kata .kbtn-ghost:hover{background:rgba(255,255,255,.08)!important}.kata .kcard{background:rgba(29,186,156,.1);border:1px solid rgba(29,186,156,.34);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-radius:16px;padding:26px 22px}.kata .kstair{flex:1 1;min-width:0;border-radius:18px;padding:30px 26px;box-sizing:border-box}.kata .knum{font-family:var(--display);font-weight:800;font-size:30px;color:#1DBA9C;margin-bottom:14px}.kata .knum-lg{font-size:38px}.kata .ktitle{font-family:var(--display);font-weight:700;font-size:18px;margin-bottom:8px;color:#e8edf7}.kata .ktitle-lg{font-size:21px;margin-bottom:10px}.kata .ktext{font-size:14px;line-height:1.55;color:#9aa6bb}.kata .kfeat{display:flex;gap:9px;margin:9px 0;line-height:1.4}@media(max-width:680px){.lnav{flex-wrap:wrap;padding:8px 18px!important;row-gap:6px}.lnav-logo img{height:56px!important}.lnav-right{width:100%;gap:16px!important;flex-wrap:wrap;justify-content:center;row-gap:12px;font-size:14px!important}.lnav-auth{order:-1;width:100%;justify-content:flex-end}}@keyframes leafspin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes fall{0%{transform:translateY(-14vh)}to{transform:translateY(116vh)}}@keyframes leafsway{0%{transform:translateX(calc(var(--sx,16px) * -1))}to{transform:translateX(var(--sx,16px))}}@keyframes sway{0%,to{transform:rotate(-7deg)}50%{transform:rotate(8deg)}}@keyframes bandsway{0%,to{transform:rotate(-4deg)}50%{transform:rotate(6deg)}}@keyframes eyepulse{0%,to{opacity:.85}50%{opacity:1}}@keyframes blink{0%,93%,to{transform:scaleY(1)}96.5%{transform:scaleY(.12)}}@keyframes pndHead{0%,to{transform:rotate(-2.5deg)}50%{transform:rotate(1.5deg)}}@keyframes mooncreep{0%,to{transform:translateY(0)}50%{transform:translateY(-14px)}}@keyframes draw{0%{opacity:0;transform:scale(.86) rotate(-3deg)}60%{opacity:1}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes flash{0%{opacity:0;transform:scaleX(.3)}30%{opacity:.95}to{opacity:0;transform:scaleX(1.15)}}@keyframes restin{0%{opacity:0}to{opacity:1}}@keyframes struggle{0%,to{transform:rotate(-4deg) translateX(0)}50%{transform:rotate(4deg) translateX(6px)}}@keyframes claw{0%,to{transform:scale(1)}50%{transform:scale(.7,.9)}}@keyframes press{0%,to{transform:scale(1)}50%{transform:scale(1.05,.95)}}@keyframes climbpump{0%,to{transform:translateY(0)}50%{transform:translateY(9px)}}.member-shell{overflow-x:hidden}@media (max-width:1050px){.profile-card{background:transparent;border:none;border-radius:0;padding:4px 0;margin-top:12px}}@media (max-width:680px){.site-footer{padding:24px 16px 18px}.sf-row{flex-direction:column;gap:14px}.sf-brand,.sf-contact,.sf-menu{flex:0 0 auto}.sf-brand img{height:52px;margin-bottom:8px}.sf-contact,.sf-menu{padding-top:0;align-items:flex-start}.sf-heading{margin-bottom:8px}.sf-copy{white-space:normal;margin-top:0;padding-top:10px}.profile-head{flex-wrap:wrap;gap:14px}.profile-avatar{width:56px;height:56px;font-size:22px}.profile-name{font-size:20px}.profile-row{flex-direction:column;align-items:flex-start;gap:4px;padding:13px 2px}.pr-value{text-align:left;overflow-wrap:anywhere}.ninja-clones,.ninja-pet{--ninja-size:110px}.ninja-pet:not(.at-home) .ninja-smoke-stage,.ninja-pet:not(.at-home) .ninja-stage{right:0}.test-intro{padding:14px 0 28px}.test-intro h1{font-size:22px}.khero main{padding:160px 20px 24px!important}.khero h1{font-size:34px!important;letter-spacing:-1px!important}.khero .ksub{font-size:16px!important}#su-moon{width:110px!important;height:110px!important}#empresas,#personas,#precios{padding:84px 20px 56px!important;min-height:auto!important}.kata section h2{font-size:29px!important;letter-spacing:-.8px!important}#empresas>div>p,#personas>div>p{font-size:15.5px!important;margin-bottom:30px!important}.kgrid4{grid-template-columns:1fr!important}.kgrid4,.kstairs{gap:14px!important}.kstairs{flex-direction:column!important;align-items:stretch!important;width:100%!important;margin-left:0!important}.kstairs .kstair{height:auto!important;min-height:0}.kplans{grid-template-columns:1fr!important;gap:16px!important}.lfoot{padding:24px 16px 18px!important}.lfoot-row{flex-direction:column!important;gap:14px!important}.lfoot-row>div{flex:0 0 auto!important;max-width:none!important}.lfoot img{height:52px!important;margin-bottom:8px!important}.lfoot-col{padding-top:0!important;align-items:flex-start!important}.lfoot-copy{white-space:normal!important;margin-top:0!important;padding-top:10px!important}}