:root{--ink: #172126;--muted: #6d7b80;--line: #dbe4e3;--paper: #fbf7ef;--card: rgba(255, 255, 255, .82);--brand: #0f766e;--accent: #f59e0b;--danger: #dc2626}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:Segoe UI,Microsoft YaHei,sans-serif;background:radial-gradient(circle at 12% 10%,rgba(245,158,11,.22),transparent 28rem),radial-gradient(circle at 88% 16%,rgba(15,118,110,.2),transparent 32rem),linear-gradient(135deg,#fbf7ef,#edf7f4)}a{color:inherit;text-decoration:none}button,input{font:inherit}.shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:28px 22px;background:#172126eb;color:#fff}.brand{display:flex;gap:12px;align-items:center;margin-bottom:38px}.brand-mark{display:grid;width:46px;height:46px;place-items:center;border-radius:18px;background:var(--accent);color:#1d1606;font-weight:900}.brand small{display:block;color:#b7c5c8}nav{display:grid;gap:10px}nav a,.login-link{display:block;padding:13px 14px;border-radius:14px;color:#e9f2f0}nav a.router-link-active,nav a:hover,.login-link:hover{background:#ffffff1f}.login-link{width:100%;border:0;margin-top:24px;border:1px solid rgba(255,255,255,.18);background:transparent;cursor:pointer;text-align:left}.user-panel{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:center;margin-top:24px;padding:14px;border:1px solid rgba(255,255,255,.16);border-radius:18px;background:#ffffff14}.user-avatar{display:grid;width:42px;height:42px;place-items:center;border-radius:16px;background:var(--accent);color:#1d1606;font-weight:900}.user-panel small{display:block;margin-top:3px;color:#b7c5c8}.user-panel button{grid-column:1 / -1;border:0;border-radius:12px;padding:10px 12px;background:#ffffff1a;color:#e9f2f0;cursor:pointer;text-align:left}.user-panel button:hover{background:#ffffff29}.content{padding:34px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.page-title{margin:0 0 8px;font-size:clamp(28px,4vw,44px);letter-spacing:-.04em}.page-desc{margin:0 0 24px;color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.card{padding:22px;border:1px solid var(--line);border-radius:26px;background:var(--card);box-shadow:0 22px 70px #142b2d14;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.section-gap{margin-top:18px}.metric{font-size:34px;font-weight:900}.muted{color:var(--muted)}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.btn{border:0;border-radius:999px;padding:11px 16px;cursor:pointer;background:var(--ink);color:#fff}.btn.secondary{background:#e6eeec;color:var(--ink)}.btn.warn{background:var(--accent);color:#1d1606}.btn-loading{display:inline-flex;align-items:center;gap:8px}.btn:disabled,.btn.warn:disabled,.btn.secondary:disabled{cursor:not-allowed;background:#d7dee8;color:#8a98a8;box-shadow:none;opacity:1}.spinner{width:14px;height:14px;border:2px solid rgba(23,33,38,.22);border-top-color:currentColor;border-radius:50%;animation:spin .8s linear infinite}.form{display:grid;max-width:430px;gap:14px}.auth-page{display:grid;min-height:100vh;place-items:center;padding:32px 20px}.auth-page-card{width:min(460px,100%);padding:30px;border:1px solid rgba(255,255,255,.72);border-radius:28px;background:radial-gradient(circle at top right,rgba(245,158,11,.16),transparent 14rem),#fffffff0;box-shadow:0 34px 100px #1721262e;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.auth-page-form{max-width:none}.input{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:15px;background:#fff}.auth-mask{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:22px;background:#1721268f;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.auth-card{position:relative;width:min(430px,100%);padding:28px;border:1px solid rgba(255,255,255,.72);border-radius:28px;background:radial-gradient(circle at top right,rgba(245,158,11,.16),transparent 14rem),#fffffff0;box-shadow:0 34px 100px #1721263d}.auth-close{position:absolute;top:16px;right:16px;display:grid;width:34px;height:34px;place-items:center;border:0;border-radius:12px;background:#edf3f1;cursor:pointer;color:var(--muted);font-size:22px}.auth-head{display:flex;gap:13px;align-items:center;margin-bottom:20px}.auth-mark{display:grid;width:50px;height:50px;place-items:center;border-radius:18px;background:var(--accent);color:#1d1606;font-weight:900}.auth-head h2{margin:0;font-size:26px}.auth-head p{margin:4px 0 0;color:var(--muted)}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:18px;padding:5px;border-radius:999px;background:#edf3f1}.auth-tabs button{border:0;border-radius:999px;padding:10px;background:transparent;cursor:pointer;color:var(--muted);font-weight:800}.auth-tabs button.active{background:#fff;color:var(--ink);box-shadow:0 8px 22px #17212614}.auth-form{display:grid;gap:12px}.password-field,.captcha-row{position:relative;display:flex;align-items:center;gap:10px}.password-field .input{padding-right:50px}.eye-btn{position:absolute;right:9px;display:grid;width:34px;height:34px;place-items:center;border:0;border-radius:12px;background:#edf3f1;cursor:pointer;color:var(--muted)}.eye-btn:hover{background:#dbe8e4;color:var(--ink)}.eye-btn svg{width:21px;height:21px;fill:currentColor}.captcha-row .input{flex:1}.captcha-btn{display:grid;width:120px;height:46px;place-items:center;overflow:hidden;border:1px solid var(--line);border-radius:15px;background:#effaf7;cursor:pointer}.captcha-btn canvas{display:block}.auth-message{margin:12px 0 0;color:var(--danger)}.prompt-mask{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:22px;background:#17212685;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.prompt-card{width:min(440px,100%);padding:24px;border:1px solid rgba(255,255,255,.78);border-radius:28px;background:radial-gradient(circle at top right,rgba(245,158,11,.14),transparent 14rem),#fffffff5;box-shadow:0 30px 90px #1721263d}.prompt-head{display:grid;grid-template-columns:52px 1fr;gap:14px;align-items:start}.prompt-badge{display:grid;width:52px;height:52px;place-items:center;border-radius:18px;background:#ecf5f3;color:var(--brand);font-weight:900}.prompt-danger .prompt-badge{background:#fde8e8;color:var(--danger)}.prompt-success .prompt-badge{background:#dcfce7;color:#15803d}.prompt-head h3{margin:0 0 6px;font-size:24px}.prompt-head p{margin:0;color:var(--muted);line-height:1.6}.prompt-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.table{width:100%;border-collapse:collapse;overflow:hidden}.table th,.table td{padding:13px;border-bottom:1px solid var(--line);text-align:left}.link-btn{padding:0;border:0;background:transparent;color:var(--brand);cursor:pointer;text-align:left;word-break:break-all}.table-actions{display:flex;flex-wrap:wrap;gap:8px}.disclaimer-card{width:min(640px,100%)}.disclaimer-body{max-height:min(52vh,420px);margin-top:18px;padding:16px 18px;overflow:auto;border:1px solid var(--line);border-radius:20px;background:#f8faf9f2}.disclaimer-body p{margin:0;color:var(--muted);line-height:1.75}.disclaimer-body p+p{margin-top:10px}.disclaimer-check{display:flex;align-items:flex-start;gap:10px;margin-top:18px;color:var(--ink);line-height:1.6}.disclaimer-check input{margin-top:4px}.pagination-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px}.pagination-summary{color:var(--muted);font-size:14px}.pagination-actions{display:flex;gap:8px}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:900px){.shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}nav{grid-template-columns:repeat(2,1fr)}.content{padding:22px}.page-head{align-items:stretch;flex-direction:column}.grid{grid-template-columns:1fr}.auth-page{padding:20px 16px}.auth-page-card{padding:24px}}
