:root{color-scheme:light;--bg:#f5f1e8;--card:rgba(255,252,247,0.92);--ink:#1f1b16;--muted:#6c6257;--line:rgba(76,57,40,0.14);--accent:#9c3d19;--accent-2:#1f6b5a}*{box-sizing:border-box}body{margin:0;font-family:Iowan Old Style,"Source Han Serif SC","Noto Serif SC",serif;color:var(--ink);background:radial-gradient(circle at top left,rgba(156,61,25,.18),transparent 28%),radial-gradient(circle at bottom right,rgba(31,107,90,.16),transparent 32%),linear-gradient(180deg,#fbf8f1,#f2ede2)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:280px 1fr}.sidebar{padding:32px 24px;border-right:1px solid var(--line);background:rgba(255,248,240,.75);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.sidebar h1{margin:0 0 8px;font-size:2rem}.sidebar p{margin:0 0 24px;color:var(--muted)}.nav{display:grid;grid-gap:10px;gap:10px}.nav a{border-radius:14px}.nav a,.nav button{padding:12px 14px;background:transparent;transition:background .2s ease}.nav button{text-align:left;border:none;border-radius:14px;color:inherit;cursor:pointer}.nav a:hover,.nav button:hover{background:rgba(156,61,25,.08)}.content{padding:32px}.hero{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}.hero h2{margin:0;font-size:2rem}.hero p{margin:8px 0 0;color:var(--muted)}.grid{display:grid;grid-gap:20px;gap:20px}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:20px;box-shadow:0 18px 40px rgba(66,42,20,.08)}.card h3,.card h4{margin-top:0}.card-link{display:grid;grid-gap:12px;gap:12px;color:inherit;text-decoration:none}.pill{display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;background:rgba(31,27,22,.08);font-size:.875rem}.stack{display:grid;grid-gap:12px;gap:12px}.row{display:flex;gap:12px}.row.wrap{flex-wrap:wrap}.field{display:grid;grid-gap:8px;gap:8px}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:rgba(255,255,255,.8)}.checkbox-field{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.72)}.checkbox-field input{width:18px;height:18px;margin-top:2px}.checkbox-field>span{display:grid;grid-gap:4px;gap:4px}.button{border:none;border-radius:14px;padding:12px 18px;color:white;background:linear-gradient(135deg,var(--accent),#c66d2f);cursor:pointer}.button.secondary{background:linear-gradient(135deg,var(--accent-2),#3f9281)}.button.danger{color:var(--accent);background:rgba(156,61,25,.1)}.button.ghost{color:var(--ink);background:rgba(31,27,22,.06)}.status{text-transform:capitalize}.progress{height:12px;border-radius:999px;overflow:hidden;background:rgba(31,27,22,.08)}.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2))}.poem{white-space:pre-wrap;line-height:1.7}.highlight-panel{padding:16px;border-radius:18px;background:rgba(156,61,25,.08);border:1px solid rgba(156,61,25,.16)}.round-section{display:grid;grid-gap:12px;gap:12px}.candidate-list{display:grid;grid-gap:14px;gap:14px}.candidate-card{display:grid;grid-gap:12px;gap:12px;padding:16px;border-radius:18px;border:1px solid var(--line);background:rgba(255,255,255,.64)}.candidate-card.selected{border-color:rgba(31,107,90,.34);background:rgba(31,107,90,.08)}.score-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.score-item{display:grid;grid-gap:4px;gap:4px;padding:10px 12px;border-radius:14px;background:rgba(31,27,22,.05)}.score-item span{font-size:.85rem;color:var(--muted)}.memory-block{margin:0;padding:16px;border-radius:18px;border:1px solid var(--line);background:rgba(247,243,236,.92);white-space:pre-wrap;overflow-x:auto}.phase-banner{display:flex;align-items:center;gap:12px;padding:14px 20px;margin-bottom:20px;border-radius:16px;background:rgba(156,61,25,.08);border:1px solid rgba(156,61,25,.16);color:var(--accent);font-size:.95rem;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.spinner{display:inline-block;width:18px;height:18px;border:2.5px solid rgba(156,61,25,.2);border-top:2.5px solid var(--accent);border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(1turn)}}.conn-on{background:rgba(31,107,90,.12);color:var(--accent-2)}.conn-off{background:rgba(156,61,25,.12);color:var(--accent)}.muted{color:var(--muted)}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(560px,100%)}@media (max-width:960px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--line)}.grid.cols-2{grid-template-columns:1fr}.score-grid{grid-template-columns:1fr 1fr}}.round-tabs{display:grid;grid-gap:0;gap:0}.tab-bar{display:flex;gap:2px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}.tab-bar::-webkit-scrollbar{height:4px}.tab-bar::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}.tab{padding:10px 18px;border:none;border-radius:12px 12px 0 0;background:rgba(31,27,22,.04);color:var(--muted);cursor:pointer;font:inherit;font-size:.875rem;white-space:nowrap;transition:background .15s,color .15s}.tab:hover{background:rgba(31,27,22,.08)}.tab.active{background:var(--card);color:var(--ink);font-weight:600;box-shadow:inset 0 2px 0 var(--accent-2)}