:root{--bg:#fff;--surface:#f4f7f8;--surface-strong:#e9f0f1;--text:#161a1c;--muted:#5f6a70;--border:#d9e0e2;--rule:#111;--teal:#007a78;--teal-dark:#005f5d;--amber:#b87502;--green:#16803d;--ink:#1c1b19;--faint:#7a7064;--accent:#2f4b76;--accent-soft:#eef1f7;--soft:#f7f6f4;--line:#efedea;--gold:#e0a32f;--live:#c1492e;--pass:#1f8a52;--warn:#d98032;--g5:#1f8a52;--g4:#5aa544;--g3:#c79a2b;--g2:#d98032;--g1:#cf5340;--r-xs:6px;--r-sm:10px;--r-md:14px;--r-lg:18px;--r-pill:999px;--shadow:0 4px 18px #2f4b761a;--sans:"Pretendard Variable", "Pretendard", "Apple SD Gothic Neo", "Noto Sans KR", system-ui, sans-serif;--serif:"Noto Serif KR", "Nanum Myeongjo", Georgia, serif;color:var(--text);background:var(--bg);font:16px/1.55 var(--sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100svh}body{margin:0}*{box-sizing:border-box}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a{color:inherit}button,input{font:inherit}p{margin:0}h1,h2,h3{color:var(--text);margin:0}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sr-only:focus-visible{clip:auto;white-space:normal;z-index:100;background:var(--accent);color:#fff;border-radius:var(--r-sm);width:auto;height:auto;margin:0;padding:8px 14px;font-size:13px;font-weight:700;position:fixed;top:8px;left:8px;overflow:visible}.tm-app{background:var(--soft);color:var(--ink);justify-content:center;min-height:100svh;display:flex}.tm-frame{width:100%;max-width:460px;min-height:100svh;box-shadow:0 0 0 1px var(--line);background:#fff;flex-direction:column;display:flex;position:relative}.tm-scroll{flex:1;padding-bottom:84px}.tm-tabbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);width:100%;max-width:460px;height:72px;padding-bottom:env(safe-area-inset-bottom,0);z-index:50;background:#fffffff2;display:flex;position:fixed;bottom:0}.tm-tab{cursor:pointer;color:var(--faint);background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;padding-top:8px;display:flex}.tm-tab.is-active{color:var(--accent)}.tm-tab span{font-size:10.5px;font-weight:700}.tm-nav{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:20;background:#ffffffeb;justify-content:space-between;align-items:center;height:52px;padding:0 8px;display:flex;position:sticky;top:0}.tm-nav-btn{cursor:pointer;width:44px;height:44px;color:var(--ink);background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.tm-nav-title{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:700;overflow:hidden}.tm-section{padding:30px 20px 12px}.tm-kicker{letter-spacing:.14em;color:var(--accent);margin-bottom:7px;font-size:11px;font-weight:800}.tm-title{letter-spacing:-.03em;margin:0;font-size:22px;font-weight:800}.tm-sub{color:var(--muted);margin-top:6px;font-size:13.5px}.tm-card{border:1px solid var(--border);border-radius:var(--r-md);color:inherit;background:#fff;text-decoration:none;display:block}.tm-btn-primary{background:var(--accent);color:#fff;border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;border:0;justify-content:center;align-items:center;gap:6px;padding:11px 16px;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}.tm-btn-soft{background:var(--accent-soft);color:var(--accent);border-radius:var(--r-sm);cursor:pointer;border:0;justify-content:center;align-items:center;gap:7px;width:100%;padding:13px 16px;font-size:13.5px;font-weight:700;display:inline-flex}.tm-status{border-radius:var(--r-xs);padding:3px 8px;font-size:11px;font-weight:800}.tm-status-추천{color:var(--pass);background:#e8f1ec}.tm-status-균형{background:var(--accent-soft);color:var(--accent)}.tm-status-주의{color:var(--warn);background:#fdeede}.tm-vbadge{border-radius:var(--r-xs);padding:3px 8px;font-size:11px;font-weight:800}.tm-vbadge-verified{color:var(--pass);background:#e8f1ec}.tm-vbadge-candidate{color:#2a5bd7;background:#eef4ff}.tm-vbadge-pending{background:var(--soft);color:var(--muted);border:1px solid var(--border)}.tm-recall{border-radius:var(--r-xs);color:#c0322b;background:#fdecec;padding:3px 8px;font-size:11px;font-weight:800;text-decoration:none}.tm-grade{font-size:11px;font-weight:800}.tm-grade-good{color:var(--g5)}.tm-grade-fair{color:var(--g3)}.tm-grade-poor{color:var(--g2)}.tm-name{word-break:keep-all;overflow-wrap:anywhere}.tm-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.tm-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.7s linear infinite tm-spin}@keyframes tm-spin{to{transform:rotate(360deg)}}.tm-stars{color:var(--gold);letter-spacing:1px;font-size:12px}.tm-stars .track{color:var(--border)}.tm-ph{background:var(--soft);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--faint);justify-content:center;align-items:center;display:flex;overflow:hidden}.tm-ph img{object-fit:cover;width:100%;height:100%;display:block}.tm-report-media{aspect-ratio:2.6;background:var(--soft);border-bottom:1px solid var(--line);overflow:hidden}.tm-report-media img{object-fit:cover;width:100%;height:100%;display:block}.tm-sheet-scrim{z-index:70;background:#0000006b;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.tm-sheet{border-radius:var(--r-lg) var(--r-lg) 0 0;background:#fff;width:100%;max-width:460px;max-height:92svh;padding:10px 22px 26px;overflow-y:auto}.tm-sheet-grip{border-radius:var(--r-pill);background:var(--border);width:40px;height:4px;margin:0 auto 16px}.tm-sheet-close{text-align:center;color:var(--muted);cursor:pointer;background:0 0;border:0;width:100%;margin-top:10px;padding:8px;font-size:13px;font-weight:600}.tm-toast{color:#fff;border-radius:var(--r-pill);white-space:nowrap;z-index:80;background:#1c1b19f0;padding:10px 16px;font-size:12.5px;font-weight:600;position:fixed;bottom:96px;left:50%;transform:translate(-50%)}.tm-footer{background:var(--soft);margin-top:20px;padding:20px}.tm-footer p{color:var(--faint);font-size:10.5px;line-height:1.6}.tm-empty{border:1px dashed var(--border);border-radius:var(--r-md);text-align:center;color:var(--faint);padding:32px 20px;font-size:13px}
