/* ═══════════════════════════════════════════════════════════════
   AVALMAP UI PACK — E4 UI 2026-09-05
   Sistema visual de gestió educativa: densitat, jerarquia i orientació.
   ═══════════════════════════════════════════════════════════════ */
:root{
  --area-students:#3575b5; --area-students-soft:#edf5fc;
  --area-eval:#2e7d5b; --area-eval-soft:#edf7f1;
  --area-conv:#b9781b; --area-conv-soft:#fff7e8;
  --area-method:#7656a8; --area-method-soft:#f5f0fb;
  --area-social:#287d8e; --area-social-soft:#edf7f8;
  --area-quality:#238073; --area-quality-soft:#ebf8f5;
  --area-system:#596b7d; --area-system-soft:#f1f4f6;
  --hud-blue:#2f6f98; --hud-green:#2e7d5b; --hud-amber:#b9781b; --hud-red:#a74646;
}
html.light{--nav-bg:#223446;--nav-bg-2:#1d2d3c;--nav-border:#344b5f;--nav-text:#d6dee5;--nav-muted:#91a1af;--nav-active:#fff}

/* SVG / icon primitives */
.aval-icon{width:16px;height:16px;display:block;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.btn-icon{display:inline-flex;width:16px;height:16px;align-items:center;justify-content:center;margin-right:5px;vertical-align:-3px}
.btn-icon .aval-icon,.tb-menu-item .i .aval-icon,.panel-title-icon .aval-icon{width:16px;height:16px}
.panel-title-icon{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;margin-right:8px;border:1px solid currentColor;background:color-mix(in srgb,currentColor 9%,transparent);vertical-align:-7px;border-radius:2px}
.panel-title-icon.area-avaluacio{color:var(--area-eval)}.panel-title-icon.area-quality{color:var(--area-quality)}

/* shell */
#topbar{height:54px;padding:0 14px;gap:8px}
#app{height:calc(100vh - 54px)}
#global-results{top:54px!important}
.tb-logo img{height:30px!important}
.tb-center{font-weight:600;color:var(--txt2)}
.tb-session-status{display:inline-flex;align-items:center;gap:5px;color:var(--area-system);background:var(--area-system-soft)}
.tb-session-status.loaded{color:var(--area-eval);background:var(--area-eval-soft)}
.tb-session-status.dirty{color:var(--area-conv);background:var(--area-conv-soft)}
#privacy-btn{display:inline-flex;align-items:center;gap:3px}
#privacy-btn.active{border-color:var(--area-social)!important;color:var(--area-social)!important;background:var(--area-social-soft)!important}
.tb-menu-trigger{display:inline-flex!important;align-items:center!important}
.tb-menu-item .i{display:inline-flex!important;align-items:center;justify-content:center}

/* Sidebar section colour coding */
#hd-alumnat .sb-icon,#sec-alumnat .sb-item.active .sb-icon{color:#74aee2!important}
#hd-aval .sb-icon,#sec-aval .sb-item.active .sb-icon{color:#65b78f!important}
#hd-conv .sb-icon,#sec-conv .sb-item.active .sb-icon{color:#e1ad58!important}
#hd-met .sb-icon,#sec-met .sb-item.active .sb-icon{color:#ad91dc!important}
#hd-socio .sb-icon,#sec-socio .sb-item.active .sb-icon{color:#72bdca!important}
#hd-tutorials .sb-icon,#sec-tutorials .sb-item.active .sb-icon{color:#aab7c2!important}
#sec-alumnat .sb-item.active{background:rgba(53,117,181,.17);box-shadow:inset 2px 0 0 #6ca4d7}
#sec-aval .sb-item.active{background:rgba(46,125,91,.17);box-shadow:inset 2px 0 0 #65b78f}
#sec-conv .sb-item.active{background:rgba(185,120,27,.17);box-shadow:inset 2px 0 0 #d69d4b}
#sec-met .sb-item.active{background:rgba(118,86,168,.17);box-shadow:inset 2px 0 0 #9a79cb}
#sec-socio .sb-item.active{background:rgba(40,125,142,.17);box-shadow:inset 2px 0 0 #5ca7b5}
#sidebar .sb-item.active{border:0!important}
#sidebar .sb-head-collapsible{margin-bottom:1px}
#sidebar .sb-icon{display:flex;align-items:center;justify-content:center}
#sidebar .sb-load-icon{display:inline-flex;align-items:center;justify-content:center;width:23px;height:23px;padding:0}
#sidebar .sb-load-icon .aval-icon{width:13px;height:13px}
#sidebar .sb-chevron{display:inline-flex;width:14px;height:14px;align-items:center}.sb-chevron .aval-icon{width:12px;height:12px}

/* Page header / toolbars */
.panel-header{min-height:70px;padding:14px 18px}.panel-header h2{font-size:1.05rem;display:flex;align-items:center}.panel-header p{max-width:760px}
.ui-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 12px;background:var(--s1);border:1px solid var(--b1);margin-bottom:12px}
.ui-toolbar-group{display:flex;align-items:center;gap:6px}.ui-toolbar-label{font-size:.62rem;font-weight:750;color:var(--txt3);text-transform:uppercase;letter-spacing:.06em}

/* Shared KPI strip */
.ui-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(110px,1fr));border:1px solid var(--b1);background:var(--s1);margin-bottom:14px}
.ui-kpi{min-height:88px;padding:12px 13px;border-right:1px solid var(--b1);position:relative}.ui-kpi:last-child{border-right:0}
.ui-kpi-head{display:flex;align-items:center;gap:7px;color:var(--txt3);font-size:.64rem;font-weight:700}.ui-kpi-icon{width:27px;height:27px;display:flex;align-items:center;justify-content:center;border:1px solid var(--b1);background:var(--s2)}
.ui-kpi .value{font:750 1.35rem/1.1 var(--fm);margin-top:9px;color:var(--txt)}.ui-kpi .meta{font-size:.62rem;color:var(--txt3);margin-top:4px;line-height:1.3}
.ui-kpi.students .ui-kpi-icon,.ui-kpi.students .value{color:var(--area-students)}.ui-kpi.eval .ui-kpi-icon,.ui-kpi.eval .value{color:var(--area-eval)}.ui-kpi.warn .ui-kpi-icon,.ui-kpi.warn .value{color:var(--area-conv)}.ui-kpi.danger .ui-kpi-icon,.ui-kpi.danger .value{color:var(--hud-red)}.ui-kpi.quality .ui-kpi-icon,.ui-kpi.quality .value{color:var(--area-quality)}

/* Overview composition */
.teacher-hud{grid-template-columns:minmax(0,1.7fr) minmax(300px,.8fr)}
.hud-context,.hud-actions{border-color:var(--b1)}
.hud-context-head{min-height:64px}.hud-title{font-size:1.08rem}.hud-sub{font-size:.7rem}
.hud-metrics{display:none} /* replaced by common KPI strip */
.hud-actions-head{color:var(--area-eval);background:var(--area-eval-soft)}
.hud-action{grid-template-columns:30px 1fr auto;min-height:58px}.hud-action-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--b1);background:var(--s2);color:var(--area-eval)}
.hud-action-icon .aval-icon{width:15px;height:15px}.hud-action strong{font-size:.74rem}.hud-action small{font-size:.62rem;line-height:1.35}.hud-action-count{font:700 .78rem var(--fm)}
.hud-section-title{margin-top:16px!important;border-bottom:1px solid var(--b1);padding-bottom:6px;color:var(--txt2)!important}

/* Management data cards */
.ui-section{background:var(--s1);border:1px solid var(--b1);margin-bottom:12px}.ui-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid var(--b1)}.ui-section-title{font-size:.72rem;font-weight:750;color:var(--txt2)}.ui-section-sub{font-size:.62rem;color:var(--txt3);margin-top:2px}
.progress-mini{height:4px;background:var(--s3);overflow:hidden;margin-top:5px}.progress-mini>span{display:block;height:100%}
.status-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border:1px solid var(--b1);font-size:.62rem;font-weight:700;background:var(--s2);white-space:nowrap}.status-badge.ok{color:var(--area-eval);border-color:var(--ae-b);background:var(--ae-bg)}.status-badge.warn{color:var(--area-conv);border-color:var(--as-b);background:var(--as-bg)}.status-badge.err{color:var(--na);border-color:var(--na-b);background:var(--na-bg)}.status-badge.info{color:var(--area-students);border-color:var(--an-b);background:var(--an-bg)}

/* Llistat */
#panel-llista .tab-bar{padding:9px 14px;min-height:49px;border-bottom:1px solid var(--b1)}
#panel-llista .stats-row{margin-bottom:10px!important}
#panel-llista .tbl-wrap{border:1px solid var(--b1)}
#panel-llista table{table-layout:fixed;min-width:920px}#panel-llista th{height:36px;background:#f1f4f7}html:not(.light) #panel-llista th{background:var(--s3)}
#panel-llista td{height:48px}.student-cell{display:flex;align-items:center;gap:9px;min-width:0;max-width:100%;overflow:hidden}.student-copy{display:grid;min-width:0;overflow:hidden}.student-avatar{width:29px;height:29px;border-radius:50%;display:flex;align-items:center;justify-content:center;font:700 .62rem var(--fb);color:#fff;background:var(--area-students);flex:0 0 auto}.student-name,.student-meta{display:block;min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-name{font-weight:700;font-size:.76rem}.student-meta{font-size:.61rem;color:var(--txt3);margin-top:2px}.metric-cell{min-width:0}.metric-line{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:.68rem}.metric-value{font:700 .72rem var(--fm)}.table-actions{display:flex;justify-content:flex-end;gap:4px}.icon-btn{width:29px;height:29px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--b2);background:var(--s1);color:var(--txt2);cursor:pointer}.icon-btn:hover{border-color:var(--area-students);color:var(--area-students);background:var(--area-students-soft)}.icon-btn.danger:hover{border-color:var(--na);color:var(--na);background:var(--na-bg)}

/* Student 360 / ficha */
#student-hub{background:var(--bg)}.stu-topbar{min-height:78px;background:var(--s1);border-bottom:1px solid var(--b1);padding:10px 16px}.stu-back-btn,.stu-nav-btn{border-radius:2px!important}.stu-nom{font-size:1.02rem!important}.stu-meta{font-size:.68rem!important}.stu-layout{gap:12px!important;padding:12px!important}.stu-sidebar,.stu-main{background:transparent!important}.stu-card{background:var(--s1)!important;border:1px solid var(--b1)!important}
#shp-360-content>.student-360-summary + div{max-width:none!important;grid-template-columns:minmax(330px,.72fr) minmax(0,1.28fr)!important;gap:12px!important}.student-360-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))!important;max-width:none!important;gap:0!important;border:1px solid var(--b1);background:var(--s1);margin-bottom:12px}.student-360-kpi{padding:10px 12px;border-right:1px solid var(--b1)}.student-360-kpi:last-child{border-right:0}.student-360-kpi .l{font-size:.6rem;color:var(--txt3);text-transform:uppercase;letter-spacing:.05em}.student-360-kpi .v{font:700 1rem var(--fm);margin-top:5px}

/* Quality */
.quality-layout{grid-template-columns:270px minmax(0,1fr);gap:12px}.quality-score{border-top:3px solid var(--area-quality)}.quality-score-number{font-size:2.25rem}.quality-issue-list{border:1px solid var(--b1);background:var(--s1)}.quality-issue{min-height:64px}.quality-detail{border-top:3px solid var(--area-quality)}

/* alerts / compare / sociogram / classroom harmonization */
#panel-alertes .card,#panel-compare .card,#panel-sociograma .card,#panel-simulador .card{box-shadow:none!important}
#panel-sociograma .tab-bar{border-top:3px solid var(--area-social)}
#socio-canvas-wrap,#socio-dist-canvas,#socio-konva,#socio-three{border-radius:2px!important}
#socio-dist-wrap{background:#f4f6f8!important}html:not(.light) #socio-dist-wrap{background:var(--bg)!important}
#socio-konva,#socio-three{box-shadow:none!important}

/* Reduce visual AI fingerprints */
.card,.stu-card,.quality-score,.quality-detail,.ui-section,.hud-context,.hud-actions,.tbl-wrap,.drop-zone,.modal{border-radius:2px!important}
button,.btn,.form-input,.status-badge,.chip,.flag{border-radius:2px!important}

@media(max-width:1180px){.ui-kpi-grid{grid-template-columns:repeat(3,1fr)}.ui-kpi:nth-child(3){border-right:0}.ui-kpi:nth-child(-n+3){border-bottom:1px solid var(--b1)}.student-360-summary{grid-template-columns:repeat(3,1fr)}.student-360-kpi:nth-child(3){border-right:0}}
@media(max-width:820px){#sidebar{width:54px;min-width:54px}.teacher-hud{grid-template-columns:1fr}.ui-kpi-grid{grid-template-columns:repeat(2,1fr)}.ui-kpi:nth-child(odd){border-right:1px solid var(--b1)!important}.ui-kpi:nth-child(even){border-right:0!important}.ui-kpi{border-bottom:1px solid var(--b1)}.student-360-summary{grid-template-columns:1fr 1fr}.student-360-kpi{border-bottom:1px solid var(--b1)}#shp-360-content>div{grid-template-columns:1fr!important}}

/* Student hub UX polish */
#student-hub{display:none;flex-direction:column;min-height:0;background:var(--bg)}
#student-hub.active{display:flex}
#student-hub .tab-pane{display:none}
#student-hub .tab-pane.active{display:block}
#student-hub .btn-icon{display:inline-flex;align-items:center;justify-content:center}
#student-hub .btn-icon .aval-icon{width:14px;height:14px}
.stu-topbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px 18px;background:var(--s1);border-bottom:1px solid var(--b1);position:sticky;top:0;z-index:3}
.stu-back-btn,.stu-nav-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 12px;border:1px solid var(--b1);background:var(--s1);color:var(--txt2);font:700 .74rem var(--fh);cursor:pointer}.stu-back-btn:hover,.stu-nav-btn:hover{border-color:var(--area-students);color:var(--area-students);background:var(--area-students-soft)}
.stu-kicker{font-size:.62rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--txt3);margin-bottom:4px}
.stu-nom{font:800 1.12rem/1.2 var(--fh);color:var(--txt);letter-spacing:-.01em}
.stu-meta-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:5px}.stu-meta{font-size:.71rem;color:var(--txt3)}.stu-flag-strip{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.stu-top-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.stu-position-chip{display:inline-flex;align-items:center;justify-content:center;min-width:72px;padding:7px 10px;border:1px solid var(--b1);background:var(--s2);font:700 .78rem var(--fm);color:var(--txt2)}
.stu-tab-bar{display:flex;flex-wrap:wrap;gap:8px;padding:10px 18px;background:var(--s1);border-bottom:1px solid var(--b1)}
.stu-tab-bar .tab-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid transparent;background:transparent;color:var(--txt3);font:700 .74rem var(--fh);cursor:pointer}
.stu-tab-bar .tab-btn.active{color:var(--txt);border-color:var(--b1);background:var(--bg)}
.stu-content-shell{padding:16px 18px 24px;overflow:auto;min-height:0}
.stu-resum-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.stu-card-title{font:800 .88rem/1.2 var(--fh);color:var(--txt);letter-spacing:-.01em}.stu-card-subtitle,.stu-section-copy{font-size:.71rem;line-height:1.45;color:var(--txt3);margin-top:4px}
.stu-toolbar-label{font-size:.62rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--txt3);margin-bottom:6px}
.stu-eval-strip{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.stu-summary-stats{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px;margin-bottom:14px}
.stu-summary-kpi-card{background:var(--s1);border:1px solid var(--b1);padding:12px 14px;min-height:96px;display:flex;flex-direction:column;justify-content:space-between;gap:6px;box-shadow:none}.stu-summary-kpi-card.tone-good{border-top:3px solid var(--ae)}.stu-summary-kpi-card.tone-neutral{border-top:3px solid var(--an)}.stu-summary-kpi-card.tone-warn{border-top:3px solid var(--as)}.stu-summary-kpi-card.tone-bad{border-top:3px solid var(--na)}.stu-summary-kpi-card.tone-info{border-top:3px solid var(--area-students)}
.stu-summary-kpi-label{font-size:.63rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--txt3)}.stu-summary-kpi-value{font:800 1.34rem/1.05 var(--fm);color:var(--txt)}.stu-summary-kpi-meta{font-size:.69rem;line-height:1.35;color:var(--txt3)}
.stu-resum-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.95fr);gap:14px;align-items:start}.stu-resum-main,.stu-resum-side{display:grid;gap:14px;align-self:start}
.stu-module-card{padding:14px}.stu-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.stu-chart-card{background:var(--s2);border:1px solid var(--b1);padding:12px}.stu-card-mini-title{font-size:.68rem;font-weight:800;color:var(--txt2);margin-bottom:8px}
.stu-dual-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.stu-chart-wrap{position:relative;width:100%}.stu-chart-wrap-sm{height:220px}.stu-chart-wrap-lg{height:320px}
.stu-grade-list{display:flex;flex-direction:column;gap:8px;max-height:720px;overflow:auto;padding-right:2px}.grade-pill-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:var(--s2);border:1px solid var(--b1)}.grade-pill-row:hover{border-color:var(--an);background:var(--an-bg)}.grade-pill-row.is-active{border-color:var(--gold);background:rgba(245,166,35,.09)}.grade-subject{min-width:0;flex:1;font-size:.75rem;color:var(--txt2);line-height:1.35}
.stu-filter-chip{display:inline-flex;align-items:center;padding:4px 8px;border:1px solid rgba(245,166,35,.28);background:rgba(245,166,35,.08);font-size:.67rem;font-weight:700;color:var(--gold);white-space:nowrap}
.stu-mini-grid{display:grid;grid-template-columns:1fr;gap:12px}.stu-insight-card{min-height:136px}.stu-insight-list>div{display:flex;justify-content:space-between;gap:8px;padding:7px 0;border-bottom:1px solid var(--b1);font-size:.73rem;color:var(--txt2)}.stu-insight-list>div:last-child{border-bottom:0}
.stu-empty-note{padding:12px;border:1px dashed var(--b2);background:var(--s2);font-size:.72rem;color:var(--txt3)}
#sh-nese-block .alert{margin:0!important;background:var(--an-bg);border-color:var(--an-b);color:var(--txt2)}
#shp-360-content .student-360-summary{grid-template-columns:repeat(5,minmax(0,1fr))!important}
#shp-360-content>div:last-child{max-width:none!important}

@media(max-width:1280px){.stu-summary-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.stu-resum-grid{grid-template-columns:1fr}.stu-grade-list{max-height:none}}
@media(max-width:920px){.stu-topbar{grid-template-columns:1fr;align-items:flex-start}.stu-top-actions{justify-content:flex-start}.stu-dual-chart-grid{grid-template-columns:1fr}.stu-summary-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stu-content-shell,.stu-tab-bar,.stu-topbar{padding-left:14px;padding-right:14px}}
@media(max-width:560px){.stu-summary-stats{grid-template-columns:1fr}.stu-tab-bar .tab-btn{width:100%;justify-content:flex-start}.stu-back-btn,.stu-nav-btn{width:100%;justify-content:center}}

/* Avaluació — teacher-oriented UX */
#panel-aval{background:var(--bg)}
.aval-page-header{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--b1)}
.panel-title-row{display:flex;align-items:center;gap:9px}.panel-title-row h2{margin:0}.panel-title-icon{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;border:1px solid var(--b1);background:var(--area-eval-soft);color:var(--area-eval)}.panel-title-icon .aval-icon{width:17px;height:17px}.aval-header-actions{display:flex;gap:7px}
.aval-context-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:end;padding:12px 18px;background:var(--s1);border-bottom:1px solid var(--b1)}
.aval-eval-pills{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.aval-eval-pills .btn{min-height:34px}.aval-filter-group{display:grid;grid-template-columns:150px 130px;gap:8px}.aval-filter-group label{display:grid;gap:5px}.aval-filter-group .form-input{width:100%;min-height:34px}
.aval-tab-bar{display:flex;gap:5px;padding:9px 18px;background:var(--s1);border-bottom:1px solid var(--b1);overflow-x:auto}.aval-tab-bar .tab-btn{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.aval-tab-bar .tab-btn.active{color:var(--area-eval);border-bottom-color:var(--area-eval)}
.aval-pane-shell{flex:1;min-height:0;overflow:hidden}.aval-pane-shell>.tab-pane{padding:16px 18px 24px;overflow:auto!important}.aval-dashboard{display:grid;gap:14px}
.aval-cohort-note,.stu-aval-special-note{display:flex;gap:10px;align-items:flex-start;padding:11px 13px;border:1px solid var(--an-b);background:var(--an-bg);color:var(--txt2)}.aval-cohort-note>.aval-icon,.stu-aval-special-note>.aval-icon{width:18px;height:18px;color:var(--area-students);flex:0 0 auto;margin-top:1px}.aval-cohort-note div,.stu-aval-special-note div{display:grid;gap:2px}.aval-cohort-note strong,.stu-aval-special-note strong{font-size:.75rem}.aval-cohort-note span,.stu-aval-special-note span{font-size:.69rem;line-height:1.45;color:var(--txt3)}
.aval-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px}.aval-kpi{background:var(--s1);border:1px solid var(--b1);padding:12px 13px;min-height:108px;display:flex;flex-direction:column;justify-content:space-between;gap:6px}.aval-kpi.tone-good{border-top:3px solid var(--ae)}.aval-kpi.tone-neutral{border-top:3px solid var(--an)}.aval-kpi.tone-warn{border-top:3px solid var(--as)}.aval-kpi.tone-bad{border-top:3px solid var(--na)}.aval-kpi.tone-info{border-top:3px solid var(--area-eval)}.aval-kpi-head{display:flex;align-items:center;gap:7px;font-size:.62rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--txt3)}.aval-kpi-icon{display:inline-flex;width:25px;height:25px;align-items:center;justify-content:center;border:1px solid var(--b1);background:var(--s2)}.aval-kpi-icon .aval-icon{width:14px;height:14px}.aval-kpi-value{font:800 1.4rem/1 var(--fm);color:var(--txt)}.aval-kpi-meta{font-size:.67rem;line-height:1.4;color:var(--txt3)}
.aval-section{background:var(--s1);border:1px solid var(--b1)}.aval-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--b1)}.aval-section-title{font:800 .86rem var(--fh);color:var(--txt)}.aval-section-sub{font-size:.69rem;line-height:1.4;color:var(--txt3);margin-top:3px}.aval-priority{border-top:3px solid var(--area-conv)}.aval-priority-empty{border-top:3px solid var(--ae)}
.aval-priority-list{display:grid}.aval-priority-row{display:grid;grid-template-columns:34px minmax(180px,1.2fr) minmax(140px,1fr) 100px 20px;align-items:center;gap:10px;width:100%;padding:10px 14px;border:0;border-bottom:1px solid var(--b1);background:var(--s1);text-align:left;color:var(--txt);cursor:pointer}.aval-priority-row:last-child{border-bottom:0}.aval-priority-row:hover{background:var(--s2)}.aval-priority-status{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:1px solid var(--b1)}.aval-priority-status.risk{color:var(--na);background:var(--na-bg);border-color:var(--na-b)}.aval-priority-status.support{color:var(--area-method);background:var(--area-method-soft)}.aval-priority-status .aval-icon{width:16px;height:16px}.aval-priority-main{display:grid;gap:2px;min-width:0}.aval-priority-main strong{font-size:.74rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aval-priority-main small,.aval-priority-score small{font-size:.63rem;color:var(--txt3)}.aval-priority-subjects{font-size:.68rem;color:var(--txt2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aval-priority-score{display:grid;gap:2px;text-align:right}.aval-priority-score b{font:800 .74rem var(--fm);color:var(--na)}.aval-priority-open{display:flex;justify-content:flex-end;color:var(--txt3)}.aval-priority-open .aval-icon{width:14px;height:14px}
.aval-legend{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:.63rem;color:var(--txt3)}.aval-legend span{display:inline-flex;align-items:center;gap:4px}.aval-legend .dot{width:7px;height:7px;border-radius:50%;display:inline-block}.aval-legend .dot.good{background:var(--ae)}.aval-legend .dot.warn{background:var(--as)}.aval-legend .dot.bad{background:var(--na)}
.pending-tools{display:grid;gap:8px;margin-bottom:12px}.pending-mode-switch{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.pending-mode-help{font-size:.68rem;color:var(--txt3);margin-left:4px;line-height:1.35}.pending-filterbar{margin:0!important;align-items:end}.pending-filterbar label{display:grid;gap:4px;min-width:150px}.pending-filterbar select{min-width:150px;max-width:260px}.pending-filterbar .pending-search{flex:1;min-width:190px}.pending-result-note{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border:1px solid var(--an-b);border-left:3px solid var(--area-eval);background:var(--an-bg);padding:9px 11px;margin-bottom:12px}.pending-result-note strong{font-size:.72rem;color:var(--txt)}.pending-result-note span{font-size:.66rem;line-height:1.4;color:var(--txt3);text-align:right}.pending-section-title{font:700 .72rem var(--fh);letter-spacing:.08em;text-transform:uppercase;color:var(--txt3);margin:0 0 8px}.pending-subject-card{margin-bottom:8px!important;padding:0!important}.pending-subject-head{display:grid;grid-template-columns:minmax(0,1fr) auto 16px;align-items:center;gap:10px;padding:10px 12px;cursor:pointer}.pending-subject-head strong{display:block;font-size:.82rem}.pending-subject-head small{display:block;font-size:.62rem;color:var(--txt3);margin-top:2px}.pending-subject-head ._acc-icon{font-size:.7rem;color:var(--txt3)}
.subj-modal-head{gap:12px;padding-right:34px}.subj-modal-head>div{min-width:0}.subj-modal-head>.btn{flex:0 0 auto}.subj-filter-card{appearance:none;text-align:left;font:inherit;color:inherit;cursor:pointer}.subj-filter-card:hover{border-color:var(--area-eval);background:var(--area-eval-soft)}.subj-filter-card:disabled{cursor:default;opacity:.65}.subj-students-card{margin-top:10px;padding:0!important;overflow:hidden}.subj-student-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--b1)}.subj-student-head strong{display:block;font-size:.76rem}.subj-student-head small{display:block;font-size:.63rem;color:var(--txt3);margin-top:2px}.subj-student-head>span{font:700 .66rem var(--fm);color:var(--area-eval);white-space:nowrap}.subj-student-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:210px;overflow:auto}.subj-student-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;border:0;border-bottom:1px solid var(--b1);background:var(--s1);padding:8px 10px;text-align:left;cursor:pointer;color:var(--txt)}.subj-student-row:nth-child(odd){border-right:1px solid var(--b1)}.subj-student-row:hover{background:var(--s2)}.subj-student-row span{font-size:.69rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.subj-student-row small{font-size:.6rem;color:var(--txt3);white-space:nowrap}.subj-student-empty{padding:12px;font-size:.68rem;color:var(--txt3)}
.aval-table-wrap,.stu-aval-table-wrap{overflow:auto}.aval-results-table,.stu-aval-table{width:100%;border-collapse:collapse;min-width:900px}.aval-results-table th,.stu-aval-table th{position:sticky;top:0;z-index:1;background:#f1f4f7;color:var(--txt3);font-size:.62rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:9px 10px;border-bottom:1px solid var(--b1);white-space:nowrap}html:not(.light) .aval-results-table th,html:not(.light) .stu-aval-table th{background:var(--s3)}.aval-results-table td,.stu-aval-table td{padding:8px 10px;border-bottom:1px solid var(--b1);font-size:.7rem}.aval-results-table tbody tr,.stu-aval-table tbody tr{cursor:pointer}.aval-results-table tbody tr:hover,.stu-aval-table tbody tr:hover{background:var(--s2)}.aval-student-cell{display:grid;gap:2px;min-width:170px}.aval-student-name{font-weight:750;color:var(--txt)}.aval-student-meta{font-size:.61rem;color:var(--txt3)}.aval-flags{display:flex;gap:3px;flex-wrap:wrap}.aval-grade-cell{text-align:center;min-width:55px}.aval-grade-cell.muted{color:var(--txt3)}.aval-score-cell{display:grid;gap:2px;text-align:right}.aval-score-cell strong{font:800 .75rem var(--fm)}.aval-score-cell small{font-size:.59rem;color:var(--txt3)}.aval-score-cell.good strong{color:var(--ae)}.aval-score-cell.warn strong{color:var(--as)}.aval-score-cell.bad strong{color:var(--na)}.aval-row-action{text-align:right;color:var(--txt3)}.aval-row-action .aval-icon{width:14px;height:14px}

/* Student Hub — Avaluació */
.stu-aval-page{display:grid;gap:14px}.stu-aval-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.stu-aval-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:10px}.stu-aval-kpi{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start;background:var(--s1);border:1px solid var(--b1);padding:11px 12px;min-height:96px}.stu-aval-kpi.good{border-top:3px solid var(--ae)}.stu-aval-kpi.warn{border-top:3px solid var(--as)}.stu-aval-kpi.bad{border-top:3px solid var(--na)}.stu-aval-kpi.info{border-top:3px solid var(--area-eval)}.stu-aval-kpi-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid var(--b1);background:var(--s2);color:var(--area-eval)}.stu-aval-kpi-icon .aval-icon{width:16px;height:16px}.stu-aval-kpi-label{font-size:.61rem;text-transform:uppercase;letter-spacing:.05em;font-weight:800;color:var(--txt3)}.stu-aval-kpi-value{font:800 1.12rem var(--fm);color:var(--txt);margin-top:4px}.stu-aval-kpi-meta{font-size:.63rem;line-height:1.35;color:var(--txt3);margin-top:3px}.stu-aval-section{background:var(--s1);border:1px solid var(--b1)}.stu-aval-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:12px 14px;border-bottom:1px solid var(--b1)}.stu-aval-table{min-width:820px}.stu-aval-table td:first-child{min-width:220px}.stu-aval-ev-head.special{background:var(--as-bg);color:var(--as)}.stu-aval-ev-head span{display:block}.stu-aval-ev-head small{display:block;font-size:.52rem;font-weight:650;text-transform:none;letter-spacing:0;color:var(--txt3);margin-top:2px}.stu-aval-summary-row{background:var(--s2);cursor:default!important}.stu-aval-summary-row td{font-weight:700}.stu-aval-summary-row.subtle td{font-weight:500;color:var(--txt3)}.stu-aval-summary-row td.good{color:var(--ae)}.stu-aval-summary-row td.bad{color:var(--na)}.stu-aval-row.is-risk{background:color-mix(in srgb,var(--s1) 96%,var(--na) 4%)}.stu-aval-subject-btn{border:0;background:transparent;color:var(--txt);font:700 .71rem var(--fb);padding:0;cursor:pointer;text-align:left}.stu-aval-subject-btn:hover{color:var(--area-eval);text-decoration:underline;text-underline-offset:2px}.stu-aval-grade{text-align:center}.stu-aval-grade.muted{color:var(--txt3)}.stu-aval-trend{text-align:center;font:800 .84rem var(--fm)}.stu-aval-trend.good{color:var(--ae)}.stu-aval-trend.bad{color:var(--na)}.stu-aval-trend.neutral{color:var(--txt3)}.stu-aval-action{text-align:right;color:var(--txt3)}.stu-aval-action .aval-icon{width:14px;height:14px}

@media(max-width:1260px){.aval-kpi-grid{grid-template-columns:repeat(3,1fr)}.stu-aval-kpi-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.aval-context-bar{grid-template-columns:1fr}.aval-filter-group{grid-template-columns:1fr 1fr}.aval-kpi-grid,.stu-aval-kpi-grid{grid-template-columns:repeat(2,1fr)}.aval-priority-row{grid-template-columns:32px 1fr 86px 18px}.aval-priority-subjects{display:none}.stu-aval-head{flex-direction:column}.aval-pane-shell>.tab-pane{padding:12px}.aval-context-bar,.aval-tab-bar,.aval-page-header{padding-left:12px;padding-right:12px}}
@media(max-width:560px){.aval-filter-group{grid-template-columns:1fr}.aval-kpi-grid,.stu-aval-kpi-grid{grid-template-columns:1fr}.aval-priority-row{grid-template-columns:32px 1fr 18px}.aval-priority-score{display:none}}

/* ════════════════════════════════════════════
   STUDENT HUB RC6 — viewport + chart discipline
   ════════════════════════════════════════════ */
#student-hub.active{
  min-width:0;
  min-height:0;
  overflow:hidden;
}
#student-hub .stu-content-shell{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  padding-bottom:32px;
  background:var(--bg);
}
#student-hub .tab-pane.active{
  height:auto!important;
  min-height:0!important;
  overflow:visible!important;
  padding:0!important;
}
#student-hub #shp-inf.active{
  min-height:calc(100dvh - 190px)!important;
  display:flex!important;
  flex-direction:column!important;
}
#student-hub #shp-inf-content{
  min-height:calc(100dvh - 210px);
}
#student-hub #sh-informe-preview{
  min-height:620px;
}
#student-hub #sh-informe-preview iframe{
  min-height:620px!important;
}

/* Resum: hard limits so Chart.js can never dictate page height */
#shp-resum .stu-chart-wrap-sm{height:190px!important;min-height:190px!important;max-height:190px!important}
#shp-resum .stu-chart-wrap-lg{height:260px!important;min-height:260px!important;max-height:260px!important}
#shp-resum canvas{max-width:100%!important;max-height:100%!important}
#shp-resum .stu-module-card{overflow:hidden}

/* Competency profile: matrix + radar share the screen instead of stacking dead space */
.stu-profile-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.stu-profile-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(320px,.75fr);gap:14px;align-items:start}
.stu-profile-matrix,.stu-profile-radar{background:var(--s1);border:1px solid var(--b1);padding:14px;min-width:0}
.stu-profile-matrix #sh-competency-heatmap{height:440px!important;min-height:440px!important}
.stu-profile-radar-inner{height:420px;position:relative}
.stu-profile-note{font-size:.68rem;color:var(--txt3);line-height:1.45;margin-top:8px}

/* Individual sociogram: use full workspace */
.stu-socio-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:14px;width:100%;align-items:start}
.stu-socio-canvas{min-height:500px}
.stu-socio-canvas svg{width:100%!important;height:auto!important;min-height:440px}
.stu-socio-side{display:grid;gap:10px;position:sticky;top:0}

/* 360 and other student tabs: no artificial max-width / bottom clipping */
#shp-360-content{width:100%;min-width:0}
#shp-360-content>.student-360-summary + div{width:100%!important;max-width:none!important}
#shp-aval,#shp-posicio,#shp-perfil,#shp-pend,#shp-abs,#shp-dis,#shp-socio{width:100%;min-width:0}

@media(max-width:1180px){
  .stu-profile-grid,.stu-socio-grid{grid-template-columns:1fr}
  .stu-socio-side{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}
  .stu-profile-matrix #sh-competency-heatmap{height:380px!important;min-height:380px!important}
}
@media(max-width:720px){
  .stu-socio-side{grid-template-columns:1fr}
  .stu-profile-radar-inner{height:340px}
  #student-hub #sh-informe-preview,#student-hub #sh-informe-preview iframe{min-height:520px!important}
}

/* ════════════════════════════════════════════
   RC6.2 — GLOBAL SHELL HEIGHT FIX
   The whole application uses one flex viewport. This intentionally overrides
   legacy calc(100vh - 44/48/52/54px) rules from older style layers.
   ════════════════════════════════════════════ */
html,
body{
  width:100%;
  height:100%;
  min-height:100%;
  margin:0;
  overflow:hidden;
  background:var(--bg);
}
body{
  display:flex;
  flex-direction:column;
}
#topbar{
  flex:0 0 auto;
  min-height:0;
}
#app{
  flex:1 1 0!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:hidden!important;
  display:flex;
  background:var(--bg);
}
#sidebar{
  align-self:stretch;
  min-height:0;
  height:auto!important;
  max-height:none!important;
}
#main{
  flex:1 1 0;
  min-width:0;
  min-height:0;
  height:auto!important;
  max-height:none!important;
  overflow:hidden;
  background:var(--bg);
}
.panel,
.panel.active{
  min-height:0;
  max-height:none;
}
/* No artificial global footer/gutter: scrolling belongs to each active content area. */
#app::after,
#main::after{
  content:none!important;
  display:none!important;
}

/* ════════════════════════════════════════════
   RC7 — Dashboard per curs + export PDF
   ════════════════════════════════════════════ */
.hud-course-pulse{padding:10px 12px 12px;background:var(--s1)}
.hud-course-pulse-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:7px;border-bottom:1px solid var(--b1);margin-bottom:4px}
.hud-course-pulse-head strong{font-size:.7rem;color:var(--txt2);letter-spacing:.04em}.hud-course-pulse-head span{font-size:.62rem;color:var(--txt3)}
.course-pulse-row{width:100%;display:grid;grid-template-columns:minmax(120px,1fr) minmax(140px,.8fr) minmax(140px,.8fr);gap:14px;align-items:center;padding:8px 4px;border:0;border-bottom:1px solid var(--b1);background:transparent;color:var(--txt);text-align:left;cursor:pointer}
.course-pulse-row:last-child{border-bottom:0}.course-pulse-row:hover{background:var(--s2)}
.course-pulse-name{display:flex;flex-direction:column;gap:2px}.course-pulse-name strong{font-size:.75rem}.course-pulse-name small,.course-pulse-metric small{font-size:.6rem;color:var(--txt3)}
.course-pulse-metric{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"b s" "i i";gap:1px 6px;align-items:baseline}.course-pulse-metric b{grid-area:b;font:800 .75rem var(--fm)}.course-pulse-metric small{grid-area:s}.course-pulse-metric i{grid-area:i;height:4px;background:var(--b1);display:block;overflow:hidden}.course-pulse-metric i u{display:block;height:100%;text-decoration:none}
.course-compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.course-compare-grid .ui-section{margin-bottom:0}
.course-bar-list{padding:8px 12px 10px}.course-bar-row{display:grid;grid-template-columns:70px minmax(0,1fr) 48px;gap:9px;align-items:center;padding:6px 0;border-bottom:1px solid var(--b1)}.course-bar-row:last-child{border-bottom:0}.course-bar-row>span{font-size:.68rem;font-weight:700;color:var(--txt2)}.course-bar-row>b{font:800 .7rem var(--fm);text-align:right}.course-bar-track{height:6px;background:var(--b1);overflow:hidden}.course-bar-track i{display:block;height:100%}
#aval-export-pdf{align-items:center;gap:5px}
@media(max-width:1050px){.course-compare-grid{grid-template-columns:1fr}.course-pulse-row{grid-template-columns:minmax(110px,1fr) minmax(120px,.8fr) minmax(120px,.8fr)}}
@media(max-width:700px){.course-pulse-row{grid-template-columns:1fr}.course-pulse-metric{grid-template-columns:55px 1fr}.hud-course-pulse-head{align-items:flex-start;flex-direction:column}.course-bar-row{grid-template-columns:60px minmax(0,1fr) 42px}}

/* ════════════════════════════════════════════
   RC8 — Fitxes / Sociograma / Aula / Quality
   ════════════════════════════════════════════ */
.caract-filterbar{display:grid;grid-template-columns:minmax(260px,1.5fr) 150px 120px 190px minmax(220px,1fr) auto;gap:8px;align-items:center;padding:10px 14px;background:var(--s1);border-bottom:1px solid var(--b1)}
.caract-search-wrap{position:relative}.caract-search-wrap .form-input{width:100%;padding-left:31px}.caract-search-icon{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--txt3);display:flex}.caract-search-icon .aval-icon{width:14px;height:14px}.caract-body{padding:14px;overflow:auto;min-height:0;flex:1}.caract-kpis{grid-template-columns:repeat(6,minmax(115px,1fr))!important}.caract-active-filter{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 10px;font-size:.69rem;color:var(--txt3)}.caract-table-wrap{max-height:calc(100dvh - 320px);overflow:auto}.caract-table{min-width:980px}.caract-reason{font-size:.73rem;color:var(--txt2);max-width:340px}.caract-notes{font-size:.72rem;color:var(--txt3);max-width:260px}

/* Global sociogram gets the full working height */
#panel-sociograma.active{display:flex!important;flex-direction:column!important;min-height:0!important;overflow:hidden!important}
#panel-sociograma>.tab-bar{flex:0 0 auto}
#panel-sociograma .tab-pane{min-height:0}
#panel-sociograma #stp-visual.active,#panel-sociograma #stp-distribucio.active{display:flex!important;flex:1 1 auto!important;height:auto!important;min-height:0!important;overflow:hidden!important}
#panel-sociograma #socio-canvas-wrap{flex:1 1 auto!important;min-height:0!important;height:auto!important;background:var(--s1)}
#panel-sociograma #socio-g6{min-height:560px!important;height:100%!important;background:var(--s1)}
#panel-sociograma #socio-dist-wrap{flex:1 1 auto!important;min-height:0!important;height:auto!important;overflow:auto!important;padding:12px!important}
#panel-sociograma ._sv-chart.active{border-color:var(--area-social)!important;color:var(--area-social)!important;background:var(--area-social-soft)!important}

/* Student sociogram: clear graph-first layout */
.stu-socio-page{display:grid;gap:12px}.stu-socio-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.stu-socio-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:14px;align-items:start}.stu-socio-network-card{padding:12px!important;min-height:600px}.stu-socio-network-title{display:flex;justify-content:space-between;gap:10px;align-items:center;font:800 .78rem var(--fh);margin-bottom:8px}.stu-socio-network{width:100%;height:calc(100dvh - 300px);min-height:520px;overflow:hidden;background:var(--s2);border:1px solid var(--b1)}.stu-socio-side2{display:grid;gap:10px;position:sticky;top:0}.stu-socio-status{font:800 1.15rem var(--fh);margin:5px 0 3px}.stu-socio-metric{margin:9px 0}.stu-socio-metric>div:first-child{display:flex;justify-content:space-between;gap:10px;font-size:.71rem;color:var(--txt2)}.stu-socio-alert{display:flex;flex-direction:column;gap:6px}

/* Classroom editor is the primary 2D view */
#socio-konva{min-height:560px!important;height:calc(100dvh - 255px)!important;background:linear-gradient(rgba(77,101,126,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(77,101,126,.055) 1px,transparent 1px),var(--s1)!important;background-size:24px 24px!important;border:1px solid var(--b1)!important;overflow:hidden!important}
#socio-three{min-height:560px!important;height:calc(100dvh - 255px)!important;border:1px solid var(--b1)!important;background:var(--s1)!important}

@media(max-width:1250px){.caract-filterbar{grid-template-columns:1fr 140px 110px 170px}.caract-filterbar #caract-nese{grid-column:1/3}.caract-filterbar .btn{grid-column:4}.stu-socio-layout{grid-template-columns:1fr}.stu-socio-side2{position:static;grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){.caract-filterbar{grid-template-columns:1fr 1fr}.caract-filterbar>*{grid-column:auto!important}.caract-search-wrap{grid-column:1/-1!important}.caract-kpis{grid-template-columns:repeat(2,1fr)!important}.stu-socio-side2{grid-template-columns:1fr}.stu-socio-network{height:540px}}

/* ════════════════════════════════════════════
   RC9 — Sociogram clarity pack
   ════════════════════════════════════════════ */
#panel-sociograma #stp-visual.active{min-height:0!important}
#panel-sociograma #socio-canvas-wrap{display:flex!important;flex-direction:column!important;overflow:hidden!important}
#panel-sociograma #socio-g6{flex:1 1 auto!important;min-height:0!important;height:auto!important;overflow:hidden!important}
#panel-sociograma #socio-g6>div:last-child{min-height:0!important;height:100%!important}

.stu-socio-network-card{min-height:0!important}
.stu-socio-network{height:auto!important;min-height:520px!important;overflow:auto!important;background:var(--s1)!important}
.stu-socio-focus-legend{padding:9px 11px;border-bottom:1px solid var(--b1);font-size:.71rem;line-height:1.45;color:var(--txt3);background:var(--s2)}
.stu-socio-focus-wrap{width:100%;overflow:auto;padding:8px 0}
.stu-socio-focus-svg{display:block;width:100%;min-width:760px;height:auto;max-height:560px}
.stu-socio-peer text{pointer-events:none}

/* Global network readability: visual canvas, not a text cloud */
#panel-sociograma #socio-g6{border-top:1px solid var(--b1)}
#panel-sociograma .socio-network-help{font-size:.68rem;color:var(--txt3);padding:6px 10px;background:var(--s2);border-bottom:1px solid var(--b1)}

@media(max-width:900px){
  .stu-socio-focus-svg{min-width:680px}
  .stu-socio-network{min-height:480px!important}
}

/* ════════════════════════════════════════════
   RC10 — Student sociogram teacher HUD
   ════════════════════════════════════════════ */
.stu-socio-teacher-hud{display:grid;gap:14px}.stu-socio-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.stu-socio-summary-card{background:var(--s1);border:1px solid var(--b1);border-top:3px solid var(--area-social);padding:12px 14px;min-height:92px}.stu-socio-summary-card .l{font-size:.61rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800;color:var(--txt3)}.stu-socio-summary-card .v{font:800 1.18rem var(--fm);color:var(--txt);margin-top:6px}.stu-socio-summary-card .m{font-size:.66rem;line-height:1.35;color:var(--txt3);margin-top:4px}.stu-socio-teacher-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(310px,.72fr);gap:14px;align-items:start}.stu-socio-position-card{padding:14px!important}.stu-socio-position-wrap{width:100%;overflow:hidden;margin-top:10px}.stu-socio-position-svg{display:block;width:100%;height:auto;max-height:520px}.stu-socio-legend-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:8px;padding-top:9px;border-top:1px solid var(--b1);font-size:.65rem;color:var(--txt3)}.stu-socio-legend-row span{display:inline-flex;align-items:center;gap:5px}.stu-socio-legend-row i{width:9px;height:9px;border-radius:50%;display:inline-block}.stu-socio-teacher-side{display:grid;gap:12px;position:sticky;top:0}.stu-socio-compare-list{display:grid;gap:12px;margin-top:12px}.stu-socio-compare-row{display:grid;gap:5px}.stu-socio-compare-head{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;font-size:.69rem;color:var(--txt2)}.stu-socio-compare-head strong{font:800 .74rem var(--fm)}.stu-socio-compare-head small{font-size:.59rem;color:var(--txt3);min-width:48px;text-align:right}.stu-socio-compare-track{height:6px;position:relative;background:var(--s3);overflow:visible}.stu-socio-value{position:absolute;left:0;top:0;height:100%;display:block}.stu-socio-median{position:absolute;top:-3px;width:2px;height:12px;background:var(--txt2);z-index:2}.stu-socio-reading{display:flex;align-items:flex-start;gap:7px;padding:8px 0;border-bottom:1px solid var(--b1);font-size:.7rem;line-height:1.4;color:var(--txt2)}.stu-socio-reading:last-child{border-bottom:0}.stu-socio-reading .aval-icon{width:14px;height:14px;margin-top:1px;flex:0 0 auto}.stu-socio-reading.good .aval-icon{color:var(--ae)}.stu-socio-reading.warn .aval-icon{color:var(--as)}.stu-socio-peer-list{display:grid;gap:5px;margin-top:10px}.stu-socio-peer-row{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:8px;align-items:center;padding:7px 8px;border:1px solid var(--b1);background:var(--s2);font-size:.68rem}.stu-socio-peer-rank{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:var(--area-social-soft);color:var(--area-social);font:800 .62rem var(--fm)}.stu-socio-peer-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--txt2)}.stu-socio-peer-row strong{font:800 .67rem var(--fm);color:var(--area-social)}
@media(max-width:1180px){.stu-socio-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stu-socio-teacher-grid{grid-template-columns:1fr}.stu-socio-teacher-side{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.stu-socio-teacher-side>.stu-card:last-child{grid-column:1/-1}}
@media(max-width:720px){.stu-socio-summary-grid{grid-template-columns:1fr}.stu-socio-teacher-side{grid-template-columns:1fr}.stu-socio-teacher-side>.stu-card:last-child{grid-column:auto}}

/* ════════════════════════════════════════════
   RC11 — Sociogram evidence-first UX
   ════════════════════════════════════════════ */
.socio-viewbar,.socio-layerbar{display:flex;align-items:center;gap:8px;padding:7px 14px;border-bottom:1px solid var(--b1);flex-wrap:wrap;background:var(--s1)}
.socio-viewbar-label{font-family:var(--fh);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--txt3)}
.socio-teacher-dashboard{max-width:1500px;margin:0 auto;display:grid;gap:14px}
.socio-teacher-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.9fr);gap:14px;align-items:start}
.socio-eyebrow{font-size:.62rem;font-weight:800;letter-spacing:.08em;color:var(--area-social);margin-bottom:4px}.socio-teacher-head h2{margin:0;font:800 1.25rem var(--fh);color:var(--txt)}.socio-teacher-head p{margin:4px 0 0;font-size:.72rem;color:var(--txt3)}
.socio-method-note{border:1px solid var(--b1);border-left:3px solid var(--area-social);background:var(--s1);padding:10px 12px;display:grid;gap:4px}.socio-method-note strong{font-size:.72rem;color:var(--txt)}.socio-method-note span{font-size:.68rem;line-height:1.45;color:var(--txt3)}
.socio-kpi-strip{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));border:1px solid var(--b1);background:var(--s1)}.socio-kpi-strip>div{padding:11px 12px;border-right:1px solid var(--b1)}.socio-kpi-strip>div:last-child{border-right:0}.socio-kpi-strip span{display:block;font-size:.61rem;text-transform:uppercase;letter-spacing:.05em;font-weight:800;color:var(--txt3)}.socio-kpi-strip strong{display:block;font:800 1.18rem var(--fm);color:var(--txt);margin-top:5px}.socio-kpi-strip small{display:block;font-size:.62rem;color:var(--txt3);margin-top:2px;line-height:1.3}
.socio-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.62fr);gap:14px;align-items:start}.socio-side-stack{display:grid;gap:14px}.socio-panel{background:var(--s1);border:1px solid var(--b1);min-width:0}.socio-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:10px 12px;border-bottom:1px solid var(--b1)}.socio-panel-head strong{display:block;font-size:.76rem;color:var(--txt)}.socio-panel-head small{display:block;font-size:.63rem;color:var(--txt3);margin-top:2px}.socio-map-panel{padding-bottom:8px}.socio-teacher-map{display:block;width:100%;height:auto;min-height:310px;padding:8px 10px 0;box-sizing:border-box}.socio-map-legend{display:flex;gap:12px;flex-wrap:wrap;padding:6px 12px 2px;font-size:.62rem;color:var(--txt3)}.socio-map-legend span{display:flex;align-items:center;gap:5px}.socio-map-legend i{width:7px;height:7px;border-radius:50%;display:inline-block}
.socio-status-list{padding:10px 12px;display:grid;gap:9px}.socio-status-row{display:grid;grid-template-columns:115px 1fr 28px;gap:8px;align-items:center}.socio-status-name{font-size:.68rem;color:var(--txt2);display:flex;gap:6px;align-items:center}.socio-status-name i{width:7px;height:7px;border-radius:50%}.socio-status-track{height:6px;background:var(--b1);overflow:hidden}.socio-status-track b{display:block;height:100%}.socio-status-row strong{font:750 .7rem var(--fm);text-align:right;color:var(--txt)}
.socio-conc-row{padding:10px 12px 0;display:grid;grid-template-columns:1fr 42px;gap:6px;align-items:center}.socio-conc-row span{font-size:.68rem;color:var(--txt2)}.socio-conc-row>b{font:800 .72rem var(--fm);text-align:right;color:var(--area-social)}.socio-conc-row>div{grid-column:1/-1;height:7px;background:var(--b1)}.socio-conc-row>div i{display:block;height:100%;background:var(--area-social)}.socio-conc-row.danger>b{color:var(--na)}.socio-conc-row.danger>div i{background:var(--na)}.socio-help-copy{font-size:.62rem;color:var(--txt3);line-height:1.45;padding:8px 12px 12px;margin:0}
.socio-priority-grid{display:grid;grid-template-columns:repeat(5,minmax(180px,1fr));gap:10px}.socio-priority-card{background:var(--s1);border:1px solid var(--b1);border-top:3px solid var(--txt3);min-width:0}.socio-priority-card.danger{border-top-color:var(--na)}.socio-priority-card.warn{border-top-color:var(--as)}.socio-priority-card.good{border-top-color:var(--ae)}.socio-priority-head{display:flex;justify-content:space-between;gap:8px;padding:9px 10px;border-bottom:1px solid var(--b1)}.socio-priority-head strong{font-size:.69rem;color:var(--txt)}.socio-priority-head small{display:block;font-size:.58rem;line-height:1.35;color:var(--txt3);margin-top:2px}.socio-priority-head>span{font:800 .82rem var(--fm);color:var(--txt2)}.socio-priority-list{display:grid}.socio-priority-list button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;text-align:left;border:0;border-bottom:1px solid var(--b1);background:transparent;padding:7px 9px;cursor:pointer}.socio-priority-list button:last-child{border-bottom:0}.socio-priority-list button:hover{background:var(--s2)}.socio-priority-list span{font-size:.64rem;color:var(--txt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.socio-priority-list em{font:700 .6rem var(--fm);color:var(--txt3);font-style:normal}.socio-none{padding:10px;font-size:.63rem;color:var(--txt3)}
.socio-signal-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:0}.socio-signal-grid>div{padding:10px 12px;border-right:1px solid var(--b1)}.socio-signal-grid>div:last-child{border-right:0}.socio-signal-grid span{display:block;font-size:.62rem;color:var(--txt3)}.socio-signal-grid strong{display:block;font-size:.7rem;margin-top:4px}.socio-signal-grid small{display:block;font:600 .6rem var(--fm);color:var(--txt3);margin-top:2px}.socio-signal-grid .has-signal strong{color:var(--ae)}.socio-signal-grid .no-signal strong{color:var(--as)}
@media(max-width:1280px){.socio-priority-grid{grid-template-columns:repeat(3,1fr)}.socio-kpi-strip{grid-template-columns:repeat(3,1fr)}.socio-kpi-strip>div:nth-child(3){border-right:0}.socio-dashboard-grid{grid-template-columns:1fr}.socio-side-stack{grid-template-columns:1fr 1fr}.socio-signal-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){.socio-teacher-head{grid-template-columns:1fr}.socio-priority-grid,.socio-side-stack,.socio-kpi-strip,.socio-signal-grid{grid-template-columns:1fr}.socio-kpi-strip>div,.socio-signal-grid>div{border-right:0;border-bottom:1px solid var(--b1)}.socio-teacher-map{min-height:280px}}
