@import "https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-accent:#1a2b42;--color-accent-blue:#1565c0;--color-accent-hover:#0d47a1;--color-accent-light:#e3f0ff;--color-accent-mid:#90caf9;--color-topbar-bg:#1a2b42;--color-topbar-text:#fff;--color-sidebar-bg:#fff;--color-sidebar-border:#e8ecf0;--color-sidebar-text:#4a5568;--color-sidebar-label:#9aa5b4;--color-sidebar-hover:#f0f4f8;--color-sidebar-active-bg:#e8f0fb;--color-sidebar-active-text:#1565c0;--color-sidebar-active-border:#1565c0;--color-bg-base:#f4f6f9;--color-bg-surface:#fff;--color-bg-elevated:#f8f9fb;--color-bg-header:#fff;--color-border-subtle:#e8ecf0;--color-border-soft:#d4dae2;--color-border-mid:#c0c8d4;--color-text-primary:#1a2332;--color-text-secondary:#4a5568;--color-text-muted:#8a96a8;--color-text-ghost:#c0c8d4;--color-success:#2e7d32;--color-success-bg:#e8f5e9;--color-success-border:#a5d6a7;--color-danger:#c62828;--color-danger-bg:#ffebee;--color-danger-border:#ef9a9a;--color-warning:#e65100;--color-warning-bg:#fff3e0;--color-warning-border:#ffcc80;--color-info:#1565c0;--color-info-bg:#e3f2fd;--color-info-border:#90caf9;--color-purple:#6a1b9a;--color-purple-bg:#f3e5f5;--color-purple-border:#ce93d8;--font-sans:"Poppins", sans-serif;--topbar-height:56px;--sidebar-width:240px;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-xl:14px;--shadow-card:0 1px 3px #00000012, 0 1px 2px #0000000a;--shadow-modal:0 20px 60px #0000002e;--shadow-topbar:0 2px 8px #00000026}html,body,#root{background:var(--color-bg-base);height:100%;color:var(--color-text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border-mid);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.font-mono{letter-spacing:.01em;font-weight:500}.text-accent{color:var(--color-accent-blue)}.text-muted{color:var(--color-text-muted)}.text-secondary{color:var(--color-text-secondary)}.app-shell{flex-direction:column;height:100vh;display:flex;overflow:hidden}.topbar{height:var(--topbar-height);background:var(--color-topbar-bg);box-shadow:var(--shadow-topbar);z-index:20;flex-shrink:0;align-items:center;gap:16px;padding:0 24px;display:flex}.topbar-logo{color:#fff;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border-right:1px solid #ffffff26;padding-right:20px;font-size:16px;font-weight:700}.topbar-spacer{flex:1}.topbar-btn-primary{color:#fff;border-radius:var(--radius-md);font-family:var(--font-sans);cursor:pointer;white-space:nowrap;background:#2e7d32;border:none;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;transition:background .14s;display:inline-flex}.topbar-btn-primary:hover{background:#1b5e20}.topbar-icon-btn{border-radius:var(--radius-md);color:#fffc;cursor:pointer;background:#ffffff1a;border:none;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;transition:background .14s;display:flex;position:relative}.topbar-icon-btn:hover{background:#fff3}.topbar-notif-badge{color:#fff;background:#f44336;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:9px;font-weight:700;line-height:1;display:flex;position:absolute;top:4px;right:4px}.topbar-avatar{border-radius:var(--radius-md);cursor:pointer;background:#ffffff1a;border:none;align-items:center;gap:8px;padding:4px 10px 4px 4px;transition:background .14s;display:flex}.topbar-avatar:hover{background:#ffffff2e}.topbar-avatar-circle{background:var(--color-accent-blue);color:#fff;border:2px solid #fff6;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:11px;font-weight:700;display:flex}.topbar-avatar-name{color:#ffffffe6;font-size:13px;font-weight:500}.body-row{flex:1;display:flex;overflow:hidden}.sidebar{width:var(--sidebar-width);background:var(--color-sidebar-bg);border-right:1px solid var(--color-sidebar-border);z-index:10;flex-direction:column;flex-shrink:0;display:flex;overflow-y:auto}.sidebar-logo{display:none}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:16px 12px;display:flex}.nav-section-label{color:var(--color-sidebar-label);letter-spacing:.12em;text-transform:uppercase;padding:14px 10px 6px;font-size:10px;font-weight:600}.nav-item{border-radius:var(--radius-md);cursor:pointer;color:var(--color-sidebar-text);-webkit-user-select:none;user-select:none;border-left:3px solid #0000;align-items:center;gap:10px;padding:9px 12px;font-size:13px;font-weight:400;text-decoration:none;transition:background .14s,color .14s;display:flex}.nav-item:hover{background:var(--color-sidebar-hover);color:var(--color-text-primary)}.nav-item.active{background:var(--color-sidebar-active-bg);color:var(--color-sidebar-active-text);border-left-color:var(--color-sidebar-active-border);font-weight:500}.nav-item-icon{opacity:.7;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:14px;display:flex}.nav-item.active .nav-item-icon{opacity:1}.nav-item-dot{display:none}.sidebar-footer{border-top:1px solid var(--color-sidebar-border);color:var(--color-text-muted);align-items:center;gap:6px;padding:14px 16px;font-size:11px;font-weight:400;display:flex}.sidebar-footer-dot{background:#4caf50;border-radius:50%;flex-shrink:0;width:7px;height:7px}.main-area{background:var(--color-bg-base);flex-direction:column;flex:1;display:flex;overflow:hidden}.sub-topbar{background:var(--color-bg-surface);border-bottom:1px solid var(--color-border-subtle);flex-shrink:0;align-items:center;height:44px;padding:0 24px;display:flex}.sub-topbar-breadcrumb{color:var(--color-text-muted);align-items:center;gap:6px;font-size:12px;display:flex}.sub-topbar-breadcrumb .sep{opacity:.4}.sub-topbar-breadcrumb .current{color:var(--color-text-primary);font-weight:500}.sub-topbar-date{color:var(--color-text-muted);margin-left:auto;font-size:12px}.page-content{flex:1;padding:24px 28px;overflow-y:auto}.page-header{margin-bottom:20px}.page-title{color:var(--color-text-primary);margin-bottom:2px;font-size:20px;font-weight:600}.page-subtitle{color:var(--color-text-muted);font-size:12px;font-weight:400}.card{background:var(--color-bg-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:20px 24px}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:20px;display:grid}.metric-card{background:var(--color-bg-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:20px 22px;position:relative;overflow:hidden}.metric-card-icon{opacity:.15;color:var(--color-text-primary);font-size:22px;position:absolute;top:16px;right:18px}.metric-value{color:var(--color-text-primary);margin-bottom:6px;font-size:36px;font-weight:700;line-height:1}.metric-label{color:var(--color-text-secondary);font-size:12px;font-weight:400}.metric-sub{color:var(--color-text-muted);margin-top:2px;font-size:11px}.data-table{border-collapse:collapse;width:100%}.data-table th{color:var(--color-text-secondary);text-align:left;border-bottom:1px solid var(--color-border-subtle);background:var(--color-bg-surface);white-space:nowrap;padding:10px 14px;font-size:12px;font-weight:600}.data-table td{color:var(--color-text-secondary);border-bottom:1px solid var(--color-border-subtle);vertical-align:middle;padding:10px 14px;font-size:13px}.data-table tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{color:var(--color-text-primary);background:#f8faff}.badge{border-radius:20px;align-items:center;gap:4px;padding:3px 10px;font-size:11px;font-weight:500;display:inline-flex}.badge-success{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border)}.badge-danger{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger-border)}.badge-warning{background:var(--color-warning-bg);color:var(--color-warning);border:1px solid var(--color-warning-border)}.badge-info{background:var(--color-info-bg);color:var(--color-info);border:1px solid var(--color-info-border)}.badge-accent{background:var(--color-accent-light);color:var(--color-accent-blue);border:1px solid var(--color-accent-mid)}.badge-muted{background:var(--color-bg-elevated);color:var(--color-text-muted);border:1px solid var(--color-border-soft)}.badge-purple{background:var(--color-purple-bg);color:var(--color-purple);border:1px solid var(--color-purple-border)}.btn{border-radius:var(--radius-md);font-family:var(--font-sans);cursor:pointer;border:1px solid var(--color-border-soft);background:var(--color-bg-surface);color:var(--color-text-secondary);align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;text-decoration:none;transition:all .14s;display:inline-flex}.btn:hover{background:var(--color-bg-elevated);color:var(--color-text-primary);border-color:var(--color-border-mid)}.btn-primary{background:var(--color-accent-blue);color:#fff;border-color:var(--color-accent-blue)}.btn-primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover);color:#fff}.btn-danger{background:var(--color-danger-bg);color:var(--color-danger);border-color:var(--color-danger-border)}.btn-danger:hover{background:var(--color-danger);color:#fff}.form-group{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.form-label{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-secondary);font-size:11px;font-weight:600}.form-input,.form-select,.form-textarea{background:var(--color-bg-surface);border:1px solid var(--color-border-soft);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:var(--font-sans);outline:none;width:100%;padding:9px 12px;font-size:13px;transition:border-color .14s,box-shadow .14s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-accent-blue);box-shadow:0 0 0 3px #1565c01a}.form-input::placeholder{color:var(--color-text-ghost)}.form-select{cursor:pointer}.form-select option{background:var(--color-bg-surface);color:var(--color-text-primary)}.form-textarea{resize:vertical;min-height:80px;line-height:1.6}.divider{border:none;border-top:1px solid var(--color-border-subtle);margin:20px 0}.empty-state{text-align:center;color:var(--color-text-muted);padding:60px 20px}.empty-state-icon{opacity:.3;margin-bottom:12px;font-size:32px}.empty-state-text{color:var(--color-text-muted);font-size:13px;font-weight:400}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1a233273;justify-content:center;align-items:center;padding:20px;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.modal-box{background:var(--color-bg-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-xl);width:100%;max-height:90vh;box-shadow:var(--shadow-modal);flex-direction:column;animation:.18s slideUp;display:flex}.modal-header{border-bottom:1px solid var(--color-border-subtle);flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.modal-title{color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.06em;font-size:14px;font-weight:600}.modal-close{border:1px solid var(--color-border-soft);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;background:0 0;padding:3px 8px;font-size:13px;line-height:1;transition:all .12s}.modal-close:hover{color:var(--color-danger);border-color:var(--color-danger-border);background:var(--color-danger-bg)}.modal-body{padding:24px;overflow-y:auto}.form-grid{grid-template-columns:1fr 1fr;gap:0 20px;display:grid}.form-grid .form-group.full{grid-column:1/-1}.form-actions{border-top:1px solid var(--color-border-subtle);justify-content:flex-end;gap:8px;margin-top:8px;padding-top:12px;display:flex}.toast-container{z-index:200;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:24px;right:24px}.toast{border-radius:var(--radius-md);border:1px solid;align-items:center;gap:10px;min-width:260px;padding:12px 16px;font-size:13px;font-weight:400;animation:.2s slideLeft;display:flex;box-shadow:0 4px 12px #0000001a}.toast-success{background:var(--color-success-bg);color:var(--color-success);border-color:var(--color-success-border)}.toast-danger{background:var(--color-danger-bg);color:var(--color-danger);border-color:var(--color-danger-border)}.toast-warning{background:var(--color-warning-bg);color:var(--color-warning);border-color:var(--color-warning-border)}.toast-dot{background:currentColor;border-radius:50%;flex-shrink:0;width:7px;height:7px}.page-toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.page-toolbar .search-input-wrap{flex:1;min-width:200px;max-width:380px;position:relative}.search-icon{color:var(--color-text-muted);pointer-events:none;font-size:14px;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.filter-pills{flex-wrap:wrap;gap:6px;display:flex}.filter-pill{border:1px solid var(--color-border-soft);background:var(--color-bg-surface);color:var(--color-text-muted);cursor:pointer;box-shadow:var(--shadow-card);border-radius:20px;padding:5px 14px;font-size:11px;font-weight:500;transition:all .14s}.filter-pill:hover{border-color:var(--color-accent-mid);color:var(--color-accent-blue);background:var(--color-accent-light)}.filter-pill.active{background:var(--color-accent-blue);border-color:var(--color-accent-blue);color:#fff;box-shadow:0 2px 8px #1565c040}.table-actions{opacity:0;gap:6px;transition:opacity .12s;display:flex}.data-table tr:hover .table-actions{opacity:1}.btn-icon{background:var(--color-bg-elevated);border:1px solid var(--color-border-soft);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;padding:4px 8px;font-size:12px;transition:all .12s}.btn-icon:hover{border-color:var(--color-accent-blue);color:var(--color-accent-blue);background:var(--color-accent-light)}.btn-icon.danger:hover{border-color:var(--color-danger-border);color:var(--color-danger);background:var(--color-danger-bg)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes slideLeft{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.page-content{flex:1;overflow-y:auto}
