:root{--bg: #f7f7f8;--surface: #ffffff;--text: #1f2933;--muted: #6b7280;--border: #e5e7eb;--primary: #0e7c66;--primary-hover: #0a5e4d;--danger: #b3261e;--danger-bg: #fde7e6;--success: #155e3b;--success-bg: #e6f4ec;--shadow: 0 1px 2px rgba(15, 23, 42, .05), 0 1px 3px rgba(15, 23, 42, .08);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);font-size:16px;line-height:1.5}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:1.5rem;font-weight:600;margin:0 0 1rem}h2{font-size:1.2rem;font-weight:600;margin:1.25rem 0 .5rem}button,input,select,textarea{font:inherit;color:inherit}button{background:var(--primary);color:#fff;border:none;border-radius:6px;padding:12px 20px;cursor:pointer;font-weight:500;min-height:44px}button:hover:not(:disabled){background:var(--primary-hover)}button:disabled{opacity:.55;cursor:not-allowed}button.secondary{background:transparent;color:var(--text);border:1px solid var(--border)}button.secondary:hover:not(:disabled){background:var(--bg)}button.danger{background:var(--danger)}button.danger:hover:not(:disabled){background:#8a1d18}button.icon{display:inline-flex;align-items:center;gap:6px}button.icon-only{width:44px;height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center}button.icon-only.danger-ghost{color:var(--danger)}button.icon-only.danger-ghost:hover:not(:disabled){background:var(--danger-bg);border-color:var(--danger)}input,select,textarea{width:100%;border:1px solid var(--border);border-radius:6px;padding:10px 12px;background:#fff;font-size:16px;min-height:44px}input[type=checkbox]{width:22px;height:22px;min-height:22px;padding:0;margin:0;cursor:pointer;accent-color:var(--primary);flex-shrink:0}textarea{resize:none;min-height:0}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:-1px;border-color:var(--primary)}.field{margin-bottom:14px}.field label{display:block;font-size:14px;font-weight:500;margin-bottom:6px;color:var(--muted)}.field .error{color:var(--danger);font-size:13px;margin-top:4px}.alert{border-radius:6px;padding:12px 14px;font-size:15px;margin-bottom:12px}.alert.error{background:var(--danger-bg);color:var(--danger)}.alert.success{background:var(--success-bg);color:var(--success)}.card{background:var(--surface);border-radius:10px;box-shadow:var(--shadow);padding:24px}.muted{color:var(--muted)}.spacer-sm{height:8px}.spacer-md{height:16px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.row.right{justify-content:flex-end}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle}th{font-weight:600;font-size:14px;color:var(--muted);background:#fafafa;position:sticky;top:0;z-index:2}tr:hover td{background:#fafbfc}.report-table th,.report-table td{border-right:1px solid var(--border)}.report-table th:last-child,.report-table td:last-child{border-right:none}.cell-num{text-align:center}.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:13px;font-weight:500;background:var(--border)}.badge.active{background:var(--success-bg);color:var(--success)}.badge.inactive{background:var(--danger-bg);color:var(--danger)}.badge.role-manager{background:#eef2ff;color:#3730a3}.badge.role-user{background:#ecfeff;color:#155e75}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.skeleton{display:inline-block;background:linear-gradient(90deg,#eef0f3,#f7f8fa,#eef0f3);background-size:200% 100%;border-radius:4px;animation:skeleton-shimmer 1.4s linear infinite}@media print{.card{box-shadow:none;padding:0;border-radius:0}header,nav,.no-print,button{display:none!important}body{background:#fff;font-size:11px}.report-table th{position:static;background:#fff}.report-table th,.report-table td{padding:4px 6px;page-break-inside:avoid}main{padding:0!important;max-width:none!important}main>div[style*=overflow]{overflow:visible!important;max-height:none!important}@page{size:A4 landscape;margin:10mm}}@media (max-width: 480px){.card{padding:16px}h1{font-size:1.25rem}button{padding:10px 14px}.appheader-username,.appheader-version{display:none}}
