:root{--emerald-50:#ecfdf5;--emerald-100:#d1fae5;--emerald-200:#a7f3d0;--emerald-500:#059669;--emerald-600:#047857;--emerald-700:#036249;--emerald-800:#064e3b;--blue-600:var(--emerald-600);--blue-700:var(--emerald-700);--blue-50:var(--emerald-50);--blue-100:var(--emerald-100);--phase-self:#6d28d9;--phase-self-bg:#f5f3ff;--phase-pred:#b45309;--phase-pred-bg:#fffbeb;--phase-peer:#0e7490;--phase-peer-bg:#ecfeff;--slate-950:#080d16;--slate-900:#0f172a;--slate-800:#1e293b;--slate-700:#334155;--slate-600:#475569;--slate-500:#64748b;--slate-400:#94a3b8;--slate-300:#cbd5e1;--slate-200:#e2e8f0;--slate-100:#eef1f5;--slate-50:#f7f9fb;--bg:#fcfcfd;--bg-subtle:#f7f9fb;--surface:#fff;--border:#e7ebf0;--border-strong:#d8dee6;--text:var(--slate-900);--text-muted:var(--slate-500);--text-faint:var(--slate-400);--danger:#dc2626;--danger-bg:#fef2f2;--success:var(--emerald-600);--success-bg:var(--emerald-50);--radius-sm:6px;--radius:9px;--radius-lg:14px;--radius-xl:20px;--shadow-xs:0 1px 2px #0f172a0a;--shadow-sm:0 1px 2px #0f172a0a, 0 1px 3px #0f172a0f;--shadow:0 2px 4px #0f172a0a, 0 6px 16px #0f172a14;--shadow-lg:0 4px 8px #0f172a0a, 0 16px 40px #0f172a1f;--shadow-emerald:0 1px 2px #0478572e, 0 6px 16px #0478572e;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.9375rem;--text-lg:1.0625rem;--text-xl:1.3125rem;--text-2xl:1.625rem;--text-3xl:2.0625rem;--text-4xl:2.625rem;--ease:cubic-bezier(.22, 1, .36, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:Inter,system-ui,-apple-system,sans-serif;font-size:var(--text-base);color:var(--text);background:var(--bg);font-feature-settings:"cv05" 1, "ss01" 1;letter-spacing:-.006em;line-height:1.55}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit}::selection{background:var(--emerald-100);color:var(--emerald-800)}h1,h2,h3{letter-spacing:-.022em}.page{background:var(--bg);flex-direction:column;min-height:100vh;display:flex}.page-center{background:radial-gradient(120% 120% at 50% -10%, var(--emerald-50) 0%, transparent 42%), radial-gradient(80% 80% at 110% 110%, #eef6f3 0%, transparent 50%), var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex;position:relative}.page-center:before{content:"";background-image:linear-gradient(var(--slate-100) 1px, transparent 1px), linear-gradient(90deg, var(--slate-100) 1px, transparent 1px);opacity:.5;pointer-events:none;background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 60% at 50% 30%,#000 0%,#0000 75%);mask-image:radial-gradient(70% 60% at 50% 30%,#000 0%,#0000 75%)}.page-center>*{z-index:1;position:relative}.container{width:100%;max-width:1040px;margin:0 auto;padding:0 1.5rem}.container-sm{width:100%;max-width:480px;margin:0 auto;padding:0 1.5rem}.brand,.app-header .brand{font-weight:700;font-size:var(--text-lg);color:var(--slate-900);letter-spacing:-.03em;align-items:center;gap:.5rem;display:inline-flex}.app-header .brand:before{content:"";background:linear-gradient(140deg, var(--emerald-500), var(--emerald-700));width:9px;height:9px;box-shadow:0 0 0 3px var(--emerald-50);border-radius:3px;flex-shrink:0}.app-header{-webkit-backdrop-filter:saturate(180%)blur(12px);border-bottom:1px solid var(--border);z-index:50;background:#ffffffd1;flex-shrink:0;align-items:center;gap:1.25rem;height:60px;padding:0 1.75rem;display:flex;position:sticky;top:0}.app-header nav{align-items:center;gap:1.25rem;margin-left:auto;display:flex}.nav-link{font-size:var(--text-sm);color:var(--text-muted);transition:color .15s var(--ease);font-weight:500}.nav-link:hover{color:var(--text)}.back-link{font-size:var(--text-sm);color:var(--text-muted);border-radius:var(--radius-sm);transition:color .15s var(--ease), background .15s var(--ease);align-items:center;gap:.35rem;margin-left:-.5rem;padding:.3rem .5rem;font-weight:500;display:inline-flex}.back-link:hover{color:var(--text);background:var(--slate-100)}.header-title{font-size:var(--text-base);color:var(--text);letter-spacing:-.01em;font-weight:600}.header-spacer{flex:1}.main{flex:1;padding:2.5rem 0 4rem}.page-title{font-size:var(--text-2xl);letter-spacing:-.025em;color:var(--slate-900);font-weight:700}.card{background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-sm);padding:2rem}.card-sm{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-xs);transition:box-shadow .15s var(--ease), border-color .15s var(--ease), transform .15s var(--ease);padding:1rem 1.25rem}.card-sm:hover{box-shadow:var(--shadow-sm);border-color:var(--border-strong)}.auth-card{background:var(--surface);border-radius:var(--radius-xl);border:1px solid var(--border);box-shadow:var(--shadow-lg);padding:2.25rem;position:relative;overflow:hidden}.auth-card:before{content:"";background:linear-gradient(90deg, var(--emerald-500), var(--emerald-700), var(--emerald-500));height:3px;position:absolute;top:0;left:0;right:0}.auth-brand{flex-direction:column;align-items:center;gap:.5rem;margin-bottom:1.75rem;display:flex}.auth-logo{letter-spacing:-.04em;color:var(--slate-900);align-items:center;gap:.55rem;font-size:1.75rem;font-weight:700;display:inline-flex}.auth-logo:before{content:"";background:linear-gradient(140deg, var(--emerald-500), var(--emerald-700));width:12px;height:12px;box-shadow:0 0 0 4px var(--emerald-50);border-radius:4px}.auth-subtitle{font-size:var(--text-sm);color:var(--text-muted);text-align:center}.auth-footer{text-align:center;font-size:var(--text-sm);color:var(--text-muted);margin-top:1.5rem}.auth-footer a{color:var(--emerald-600);transition:color .15s var(--ease);font-weight:600}.auth-footer a:hover{color:var(--emerald-700);text-underline-offset:2px;text-decoration:underline}.btn{font-size:var(--text-sm);letter-spacing:-.01em;border-radius:var(--radius);cursor:pointer;transition:background .16s var(--ease), box-shadow .16s var(--ease), border-color .16s var(--ease), transform 80ms var(--ease), opacity .16s var(--ease);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:.45rem;padding:.55rem 1.15rem;font-weight:600;line-height:1;display:inline-flex}.btn:active:not(:disabled){transform:translateY(.5px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:focus-visible{box-shadow:0 0 0 3px var(--emerald-100);outline:none}.btn-primary{background:linear-gradient(180deg, var(--emerald-500), var(--emerald-600));color:#fff;border-color:var(--emerald-600);box-shadow:var(--shadow-xs), inset 0 1px 0 #ffffff29}.btn-primary:not(:disabled):hover{background:linear-gradient(180deg, var(--emerald-600), var(--emerald-700));border-color:var(--emerald-700);box-shadow:var(--shadow-emerald)}.btn-secondary{background:var(--surface);color:var(--slate-700);border-color:var(--border-strong);box-shadow:var(--shadow-xs)}.btn-secondary:not(:disabled):hover{background:var(--slate-50);border-color:var(--slate-400);color:var(--slate-900)}.btn-ghost{color:var(--text-muted);background:0 0;border-color:#0000}.btn-ghost:not(:disabled):hover{background:var(--slate-100);color:var(--text)}.btn-danger{color:var(--danger);background:0 0;border-color:#0000}.btn-danger:not(:disabled):hover{background:var(--danger-bg)}.btn-lg{font-size:var(--text-base);border-radius:var(--radius);padding:.72rem 1.5rem}.btn-sm{font-size:var(--text-xs);padding:.36rem .8rem}.form-group{flex-direction:column;gap:.4rem;display:flex}.form-label{font-size:var(--text-sm);color:var(--slate-700);letter-spacing:-.01em;font-weight:600}.form-input{width:100%;font-size:var(--text-base);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text);transition:border-color .15s var(--ease), box-shadow .15s var(--ease), background .15s var(--ease);padding:.6rem .8rem;line-height:1.5}.form-input::placeholder{color:var(--slate-400)}.form-input:hover:not(:focus){border-color:var(--slate-400)}.form-input:focus{border-color:var(--emerald-500);box-shadow:0 0 0 3.5px var(--emerald-100);outline:none}select.form-input{cursor:pointer}.form-error{font-size:var(--text-sm);color:var(--danger);background:var(--danger-bg);border-radius:var(--radius-sm);border:1px solid #fecaca;align-items:center;gap:.4rem;padding:.55rem .75rem;display:flex}.data-table{border-collapse:collapse;background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--border);width:100%;box-shadow:var(--shadow-sm);overflow:hidden}.data-table th{text-align:left;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);background:var(--bg-subtle);border-bottom:1px solid var(--border);padding:.7rem 1.1rem;font-weight:700}.data-table td{font-size:var(--text-sm);border-bottom:1px solid var(--slate-100);color:var(--slate-700);vertical-align:top;padding:.8rem 1.1rem}.data-table tr:last-child td{border-bottom:none}.data-table tbody tr{transition:background .12s var(--ease)}.data-table tbody tr:hover{background:var(--bg-subtle)}.badge{font-size:var(--text-xs);letter-spacing:.01em;border:1px solid #0000;border-radius:999px;align-items:center;gap:.35rem;padding:.22rem .6rem;font-weight:600;display:inline-flex}.badge:before{content:"";opacity:.85;background:currentColor;border-radius:50%;width:6px;height:6px}.badge-setup{background:var(--slate-100);color:var(--slate-600);border-color:var(--slate-200)}.badge-registration{color:#854d0e;background:#fef9c3;border-color:#fde68a}.badge-assessment{background:var(--emerald-50);color:var(--emerald-700);border-color:var(--emerald-200)}.badge-results{background:var(--success-bg);color:var(--success);border-color:var(--emerald-200)}.badge-closed{background:var(--slate-100);color:var(--slate-400);border-color:var(--slate-200)}.phase-pill{font-size:var(--text-xs);letter-spacing:.05em;text-transform:uppercase;border:1px solid #0000;border-radius:999px;align-items:center;gap:.45rem;padding:.3rem .8rem;font-weight:700;display:inline-flex}.phase-pill:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.phase-self{background:var(--phase-self-bg);color:var(--phase-self);border-color:#ddd6fe}.phase-pred{background:var(--phase-pred-bg);color:var(--phase-pred);border-color:#fde68a}.phase-peer{background:var(--phase-peer-bg);color:var(--phase-peer);border-color:#a5f3fc}.rating-scale{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.rating-btn{width:54px;height:54px;font-size:var(--text-lg);border-radius:var(--radius);border:1.5px solid var(--border-strong);background:var(--surface);color:var(--slate-700);cursor:pointer;box-shadow:var(--shadow-xs);transition:transform .12s var(--ease), border-color .12s var(--ease), color .12s var(--ease), background .12s var(--ease), box-shadow .12s var(--ease);justify-content:center;align-items:center;font-weight:700;display:flex}.rating-btn:hover:not(:disabled){border-color:var(--emerald-500);color:var(--emerald-700);background:var(--emerald-50);transform:translateY(-2px)}.rating-btn.selected{background:linear-gradient(180deg, var(--emerald-500), var(--emerald-600));border-color:var(--emerald-600);color:#fff;box-shadow:var(--shadow-emerald);transform:translateY(-2px)}.rating-btn:disabled{opacity:.5;cursor:not-allowed}.empty-state{text-align:center;color:var(--text-muted);background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);flex-direction:column;align-items:center;gap:1.25rem;padding:4rem 1rem;display:flex}.empty-state p{font-size:var(--text-sm)}.text-muted{color:var(--text-muted)}.text-sm{font-size:var(--text-sm)}.text-xs{font-size:var(--text-xs)}.text-lg{font-size:var(--text-lg)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.row{align-items:center;gap:1rem;display:flex}.row-between{justify-content:space-between;align-items:center;gap:1rem;display:flex}.col{flex-direction:column;gap:1rem;display:flex}.waiting-screen{text-align:center;background:radial-gradient(110% 90% at 50% 0%, var(--emerald-50) 0%, transparent 45%), var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;min-height:100vh;padding:2rem;display:flex;position:relative}.waiting-screen .brand-mark{font-size:var(--text-3xl);color:var(--slate-900);letter-spacing:-.04em;align-items:center;gap:.65rem;font-weight:700;display:inline-flex}.waiting-screen .brand-mark:before{content:"";background:linear-gradient(140deg, var(--emerald-500), var(--emerald-700));width:14px;height:14px;box-shadow:0 0 0 4px var(--emerald-50);border-radius:5px}.waiting-screen .waiting-label{font-size:var(--text-base);color:var(--text-muted);align-items:center;gap:.6rem;display:inline-flex}.waiting-screen .waiting-label:before{content:"";background:var(--emerald-500);width:8px;height:8px;animation:pulse-dot 1.6s var(--ease) infinite;border-radius:50%}@keyframes pulse-dot{0%,to{opacity:1;box-shadow:0 0 0 0 var(--emerald-200);transform:scale(1)}50%{opacity:.6;transform:scale(.85);box-shadow:0 0 0 6px #05966900}}.session-code-display{letter-spacing:.18em;color:var(--emerald-700);background:linear-gradient(180deg, #fff, var(--emerald-50));border:1.5px solid var(--emerald-200);border-radius:var(--radius-lg);text-align:center;font-variant-numeric:tabular-nums;box-shadow:var(--shadow), inset 0 1px 0 #fff;padding:1.35rem 2.5rem 1.35rem 2.68rem;font-size:3.25rem;font-weight:700}.cell-input{width:100%;font-size:var(--text-sm);border-radius:var(--radius-sm);color:var(--text);transition:border-color .12s var(--ease), background .12s var(--ease), box-shadow .12s var(--ease);background:0 0;border:1px solid #0000;padding:.4rem .55rem;font-family:inherit;line-height:1.45}textarea.cell-input{resize:none;white-space:pre-wrap;word-break:break-word;display:block;overflow:hidden}.cell-input:hover{background:var(--bg-subtle);border-color:var(--border)}.cell-input:focus{background:var(--surface);border-color:var(--emerald-500);box-shadow:0 0 0 3px var(--emerald-100);outline:none}.divider{background:var(--border);height:1px;margin:1.5rem 0}.loading{text-align:center;color:var(--text-muted);font-size:var(--text-sm);padding:4rem 2rem}.lang-switcher{background:var(--slate-100);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:.125rem;padding:.1875rem;line-height:1;display:inline-flex}.lang-switcher__btn{appearance:none;color:var(--text-muted);font-size:var(--text-xs);letter-spacing:.02em;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s var(--ease), color .15s var(--ease), box-shadow .15s var(--ease);background:0 0;border:none;padding:.3125rem .625rem;font-weight:600}.lang-switcher__btn:hover:not(.is-active){color:var(--text)}.lang-switcher__btn.is-active{background:var(--surface);color:var(--slate-900);box-shadow:var(--shadow-xs)}.lang-switcher__btn:focus-visible{box-shadow:0 0 0 2px var(--emerald-100), 0 0 0 1px var(--emerald-500);outline:none}.lang-switcher--floating{z-index:2;position:absolute;top:1.25rem;right:1.25rem}.lang-switcher--dark{background:#ffffff0f;border-color:#ffffff1f}.lang-switcher--dark .lang-switcher__btn{color:var(--slate-400)}.lang-switcher--dark .lang-switcher__btn:hover:not(.is-active){color:#fff}.lang-switcher--dark .lang-switcher__btn.is-active{color:#fff;box-shadow:none;background:#ffffff24}
