:root{--color-primary: #0F4C5C;--color-primary-hover: #0B3A47;--color-primary-tint: #E3EEF1;--color-accent: #B23A6B;--color-accent-text: #94355C;--color-accent-tint: #F9E9F0;--color-secondary: #6B4468;--color-success: #4A6B3E;--color-danger: #dc2626;--color-danger-hover: #b91c1c;--color-warning: #8A5A18;--color-text: #1F2D32;--color-text-muted: #5C6B70;--color-bg: #F7F5F2;--color-surface: #FFFFFF;--color-border: #D8DDDE;--color-text-inverse: #FFFFFF;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "SF Mono", "Fira Code", "Fira Mono", Menlo, Consolas, monospace;--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: 2rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--transition: .15s cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-text);line-height:1.6;-webkit-font-smoothing:antialiased}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.app-layout{display:flex;min-height:100vh}.app-sidebar{width:240px;background:var(--color-primary);border-right:1px solid var(--color-border);display:flex;flex-direction:column;padding:var(--space-6) 0;flex-shrink:0}.app-sidebar-brand{padding:0 var(--space-6) var(--space-6);border-bottom:1px solid rgba(255,255,255,.15);margin-bottom:var(--space-4)}.app-sidebar-brand h2{font-size:var(--font-size-xl);font-weight:700;color:var(--color-primary)}.app-sidebar-brand .logo-sidebar{width:min(140px,100%);max-width:100%;height:auto;display:block;margin-bottom:var(--space-1)}.app-sidebar-brand span{font-size:var(--font-size-xs);color:#ffffffb3}.app-sidebar-nav{flex:1;display:flex;flex-direction:column;gap:var(--space-1);padding:0 var(--space-4)}.app-sidebar-nav a{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);text-decoration:none;color:#ffffffbf;font-size:var(--font-size-sm);font-weight:500;transition:background var(--transition),color var(--transition)}.app-sidebar-nav a:hover{background:#ffffff1a;color:#fff}.app-sidebar-nav a.active{background:var(--color-accent);color:var(--color-text-inverse)}.app-sidebar-footer{padding:var(--space-4) var(--space-6);border-top:1px solid rgba(255,255,255,.15)}.app-sidebar-user{font-size:var(--font-size-sm);color:#ffffffb3;margin-bottom:var(--space-2)}.app-main{flex:1;display:flex;flex-direction:column;overflow-x:hidden}.app-content{padding:var(--space-8);flex:1}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-8)}.page-header h1{font-size:var(--font-size-2xl);font-weight:700}.page-header-actions{display:flex;gap:var(--space-3);align-items:center}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.card-header h3{font-size:var(--font-size-lg);font-weight:600}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-6)}.dashboard-welcome{margin-bottom:var(--space-6);padding:var(--space-6);background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);color:#fff;border-radius:var(--radius-lg)}.dashboard-welcome h2{font-size:var(--font-size-2xl);margin-bottom:var(--space-2)}.dashboard-welcome p{opacity:.9}.quick-action-list{list-style:none;display:flex;flex-direction:column;gap:var(--space-2)}.quick-action-list a{display:block;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-bg);text-decoration:none;color:var(--color-text);font-weight:500;font-size:var(--font-size-sm);transition:background var(--transition),transform var(--transition)}.quick-action-list a:hover{background:var(--color-primary-tint);color:var(--color-primary);transform:translate(4px)}.login-page{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-accent) 100%);position:relative;padding-bottom:120px}.login-card{background:var(--color-surface);padding:var(--space-12);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:420px;margin:var(--space-4)}.login-card-logo{text-align:center;margin-bottom:var(--space-8)}.login-card-logo .logo-login{width:min(200px,50vw);max-width:100%;height:auto;display:block;margin:0 auto var(--space-2)}.login-card-logo h1{font-size:var(--font-size-3xl);font-weight:800;color:var(--color-primary);letter-spacing:-.05em}.login-card-logo span{display:block;font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:var(--space-1)}.form-group{margin-bottom:var(--space-4)}.form-group label{display:block;font-size:var(--font-size-sm);font-weight:600;color:var(--color-text);margin-bottom:var(--space-2)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);font-family:inherit;color:var(--color-text);background:var(--color-surface);transition:border-color var(--transition),box-shadow var(--transition)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #0f4c5c26}.form-group input[aria-invalid=true]{border-color:var(--color-danger)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:600;font-family:inherit;cursor:pointer;text-decoration:none;transition:background var(--transition),opacity var(--transition)}.btn-primary{background:var(--color-accent);color:var(--color-text-inverse)}.btn-primary:hover{background:var(--color-accent-text)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-danger{background:var(--color-danger);color:var(--color-text-inverse)}.btn-danger:hover{background:var(--color-danger-hover)}.btn-ghost{background:transparent;color:var(--color-text-muted)}.btn-ghost:hover{background:var(--color-bg)}.btn-block{width:100%}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);margin-bottom:var(--space-4)}.alert-error{background:#fef2f2;color:var(--color-danger);border:1px solid #fecaca}.alert-success{background:#f0fdf4;color:var(--color-success);border:1px solid #bbf7d0}.table-container{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface)}table{width:100%;border-collapse:collapse}thead{background:var(--color-bg)}th{text-align:left;padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border)}td{padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);color:var(--color-text);border-bottom:1px solid var(--color-border)}tbody tr:last-child td{border-bottom:none}tbody tr:nth-child(2n){background:var(--color-bg)}tbody tr:nth-child(odd){background:var(--color-surface)}tbody tr:hover{background:var(--color-primary-tint)}.empty-state{text-align:center;padding:var(--space-12);color:var(--color-text-muted)}.empty-state p{font-size:var(--font-size-sm)}.loading{display:flex;justify-content:center;align-items:center;padding:var(--space-12);color:var(--color-text-muted);font-size:var(--font-size-sm)}.loading-spinner{width:24px;height:24px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:var(--radius-full);animation:spin .8s linear infinite;margin-right:var(--space-3)}@keyframes spin{to{transform:rotate(360deg)}}.badge{display:inline-block;padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:600}.badge-success{background:#dcfce7;color:var(--color-success)}.badge-inactive{background:var(--color-bg);color:var(--color-text-muted)}.hamburger{display:none;position:fixed;top:var(--space-4);left:var(--space-4);z-index:110;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:8px;cursor:pointer}.hamburger span{display:block;width:20px;height:2px;background:var(--color-text);margin:3px 0;border-radius:2px}.sidebar-overlay{display:none}@media (max-width: 768px){.hamburger{display:block}.app-layout{flex-direction:column}.app-sidebar{position:fixed;left:-260px;top:0;bottom:0;width:260px;z-index:105;transition:left .3s ease;box-shadow:var(--shadow-lg)}.app-sidebar.open{left:0}.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:100}.app-sidebar-brand{border-bottom:1px solid rgba(255,255,255,.15);border-right:none;margin-bottom:var(--space-4);padding-right:var(--space-6)}.app-sidebar-nav{flex-direction:column}.app-sidebar-footer{border-left:none;border-top:1px solid rgba(255,255,255,.15);padding:var(--space-4) var(--space-6)}.app-content{padding:var(--space-4)}.dashboard-grid{grid-template-columns:1fr}}
