@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Sans+SC:wght@400;500;600&display=swap";:root{--bg: #f4f6f8;--panel: #ffffff;--ink: #1a2332;--muted: #5c6b7a;--line: #d8e0e8;--accent: #1f6b5a;--accent-soft: rgba(31, 107, 90, .1);--danger: #b42318;--warn: #b54708;--ok: #027a48;--side: #122033;--side-text: #d7e2ec;--side-active: #1f6b5a;--font: "IBM Plex Sans SC", "IBM Plex Sans", "PingFang SC", sans-serif;color:var(--ink);font-family:var(--font);background:var(--bg)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}button,input{font:inherit}a{color:inherit;text-decoration:none}.admin-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.admin-side{background:linear-gradient(180deg,#122033,#0d1826);color:var(--side-text);padding:28px 18px;display:flex;flex-direction:column;gap:28px}.admin-brand{font-size:1.15rem;font-weight:600;letter-spacing:.02em}.admin-brand small{display:block;margin-top:4px;font-size:.75rem;opacity:.65;font-weight:400}.admin-nav{display:flex;flex-direction:column;gap:14px;overflow-y:auto;flex:1;min-height:0;padding-right:2px}.admin-nav-group{display:flex;flex-direction:column;gap:2px}.admin-nav-group-label{display:flex;align-items:center;gap:8px;padding:4px 12px 6px;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;opacity:.55}.admin-nav a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-radius:8px;color:var(--side-text);opacity:.82;font-size:.92rem}.admin-nav a:hover{background:#ffffff0f;opacity:1}.admin-nav a.is-active{background:var(--side-active);opacity:1;color:#fff}.admin-nav-tag{font-size:.65rem;padding:1px 6px;border-radius:999px;background:#ffffff1f;opacity:.9}.admin-side-foot{margin-top:auto;display:flex;flex-direction:column;gap:10px}.admin-user{font-size:.85rem;opacity:.8;word-break:break-all}.admin-user small{display:block;margin-top:2px;opacity:.7;font-size:.75rem}.admin-section-title{margin:0 0 10px;font-size:.95rem;font-weight:600;color:var(--muted)}.admin-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.admin-panel-head h2{margin:0}.admin-split{display:grid;grid-template-columns:1fr 1fr;gap:16px}.admin-crumb{margin:0 0 6px;font-size:.85rem;color:var(--muted)}.admin-crumb a{color:var(--accent)}.admin-select,.admin-input{border:1px solid var(--line);border-radius:8px;padding:6px 10px;background:#fff;color:var(--ink);font:inherit}.admin-input{min-width:140px}.admin-timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}.admin-timeline li{display:grid;grid-template-columns:16px 1fr;gap:12px;position:relative;padding-bottom:16px}.admin-timeline li:not(:last-child):before{content:"";position:absolute;left:7px;top:12px;bottom:0;width:1px;background:var(--line)}.admin-timeline-dot{width:10px;height:10px;margin-top:4px;border-radius:50%;background:var(--accent)}.admin-timeline strong{display:block;font-size:.92rem}.admin-timeline span{display:block;color:var(--muted);font-size:.8rem;margin-top:2px}.admin-timeline code{display:block;margin-top:4px;font-size:.78rem;color:var(--muted)}.admin-err-cell{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--danger);font-size:.82rem}.admin-main{padding:28px 32px 48px}.admin-page-header{margin-bottom:24px}.admin-page-header h1{margin:0 0 6px;font-size:1.65rem;font-weight:600}.admin-page-header p{margin:0;color:var(--muted)}.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:24px}.admin-stat{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px 16px}.admin-stat .label{margin:0;color:var(--muted);font-size:.85rem}.admin-stat .value{margin:8px 0 0;font-size:1.55rem;font-weight:600}.admin-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px;overflow:auto}.admin-panel h2{margin:0 0 14px;font-size:1.05rem}.admin-table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-table th,.admin-table td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}.admin-table th{color:var(--muted);font-weight:500;white-space:nowrap}.admin-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:8px;padding:8px 14px;cursor:pointer}.admin-btn:hover{border-color:var(--accent)}.admin-btn:disabled{opacity:.55;cursor:not-allowed}.admin-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.admin-btn-danger{background:transparent;border-color:var(--danger);color:var(--danger)}.admin-btn-sm{padding:5px 10px;font-size:.82rem}.admin-login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at 20% 20%,rgba(31,107,90,.12),transparent 45%),radial-gradient(ellipse at 80% 10%,rgba(18,32,51,.08),transparent 40%),var(--bg)}.admin-login-card{width:min(400px,calc(100vw - 32px));background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:28px 24px;box-shadow:0 16px 40px #12203314}.admin-login-card h1{margin:0 0 6px;font-size:1.45rem}.admin-login-card p{margin:0 0 20px;color:var(--muted);font-size:.92rem}.admin-form{display:flex;flex-direction:column;gap:12px}.admin-form label{display:flex;flex-direction:column;gap:6px;font-size:.88rem;color:var(--muted)}.admin-form input{border:1px solid var(--line);border-radius:8px;padding:10px 12px;color:var(--ink);background:#fff}.admin-form input:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.admin-msg{margin:12px 0 0;font-size:.88rem;color:var(--muted)}.admin-msg.error{color:var(--danger)}.admin-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.75rem;background:var(--accent-soft);color:var(--accent)}.admin-badge.warn{background:#b547081f;color:var(--warn)}.admin-badge.ok{background:#027a481f;color:var(--ok)}.admin-actions{display:flex;gap:6px;flex-wrap:wrap}.admin-empty{color:var(--muted);margin:8px 0}@media (max-width: 860px){.admin-shell{grid-template-columns:1fr}.admin-side{padding:18px 14px}.admin-nav{flex-direction:row;flex-wrap:wrap;gap:8px}.admin-nav-group{min-width:140px}.admin-split{grid-template-columns:1fr}.admin-main{padding:20px 16px 40px}}
