:root{--background:#f6f7f9;--surface:#ffffff;--surface-soft:#eef2f6;--ink:#111827;--muted:#64748b;--line:#d7dde5;--accent:#315f7d;--accent-strong:#214861;--success:#1f7a4d;--danger:#b42318;--shadow:0 14px 40px rgba(15,23,42,0.08);--radius:8px}*{box-sizing:border-box}body,html{min-height:100%}body{background:var(--background);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,Arial,sans-serif;letter-spacing:0;margin:0}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.72}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid rgba(49,95,125,.24);outline-offset:2px}.entry-page,.loading-page,.login-page{align-items:center;display:grid;min-height:100vh;padding:20px}.entry-panel,.loading-panel,.login-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin:0 auto;max-width:460px;width:100%}.entry-panel,.loading-panel{padding:28px}.entry-panel h1,.login-copy h1,.page-heading h1{font-size:clamp(1.72rem,6vw,2.35rem);line-height:1.12;margin:0}.entry-panel p,.login-copy p,.metric-card p,.notice-panel p,.page-heading p{color:var(--muted);line-height:1.58}.eyebrow{color:var(--accent);font-size:.78rem;font-weight:760;margin:0 0 10px;text-transform:uppercase}.ghost-button,.menu-toggle,.primary-button,.primary-link{align-items:center;border-radius:var(--radius);display:inline-flex;font-weight:700;justify-content:center;min-height:44px;padding:0 16px}.primary-button,.primary-link{background:var(--accent);border:1px solid var(--accent);color:#ffffff}.primary-link{margin-top:8px}.primary-button{width:100%}.ghost-button,.menu-toggle{background:var(--surface);border:1px solid var(--line);color:var(--ink)}.login-panel{display:grid;grid-gap:24px;gap:24px;padding:24px}.login-form{display:grid;grid-gap:16px;gap:16px}.login-form label{display:grid;grid-gap:8px;gap:8px}.login-form label span{color:#344054;font-size:.92rem;font-weight:680}.login-form input{background:#ffffff;border:1px solid #cfd6df;border-radius:var(--radius);color:var(--ink);min-height:46px;padding:0 12px;width:100%}.form-error,.top-error{color:var(--danger);font-size:.92rem;margin:0}.admin-app{min-height:100vh}.sidebar{display:none}.app-main{min-height:100vh;padding-bottom:76px}.topbar{align-items:center;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);display:grid;grid-gap:12px;gap:12px;grid-template-columns:auto minmax(0,1fr) auto;min-height:64px;padding:10px 14px;position:-webkit-sticky;position:sticky;top:0;z-index:10}.topbar-user{display:grid;min-width:0}.topbar-user span,.topbar-user strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-user strong{font-size:.96rem}.topbar-user span{color:var(--muted);font-size:.8rem}.mobile-drawer{background:var(--surface);border-bottom:1px solid var(--line);display:grid;grid-gap:4px;gap:4px;padding:10px 14px 14px}.mobile-drawer a,.sidebar-nav a{border-radius:var(--radius);color:#344054;font-weight:650;min-height:42px;padding:11px 12px}.mobile-drawer a.is-active,.sidebar-nav a.is-active{background:var(--accent);color:#ffffff}.content{padding:18px 14px 24px}.page-stack{display:grid;grid-gap:18px;gap:18px}.page-heading{display:grid;grid-gap:8px;gap:8px}.page-heading p{margin:0}.metric-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.metric-card,.notice-panel,.state-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 24px rgba(15,23,42,.04);padding:16px}.metric-card{display:grid;grid-gap:6px;gap:6px;min-height:128px}.metric-card span{color:var(--muted);font-size:.86rem}.metric-card strong{color:var(--accent-strong);font-size:1.5rem}.metric-card p,.notice-panel p{margin:0}.notice-panel{display:grid;grid-gap:10px;gap:10px}.notice-panel h2{font-size:1.05rem;margin:0}.list-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.list-toolbar span{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:#344054;font-size:.9rem;min-height:34px;padding:7px 10px}.table-wrap{display:none}.data-table{border-collapse:collapse;min-width:820px;width:100%}.data-table td,.data-table th{border-bottom:1px solid var(--line);font-size:.9rem;padding:12px;text-align:left;vertical-align:top}.data-table th{background:var(--surface-soft);color:#344054;font-weight:760}.data-table td{color:#1f2937}.mobile-list{display:grid;grid-gap:12px;gap:12px}.mobile-row{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);display:grid;grid-gap:10px;gap:10px;padding:14px}.mobile-row div{display:grid;grid-gap:4px;gap:4px;min-width:0}.mobile-row span{color:var(--muted);font-size:.78rem}.mobile-row strong{color:var(--ink);font-size:.94rem;font-weight:680;overflow-wrap:anywhere}.bottom-nav{background:rgba(255,255,255,.96);border-top:1px solid var(--line);bottom:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));left:0;min-height:62px;position:fixed;right:0;z-index:20}.bottom-nav a{align-items:center;color:var(--muted);display:flex;font-size:.76rem;font-weight:700;justify-content:center;min-width:0;padding:8px 3px;text-align:center}.bottom-nav a.is-active{color:var(--accent-strong)}@media (min-width:760px){.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);display:block;overflow-x:auto}.mobile-list{display:none}}@media (min-width:1024px){.admin-app{display:grid;grid-template-columns:248px minmax(0,1fr)}.sidebar{background:#101923;color:#ffffff;display:grid;grid-template-rows:auto minmax(0,1fr);min-height:100vh;padding:20px 14px;position:-webkit-sticky;position:sticky;top:0}.sidebar-brand{display:grid;font-size:1.05rem;font-weight:780;grid-gap:4px;gap:4px;margin-bottom:18px;padding:10px 12px}.sidebar-brand span{color:#9fb0c3;font-size:.82rem;font-weight:600}.sidebar-nav{display:grid;grid-gap:4px;gap:4px;align-content:start}.sidebar-nav a{color:#cbd5e1}.sidebar-nav a.is-active{background:#ffffff;color:#101923}.bottom-nav,.menu-toggle,.mobile-drawer{display:none}.app-main{padding-bottom:0}.topbar{grid-template-columns:minmax(0,1fr) auto;padding:12px 28px}.topbar-user{justify-self:end;text-align:right}.content{margin:0 auto;max-width:1180px;padding:28px;width:100%}.page-stack{gap:22px}}