:root{--bg: #f6f7f9;--surface: #ffffff;--surface-2: #f8fafc;--ink: #0f172a;--ink-2: #334155;--muted: #64748b;--line: #e2e8f0;--line-strong: #cbd5e1;--accent: #4f46e5;--accent-ink: #ffffff;--accent-soft: #eef2ff;--focus: rgba(79, 70, 229, .28);--ac: #059669;--ac-bg: #ecfdf5;--wa: #dc2626;--wa-bg: #fef2f2;--ce: #7c3aed;--ce-bg: #f5f3ff;--re: #c2410c;--re-bg: #fff7ed;--tle: #b45309;--tle-bg: #fffbeb;--mle: #be185d;--mle-bg: #fdf2f8;--pend: #64748b;--pend-bg: #f1f5f9;--radius: 12px;--shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 1px 3px rgba(15, 23, 42, .06);--font: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;--mono: "JetBrains Mono", "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #0b0f17;--surface: #121826;--surface-2: #0f1522;--ink: #e5e7eb;--ink-2: #cbd5e1;--muted: #8b95a7;--line: #232b3b;--line-strong: #334155;--accent: #818cf8;--accent-ink: #0b0f17;--accent-soft: #1e1b4b;--focus: rgba(129, 140, 248, .35);--ac: #34d399;--ac-bg: rgba(52, 211, 153, .12);--wa: #f87171;--wa-bg: rgba(248, 113, 113, .12);--ce: #a78bfa;--ce-bg: rgba(167, 139, 250, .12);--re: #fb923c;--re-bg: rgba(251, 146, 60, .12);--tle: #fbbf24;--tle-bg: rgba(251, 191, 36, .12);--mle: #f472b6;--mle-bg: rgba(244, 114, 182, .12);--pend: #94a3b8;--pend-bg: rgba(148, 163, 184, .12);--shadow: none;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{letter-spacing:-.02em;line-height:1.3;margin:0}h1{font-size:1.75rem;font-weight:750}h2{font-size:1.125rem;font-weight:700}h3{font-size:.95rem;font-weight:650}pre,code,.mono{font-family:var(--mono);font-feature-settings:"zero" 0}.mono{font-size:.92em}.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center}.right{text-align:right!important}.spacer{flex:1}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:16px}.app{min-height:100vh;display:flex;flex-direction:column}.main{flex:1}.topbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--line)}.topbar-inner{max-width:1360px;margin:0 auto;padding:0 20px;height:60px;display:flex;align-items:center;gap:28px}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);font-weight:750;letter-spacing:-.02em}.brand:hover{text-decoration:none}.brand-mark{width:30px;height:30px;border-radius:8px;background:#0f172a;color:#a5b4fc;display:grid;place-items:center;font-family:var(--mono);font-size:13px;font-weight:700;box-shadow:inset 0 0 0 1px #ffffff14}.brand-name{font-size:1.05rem}.nav{display:flex;gap:4px}.nav a{color:var(--ink-2);padding:6px 12px;border-radius:8px;font-weight:550;font-size:.95rem}.nav a:hover{background:var(--surface-2);text-decoration:none}.nav a.active{color:var(--ink);background:var(--accent-soft)}.nav-right{margin-left:auto;display:flex;gap:8px;align-items:center}.user-menu{position:relative}.user-button{display:flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;font:inherit;font-weight:600}.avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#6366f1,#06b6d4);color:#fff;font-size:13px;font-weight:700}.dropdown{position:absolute;right:0;top:calc(100% + 8px);min-width:220px;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px #0f172a24;display:flex;flex-direction:column}.dropdown-head{padding:10px 12px;border-bottom:1px solid var(--line);margin-bottom:4px;display:flex;flex-direction:column}.dropdown-head span{color:var(--muted);font-size:.82rem}.dropdown a,.dropdown button{text-align:left;padding:8px 12px;border-radius:8px;color:var(--ink);background:none;border:0;font:inherit;cursor:pointer}.dropdown a:hover,.dropdown button:hover{background:var(--surface-2);text-decoration:none}.footer{padding:28px 20px;text-align:center;color:var(--muted);font-size:.85rem;border-top:1px solid var(--line)}.footer .dot{margin:0 8px}.page{max-width:1120px;margin:0 auto;padding:36px 20px 56px}.page-wide{max-width:1360px}.page-narrow{max-width:680px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.page-head p{margin:4px 0 0}.loading{color:var(--muted);display:flex;gap:10px;align-items:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:40px;padding:0 18px;border-radius:10px;border:1px solid transparent;font:inherit;font-weight:650;font-size:.95rem;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,transform .05s}.btn:hover{text-decoration:none}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--ink);color:var(--bg)}.btn-primary:hover:not(:disabled){background:var(--ink-2)}.btn-ghost{background:var(--surface);color:var(--ink);border-color:var(--line)}.btn-ghost:hover:not(:disabled){border-color:var(--line-strong);background:var(--surface-2)}.btn-danger{background:var(--wa);color:#fff}.btn-danger-outline{background:transparent;color:var(--wa);border-color:color-mix(in srgb,var(--wa) 40%,transparent)}.btn-danger-outline:hover{background:var(--wa-bg)}.btn-sm{height:34px;padding:0 14px;font-size:.88rem}.btn-lg{height:48px;padding:0 24px;font-size:1rem}.btn-block{width:100%}.linklike{background:none;border:0;padding:0;color:var(--accent);cursor:pointer;font:inherit}.linklike:hover:not(:disabled){text-decoration:underline}.linklike:disabled{color:var(--muted);cursor:default}.linklike.danger{color:var(--wa)}.input{width:100%;height:42px;padding:0 12px;border-radius:10px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font:inherit;outline:none;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--focus)}.textarea{height:auto;padding:10px 12px;resize:vertical;line-height:1.55}.select{width:auto;height:36px;padding-right:28px;font-size:.9rem}.search{max-width:280px}.field{display:flex;flex-direction:column;gap:6px;font-size:.9rem;font-weight:600;color:var(--ink-2)}.field-row{display:flex;justify-content:space-between;align-items:center;gap:8px}.field .small{font-weight:500}.hint{color:var(--muted);font-weight:450;font-size:.8rem}.checkbox-field{flex-direction:row;align-items:center;gap:8px;display:flex;font-weight:600;font-size:.9rem}.checkbox-field input{width:16px;height:16px;accent-color:var(--accent)}.alert{padding:11px 14px;border-radius:10px;font-size:.9rem;border:1px solid}.alert-error{background:var(--wa-bg);color:var(--wa);border-color:color-mix(in srgb,var(--wa) 25%,transparent)}.alert-info{background:var(--accent-soft);color:var(--ink-2);border-color:color-mix(in srgb,var(--accent) 25%,transparent)}.alert-success{background:var(--ac-bg);color:var(--ac);border-color:color-mix(in srgb,var(--ac) 25%,transparent)}.page>.alert{margin-bottom:16px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.card+.card{margin-top:16px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.muted-card{color:var(--muted);text-align:center}.tag{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:999px;font-size:.72rem;font-weight:650;background:var(--pend-bg);color:var(--pend);vertical-align:2px}.tag-ac{background:var(--ac-bg);color:var(--ac)}.tag-tried{background:var(--wa-bg);color:var(--wa)}.spinner{display:inline-block;width:12px;height:12px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite;vertical-align:-1px}@keyframes spin{to{transform:rotate(360deg)}}.table-wrap{padding:0;overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:.92rem}.table th{text-align:left;font-weight:600;font-size:.8rem;color:var(--muted);text-transform:none;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--surface-2);white-space:nowrap}.table td{padding:12px 16px;border-bottom:1px solid var(--line);white-space:nowrap}.table tr:last-child td{border-bottom:0}.table tbody tr:hover{background:var(--surface-2)}.col-num{width:90px}.table .empty{text-align:center;color:var(--muted);padding:40px}.problem-link{color:var(--ink);font-weight:600}.row-ac .problem-link{color:var(--ac)}.row-tried .problem-link{color:var(--wa)}.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px;align-items:center}.filters .input{width:140px;height:36px;font-size:.9rem}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font:inherit;font-size:.85rem;font-weight:550;cursor:pointer}.chip.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.status{font-weight:700;display:inline-flex;align-items:center;gap:6px}.status-ac{color:var(--ac)}.status-wa{color:var(--wa)}.status-ce{color:var(--ce)}.status-re,.status-ole{color:var(--re)}.status-tle{color:var(--tle)}.status-mle{color:var(--mle)}.status-pending,.status-compiling,.status-running,.status-se{color:var(--pend)}.status-running{color:var(--accent)}.progress{height:6px;border-radius:99px;background:var(--pend-bg);overflow:hidden;margin-top:12px}.progress>div{height:100%;background:var(--accent);border-radius:99px;transition:width .3s}.problem-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:28px;align-items:start}.problem-statement{min-width:0}.problem-title{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.problem-id{color:var(--muted);font-size:1.2rem;font-weight:600}.limits{display:flex;flex-wrap:wrap;gap:8px 28px;margin:18px 0 8px;padding:14px 18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.limits>div{display:flex;flex-direction:column;font-size:.8rem;color:var(--muted)}.limits strong{color:var(--ink);font-size:.98rem}.limits-links{margin-left:auto;flex-direction:row!important;gap:14px;align-items:center;font-size:.88rem!important}.problem-statement section{margin-top:28px}.problem-statement section>h2{font-size:1.05rem;padding-bottom:8px;margin-bottom:12px;border-bottom:2px solid var(--accent);display:inline-block}.prose{color:var(--ink-2);line-height:1.8;overflow-wrap:anywhere}.prose p{margin:0 0 12px}.prose code{background:var(--surface-2);border:1px solid var(--line);padding:1px 6px;border-radius:6px;font-size:.88em}.prose pre{background:var(--surface-2);border:1px solid var(--line);padding:12px;border-radius:10px;overflow-x:auto}.prose table{border-collapse:collapse}.prose th,.prose td{border:1px solid var(--line);padding:6px 10px}.samples{display:grid;grid-template-columns:1fr 1fr;gap:14px}.sample-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.sample pre,.tc pre,.compile-output{margin:0;padding:12px 14px;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;font-size:.88rem;line-height:1.55;overflow-x:auto;white-space:pre;min-height:44px}.copy-btn{font:inherit;font-size:.75rem;font-weight:600;padding:2px 10px;border-radius:6px;border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer}.copy-btn:hover{color:var(--ink);border-color:var(--line-strong)}.submit-panel{position:sticky;top:80px;display:flex;flex-direction:column;gap:16px}.submit-panel .card+.card{margin-top:0}.editor{border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:14px}.editor .cm-editor{font-family:var(--mono)}.editor .cm-editor.cm-focused{outline:none}.editor .cm-scroller{font-family:var(--mono);line-height:1.6}.submit-panel .editor .cm-editor{max-height:60vh}.submit-bar{display:flex;justify-content:space-between;align-items:center;margin-top:12px;gap:10px}.submit-panel .alert{margin-top:12px}.result-card{border-left:4px solid var(--pend)}.result-ac{border-left-color:var(--ac);background:linear-gradient(90deg,var(--ac-bg),var(--surface) 60%)}.result-wa{border-left-color:var(--wa)}.result-ce{border-left-color:var(--ce)}.result-re,.result-ole{border-left-color:var(--re)}.result-tle{border-left-color:var(--tle)}.result-mle{border-left-color:var(--mle)}.result-running,.result-compiling{border-left-color:var(--accent)}.result-top{display:flex;justify-content:space-between;align-items:center;font-size:1.1rem}.result-stats{display:flex;gap:16px;flex-wrap:wrap;margin-top:6px;font-size:.88rem;font-family:var(--mono)}.mini-list{list-style:none;margin:0;padding:0}.mini-list li{display:grid;grid-template-columns:72px 1fr auto;gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:.9rem;align-items:center}.mini-list li:first-child{border-top:0;padding-top:0}.verdict{border-left:4px solid var(--pend)}.verdict-ac{border-left-color:var(--ac)}.verdict-wa{border-left-color:var(--wa)}.verdict-ce{border-left-color:var(--ce)}.verdict-re,.verdict-ole{border-left-color:var(--re)}.verdict-tle{border-left-color:var(--tle)}.verdict-mle{border-left-color:var(--mle)}.verdict-running{border-left-color:var(--accent)}.verdict-main{display:flex;align-items:baseline;gap:12px;font-size:1.4rem}.verdict-en{color:var(--muted);font-size:.95rem;font-family:var(--mono)}.verdict-stats{display:flex;flex-wrap:wrap;gap:10px 36px;margin:16px 0 0}.verdict-stats div{display:flex;flex-direction:column}.verdict-stats dt{font-size:.78rem;color:var(--muted)}.verdict-stats dd{margin:0;font-weight:650}.verdict-detail{margin:14px 0 0;color:var(--ink-2);font-size:.9rem}.compile-output{color:var(--ce);max-height:420px;overflow:auto}.auth-page{min-height:calc(100vh - 140px);display:grid;place-items:center;padding:40px 16px}.auth-card{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:32px;box-shadow:0 8px 30px #0f172a0f;display:flex;flex-direction:column;gap:16px}.auth-card form{display:flex;flex-direction:column;gap:16px}.auth-card h1{font-size:1.5rem}.auth-card h1+.muted{margin:-8px 0 4px}.auth-foot{text-align:center;margin:4px 0 0;font-size:.9rem;color:var(--muted)}.steps{list-style:none;display:flex;gap:8px;padding:0;margin:0 0 4px;font-size:.8rem;color:var(--muted);font-weight:600}.steps li{display:flex;align-items:center;gap:6px;flex:1;padding-bottom:8px;border-bottom:2px solid var(--line)}.steps li span{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:.72rem;background:var(--pend-bg);color:var(--muted)}.steps li.active{color:var(--ink);border-color:var(--accent)}.steps li.active span{background:var(--accent);color:var(--accent-ink)}.steps li.done{color:var(--ac);border-color:var(--ac)}.steps li.done span{background:var(--ac);color:#fff}.code-input{display:flex;gap:8px;justify-content:space-between}.code-input input{width:100%;max-width:52px;height:56px;text-align:center;font-family:var(--mono);font-size:1.5rem;font-weight:700;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--ink);outline:none}.code-input input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--focus)}.big-check{width:56px;height:56px;margin:0 auto;border-radius:50%;display:grid;place-items:center;background:var(--ac-bg);color:var(--ac);font-size:1.6rem;font-weight:700}.settings-section h2{margin-bottom:14px}.profile{margin:0;display:flex;flex-direction:column}.profile div{display:grid;grid-template-columns:100px 1fr;padding:10px 0;border-top:1px solid var(--line)}.profile div:first-child{border-top:0}.profile dt{color:var(--muted);font-size:.9rem}.profile dd{margin:0;font-weight:600;overflow-wrap:anywhere}.profile .tag{margin-left:6px}.danger-zone{border-color:color-mix(in srgb,var(--wa) 30%,var(--line))}.danger-zone h2{color:var(--wa)}.danger-zone p{margin:-6px 0 14px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;align-items:end}.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.seg button{font:inherit;font-size:.78rem;padding:3px 10px;border:0;background:var(--surface);color:var(--muted);cursor:pointer}.seg button.active{background:var(--ink);color:var(--bg)}.preview-box{min-height:120px;padding:12px;border:1px dashed var(--line-strong);border-radius:10px;font-weight:400}.admin-form+.card{margin-top:20px}.tc-list{display:flex;flex-direction:column;gap:12px;margin:12px 0}.tc{border:1px solid var(--line);border-radius:10px;padding:12px}.tc-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.tc-head .tag{margin:0}.tc-body{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tc-body pre{max-height:180px;overflow:auto}.tc-new{border-style:dashed;display:flex;flex-direction:column;gap:10px}.tc-new .tc-head{margin:0}.tc-editing{border-color:var(--accent);display:flex;flex-direction:column;gap:10px}.hero{max-width:1120px;margin:0 auto;padding:72px 20px 48px;display:grid;grid-template-columns:1.05fr 1fr;gap:48px;align-items:center}.eyebrow{color:var(--accent);font-size:.85rem;font-weight:600;margin:0 0 14px}.hero h1{font-size:clamp(2rem,4vw,2.9rem);line-height:1.2;letter-spacing:-.035em;font-weight:800}.hero-sub{color:var(--muted);font-size:1.05rem;margin:18px 0 28px;max-width:34em}.hero-cta{display:flex;gap:10px;flex-wrap:wrap}.terminal{background:#0b1020;border-radius:14px;overflow:hidden;box-shadow:0 24px 60px #0f172a40;border:1px solid #1e293b}.terminal-bar{display:flex;align-items:center;gap:6px;padding:10px 14px;background:#111830;color:#64748b;font-size:.75rem;font-family:var(--mono)}.terminal-bar i{width:10px;height:10px;border-radius:50%;background:#334155;display:block}.terminal-bar span{margin-left:8px}.terminal pre{margin:0;padding:18px 20px 22px;color:#cbd5e1;font-size:.82rem;line-height:1.85;overflow-x:auto}.t-dim{color:#64748b}.t-ok{color:#34d399;font-weight:700}.pipeline-section{max-width:1120px;margin:0 auto;padding:24px 20px 72px}.pipeline-section h2{margin-bottom:18px}.pipeline{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.pipeline li{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:4px;position:relative}.pipeline li span:last-child{color:var(--muted);font-size:.85rem;line-height:1.5}.pipe-num{color:var(--accent);font-size:.78rem;font-weight:700}.verdict-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-top:16px}.verdict-chip{border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--surface);display:flex;flex-direction:column;font-size:.78rem}.verdict-chip strong{font-size:1.1rem}.verdict-chip span{color:var(--muted)}@media(max-width:1024px){.problem-layout{grid-template-columns:1fr}.submit-panel{position:static}.hero{grid-template-columns:1fr;padding-top:48px}.pipeline{grid-template-columns:repeat(2,1fr)}.verdict-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:640px){.topbar-inner{gap:12px;padding:0 16px}.brand-name,.user-name{display:none}.nav a{padding:6px 8px;font-size:.9rem}.page{padding:24px 16px 40px}.hide-sm{display:none}.samples,.tc-body,.grid-3{grid-template-columns:1fr}.search{max-width:none}.table th,.table td{padding:10px 12px}.auth-card{padding:24px 20px}.code-input{gap:6px}.verdict-grid{grid-template-columns:repeat(2,1fr)}.pipeline{grid-template-columns:1fr}.limits-links{margin-left:0}}
