:root{--bg: #f6f7f9;--surface: #ffffff;--border: #e2e5ea;--text: #1f2933;--muted: #6b7280;--primary: #2563eb;--primary-hover: #1d4ed8;--danger: #dc2626;--radius: 8px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg);line-height:1.5}*{box-sizing:border-box}body{margin:0;background:var(--bg)}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:1100px;margin:0 auto;padding:1.5rem 1rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.page-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.page-header h1{margin:0;font-size:1.5rem}input,select,textarea{font:inherit;padding:.5rem .65rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);width:100%}textarea{resize:vertical}label{display:grid;gap:.3rem;font-weight:500;font-size:.92rem}label.checkbox{display:flex;align-items:center;gap:.4rem;font-weight:400}label.checkbox input{width:auto}.btn{font:inherit;border:1px solid transparent;border-radius:6px;padding:.5rem 1rem;cursor:pointer;white-space:nowrap;display:inline-block}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover);text-decoration:none}.btn-ghost{background:transparent;border-color:var(--border);color:var(--text)}.btn-danger{background:var(--danger);color:#fff}.badge{display:inline-block;padding:.1rem .55rem;border-radius:999px;font-size:.8rem;font-weight:600}.muted{color:var(--muted)}.error{color:var(--danger);margin:.5rem 0 0}.form-grid{display:grid;gap:1rem}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.6rem .75rem;border-bottom:1px solid var(--border)}th{font-size:.85rem;color:var(--muted);font-weight:600}tbody tr:hover{background:#f9fafb}.app-header{background:var(--surface);border-bottom:1px solid var(--border)}.app-header .header-inner{display:flex;align-items:center;gap:1.5rem;padding-top:.75rem;padding-bottom:.75rem}.app-header .brand{display:flex;align-items:center;gap:.6rem;font-weight:700;font-size:1.1rem;color:var(--text)}.app-header .brand img{width:32px;height:32px;object-fit:contain}.app-header .brand .module-name{font-weight:500;color:var(--muted)}.app-header nav{display:flex;gap:1rem;flex:1}.app-header nav a.router-link-exact-active{font-weight:600}.app-header .user{display:flex;align-items:center;gap:.5rem}
