:root{--color-bg-primary:#f5f5f5;--color-bg-secondary:#fff;--color-bg-tertiary:#ececec;--color-text-primary:#1a1a1a;--color-text-secondary:#4a4a4a;--color-text-muted:#757575;--color-border-light:#d0d0d0;--color-border-default:#a8a8a8;--color-border-strong:#757575;--color-surface-default:#e8e8e8;--color-surface-hover:#dcdcdc;--color-surface-active:silver;--color-surface-pressed:#a8a8a8;--color-success:#1e7c1e;--color-success-bg:#f1f8f1;--color-success-border:#4da34d;--color-warning:#b8860b;--color-warning-bg:#fef9f0;--color-warning-border:#daa520;--color-danger:#c41e3a;--color-danger-bg:#fdf1f3;--color-danger-border:#e85d6f;--color-info:#0055b8;--color-info-bg:#f0f5fa;--color-info-border:#4a90c7;--font-family-base:-apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif;--font-family-mono:"Courier New", monospace;--font-size-xs:.75rem;--font-size-sm:.85rem;--font-size-base:.95rem;--font-size-lg:1.05rem;--font-size-xl:1.2rem;--font-size-2xl:1.4rem;--line-height-tight:1.3;--line-height-normal:1.4;--line-height-relaxed:1.5;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--btn-height-sm:1.75rem;--btn-height-md:2rem;--btn-height-lg:2.5rem;--input-height:1.875rem;--table-row-height:1.75rem;--radius:0;--border-width:1px;--transition-fast:.1s ease;--transition-base:.15s ease;--transition-slow:.2s ease;--shadow-inset:inset 0 1px 2px #00000014;--shadow-border:0 0 0 1px #0000001a}*{box-sizing:border-box}html{font-size:16px}body{font-family:var(--font-family-base);background:var(--color-bg-primary);color:var(--color-text-primary);padding:var(--space-4);line-height:var(--line-height-normal);font-size:var(--font-size-base);margin:0}h1{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);margin:var(--space-4) 0 var(--space-3) 0;color:var(--color-text-primary)}h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:var(--space-5) 0 var(--space-2) 0;border-bottom:var(--border-width) solid var(--color-border-light);padding-bottom:var(--space-2)}h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin:var(--space-3) 0 var(--space-2) 0}p{margin:var(--space-3) 0;line-height:var(--line-height-normal)}label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin-bottom:var(--space-1);display:block}.btn,button{height:var(--btn-height-md);padding:0 var(--space-4);font-family:var(--font-family-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border:var(--border-width) solid var(--color-border-strong);background:var(--color-surface-default);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;padding:0 var(--space-3);justify-content:center;align-items:center;gap:var(--space-2);display:inline-flex}button:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-border-strong)}button:active:not(:disabled){background:var(--color-surface-pressed);border-color:var(--color-border-strong)}button:disabled{opacity:.5;cursor:not-allowed}.btn--primary,button.primary{background:var(--color-text-primary);color:var(--color-bg-primary);border-color:var(--color-text-primary)}.btn--primary:hover:not(:disabled){background:var(--color-text-secondary);border-color:var(--color-text-secondary)}.btn--secondary,button.secondary{background:var(--color-surface-default);color:var(--color-text-primary);border-color:var(--color-border-default)}.btn--secondary:hover:not(:disabled){background:var(--color-surface-hover)}.btn--ghost,button.ghost{border-color:var(--color-border-light);color:var(--color-text-primary);background:0 0}.btn--ghost:hover:not(:disabled){background:var(--color-surface-default);border-color:var(--color-border-default)}.btn--danger{background:var(--color-danger);color:var(--color-bg-secondary);border-color:var(--color-danger)}.btn--danger:hover:not(:disabled){background:#a01627;border-color:#a01627}.btn--success{background:var(--color-success);color:var(--color-bg-secondary);border-color:var(--color-success)}.btn--success:hover:not(:disabled){background:#155c15;border-color:#155c15}.btn--sm{height:var(--btn-height-sm);font-size:var(--font-size-xs);padding:0 var(--space-2)}.btn--lg{height:var(--btn-height-lg);font-size:var(--font-size-base);padding:0 var(--space-5)}input[type=text],input[type=number],input[type=email],input[type=password],input[type=search],select,textarea{font-family:var(--font-family-base);font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--color-border-strong);background:var(--color-bg-secondary);color:var(--color-text-primary);transition:border-color var(--transition-fast);height:var(--input-height)}select{min-height:var(--btn-height-md);height:auto;line-height:var(--line-height-normal);box-sizing:border-box}input[type=text]:focus,input[type=number]:focus,input[type=email]:focus,input[type=password]:focus,input[type=search]:focus,select:focus,textarea:focus{border-color:var(--color-text-primary);background:var(--color-bg-secondary);outline:none;box-shadow:inset 0 0 0 2px #1a1a1a1a}input:disabled,select:disabled,textarea:disabled{background:var(--color-surface-default);color:var(--color-text-muted);cursor:not-allowed}input::placeholder,textarea::placeholder{color:var(--color-text-muted)}textarea{resize:vertical;height:auto;min-height:6rem;font-family:var(--font-family-mono);font-size:var(--font-size-xs)}.form-group{margin-bottom:var(--space-4);flex-direction:column;display:flex}.form-group label{margin-bottom:var(--space-1)}.form-group input:not([type=checkbox]):not([type=radio]),.form-group select,.form-group textarea{width:100%}.form-group--checkbox{margin-bottom:var(--space-4)}.form-group--checkbox .checkbox-label{align-items:center;gap:var(--space-2);cursor:pointer;font-weight:var(--font-weight-medium);flex-direction:row;margin-bottom:0;display:flex}.form-group--checkbox .checkbox-label input[type=checkbox]{width:auto;min-width:1rem;height:auto;min-height:1rem;accent-color:var(--color-text-primary);flex-shrink:0;margin:0}.form-group .form-inline-row{align-items:center;gap:var(--space-3);flex-flow:wrap;align-self:flex-start;width:100%;max-width:max-content;display:flex}.form-group .form-inline-row .input-duration{flex:none;width:6.25rem;max-width:100%}.admin-inline-field-row{justify-content:flex-start;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);flex-direction:row;display:flex}.admin-inline-field-row input[type=text]{flex:0 auto;width:min(100%,15rem);max-width:100%}.admin-inline-field-row .btn{flex-shrink:0}.admin-list-row{padding:var(--space-2) 0;border-bottom:var(--border-width) solid var(--color-border-light);align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.admin-list-row__title{min-width:0;font-weight:var(--font-weight-semibold);flex:1}.admin-list-row__actions{gap:var(--space-2);flex-wrap:wrap;flex-shrink:0;align-items:center;display:flex}.form-actions{gap:var(--space-3);margin-top:var(--space-4);flex-wrap:wrap;align-items:center;display:flex}.admin-button-group{gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;align-items:center;display:flex}table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm);background:var(--color-bg-secondary)}table thead{background:var(--color-surface-default);border-bottom:var(--border-width) solid var(--color-border-default)}table th{padding:var(--space-2) var(--space-3);text-align:left;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);border-right:var(--border-width) solid var(--color-border-light);-webkit-user-select:none;user-select:none}table th:last-child{border-right:none}table td{padding:var(--space-2) var(--space-3);border-bottom:var(--border-width) solid var(--color-border-light);border-right:var(--border-width) solid var(--color-border-light);height:var(--table-row-height)}table td:last-child{border-right:none}table tbody tr:hover{background:var(--color-surface-default)}table tbody tr.selected{background:var(--color-surface-hover)}table.striped tbody tr:nth-child(odd){background:var(--color-bg-primary)}table.striped tbody tr:nth-child(2n){background:var(--color-bg-secondary)}.nav{border-bottom:var(--border-width) solid var(--color-border-default);margin-bottom:var(--space-4);gap:0;display:flex}.nav-item{padding:var(--space-2) var(--space-4);border:var(--border-width) solid transparent;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;border-bottom:var(--border-width) solid transparent;transition:all var(--transition-fast);background:0 0;margin-bottom:-1px}.nav-item:hover{background:var(--color-surface-default);color:var(--color-text-primary)}.nav-item.active{background:var(--color-bg-secondary);color:var(--color-text-primary);border-bottom:var(--border-width) solid var(--color-bg-secondary);font-weight:var(--font-weight-semibold)}.panel{background:var(--color-bg-secondary);border:var(--border-width) solid var(--color-border-default);padding:var(--space-4);margin-bottom:var(--space-4)}.panel--compact{padding:var(--space-3)}.panel--header{margin-bottom:var(--space-3);padding-bottom:var(--space-3);border-bottom:var(--border-width) solid var(--color-border-light);justify-content:space-between;align-items:center;display:flex}.badge{padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border:var(--border-width) solid currentColor;white-space:nowrap;background:0 0;display:inline-block}.badge--success{color:var(--color-success);background:var(--color-success-bg);border-color:var(--color-success-border)}.badge--warning{color:var(--color-warning);background:var(--color-warning-bg);border-color:var(--color-warning-border)}.badge--danger{color:var(--color-danger);background:var(--color-danger-bg);border-color:var(--color-danger-border)}.badge--info{color:var(--color-info);background:var(--color-info-bg);border-color:var(--color-info-border)}.alert{padding:var(--space-3);margin-bottom:var(--space-4);background:var(--color-bg-secondary);font-size:var(--font-size-sm);border-left:4px solid}.alert--success{border-color:var(--color-success);background:var(--color-success-bg);color:var(--color-success)}.alert--warning{border-color:var(--color-warning);background:var(--color-warning-bg);color:var(--color-warning)}.alert--danger{border-color:var(--color-danger);background:var(--color-danger-bg);color:var(--color-danger)}.alert--info{border-color:var(--color-info);background:var(--color-info-bg);color:var(--color-info)}ul,ol{padding-left:var(--space-6);margin:var(--space-3) 0}li{margin-bottom:var(--space-2);line-height:var(--line-height-normal)}.list-item{padding:var(--space-2) var(--space-3);border-bottom:var(--border-width) solid var(--color-border-light);align-items:center;gap:var(--space-3);display:flex}.list-item:hover{background:var(--color-surface-default)}.compact{font-size:var(--font-size-xs);padding:var(--space-2)!important;gap:var(--space-2)!important;margin:0!important}.dense{line-height:var(--line-height-tight);letter-spacing:-.02em}.grid{gap:var(--space-4);display:grid}.grid--cols-2{grid-template-columns:repeat(2,1fr)}.grid--cols-3{grid-template-columns:repeat(3,1fr)}.flex{gap:var(--space-3);display:flex}.flex--row{flex-direction:row}.flex--col{flex-direction:column}.flex--center{justify-content:center;align-items:center}.flex--between{justify-content:space-between;align-items:center}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-muted{color:var(--color-text-muted)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-danger{color:var(--color-danger)}.text-info{color:var(--color-info)}.bg-primary{background:var(--color-bg-primary)}.bg-secondary{background:var(--color-bg-secondary)}.bg-surface{background:var(--color-surface-default)}.p-1{padding:var(--space-1)}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.m-0{margin:0}.m-1{margin:var(--space-1)}.m-2{margin:var(--space-2)}.m-3{margin:var(--space-3)}.m-4{margin:var(--space-4)}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.border{border:var(--border-width) solid var(--color-border-default)}.border-t{border-top:var(--border-width) solid var(--color-border-default)}.border-b{border-bottom:var(--border-width) solid var(--color-border-default)}.border-l{border-left:var(--border-width) solid var(--color-border-default)}.border-r{border-right:var(--border-width) solid var(--color-border-default)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=768px){body{padding:var(--space-3)}.grid--cols-3{grid-template-columns:repeat(2,1fr)}table{font-size:var(--font-size-xs)}table th,table td{padding:var(--space-1) var(--space-2)}}@media (width<=480px){body{padding:var(--space-2)}.grid--cols-2,.grid--cols-3{grid-template-columns:1fr}.flex--between{flex-direction:column;align-items:flex-start}}.login-container{max-width:320px;margin:4rem auto}.login-form h1,.login-container h1{margin-bottom:var(--space-4);font-size:var(--font-size-2xl);text-align:center}.login-form input,.login-container input{width:100%;margin-bottom:var(--space-3);display:block}.login-form button,.login-container button{width:100%;display:block}.login-error{color:var(--color-danger);margin-bottom:var(--space-3);font-weight:var(--font-weight-semibold);display:none}.login-error.show{display:block}.controller-container{background:var(--color-bg-primary);flex-direction:column;min-height:100vh;margin:0;padding:0;display:flex}.client-name-banner{background:var(--color-surface-default);text-align:center;padding:var(--space-3);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);border-bottom:var(--border-width) solid var(--color-border-default)}.position-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);color:var(--color-text-muted);text-align:center;padding:var(--space-2)}.idle-message{font-size:var(--font-size-xl);color:var(--color-text-muted);padding:var(--space-8);text-align:center}.isa-buttons{flex-direction:column;flex:1;gap:0;width:100%;display:flex}.isa-btn{border:none;border-bottom:var(--border-width) solid var(--color-border-default);width:100%;min-height:16vh;font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);cursor:pointer;background:var(--color-surface-hover);color:var(--color-text-primary);opacity:.3;pointer-events:none;transition:all var(--transition-base);flex:1;display:block}.isa-btn.active{opacity:1;pointer-events:auto;background:var(--color-surface-default)}.isa-btn.active:hover{background:var(--color-surface-hover)}.isa-btn.last-selected{background:var(--color-surface-active)}.controller-footer{padding:var(--space-4);text-align:center;border-top:var(--border-width) solid var(--color-border-default);margin-top:auto}.controller-footer button{color:var(--color-text-muted);font-size:var(--font-size-sm);cursor:pointer;padding:var(--space-2) var(--space-4);transition:color var(--transition-fast);background:0 0;border:none}.controller-footer button:hover{color:var(--color-text-primary)}.controller-footer #connStatus{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-bottom:var(--space-1);display:block}@keyframes flash{0%,to{opacity:1}50%{opacity:.3}}.alarm-flash .isa-btn.active{animation:.8s infinite flash}.admin-container{max-width:1200px;margin:0 auto}.admin-header{margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:var(--border-width) solid var(--color-border-default);justify-content:space-between;align-items:center;display:flex}.admin-header h1{margin:0}.admin-header-actions{align-items:center;gap:var(--space-3);flex-shrink:0;display:flex}.admin-header-status{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap}.logout-btn{background:var(--color-surface-default);border:var(--border-width) solid var(--color-border-strong);color:var(--color-text-primary);padding:var(--space-2) var(--space-3);cursor:pointer;font-size:var(--font-size-sm)}.admin-nav{border-bottom:var(--border-width) solid var(--color-border-default);margin-bottom:var(--space-4);gap:0;display:flex}.nav-btn{padding:var(--space-2) var(--space-4);border:var(--border-width) solid var(--color-border-light);background:var(--color-surface-default);color:var(--color-text-primary);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast);border-bottom:none;margin-bottom:-1px}.nav-btn.active{background:var(--color-bg-secondary);border-bottom:var(--border-width) solid var(--color-bg-secondary);font-weight:var(--font-weight-semibold)}.nav-btn:hover:not(.active){background:var(--color-surface-hover)}.sessions-list-row{padding:var(--space-2) 0;border-bottom:var(--border-width) solid var(--color-border-light);align-items:center;gap:var(--space-4);display:flex}.sessions-list-row__meta{align-items:center;gap:var(--space-2) var(--space-4);flex-wrap:wrap;flex:1;min-width:0;display:flex}.sessions-list-row--history{color:var(--color-text-muted)}.status-panel{border:var(--border-width) solid var(--color-border-default);background:var(--color-bg-secondary);padding:var(--space-4);margin-bottom:var(--space-4);gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.stat{flex-direction:column;display:flex}.stat-label{font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:var(--font-weight-medium);margin-bottom:var(--space-1);text-transform:uppercase;letter-spacing:.05em}.stat-value{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);font-family:var(--font-family-mono);color:var(--color-text-primary)}.inline-field{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.inline-field input{padding:var(--space-2);border:var(--border-width) solid var(--color-border-strong);font-size:var(--font-size-sm);background:var(--color-bg-secondary);color:var(--color-text-primary)}.inline-field button{height:var(--btn-height-md);padding:0 var(--space-3);font-size:var(--font-size-sm)}.list-item{padding:var(--space-2) 0;border-bottom:var(--border-width) solid var(--color-surface-default);justify-content:space-between;align-items:center;display:flex}.item-name{font-weight:var(--font-weight-semibold)}.item-actions{gap:var(--space-2);display:flex}.lobby-client{padding:var(--space-3);border-bottom:var(--border-width) solid var(--color-border-light);font-size:var(--font-size-sm);justify-content:space-between;align-items:center;display:flex}.client-status{font-size:var(--font-size-xs);color:var(--color-text-muted)}.assignment-row{align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);font-size:var(--font-size-sm);display:flex}.assignment-row select{padding:var(--space-2);border:var(--border-width) solid var(--color-border-strong);font-size:var(--font-size-sm);background:var(--color-bg-secondary);color:var(--color-text-primary);height:var(--input-height)}.traffic-table{border-collapse:collapse;width:100%;margin-bottom:var(--space-4);font-size:var(--font-size-sm)}.traffic-table th,.traffic-table td{border:var(--border-width) solid var(--color-border-light);padding:var(--space-2) var(--space-3);text-align:center}.traffic-table th{background:var(--color-surface-default);font-weight:var(--font-weight-semibold);border-bottom:var(--border-width) solid var(--color-border-default)}.traffic-table tbody tr:hover{background:var(--color-surface-default)}.traffic-table input{width:60px;padding:var(--space-2);text-align:center;border:var(--border-width) solid var(--color-border-light);font-size:var(--font-size-sm);background:var(--color-bg-secondary);color:var(--color-text-primary);font-family:var(--font-family-mono)}.toast-container{top:var(--space-4);right:var(--space-4);z-index:9999;gap:var(--space-2);pointer-events:none;flex-direction:column;max-width:360px;display:flex;position:fixed}.toast{pointer-events:auto;padding:var(--space-3) var(--space-4);background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:var(--font-size-sm);cursor:pointer;border-left:4px solid;border:var(--border-width) solid var(--color-border-default);animation:.2s ease-out toast-in}.toast--error{border-left-color:var(--color-danger);background:var(--color-danger-bg);color:var(--color-danger)}.toast--success{border-left-color:var(--color-success);background:var(--color-success-bg);color:var(--color-success)}.toast--info{border-left-color:var(--color-info);background:var(--color-info-bg);color:var(--color-info)}.toast--warning{border-left-color:var(--color-warning);background:var(--color-warning-bg);color:var(--color-warning)}@keyframes toast-in{0%{opacity:0;transform:translate(1rem)}to{opacity:1;transform:translate(0)}}.chart-placeholder{background:var(--color-bg-secondary);border:var(--border-width) solid var(--color-border-default);padding:var(--space-4);margin-bottom:var(--space-4);text-align:center;color:var(--color-text-muted);justify-content:center;align-items:center;min-height:200px;display:flex}.summary-stats{gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));display:grid}.stat-card{background:var(--color-bg-secondary);border:var(--border-width) solid var(--color-border-default);padding:var(--space-3);text-align:center}.stat-card-label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-1)}.stat-card-value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);font-family:var(--font-family-mono);color:var(--color-text-primary)}.modal-overlay{z-index:1000;background:#0000004d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--color-bg-secondary);border:var(--border-width) solid var(--color-border-default);padding:var(--space-6);width:90%;max-width:500px}.modal-header{margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:var(--border-width) solid var(--color-border-light);justify-content:space-between;align-items:center;display:flex}.modal-header h2{font-size:var(--font-size-xl);margin:0}.modal-close{font-size:var(--font-size-lg);cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;padding:0;display:flex}.modal-close:hover{color:var(--color-text-primary)}.modal-body{margin-bottom:var(--space-4)}.modal-footer{gap:var(--space-2);justify-content:flex-end;display:flex}.sidebar{background:var(--color-surface-default);border-right:var(--border-width) solid var(--color-border-default);padding:var(--space-4);min-width:200px;max-width:300px;overflow-y:auto}.sidebar-item{width:100%;padding:var(--space-3) var(--space-2);margin-bottom:var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-sm);cursor:pointer;text-align:left;transition:all var(--transition-fast);background:0 0;border:none;border-left:3px solid #0000;display:block}.sidebar-item:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.sidebar-item.active{background:var(--color-bg-secondary);border-left-color:var(--color-text-primary);color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}@keyframes skeleton-loading{0%{background-color:var(--color-surface-default)}50%{background-color:var(--color-surface-hover)}to{background-color:var(--color-surface-default)}}.skeleton{animation:1.5s infinite skeleton-loading}.loading{opacity:.6;pointer-events:none}.touch-target{min-width:44px;min-height:44px}@media (hover:none) and (pointer:coarse){button:hover:not(:disabled),.btn:hover:not(:disabled),.nav-btn:hover:not(.active),.sidebar-item:hover,.list-item:hover,table tbody tr:hover{background:inherit}button:active:not(:disabled),.btn:active:not(:disabled){background:var(--color-surface-pressed)}.isa-btn.active:active{background:var(--color-surface-active)}}button,.btn,.isa-btn,.nav-btn,.sidebar-item{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.isa-btn{touch-action:manipulation}.controller-container{touch-action:pan-y;overscroll-behavior:contain}@supports (-webkit-touch-callout:none){input[type=text],input[type=number],input[type=email],input[type=password],select{font-size:16px}}.isa-btn:active{transition:transform 50ms;transform:scale(.98)}.login-container input,.login-container button{min-height:44px;font-size:16px}.sector-select-btn{min-height:48px;padding:var(--space-3) var(--space-4)}@media print{body{background:#fff}button,.no-print{display:none}table,tr{page-break-inside:avoid}}
