:root{--sidebar-bg: #00466b;--sidebar-dark: #003354;--accent: #0079bf;--accent-hover: #0068a3;--accent-light: #e6f3fb;--text-primary: #0d1b2a;--text-secondary: #4a5568;--text-muted: #8a9bb0;--bg: #f0f4f8;--surface: #ffffff;--border: #dce3eb;--border-light: #edf1f5;--sidebar-text: rgba(255,255,255,0.72);--sidebar-text-hover: #ffffff;--sidebar-hover: rgba(255,255,255,0.09);--success: #0a7b4d;--success-bg: #e6f6ef;--success-border: #a3d9be;--danger: #c0392b;--danger-bg: #fdecea;--danger-border: #f5c6c2;--warning: #9a7d0a;--warning-bg: #fef9e7;--warning-border: #f9e79f;--info: #0079bf;--info-bg: #e6f3fb;--info-border: #b3d9f0;--radius: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 4px rgba(0,0,0,.06);--shadow: 0 2px 10px rgba(0,0,0,.08);--shadow-lg: 0 8px 32px rgba(0,0,0,.16);--sidebar-w: clamp(210px,17vw,260px);--topbar-h: 60px}*,*::before,*::after{box-sizing: border-box;margin: 0;padding: 0}body{font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size: 15px;line-height: 1.5;color: var(--text-primary);background: var(--bg);min-height: 100vh}.form-group{margin-bottom: 18px}.form-group label{display: block;font-size: 12px;font-weight: 600;color: var(--text-secondary);margin-bottom: 6px;text-transform: uppercase;letter-spacing: 0.5px}.form-group input,.form-group select,.form-group textarea{width: 100%;padding: 10px 14px;border: 1.5px solid var(--border);border-radius: var(--radius);font-size: 15px;font-family: inherit;color: var(--text-primary);background: var(--surface);outline: none;transition: border-color .2s,box-shadow .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color: var(--accent);box-shadow: 0 0 0 3px rgba(0,121,191,.12)}.form-group input:disabled,.form-group select:disabled{background: var(--bg);color: var(--text-muted);cursor: not-allowed}.alert{display: flex;align-items: center;gap: 10px;padding: 12px 16px;border-radius: var(--radius);margin-bottom: 16px;font-size: 14px;border: 1px solid}.alert-error{background: var(--danger-bg);color: var(--danger);border-color: var(--danger-border)}.card{background: var(--surface);border-radius: var(--radius);padding: 24px;box-shadow: var(--shadow-sm);border: 1px solid var(--border-light);margin-bottom: 20px}.nav-group-toggle{display: flex;align-items: center;gap: 11px;width: 100%;padding: 11px 22px;background: none;border: none;border-left: 3px solid transparent;color: var(--sidebar-text);font-size: 15px;font-weight: 600;font-family: inherit;cursor: pointer;text-align: left;transition: background .15s,color .15s,border-color .15s}.nav-group-toggle .nav-icon{width: 18px;height: 18px;flex-shrink: 0}.nav-group-toggle .nav-label{flex: 1}.nav-group-toggle:hover,.nav-group-toggle.active{background: var(--sidebar-hover);color: var(--sidebar-text-hover);border-left-color: var(--accent)}.nav-arrow{width: 15px;height: 15px;flex-shrink: 0;opacity: 0.55;transition: transform .2s}.nav-group.open .nav-arrow{transform: rotate(180deg)}.nav-group-items{max-height: 0;overflow: hidden;transition: max-height .25s ease}.nav-group.open .nav-group-items{max-height: 600px}.nav-group-items a{display: block;padding: 9px 22px 9px 51px;color: var(--sidebar-text);text-decoration: none;font-size: 14px;border-left: 3px solid transparent;transition: background .15s,color .15s,border-color .15s}.nav-group-items a:hover,.nav-group-items a.active{background: var(--sidebar-hover);color: var(--sidebar-text-hover);border-left-color: var(--accent)}.alert-success{background: var(--success-bg);color: var(--success);border-color: var(--success-border)}.alert-warning{background: var(--warning-bg);color: var(--warning);border-color: var(--warning-border)}.alert-info{background: var(--info-bg);color: var(--info);border-color: var(--info-border)}.table-wrap{background: var(--surface);border-radius: var(--radius);box-shadow: var(--shadow-sm);border: 1px solid var(--border-light);overflow-x: auto;-webkit-overflow-scrolling: touch}.data-table{width: 100%;border-collapse: collapse;font-size: 14px;min-width: 520px}.data-table th{background: #f5f8fb;padding: 11px 16px;text-align: left;font-size: 11px;font-weight: 700;color: var(--text-muted);text-transform: uppercase;letter-spacing: 0.6px;border-bottom: 1px solid var(--border);white-space: nowrap}.data-table td{padding: 12px 16px;border-bottom: 1px solid var(--border-light);color: var(--text-secondary);vertical-align: middle}.data-table tbody tr:last-child td{border-bottom: none}.data-table tbody tr:hover{background: #f3f8fd}.data-table .text-center{text-align: center}.data-table .text-right{text-align: right}.table-toolbar{display: flex;align-items: center;justify-content: space-between;margin-bottom: 16px;gap: 12px;flex-wrap: wrap}.search-box{display: flex;align-items: center;gap: 8px;background: var(--surface);border: 1.5px solid var(--border);border-radius: var(--radius);padding: 0 12px;flex: 1;min-width: 0;max-width: 360px;color: var(--text-muted);transition: border-color .2s}.search-box:focus-within{border-color: var(--accent)}.search-box input{border: none;outline: none;padding: 9px 0;font-size: 14px;width: 100%;background: transparent;color: var(--text-primary)}.btn{display: inline-flex;align-items: center;gap: 6px;padding: 9px 18px;border-radius: var(--radius);font-size: 14px;font-weight: 600;font-family: inherit;text-decoration: none;border: none;cursor: pointer;white-space: nowrap;line-height: 1;transition: background .15s,opacity .15s}.btn:active{opacity: .82}.btn-sm{padding: 6px 12px;font-size: 13px;border-radius: 6px}.btn-primary{background: var(--accent);color: #fff}.btn-primary:hover{background: var(--accent-hover)}.btn-success{background: var(--success);color: #fff}.btn-success:hover{opacity: .88}.btn-danger{background: var(--danger);color: #fff}.btn-danger:hover{opacity: .88}.btn-secondary{background: var(--border);color: var(--text-secondary)}.btn-secondary:hover{filter: brightness(.95)}.form-row{display: flex;gap: 16px;flex-wrap: wrap;margin-bottom: 18px}.form-row .form-group{flex: 1;min-width: 200px;margin-bottom: 0}.form-actions{display: flex;gap: 10px;margin-top: 24px;flex-wrap: wrap}.pagination{display: flex;align-items: center;justify-content: center;gap: 4px;padding: 16px;font-size: 13px;flex-wrap: wrap}.pagination a,.pagination span{display: inline-flex;align-items: center;justify-content: center;min-width: 34px;height: 34px;padding: 0 8px;border-radius: 6px;text-decoration: none;color: var(--text-secondary);font-weight: 500;transition: background .15s}.pagination a:hover{background: var(--border-light)}.pagination .active{background: var(--accent);color: #fff}.pagination .disabled{color: var(--border);pointer-events: none}.pagination-info{font-size: 13px;color: var(--text-muted);text-align: center;padding: 0 16px 12px}.badge{display: inline-flex;align-items: center;padding: 3px 10px;border-radius: 20px;font-size: 12px;font-weight: 600;letter-spacing: 0.2px}.badge-active{background: var(--success-bg);color: var(--success)}.badge-inactive{background: var(--danger-bg);color: var(--danger)}.matrix-table th,.matrix-table td{text-align: center}.matrix-table td:first-child{text-align: left}.matrix-table input[type="checkbox"]{width: 16px;height: 16px;accent-color: var(--accent);cursor: pointer}.layout{display: flex;min-height: 100vh}.sidebar{position: fixed;top: 0;left: 0;width: var(--sidebar-w);height: 100%;background: var(--sidebar-bg);color: var(--sidebar-text);display: flex;flex-direction: column;z-index: 200;transform: translateX(-100%);transition: transform .25s ease;overflow: hidden}.sidebar-open .sidebar{transform: translateX(0)}.sidebar-overlay{display: none;position: fixed;inset: 0;background: rgba(0,0,0,.45);z-index: 199}.sidebar-open .sidebar-overlay{display: block}.sidebar-brand{padding: 22px;font-size: 18px;font-weight: 700;color: #fff;border-bottom: 1px solid rgba(255,255,255,.1);flex-shrink: 0;display: flex;align-items: center;gap: 11px;letter-spacing: -0.3px}.sidebar-brand .brand-icon{width: 22px;height: 22px;flex-shrink: 0;color: var(--accent-light)}.sidebar-nav{flex: 1;padding: 11px 0;overflow-y: auto;scrollbar-gutter: stable;scrollbar-width: thin;scrollbar-color: rgba(255,255,255,0.18) transparent}.sidebar-nav::-webkit-scrollbar{width: 4px}.sidebar-nav::-webkit-scrollbar-track{background: transparent}.sidebar-nav::-webkit-scrollbar-thumb{background: rgba(255,255,255,0.18);border-radius: 2px}.sidebar-nav::-webkit-scrollbar-thumb:hover{background: rgba(255,255,255,0.32)}.sidebar-nav > a{display: flex;align-items: center;gap: 11px;padding: 11px 22px;color: var(--sidebar-text);text-decoration: none;font-size: 15px;font-weight: 600;border-left: 3px solid transparent;transition: background .15s,color .15s,border-color .15s}.sidebar-nav > a:hover,.sidebar-nav > a.active{background: var(--sidebar-hover);color: var(--sidebar-text-hover);border-left-color: var(--accent)}.sidebar-nav > a .nav-icon{width: 18px;height: 18px;flex-shrink: 0}.sidebar-footer{padding: 18px 22px;border-top: 1px solid rgba(255,255,255,.1);font-size: 14px;flex-shrink: 0;display: flex;flex-direction: column;gap: 7px}.sidebar-footer a{color: var(--sidebar-text);text-decoration: none;transition: color .15s}.sidebar-footer a:hover{color: #fff}.main{flex: 1;display: flex;flex-direction: column;min-width: 0;width: 100%}.topbar{position: sticky;top: 0;background: var(--surface);padding: 0 16px;height: var(--topbar-h);display: flex;align-items: center;justify-content: space-between;border-bottom: 1px solid var(--border);box-shadow: var(--shadow-sm);z-index: 100;gap: 12px}.topbar-left{display: flex;align-items: center;gap: 12px;min-width: 0}.hamburger{display: flex;align-items: center;justify-content: center;width: 36px;height: 36px;flex-shrink: 0;border: none;background: none;cursor: pointer;border-radius: var(--radius);color: var(--text-secondary);transition: background .15s,color .15s}.hamburger:hover{background: var(--border-light);color: var(--text-primary)}.topbar-title{font-size: 16px;font-weight: 600;color: var(--text-primary);white-space: nowrap;overflow: hidden;text-overflow: ellipsis}.topbar-right{display: flex;align-items: center;gap: 10px;flex-shrink: 0}.topbar-user{font-size: 13px;color: var(--text-muted)}.content{padding: 20px 16px;flex: 1}.page-title{font-size: 20px;font-weight: 700;color: var(--text-primary);margin-bottom: 20px}@media (min-width: 1024px){.sidebar{position: sticky;top: 0;height: 100vh;transform: none;transition: none;flex-shrink: 0}.sidebar-overlay{display: none !important}.hamburger{display: none}.topbar{padding: 0 32px}.content{padding: 28px 32px}.page-title{font-size: 22px;margin-bottom: 24px}} .login-wrap{display: flex;align-items: center;justify-content: center;min-height: 100vh;padding: 24px 16px;background: linear-gradient(150deg,var(--sidebar-dark) 0%,var(--sidebar-bg) 55%,var(--accent) 100%)}.login-card{background: var(--surface);border-radius: var(--radius-lg);padding: 48px 40px 40px;width: 100%;max-width: 420px;box-shadow: var(--shadow-lg)}.login-logo{text-align: center;margin-bottom: 36px}.login-logo h1{font-size: 22px;font-weight: 700;color: var(--sidebar-bg);letter-spacing: -0.5px}.login-logo span{display: block;font-size: 11px;color: var(--text-muted);text-transform: uppercase;letter-spacing: 1.5px;margin-top: 2px}.btn-block{display: flex;width: 100%;justify-content: center;padding: 13px;font-size: 15px;margin-top: 8px}