/* RASD Lesson Observation Clean v2
   Consolidated stylesheet. */

/* RASD Lesson Observation v1.0 */
.obs-page{max-width:1700px}.obs-dashboard,.obs-workspace,.obs-teacher-profile,.obs-report-shell{display:grid;gap:16px}
.obs-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.obs-kpi{background:#fff;border:1px solid var(--line);border-radius:17px;padding:16px;box-shadow:var(--shadow)}.obs-kpi small,.obs-kpi span{display:block;color:var(--muted);font-size:12px}.obs-kpi strong{display:block;font-size:28px;color:var(--navy);margin:5px 0}
.obs-teacher-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.obs-teacher-card{border:1px solid var(--line);background:#fff;border-radius:14px;padding:14px;text-align:right;color:var(--text)}.obs-teacher-card b,.obs-teacher-card small,.obs-teacher-card span{display:block}.obs-teacher-card small{color:var(--muted);margin:5px 0}.obs-teacher-card span{color:var(--blue);font-size:12px}.obs-link{border:0;background:none;color:var(--blue);font-weight:800;padding:0}
.obs-sticky-top{position:sticky;top:66px;z-index:20;background:#f2f8fc;padding:8px 0 10px}.obs-workspace-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:17px;padding:14px 16px;box-shadow:var(--shadow)}.obs-workspace-head h2{margin:8px 0 3px}.obs-workspace-head p{margin:0;color:var(--muted)}.obs-head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.obs-save-state{font-size:12px;padding:6px 9px;border-radius:999px;background:#eaf8f2;color:var(--green)}
.obs-prev-target{margin-top:8px;background:#fff7e8;border:1px solid #f0d39a;border-radius:12px;padding:9px 12px;font-size:13px}.obs-progress{margin-top:8px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:9px 12px}.obs-progress>div{display:flex;justify-content:space-between;font-size:12px;margin-bottom:6px}.obs-progress i{display:block;height:7px;border-radius:99px;background:#e5edf4;overflow:hidden}.obs-progress em{display:block;height:100%;background:var(--green);transition:.2s}.obs-jump{display:flex;gap:6px;overflow:auto;padding-top:8px}.obs-jump button{white-space:nowrap;border:1px solid var(--line);background:#fff;color:var(--navy);border-radius:10px;padding:7px 10px;font-size:12px;font-weight:700}
.obs-criterion{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow);scroll-margin-top:245px;margin-bottom:16px}.obs-criterion>header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;background:linear-gradient(135deg,#f9fcfe,#edf6fc);border-bottom:1px solid var(--line)}.obs-criterion>header>div:first-child{display:flex;align-items:center;gap:10px}.obs-criterion h2{margin:0;font-size:20px}.obs-num{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--navy);color:#fff;font-weight:900}.obs-criterion-score{font-weight:800;color:var(--navy);background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 11px}
.obs-table-wrap{overflow-x:auto}.obs-table{min-width:1840px;table-layout:fixed}.obs-table th{position:static;text-align:center}.obs-table th.obs-item-col,.obs-table td.obs-item-col{position:sticky;right:0;z-index:5;width:300px;min-width:300px;background:#fff;text-align:right;box-shadow:-3px 0 8px rgba(23,79,125,.05)}.obs-table thead th.obs-item-col{background:#f5f9fc;z-index:7}.obs-table td{vertical-align:top;padding:7px}.obs-table td:not(.obs-item-col){width:215px;min-width:215px}.obs-item-name b{display:block;font-size:14px}.obs-item-name span{display:block;color:var(--muted);font-size:11px;margin-top:4px}.obs-evidence-hint{font-size:11.5px;color:#536d80;line-height:1.6;margin:9px 0}
.obs-score-cell{width:100%;min-height:205px;border:1px solid #d9e6ef;border-radius:11px;background:#fff;padding:9px;text-align:right;color:var(--text);transition:.15s}.obs-score-cell:hover{border-color:#82abc8;background:#f8fcff}.obs-score-cell.selected{border:2px solid var(--blue);background:#eaf5fc;box-shadow:0 0 0 2px rgba(36,111,167,.08)}.obs-score-head{display:flex;align-items:center;gap:6px;margin-bottom:7px}.obs-score-head b{font-size:19px;color:var(--navy)}.obs-score-head span{font-size:11px;color:var(--muted)}.obs-score-head i{margin-inline-start:auto;background:var(--green);color:#fff;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-style:normal}.obs-score-cell p{margin:0;font-size:11.5px;line-height:1.68;color:#405a6e}.obs-score-cell.obs-na{background:#fafafa}
.obs-report-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center}.obs-report-toolbar>div{display:flex;gap:8px;flex-wrap:wrap}.obs-report{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px;box-shadow:var(--shadow);display:grid;gap:12px}.obs-report-cover{display:flex;align-items:center;gap:16px;padding:19px;background:linear-gradient(135deg,var(--navy2),var(--blue));color:#fff;border-radius:17px}.obs-report-cover img{width:70px;height:70px;object-fit:contain;background:#fff;border-radius:12px;padding:5px}.obs-report-cover h1{margin:3px 0}.obs-report-cover p,.obs-report-cover small{margin:0;opacity:.82}.obs-overall{margin-inline-start:auto;text-align:center;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.22);border-radius:15px;padding:10px 18px;min-width:130px}.obs-overall strong,.obs-overall span,.obs-overall b{display:block}.obs-overall strong{font-size:34px}
.obs-report-ident{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:14px;overflow:hidden}.obs-report-ident>div{padding:10px 12px;border:1px solid #edf2f6}.obs-report-ident small{display:block;color:var(--muted);margin-bottom:3px}.obs-report-section{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff}.obs-report-section h2{font-size:18px;margin:0 0 9px}.obs-report-section p{line-height:1.85;margin:0}.obs-score-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.obs-score-grid>div{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;background:#f7fafc;border:1px solid #e5edf4;border-radius:10px;padding:8px 10px}.obs-score-grid strong{font-size:19px;color:var(--navy)}.obs-score-grid small{color:var(--muted)}.obs-report-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.obs-report-section.strength{border-inline-start:5px solid var(--green)}.obs-report-section.develop{border-inline-start:5px solid var(--amber)}.obs-report-section.target{background:#f0f8fd;border-color:#c9dfef}.obs-report-section ul{margin:0;padding-right:20px}.obs-report-section li{margin:8px 0}.obs-report-section li b,.obs-report-section li span{display:block}.obs-report-section li span{font-size:12px;color:var(--muted);margin-top:3px;line-height:1.5}.obs-report-footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:8px;color:var(--muted);font-size:11px}
.obs-profile-head{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,var(--navy),#246994);color:#fff;border-radius:20px;padding:20px}.obs-profile-head h2{margin:0 0 4px}.obs-profile-head p{margin:0;opacity:.8}.obs-profile-head>div:last-child{text-align:center}.obs-profile-head strong,.obs-profile-head span{display:block}.obs-profile-head strong{font-size:32px}.obs-trend{height:220px;display:flex;align-items:flex-end;gap:16px;padding:20px 10px 0;border-bottom:1px solid var(--line);overflow-x:auto}.obs-trend>div{height:100%;min-width:70px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px}.obs-trend i{width:34px;background:linear-gradient(var(--blue),var(--navy2));border-radius:8px 8px 0 0;min-height:5px}.obs-trend b{font-size:12px}.obs-trend small{white-space:nowrap;color:var(--muted)}.obs-target-list{list-style:none;margin:0;padding:0}.obs-target-list li{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:start;padding:10px 0;border-bottom:1px solid #edf2f6}.obs-target-list small{color:var(--muted)}
@media(max-width:1100px){.obs-kpis{grid-template-columns:repeat(2,1fr)}.obs-sticky-top{top:105px}.obs-report-ident{grid-template-columns:repeat(2,1fr)}.obs-score-grid{grid-template-columns:1fr}}
@media(max-width:700px){.obs-kpis,.obs-report-two,.obs-report-ident{grid-template-columns:1fr}.obs-workspace-head,.obs-report-cover,.obs-profile-head{flex-direction:column;align-items:stretch}.obs-sticky-top{position:static}.obs-criterion{scroll-margin-top:10px}.obs-report{padding:10px}.obs-overall{margin:0}.obs-teacher-grid{grid-template-columns:1fr}}
@media print{.obs-report-shell{display:block}.obs-report{border:0;box-shadow:none;padding:0}.obs-report-toolbar,.no-print,.topbar,.page-head{display:none!important}.obs-page,.page{max-width:none;padding:0}.obs-report-section,.obs-report-two,.obs-score-grid>div,.obs-report-ident,.obs-report-cover{break-inside:avoid;page-break-inside:avoid}.obs-report-cover{-webkit-print-color-adjust:exact;print-color-adjust:exact}.obs-report{font-size:10px}.obs-report-section{padding:8px}.obs-report-section h2{font-size:14px}.obs-report-cover h1{font-size:20px}@page{size:A4;margin:8mm}}


/* RASD Lesson Observation feedback batch 1 */
.obs-page{max-width:none!important;width:100%!important;padding-left:18px!important;padding-right:18px!important}
.obs-workspace{width:100%}
.obs-criterion{margin-bottom:10px!important;border-radius:14px!important}
.obs-criterion>header{padding:8px 10px!important}
.obs-criterion h2{font-size:16px!important}
.obs-num{width:28px!important;height:28px!important;border-radius:8px!important;font-size:13px!important}
.obs-criterion-score{padding:6px 9px!important;font-size:12px!important}
.obs-table{min-width:1380px!important;width:100%!important}
.obs-table th.obs-item-col,.obs-table td.obs-item-col{width:230px!important;min-width:230px!important}
.obs-table td{padding:4px!important}
.obs-table td:not(.obs-item-col){width:158px!important;min-width:158px!important}
.obs-table th{font-size:10px!important;padding:5px 3px!important}
.obs-item-name b{font-size:12px!important}.obs-item-name span{font-size:9.5px!important}
.obs-evidence-hint{font-size:9.5px!important;line-height:1.35!important;margin:5px 0!important}
.obs-score-cell{min-height:118px!important;padding:6px!important;border-radius:8px!important}
.obs-score-head{margin-bottom:4px!important}.obs-score-head b{font-size:15px!important}.obs-score-head span{font-size:9px!important}
.obs-score-head i{width:16px!important;height:16px!important;font-size:10px!important}
.obs-score-cell p{font-size:9.4px!important;line-height:1.38!important}
.obs-jump{padding-top:5px!important}.obs-jump button{padding:5px 8px!important;font-size:10px!important}
.obs-workspace-head{padding:9px 11px!important}.obs-workspace-head h2{font-size:18px!important;margin:4px 0 2px!important}
.obs-workspace-head p{font-size:11px!important}
.obs-progress{padding:6px 9px!important;margin-top:5px!important}
.obs-sticky-top{padding:5px 0 6px!important}
.obs-general-panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 12px;box-shadow:var(--shadow);margin-bottom:10px}
.obs-general-title{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px}
.obs-general-title h3{margin:0;font-size:15px}.obs-general-title p{margin:2px 0 0;color:var(--muted);font-size:10px}.obs-general-title span{font-size:10px;color:var(--green);background:#edf9f3;border-radius:999px;padding:4px 7px}
.obs-general-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.obs-general-grid label{font-size:10.5px;font-weight:700}.obs-general-grid textarea{width:100%;margin-top:4px;resize:vertical;min-height:58px;border:1px solid var(--line);border-radius:9px;padding:7px;font:inherit;font-weight:400;background:#fbfdff}
.obs-context-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.obs-context-grid>div{background:#f8fbfd;border:1px solid #e3edf4;border-radius:10px;padding:9px}.obs-context-grid b{display:block;margin-bottom:4px}.obs-context-grid p{font-size:12px!important;line-height:1.6!important}
.obs-score-cell.obs-level-6.selected,.obs-l6{background:#e6f6ea!important;border-color:#3c9b55!important;color:#175f2d!important}
.obs-score-cell.obs-level-5.selected,.obs-l5{background:#e4f0fb!important;border-color:#2f73b8!important;color:#174f86!important}
.obs-score-cell.obs-level-4.selected,.obs-l4{background:#edf7fd!important;border-color:#76b9df!important;color:#2e6f95!important}
.obs-score-cell.obs-level-3.selected,.obs-l3{background:#fff0dd!important;border-color:#ef9c3f!important;color:#9a5707!important}
.obs-score-cell.obs-level-2.selected,.obs-l2{background:#fdeaea!important;border-color:#e88b8b!important;color:#a63d3d!important}
.obs-score-cell.obs-level-1.selected,.obs-l1{background:#f4dada!important;border-color:#9f2f2f!important;color:#6f1717!important}
.obs-score-grid>div.obs-l6,.obs-score-grid>div.obs-l5,.obs-score-grid>div.obs-l4,.obs-score-grid>div.obs-l3,.obs-score-grid>div.obs-l2,.obs-score-grid>div.obs-l1{border-width:2px!important}
.obs-overall.obs-l6,.obs-overall.obs-l5,.obs-overall.obs-l4,.obs-overall.obs-l3,.obs-overall.obs-l2,.obs-overall.obs-l1{border-width:2px!important}
@media(max-width:1200px){
  .obs-general-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .obs-table{min-width:1320px!important}
}
@media(max-width:700px){
  .obs-page{padding-left:8px!important;padding-right:8px!important}
  .obs-general-grid,.obs-context-grid{grid-template-columns:1fr}
  .obs-table th.obs-item-col,.obs-table td.obs-item-col{width:190px!important;min-width:190px!important}
  .obs-table td:not(.obs-item-col){width:150px!important;min-width:150px!important}
}
@media print{
  .obs-l6,.obs-l5,.obs-l4,.obs-l3,.obs-l2,.obs-l1{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* RASD Lesson Observation final refinements */
.obs-page,.obs-workspace,.obs-criterion,.obs-table-wrap{width:100%!important;max-width:100%!important;min-width:0!important}
.obs-table-wrap{overflow-x:hidden!important}
.obs-table{width:100%!important;min-width:0!important;max-width:100%!important;table-layout:fixed!important}
.obs-table th.obs-item-col,.obs-table td.obs-item-col{width:17%!important;min-width:0!important;position:static!important;box-shadow:none!important}
.obs-table th:not(.obs-item-col),.obs-table td:not(.obs-item-col){width:11.857%!important;min-width:0!important;max-width:none!important}
.obs-table th{font-size:11.5px!important;padding:5px 2px!important}
.obs-table td{padding:4px!important}
.obs-item-name b{font-size:13px!important;line-height:1.35!important}
.obs-item-name span{font-size:10.5px!important}
.obs-evidence-hint{font-size:10.5px!important;line-height:1.35!important;margin:4px 0!important}
.obs-score-cell{min-height:0!important;height:100%!important;padding:6px!important}
.obs-score-cell p{font-size:11.2px!important;line-height:1.48!important;font-weight:600!important;overflow-wrap:anywhere!important;word-break:normal!important}
.obs-score-head{gap:4px!important;margin-bottom:5px!important}
.obs-score-head b{font-size:15px!important}.obs-score-head span{font-size:9.5px!important}
.obs-full-detail{margin-top:5px!important;font-size:10px!important;padding:3px 6px!important}
.obs-descriptor-detail{display:grid;gap:8px}
.obs-detail-level{border:1px solid var(--line);border-radius:10px;padding:10px}
.obs-detail-level header{margin-bottom:5px}.obs-detail-level p{margin:0;line-height:1.75}
.obs-prev-summary{display:inline-block!important;margin-top:5px!important;padding:3px 6px;border-radius:999px;background:#eef2f6;color:#465a6c!important;font-size:9.5px!important;font-weight:700}
.obs-prev-mark{margin-inline-start:auto;background:#fff;border:1px dashed currentColor;border-radius:999px;padding:1px 4px;font-size:8.5px;font-style:normal;font-weight:800}
.obs-hide-previous .obs-prev-summary,.obs-hide-previous .obs-prev-mark{display:none!important}
.obs-finish-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px}
.obs-finish-summary>div{background:#f7fafc;border:1px solid var(--line);border-radius:12px;padding:12px;text-align:center}
.obs-finish-summary strong{display:block;font-size:26px;color:var(--navy)}.obs-finish-summary span{display:block;color:var(--muted);font-size:11px}
.obs-response-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:15px;box-shadow:var(--shadow)}
.obs-response-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}
.obs-response-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}
.obs-response-summary>div{background:#f7fafc;border:1px solid #e4edf3;border-radius:10px;padding:9px}.obs-response-summary b,.obs-response-summary span{display:block}.obs-response-summary span{margin-top:3px;color:#52697b}
.obs-target-followup{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:end;margin-top:12px;padding-top:10px;border-top:1px dashed var(--line)}
.obs-target-followup label{font-size:11px;font-weight:700}.obs-target-followup input,.obs-target-followup select{width:100%;margin-top:4px}
.obs-target-indicators{margin-top:10px;padding-top:8px;border-top:1px dashed #bed5e4;font-size:12px}.obs-target-indicators b,.obs-target-indicators span{display:block}.obs-target-indicators span{margin-top:3px;color:#486579}
.obs-profile-actions{display:flex;justify-content:flex-end}.obs-kpi-wide strong{font-size:16px!important;line-height:1.4!important}
.obs-period-report .obs-report-section{font-size:14px}
.obs-report{font-size:14px!important}.obs-report-section p{font-size:13.2px!important;line-height:1.8!important}
.obs-report-section li{margin:10px 0!important}.obs-report-section li span{font-size:12.3px!important;line-height:1.6!important}
.obs-score-grid>div{padding:9px 11px!important}.obs-score-grid span{font-size:12px!important}.obs-score-grid small{font-size:11px!important}
@media(max-width:1300px){
  .obs-table th.obs-item-col,.obs-table td.obs-item-col{width:18%!important}
  .obs-table th:not(.obs-item-col),.obs-table td:not(.obs-item-col){width:11.714%!important}
  .obs-score-cell p{font-size:10.8px!important;line-height:1.45!important}
}
@media(max-width:900px){
  .obs-table th.obs-item-col,.obs-table td.obs-item-col{width:20%!important}
  .obs-table th:not(.obs-item-col),.obs-table td:not(.obs-item-col){width:11.429%!important}
  .obs-score-cell p{font-size:9.8px!important;line-height:1.4!important}
  .obs-score-head b{font-size:13px!important}.obs-score-head span{font-size:8.5px!important}
  .obs-response-grid,.obs-response-summary{grid-template-columns:1fr}
  .obs-target-followup{grid-template-columns:1fr}
  .obs-finish-summary{grid-template-columns:1fr}
}
@media print{
  .obs-report{font-size:10.8px!important;gap:9px!important}
  .obs-report-section{break-inside:avoid!important;page-break-inside:avoid!important}
  .obs-report-two{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:10px!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important
  }
  .obs-report-two>.obs-report-section{
    margin-bottom:0!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important
  }
  .obs-report-section.target,.obs-target-indicators{
    break-inside:avoid!important;
    page-break-inside:avoid!important
  }
  .obs-report-section p{font-size:10px!important;line-height:1.52!important}
  .obs-report-section li{margin:6px 0!important}
  .obs-report-section li span{font-size:9.4px!important;line-height:1.45!important}
  .obs-score-grid>div{padding:7px 9px!important}
  .obs-score-grid span{font-size:9.4px!important}.obs-score-grid small{font-size:8.8px!important}
  .obs-response-card,.obs-profile-actions{display:none!important}
}
.obs-mini-kpis{display:flex;gap:8px;flex-wrap:wrap}.obs-mini-kpis span{background:#f5f9fc;border:1px solid var(--line);border-radius:999px;padding:6px 9px;font-size:11px}.obs-mini-kpis b{font-size:14px;color:var(--navy)}
.obs-dept-grid{margin-top:10px}.obs-dept-patterns{margin-top:12px}
#obsEmailHistory{margin-top:12px}


/* Keep critical report blocks intact in both screen-rendered html2pdf and print */
.obs-report-two{break-inside:avoid!important;page-break-inside:avoid!important}
.obs-report-section.target,.obs-target-indicators{break-inside:avoid!important;page-break-inside:avoid!important}


/* Observation performance bands */
.obs-band-6{background:#eaf7ee!important;border-color:#7fc391!important;color:#245f32!important}
.obs-band-5{background:#e8f1fb!important;border-color:#7fa9d9!important;color:#234f7d!important}
.obs-band-4{background:#eef7fb!important;border-color:#a8cfdf!important;color:#315f73!important}
.obs-band-3{background:#fff3df!important;border-color:#e2b56a!important;color:#8a5a12!important}
.obs-band-2{background:#fdeaea!important;border-color:#e7a0a0!important;color:#9a4040!important}
.obs-band-1{background:#f4d6d6!important;border-color:#c76f6f!important;color:#7d2222!important}
.obs-chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.obs-chart-card{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fbfdff;break-inside:avoid}
.obs-chart-card h3{margin:0 0 10px;font-size:15px}
.obs-trend-bars{height:180px;display:flex;align-items:flex-end;justify-content:space-around;gap:12px;border-bottom:1px solid #d9e5ed;padding:8px 8px 0}
.obs-trend-col{height:100%;min-width:70px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px}
.obs-trend-col>i{display:block;width:34px;min-height:10px;border:1px solid transparent;border-radius:8px 8px 0 0}
.obs-trend-col>b{font-size:12px}.obs-trend-col>small{font-size:9px;white-space:nowrap}
.obs-criteria-bars{display:grid;gap:7px}
.obs-bar-row{display:grid;grid-template-columns:24px 1fr 42px;gap:8px;align-items:center}
.obs-bar-row>i{display:block;height:12px;background:#e8eef3;border-radius:99px;overflow:hidden}
.obs-bar-row>i>em{display:block;height:100%;border-radius:99px}
.obs-bar-row>b{font-size:11px}
@media(max-width:900px){.obs-chart-grid{grid-template-columns:1fr}}
@media print{
  .obs-chart-grid{grid-template-columns:1fr 1fr!important}
  .obs-chart-card{padding:8px!important}
  .obs-trend-bars{height:145px!important}
}



/* Professional period performance report v2 */
.obs-period-pro{gap:0!important;padding:0!important;overflow:hidden}
.obs-period-page{padding:24px;background:#fff;min-height:1020px;box-sizing:border-box}
.obs-period-hero{display:grid;grid-template-columns:1fr auto;gap:22px;align-items:center;background:linear-gradient(135deg,var(--navy2),var(--blue));color:#fff;border-radius:20px;padding:24px 28px}
.obs-period-hero-title h1{margin:4px 0 5px;font-size:30px}.obs-period-hero-title h2{margin:12px 0 0;font-size:18px}.obs-period-hero-title p,.obs-period-hero-title small{margin:0;opacity:.84}
.obs-donut-wrap{text-align:center;min-width:180px}.obs-donut{--pct:0%;--band:#2f73b8;width:150px;height:150px;border-radius:50%;background:conic-gradient(var(--band) var(--pct),rgba(255,255,255,.18) 0);display:grid;place-items:center;margin:auto;position:relative}
.obs-donut:after{content:"";position:absolute;width:112px;height:112px;border-radius:50%;background:#fff}
.obs-donut>div{position:relative;z-index:1;color:var(--navy);display:grid;gap:2px}.obs-donut strong{font-size:30px}.obs-donut span{font-size:15px}.obs-donut b{font-size:13px}.obs-donut-wrap>small{display:block;margin-top:7px;color:#eaf4fa}
.obs-period-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}
.obs-period-kpis>div{border:1px solid var(--line);border-radius:13px;padding:11px 12px;background:#f8fbfd;min-height:72px}.obs-period-kpis small,.obs-period-kpis span{display:block;color:var(--muted)}.obs-period-kpis strong{display:block;margin:4px 0;font-size:18px;color:var(--navy)}
.obs-pro-chart-card{border:1px solid var(--line);border-radius:16px;padding:14px;background:#fff;break-inside:avoid;page-break-inside:avoid}
.obs-chart-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:8px}.obs-chart-head h3{margin:0;font-size:17px}.obs-chart-head span{font-size:10px;color:var(--muted)}
.obs-line-card{margin-top:12px}.obs-line-svg{width:100%;height:275px}.obs-svg-grid{stroke:#dfe8ef;stroke-width:1}.obs-svg-axis,.obs-svg-date,.obs-svg-grade{fill:#6d8191;font-size:10px}.obs-svg-line{fill:none;stroke:#1f5f89;stroke-width:4;stroke-linejoin:round;stroke-linecap:round}.obs-svg-point{stroke:#fff;stroke-width:3}.obs-svg-value{fill:#173f5f;font-weight:800;font-size:12px}
.obs-period-section-title{margin-bottom:14px;border-bottom:2px solid #e7eef4;padding-bottom:9px}.obs-period-section-title h2{margin:0 0 3px;font-size:22px}.obs-period-section-title p{margin:0;color:var(--muted)}
.obs-analytics-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:12px;margin-bottom:12px}.obs-radar-svg{width:100%;height:340px}.obs-radar-ring{fill:none;stroke:#dce7ee;stroke-width:1}.obs-radar-axis{stroke:#e4edf3;stroke-width:1}.obs-radar-shape{fill:rgba(47,115,184,.18);stroke:#2f73b8;stroke-width:3}.obs-radar-label{font-size:11px;font-weight:800;fill:#173f5f}
.obs-heatmap{display:grid;gap:4px}.obs-heatmap-row{display:grid;grid-template-columns:54px repeat(8,minmax(34px,1fr));gap:4px}.obs-heatmap-row>b,.obs-heatmap-row>span{display:grid;place-items:center;min-height:27px;border-radius:7px;font-size:10px}.obs-heatmap-row>b{background:#f0f5f8;color:var(--navy)}.obs-heatmap-head span{background:#f0f5f8;font-weight:800}.obs-heat-empty{background:#f5f6f7;color:#9aa8b3}.obs-heatmap-legend{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.obs-heatmap-legend span{padding:4px 7px;border-radius:999px;font-size:9px;border:1px solid transparent}
.obs-pro-bars{display:grid;gap:9px}.obs-pro-bar-label{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:4px}.obs-pro-bar-label b{font-size:11px}.obs-pro-bar-label span{font-size:10px;color:var(--muted);white-space:nowrap}.obs-pro-bar-track{height:13px;background:#e9eff4;border-radius:99px;position:relative;overflow:hidden}.obs-pro-bar-track>i{display:block;height:100%;border-radius:99px}.obs-pro-bar-track>em{position:absolute;top:-2px;bottom:-2px;width:2px;background:#6e7f8a;opacity:.55}
.obs-response-progress{display:flex;gap:12px;align-items:center}.obs-response-progress strong{font-size:26px;color:var(--navy)}.obs-response-progress span{color:var(--muted)}
.obs-period-visits td,.obs-period-visits th{padding:9px 10px}.obs-visit-judge{display:inline-block;padding:4px 8px;border-radius:999px;border:1px solid transparent;font-size:10px;font-weight:800}
.obs-period-page2 .obs-pro-chart-card:last-child{margin-top:12px}
@media(max-width:1000px){
  .obs-period-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .obs-analytics-grid{grid-template-columns:1fr}
  .obs-heatmap-row{grid-template-columns:46px repeat(8,minmax(30px,1fr))}
}
@media print{
  .obs-period-pro{box-shadow:none!important;border:0!important}
  .obs-period-page{min-height:0!important;height:auto!important;padding:10mm 9mm!important}
  .obs-period-page1,.obs-period-page2,.obs-period-page3{break-inside:avoid!important;page-break-inside:avoid!important}
  .obs-period-hero{padding:15px 18px!important}.obs-period-hero-title h1{font-size:24px!important}
  .obs-donut{width:120px!important;height:120px!important}.obs-donut:after{width:88px!important;height:88px!important}.obs-donut strong{font-size:24px!important}
  .obs-period-kpis{gap:7px!important;margin:9px 0!important}.obs-period-kpis>div{padding:8px!important;min-height:58px!important}
  .obs-line-svg{height:210px!important}.obs-radar-svg{height:270px!important}
  .obs-pro-chart-card{padding:9px!important}.obs-chart-head h3{font-size:14px!important}
  .obs-pro-bars{gap:6px!important}.obs-pro-bar-label b{font-size:9.5px!important}.obs-pro-bar-label span{font-size:8.5px!important}
  .obs-report-two{gap:9px!important}
}


/* Period report PDF refinements */
.obs-line-svg,.obs-radar-svg{direction:ltr!important;unicode-bidi:isolate!important;overflow:visible!important}
.obs-line-card{overflow:hidden}
.obs-radar-svg text,.obs-line-svg text{direction:ltr!important;unicode-bidi:isolate!important}
.obs-radar-svg{display:block;margin:0 auto;max-width:360px!important;height:290px!important}
.obs-line-svg{height:235px!important}
.obs-response-progress strong span{direction:ltr!important;unicode-bidi:isolate!important;display:inline-block}
.obs-pro-bar-label span{direction:ltr!important;unicode-bidi:isolate!important}
.obs-pro-bar-track>i.obs-band-6,.obs-pro-bar-track>i.obs-band-5,.obs-pro-bar-track>i.obs-band-4,.obs-pro-bar-track>i.obs-band-3,.obs-pro-bar-track>i.obs-band-2,.obs-pro-bar-track>i.obs-band-1{border:0!important}
@media print{
  .obs-period-page{padding:7mm 7mm!important}
  .obs-period-page1 .obs-period-kpis{grid-template-columns:repeat(3,1fr)!important}
  .obs-period-page1 .obs-period-kpis>div{min-height:48px!important;padding:6px 7px!important}
  .obs-period-page1 .obs-period-kpis strong{font-size:15px!important}
  .obs-period-page1 .obs-period-kpis small,.obs-period-page1 .obs-period-kpis span{font-size:8px!important}
  .obs-line-svg{height:190px!important}
  .obs-period-page2 .obs-analytics-grid{grid-template-columns:.78fr 1.22fr!important;gap:8px!important;margin-bottom:8px!important}
  .obs-period-page2 .obs-radar-svg{height:215px!important;max-width:285px!important}
  .obs-period-page2 .obs-heatmap-row>span,.obs-period-page2 .obs-heatmap-row>b{min-height:20px!important;font-size:8px!important}
  .obs-period-page2 .obs-heatmap{gap:2px!important}
  .obs-period-page2 .obs-heatmap-legend{margin-top:4px!important}
  .obs-period-page2 .obs-heatmap-legend span{font-size:7px!important;padding:2px 4px!important}
  .obs-period-page2 .obs-pro-chart-card{padding:7px!important}
  .obs-period-page2 .obs-chart-head{margin-bottom:4px!important}
  .obs-period-page2 .obs-chart-head h3{font-size:12px!important}
  .obs-period-page2 .obs-pro-bars{gap:3px!important}
  .obs-period-page2 .obs-pro-bar-label{margin-bottom:2px!important}
  .obs-period-page2 .obs-pro-bar-label b{font-size:8px!important}
  .obs-period-page2 .obs-pro-bar-label span{font-size:7.4px!important}
  .obs-period-page2 .obs-pro-bar-track{height:8px!important}
  .obs-period-page3 .obs-report-section{padding:9px!important}
  .obs-period-page3 .obs-report-section li{margin:4px 0!important}
  .obs-period-page3 .obs-report-section li span{font-size:8.8px!important}
  .obs-period-page3 .obs-period-visits td,.obs-period-page3 .obs-period-visits th{padding:6px 7px!important;font-size:8.5px!important}
}


/* Canvas charts for reliable PDF rendering */
.obs-canvas-chart,.obs-canvas-radar{display:block;width:100%;height:auto;direction:ltr!important}
.obs-canvas-radar{max-width:360px;margin:0 auto}
@media print{
  .obs-canvas-chart{max-height:180px!important}
  .obs-canvas-radar{max-height:200px!important;max-width:280px!important}
}


/* Detailed observation report */
.obs-detail-export-host{position:fixed;left:-20000px;top:0;width:794px;background:#fff;z-index:-1}
.obs-detailed-report{background:#fff}
.obs-detail-criterion{border:1px solid var(--line);border-radius:14px;margin:10px 0;overflow:hidden;break-inside:auto}
.obs-detail-criterion>header{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;background:#f5f9fc;border-bottom:1px solid var(--line);break-inside:avoid;page-break-inside:avoid}
.obs-detail-criterion>header>div:first-child{display:flex;gap:8px;align-items:center}
.obs-detail-criterion h2{margin:0;font-size:16px}
.obs-detail-criterion-score{min-width:120px;border:1px solid var(--line);border-radius:10px;padding:6px 8px;text-align:center}
.obs-detail-criterion-score strong{display:block;font-size:18px}.obs-detail-criterion-score span{display:block;font-size:9px}
.obs-detail-items{display:grid;gap:6px;padding:8px}
.obs-detail-item{border:1px solid var(--line);border-radius:10px;padding:8px 9px;break-inside:avoid;page-break-inside:avoid}
.obs-detail-item.muted{background:#f7f8f9;color:#7e8c96}
.obs-detail-item-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.obs-detail-item-head b{font-size:11px}.obs-detail-item-head span{font-size:10px;font-weight:800;white-space:nowrap}
.obs-detail-item>small{display:block;margin:2px 0 4px;color:var(--muted);font-size:8px}
.obs-detail-item>p{margin:0;font-size:10px;line-height:1.55}
.obs-detail-note{margin-top:5px;padding-top:5px;border-top:1px dashed #dbe6ed;font-size:9px}
@media print{
  .obs-detailed-report{font-size:10px!important}
  .obs-detail-criterion{margin:7px 0!important}
  .obs-detail-criterion>header{padding:7px 8px!important}
  .obs-detail-criterion h2{font-size:13px!important}
  .obs-detail-items{gap:4px!important;padding:5px!important}
  .obs-detail-item{padding:6px 7px!important}
  .obs-detail-item>p{font-size:9px!important;line-height:1.45!important}
}


/* Larger criterion-average cards and period toolbar */
.obs-period-toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}
.obs-criterion-cards-wrap{margin-top:12px}
.obs-criterion-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.obs-criterion-card{border:1px solid var(--line);border-radius:12px;padding:10px 11px;background:#fff}
.obs-criterion-card-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.obs-criterion-card-title b{font-size:11px;line-height:1.45}.obs-criterion-card-title strong{font-size:20px;line-height:1}
.obs-criterion-card-meta{display:flex;justify-content:space-between;gap:8px;margin:5px 0 7px;font-size:10px;font-weight:700}
.obs-criterion-card-track{height:10px;border-radius:99px;background:#e8eef3;overflow:hidden;position:relative}
.obs-criterion-card-track i{display:block;height:100%;border-radius:99px;background:currentColor;opacity:.8}
.obs-criterion-card-track em{position:absolute;left:75%;top:-2px;bottom:-2px;width:2px;background:#526878;opacity:.6}
@media(max-width:800px){.obs-criterion-cards{grid-template-columns:1fr}}
@media print{
  .obs-criterion-cards{grid-template-columns:repeat(2,1fr)!important;gap:6px!important}
  .obs-criterion-card{padding:7px 8px!important}
  .obs-criterion-card-title b{font-size:9.5px!important}
  .obs-criterion-card-title strong{font-size:16px!important}
  .obs-criterion-card-meta{font-size:8.5px!important;margin:3px 0 5px!important}
}


/* Period detailed report */
.obs-period-detailed-report{background:#fff}
.obs-period-detail-visit{border:1px solid var(--line);border-radius:14px;margin:10px 0;overflow:hidden;break-inside:auto}
.obs-period-detail-visit>header{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;background:#f5f9fc;border-bottom:1px solid var(--line);break-inside:avoid;page-break-inside:avoid}
.obs-period-detail-visit h2{margin:2px 0 0;font-size:15px}
.obs-period-detail-total{min-width:110px;text-align:center;border:1px solid var(--line);border-radius:10px;padding:6px 8px}
.obs-period-detail-total strong{display:block;font-size:18px}.obs-period-detail-total span{font-size:9px}
.obs-period-detail-criteria{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:8px}
.obs-period-detail-criterion{border:1px solid var(--line);border-radius:10px;padding:7px 8px;break-inside:avoid;page-break-inside:avoid}
.obs-period-detail-criterion>div{display:flex;justify-content:space-between;gap:8px}
.obs-period-detail-criterion b{font-size:9.5px;line-height:1.35}.obs-period-detail-criterion strong{display:block;font-size:16px;margin-top:4px}.obs-period-detail-criterion small{font-size:8.5px}
@media(max-width:800px){.obs-period-detail-criteria{grid-template-columns:1fr}}
@media print{
  .obs-period-detail-criteria{grid-template-columns:repeat(2,1fr)!important;gap:4px!important}
  .obs-period-detail-criterion{padding:5px 6px!important}
  .obs-period-detail-criterion b{font-size:8.5px!important}
  .obs-period-detail-criterion strong{font-size:14px!important}
}


/* Observation framework manager */
.obs-fw-toolbar{display:flex;gap:8px;flex-wrap:wrap}
.obs-fw-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:14px;margin-top:14px}
.obs-fw-list{display:flex;flex-direction:column;gap:8px}
.obs-fw-card{border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px;text-align:right;cursor:pointer}
.obs-fw-card b,.obs-fw-card span,.obs-fw-card em{display:block}
.obs-fw-card span{font-size:11px;color:var(--muted);margin-top:3px}
.obs-fw-card em{font-style:normal;font-size:10px;color:#267044;margin-top:6px;font-weight:800}
.obs-fw-card.active{border-color:#2f73b8;box-shadow:0 0 0 2px rgba(47,115,184,.10)}
.obs-fw-detail{min-width:0}
.obs-fw-detail-head{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--line);background:#f8fbfd;border-radius:14px;padding:12px;margin-bottom:10px}
.obs-fw-detail-head h3{margin:0}.obs-fw-detail-head p{margin:4px 0 0;color:var(--muted);font-size:11px}
.obs-fw-detail-head>div:last-child{display:flex;gap:6px;flex-wrap:wrap}
.obs-fw-criterion{border:1px solid var(--line);border-radius:13px;margin-bottom:10px;overflow:hidden;background:#fff}
.obs-fw-criterion>header{display:flex;justify-content:space-between;gap:10px;align-items:center;background:#f7fafc;padding:10px 12px;border-bottom:1px solid var(--line)}
.obs-fw-criterion>header>div:first-child b,.obs-fw-criterion>header>div:first-child span{display:block}
.obs-fw-criterion>header>div:first-child span{font-size:10px;color:var(--muted);margin-top:2px}
.obs-fw-criterion>header>div:last-child{display:flex;gap:5px;flex-wrap:wrap}
.obs-fw-items{padding:7px}
.obs-fw-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:8px;border-bottom:1px solid #edf2f5}
.obs-fw-item:last-child{border-bottom:0}
.obs-fw-item b,.obs-fw-item small{display:block}.obs-fw-item small{color:var(--muted);font-size:9px;margin-top:2px}
.obs-fw-item>span{font-size:9px;color:var(--muted)}
.obs-fw-item>div:last-child{display:flex;gap:5px}
.obs-fw-criterion.disabled,.obs-fw-item.disabled{opacity:.5}
.obs-fw-desc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}
.obs-fw-desc-grid label{border:1px solid var(--line);border-radius:10px;padding:8px;background:#fafcfd}
.obs-fw-desc-grid b{display:block;margin-bottom:4px}
.obs-fw-desc-grid textarea{width:100%;resize:vertical}
.btn.danger{border-color:#e0a4a4;color:#9a3434;background:#fff7f7}
@media(max-width:900px){.obs-fw-layout{grid-template-columns:1fr}.obs-fw-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.obs-fw-desc-grid{grid-template-columns:1fr}.obs-fw-item{grid-template-columns:1fr}}
