:root{--bg: #f5f6f8;--surface: #ffffff;--text: #1a1a1a;--muted: #818c99;--accent: #0077ff;--on-accent: #ffffff;--line: #e7e8ec;--success: #1f8a4c;--success-bg: #e8f6ee;--warning: #9a6700;--warning-bg: #fff4e5;--danger: #c22e2e;--danger-bg: #fdecec;--info-bg: #e8f3ff;--neutral-bg: #f2f3f5;font-family:Inter,system-ui,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}a{color:var(--accent);text-decoration:none}.app{display:flex;min-height:100vh}.sidebar{width:232px;background:var(--surface);border-right:1px solid var(--line);padding:20px 12px;display:flex;flex-direction:column;gap:8px}.sidebar a,.tabbar a{color:var(--muted);border-radius:8px;padding:8px 10px}.sidebar a.on,.tabbar a.on{color:var(--accent);background:var(--neutral-bg)}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar,.mhead{height:56px;display:flex;align-items:center;gap:8px;padding:0 16px;background:var(--surface);border-bottom:1px solid var(--line)}.mark{width:28px;height:28px;border-radius:8px;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;font-weight:600}.grow{flex:1}.content{padding:16px;display:flex;flex-direction:column;gap:12px}.tabbar{display:none}h1{font-size:20px;margin:0}.card,.sheet{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.muted{color:var(--muted);font-size:12px}.chips{display:flex;gap:8px;overflow:auto}.chip{height:32px;border-radius:8px;border:1px solid var(--line);background:var(--surface);padding:0 10px;white-space:nowrap}.chip.on{background:var(--neutral-bg)}.chip.hot{background:var(--danger-bg)}.pill{border-radius:6px;padding:3px 8px;font-size:12px;font-weight:500}.ok{background:var(--success-bg);color:var(--success)}.warn{background:var(--warning-bg);color:var(--warning)}.info{background:var(--info-bg);color:var(--accent)}.neutral{background:var(--neutral-bg);color:var(--muted)}.bad{color:var(--danger)}.good{color:var(--success)}.btn{height:36px;border-radius:8px;border:1px solid transparent;padding:0 16px;cursor:pointer}.btn.primary{background:var(--accent);color:var(--on-accent)}.btn.ghost{background:var(--surface);border-color:var(--line)}.btn.danger{background:var(--danger);color:var(--on-accent)}.btn.link{background:none;color:var(--accent);padding:0;height:auto}.btn.link.bad{color:var(--danger)}.card img{max-width:100%;border-radius:8px}.field input[type=file]{height:auto;padding:8px 0;border:0}.field input,.field select,.search{height:40px;border-radius:8px;border:1px solid var(--line);padding:0 12px;background:var(--surface);width:100%}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}table{width:100%;border-collapse:collapse;background:var(--surface)}th,td{text-align:left;padding:8px;border-bottom:1px solid var(--line);font-size:13px}th{color:var(--muted);font-weight:500}.sheet-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#10121659;display:flex;align-items:flex-end;justify-content:center}.sheet-panel{background:var(--surface);width:min(480px,100%);border-radius:16px 16px 0 0;padding:16px;display:flex;flex-direction:column;gap:12px}.login{min-height:100vh;display:grid;place-items:center;padding:16px}.login form{width:min(358px,100%);background:var(--surface);border-radius:12px;padding:24px 16px;display:flex;flex-direction:column;gap:12px}.err{color:var(--danger);font-size:13px}@media (min-width: 1100px){.mhead{display:none}.sheet-back{align-items:stretch;justify-content:flex-end}.sheet-panel{height:100%;border-radius:0}}@media (max-width: 1099px){.sidebar,.topbar,.plain .mhead,.plain .tabbar{display:none}.app{flex-direction:column}.tabbar{display:flex;position:sticky;bottom:0;background:var(--surface);border-top:1px solid var(--line);height:64px}.tabbar a{flex:1;text-align:center;font-size:11px;padding-top:18px}.tabbar a.on{box-shadow:inset 0 2px 0 var(--accent)}.grid{grid-template-columns:1fr}table,.only-desk{display:none}.plain .sheet-back{align-items:stretch;background:var(--bg)}.plain .sheet-panel{width:100%;min-height:100%;border-radius:0}}@media (min-width: 1100px){.only-phone{display:none}}
