:root{--bg:#f7f6f2;--surface:#fff;--surface-2:#efeeea;--border:#e2e0da;--border-strong:#cfccc4;--line:#efeeea;--text:#1c1f23;--text-2:#33373d;--muted:#5a6069;--muted-2:#4a4f57;--accent:#1f4e79;--accent-hover:#163a5c;--accent-soft:#e6eef6;--accent-ink:#1f3b57;--on-accent-muted:#d5e2ef;--amber-soft:#fbefd9;--amber:#7a4a06;--amber-ink:#3d2603;--green-soft:#e3f0e5;--green:#2f6b3a;--red-soft:#f6e3de;--red:#8a2b12;--hard-soft:#f6ecd9;--placeholder:#dcdad3;--sans:"Inter", "Noto Sans SC", system-ui, sans-serif;--serif:"Source Serif 4", Georgia, serif;--radius:14px;--tabbar-h:76px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}a{color:var(--accent)}a:hover{color:var(--accent-hover)}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,p{margin:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sl{font-family:var(--serif)}.muted{color:var(--muted)}.small{font-size:13px}.xs{font-size:12px}.bold{font-weight:600}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.stack{flex-direction:column;gap:12px;display:flex}.stack.lg{gap:20px}.stack.sm{gap:6px}.grow{flex:1;min-width:0}.spacer{flex:1}.center{text-align:center}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{flex-direction:column;min-height:100dvh;display:flex}.main{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:24px}.main.narrow{max-width:640px}.split{flex-wrap:wrap;align-items:flex-start;gap:24px;display:flex}.split>.side{flex:300px;max-width:380px}.split>.content{flex:999 560px;min-width:0}.grid-auto{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.topnav{background:var(--surface);border-bottom:1px solid var(--border);display:none}.topnav-inner{flex-wrap:wrap;align-items:center;gap:8px 28px;max-width:1200px;min-height:64px;margin:0 auto;padding:0 24px;display:flex}.brand{font-family:var(--serif);color:var(--text);font-size:20px;font-weight:600;text-decoration:none}.brand small{font-family:var(--sans);color:var(--muted);margin-left:4px;font-size:13px;font-weight:500}.navlinks{flex-wrap:wrap;flex:1;gap:4px;font-size:14px;display:flex}.navlinks a{color:var(--muted-2);border-radius:8px;padding:8px 12px;text-decoration:none}.navlinks a.active{color:var(--accent);background:var(--accent-soft);font-weight:600}.navlinks a:hover{background:var(--surface-2)}.navlinks a.active:hover{background:var(--accent-soft)}.tabbar{z-index:10;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--border);grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar a{color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:44px;font-size:12px;text-decoration:none;display:flex}.tabbar a.active{color:var(--accent);font-weight:600}.has-tabbar .main{padding-bottom:calc(var(--tabbar-h) + 24px + env(safe-area-inset-bottom))}@media (width>=900px){.topnav{display:block}.tabbar{display:none}.has-tabbar .main{padding-bottom:24px}.mobile-only{display:none!important}}@media (width<=899px){.main{padding:20px 16px}.desktop-only{display:none!important}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.card.lg{border-radius:16px;padding:24px}.card.flush{padding:8px 0}.card-title{font-size:16px;font-weight:600}.section-label{color:var(--muted);letter-spacing:.04em;font-size:12px;font-weight:600}.page-title{font-size:22px;font-weight:700}.soft{background:var(--bg);border-radius:12px;padding:12px 14px}.hero{background:var(--accent);color:#fff;border-radius:18px;padding:20px}.hero .muted{color:var(--on-accent-muted)}.notice{background:var(--accent-soft);color:var(--accent-ink);border-radius:14px;padding:14px 16px;font-size:13px}.warn-box{background:var(--amber-soft);color:var(--amber-ink);border-radius:16px;padding:14px 16px}.error{color:var(--red);font-size:13px}.chip{white-space:nowrap;background:var(--surface-2);color:var(--muted-2);border-radius:999px;align-items:center;gap:4px;padding:2px 9px;font-size:12px;font-weight:500;display:inline-flex}.chip.blue{background:var(--accent-soft);color:var(--accent)}.chip.green{background:var(--green-soft);color:var(--green)}.chip.amber{background:var(--amber-soft);color:var(--amber)}.chip.on-accent{color:#fff;background:#ffffff24}.btn{border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--text);cursor:pointer;white-space:nowrap;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:0 18px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover{background:var(--surface-2);color:var(--text)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.btn.primary:hover{background:var(--accent-hover);color:#fff}.btn.outline{border-color:var(--accent);color:var(--accent)}.btn.white{color:var(--accent);background:#fff;border-color:#fff;font-weight:600}.btn.danger{color:var(--red)}.btn.sm{border-radius:8px;min-height:34px;padding:0 12px;font-size:13px}.btn.lg{min-height:52px;font-size:16px}.btn.block{width:100%}.btn:disabled{opacity:.55;cursor:not-allowed}.icon-btn{width:44px;height:44px;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:12px;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.round-btn{border:1px solid var(--border);background:var(--bg);width:44px;height:44px;color:var(--accent);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.field{flex-direction:column;gap:6px;display:flex}.field>label,.label{font-size:14px;font-weight:500}.hint{color:var(--muted);font-size:12px}.input,.select,.textarea{border:1px solid var(--border-strong);background:var(--surface);border-radius:12px;width:100%;min-height:48px;padding:0 14px;font-size:16px}.textarea{resize:vertical;min-height:84px;padding:10px 12px;line-height:1.5}.input.sl{font-family:var(--serif);font-size:19px}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.form-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;display:grid}.chars{flex-wrap:wrap;gap:6px;display:flex}.chars button{border:1px solid var(--border);background:var(--bg);width:44px;height:44px;font-family:var(--serif);cursor:pointer;border-radius:10px;font-size:18px}.chars button:hover{background:var(--surface-2)}.list-row{border-top:1px solid var(--line);align-items:center;gap:10px;min-height:44px;padding:8px 0;display:flex}.list-row:first-child{border-top:none}.nav-item{color:var(--text);border-radius:8px;align-items:center;gap:10px;padding:10px;font-size:14px;text-decoration:none;display:flex}.nav-item:hover{background:var(--bg);color:var(--text)}.nav-item.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.table-wrap{overflow-x:auto}table.table{border-collapse:collapse;width:100%;min-width:560px;font-size:14px}.table th{text-align:left;color:var(--muted);padding:8px;font-size:12px;font-weight:500}.table td{border-top:1px solid var(--line);vertical-align:middle;padding:12px 8px}.table th:first-child,.table td:first-child{padding-left:24px}.table th:last-child,.table td:last-child{padding-right:24px}.table a{text-decoration:none}.progress{background:var(--border);border-radius:3px;height:6px;overflow:hidden}.progress>div{background:var(--accent);border-radius:3px;height:100%}.hero .progress{background:#fff3}.hero .progress>div{background:#fff}.stat-num{font-size:22px;font-weight:700}.thumb{background:var(--placeholder);object-fit:cover;width:56px;height:56px;color:var(--muted-2);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;display:flex}.photo{background:var(--placeholder);border-radius:10px;width:100%;display:block}.review{flex-direction:column;gap:16px;max-width:520px;min-height:100dvh;margin:0 auto;padding:16px 20px 24px;display:flex}.review-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;flex-direction:column;flex:1;gap:16px;padding:20px;display:flex}.review-word{font-family:var(--serif);text-align:center;overflow-wrap:anywhere;font-size:46px;font-weight:600;line-height:1.15}.review-meaning{text-align:center;font-size:28px;font-weight:700}.ratings{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.ratings button{cursor:pointer;border:none;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;height:64px;display:flex}.ratings b{font-size:15px}.ratings span{font-size:11px}.r1{background:var(--red-soft);color:var(--red)}.r2{background:var(--hard-soft);color:var(--amber)}.r3{background:var(--accent-soft);color:var(--accent)}.r4{background:var(--accent);color:#fff}.answer-ok{color:var(--green);font-weight:600}.answer-bad{color:var(--red);font-weight:600}.check{width:20px;height:20px;accent-color:var(--accent);flex-shrink:0;margin:0}.empty{text-align:center;color:var(--muted);padding:32px 16px}.toast{left:50%;bottom:calc(var(--tabbar-h) + 16px + env(safe-area-inset-bottom));background:var(--text);color:#fff;z-index:50;border-radius:10px;max-width:calc(100vw - 32px);padding:10px 16px;font-size:14px;position:fixed;transform:translate(-50%)}@media (width>=900px){.toast{bottom:24px}}.auth{flex-direction:column;gap:36px;max-width:420px;min-height:100dvh;margin:0 auto;padding:96px 24px 32px;display:flex}.auth-brand{font-family:var(--serif);letter-spacing:-.01em;font-size:40px;font-weight:600}
