:root{--bg: #ffffff;--bg-2: #f6f7f9;--fg: #111317;--fg-2: #5a6273;--border: #e3e6eb;--accent: #2b5cff;--danger: #d62a2a;--warn: #b56b00;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;background:var(--bg);color:var(--fg)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;padding:8px 14px;border:1px solid var(--border);background:var(--bg);border-radius:6px;cursor:pointer}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.danger{background:var(--danger);color:#fff;border-color:var(--danger)}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:6px;width:100%;background:var(--bg);color:var(--fg)}.full-center{display:flex;align-items:center;justify-content:center;height:100%}.shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:var(--bg-2);border-right:1px solid var(--border);padding:16px}.sidebar h1{font-size:16px;margin:0 0 16px}.sidebar nav{display:flex;flex-direction:column;gap:4px}.sidebar nav a{padding:8px 10px;border-radius:6px;color:var(--fg)}.sidebar nav a.active{background:#fff;box-shadow:inset 0 0 0 1px var(--border)}.main{padding:24px}.main header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.main h2{margin:0}.card{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:16px;margin-bottom:16px}table{width:100%;border-collapse:collapse}th,td{padding:8px 10px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}th{background:var(--bg-2);font-weight:600}.login-box{max-width:360px;margin:80px auto;padding:24px;border:1px solid var(--border);border-radius:12px}.login-box h1{margin:0 0 16px;font-size:20px}.field{margin-bottom:12px}.field label{display:block;font-size:13px;color:var(--fg-2);margin-bottom:4px}.error{color:var(--danger);font-size:13px}.muted{color:var(--fg-2)}.kbd{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--bg-2);padding:1px 5px;border-radius:4px;font-size:12px}
