:root{--surface:#fff;--surface-dim:#f3f4f6;--surface-bright:#fff;--surface-container-lowest:#fff;--surface-container-low:#fff;--surface-container:#f9fafb;--surface-container-high:#f3f4f6;--surface-container-highest:#e5e7eb;--on-surface:#111827;--on-surface-variant:#4b5563;--inverse-surface:#1f2937;--inverse-on-surface:#f9fafb;--outline:#9ca3af;--outline-variant:#e5e7eb;--border-main:1px solid var(--outline-variant);--primary:#cf2b36;--primary-rgb:207, 43, 54;--on-primary:#fff;--primary-container:#cf2b36;--on-primary-container:#ffecea;--primary-hover:#b1252e;--secondary:#b3272f;--on-secondary:#fff;--secondary-container:#fc5c5e;--on-secondary-container:#60000d;--error:#ba1a1a;--on-error:#fff;--error-container:#ffdad6;--on-error-container:#93000a;--success:#22c55e;--on-success:#fff;--warning:#f59e0b;--on-warning:#fff;--info:#3b82f6;--on-info:#fff;--font-family-main:"Inter", system-ui, -apple-system, sans-serif;--font-family-mono:"JetBrains Mono", monospace;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:48px;--radius-sm:.5rem;--radius-md:1rem;--radius-lg:1.5rem;--radius-xl:2rem;--radius-full:9999px;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-standard:.3s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family-main);background-color:var(--surface);color:var(--on-surface);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}h1,h2,h3,h4,h5,h6{color:var(--on-surface);font-weight:600}.app-shell{width:100vw;height:100vh;display:flex;overflow:hidden}.sidebar{background-color:var(--surface-container-low);border-right:var(--border-main);z-index:100;flex-direction:column;flex-shrink:0;width:240px;height:100%;display:flex}.main-content{background-color:var(--surface);flex-direction:column;flex:1;display:flex;overflow:hidden}.top-bar{background-color:var(--surface-container-lowest);border-bottom:var(--border-main);height:64px;padding:0 var(--spacing-lg);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.content-area{padding:var(--spacing-lg);flex:1;overflow-y:auto}button{cursor:pointer;background:0 0;border:none;font-family:inherit}.btn{border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition-fast);justify-content:center;align-items:center;gap:var(--spacing-sm);border:none;padding:8px 18px;font-size:13px;font-weight:600;display:inline-flex}.btn-primary{background-color:var(--primary);color:var(--on-primary)}.btn-primary:hover{background-color:var(--primary-hover)}.btn-secondary{color:var(--primary);border:var(--border-main);background-color:#0000}.btn-secondary:hover{background-color:var(--surface-container)}.card{background-color:var(--surface-container-lowest);border:var(--border-main);border-radius:var(--radius-sm);padding:var(--spacing-md);box-shadow:0 1px 2px #0000000d}.data-table{border-collapse:collapse;background-color:var(--surface-container-lowest);text-align:center;width:100%;font-size:13px}.data-table thead th{background-color:var(--surface-container-low);color:var(--on-surface-variant);text-transform:uppercase;letter-spacing:.08em;text-align:center;border-bottom:var(--border-main);white-space:nowrap;padding:14px 16px;font-size:10px;font-weight:700}.data-table td{border-bottom:var(--border-main);color:var(--on-surface);vertical-align:middle;text-align:center;padding:0}.data-table tr:hover td{background-color:var(--surface-container-low)}.data-table td>div,.data-table td>span{width:100%;padding:12px 16px;display:block}.cell-input{text-align:center;width:100%;color:inherit;padding:14px 16px;font-family:inherit;font-size:13px;transition:all .2s;display:block;background:0 0!important;border:none!important;outline:none!important}.cell-input:focus{color:var(--primary);background-color:#cf2b360a!important}.cell-input::placeholder{color:var(--outline);opacity:.5}input:focus,button:focus,select:focus,textarea:focus{box-shadow:none!important;outline:none!important}input:not(.cell-input),select:not(.cell-input),textarea:not(.cell-input){border:var(--border-main)!important}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.flex-1{flex:1}.w-full{width:100%}.w-6{width:1.5rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-12{width:3rem}.w-32{width:8rem}.w-56{width:14rem}.w-64{width:16rem}.h-full{height:100%}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-12{height:3rem}.h-64{height:16rem}.grid{display:grid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}@media (width>=768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width>=1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:col-span-2{grid-column:span 2/span 2}}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.font-medium{font-weight:500}.uppercase{text-transform:uppercase}.tracking-wider{letter-spacing:.05em}.tracking-tight{letter-spacing:-.025em}.text-primary{color:var(--primary)}.text-on-surface-variant{color:var(--on-surface-variant)}.text-outline{color:var(--outline)}.text-white{color:#fff}.text-error{color:var(--error)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-info{color:var(--info)}.bg-primary{background-color:var(--primary)}.bg-surface-container{background-color:var(--surface-container)}.bg-surface-container-low{background-color:var(--surface-container-low)}.bg-surface-container-high{background-color:var(--surface-container-high)}.bg-surface-container-highest{background-color:var(--surface-container-highest)}.bg-success{background-color:var(--success)}.bg-warning{background-color:var(--warning)}.bg-info{background-color:var(--info)}.bg-primary-light{background-color:#cf2b361a}.bg-success-light{background-color:#22c55e1a}.bg-warning-light{background-color:#f59e0b1a}.bg-info-light{background-color:#3b82f61a}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.mb-2{margin-bottom:.5rem}.mt-4{margin-top:1rem}.ml-2{margin-left:.5rem}.rounded-sm{border-radius:.25rem}.rounded-md{border-radius:.5rem}.rounded-lg{border-radius:.75rem}.rounded-full{border-radius:9999px}.object-cover{object-fit:cover}.search-bar{background-color:var(--surface-container-low);border:var(--border-main);border-radius:var(--radius-sm);transition:all var(--transition-fast);align-items:center;width:320px;padding:6px 12px;display:flex}.search-bar:focus-within{border-color:var(--primary);background-color:var(--surface-container-lowest);box-shadow:0 0 0 3px #cf2b361a}.icon-btn{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--on-surface-variant);transition:all var(--transition-fast);border:var(--border-main);justify-content:center;align-items:center;display:flex}.icon-btn:hover{background-color:var(--surface-container-low);color:var(--primary);border-color:var(--primary)}.user-profile{align-items:center;gap:var(--spacing-md);padding-left:var(--spacing-lg);border-left:1px solid var(--outline-variant);margin-left:var(--spacing-sm);display:flex}.cell-input{width:100%;height:100%;min-height:32px;color:inherit;resize:none;transition:background-color var(--transition-fast);text-align:center;background-color:#0000;border:none;outline:none;padding:8px 10px;font-family:inherit;font-size:13px;display:block;overflow:hidden}.cell-input:focus{box-shadow:inset 0 0 0 2px var(--outline-variant);z-index:10;color:var(--on-surface)!important;background-color:#fff!important}.status-success{color:#1a4a2b!important;background-color:#7edd9c!important}.status-warning{color:#5c4b1a!important;background-color:#ffe5a0!important}.status-error{color:#fff!important;background-color:#ff6964!important}select.cell-input{appearance:none;background-image:none}select.cell-input::-ms-expand{display:none}.border-none{border:none!important}.badge{border:1px solid #0000;border-radius:4px;padding:2px 8px;font-size:10px;font-weight:700}.badge-success{color:#15803d;background-color:#f0fdf4;border-color:#dcfce7}.badge-error{background-color:var(--error-container);color:var(--error);border-color:#ba1a1a33}.badge-warning{color:#b45309;background-color:#fffbeb;border-color:#fef3c7}.badge-neutral{background-color:var(--surface-container-highest);color:var(--outline);border-color:var(--outline-variant)}.chip{align-items:center;gap:var(--spacing-xs);background-color:var(--surface-container-low);border:var(--border-main);border-radius:var(--radius-sm);color:var(--on-surface-variant);transition:all var(--transition-fast);padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.chip:hover{background-color:var(--surface-container-high);color:var(--primary);border-color:var(--primary)}.progress-bar{background-color:var(--surface-container-high);border-radius:3px;height:6px;overflow:hidden}.progress-fill{background-color:var(--primary);height:100%;transition:width 1s cubic-bezier(.4,0,.2,1)}.avatar{flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex;overflow:hidden}.avatar-primary{color:var(--primary);background-color:#cf2b361a}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-in-bottom{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.animate-fade-in{animation:.3s ease-out forwards fade-in}.animate-slide-up{animation:.35s ease-out forwards slide-in-bottom}.page-transition{will-change:opacity, transform;animation:.22s cubic-bezier(.4,0,.2,1) both page-enter}@keyframes page-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--surface-container-low)}::-webkit-scrollbar-thumb{background:var(--outline-variant);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--outline)}.skeleton{background:linear-gradient(90deg, var(--surface-container-high) 25%, var(--surface-container-highest) 50%, var(--surface-container-high) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s infinite skeleton-loading}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.hover-scale{transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}.hover-scale:hover{box-shadow:0 8px 24px #1118270f;border-color:#cf2b3640!important}.tap-effect:active{transform:scale(.95)}.glass-card{-webkit-backdrop-filter:blur(10px);background:#ffffffb3;border:1px solid #fff3}.indicator{border-radius:50%;width:8px;height:8px;display:inline-block}.indicator-online{background-color:#22c55e;animation:2s infinite pulse;box-shadow:0 0 0 2px #22c55e33}.indicator-offline{background-color:var(--error);animation:2s infinite pulse-offline;box-shadow:0 0 0 2px #ba1a1a33}@keyframes pulse{0%{transform:scale(.95);box-shadow:0 0 #22c55eb3}70%{transform:scale(1);box-shadow:0 0 0 10px #22c55e00}to{transform:scale(.95);box-shadow:0 0 #22c55e00}}@keyframes pulse-offline{0%{transform:scale(.95);box-shadow:0 0 #ba1a1ab3}70%{transform:scale(1);box-shadow:0 0 0 10px #ba1a1a00}to{transform:scale(.95);box-shadow:0 0 #ba1a1a00}}@media (width<=640px){:root{--spacing-lg:16px;--spacing-xl:32px}.sidebar{width:64px}.sidebar label{display:none}.top-bar{padding:0 var(--spacing-md)}}.login-container{background:radial-gradient(circle at 10% 20%, #cf2b3612 0%, transparent 45%), var(--surface);min-height:100vh;padding:var(--spacing-lg);justify-content:center;align-items:center;display:flex}.login-card{background-color:var(--surface-container-lowest);border:var(--border-main);border-radius:var(--radius-md);width:100%;max-width:400px;padding:var(--spacing-xl) var(--spacing-lg);flex-direction:column;align-items:center;animation:.5s ease-out forwards slide-in-bottom;display:flex;box-shadow:0 12px 32px #8f6f6e1f}.login-header{align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);display:flex}.login-logo{border-radius:var(--radius-sm);object-fit:cover;width:40px;height:40px;box-shadow:0 4px 10px #cf2b3633}.login-logo-text{letter-spacing:-.02em;color:var(--on-surface);font-size:20px;font-weight:800}.login-title-section{text-align:center;margin-bottom:var(--spacing-lg)}.login-title-section h1{color:var(--on-surface);font-size:18px;font-weight:700}.login-title-section p{color:var(--on-surface-variant);margin-top:4px;font-size:12px}.login-form{gap:var(--spacing-md);flex-direction:column;width:100%;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-label{text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface-variant);font-size:10px;font-weight:700}.form-input{background-color:var(--surface-container-low);border:var(--border-main);border-radius:var(--radius-sm);width:100%;color:var(--on-surface);transition:border-color var(--transition-fast), background-color var(--transition-fast);outline:none;padding:10px 14px;font-size:13px}.form-input:focus{border-color:var(--primary);background-color:var(--surface-container-lowest)}.login-btn{background-color:var(--primary);color:var(--on-primary);border-radius:var(--radius-sm);text-align:center;width:100%;transition:background-color var(--transition-fast);margin-top:var(--spacing-md);cursor:pointer;border:none;padding:12px;font-size:13px;font-weight:700;box-shadow:0 4px 12px #cf2b3626}.login-btn:hover{background-color:var(--primary-hover)}.login-btn:disabled{opacity:.6;cursor:not-allowed}.login-footer{margin-top:var(--spacing-lg);color:var(--on-surface-variant);opacity:.6;text-align:center;font-size:10px}
