/* Edusentia Enterprise r40 v9 premium workspace refinement layer.
   Presentation only: no business logic, permissions, licensing or data behavior. */
:root{
  --eds-space-1:4px;
  --eds-space-2:8px;
  --eds-space-3:12px;
  --eds-space-4:16px;
  --eds-space-5:20px;
  --eds-space-6:24px;
  --eds-radius-control:10px;
  --eds-radius-panel:16px;
  --eds-shadow-panel:0 8px 26px rgba(20,48,91,.055);
  --eds-shadow-lift:0 12px 30px rgba(20,48,91,.09);
  --eds-transition:160ms ease;
}

/* ---------- Shared workspace typography ---------- */
.app-shell .workspace,
.pa-app .pa-workspace{
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
.app-shell .workspace h1,
.app-shell .workspace h2,
.app-shell .workspace h3,
.app-shell .workspace h4,
.app-shell .workspace h5,
.pa-app .pa-workspace h1,
.pa-app .pa-workspace h2,
.pa-app .pa-workspace h3,
.pa-app .pa-workspace h4,
.pa-app .pa-workspace h5{
  letter-spacing:-.018em;
  text-wrap:balance;
}
.app-shell .workspace p,
.app-shell .workspace small,
.pa-app .pa-workspace p,
.pa-app .pa-workspace small{
  text-wrap:pretty;
}

/* ---------- Tenant workspace ---------- */
.app-shell .topbar{
  min-height:76px;
  height:auto;
  padding:12px clamp(16px,2vw,28px);
  box-shadow:0 1px 0 rgba(8,45,112,.025);
}
.app-shell .topbar-title h2{font-size:clamp(19px,1.5vw,22px);font-weight:850;line-height:1.18}
.app-shell .topbar-title p{margin-top:4px;font-size:12px;line-height:1.4}
.app-shell .content{padding:clamp(16px,2vw,26px);}
.app-shell .page-head{margin-bottom:18px;align-items:flex-end}
.app-shell .page-head h3{font-size:clamp(19px,1.5vw,22px);font-weight:850;line-height:1.2}
.app-shell .page-head p{max-width:880px;font-size:12.5px;line-height:1.5}

.app-shell .sidebar{box-shadow:8px 0 28px rgba(6,40,99,.10)}
.app-shell .nav-list{gap:5px}
.app-shell .nav-item{min-height:46px;border-radius:11px;transition:background var(--eds-transition),border-color var(--eds-transition),color var(--eds-transition),transform var(--eds-transition),box-shadow var(--eds-transition)}
.app-shell .nav-item:hover{transform:translateX(1px)}
.app-shell .nav-item.active{box-shadow:inset 4px 0 var(--gold),0 7px 17px rgba(0,18,55,.14)}

.app-shell .panel,
.app-shell .stat-card{
  border-color:#dbe4ef;
  border-radius:var(--eds-radius-panel);
  box-shadow:var(--eds-shadow-panel);
  transition:border-color var(--eds-transition),box-shadow var(--eds-transition),transform var(--eds-transition);
}
.app-shell .panel:hover{border-color:#d2deeb}
.app-shell .stat-card:hover{border-color:#cfdded;box-shadow:var(--eds-shadow-lift);transform:translateY(-1px)}
.app-shell .panel-header{padding:15px 18px}
.app-shell .panel-header h3,
.app-shell .panel-header h4{font-weight:850;line-height:1.25}
.app-shell .panel-header p{line-height:1.45}
.app-shell .panel-body{padding:18px}
.app-shell .stat-grid{gap:14px}
.app-shell .stat-card{padding:16px}
.app-shell .stat-card strong{font-size:clamp(23px,2vw,28px);font-weight:880;letter-spacing:-.025em}
.app-shell .stat-card span{line-height:1.35}

.app-shell .toolbar{padding:12px 16px;gap:9px;background:rgba(251,252,254,.96)}
.app-shell .field>span,
.app-shell .toolbar label>span{font-weight:800;letter-spacing:.01em}
.app-shell input,
.app-shell select,
.app-shell textarea{border-radius:var(--eds-radius-control);transition:border-color var(--eds-transition),box-shadow var(--eds-transition),background var(--eds-transition)}
.app-shell input:not([type="checkbox"]):not([type="radio"]),
.app-shell select{min-height:44px}
.app-shell textarea{line-height:1.5}

.app-shell .button,
.app-shell .icon-button{transition:transform var(--eds-transition),box-shadow var(--eds-transition),background var(--eds-transition),border-color var(--eds-transition),filter var(--eds-transition)}
.app-shell .button{min-height:40px;border-radius:10px;font-weight:800}
.app-shell .button.small{min-height:32px}
.app-shell .button.primary:hover{box-shadow:0 10px 22px rgba(13,94,200,.22)}
.app-shell .button:focus-visible,
.app-shell .icon-button:focus-visible,
.app-shell input:focus-visible,
.app-shell select:focus-visible,
.app-shell textarea:focus-visible{outline:0;box-shadow:0 0 0 3px rgba(13,94,200,.16)}

.app-shell .table-wrap,
#content .tenant-scroll-region{scrollbar-width:thin;scrollbar-color:#aab8ca transparent}
.app-shell table th{font-size:10px;font-weight:850;letter-spacing:.065em;color:#50617a}
.app-shell table td{line-height:1.42}
.app-shell table tbody tr{transition:background var(--eds-transition)}
.app-shell table tbody tr:hover{background:#fbfdff}
.app-shell table th,
.app-shell table td{padding-top:11px;padding-bottom:11px}

.app-shell .modal-frame{border-radius:18px;box-shadow:0 28px 80px rgba(8,35,82,.24)}
.app-shell .modal-header{padding:17px 19px}
.app-shell .modal-header h3{font-size:18px;font-weight:880}
.app-shell .modal-body{padding:18px 19px}
.app-shell .modal-footer{gap:8px}
.app-shell .chip,
.app-shell .status{font-weight:800}
.app-shell .sync-pill{font-weight:820;letter-spacing:.005em}

/* Empty states should read as intentional product states, not blank space. */
.app-shell .empty-state,
.app-shell .empty,
.app-shell .no-data,
.app-shell td[colspan]{color:#697991}

/* ---------- Platform administration workspace ---------- */
.pa-app .pa-topbar{
  min-height:76px;
  padding:12px clamp(16px,2vw,28px);
  box-shadow:0 1px 0 rgba(8,45,112,.025);
}
.pa-app .pa-title h2{font-size:clamp(19px,1.5vw,22px);font-weight:880;line-height:1.18}
.pa-app .pa-title p{margin-top:4px;font-size:12px;line-height:1.4}
.pa-app .pa-content{padding:clamp(16px,2vw,26px)}
.pa-app .pa-page-head{margin-bottom:18px}
.pa-app .pa-page-head h3{font-size:clamp(19px,1.5vw,22px);font-weight:880;line-height:1.2}
.pa-app .pa-page-head p{max-width:900px;font-size:12.5px;line-height:1.5}

.pa-app .pa-sidebar{box-shadow:8px 0 28px rgba(6,40,99,.10)}
.pa-app .pa-nav{gap:5px}
.pa-app .pa-nav button{min-height:46px;border-radius:11px;transition:background var(--eds-transition),border-color var(--eds-transition),color var(--eds-transition),transform var(--eds-transition),box-shadow var(--eds-transition)}
.pa-app .pa-nav button:hover{transform:translateX(1px)}
.pa-app .pa-nav button.active{box-shadow:inset 4px 0 var(--pa-gold),0 7px 17px rgba(0,18,55,.14)}

.pa-app .pa-panel,
.pa-app .pa-stat,
.pa-app .pa-plan{
  border-color:#dbe4ef;
  border-radius:var(--eds-radius-panel);
  box-shadow:var(--eds-shadow-panel);
  transition:border-color var(--eds-transition),box-shadow var(--eds-transition),transform var(--eds-transition);
}
.pa-app .pa-panel:hover,.pa-app .pa-plan:hover{border-color:#d2deeb}
.pa-app .pa-stat:hover,.pa-app .pa-plan:hover{box-shadow:var(--eds-shadow-lift);transform:translateY(-1px)}
.pa-app .pa-panel-head{padding:15px 17px}
.pa-app .pa-panel-head h4{font-weight:880;line-height:1.25}
.pa-app .pa-panel-body{padding:17px}
.pa-app .pa-stat-grid{gap:14px}
.pa-app .pa-stat{padding:15px}
.pa-app .pa-stat strong{font-size:clamp(23px,2vw,28px);font-weight:900;letter-spacing:-.025em}
.pa-app .pa-plan h4{font-weight:880}

.pa-app .pa-btn,
.pa-app .pa-primary{border-radius:10px;font-weight:820;transition:transform var(--eds-transition),box-shadow var(--eds-transition),background var(--eds-transition),border-color var(--eds-transition),filter var(--eds-transition)}
.pa-app .pa-btn:hover:not(:disabled),
.pa-app .pa-primary:hover:not(:disabled){transform:translateY(-1px)}
.pa-app .pa-btn:focus-visible,
.pa-app .pa-primary:focus-visible,
.pa-app .pa-field input:focus-visible,
.pa-app .pa-field select:focus-visible,
.pa-app .pa-field textarea:focus-visible{outline:0;box-shadow:0 0 0 3px rgba(13,94,200,.16)}
.pa-app .pa-field input,
.pa-app .pa-field select,
.pa-app .pa-field textarea{border-radius:var(--eds-radius-control);transition:border-color var(--eds-transition),box-shadow var(--eds-transition),background var(--eds-transition)}
.pa-app .pa-field input,
.pa-app .pa-field select{min-height:46px}
.pa-app .pa-field span{font-weight:820;letter-spacing:.01em}

.pa-app .pa-table-wrap{scrollbar-width:thin;scrollbar-color:#aab8ca transparent}
.pa-app .pa-table th{font-weight:880;letter-spacing:.065em;color:#50617a}
.pa-app .pa-table td{line-height:1.42}
.pa-app .pa-table tbody tr{transition:background var(--eds-transition)}
.pa-app .pa-table tbody tr:hover{background:#fbfdff}
.pa-app .pa-table th,
.pa-app .pa-table td{padding-top:11px;padding-bottom:11px}
.pa-app .pa-actions{gap:7px}
.pa-app .pa-badge{font-weight:880;letter-spacing:.005em}
.pa-app .pa-status{box-shadow:0 5px 16px rgba(22,46,89,.035)}

.pa-app .pa-modal-card{border-radius:18px;box-shadow:0 28px 80px rgba(8,35,82,.24)}
.pa-app .pa-modal-card>header{padding:17px 19px}
.pa-app .pa-modal-card h3{font-size:18px;font-weight:900}
.pa-app .pa-modal-body{padding:18px 19px}
.pa-app .pa-empty{color:#697991;line-height:1.5}

/* ---------- Responsive density ---------- */
@media (max-width:1100px){
  .app-shell .content,.pa-app .pa-content{padding:18px}
  .app-shell .stat-grid,.pa-app .pa-stat-grid{gap:11px}
}
@media (max-width:820px){
  .app-shell .topbar,.pa-app .pa-topbar{padding:10px 13px}
  .app-shell .content,.pa-app .pa-content{padding:12px}
  .app-shell .page-head,.pa-app .pa-page-head{margin-bottom:13px;align-items:flex-start}
  .app-shell .panel-header,.pa-app .pa-panel-head{padding:12px 13px}
  .app-shell .panel-body,.pa-app .pa-panel-body{padding:13px}
  .app-shell table th,.app-shell table td,.pa-app .pa-table th,.pa-app .pa-table td{padding-top:9px;padding-bottom:9px}
  .app-shell .button,.pa-app .pa-btn{min-height:38px}
}
@media (max-width:560px){
  .app-shell .page-head,.pa-app .pa-page-head{flex-direction:column}
  .app-shell .page-head h3,.pa-app .pa-page-head h3{font-size:18px}
  .app-shell .panel,.app-shell .stat-card,.pa-app .pa-panel,.pa-app .pa-stat,.pa-app .pa-plan{border-radius:13px}
  .app-shell .toolbar{padding:10px 12px}
}

/* ---------- Accessibility and motion ---------- */
@media (prefers-reduced-motion:reduce){
  .app-shell *,
  .pa-app *{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}
@media (forced-colors:active){
  .app-shell .panel,.app-shell .stat-card,.pa-app .pa-panel,.pa-app .pa-stat,.pa-app .pa-plan{box-shadow:none}
}
@media print{
  .app-shell .panel,.app-shell .stat-card,.pa-app .pa-panel,.pa-app .pa-stat,.pa-app .pa-plan{box-shadow:none!important;transform:none!important}
}
