:root{--bg:#f3f7f9;--ink:#0f172a;--muted:#64748b;--line:#dce5e9;--cyan:#0e7490;--card:#fff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;font-size:16px}a{color:inherit;text-decoration:none}header{position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(220,229,233,.9);background:rgba(255,255,255,.92);backdrop-filter:blur(14px)}.nav{max-width:1240px;height:68px;margin:auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px;font-weight:800}.logo{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--cyan);color:#fff;box-shadow:0 8px 18px rgba(14,116,144,.22)}.logo.big{width:58px;height:58px;margin:auto;border-radius:18px;font-size:24px}.nav nav{display:flex;align-items:center;gap:8px}.nav nav a,.text-btn{border:0;background:transparent;padding:9px 13px;border-radius:9px;font-size:14px;cursor:pointer}.nav nav a.active{background:#e7f1f4;color:#155e75;font-weight:700}.wrap{max-width:1240px;margin:auto;padding:36px 24px 70px}.hero{display:grid;grid-template-columns:1fr 350px;gap:38px;align-items:end}.pill{display:inline-flex;padding:7px 12px;border:1px solid #a5f3fc;border-radius:999px;background:#ecfeff;color:#155e75;font-size:14px;font-weight:700}.hero h1{margin:18px 0 12px;font-size:48px;line-height:1.12;letter-spacing:-2px}.hero h1 em{font-style:normal;color:var(--cyan)}.hero p{max-width:670px;color:var(--muted);font-size:18px;line-height:1.8}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px}.metrics>div,.stats>div{min-height:140px;padding:20px;border:1px solid var(--line);border-radius:20px;background:#fff;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 12px 35px rgba(15,23,42,.05)}.metrics .dark{background:#0f172a;color:#fff}.metrics small,.metrics span{font-size:13px;color:#64748b}.metrics .dark small{color:#a5f3fc}.metrics strong{font-size:32px}.search{margin:30px 0 24px;padding:11px;border:1px solid var(--line);border-radius:18px;background:#fff;display:flex;gap:8px;align-items:center;box-shadow:0 12px 34px rgba(15,23,42,.06)}.search span{padding-left:8px;font-size:25px;color:#94a3b8}.search input{flex:1;border:0;outline:0;padding:10px;font-size:16px}.search button,.button{border:0;border-radius:11px;background:var(--cyan);color:#fff;padding:13px 26px;font-weight:700;cursor:pointer}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.card{padding:22px;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:0 10px 28px rgba(15,23,42,.045);transition:.2s}.card:hover{transform:translateY(-3px);box-shadow:0 18px 42px rgba(15,23,42,.09)}.card-top{display:flex;justify-content:space-between;align-items:start}.app-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;font-size:24px}.c1{background:#cffafe;color:#0e7490}.c2{background:#e0e7ff;color:#4338ca}.c3{background:#fef3c7;color:#b45309}.c4{background:#d1fae5;color:#047857}.tag{padding:5px 10px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:12px;font-weight:700}.card h2{margin:20px 0 6px}.card>b{color:var(--cyan);font-size:14px}.card p{height:50px;color:var(--muted);line-height:1.65;font-size:14px;overflow:hidden}.meta{margin:18px 0 14px;padding-top:14px;border-top:1px solid #eef2f5;display:flex;justify-content:space-between;color:var(--muted);font-size:13px}.download{width:100%;border:0;border-radius:11px;background:#0f172a;color:#fff;padding:13px 18px;display:block;text-align:center;font-weight:700;cursor:pointer}.download:hover{background:var(--cyan)}.empty{min-height:390px;border:1px dashed #b8c8d0;border-radius:24px;background:rgba(255,255,255,.75);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:35px}.empty>span{font-size:42px;color:var(--cyan)}.empty p{color:var(--muted);margin:0 0 22px}footer{text-align:center;padding:25px;color:#94a3b8;font-size:13px}.auth-body{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(430px,100%);padding:34px;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:0 22px 60px rgba(15,23,42,.1);text-align:center}.auth-card h1{margin:20px 0 8px}.auth-card p{color:var(--muted)}label{display:grid;gap:7px;text-align:left;font-size:14px;font-weight:700;margin-top:15px}input,textarea{width:100%;border:1px solid #cfdbe1;border-radius:10px;background:#fff;padding:12px;outline:0;font-size:15px}input:focus,textarea:focus{border-color:#0891b2;box-shadow:0 0 0 3px rgba(8,145,178,.13)}textarea{min-height:92px;resize:vertical}.auth-card .download{margin:22px 0 16px}.auth-card>a{color:var(--cyan);font-size:14px}.alert{margin:14px 0;padding:12px 15px;border-radius:10px}.alert.error{background:#fef2f2;color:#b91c1c}.alert.success{background:#ecfdf5;color:#047857}.admin-title{display:flex;justify-content:space-between;align-items:end;margin-bottom:22px}.admin-title small{color:var(--cyan);font-weight:700}.admin-title h1{margin:5px 0 0}.admin-title>span{color:var(--muted);font-size:14px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.stats>div{min-height:118px}.stats span{color:var(--muted);font-size:14px}.stats strong{font-size:29px}.panel{border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 10px 28px rgba(15,23,42,.045)}.panel h2{margin:0}.panel>p,.upload-form>p{color:var(--muted);font-size:14px}.admin-grid{display:grid;grid-template-columns:410px 1fr;gap:20px}.upload-form{padding:22px}.upload-form .download{margin-top:20px}.table-panel{padding:22px;overflow:hidden}.table-scroll{overflow-x:auto;margin:15px -22px -22px}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:14px 18px;text-align:left;border-top:1px solid #edf2f4;white-space:nowrap}th{color:#64748b;font-weight:600;background:#fafcfd}td small{color:#94a3b8}.none{text-align:center;height:130px;color:#94a3b8}.logs{margin-top:20px}code{font-size:12px}
@media(max-width:900px){.hero{grid-template-columns:1fr}.grid{grid-template-columns:repeat(2,1fr)}.admin-grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.wrap{padding:26px 16px 50px}.nav{padding:0 16px}.brand{font-size:14px}.nav nav a,.text-btn{padding:8px;font-size:13px}.hero h1{font-size:35px;letter-spacing:-1px}.hero p{font-size:16px}.metrics>div{min-height:112px;padding:15px}.grid{grid-template-columns:1fr}.search button{padding:12px 16px}.admin-title{align-items:start;flex-direction:column;gap:8px}.stats>div{min-height:105px;padding:15px}}
