:root{--cyan: #2fb4d8;--blue: #4a7fd6;--gold: #c8a45b;--bg: #faf8f3;--card: #ffffff;--ink: #2b3440;--muted: #6b7480;--line: #e8e2d6}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft Yahei,Helvetica Neue,Arial,sans-serif;color:var(--ink);background:radial-gradient(1100px 520px at 12% -8%,rgba(74,127,214,.06),transparent 60%),radial-gradient(900px 480px at 104% 0%,rgba(47,180,216,.06),transparent 55%),var(--bg);min-height:100vh}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit}.tf-page{max-width:1080px;margin:0 auto;padding:0 20px 60px}.tf-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0;border-bottom:1px solid var(--line);margin-bottom:24px}.tf-brand{display:flex;align-items:center;gap:10px;font-size:22px;font-weight:700}.tf-brand img{height:34px;width:auto}.tf-slogan{font-size:13px;color:var(--muted)}.tf-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:0 8px 28px -22px #2b344080}.tf-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:10px;padding:10px 18px;font-size:15px;font-weight:600;background:linear-gradient(135deg,var(--cyan),var(--blue));color:#fff;transition:transform .15s ease,box-shadow .2s ease,filter .2s ease;box-shadow:0 8px 20px -8px #4a7fd699}.tf-btn:hover{filter:brightness(1.05);transform:translateY(-1px)}.tf-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.tf-btn.ghost{background:#f1eee6;color:var(--ink);box-shadow:none}.tf-btn.small{padding:6px 12px;font-size:13px}.tf-input{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:14px;background:#fff;outline:none;transition:border-color .15s ease}.tf-input:focus{border-color:var(--cyan)}.tf-label{display:block;font-size:13px;color:var(--muted);margin:14px 0 6px}.tf-label b{color:#d9534f}.tf-upload-box{display:block;width:100%;border:1.5px dashed #c8d0d8;border-radius:11px;background:#fafbfc;padding:20px;text-align:center;color:#5b6470;cursor:pointer;transition:border-color .15s ease,background .15s ease}.tf-upload-box:hover{border-color:#2fb4d8;background:#f4fafc}.tf-upload-box img{max-width:240px;max-height:240px;border-radius:8px;margin-top:10px}.tf-grid{display:grid;grid-template-columns:1fr;gap:16px}@media(min-width:720px){.tf-grid{grid-template-columns:1fr 1fr}}.tf-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.tf-badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;background:#f1eee6;color:#8a6420}.tf-badge.green{background:#e8f6ee;color:#1e7e46}.tf-badge.red{background:#fdeaea;color:#c0392b}.tf-badge.blue{background:#e8f1fb;color:#2f5e9e}.tf-result-img{max-width:100%;max-height:640px;border-radius:10px;border:1px solid var(--line);display:block;margin:0 auto}.tf-review{white-space:pre-wrap;line-height:1.8;background:#faf6ec;border:1px solid #efe6d2;border-radius:12px;padding:18px}.tf-table{width:100%;border-collapse:collapse;font-size:14px}.tf-table th,.tf-table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line)}.tf-table th{color:var(--muted);font-weight:500;font-size:12px}.tf-toast{position:fixed;top:18px;left:50%;transform:translate(-50%);background:#2b3440;color:#fff;padding:10px 18px;border-radius:10px;font-size:14px;z-index:99}.tf-spinner{width:30px;height:30px;border-radius:50%;margin:0 auto;border:3px solid #e2ecf2;border-top-color:var(--blue);animation:tfspin .8s linear infinite}@keyframes tfspin{to{transform:rotate(360deg)}}.login-wrap{max-width:400px;margin:8vh auto 0}.login-tabs{display:flex;gap:8px;margin-bottom:18px}.login-tabs button{flex:1;padding:10px;border-radius:10px;border:1px solid var(--line);background:#fff;font-size:15px}.login-tabs button.active{background:linear-gradient(135deg,var(--cyan),var(--blue));color:#fff;border:none}.tf-header{position:sticky;top:0;z-index:30;background:#faf8f3d9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:14px 0;margin-bottom:28px}.tf-brand img{height:36px;width:auto}.tf-card{border-radius:16px;box-shadow:0 10px 34px -26px #2b34408c;border:1px solid var(--line)}.tf-seg{display:inline-flex;gap:4px;padding:4px;background:#ece7dc;border-radius:12px}.tf-seg button{border:none;background:transparent;padding:8px 18px;border-radius:9px;font-size:14px;font-weight:600;color:var(--muted);transition:all .18s ease}.tf-seg button.on{background:#fff;color:#2f7d99;box-shadow:0 3px 10px -4px #2b34404d}.tf-sec-title{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:700;margin:0 0 4px;color:var(--ink)}.tf-sec-title .ico{color:#2fb4d8}.tf-sec-desc{font-size:13px;color:var(--muted);margin:0 0 14px}.tf-input,select.tf-input{border-radius:11px;padding:11px 13px;background:#fff}.tf-input:focus{border-color:#2fb4d8;box-shadow:0 0 0 3px #2fb4d81f}.tf-table{border-radius:12px;overflow:hidden}.tf-table thead{background:#f4f0e8}.tf-table th,.tf-table td{padding:11px 14px}.login-wrap{max-width:420px;margin:6vh auto 0}.login-wrap .tf-card{padding:32px 30px}.tf-result-wrap{margin-top:16px}:focus-visible{outline:2px solid #2fb4d8;outline-offset:2px;border-radius:6px}.tf-btn:focus-visible,.tf-input:focus-visible,.tf-seg button:focus-visible{outline:2px solid #2fb4d8;outline-offset:2px}summary,label[for],.tf-seg button{cursor:pointer}.tf-slogan,.tf-label,.tf-sec-desc,.tf-badge{color:#5b6470}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.tf-review{font-size:14px;line-height:1.8}.tf-table{font-size:14px}.tf-nav{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tf-nav .tf-slogan{margin-right:4px}.tf-nav-btn{display:inline-flex;align-items:center;gap:5px;padding:8px 16px;border-radius:999px;background:#fff;border:1px solid var(--line);color:#5b6470;font-size:14px;font-weight:500;text-decoration:none;transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease}.tf-nav-btn:hover{background:#eaf6fb;color:#2f7d99;border-color:#b8dfec}.tf-nav-btn.active{background:linear-gradient(135deg,#2fb4d8,#4a7fd6);color:#fff;border-color:transparent}.tf-nav-btn-out:hover{background:#fdeaea;color:#c0392b;border-color:#f5c6c6}.landing{min-height:100vh;display:flex;flex-direction:column;background-color:#f7f7f9;background-image:radial-gradient(rgba(0,0,0,.055) 1px,transparent 1px);background-size:22px 22px;overflow-x:hidden}.landing-header{display:flex;align-items:center;justify-content:space-between;padding:20px 40px}.landing-logo{height:44px;width:auto}.landing-nav{display:flex;gap:12px;align-items:center}.landing-link{border:none;background:transparent;padding:9px 20px;border-radius:999px;font-size:14px;font-weight:600;color:#5b6470;cursor:pointer;transition:background .18s ease,color .18s ease}.landing-link:hover{background:#ececf0;color:#2f7d99}.landing-hero{padding:64px 20px 48px;text-align:center}.landing-title{font-size:clamp(48px,9vw,84px);font-weight:800;letter-spacing:.02em;color:#1f2430;margin:0;line-height:1.1}.landing-sub{font-size:clamp(18px,3vw,26px);color:#7a8494;margin:18px 0 0;letter-spacing:.04em}.landing-marquee{overflow:hidden;padding:34px 0 44px}.marquee-track{display:flex;align-items:center;gap:0;width:max-content;animation:marquee 40s linear infinite;transform-style:preserve-3d}.marquee-item{height:400px;width:auto;border-radius:18px;box-shadow:0 14px 36px -18px #2b344080;object-fit:cover;background:#fff;will-change:transform,opacity}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.landing-marquee:hover .marquee-track{animation-play-state:paused}.landing-cta{display:flex;justify-content:center;gap:18px;padding:56px 20px 72px;flex-wrap:wrap}.cta-btn{border:none;border-radius:999px;cursor:pointer;padding:16px 46px;font-size:17px;font-weight:600;color:#fff;background:linear-gradient(135deg,#2fb4d8,#4a7fd6);box-shadow:0 12px 28px -12px #4a7fd6a6;transition:transform .16s ease,box-shadow .2s ease,filter .2s ease}.cta-btn:hover{transform:translateY(-2px);filter:brightness(1.05);box-shadow:0 16px 34px -12px #4a7fd6bf}.cta-btn:active{transform:translateY(0)}.cta-btn-ghost{background:#fff;color:#5b6470;box-shadow:0 6px 18px -12px #2b344080}.cta-btn-ghost:hover{background:#f0f1f5;color:#2f7d99;box-shadow:0 10px 24px -12px #2b34408c}.landing-footer-bar{height:110px;margin-top:auto;background:linear-gradient(90deg,#a78bfa,#8b5cf6 35%,#4a7fd6)}
