:root{--color-primary: #2563eb;--color-secondary: #7c3aed;--color-success: #10b981;--color-warning: #f59e0b;--color-danger: #ef4444;--color-border: #e5e7eb;--color-bg: #f9fafb;--color-text: #1f2937;--color-sidebar: #1f2937;--shadow-sm: 0 1px 2px 0 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);--sidebar-width: 250px;--mobile-header-height: 60px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--color-text);background:var(--color-bg)}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}.layout{display:flex;min-height:100vh}.mobile-header{display:none;position:fixed;top:0;left:0;right:0;height:var(--mobile-header-height);background:var(--color-sidebar);color:#fff;padding:0 1rem;align-items:center;justify-content:space-between;z-index:1000;box-shadow:var(--shadow-md)}.mobile-logo{font-size:1.25rem;color:#fff}.hamburger{display:flex;flex-direction:column;justify-content:center;align-items:center;width:48px;height:48px;background:transparent;border:none;cursor:pointer;padding:0;z-index:1002}.hamburger:hover{opacity:1;transform:none;box-shadow:none}.hamburger span{display:block;width:24px;height:2px;background:#fff;border-radius:2px;transition:all .3s ease;margin:3px 0}.hamburger.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(6px,-6px)}.mobile-menu-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:998;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.mobile-menu-overlay.open{opacity:1;visibility:visible}.sidebar{width:var(--sidebar-width);background:var(--color-sidebar);color:#fff;padding:2rem 1rem;box-shadow:var(--shadow-lg);flex-shrink:0}.sidebar-logo{font-size:1.5rem;margin-bottom:2rem;color:#fff}.nav-list{list-style:none}.nav-item{margin-bottom:.5rem}.nav-link{display:block;padding:.75rem 1rem;border-radius:.375rem;text-decoration:none;color:inherit;background-color:transparent;transition:background .2s;font-size:1rem}.nav-link:hover,.nav-link.active{background-color:#374151}.nav-expand-btn{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left}.nav-chevron{transition:transform .2s ease;font-size:.75rem}.nav-chevron.expanded{transform:rotate(90deg)}.nav-sub-list{list-style:none;margin:0;padding:0;padding-left:1rem}.nav-sub-item{margin-bottom:.125rem}.nav-sub-link{display:block;padding:.75rem 1rem;border-radius:.375rem;text-decoration:none;color:#9ca3af;background-color:transparent;transition:background .2s,color .2s;font-size:.875rem;min-height:44px;display:flex;align-items:center}.nav-sub-link:hover,.nav-sub-link.active{background-color:#374151;color:#fff}.main-content{flex:1;overflow:auto;min-width:0}.content-wrapper{padding:2rem}@media (max-width: 768px){.mobile-header{display:flex}.mobile-menu-overlay{display:block}.sidebar{position:fixed;top:0;left:0;bottom:0;width:100%;max-width:100%;z-index:999;transform:translate(-100%);transition:transform .3s ease;padding-top:calc(var(--mobile-header-height) + 1rem);overflow-y:auto}.sidebar.open{transform:translate(0)}.sidebar-logo{display:none}.nav-link{padding:1rem 1.5rem;font-size:1.125rem}.nav-item{margin-bottom:.25rem}.main-content{margin-top:var(--mobile-header-height)}.content-wrapper{padding:1rem}table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}th,td{padding:.75rem;white-space:nowrap}.grid{grid-template-columns:1fr}.card{padding:1rem}h1{font-size:1.5rem}h2{font-size:1.25rem}.flex-between{flex-direction:column;align-items:flex-start;gap:1rem}}button{font-family:inherit;cursor:pointer;border:none;border-radius:.375rem;padding:.5rem 1rem;font-size:.9375rem;font-weight:500;transition:all .2s;min-height:44px;min-width:44px}button:hover{opacity:.9;transform:translateY(-1px);box-shadow:var(--shadow-md)}button:active{transform:translateY(0)}button.primary{background:var(--color-primary);color:#fff}button.secondary{background:#6b7280;color:#fff}button.danger{background:var(--color-danger);color:#fff}input,select,textarea{font-family:inherit;padding:.5rem;border:1px solid var(--color-border);border-radius:.375rem;font-size:1rem;min-height:44px}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb1a}table{width:100%;border-collapse:collapse;background:#fff;box-shadow:var(--shadow-sm);border-radius:.375rem;overflow:hidden}th{background:var(--color-bg);padding:1rem;text-align:left;font-weight:600;border-bottom:1px solid var(--color-border)}td{padding:1rem;border-bottom:1px solid var(--color-border)}tr:last-child td{border-bottom:none}tr:hover{background:#2563eb05}.badge{display:inline-block;padding:.25rem .75rem;border-radius:9999px;font-size:.8125rem;font-weight:500}.badge.success{background:#10b9811a;color:#047857}.badge.warning{background:#f59e0b1a;color:#92400e}.badge.danger{background:#ef44441a;color:#991b1b}.badge.info{background:#2563eb1a;color:#1e40af}.card{background:#fff;border-radius:.375rem;padding:1.5rem;box-shadow:var(--shadow-sm)}.grid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.25rem;font-weight:500;font-size:.9375rem}.form-group input,.form-group select,.form-group textarea{width:100%}.alert{padding:1rem;border-radius:.375rem;margin-bottom:1rem}.alert.success{background:#10b9811a;color:#047857;border:1px solid rgba(16,185,129,.3)}.alert.error{background:#ef44441a;color:#991b1b;border:1px solid rgba(239,68,68,.3)}.loading{display:inline-block;width:1rem;height:1rem;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.flex{display:flex}.flex-between{display:flex;justify-content:space-between;align-items:center}.flex-wrap{flex-wrap:wrap}.gap-2{gap:.5rem}.gap-4{gap:1rem}.mt-4{margin-top:1rem}.mb-4{margin-bottom:1rem}.text-right{text-align:right}.text-muted{color:#6b7280;font-size:.875rem}
