:root{--primary:#3b82f6;--primary-hover:#2563eb;--secondary:#64748b;--success:#10b981;--danger:#ef4444;--warning:#f59e0b;--background:#f8fafc;--surface:#fff;--text-main:#1e293b;--text-muted:#64748b;--border:#e2e8f0;--shadow-sm:0 1px 2px 0 #0000000d;--shadow:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--radius:8px;--radius-lg:16px;--indigo-soft:#f0f4ff}body{background-color:var(--background);color:var(--text-main);margin:0;font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.5}#root{min-height:100vh}.container{max-width:1000px;margin:0 auto;padding:40px 20px}.card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);margin-bottom:24px;padding:24px}h1{margin-bottom:.5rem;font-size:1.875rem;font-weight:700}h2{margin-bottom:1rem;font-size:1.25rem;font-weight:600}p{color:var(--text-muted)}button{cursor:pointer;border:1px solid #0000;border-radius:10px;outline:none;justify-content:center;align-items:center;gap:10px;padding:10px 20px;font-size:.95rem;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn-primary{color:#fff;background:linear-gradient(135deg,#3b82f6 0%,#1d4ed8 100%);box-shadow:0 4px 6px -1px #3b82f64d,0 2px 4px -2px #3b82f64d}.btn-primary:hover{background:linear-gradient(135deg,#2563eb 0%,#1e40af 100%);transform:translateY(-1px);box-shadow:0 10px 15px -3px #3b82f666,0 4px 6px -2px #3b82f666}.btn-primary:active{transform:translateY(0)}.btn-outline{color:#1e293b;background:#fff;border-color:#e2e8f0;box-shadow:0 1px 2px #0000000d}.btn-outline:hover{background:#f8fafc;border-color:#cbd5e1;transform:translateY(-1px)}.btn-danger{color:#ef4444;background:snow;border:1px solid #fee2e2}.btn-success{color:#fff;background:linear-gradient(135deg,#10b981 0%,#059669 100%);box-shadow:0 4px 6px -1px #10b9814d}.btn-success:hover{background:linear-gradient(135deg,#059669 0%,#047857 100%);transform:translateY(-1px)}.btn-danger-gradient{color:#fff;background:linear-gradient(135deg,#ef4444 0%,#dc2626 100%);box-shadow:0 4px 6px -1px #ef44444d}.btn-danger-gradient:hover{background:linear-gradient(135deg,#dc2626 0%,#b91c1c 100%);transform:translateY(-1px)}.form-group{margin-bottom:16px}label{margin-bottom:6px;font-size:.875rem;font-weight:500;display:block}input,select,textarea{border:1px solid var(--border);background:var(--surface);box-sizing:border-box;border-radius:6px;width:100%;padding:10px 12px;font-size:1rem;transition:border-color .2s}input:focus,select:focus,textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #3b82f61a}.table-container{overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%}th{background:var(--background);text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);padding:12px 16px;font-size:.75rem;font-weight:600}td{border-bottom:1px solid var(--border);padding:16px;font-size:.875rem}tr:hover td{background-color:#f8fafc}.badge{text-transform:uppercase;letter-spacing:.025em;border-radius:9999px;padding:4px 12px;font-size:.7rem;font-weight:700;display:inline-flex}.badge-primary{color:#4338ca;background:#e0e7ff}.badge-success{color:#15803d;background:#dcfce7}.badge-warning{color:#a16207;background:#fef9c3}.badge-danger{color:#b91c1c;background:#fee2e2}.grid{gap:20px;display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media (width<=640px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.layout-wrapper{background-color:#f7f9fb;width:100vw;min-height:100vh;display:flex;overflow:hidden}.layout-sidebar{border-right:1px solid var(--border);background-color:#fff;flex-direction:column;flex-shrink:0;width:260px;display:flex}.sidebar-logo{padding:30px}.sidebar-logo h2{color:#000;margin:0;font-size:1.5rem;font-weight:800}.sidebar-nav{flex-direction:column;flex:1;padding:0 15px;display:flex}.nav-link{color:#4b5563;border-radius:8px;align-items:center;margin-bottom:8px;padding:12px 16px;font-size:.95rem;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.nav-link .nav-icon{margin-right:12px;font-size:1.1rem}.nav-link:hover{color:#111827;background-color:#f3f4f6}.nav-link.active{color:#fff;background-color:#000}.nav-link.active .nav-icon{color:#fff}.sidebar-footer{border-top:1px solid var(--border);padding:20px 15px}.logout-btn{width:100%;color:var(--danger);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;padding:12px 16px;font-size:.95rem;font-weight:500;transition:background .2s;display:flex}.logout-btn:hover{background-color:#fee2e2}.layout-main{flex-direction:column;flex:1;height:100vh;display:flex;overflow:hidden}.layout-topbar{border-bottom:1px solid var(--border);background-color:#fff;flex-shrink:0;justify-content:space-between;align-items:center;height:70px;padding:0 40px;display:flex}.topbar-title{color:#111827;margin:0;font-size:1.2rem;font-weight:700}.topbar-actions{align-items:center;gap:20px;display:flex}.bell-icon{cursor:pointer;font-size:1.25rem}.avatar-circle{color:#fff;background-color:#000;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-weight:700;display:flex}.layout-content{flex:1;padding:30px 40px;overflow-y:auto}.layout-content .container{max-width:none;margin:0;padding:0}.metrics-row{gap:20px;margin-bottom:30px;display:flex}.metric-card{border:1px solid var(--border);background:#fff;border-radius:12px;flex:1;padding:20px;box-shadow:0 1px 3px #0000000d}.metric-title{color:#6b7280;margin-bottom:12px;font-size:.8rem}.metric-value{color:#111827;margin-top:0;margin-bottom:8px;font-size:1.75rem;font-weight:800}.metric-trend{color:var(--success);font-size:.75rem;font-weight:500}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-content{background:var(--surface);border-radius:12px;width:100%;max-width:600px;max-height:90vh;padding:30px;position:relative;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;display:flex}.modal-header h3{margin:0;font-size:1.25rem;font-weight:700}.modal-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:0;font-size:1.5rem;line-height:1}.modal-close:hover{color:var(--danger);background:0 0}.login-page{background:linear-gradient(135deg,#f8fafc 0%,#e2e8f0 100%);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-brand{text-align:center;margin-bottom:32px}.login-brand h1{letter-spacing:-.025em;color:#0f172a;margin:0;font-size:2.5rem}.login-brand p{color:var(--primary);text-transform:uppercase;letter-spacing:.1em;margin-top:4px;font-size:.875rem;font-weight:500}.login-card-v2{border-radius:var(--radius-lg);background:#fff;border:1px solid #ffffffb3;width:100%;max-width:420px;padding:40px;box-shadow:0 25px 50px -12px #00000040}.login-card-v2 h2{text-align:center;color:#1e293b;margin-top:0;font-size:1.5rem}.role-shortcut-section{width:100%;max-width:600px;margin-top:40px}.role-shortcut-section h4{text-align:center;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:16px;font-size:.75rem}.role-shortcut-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.action-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;width:100%;display:grid}.action-tile{border:1px solid var(--border);box-shadow:var(--shadow-sm);cursor:pointer;background:#fff;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;padding:32px 24px;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex}.action-tile:hover{border-color:var(--primary);transform:translateY(-5px);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.action-tile .tile-icon{background:var(--background);border-radius:14px;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:16px;font-size:2.5rem;transition:background .3s;display:flex}.action-tile:hover .tile-icon{background:var(--primary-hover);color:#fff}.action-tile .tile-label{color:#1e293b;margin-bottom:4px;font-size:1.125rem;font-weight:700}.action-tile .tile-desc{color:var(--text-muted);text-align:center;font-size:.8125rem}.role-card{border:1px solid var(--border);text-align:center;cursor:pointer;background:#fff;border-radius:12px;padding:16px;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 2px #0000000d}.role-card:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 10px 15px -3px #0000001a}.role-card .role-emoji{margin-bottom:8px;font-size:1.5rem;display:block}.role-card .role-name{color:#1e293b;font-size:.8125rem;font-weight:600;display:block}.role-card .role-label{color:var(--text-muted);margin-top:4px;font-size:.7rem;display:block}@media (width<=600px){.role-shortcut-grid{grid-template-columns:1fr}}.notification-wrapper{align-items:center;display:flex;position:relative}.notification-badge{background:var(--danger);color:#fff;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:.65rem;font-weight:800;display:flex;position:absolute;top:-8px;right:-8px}.notification-dropdown{border:1px solid var(--border);z-index:1001;background:#fff;border-radius:12px;width:320px;margin-top:15px;position:absolute;top:100%;right:0;overflow:hidden;box-shadow:0 10px 25px -5px #0000001a,0 8px 10px -6px #0000001a}.notification-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:15px;display:flex}.notification-header h4{margin:0;font-size:.95rem}.clear-all{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0;font-size:.75rem}.clear-all:hover{text-decoration:underline}.notification-list{max-height:400px;overflow-y:auto}.notification-item{border-bottom:1px solid var(--border);cursor:pointer;color:inherit;flex-direction:column;gap:4px;padding:15px;text-decoration:none;transition:background .2s;display:flex}.notification-item:hover{background:var(--background)}.notification-item.unread{background:#f0f7ff}.notification-item .notif-title{color:#1e293b;font-size:.85rem;font-weight:700}.notification-item .notif-msg{color:var(--text-muted);font-size:.8rem;line-height:1.4}.notification-item .notif-time{color:#94a3b8;margin-top:4px;font-size:.7rem}.empty-notifications{text-align:center;color:var(--text-muted);padding:40px 20px;font-size:.875rem}
