*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{overflow-x:hidden;max-width:100vw}:root{--bg: #f5f5f5;--surface: #ffffff;--text: #1a1a1a;--text-sub: #888888;--border: #e0e0e0;--primary: #1a1a1a;--danger: #cc3333;--sidebar-w: 220px;--radius: 6px}body{font-family:system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}button{cursor:pointer;border:none;background:none;font:inherit}input:not(:where([type=checkbox],[type=radio])),select,textarea{font:inherit;border:1px solid var(--border);border-radius:var(--radius);padding:6px 10px;width:100%;background:var(--surface);color:var(--text);outline:none}input[type=checkbox],input[type=radio]{accent-color:var(--primary)}input:not(:where([type=checkbox],[type=radio])):focus,select:focus,textarea:focus{border-color:var(--primary)}a{color:inherit;text-decoration:none}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:var(--radius);font-size:13px;font-weight:500;transition:opacity .15s}.btn:hover{opacity:.75}.btn-primary{background:var(--primary);color:#fff}.btn-ghost{border:1px solid var(--border);color:var(--text)}.btn-danger{background:var(--danger);color:#fff}.btn-sm{padding:4px 10px;font-size:12px}.badge{display:inline-block;padding:2px 8px;border-radius:99px;font-size:11px;font-weight:500;background:var(--border);color:var(--text)}.form-group{display:flex;flex-direction:column;gap:4px;margin-bottom:14px}.form-group label{font-size:12px;font-weight:600;color:var(--text-sub)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width: 768px){.form-row{grid-template-columns:1fr}input:not(:where([type=checkbox],[type=radio])),select,textarea{font-size:16px!important}}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.page-header h1{font-size:20px;font-weight:700}.empty-state{text-align:center;padding:60px 20px;color:var(--text-sub)}.empty-state p{margin-top:8px;font-size:13px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-bottom:20px}.card h2{font-size:15px;font-weight:700;margin-bottom:20px}.msg{font-size:13px;margin-bottom:12px;padding:10px 12px;border-radius:var(--radius);border:1px solid}.msg.success{background:#edf8f0;color:#236b36;border-color:#bfe4c8}.msg.error{background:#fff0f0;color:var(--danger);border-color:#f0c4c4}.msg.warn{background:#fff8e5;color:#7a5600;border-color:#ead59b}.msg.ok{background:#edf8f0;color:#236b36;border-color:#bfe4c8}
