:root{--color-bg: #f5f6f8;--color-surface: #ffffff;--color-surface-hover: #f9fafb;--color-border: #e2e5ea;--color-border-light: #eef0f3;--color-text: #1a1d23;--color-text-secondary: #6b7280;--color-text-muted: #9ca3af;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-light: #eff6ff;--color-danger: #dc2626;--color-danger-light: #fef2f2;--color-success: #059669;--color-success-light: #ecfdf5;--color-warning: #d97706;--color-warning-light: #fffbeb;--color-sidebar: #111827;--color-sidebar-text: #d1d5db;--color-sidebar-active: #1f2937;--color-sidebar-hover: #1f2937;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 1px 3px rgba(0, 0, 0, .07), 0 1px 2px rgba(0, 0, 0, .04);--font-family: "DM Sans", system-ui, -apple-system, sans-serif;--transition: .15s ease}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:15px}body{font-family:var(--font-family);background:var(--color-bg);color:var(--color-text);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--color-primary);text-decoration:none}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:inherit}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;font-size:.875rem;font-weight:500;border-radius:var(--radius-md);border:1px solid transparent;transition:all var(--transition);line-height:1.25}.btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover{background:var(--color-surface-hover)}.btn-danger{background:var(--color-danger);color:#fff}.input{width:100%;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:.875rem;transition:border-color var(--transition)}.input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb1a}.label{display:block;font-size:.8125rem;font-weight:500;color:var(--color-text-secondary);margin-bottom:4px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media(max-width:767.98px){.input,input.input,textarea.input,select.input,input[type=text],input[type=email],input[type=number],input[type=search],input[type=tel],input[type=url],input[type=password],input[type=date],textarea,select{font-size:16px}.btn{min-height:40px;padding:10px 14px}.btn.btn-sm{min-height:36px;padding:8px 12px}}.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-scroll>table{min-width:max-content}.table-scroll table th,.table-scroll table td{white-space:nowrap}.table-scroll table th.wrap,.table-scroll table td.wrap{white-space:normal;min-width:200px}.responsive-modal-card{width:100%;max-width:500px;max-height:90vh;border-radius:12px;overflow:auto}@media(max-width:639.98px){.responsive-modal-card{width:100%!important;max-width:100%!important;height:100vh!important;max-height:100vh!important;border-radius:0!important;margin:0!important}.responsive-modal-overlay{padding:0!important;align-items:stretch!important}}.responsive-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}@media(max-width:639.98px){.responsive-grid{grid-template-columns:1fr!important;gap:12px!important}}@media(max-width:639.98px){[style*=grid-template-columns]:not([style*=auto-fit]):not([style*=auto-fill]):not(.no-stack-mobile){grid-template-columns:1fr!important}}.hide-on-mobile{display:initial}.show-on-mobile{display:none}@media(max-width:767.98px){.hide-on-mobile{display:none!important}.show-on-mobile{display:initial!important}}@media(max-width:639.98px){.page-header-stack{flex-direction:column!important;align-items:stretch!important;gap:12px!important}.page-header-stack>*{width:100%}}
