:root{--primary:#4f46e5;--primary-hover:#4338ca;--primary-soft:#eef2ff;--primary-soft-text:#4338ca;--bg:#f1f5f9;--surface:#fff;--text:#0f172a;--text-muted:#64748b;--border:#e2e8f0;--danger:#dc2626;--success:#059669;--success-soft:#ecfdf5;--warning-soft:#fffbeb;--warning-text:#b45309;--info-soft:#eff6ff;--info-text:#1d4ed8;--sidebar:#0f172a;--shadow:0 1px 2px #0f172a0f, 0 4px 12px #0f172a0f;--radius:12px}*{box-sizing:border-box}html{scrollbar-gutter:stable}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:15px}.layout{grid-template-columns:220px 1fr;min-height:100vh;display:grid}aside{background:var(--sidebar);color:#94a3b8;flex-direction:column;gap:2rem;height:100vh;padding:1.5rem 1rem;display:flex;position:sticky;top:0}.brand{color:#fff;letter-spacing:-.02em;align-items:center;gap:.6rem;padding:0 .5rem;font-size:1.05rem;font-weight:800;text-decoration:none;display:flex}.brand-mark{color:#fff;background:linear-gradient(135deg,#6366f1,#4338ca);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex;box-shadow:0 4px 12px #4f46e566}aside nav{flex-direction:column;flex:1;gap:.3rem;display:flex}aside nav a{color:#94a3b8;border-radius:8px;align-items:center;gap:.65rem;padding:.6rem .85rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}aside nav a:hover{color:#e2e8f0;background:#94a3b81a}aside nav a.active{background:var(--primary);color:#fff;font-weight:600}aside>button.link{color:#94a3b8;text-align:left;align-items:center;gap:.6rem;padding:0 .85rem;display:flex}aside>button.link:hover{color:#e2e8f0}main{width:100%;min-width:0;padding:2.5rem 3rem;overflow-x:auto}.page-head{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}h1{letter-spacing:-.02em;margin:0;font-size:1.5rem;font-weight:700}.subtitle{color:var(--text-muted);margin:.25rem 0 0;font-size:.88rem}.stats{gap:1rem;margin-bottom:1.5rem;display:flex}.stat{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:.9rem;min-width:180px;padding:1rem 1.4rem;display:flex}.stat-icon{background:var(--primary-soft);width:40px;height:40px;color:var(--primary);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.stat-icon.green{background:var(--success-soft);color:var(--success)}.stat-value{letter-spacing:-.02em;font-size:1.35rem;font-weight:800;line-height:1.2;display:block}.stat-value.accent{color:var(--success)}.stat-label{color:var(--text-muted);font-size:.8rem;font-weight:500;display:block}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:1.1rem;max-width:720px;margin-bottom:1rem;padding:1.75rem;display:flex}.form-grid{grid-template-columns:1fr 1fr;gap:1.1rem;max-width:880px;display:grid}.span2{grid-column:span 2}.checks{flex-wrap:wrap;gap:1.1rem;display:flex}.check{align-items:center;flex-direction:row!important;gap:.5rem!important;font-weight:500!important}.check input{width:16px;height:16px;accent-color:var(--primary)}label{color:#334155;flex-direction:column;gap:.4rem;font-size:.83rem;font-weight:600;display:flex}input,select,textarea{border:1px solid var(--border);color:var(--text);background:#fff;border-radius:8px;padding:.6rem .8rem;font-family:inherit;font-size:.95rem;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #4f46e526}button,.button{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.6rem 1.2rem;font-family:inherit;font-size:.9rem;font-weight:600;text-decoration:none;transition:background .15s;display:inline-block}button:hover,.button:hover{background:var(--primary-hover)}button:disabled{opacity:.55;cursor:not-allowed}button.link,.link{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}button.link:hover,.link:hover{background:0 0;text-decoration:underline}.link.danger{color:var(--danger)}.chip{background:var(--primary-soft);color:var(--primary-soft-text);border:none;border-radius:999px;align-items:center;gap:.3rem;padding:.3rem .7rem;font-size:.78rem;font-weight:600;display:inline-flex}.chip:hover{color:var(--primary-hover);background:#e0e7ff}.chip-done,.chip-done:hover{background:var(--success-soft);color:var(--success)}.button-icon{align-items:center;gap:.45rem;display:inline-flex}table{border-collapse:collapse;background:var(--surface);border-radius:var(--radius);width:100%;box-shadow:var(--shadow);overflow:hidden}th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);background:#f8fafc;font-size:.75rem;font-weight:700}th,td{vertical-align:top;border-bottom:1px solid #f1f5f9;padding:.85rem 1.1rem}tbody tr:hover{background:#fafbfd}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.83rem}.tag{background:var(--primary-soft);color:var(--primary-soft-text);text-transform:uppercase;letter-spacing:.03em;border-radius:999px;margin-left:.4rem;padding:.12rem .5rem;font-size:.68rem;font-weight:700;display:inline-block}.tag.muted{color:var(--text-muted);background:#f1f5f9}.phase{color:var(--text-muted);white-space:nowrap;background:#f1f5f9;border-radius:999px;align-items:center;gap:.4rem;padding:.25rem .65rem;font-size:.75rem;font-weight:700;display:inline-flex}.phase i{background:currentColor;border-radius:50%;width:7px;height:7px;display:inline-block}.phase-exam_open i{animation:1.6s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.table-middle td{vertical-align:middle}.exam-name{flex-wrap:wrap;align-items:center;gap:.15rem;font-weight:600;display:flex}.exam-code{color:var(--text-muted);margin-top:.2rem;font-size:.78rem}.schedule{white-space:nowrap;font-size:.83rem}.schedule .muted{color:var(--text-muted)}.pool{font-weight:600}.pool.warn{color:var(--warning-text);background:var(--warning-soft);border-radius:999px;padding:.2rem .55rem}.phase-exam_open{background:var(--success-soft);color:var(--success)}.phase-registration_open{background:var(--info-soft);color:var(--info-text)}.phase-result_open{background:var(--warning-soft);color:var(--warning-text)}.links-cell,.actions-cell{white-space:nowrap}.links-cell{gap:.35rem;display:flex}.actions-cell a,.actions-cell button{color:var(--primary);margin-right:.7rem;font-size:.85rem;font-weight:600;text-decoration:none}.actions-cell a:hover{text-decoration:underline}.filters{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.filters input{min-width:280px}.pager{color:var(--text-muted);align-items:center;gap:1rem;margin-top:1.25rem;display:flex}.pager button{background:var(--surface);color:var(--text);border:1px solid var(--border)}.pager button:hover:not(:disabled){background:#f8fafc}.rows-select{color:var(--text-muted);flex-direction:row;align-items:center;gap:.5rem;margin-left:auto;font-size:.85rem;font-weight:500}.rows-select select{padding:.35rem .5rem}.question-cell{max-width:520px;font-size:1rem;line-height:1.8}.option-list{margin:0;padding-left:1.1rem;line-height:1.8}.option-list .correct{color:var(--success);font-weight:700}.option-row{align-items:center;gap:.6rem;margin-bottom:.6rem;display:flex}.option-row input[type=radio]{width:17px;height:17px;accent-color:var(--primary)}.option-input{flex:1}fieldset{border:1px solid var(--border);border-radius:10px;padding:1.1rem}legend{color:#334155;padding:0 .4rem;font-size:.85rem;font-weight:600}.login-wrap{background:radial-gradient(60rem 30rem at 110% -10%, #4f46e52e, transparent 60%), radial-gradient(50rem 28rem at -10% 110%, #0ea5e924, transparent 60%), var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.login-wrap .card{gap:1.25rem;width:100%;max-width:440px;padding:2.75rem 2.5rem;box-shadow:0 10px 40px #0f172a1f}.login-brand{text-align:center;margin-bottom:.5rem}.login-brand .mark{color:#fff;background:linear-gradient(135deg,#6366f1,#4338ca);border-radius:14px;justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:.9rem;font-size:1.5rem;font-weight:800;display:inline-flex;box-shadow:0 6px 18px #4f46e559}.login-brand h1{margin-bottom:.35rem;font-size:1.45rem}.login-brand p{color:var(--text-muted);margin:0;font-size:.9rem}.login-wrap input{padding:.8rem .95rem;font-size:1rem}.login-wrap button{margin-top:.25rem;padding:.85rem 1.2rem;font-size:1rem}.error{color:var(--danger);margin:0}.hint{color:var(--text-muted);margin:.25rem 0 1rem}@media (width<=900px){.layout{grid-template-rows:auto 1fr;grid-template-columns:1fr}aside{flex-direction:row;align-items:center;gap:1rem;height:auto;padding:.75rem 1rem;position:static}.brand{gap:0;padding:0;font-size:0}aside nav{scrollbar-width:none;flex-direction:row;gap:.2rem;overflow-x:auto}aside nav::-webkit-scrollbar{display:none}aside nav a{white-space:nowrap;padding:.5rem .7rem;font-size:.85rem}aside>button.link{flex-shrink:0;gap:0;padding:.5rem;font-size:0}main{padding:1.25rem 1rem}.page-head{flex-wrap:wrap;gap:.75rem}.form-grid{grid-template-columns:1fr}.span2{grid-column:span 1}.stats{flex-wrap:wrap}.stat{flex:45%;min-width:0;padding:.8rem 1rem}.filters input{width:100%;min-width:0}.filters form{flex:100%}.card{padding:1.25rem}.toast-stack{bottom:1rem;left:1rem;right:1rem}.toast{width:100%;max-width:none}}.brand-logo-sm{object-fit:cover;background:#fff;border-radius:9px;flex-shrink:0;width:34px;height:34px}.login-logo{object-fit:contain;width:auto;max-width:180px;height:76px;margin-bottom:.9rem}
