:root{--gray-50: #f8fafc;--gray-100: #f1f5f9;--gray-150: #eaeef3;--gray-200: #e2e8f0;--gray-300: #cbd5e1;--gray-400: #94a3b8;--gray-500: #64748b;--gray-600: #475569;--gray-700: #334155;--gray-800: #1e293b;--gray-900: #0f172a;--blue-50: #eff6ff;--blue-100: #dbeafe;--blue-200: #bfdbfe;--blue-500: #3b82f6;--blue-600: #2563eb;--blue-700: #1d4ed8;--green-50: #ecfdf5;--green-100: #d1fae5;--green-600: #059669;--green-700: #047857;--amber-50: #fffbeb;--amber-100: #fef3c7;--amber-600: #d97706;--amber-700: #b45309;--red-50: #fef2f2;--red-100: #fee2e2;--red-600: #dc2626;--red-700: #b91c1c;--violet-50: #f5f3ff;--violet-100: #ede9fe;--violet-600: #7c3aed;--violet-700: #6d28d9;--bg: var(--gray-50);--surface: #ffffff;--surface-sunken: var(--gray-50);--border: var(--gray-200);--border-strong: var(--gray-300);--text: var(--gray-900);--muted: var(--gray-500);--muted-strong: var(--gray-600);--primary: var(--blue-600);--primary-dark: var(--blue-700);--primary-soft: var(--blue-50);--ok: var(--green-600);--ok-soft: var(--green-50);--warn: var(--amber-600);--warn-soft: var(--amber-50);--danger: var(--red-600);--danger-soft: var(--red-50);--info-soft: var(--violet-50);--info: var(--violet-600);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-full: 999px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .06);--shadow-sm: 0 1px 3px rgba(15, 23, 42, .08), 0 1px 2px rgba(15, 23, 42, .04);--shadow-md: 0 4px 12px rgba(15, 23, 42, .08), 0 2px 4px rgba(15, 23, 42, .04);--shadow-lg: 0 12px 32px rgba(15, 23, 42, .14), 0 4px 10px rgba(15, 23, 42, .06);--shadow-overlay: 0 24px 48px rgba(15, 23, 42, .22);--ease: cubic-bezier(.2, .6, .2, 1);--sidebar-w: 254px;--topbar-h: 64px}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14.5px;line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5{margin:0 0 .35rem;line-height:1.25;font-weight:650;letter-spacing:-.01em}h1{font-size:1.5rem}h2{font-size:1.05rem}h3{font-size:.95rem}p{margin:0 0 .5rem}code{background:var(--gray-100);padding:.1em .4em;border-radius:5px;font-size:.88em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}pre{margin:.25rem 0;white-space:pre-wrap;word-break:break-word;font-size:.88em}a{color:var(--primary)}.muted{color:var(--muted)}.muted-strong{color:var(--muted-strong)}.small{font-size:.82rem}.urgent{color:var(--danger);font-weight:600}.center{display:grid;place-items:center;min-height:60vh;color:var(--muted);gap:.5rem}.grow{flex:1}.text-right{text-align:right}::selection{background:var(--blue-100)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:999px;border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}.shell{min-height:100vh}.top-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 1.5rem;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.top-bar strong{font-weight:650;letter-spacing:-.01em}.top-bar-right{display:flex;align-items:center;gap:.85rem}.brand{display:flex;align-items:center;gap:.55rem;font-weight:650;letter-spacing:-.01em}.brand-mark{width:28px;height:28px;object-fit:contain;flex-shrink:0}.container{max-width:900px;margin:0 auto;padding:1.75rem 1.5rem 3.5rem}.container.wide{max-width:1280px}.app-shell{min-height:100vh;display:flex}.app-sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:1.1rem .85rem;position:sticky;top:0;height:100vh}.app-sidebar-brand{padding:.35rem .5rem 1.2rem}.app-nav{display:flex;flex-direction:column;gap:.15rem;flex:1}.app-nav-link{display:flex;align-items:center;gap:.7rem;padding:.68rem .8rem;border-radius:var(--radius-sm);color:var(--muted-strong);font-size:.92rem;font-weight:500;text-decoration:none;cursor:pointer;border:none;background:none;width:100%;text-align:left;transition:background .12s var(--ease),color .12s var(--ease),transform .12s var(--ease)}.app-nav-link svg{flex-shrink:0;opacity:.85}.app-nav-link:hover{background:var(--gray-100);color:var(--text);transform:translate(1px)}.app-nav-link.active{background:var(--primary-soft);color:var(--primary-dark);font-weight:600}.app-nav-link.active svg{opacity:1}.app-nav-section{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:.9rem .65rem .3rem;font-weight:650}.app-sidebar-footer{border-top:1px solid var(--border);padding-top:.75rem;margin-top:.5rem}.app-main{flex:1;min-width:0}.app-topbar{height:var(--topbar-h);display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;background:#ffffffd9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.app-topbar h1{font-size:1.1rem;margin:0}.app-topbar-right{display:flex;align-items:center;gap:.85rem}.app-page{padding:1.75rem;max-width:1320px}.mobile-nav-toggle{display:none}@media(max-width:900px){.app-sidebar{position:fixed;left:0;top:0;z-index:40;transform:translate(-100%);transition:transform .18s var(--ease);box-shadow:var(--shadow-overlay)}.app-sidebar.open{transform:translate(0)}.app-shell-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a59;z-index:35}.mobile-nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);cursor:pointer}.app-page{padding:1.1rem}}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.page-header h1{font-size:1.4rem}.page-header p{color:var(--muted);margin:0}.page-header-actions{display:flex;gap:.6rem;flex-wrap:wrap}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.4rem;box-shadow:var(--shadow-xs);margin-bottom:1.25rem}.card.compact{padding:1.1rem}.card.flush{padding:0}.card.empty{color:var(--muted);text-align:center;padding:2.5rem}.card-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.card-header h2{margin:0}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem}.sub-card{border:1px solid var(--border);border-radius:var(--radius-md);padding:.85rem 1rem;margin:.6rem 0;background:var(--surface)}.sub-card legend{font-size:.82rem;color:var(--muted);padding:0 .35rem}.auth-shell{display:grid;place-items:center;min-height:100vh;padding:1.5rem;background:radial-gradient(circle at 15% 20%,rgba(37,99,235,.1),transparent 40%),radial-gradient(circle at 85% 80%,rgba(124,58,237,.08),transparent 40%),var(--bg)}.auth-card{width:100%;max-width:400px;margin:0}.auth-card label{display:block;margin:.85rem 0 .35rem;font-size:.82rem;color:var(--muted-strong);font-weight:550}.auth-card label input{margin-top:.3rem}.auth-card .tick{width:52px;height:52px;border-radius:50%;background:var(--green-100);color:var(--ok);display:grid;place-items:center;font-size:1.6rem;margin:0 auto .85rem}.auth-card p.muted.small{text-align:center;margin-top:1rem}input,select,textarea{width:100%;padding:.55rem .7rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font:inherit;background:var(--surface);color:var(--text);transition:border-color .12s var(--ease),box-shadow .12s var(--ease)}input[type=radio],input[type=checkbox]{width:auto;accent-color:var(--primary)}textarea{resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--blue-100)}input::placeholder,textarea::placeholder{color:var(--gray-400)}input:disabled,select:disabled,textarea:disabled{background:var(--gray-100);color:var(--muted)}.field{display:flex;flex-direction:column;gap:.3rem}.field label,label.field-label{font-size:.78rem;color:var(--muted-strong);font-weight:550}.field-label-row{display:flex;align-items:center;justify-content:space-between}.field-label-row .field-label{font-size:.78rem;color:var(--muted-strong);font-weight:550}.markdown-preview{border:1px solid var(--border);border-radius:var(--radius-md);padding:.75rem .9rem;background:var(--surface-sunken);min-height:2.5rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.5rem .85rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;font-weight:550;font-size:.87rem;cursor:pointer;white-space:nowrap;transition:background .12s var(--ease),border-color .12s var(--ease),box-shadow .12s var(--ease),transform .05s var(--ease)}.btn svg{flex-shrink:0}.btn:hover:not(:disabled){background:var(--gray-50);border-color:var(--gray-400)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:var(--shadow-xs)}.btn.primary:hover:not(:disabled){background:var(--primary-dark);border-color:var(--primary-dark)}.btn.full{width:100%;margin-top:.75rem}.btn.small{padding:.32rem .6rem;font-size:.8rem}.btn.icon{padding:.4rem;width:2.1rem;height:2.1rem}.btn.trigger-custom{padding:.35rem .6rem;height:auto;white-space:normal}.btn.ghost{border-color:transparent;background:none}.btn.ghost:hover:not(:disabled){background:var(--gray-100)}.btn.link{border:none;background:none;color:var(--primary);padding:.2rem .35rem;text-decoration:none;font-weight:550}.btn.link:hover{text-decoration:underline;background:none}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.danger:hover:not(:disabled){background:var(--red-700);border-color:var(--red-700)}.btn.link.danger{background:none;border:none;color:var(--danger)}.btn .spinner{animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.row-form{display:flex;flex-wrap:wrap;gap:.85rem;align-items:flex-end}.row-form label{display:block;font-size:.78rem;color:var(--muted-strong);font-weight:550;margin-bottom:.3rem}.stack{display:block}.stack label{display:block;margin:.75rem 0 .3rem;font-size:.82rem;color:var(--muted-strong);font-weight:550}.form-actions{display:flex;gap:.75rem;align-items:center;margin-top:1rem}.inline{display:inline-flex!important;align-items:center;gap:.35rem;margin-right:1rem!important;font-weight:500!important}.lang-row{display:flex;flex-wrap:wrap;gap:.25rem 1rem;margin:.5rem 0}.problem-type-toggle{display:flex;gap:.5rem}.param-row{display:grid;grid-template-columns:1fr 140px auto;gap:.5rem;align-items:center;margin-bottom:.4rem}.boilerplate-preview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem}.boilerplate-preview-card{border:1px solid var(--border);border-radius:var(--radius-md);padding:.6rem .75rem;background:var(--surface-sunken);overflow:hidden}.boilerplate-preview-card pre{margin:.35rem 0 0;font-size:.8rem;overflow-x:auto}.case-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.code-textarea{font-family:ui-monospace,SF Mono,Consolas,monospace;font-size:.82rem}.param-input-error{color:var(--danger);font-size:.76rem;display:block;margin-top:.15rem}.preview img{max-width:320px;border:1px solid var(--border);border-radius:var(--radius-sm)}.banner{display:flex;align-items:flex-start;gap:.55rem;padding:.7rem .95rem;border-radius:var(--radius-md);margin:.75rem 0;background:var(--primary-soft);border:1px solid var(--blue-200);font-size:.87rem}.banner svg{flex-shrink:0;margin-top:.1rem}.banner.error{background:var(--danger-soft);border-color:var(--red-100);color:var(--red-700)}.banner.ok{background:var(--ok-soft);border-color:var(--green-100);color:var(--green-700)}.banner.warn{background:var(--warn-soft);border-color:var(--amber-100);color:var(--amber-700);border-radius:0;margin:0}.errors{margin:.5rem 0 0;padding-left:1.2rem;font-size:.83rem}.badge{display:inline-flex;align-items:center;gap:.32rem;font-size:.72rem;font-weight:650;letter-spacing:.01em;padding:.2rem .55rem;border-radius:var(--radius-full);background:var(--gray-100);color:var(--muted-strong);text-transform:capitalize;white-space:nowrap;line-height:1.4}.badge svg{width:12px;height:12px}.badge-dot:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.badge-neutral{background:var(--gray-100);color:var(--muted-strong)}.badge-blue{background:var(--blue-100);color:var(--blue-700)}.badge-success{background:var(--green-100);color:var(--green-700)}.badge-warning{background:var(--amber-100);color:var(--amber-700)}.badge-danger{background:var(--red-100);color:var(--red-700)}.badge-info{background:var(--violet-100);color:var(--violet-700)}.tag{font-size:.72rem;padding:.18rem .55rem;border-radius:var(--radius-full);background:var(--gray-100);color:var(--muted-strong);text-transform:capitalize;font-weight:600;display:inline-flex;align-items:center;gap:.3rem}.tag.published,.tag.submitted,.tag.auto_submitted{background:var(--green-100);color:var(--green-700)}.tag.in_progress{background:var(--blue-100);color:var(--blue-700)}.tag.draft,.tag.none{background:var(--gray-100);color:var(--muted-strong)}.tag.closed,.tag.expired{background:var(--red-100);color:var(--red-700)}.difficulty-easy{background:var(--green-100);color:var(--green-700)}.difficulty-medium{background:var(--amber-100);color:var(--amber-700)}.difficulty-hard{background:var(--red-100);color:var(--red-700)}.score-badge{font-variant-numeric:tabular-nums;font-weight:700}.score-high{background:var(--green-100);color:var(--green-700)}.score-mid{background:var(--amber-100);color:var(--amber-700)}.score-low{background:var(--red-100);color:var(--red-700)}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-weight:650;flex-shrink:0;font-size:.8rem;line-height:1}.avatar-sm{width:26px;height:26px;font-size:.68rem}.avatar-md{width:34px;height:34px;font-size:.78rem}.avatar-lg{width:52px;height:52px;font-size:1.1rem}.avatar-row{display:flex;align-items:center;gap:.6rem}.avatar-row .identity-name{font-weight:600}.avatar-row .identity-sub{font-size:.78rem;color:var(--muted)}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:1.5rem}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.1rem 1.2rem;box-shadow:var(--shadow-xs);display:flex;flex-direction:column;gap:.35rem}.stat-icon{width:34px;height:34px;border-radius:var(--radius-sm);display:grid;place-items:center;margin-bottom:.15rem;background:var(--primary-soft);color:var(--primary-dark)}.stat strong{display:block;font-size:1.65rem;line-height:1.1;font-weight:700;letter-spacing:-.02em}.stat span{font-size:.76rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-weight:600}.stat.active .stat-icon{background:var(--blue-100);color:var(--blue-700)}.stat.active strong{color:var(--primary)}.stat.ok .stat-icon{background:var(--green-100);color:var(--green-700)}.stat.ok strong{color:var(--ok)}.stat.warn .stat-icon{background:var(--amber-100);color:var(--amber-700)}.stat-row.compact .stat{padding:.85rem 1rem}.stat-row.compact .stat strong{font-size:1.3rem}.table-wrap{overflow-x:auto;overflow-y:auto;max-height:70vh;border-radius:var(--radius-lg)}.table{width:100%;border-collapse:collapse;font-size:.87rem}.table th,.table td{text-align:left;padding:.7rem .85rem;border-bottom:1px solid var(--border)}.table th{font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-weight:650;background:var(--surface-sunken);position:sticky;top:0}.table td.preview{max-width:340px}.table .actions{display:flex;gap:.25rem;flex-wrap:wrap;align-items:center}.table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.table th.sortable:hover{color:var(--primary)}.table th .sort-icon{opacity:.5;margin-left:.15rem;vertical-align:-2px}.table th.sorted .sort-icon{opacity:1;color:var(--primary)}.table tbody tr{transition:background .1s var(--ease)}.table tr.clickable-row{cursor:pointer}.table tr.clickable-row:hover{background:var(--gray-50)}.table td.num{text-align:right;font-variant-numeric:tabular-nums}.chip-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:.75rem 0}.chip{padding:.38rem .8rem;border:1px solid var(--border-strong);border-radius:var(--radius-full);background:var(--surface);cursor:pointer;font:inherit;font-size:.82rem;text-transform:capitalize;font-weight:550;transition:all .12s var(--ease)}.chip:hover{border-color:var(--primary);color:var(--primary)}.chip.active{background:var(--gray-900);border-color:var(--gray-900);color:#fff}.search-box{display:flex;align-items:center;gap:.4rem;padding:.38rem .7rem;border:1px solid var(--border-strong);border-radius:var(--radius-full);background:var(--surface);color:var(--muted);flex:0 1 300px;min-width:200px}.search-box svg{flex-shrink:0}.search-box input{border:none;outline:none;background:none;font:inherit;color:var(--text);width:100%;padding:0}.tabs{display:flex;flex-wrap:wrap;gap:.25rem;border-bottom:1px solid var(--border);margin-bottom:1.1rem;flex-shrink:0}.tab{padding:.55rem .95rem;border:none;background:none;cursor:pointer;font:inherit;font-weight:550;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .12s var(--ease);display:inline-flex;align-items:center;gap:.4rem}.tab:hover{color:var(--text)}.tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:650}.tab .tab-count{background:var(--gray-100);color:var(--muted-strong);font-size:.72rem;padding:.05rem .4rem;border-radius:var(--radius-full)}.tab.active .tab-count{background:var(--blue-100);color:var(--primary)}.dropdown{position:relative;display:inline-block}.dropdown-menu{position:absolute;right:0;top:calc(100% + 6px);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:215px;padding:.4rem;z-index:60;animation:pop-in .12s var(--ease)}.dropdown-menu.align-left{right:auto;left:0}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}.dropdown-item{display:flex;align-items:center;gap:.6rem;width:100%;padding:.6rem .75rem;border-radius:var(--radius-sm);border:none;background:none;font:inherit;font-size:.88rem;font-weight:500;color:var(--text);cursor:pointer;text-align:left;text-decoration:none;transition:background .12s var(--ease)}.dropdown-item:hover{background:var(--gray-100)}.dropdown-item.danger{color:var(--danger)}.dropdown-item.danger:hover{background:var(--red-50)}.dropdown-sep{height:1px;background:var(--border);margin:.3rem .2rem}.toast-viewport{position:fixed;bottom:1.25rem;right:1.25rem;z-index:100;display:flex;flex-direction:column-reverse;gap:.6rem;max-width:360px}.toast{display:flex;align-items:flex-start;gap:.6rem;background:var(--gray-900);color:#fff;padding:.75rem .9rem;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-size:.86rem;animation:toast-in .16s var(--ease)}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.toast-icon{flex-shrink:0;margin-top:.1rem}.toast.success .toast-icon{color:#6ee7b7}.toast.error .toast-icon{color:#fca5a5}.toast.info .toast-icon{color:#93c5fd}.toast-close{background:none;border:none;color:#fff9;cursor:pointer;padding:0;margin-left:auto;flex-shrink:0}.toast-close:hover{color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;display:grid;place-items:center;z-index:100;padding:1rem;animation:fade-in .12s var(--ease);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border-radius:var(--radius-lg);padding:1.5rem;max-width:440px;width:100%;box-shadow:var(--shadow-overlay);animation:modal-in .14s var(--ease)}.modal.wide{max-width:640px}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.modal-icon{width:42px;height:42px;border-radius:var(--radius-md);margin-bottom:.75rem;display:grid;place-items:center}.modal-icon.danger{background:var(--red-100);color:var(--danger)}.modal-icon.info{background:var(--blue-100);color:var(--primary)}.modal-icon.xl{width:64px;height:64px}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.25rem}.modal-backdrop:has(.tab-warning){background:#0f172ab8}.modal.tab-warning{max-width:480px;text-align:center;border:2px solid var(--danger);box-shadow:0 0 0 6px var(--red-50),var(--shadow-overlay)}.modal.tab-warning .modal-icon{margin-inline:auto}.modal.tab-warning h3{font-size:1.15rem}.modal.tab-warning .modal-actions{justify-content:center}.modal-icon.pulse{animation:tab-warning-pulse 1.4s ease-in-out infinite}@keyframes tab-warning-pulse{0%,to{box-shadow:0 0 0 0 var(--red-100)}50%{box-shadow:0 0 0 10px var(--red-100)}}.skeleton{position:relative;overflow:hidden;background:var(--gray-150);border-radius:var(--radius-sm)}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);animation:shimmer 1.4s infinite}@keyframes shimmer{to{transform:translate(100%)}}.skeleton-text{height:.85em;margin:.25rem 0;border-radius:5px}.skeleton-card{height:150px;border-radius:var(--radius-lg)}.skeleton-avatar{border-radius:50%}.skeleton-row{height:2.4rem;border-radius:var(--radius-sm);margin-bottom:.5rem}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2.75rem 1.5rem;color:var(--muted);gap:.4rem}.empty-state-icon{width:52px;height:52px;border-radius:50%;background:var(--gray-100);display:grid;place-items:center;color:var(--gray-400);margin-bottom:.4rem}.empty-state h3{color:var(--text);font-size:.95rem}.empty-state p{max-width:340px;font-size:.85rem}.progress-track{background:var(--gray-150);border-radius:var(--radius-full);height:8px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,var(--blue-500),var(--primary));height:100%;border-radius:var(--radius-full);transition:width .25s var(--ease)}.timeline{position:relative;padding-left:1.6rem}.timeline:before{content:"";position:absolute;left:5px;top:4px;bottom:4px;width:2px;background:var(--border)}.timeline-item{position:relative;padding-bottom:1.25rem}.timeline-item:last-child{padding-bottom:0}.timeline-dot{position:absolute;left:-1.6rem;top:.15rem;width:12px;height:12px;border-radius:50%;background:var(--surface);border:2px solid var(--primary)}.timeline-dot.ok{border-color:var(--ok)}.timeline-dot.warn{border-color:var(--warn)}.timeline-dot.neutral{border-color:var(--gray-400)}.timeline-label{font-weight:600;font-size:.88rem}.timeline-time{font-size:.76rem;color:var(--muted);margin-left:.5rem;font-variant-numeric:tabular-nums}.timeline-detail{font-size:.82rem;color:var(--muted);margin-top:.1rem}.kbd{display:inline-flex;align-items:center;justify-content:center;min-width:1.4rem;padding:.1rem .35rem;font-size:.72rem;font-weight:650;background:var(--gray-100);border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:5px;color:var(--muted-strong);font-family:inherit}.exam{height:100vh;height:100dvh;display:flex;flex-direction:column;background:var(--bg);overflow:hidden}.exam-bar{position:sticky;top:0;z-index:30;flex-shrink:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1rem;padding:.7rem 1.5rem;background:var(--surface);border-bottom:1px solid var(--border);transition:background .2s var(--ease)}.exam-bar>div:first-child{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.exam-bar-right{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;flex-shrink:0}.exam-progress{padding:0 1.5rem;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.exam-progress .progress-track{margin:.55rem 0}.exam-progress-label{display:flex;justify-content:space-between;font-size:.75rem;color:var(--muted);font-weight:600}.exam>.banner{flex-shrink:0}.timer{font-variant-numeric:tabular-nums;font-size:1.3rem;font-weight:700;padding:.2rem .7rem;border-radius:var(--radius-sm);background:var(--blue-50);color:var(--primary-dark);min-width:5.5rem;text-align:center;display:flex;align-items:center;gap:.4rem;justify-content:center;transition:background .3s var(--ease),color .3s var(--ease)}.exam-bar.low-time .timer{background:var(--amber-100);color:var(--amber-700)}.exam-bar.critical-time .timer{background:var(--red-100);color:var(--danger);animation:pulse-timer 1s infinite}@keyframes pulse-timer{0%,to{opacity:1}50%{opacity:.55}}.save-indicator{font-size:.78rem;color:var(--muted);display:flex;align-items:center;gap:.35rem;font-weight:550}.save-indicator svg{width:14px;height:14px}.save-indicator.saving{color:var(--primary)}.save-indicator.pending{color:var(--warn)}.save-indicator.offline{color:var(--danger);font-weight:600}.save-indicator.saved{color:var(--ok)}.exam-body{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:1.25rem;padding:1.25rem 1.5rem;align-items:stretch;flex:1;min-height:0;overflow:hidden}.question-pane{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-xs);display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.question-head{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1rem;flex-shrink:0}.pill{font-size:.74rem;padding:.22rem .6rem;font-weight:600;background:var(--gray-100);border-radius:var(--radius-full);color:var(--muted-strong)}.pill.danger{background:var(--red-100);color:var(--danger)}.review-toggle{margin-left:auto;font-size:.83rem;display:flex;align-items:center;gap:.4rem;font-weight:550;color:var(--muted-strong)}.question-body{font-size:1.02rem;margin:.5rem 0 1.1rem;white-space:pre-wrap}.question-fade{animation:q-fade .18s var(--ease);flex:1;min-height:0;overflow-y:auto}@keyframes q-fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.options{display:grid;gap:.55rem}.option{display:flex;align-items:flex-start;gap:.65rem;padding:.75rem .9rem;border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:border-color .12s var(--ease),background .12s var(--ease)}.option:hover{background:var(--gray-50);border-color:var(--border-strong)}.option.selected{border-color:var(--primary);background:var(--blue-50)}.option-letter{font-weight:700;color:var(--muted);min-width:1.3rem}.option.selected .option-letter{color:var(--primary)}.di-stimulus{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-md);padding:1rem;margin-bottom:1.1rem}.di-image{max-width:100%;border-radius:var(--radius-sm)}.di-passage{font-family:ui-monospace,monospace;font-size:.85rem}.di-context{margin-bottom:.75rem}.code-block{background:var(--gray-900);color:#e2e8f0;padding:.8rem;border-radius:var(--radius-sm);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;overflow-x:auto}.code-block.small{padding:.45rem;font-size:.78rem;max-width:220px}.nav-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem;margin-top:1.5rem;align-items:center;flex-shrink:0}.nav-hint{font-size:.76rem;color:var(--muted);display:flex;gap:.35rem;align-items:center}.nav-next-group{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.nav-next-group .review-toggle{margin-left:0}.palette{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.1rem;height:100%;min-height:0;overflow-y:auto;box-shadow:var(--shadow-xs)}.palette-stats{display:flex;gap:.75rem;margin-bottom:1rem}.palette-stats>div{flex:1;text-align:center;background:var(--surface-sunken);border-radius:var(--radius-sm);padding:.55rem}.palette-stats strong{display:block;font-size:1.2rem}.palette-stats span{font-size:.68rem;color:var(--muted);text-transform:uppercase;font-weight:600}.palette-section h4{font-size:.76rem;color:var(--muted);margin:.85rem 0 .45rem;text-transform:uppercase;letter-spacing:.02em;font-weight:650}.palette-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(34px,1fr));gap:.32rem}.palette-cell{aspect-ratio:1;border:1px solid var(--border);border-radius:6px;background:var(--surface);cursor:pointer;font-size:.8rem;padding:0;font-weight:600;transition:transform .08s var(--ease)}.palette-cell:hover{background:var(--gray-100);transform:translateY(-1px)}.palette-cell.answered{background:var(--green-100);border-color:#6ee7b7;color:var(--green-700)}.palette-cell.review{background:var(--amber-100);border-color:#fcd34d;color:var(--amber-700)}.palette-cell.active{outline:2px solid var(--primary);outline-offset:1px}.legend{display:grid;gap:.35rem;margin-top:1rem;font-size:.75rem;color:var(--muted)}.legend span{display:flex;align-items:center;gap:.4rem}.swatch{width:12px;height:12px;border:1px solid var(--border);border-radius:3px;display:inline-block}.swatch.answered{background:var(--green-100);border-color:#6ee7b7}.swatch.review{background:var(--amber-100);border-color:#fcd34d}.coding-workspace{display:grid;height:100%;min-height:0;overflow-x:auto;overflow-y:hidden;padding:1rem 1.25rem;align-items:stretch}.coding-workspace>.splitter-horizontal{width:100%;height:100%;margin:0;align-self:stretch}.cw-pane{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);height:100%;min-height:0;min-width:0;display:flex;flex-direction:column;overflow:hidden}.cw-pane.cw-nav{display:block;overflow-y:auto;overflow-x:hidden;padding:1.1rem}.cw-pane-head{flex-shrink:0;padding:.85rem 1rem .65rem;border-bottom:1px solid var(--border)}.cw-pane-head .question-head{margin-bottom:0}.cw-pane-body{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.cw-pane-foot{flex-shrink:0;padding:.4rem .85rem;border-top:1px solid var(--border)}.cw-pane-foot .nav-row{margin-top:0;gap:.4rem}.cw-pane-foot .btn{padding:.32rem .6rem;font-size:.8rem}.cw-pane-foot .nav-hint{display:none}.cw-pane-foot .review-toggle{font-size:.78rem;gap:.3rem}.cw-problem-scroll{flex:1;min-height:0;overflow-y:auto;padding:1rem}.cw-editor-inner{height:100%;min-height:0;display:flex;flex-direction:column;padding:.85rem 1rem;overflow-y:auto}.collapsible+.collapsible{margin-top:.9rem;padding-top:.9rem;border-top:1px solid var(--border)}.collapsible-head{display:flex;align-items:center;gap:.4rem;width:100%;text-align:left;border:none;background:none;padding:0;font:inherit;font-weight:650;cursor:pointer;color:var(--text)}.collapsible-body{margin-top:.6rem}.markdown-body{font-size:.9rem;line-height:1.55}.markdown-body :first-child{margin-top:0}.markdown-body :last-child{margin-bottom:0}.markdown-body p,.markdown-body ul,.markdown-body ol{margin:.5rem 0}.markdown-body ul,.markdown-body ol{padding-left:1.3rem}.markdown-body pre{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:.5rem .65rem;overflow-x:auto;margin:.5rem 0}.markdown-body code{font-family:ui-monospace,SF Mono,Consolas,monospace;font-size:.85em}.markdown-body :not(pre)>code{background:var(--surface);padding:.05rem .3rem;border-radius:4px}.markdown-body table{border-collapse:collapse;margin:.5rem 0;width:100%}.markdown-body th,.markdown-body td{border:1px solid var(--border);padding:.35rem .55rem;text-align:left}.markdown-body img{max-width:100%;border-radius:6px}.example-card{border:1px solid var(--border);border-radius:var(--radius-md);padding:.75rem .9rem;margin-bottom:.75rem;background:var(--surface)}.example-card-title{font-weight:650;margin-bottom:.5rem}.example-card-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.example-card-grid pre{background:var(--surface-sunken);border:1px solid var(--border);border-radius:6px;padding:.4rem .55rem}.example-card-explanation{margin-top:.6rem;padding-top:.6rem;border-top:1px dashed var(--border)}.sql-warning{display:flex;align-items:flex-start;gap:.4rem;font-size:.8rem;color:var(--danger);background:var(--danger-soft);border:1px solid var(--red-100);border-radius:var(--radius-sm);padding:.5rem .65rem;margin:0 0 .6rem}.sql-warning svg{flex-shrink:0;margin-top:.1rem}.sql-table-block{margin-bottom:.75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);padding:.6rem .7rem}.sql-table-block:last-child{margin-bottom:0}.sql-table-name{display:flex;align-items:center;gap:.4rem;width:100%;text-align:left;border:none;background:none;padding:0;cursor:pointer;color:var(--text);font-weight:650;font-size:.85rem;margin-bottom:.35rem;font-family:ui-monospace,SF Mono,Consolas,monospace}.sql-table-name .sql-eq{color:var(--muted);font-weight:500}.sql-table-row-count{font-weight:500;font-size:.72rem;text-transform:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;margin-left:auto}.sql-col-name{margin-right:.3rem}.sql-key-tag{display:inline-flex;align-items:center;gap:.15rem;font-size:.6rem;font-weight:700;letter-spacing:.02em;border-radius:4px;padding:.05rem .3rem;margin-right:.3rem;text-transform:none;vertical-align:middle}.sql-key-tag.pk{background:var(--amber-100);color:var(--amber-700)}.sql-key-tag.fk{background:var(--blue-100);color:var(--primary)}.sql-col-type{display:block;font-weight:500;font-size:.66rem;color:var(--muted);text-transform:lowercase;letter-spacing:.01em}.sql-data-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-sm)}.sql-data-table,.sql-result-table{width:100%;border-collapse:collapse;font-size:.78rem;font-family:ui-monospace,SF Mono,Consolas,monospace}.sql-data-table th,.sql-data-table td,.sql-result-table th,.sql-result-table td{text-align:left;padding:.35rem .6rem;border-bottom:1px solid var(--border);border-right:1px solid var(--border);white-space:nowrap}.sql-data-table th:last-child,.sql-data-table td:last-child,.sql-result-table th:last-child,.sql-result-table td:last-child{border-right:none}.sql-data-table tr:last-child td,.sql-result-table tr:last-child td{border-bottom:none}.sql-data-table th,.sql-result-table th{background:var(--surface-sunken);color:var(--text);font-weight:650}.sql-more-rows{margin-top:.3rem}.sql-result-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-sm)}.sql-result-table-wrap{overflow-x:auto}.sql-row-mismatch td{background:var(--red-50);color:var(--red-700)}.sql-stderr{background:var(--red-50);border:1px solid var(--red-100);color:var(--red-700);border-radius:var(--radius-sm);padding:.4rem .55rem;font-size:.78rem;white-space:pre-wrap;overflow-x:auto}.sql-schema-preview.compact .sql-table-block{margin-bottom:.55rem}.sql-schema-preview.compact .sql-data-table,.sql-result-table-wrap.compact .sql-result-table{font-size:.72rem}.sql-schema-preview.compact .sql-data-table th,.sql-schema-preview.compact .sql-data-table td,.sql-result-table-wrap.compact .sql-result-table th,.sql-result-table-wrap.compact .sql-result-table td{padding:.2rem .4rem}.sql-result-caption{padding:.35rem .1rem 0}.sql-problem-pane{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}.sql-problem-top{flex-shrink:0;max-height:40%;overflow-y:auto;padding:.85rem 1rem .6rem}.sql-schema-collapsible{border-top:1px solid var(--border);margin:0;padding:0;display:flex;flex-direction:column;min-height:0}.sql-schema-collapsible:has(.collapsible-body){flex:1}.sql-schema-collapsible:not(:has(.collapsible-body)){flex:0 0 auto}.sql-schema-collapsible .collapsible-head{flex-shrink:0;font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted-strong);padding:.75rem 1rem .5rem}.sql-schema-collapsible .collapsible-body{flex:1;min-height:0;display:flex;flex-direction:column;margin-top:0}.sql-schema-empty{padding:0 1rem 1rem}.sql-schema-scroll-wrap{position:relative;flex:1;min-height:0}.sql-schema-scroll{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overflow-x:hidden;padding:0 1rem 1rem}.sql-schema-scroll{scrollbar-width:auto;scrollbar-color:var(--gray-400) transparent}.sql-schema-scroll::-webkit-scrollbar{width:14px}.sql-schema-scroll::-webkit-scrollbar-track{background:transparent}.sql-schema-scroll::-webkit-scrollbar-thumb{background:var(--gray-400);border-radius:999px;border:3px solid var(--surface-sunken)}.sql-schema-scroll::-webkit-scrollbar-thumb:hover{background:var(--gray-500)}.sql-scroll-shadow{position:absolute;left:0;right:14px;height:28px;pointer-events:none;opacity:0;transition:opacity .15s ease;z-index:1}.sql-scroll-shadow.visible{opacity:1}.sql-scroll-shadow.top{top:0;background:linear-gradient(to bottom,rgba(15,23,42,.16),transparent)}.sql-scroll-shadow.bottom{bottom:0;background:linear-gradient(to top,rgba(15,23,42,.18),transparent)}.sql-dialect-badge{display:inline-flex;align-items:center;font-size:.72rem;font-weight:650;background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.2rem .55rem;color:var(--text)}.sql-results-panel{margin-top:.6rem;min-width:0;overflow-y:auto;display:flex;flex-direction:column;gap:.6rem}.sql-case-chip-row{display:flex;gap:.4rem;flex-wrap:wrap}.sql-case-chip{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);padding:.3rem .75rem;font-size:.8rem;font-weight:600;cursor:pointer;color:var(--text)}.sql-case-chip:hover{background:var(--gray-100)}.sql-case-chip.active{border-color:var(--primary);color:var(--primary);background:var(--blue-100)}.sql-result-columns{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;align-items:start}.sql-result-heading{font-size:.78rem;font-weight:650;color:var(--muted-strong);margin-bottom:.35rem}.sql-error-panel{display:flex;align-items:flex-start;gap:.5rem;color:var(--red-700);background:var(--red-50);border:1px solid var(--red-100);border-radius:var(--radius-sm);padding:.6rem .75rem}.sql-error-panel svg{flex-shrink:0;margin-top:.15rem}.sql-error-panel pre{margin:0;white-space:pre-wrap;font-size:.8rem;background:none;border:none;padding:0}.modal.xlarge{max-width:1100px}.sql-preview-modal{padding:1.1rem 1.25rem;max-height:85vh;display:flex;flex-direction:column}.sql-preview-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.sql-preview-header h3{margin:0}.sql-preview-body{display:grid;grid-template-columns:1fr 1fr;gap:1rem;overflow-y:auto;min-height:0}.sql-preview-left,.sql-preview-right{overflow-y:auto;min-height:0}.sql-preview-editor{background:#1e1e1e;color:#d4d4d4;border-radius:var(--radius-sm);padding:.75rem;font-size:.82rem;white-space:pre-wrap;margin:.5rem 0}@media(max-width:900px){.sql-preview-body{grid-template-columns:1fr}}.editor-bar{display:flex;align-items:center;gap:.75rem;margin-bottom:.6rem;flex-wrap:wrap;flex-shrink:0}.editor-bar select{width:auto}.editor-bar .run-target{margin-left:auto}.cw-bottom-chrome{flex-shrink:0}.editor-frame{border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;min-height:0}.bottom-panel{margin-top:.6rem;overflow-y:auto;display:flex;flex-direction:column}.target-case-list{display:flex;flex-direction:column;gap:.5rem}.target-case{display:flex;align-items:center;gap:.6rem;text-align:left;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);padding:.5rem .7rem;cursor:pointer;font:inherit}.target-case:hover{border-color:var(--border-strong)}.target-case.active{border-color:var(--primary);box-shadow:0 0 0 3px var(--blue-100)}.target-case-label{font-weight:650;flex-shrink:0}.target-case pre{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted-strong)}.custom-input-panel{display:flex;flex-direction:column;gap:.4rem}.custom-input-panel textarea{font-family:ui-monospace,SF Mono,Consolas,monospace}.console-panel{border:1px solid var(--border);border-radius:var(--radius-md);padding:.9rem;background:var(--surface-sunken)}.splitter{flex-shrink:0}.splitter-horizontal{width:13px;margin:0 -3px;cursor:col-resize;align-self:stretch;position:relative;z-index:1}.splitter-horizontal:after{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;background:var(--border);transform:translate(-50%)}.splitter-horizontal:before{content:"";position:absolute;top:50%;left:50%;width:5px;height:40px;background:var(--gray-400);border-radius:999px;transform:translate(-50%,-50%);transition:background .12s var(--ease),height .12s var(--ease)}.splitter-horizontal:hover:after,.splitter-horizontal:active:after{background:var(--primary)}.splitter-horizontal:hover:before,.splitter-horizontal:active:before{background:var(--primary);height:56px}.splitter-vertical{height:13px;margin:-3px 0;cursor:row-resize;position:relative;z-index:1}.splitter-vertical:after{content:"";position:absolute;top:50%;left:0;right:0;height:2px;background:var(--border);transform:translateY(-50%)}.splitter-vertical:before{content:"";position:absolute;top:50%;left:50%;width:40px;height:5px;background:var(--gray-400);border-radius:999px;transform:translate(-50%,-50%);transition:background .12s var(--ease),width .12s var(--ease)}.splitter-vertical:hover:after,.splitter-vertical:active:after{background:var(--primary)}.splitter-vertical:hover:before,.splitter-vertical:active:before{background:var(--primary);width:64px}.run-output{border:1px solid var(--border);border-radius:var(--radius-md);padding:.9rem;background:var(--surface-sunken)}.verdict{font-weight:650;margin-bottom:.5rem;display:flex;align-items:center;gap:.4rem}.verdict.pass{color:var(--ok)}.verdict.fail{color:var(--danger)}.case{margin-bottom:.5rem;font-size:.85rem}.case .ok{color:var(--ok);font-weight:600}.case .bad{color:var(--danger);font-weight:600}.verdict-pill{display:inline-flex;align-items:center;font-weight:650;font-size:.8rem;padding:.15rem .55rem;border-radius:var(--radius-full);border:1px solid transparent}.verdict-pill.ok{color:var(--green-700);background:var(--green-100);border-color:#6ee7b7}.verdict-pill.bad{color:var(--red-700);background:var(--red-100);border-color:var(--red-600)}.verdict-pill.warn{color:var(--amber-700);background:var(--amber-100);border-color:#fcd34d}.case-detail{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.5rem;margin-top:.35rem}.case-detail pre{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:.3rem .5rem}.filter-bar{display:flex;flex-direction:column;gap:.75rem}.filter-primary{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end}.filter-more-toggle{font-size:.82rem;font-weight:600;color:var(--primary);background:none;border:none;cursor:pointer;padding:.3rem 0;display:inline-flex;align-items:center;gap:.3rem}.filter-more{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end;padding-top:.75rem;border-top:1px dashed var(--border)}.question-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);margin-bottom:.65rem;overflow:hidden}.question-card-head{display:flex;align-items:center;gap:.6rem;padding:.7rem .85rem;cursor:pointer;-webkit-user-select:none;user-select:none}.question-card-head:hover{background:var(--gray-50)}.question-card-body{padding:0 .85rem .9rem;border-top:1px solid var(--border)}.drag-handle{cursor:grab;color:var(--gray-400);display:flex;align-items:center;flex-shrink:0;padding:.2rem;border-radius:4px}.drag-handle:hover{color:var(--muted-strong);background:var(--gray-100)}.drag-handle:active{cursor:grabbing}.question-card.dragging{opacity:.5}.question-card.drop-target{border-color:var(--primary);box-shadow:0 0 0 3px var(--blue-100)}.question-row-head{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.chevron{transition:transform .14s var(--ease);color:var(--muted);flex-shrink:0}.chevron.open{transform:rotate(90deg)}.tag-input-row{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;padding:.4rem .5rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm)}.tag-input-row input{border:none;padding:.15rem;flex:1;min-width:90px;box-shadow:none!important}.tag-chip{display:inline-flex;align-items:center;gap:.25rem;background:var(--gray-100);color:var(--muted-strong);font-size:.76rem;font-weight:600;padding:.15rem .5rem;border-radius:var(--radius-full)}.tag-chip button{border:none;background:none;cursor:pointer;color:inherit;padding:0;display:flex;opacity:.6}.tag-chip button:hover{opacity:1}.difficulty-picker{display:flex;gap:.4rem}.difficulty-option{border:1px solid var(--border-strong);border-radius:var(--radius-full);padding:.3rem .75rem;font-size:.78rem;font-weight:650;cursor:pointer;background:var(--surface);color:var(--muted-strong);text-transform:capitalize}.difficulty-option.selected.easy{background:var(--green-100);border-color:var(--green-600);color:var(--green-700)}.difficulty-option.selected.medium{background:var(--amber-100);border-color:var(--amber-600);color:var(--amber-700)}.difficulty-option.selected.hard{background:var(--red-100);border-color:var(--red-600);color:var(--red-700)}.explanation-block{background:var(--violet-50);border:1px solid var(--violet-100);border-radius:var(--radius-sm);padding:.6rem .75rem;font-size:.84rem;margin-top:.6rem}.bank-panel{display:flex;flex-direction:column;gap:.6rem}.bank-item{display:flex;align-items:center;gap:.75rem;padding:.65rem .8rem;border:1px solid var(--border);border-radius:var(--radius-md)}.bank-item .grow{min-width:0}.bank-item .body-preview{font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bank-item .bank-meta{font-size:.75rem;color:var(--muted);display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.2rem}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--ok);display:inline-block;animation:pulse-dot 1.6s infinite;flex-shrink:0}@keyframes pulse-dot{0%{box-shadow:0 0 #05966966}70%{box-shadow:0 0 0 6px #05966900}to{box-shadow:0 0 #05966900}}.meta{display:flex;gap:1.5rem;margin:.75rem 0;flex-wrap:wrap}.meta.stacked{display:grid;gap:.5rem;text-align:left}.meta dt{font-size:.68rem;text-transform:uppercase;color:var(--muted);font-weight:650;letter-spacing:.02em}.meta dd{margin:0;font-weight:600}.bars{display:grid;gap:.55rem}.bar-row{display:grid;grid-template-columns:70px 1fr 40px;gap:.75rem;align-items:center;font-size:.85rem}.bar-track{background:var(--gray-150);border-radius:var(--radius-full);height:18px;overflow:hidden}.bar-fill{background:linear-gradient(90deg,var(--blue-500),var(--primary));height:100%;border-radius:var(--radius-full);min-width:2px;transition:width .3s var(--ease)}.bar-value{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.option-row{display:flex!important;align-items:center;gap:.5rem}@media(max-width:1200px){.exam-body{grid-template-columns:minmax(0,1fr) 250px}}@media(max-width:980px){.exam:not(:has(.coding-workspace)){height:auto;overflow:visible}.exam-body{grid-template-columns:minmax(0,1fr);flex:none;overflow:visible}.question-pane{height:auto;min-height:60vh;overflow:visible}.question-fade{flex:none;overflow:visible}.palette{position:static;max-height:none;height:auto;order:-1}}@media(max-width:640px){.table{font-size:.8rem}.row-form,.filter-primary,.filter-more{flex-direction:column;align-items:stretch}.app-page{padding:1rem}.stat-row{grid-template-columns:repeat(2,1fr)}}.editor-loading{display:grid;place-items:center;background:#1e1e1e;color:#9ca3af;border-radius:var(--radius-sm);font-size:.85rem}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.no-exec-notice{display:flex;align-items:center;gap:.4rem;margin:0 0 0 auto;font-size:.8rem;color:var(--muted-strong);text-align:right}.no-exec-notice svg{flex-shrink:0}.no-exec-notice-warning{color:#dc2626;font-weight:600}.target-case.static{cursor:default;flex-direction:column;align-items:stretch;gap:.25rem}.target-case.static:hover{border-color:var(--border)}.target-case.static pre{white-space:pre-wrap;overflow:visible;text-overflow:clip}.sql-example-block{margin-bottom:.75rem}.banner.review-flag{background:var(--warn-soft);border-color:var(--amber-100);color:var(--amber-700)}.checkbox-inline{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem}.active-row{background:var(--surface-sunken)}.ai-recommended{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;font-size:1rem;margin:.5rem 0 .9rem}.ai-recommended strong{font-size:1.15rem}.final-score-row{display:flex;align-items:flex-end;gap:.6rem;flex-wrap:wrap;margin-bottom:.8rem}.final-score-row input{width:7rem}.rubric-why{display:block;max-width:46ch}.rubric-criterion-desc{display:block;margin-top:.3rem;opacity:.75;max-width:46ch}
