:root{--bg:#eef2f7;--card:#fff;--ink:#1a2230;--sub:#6b7585;--mut:#97a1b0;--line:#e6ebf2;--brand:#2f6df0;--brand2:#eaf1ff;--brandd:#2257c9;--ok:#15a06a;--ok2:#e8f7f0;--warn:#e8951f;--warn2:#fdf0dd;--danger:#e0483d;--danger2:#fdeceb;--gold:#b8860b;--gold2:#fbf3da;--shadow:0 1px 2px rgba(20,30,50,.04),0 8px 24px rgba(20,30,50,.06)}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;font-family:-apple-system,Apple SD Gothic Neo,Malgun Gothic,system-ui,sans-serif}html,body,#root{height:100%}html,body{overflow-x:hidden;max-width:100%}body{background:var(--bg);color:var(--ink);font-size:15px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none}img{max-width:100%}.clip{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell{display:flex;min-height:100%}.side{display:none}.side .logo{display:flex;align-items:center;gap:10px;padding:6px 8px 16px}.side .lg{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,#2f6df0,#6aa0ff);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}.side .ln{font-weight:800;font-size:16px;line-height:1.1}.side .ls{font-size:11px;color:var(--mut)}.nav a{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;color:var(--sub);font-weight:600;font-size:14px}.nav a .ic{width:20px;text-align:center;font-size:16px}.nav a.on{background:var(--brand);color:#fff}.nav a:not(.on):hover{background:#eef2f8;color:var(--ink)}.side .subh{font-size:11px;color:var(--mut);font-weight:700;padding:16px 12px 6px;letter-spacing:.3px}.main{flex:1;min-width:0;display:flex;flex-direction:column;min-height:100%}.appbar{position:sticky;top:0;z-index:30;background:#f6f8fbeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;padding:12px 14px}.back{width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}.ttl{font-weight:800;font-size:17px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ttl small{display:block;font-weight:600;font-size:11.5px;color:var(--mut);margin-top:1px}.abtools{margin-left:auto;display:flex;gap:8px;align-items:center}.plan{font-size:11px;font-weight:800;padding:5px 10px;border-radius:999px;background:var(--brand2);color:var(--brandd)}.plan.pre{background:var(--gold2);color:var(--gold)}.scroll{flex:1;overflow-y:auto;padding:14px 14px 96px;-webkit-overflow-scrolling:touch}.wrap{max-width:780px;margin:0 auto}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 13px;box-shadow:var(--shadow);display:block;text-align:left;width:100%}.stat .k{font-size:12px;color:var(--sub)}.stat .v{font-size:clamp(20px,5.4vw,24px);font-weight:800;margin-top:4px}.stat .d{font-size:11.5px;margin-top:3px}.stat:active{transform:scale(.99)}.up{color:var(--ok)}.dn{color:var(--warn)}.rd{color:var(--danger)}.sec{margin-top:18px}.sechd{display:flex;align-items:center;margin:0 2px 9px}.sechd h3{font-size:14.5px;font-weight:800}.sechd .more{margin-left:auto;font-size:12.5px;color:var(--brand);font-weight:700}.panel{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}.pad{padding:14px 15px}.ph{font-weight:800;font-size:15.5px}.psub{color:var(--sub);font-size:13px;margin-top:3px;line-height:1.5}.row{display:flex;align-items:center;gap:11px;padding:13px 15px;border-bottom:1px solid var(--line);text-align:left;width:100%;background:none}.row:last-child{border-bottom:0}.row.tap{transition:.12s}.row.tap:active{background:#f3f6fb}.ava{width:42px;height:42px;border-radius:12px;background:var(--brand2);color:var(--brand);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;flex-shrink:0}.ava.g{background:var(--ok2);color:var(--ok)}.ava.w{background:var(--warn2);color:var(--warn)}.ava.n{background:#eef1f6;color:var(--mut)}.who{flex:1;min-width:0}.nm{font-weight:700;font-size:14.5px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.meta{font-size:12px;color:var(--sub);margin-top:3px;line-height:1.45;word-break:break-word}.chev{color:var(--mut);font-size:18px;flex-shrink:0}.tag{display:inline-block;font-size:11px;padding:2px 8px;border-radius:999px;background:#eff3f8;color:var(--sub);white-space:nowrap}.tag.b{background:var(--brand2);color:var(--brandd)}.tag.g{background:var(--ok2);color:var(--ok)}.tag.w{background:var(--warn2);color:var(--warn)}.tag.r{background:var(--danger2);color:var(--danger)}.tag.gold{background:var(--gold2);color:var(--gold)}.tags{display:flex;flex-wrap:wrap;gap:5px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--brand);color:#fff;padding:12px 16px;border-radius:11px;font-weight:700;font-size:14px;transition:.12s}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5}.btn.sm{padding:8px 13px;font-size:13px;border-radius:9px}.btn.ghost{background:#fff;color:var(--brand);border:1.5px solid var(--brand)}.btn.soft{background:var(--brand2);color:var(--brandd)}.btn.ok{background:var(--ok)}.btn.gray{background:#eef1f6;color:var(--sub)}.btn.gold{background:linear-gradient(135deg,#caa14a,#b8860b);color:#fff}.btn.block{display:flex;width:100%}.btnrow{display:flex;gap:9px;flex-wrap:wrap}.bar{height:8px;border-radius:99px;background:#eef2f7;overflow:hidden}.bar>i{display:block;height:100%;background:linear-gradient(90deg,#2f6df0,#6aa0ff)}.kv{display:flex;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);font-size:13.5px}.kv:last-child{border-bottom:0}.kv .k{color:var(--sub)}.kv .v{font-weight:600;text-align:right;min-width:0}.note{font-size:12px;color:var(--sub);line-height:1.55;margin-top:14px;padding:12px 14px;background:#fff;border:1px dashed #cdd8e8;border-radius:12px}.empty{text-align:center;color:var(--mut);font-size:13px;padding:34px 14px}.field{margin-bottom:13px}.field label{display:block;font-size:12.5px;font-weight:700;color:var(--sub);margin-bottom:6px}.field input,.field select,.field textarea{width:100%;border:1.5px solid var(--line);border-radius:11px;padding:12px;font-size:15px;background:#fff;color:var(--ink)}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--brand)}.banner{display:flex;gap:11px;align-items:flex-start;background:var(--warn2);border:1px solid #f3d9a8;border-radius:13px;padding:12px 13px}.banner.r{background:var(--danger2);border-color:#f4c4bf}.banner.b{background:var(--brand2);border-color:#cadcff}.banner.gold{background:var(--gold2);border-color:#ecdaa6}.banner .bi{font-size:18px;flex-shrink:0}.banner .bt{font-size:13px;line-height:1.5}.banner .bt b{display:block;margin-bottom:2px}.problemcard{border:1px solid var(--line);border-radius:14px;background:#fbfcfe;padding:16px;font-size:16px;line-height:1.6;color:var(--ink);word-break:break-word}.problemcard .badge{display:block;font-size:11px;color:var(--mut);margin-bottom:8px}.imgwrap{border-radius:12px;overflow:hidden;border:1px solid var(--line);background:#fff}.imgwrap img{display:block;width:100%}.pillbar{display:flex;gap:7px;overflow-x:auto;padding:2px;margin:0 -2px 14px}.pillbar::-webkit-scrollbar{display:none}.chip{flex-shrink:0;font-size:12.5px;font-weight:600;color:var(--sub);background:#fff;border:1px solid var(--line);padding:7px 13px;border-radius:999px}.chip.on{background:var(--brand);color:#fff;border-color:var(--brand)}.compare{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:#fff}.compare img{display:block;width:100%}.compare .after{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.compare .after img{position:absolute;top:0;left:0;height:100%;width:auto}.compare input[type=range]{position:absolute;bottom:8px;left:8px;right:8px;width:calc(100% - 16px)}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;background:#fffffff5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);display:flex;padding:6px 4px calc(6px + env(safe-area-inset-bottom))}.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0;color:var(--mut);font-size:11px;font-weight:600}.tabbar a .ic{font-size:19px}.tabbar a.on{color:var(--brand)}.toast{position:fixed;left:50%;bottom:96px;transform:translate(-50%);z-index:80;background:#1d2733;color:#fff;font-size:13.5px;font-weight:600;padding:11px 17px;border-radius:12px;box-shadow:0 10px 30px #00000040;max-width:90%;text-align:center}.ov{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#0f162375;display:flex;align-items:flex-end;justify-content:center}.sheet{background:#fff;width:100%;max-width:520px;border-radius:20px 20px 0 0;padding:20px 18px calc(22px + env(safe-area-inset-bottom));animation:up .24s}.sheet h3{font-size:17px;font-weight:800;line-height:1.4}.sheet p{font-size:13.5px;color:var(--sub);margin-top:9px;line-height:1.55}@keyframes up{0%{transform:translateY(30px)}to{transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:38px;height:38px;border:4px solid var(--brand2);border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto}@media (min-width:880px){.side{display:flex;flex-direction:column;width:236px;flex-shrink:0;background:#fff;border-right:1px solid var(--line);padding:18px 14px;position:sticky;top:0;height:100vh;overflow-y:auto}.tabbar,.back{display:none}.scroll{padding:22px 26px 48px}.appbar{padding:16px 26px}.cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.ov{align-items:center}.sheet{border-radius:18px;max-width:440px;padding-bottom:22px}.toast{bottom:30px}}
