:root {
  /* Brand */
  --eco-primary:#4361ee;--eco-primary-dark:#3a56d4;--eco-primary-light:#eef1ff;--eco-secondary:#7209b7;
  --eco-success:#06d6a0;--eco-warning:#ffd166;--eco-danger:#ef476f;--eco-info:#118ab2;
  /* Surfaces + text default mapping */
  --bg-primary:#f5f7fa;--bg-secondary:#fff;--bg-tertiary:#e9ecef;
  --text-primary:#212529;--text-secondary:#6c757d;--text-muted:#adb5bd;
  --border:#dee2e6;--shadow:rgba(0,0,0,.08);--scrollbar:#c1c7d0;--scrollbar-thumb:#8d99ae;
  /* Scale */
  --sp-1:.25rem;--sp-2:.5rem;--sp-3:1rem;--sp-4:1.5rem;--sp-5:2rem;
  --font-sans:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;--font-serif:Georgia,'Times New Roman',serif;
  --fs-xs:.75rem;--fs-sm:.875rem;--fs-md:1rem;--fs-lg:1.125rem;--fs-xl:1.25rem;
  --radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-full:9999px;
  --t-fast:.15s ease;--t-normal:.3s ease;--z-header:1030;--z-sidebar:1020;--z-modal:1050;
  --bp-xl:1200px;--bp-lg:992px;--bp-md:768px;--bp-sm:576px;
}
*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);line-height:1.5}
body.theme-light{--bg-primary:#f5f7fa;--bg-secondary:#fff;--bg-tertiary:#e9ecef;--text-primary:#212529;--text-secondary:#6c757d;--text-muted:#adb5bd;--border:#dee2e6;--shadow:rgba(0,0,0,.08);--scrollbar:#c1c7d0;--scrollbar-thumb:#8d99ae}
body.theme-dark{--bg-primary:#1a1b26;--bg-secondary:#24283b;--bg-tertiary:#2f334d;--text-primary:#c0caf5;--text-secondary:#9aa5ce;--text-muted:#565f89;--border:#3b4261;--shadow:rgba(0,0,0,.3);--scrollbar:#2f334d;--scrollbar-thumb:#414868}
body.theme-high-contrast{--bg-primary:#000;--bg-secondary:#1a1a1a;--bg-tertiary:#333;--text-primary:#fff;--text-secondary:#ff0;--text-muted:#ccc;--border:#fff;--shadow:rgba(255,255,255,.3);--scrollbar:#444;--scrollbar-thumb:#fff}
body.theme-reading{--bg-primary:#f9f6f0;--bg-secondary:#fefcf8;--bg-tertiary:#e8e3d3;--text-primary:#3e3a33;--text-secondary:#5b554a;--text-muted:#8b8473;--border:#d4cfc0;--shadow:rgba(0,0,0,.05);font-family:var(--font-serif)}
body.theme-protanopia{--bg-primary:#f0f4f8;--bg-secondary:#fff;--bg-tertiary:#d1d9e6;--text-primary:#1a1a1a;--text-secondary:#4a6572;--text-muted:#7a8b99;--border:#a8b5c3;--shadow:rgba(0,0,0,.1);--scrollbar:#d1d9e6;--scrollbar-thumb:#4a6572}
body.theme-deuteranopia{--bg-primary:#f8f9fa;--bg-secondary:#fff;--bg-tertiary:#e2e6ea;--text-primary:#212529;--text-secondary:#495057;--text-muted:#868e96;--border:#ced4da;--shadow:rgba(0,0,0,.08);--scrollbar:#e2e6ea;--scrollbar-thumb:#868e96}
body.theme-astigmatism,body.theme-myopia,body.theme-strabismus,body.theme-autism{filter:contrast(1.04)}
body.theme-cataracts{--bg-primary:#fff8e1;--bg-secondary:#ffecb3;--bg-tertiary:#ffe082;--text-primary:#5d4037;--text-secondary:#795548;--text-muted:#a1887f;--border:#d7ccc8;--shadow:rgba(93,64,55,.15);filter:brightness(.96)}
body.theme-glaucoma{box-shadow:inset 0 0 0 9999px rgba(0,0,0,.06)} body.theme-macular{filter:contrast(1.2)} body.theme-blur{filter:saturate(.9)}
body.theme-light-sensitivity,body.theme-epilepsy{--bg-primary:#1a1a1a;--bg-secondary:#2a2a2a;--bg-tertiary:#3a3a3a;--text-primary:#e0e0e0;--text-secondary:#b0b0b0;--text-muted:#808080;--border:#444;--shadow:rgba(0,0,0,.5)}
.eco-layout,.wrapper{display:grid;grid-template-columns:260px 1fr;grid-template-rows:60px 1fr auto;min-height:100vh}
.eco-header,.header{grid-column:1/3;display:flex;align-items:center;justify-content:space-between;padding:0 var(--sp-4);background:var(--bg-secondary);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:var(--z-header)}
.eco-sidebar,.sidebar{background:var(--bg-secondary);border-right:1px solid var(--border);padding:var(--sp-3);position:sticky;top:60px;height:calc(100vh - 60px);overflow:auto}
.eco-main,.main-content{padding:var(--sp-4);background:var(--bg-primary)} .eco-footer,footer{grid-column:1/3;padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border);background:var(--bg-secondary)}
.eco-nav,.sidebar-menu{list-style:none;padding:0;margin:0;display:grid;gap:.25rem}.eco-nav a,.sidebar-menu a{display:flex;padding:.65rem .75rem;border-radius:var(--radius-sm);color:var(--text-secondary);text-decoration:none}
.eco-nav a:hover,.eco-nav a:focus-visible{background:var(--bg-tertiary);color:var(--text-primary)} .eco-submenu{padding-left:1rem}
.eco-card,.card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-3);box-shadow:0 4px 16px var(--shadow)}
.eco-grid{display:grid;gap:var(--sp-3)} .eco-grid.stats{grid-template-columns:repeat(4,minmax(0,1fr))}
.eco-stat-card{display:grid;gap:.3rem}.eco-stat-value{font-size:var(--fs-xl);font-weight:700}
.eco-alert,.alert{padding:.8rem 1rem;border-radius:var(--radius-sm);border-left:4px solid}.eco-alert.info{background:color-mix(in srgb,var(--eco-info) 16%, var(--bg-secondary));border-left-color:var(--eco-info)}
.eco-alert.success{background:color-mix(in srgb,var(--eco-success) 16%, var(--bg-secondary));border-left-color:var(--eco-success)}
.eco-button,.btn{padding:.55rem .9rem;border-radius:var(--radius-sm);border:1px solid transparent;background:var(--eco-primary);color:#fff;cursor:pointer;transition:all var(--t-fast)}
.btn-outline{background:transparent;color:var(--text-primary);border-color:var(--border)} .eco-button:hover{background:var(--eco-primary-dark)}
.eco-form-control,.form-control,select,textarea,input[type="text"],input[type="email"],input[type="password"],input[type="file"]{width:100%;padding:.6rem .7rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary)}
.eco-form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3)} .eco-switch{display:flex;align-items:center;gap:.5rem}
.eco-table-wrap{overflow:auto}.eco-table,.data-table{width:100%;border-collapse:collapse}.eco-table th,.eco-table td{padding:.65rem;border-bottom:1px solid var(--border);text-align:left}
.eco-badge,.badge{display:inline-block;padding:.2rem .55rem;border-radius:var(--radius-full);font-size:var(--fs-xs);font-weight:600}.eco-badge.success{background:var(--eco-success);color:#073b2c}
.eco-status{display:inline-flex;align-items:center;gap:.4rem}.eco-status::before{content:"";width:.55rem;height:.55rem;border-radius:50%;background:currentColor}
.eco-tabs{display:flex;gap:.5rem;border-bottom:1px solid var(--border)}.eco-tab{padding:.6rem .8rem;background:none;border:none;color:var(--text-secondary)}.eco-tab.is-active{color:var(--text-primary);border-bottom:2px solid var(--eco-primary)}
.eco-accordion-item{border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:.5rem}.eco-accordion-btn{width:100%;background:var(--bg-secondary);border:0;padding:.8rem;text-align:left}
.eco-progress{height:.65rem;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.eco-progress>span{display:block;height:100%;background:var(--eco-primary)}
.eco-dropdown{position:relative}.eco-dropdown-menu{display:none;position:absolute;z-index:1000;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm)}.eco-dropdown.open .eco-dropdown-menu{display:block}
.eco-modal,.modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:var(--z-modal);place-items:center}.eco-modal.is-open{display:grid}.eco-modal-dialog{background:var(--bg-secondary);padding:var(--sp-4);border-radius:var(--radius-md);max-width:520px;width:92%}
.eco-pagination{display:flex;gap:.35rem}.eco-page{padding:.45rem .7rem;border:1px solid var(--border);background:var(--bg-secondary);border-radius:var(--radius-sm)}
:focus-visible{outline:3px solid var(--eco-warning);outline-offset:2px}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media (max-width:1200px){.eco-grid.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:992px){.eco-layout,.wrapper{grid-template-columns:80px 1fr}.eco-sidebar,.sidebar{padding:.5rem}.eco-sidebar .label{display:none}}
@media (max-width:768px){.eco-layout,.wrapper{grid-template-columns:1fr}.eco-header,.header,.eco-footer,footer{grid-column:1}.eco-sidebar,.sidebar{position:fixed;left:-280px;top:60px;width:260px;z-index:var(--z-sidebar);transition:left var(--t-normal)}body.sidebar-open .eco-sidebar,body.sidebar-open .sidebar{left:0}.eco-form-row{grid-template-columns:1fr}}
@media (max-width:576px){.eco-main,.main-content{padding:var(--sp-3)}.eco-header,.header{padding:0 var(--sp-3)}}
