@import "https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;600;700&display=swap";:root{--bg:#f0fdf4;--bg2:#fff;--bg3:#ecfdf5;--border:#22c55e26;--border2:#22c55e40;--text:#14532d;--text2:#4ade80;--text3:#6b7280;--green:#16a34a;--green2:#22c55e;--green-light:#bbf7d0;--green-bg:#22c55e14;--font:"Noto Sans SC", -apple-system, BlinkMacSystemFont, sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font);min-height:100vh;overflow-x:hidden}.app{min-height:100vh;position:relative}.bg-leaves{pointer-events:none;z-index:0;background:radial-gradient(at 20% 10%,#22c55e14 0%,#0000 50%),radial-gradient(at 80% 90%,#10a34a0f 0%,#0000 50%),radial-gradient(#22c55e0a 0%,#0000 70%);position:fixed;inset:0}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{text-align:center;z-index:1;background:#fff;border-radius:24px;width:100%;max-width:380px;padding:44px 36px;animation:.4s rise;position:relative;box-shadow:0 20px 60px #22c55e1a,0 0 0 1px #22c55e14}@keyframes rise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.login-logo{color:#fff;background:linear-gradient(135deg,#16a34a,#22c55e);border-radius:18px;justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto 20px;display:flex;box-shadow:0 8px 24px #22c55e4d}.login-logo svg{width:30px;height:30px}.login-title{color:var(--text);margin-bottom:4px;font-size:24px;font-weight:700}.login-sub{color:var(--text3);margin-bottom:28px;font-size:13px}.login-fields{text-align:left}.field{border:1.5px solid var(--border);background:#fafafa;border-radius:12px;margin-bottom:14px;padding:20px 14px 6px;transition:all .2s;position:relative}.field.focused{border-color:var(--green);box-shadow:0 0 0 3px var(--green-bg);background:#fff}.field label{color:var(--text3);pointer-events:none;font-size:15px;transition:all .2s;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.field label.up{color:var(--green);font-size:11px;top:10px;transform:none}.field input{width:100%;color:var(--text);font-size:15px;font-family:var(--font);background:0 0;border:none;outline:none;margin-top:4px}.login-tips{color:var(--text3);justify-content:space-between;margin:4px 0 18px;font-size:13px;display:flex}.tip-check{cursor:pointer;align-items:center;gap:5px;display:flex}.tip-check input{accent-color:var(--green);cursor:pointer}.login-btn{color:#fff;cursor:pointer;width:100%;font-size:16px;font-weight:600;font-family:var(--font);background:linear-gradient(135deg,#16a34a,#22c55e);border:none;border-radius:12px;padding:14px;transition:all .2s;box-shadow:0 4px 14px #22c55e4d}.login-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #22c55e66}.login-btn:active:not(:disabled){transform:scale(.98)}.login-btn:disabled{opacity:.7;cursor:not-allowed}.login-err{color:#ef4444;text-align:center;margin-top:12px;font-size:13px}.login-note{color:var(--text3);border-top:1px solid var(--border);margin-top:20px;padding-top:18px;font-size:12px}.topbar{z-index:100;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);background:#ffffffe6;position:sticky;top:0}.topbar-inner{justify-content:space-between;align-items:center;max-width:1200px;height:68px;margin:0 auto;padding:0 24px;display:flex}.logo{align-items:center;gap:14px;display:flex}.logo-icon{color:#fff;background:linear-gradient(135deg,#16a34a,#22c55e);border-radius:12px;justify-content:center;align-items:center;width:42px;height:42px;display:flex;box-shadow:0 4px 16px #22c55e40}.logo-icon svg{width:22px;height:22px}.logo-text{flex-direction:column;gap:1px;display:flex}.logo-title{color:var(--text);font-size:17px;font-weight:700}.logo-eng{color:var(--text3);letter-spacing:.5px;text-transform:uppercase;font-size:10px}.topbar-right{align-items:center;gap:10px;display:flex}.top-stat{background:var(--green-bg);border:1px solid var(--green-light);border-radius:10px;flex-direction:column;align-items:center;padding:5px 12px;display:flex}.top-stat-n{color:var(--green);font-size:16px;font-weight:800;line-height:1}.top-stat-l{color:var(--green);text-transform:uppercase;letter-spacing:.3px;font-size:9px}.top-btn{color:#fff;background:linear-gradient(135deg,#16a34a,#22c55e);border-radius:10px;align-items:center;gap:7px;padding:9px 16px;font-size:13px;font-weight:500;text-decoration:none;transition:all .2s;display:flex;box-shadow:0 4px 12px #22c55e40}.top-btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px #22c55e59}.top-logout{color:#ef4444;cursor:pointer;font-size:13px;font-weight:500;font-family:var(--font);background:#ef44440f;border:1px solid #ef444426;border-radius:10px;align-items:center;gap:6px;padding:9px 14px;transition:all .2s;display:flex}.top-logout:hover{background:#ef44441a;border-color:#ef444440}.hero-zone{text-align:center;z-index:1;max-width:1200px;margin:0 auto;padding:48px 24px 16px;position:relative}.hero-title{color:var(--text);letter-spacing:8px;margin-bottom:6px;font-size:28px;font-weight:700}.hero-count{color:var(--text3);font-size:13px}.search-zone{z-index:1;max-width:1200px;margin:0 auto;padding:12px 24px 0;position:relative}.search-bar{border:1.5px solid var(--border);background:#fff;border-radius:14px;align-items:center;gap:12px;padding:14px 16px;transition:all .2s;display:flex;position:relative;box-shadow:0 4px 16px #22c55e0f}.search-bar:focus-within{border-color:var(--green);box-shadow:0 0 0 3px var(--green-bg), 0 6px 24px #22c55e1a}.s-icon{color:var(--text3);flex-shrink:0;width:20px;height:20px}.s-input{color:var(--text);font-size:15px;font-family:var(--font);background:0 0;border:none;outline:none;flex:1}.s-input::placeholder{color:var(--text3)}.s-x{color:var(--text3);cursor:pointer;border-radius:4px;flex-shrink:0;align-items:center;padding:4px;transition:all .2s;display:flex}.s-x:hover{color:var(--text);background:#0000000f}.s-tip{color:var(--text3);margin-top:10px;padding:0 4px;font-size:12px}.search-out{z-index:1;max-width:1200px;margin:0 auto;padding:20px 24px;position:relative}.out-head{color:var(--text3);margin-bottom:12px;font-size:14px}.out-head strong{color:var(--green)}.out-list{flex-direction:column;gap:6px;display:flex}.out-item{border:1px solid var(--border);background:#fff;border-radius:12px;align-items:center;gap:14px;padding:13px 16px;text-decoration:none;transition:all .2s;display:flex}.out-item:hover{border-color:var(--green);transform:translate(4px);box-shadow:0 4px 16px #22c55e1a}.out-item.ok{border-color:var(--green-light);background:var(--green-bg)}.out-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.out-svg{align-items:center;width:18px;height:18px;display:flex}.out-svg svg{width:18px;height:18px}.out-body{flex:1}.out-name{color:var(--text);align-items:center;gap:7px;font-size:14px;font-weight:500;display:flex}.out-badge{background:var(--green-bg);color:var(--green);border:1px solid var(--green-light);border-radius:5px;padding:2px 6px;font-size:10px;font-weight:600}.out-cat{color:var(--text3);font-size:12px}.out-arr{color:var(--text3);flex-shrink:0}.out-empty{text-align:center;max-width:1200px;color:var(--text3);z-index:1;flex-direction:column;align-items:center;gap:8px;margin:0 auto;padding:60px 24px;display:flex;position:relative}.out-empty p{color:var(--text);font-size:16px}.out-empty span{font-size:13px}.cards-zone{z-index:1;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;max-width:1200px;margin:0 auto;padding:24px 24px 40px;display:grid;position:relative}.cat-card{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:18px;transition:all .25s;overflow:hidden}.cat-card:hover{border-color:var(--green);transform:translateY(-2px);box-shadow:0 8px 32px #22c55e1a,0 0 0 1px #22c55e1a}.cat-card.open{border-color:var(--green);box-shadow:0 12px 40px #22c55e26,0 0 0 1.5px #22c55e33}.card-head{align-items:center;gap:14px;padding:20px;display:flex}.card-icon{border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.card-icon svg{width:22px;height:22px}.card-info{flex:1;min-width:0}.card-title{color:var(--text);margin-bottom:3px;font-size:16px;font-weight:700}.card-desc{color:var(--text3);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.card-right{flex-shrink:0;align-items:center;gap:10px;display:flex}.card-num{background:var(--green-bg);border:1px solid var(--green-light);min-width:30px;height:30px;color:var(--green);border-radius:8px;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.card-arrow{color:var(--text3);flex-shrink:0;transition:transform .25s}.card-body{border-top:1px solid var(--border);padding:16px 20px 20px;animation:.25s openCard}@keyframes openCard{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.tags-wrap{flex-wrap:wrap;gap:7px;margin-bottom:12px;display:flex}.tag-item{border:1px solid var(--border);color:var(--text);white-space:nowrap;background:#22c55e0f;border-radius:8px;align-items:center;gap:4px;padding:5px 12px;font-size:12px;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex}.tag-item:hover{background:var(--green);border-color:var(--green);color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #22c55e40}.tag-item.done{background:var(--green-bg);border-color:var(--green-light);color:var(--green)}.tag-item.done:hover{background:var(--green);border-color:var(--green);color:#fff}.tag-dot{background:var(--green2);border-radius:50%;flex-shrink:0;width:5px;height:5px}.card-foot{justify-content:flex-end;display:flex}.foot-txt{color:var(--text3);font-size:11px}.foot{text-align:center;color:var(--text3);border-top:1px solid var(--border);z-index:1;background:#ffffffb3;justify-content:center;align-items:center;gap:10px;padding:22px 24px;font-size:12px;display:flex;position:relative}.fd{opacity:.3}@media (width<=768px){.topbar-inner{flex-wrap:wrap;gap:10px;height:auto;padding:12px 16px}.logo-eng,.top-stat,.top-logout span{display:none}.cards-zone{grid-template-columns:1fr;gap:12px;padding:16px 16px 32px}.search-zone{padding:20px 16px 0}.login-card{padding:36px 24px}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#22c55e33;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#22c55e66}
