:root{--color-bg: #f4f5f7;--color-surface: #ffffff;--color-surface-alt: #f8f9fa;--color-border: #dee2e6;--color-border-focus: #495057;--color-primary: #1a1a2e;--color-primary-hover: #16213e;--color-primary-text: #ffffff;--color-text: #212529;--color-text-muted: #6c757d;--color-text-light: #adb5bd;--color-success: #198754;--color-success-bg: #d1e7dd;--color-success-border: #a3cfbb;--color-error: #dc3545;--color-error-bg: #f8d7da;--color-error-border: #f1aeb5;--color-warning: #856404;--color-warning-bg: #fff3cd;--color-warning-border: #ffda6a;--color-info-bg: #e8f4fd;--color-info-border: #9ec5fe;--color-badge-admin-bg: #cfe2ff;--color-badge-admin-text: #084298;--color-badge-user-bg: #e2e3e5;--color-badge-user-text: #41464b;--color-badge-active-bg: #d1e7dd;--color-badge-active-text: #0a3622;--color-badge-inactive-bg: #f8d7da;--color-badge-inactive-text: #58151c;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--spacing-1: .25rem;--spacing-2: .5rem;--spacing-3: .75rem;--spacing-4: 1rem;--spacing-5: 1.25rem;--spacing-6: 1.5rem;--spacing-8: 2rem;--spacing-10: 2.5rem;--spacing-12: 3rem;--spacing-16: 4rem;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--transition-fast: .15s ease;--transition-normal: .25s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--color-text);background-color:var(--color-bg);min-height:100vh}label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);margin-bottom:var(--spacing-2)}input[type=text],input[type=email],input[type=password],select{display:block;width:100%;padding:var(--spacing-3) var(--spacing-4);font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,select:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px #4950571f}input[type=text].error,input[type=email].error,input[type=password].error{border-color:var(--color-error)}input[type=text].error:focus,input[type=email].error:focus,input[type=password].error:focus{box-shadow:0 0 0 3px #dc354526}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-5);font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight);text-decoration:none;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),opacity var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:var(--color-primary-text);border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-secondary{background-color:transparent;color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){background-color:var(--color-surface-alt)}.btn-danger{background-color:transparent;color:var(--color-error);border-color:var(--color-error)}.btn-danger:hover:not(:disabled){background-color:var(--color-error-bg)}.btn-ghost{background-color:transparent;color:var(--color-text-muted);border-color:transparent;padding:var(--spacing-2) var(--spacing-3)}.btn-ghost:hover:not(:disabled){color:var(--color-text);background-color:var(--color-surface-alt)}.btn-sm{padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-sm)}.btn-full{width:100%}.alert{padding:var(--spacing-3) var(--spacing-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);border:1px solid transparent}.alert-error{background-color:var(--color-error-bg);color:var(--color-error);border-color:var(--color-error-border)}.alert-success{background-color:var(--color-success-bg);color:var(--color-success);border-color:var(--color-success-border)}.alert-warning{background-color:var(--color-warning-bg);color:var(--color-warning);border-color:var(--color-warning-border)}.badge{display:inline-block;padding:2px var(--spacing-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-sm);white-space:nowrap}.badge-admin{background-color:var(--color-badge-admin-bg);color:var(--color-badge-admin-text)}.badge-user{background-color:var(--color-badge-user-bg);color:var(--color-badge-user-text)}.badge-active{background-color:var(--color-badge-active-bg);color:var(--color-badge-active-text)}.badge-inactive{background-color:var(--color-badge-inactive-bg);color:var(--color-badge-inactive-text)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-4)}.modal{background-color:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;max-width:480px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-6);border-bottom:1px solid var(--color-border)}.modal-header h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.modal-body{padding:var(--spacing-6)}.modal-footer{display:flex;gap:var(--spacing-3);justify-content:flex-end;padding:var(--spacing-4) var(--spacing-6);border-top:1px solid var(--color-border)}.form-group{margin-bottom:var(--spacing-5)}.form-group:last-child{margin-bottom:0}.form-hint{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--spacing-1)}.table-wrapper{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border)}table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}thead{background-color:var(--color-surface-alt)}th{padding:var(--spacing-3) var(--spacing-4);text-align:left;font-weight:var(--font-weight-semibold);color:var(--color-text-muted);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border)}td{padding:var(--spacing-4);border-bottom:1px solid var(--color-border);vertical-align:middle}tr:last-child td{border-bottom:none}tbody tr:hover{background-color:var(--color-surface-alt)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.text-muted{color:var(--color-text-muted)}.text-sm{font-size:var(--font-size-sm)}.actions-cell{display:flex;gap:var(--spacing-2);flex-wrap:wrap}.app-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:100}.app-header-inner{max-width:1200px;margin:0 auto;padding:0 var(--spacing-6);height:56px;display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-6)}.app-nav{display:flex;gap:var(--spacing-2)}.nav-link{padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);text-decoration:none;transition:background .15s,color .15s}.nav-link:hover{background:var(--color-surface-alt);color:var(--color-text)}.nav-link.active{background:var(--color-bg);color:var(--color-primary);font-weight:var(--font-weight-semibold)}.app-header-user{display:flex;align-items:center;gap:var(--spacing-3)}.header-username{font-size:var(--font-size-sm);color:var(--color-text-muted)}
