:root{
  --bg:#f4f7f7;--surface:#fff;--surface2:#f8faf9;--text:#15211e;--muted:#6f7e79;
  --line:#e3eae7;--brand:#28c96f;--brand2:#0fa99a;--brand-dark:#0d6d53;
  --danger:#d84c5b;--warning:#e49a24;--nav:#0f1917;--nav2:#14231f;
  --shadow:0 18px 60px rgba(21,43,36,.09);--radius:20px;
  --font-ui:"Vazirmatn","Tahoma","Segoe UI",Arial,sans-serif
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:var(--font-ui);color:var(--text);background:var(--bg);font-feature-settings:"ss01" 1,"ss02" 1}
button,input,select,textarea{font-family:var(--font-ui);font:inherit}button{cursor:pointer}
.hidden{display:none!important}.muted{color:var(--muted)}.eyebrow{font-size:.72rem;letter-spacing:.08em;color:var(--brand-dark);font-weight:800;text-transform:uppercase}
.login-page{min-height:100vh;display:grid;place-items:center;padding:28px;background:
radial-gradient(circle at 15% 10%,rgba(40,201,111,.15),transparent 30%),
radial-gradient(circle at 85% 80%,rgba(15,169,154,.13),transparent 27%),#eef4f1}
.login-shell{width:min(1050px,100%);display:grid;grid-template-columns:1.05fr .95fr;background:var(--surface);border:1px solid rgba(255,255,255,.8);border-radius:32px;overflow:hidden;box-shadow:var(--shadow)}
.login-brand{padding:64px;background:linear-gradient(150deg,#0f1917,#163228);color:white;position:relative;overflow:hidden}
.login-brand:after{content:"";position:absolute;width:380px;height:380px;border:1px solid rgba(67,236,131,.16);border-radius:50%;left:-150px;bottom:-180px;box-shadow:0 0 0 55px rgba(67,236,131,.035),0 0 0 110px rgba(67,236,131,.025)}
.login-brand img{width:110px;height:110px;border-radius:28px;box-shadow:0 18px 50px rgba(0,0,0,.28);margin-bottom:28px}
.login-brand .eyebrow{color:#78eba4}.login-brand h1{font-size:3rem;margin:.25rem 0}.login-brand p{font-size:1.1rem;color:#cde2d8;max-width:420px;line-height:1.9}
.feature-pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:32px}.feature-pills span{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);padding:9px 13px;border-radius:999px;font-size:.85rem}
.login-card{padding:64px 54px;display:flex;flex-direction:column;gap:22px;justify-content:center}.login-card h2{font-size:2rem;margin:.35rem 0}.login-card label,.field{display:flex;flex-direction:column;gap:8px;font-weight:700;font-size:.9rem}
input,select,textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:13px;padding:13px 14px;outline:none;transition:.2s;color:var(--text)}
input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(40,201,111,.11)}
textarea{min-height:110px;resize:vertical}
.primary,.secondary,.ghost{border:0;border-radius:12px;padding:10px 15px;font-weight:800}
.primary{background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;box-shadow:0 8px 22px rgba(30,190,115,.22)}
.primary:hover{filter:brightness(.97)}.primary.big{padding:14px}
.secondary{background:#eaf6f0;color:#146a49}.ghost{background:transparent;color:inherit}.danger{color:var(--danger)!important}
.form-error{min-height:20px;color:var(--danger);font-size:.85rem}.login-security{font-size:.78rem;color:var(--muted);text-align:center}

.portal{min-height:100vh;display:grid;grid-template-columns:270px 1fr}
.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,var(--nav),var(--nav2));color:#dcebe4;padding:22px 16px;display:flex;flex-direction:column;z-index:20}
.brand-row{display:flex;align-items:center;gap:12px;padding:5px 8px 26px}.brand-row img{width:50px;height:50px;border-radius:15px}.brand-row div{display:flex;flex-direction:column}.brand-row strong{font-size:1.15rem;color:white}.brand-row span{font-size:.72rem;color:#8db3a3}
.sidebar nav{display:flex;flex-direction:column;gap:6px}.nav-item{border:0;background:transparent;color:#b8d0c5;text-align:right;padding:12px 13px;border-radius:12px;display:flex;align-items:center;gap:10px;font-weight:700}.nav-item:hover{background:rgba(255,255,255,.055);color:#fff}.nav-item.active{background:linear-gradient(90deg,rgba(40,201,111,.18),rgba(15,169,154,.12));color:#fff;border:1px solid rgba(80,221,137,.14)}
.nav-icon{width:24px;text-align:center}.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.08);padding-top:16px}.user-mini{display:flex;align-items:center;gap:10px;padding:8px}.user-mini>div:nth-child(2){display:flex;flex-direction:column}.user-mini span{font-size:.73rem;color:#8db3a3}.avatar{width:38px;height:38px;display:grid;place-items:center;background:linear-gradient(135deg,var(--brand),var(--brand2));border-radius:50%;font-weight:900;color:white}

.main{min-width:0}.topbar{height:91px;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:18px;padding:0 30px;position:sticky;top:0;z-index:10}
.topbar h1{font-size:1.35rem;margin:.25rem 0 0}.top-actions{margin-right:auto;display:flex;align-items:center;gap:9px;color:var(--muted);font-size:.82rem}.status-dot{width:9px;height:9px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 5px rgba(40,201,111,.12)}.icon-btn{display:none;border:0;background:transparent;font-size:1.4rem}
.content{padding:28px;max-width:1500px;margin:auto}.page-head{display:flex;align-items:center;gap:12px;margin-bottom:20px}.page-head .actions{margin-right:auto;display:flex;gap:8px}
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:15px;margin-bottom:22px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:0 4px 16px rgba(30,50,44,.03)}.kpi-top{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:.82rem}.kpi-icon{width:38px;height:38px;border-radius:12px;background:#eaf8f0;display:grid;place-items:center}.kpi strong{display:block;font-size:1.65rem;margin-top:12px}.kpi small{color:var(--muted)}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 4px 16px rgba(30,50,44,.03);overflow:hidden}.panel-head{display:flex;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid var(--line)}.panel-head h3{margin:0}.panel-head .actions{margin-right:auto}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:650px}th,td{text-align:right;padding:13px 16px;border-bottom:1px solid var(--line);font-size:.86rem}th{background:#f9fbfa;color:#64746e;font-size:.78rem}tbody tr:hover{background:#fbfdfc}
.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:.73rem;font-weight:800}.badge.ok{color:#087443;background:#e6f8ee}.badge.warn{color:#9a6500;background:#fff3d6}.badge.danger{color:#a62d3c;background:#fdebed}.badge.info{color:#176d76;background:#e4f5f5}
.empty{padding:38px;text-align:center;color:var(--muted)}.toolbar{display:flex;gap:10px;flex-wrap:wrap}.toolbar input{max-width:320px}
.student-name{font-weight:800}.student-code{font-size:.75rem;color:var(--muted);direction:ltr;display:inline-block}
.link-btn{border:0;background:none;color:var(--brand-dark);font-weight:800;padding:3px 0}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.quick-card{border:1px solid var(--line);background:var(--surface2);border-radius:16px;padding:16px;text-align:right}.quick-card strong{display:block;margin-bottom:6px}.quick-card span{font-size:.8rem;color:var(--muted)}
.modal{border:0;padding:0;background:transparent;width:min(650px,calc(100% - 28px));max-width:650px}.modal::backdrop{background:rgba(11,22,18,.55);backdrop-filter:blur(4px)}.modal-card{background:white;border-radius:22px;padding:26px;box-shadow:var(--shadow);position:relative;max-height:85vh;overflow:auto}.modal-close{position:absolute;left:18px;top:16px;border:0;background:#eef2f0;width:34px;height:34px;border-radius:50%;font-size:1.3rem}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid .full{grid-column:1/-1}.modal-actions{display:flex;gap:9px;margin-top:20px}
.toast{position:fixed;left:24px;bottom:24px;background:#14231f;color:white;padding:13px 18px;border-radius:12px;z-index:100;opacity:0;transform:translateY(15px);pointer-events:none;transition:.25s;box-shadow:var(--shadow)}.toast.show{opacity:1;transform:translateY(0)}.toast.error{background:#8e2835}
.detail-head{display:flex;align-items:center;gap:14px;padding:18px}.detail-avatar{width:52px;height:52px;border-radius:15px;background:linear-gradient(135deg,#dff9e9,#d9f5f2);display:grid;place-items:center;font-size:1.2rem;font-weight:900;color:var(--brand-dark)}.tabs{display:flex;gap:5px;padding:0 18px;border-bottom:1px solid var(--line);overflow:auto}.tab{white-space:nowrap;border:0;background:transparent;padding:12px 10px;font-weight:800;color:var(--muted);border-bottom:2px solid transparent}.tab.active{color:var(--brand-dark);border-color:var(--brand)}
.form-section{padding:20px}.hint{font-size:.78rem;color:var(--muted);line-height:1.8}
.password-warning{background:#fff7dd;border:1px solid #f4d785;color:#775500;padding:12px 15px;border-radius:12px;margin-bottom:18px}
@media(max-width:1100px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:1fr 1fr}.quick-grid{grid-template-columns:1fr 1fr}}
@media(max-width:820px){.login-shell{grid-template-columns:1fr}.login-brand{display:none}.portal{display:block}.sidebar{position:fixed;right:-285px;transition:.25s;width:270px}.sidebar.open{right:0}.main{width:100%}.icon-btn{display:block}.topbar{padding:0 16px}.top-actions>span{display:none}.content{padding:18px}.grid-2,.grid-3{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}}
@media(max-width:520px){.login-card{padding:38px 24px}.kpi-grid,.quick-grid{grid-template-columns:1fr}.top-actions .secondary{font-size:.75rem;padding:8px}.page-head{align-items:flex-start;flex-direction:column}.page-head .actions{margin-right:0;width:100%}.page-head .actions button{flex:1}}

/* v0.2.1 admin operations */
.admin-kpis{grid-template-columns:repeat(4,minmax(160px,1fr))}
.grid-dashboard{display:grid;grid-template-columns:.9fr 1.1fr;gap:18px}
.compact table{min-width:520px}.compact th,.compact td{padding:10px 13px}
.row-actions{display:flex;flex-wrap:wrap;gap:6px}.small{padding:7px 9px;font-size:.76rem}
.assignment-list{display:flex;flex-wrap:wrap;gap:5px}.assignment-chip{background:#eef8f3;color:#176748;border:1px solid #d7eee3;border-radius:999px;padding:5px 8px;font-size:.73rem;display:inline-flex;gap:5px;align-items:center}.assignment-chip button{border:0;background:transparent;color:#a13342;font-weight:900;padding:0}
.credential-box{margin-top:18px;padding:16px;border:1px solid #cce9db;background:#f3fbf7;border-radius:16px;line-height:2}.credential-box code{direction:ltr;display:inline-block;background:white;border:1px solid var(--line);padding:2px 7px;border-radius:7px}.credential-box .big-code{font-size:1.2rem;padding:8px 12px}.invite-link{margin:10px 0}.invite-link input{direction:ltr}
@media(max-width:1100px){.admin-kpis{grid-template-columns:repeat(2,1fr)}.grid-dashboard{grid-template-columns:1fr}}
@media(max-width:520px){.admin-kpis{grid-template-columns:1fr}}

/* v0.2.2 — Counselor Workspace Pro */
.counselor-kpis{grid-template-columns:repeat(4,minmax(155px,1fr))}
.counselor-dashboard{grid-template-columns:1.15fr .85fr}
.counselor-filters select{min-width:160px}
.badge.risk-high{background:#fff0dd;color:#b95e00}
.student-workspace-head{background:linear-gradient(135deg,#fff,#f5fbf8);border:1px solid var(--line);border-radius:22px;padding:18px 20px;display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;margin-bottom:14px;box-shadow:0 5px 18px rgba(30,50,44,.04)}
.back-btn{grid-column:1/-1;justify-self:start}
.student-identity{display:flex;align-items:center;gap:12px}.student-identity h2{margin:0 0 5px}.student-identity p{margin:0;color:var(--muted)}
.workspace-risk{display:flex;flex-direction:column;align-items:flex-start;gap:6px;max-width:360px}.workspace-risk small{color:var(--muted);line-height:1.7}
.workspace-actions{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}
.workspace-tabs{display:flex;gap:5px;overflow:auto;background:white;border:1px solid var(--line);border-radius:15px;padding:6px;margin-bottom:18px;position:sticky;top:103px;z-index:7}
.workspace-tabs button{border:0;background:transparent;padding:10px 14px;border-radius:10px;font-weight:800;color:var(--muted);white-space:nowrap}
.workspace-tabs button.active{background:#eaf8f0;color:var(--brand-dark)}
.workspace-kpis{grid-template-columns:repeat(4,1fr)}
.trend-chart{height:190px;display:flex;align-items:flex-end;gap:9px;padding:14px 5px 0;border-bottom:1px solid var(--line)}
.trend-col{height:100%;flex:1;min-width:22px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px}
.trend-col span{width:72%;max-width:34px;background:linear-gradient(180deg,var(--brand),var(--brand2));border-radius:7px 7px 2px 2px;min-height:4px}
.trend-col small{font-size:.67rem;color:var(--muted);height:20px}
.risk-reasons{display:flex;gap:8px;flex-wrap:wrap}.risk-reasons span{background:#fff3df;color:#8d5b09;padding:8px 11px;border-radius:10px;font-size:.82rem}.risk-reasons .stable{background:#e7f8ee;color:#166f4b}
.mini-person{padding:10px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:4px}.mini-person span{font-size:.78rem;color:var(--muted)}
.timeline-list{padding:18px 22px}.timeline-item{display:grid;grid-template-columns:36px 1fr;gap:12px;position:relative;padding:0 0 24px}
.timeline-item:not(:last-child):before{content:"";position:absolute;right:17px;top:35px;bottom:0;width:1px;background:var(--line)}
.timeline-dot{width:34px;height:34px;border-radius:50%;background:#eef8f3;display:grid;place-items:center;z-index:1}
.timeline-item b{display:block;margin:4px 0}.timeline-item p{margin:4px 0;color:#52635d;line-height:1.8}.timeline-meta{font-size:.72rem;color:var(--muted)}
.session-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.session-card{background:white;border:1px solid var(--line);border-radius:18px;padding:17px;box-shadow:0 3px 12px rgba(30,50,44,.03)}
.session-card-top,.session-footer{display:flex;gap:8px;justify-content:space-between;align-items:center;color:var(--muted);font-size:.76rem}
.session-card h3{margin:12px 0 8px}.session-card p{color:#52635d;line-height:1.9}
.session-field{padding:8px 10px;background:#f7faf8;border-radius:9px;margin:7px 0;font-size:.83rem}
.session-footer{justify-content:flex-start;flex-wrap:wrap;margin-top:12px}
.plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.plan-card{background:white;border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 3px 12px rgba(30,50,44,.03)}
.plan-head{display:flex;justify-content:space-between;gap:15px}.plan-head h3{margin:0 0 4px}.plan-head span{font-size:.75rem;color:var(--muted)}
.progress-ring{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:#e8f8ef;color:#146a49;font-weight:900}
.progress-bar{height:7px;background:#edf2ef;border-radius:999px;overflow:hidden;margin:14px 0}.progress-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--brand),var(--brand2));border-radius:inherit}
.task-list{display:flex;flex-direction:column;gap:6px}.task-row{display:flex;align-items:flex-start;gap:9px;padding:9px;border-radius:10px;background:#fafcfb}
.task-row input{width:auto;margin-top:4px}.task-row span{display:flex;flex-direction:column}.task-row small{color:var(--muted);margin-top:3px}.task-row.done b{text-decoration:line-through;color:#7f8d88}
.task-builder-row{display:grid;grid-template-columns:1fr 130px 90px 36px;gap:7px;margin:7px 0}
.embedded{padding:10px 0;border:0}.check-field{flex-direction:row!important;align-items:center;gap:8px!important}.check-field input{width:auto}
.report-text{min-height:330px;line-height:2}.small-empty{padding:15px}
@media(max-width:1100px){.counselor-kpis{grid-template-columns:repeat(2,1fr)}.counselor-dashboard{grid-template-columns:1fr}.session-grid,.plan-grid{grid-template-columns:1fr}}
@media(max-width:760px){.student-workspace-head{grid-template-columns:1fr}.workspace-risk{max-width:none}.workspace-kpis{grid-template-columns:repeat(2,1fr)}.workspace-tabs{top:92px}.task-builder-row{grid-template-columns:1fr 1fr}.task-builder-row .task-title{grid-column:1/-1}}
@media(max-width:520px){.counselor-kpis,.workspace-kpis{grid-template-columns:1fr}}


/* v0.2.3 — Exam PDF & Report Archive */
.modal.wide{width:min(1250px,calc(100% - 28px));max-width:1250px}.modal.wide .modal-card{max-height:92vh}
.report-notice{padding:14px 18px;margin-bottom:16px;background:#f7fbf9;color:#52635d}
.report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.report-card{background:white;border:1px solid var(--line);border-radius:18px;padding:17px;box-shadow:0 3px 12px rgba(30,50,44,.03)}
.report-card-top{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:.76rem}.report-card h3{margin:11px 0 6px}.report-student{font-weight:800}.report-student span{font-size:.72rem;color:var(--muted);font-weight:600;margin-right:6px}.report-meta{font-size:.75rem;color:var(--muted);margin:8px 0 11px}
.report-summary{display:flex;gap:10px;flex-wrap:wrap;background:#f0faf5;border-radius:10px;padding:9px 11px;margin:8px 0;font-size:.8rem}.report-summary span{color:var(--muted)}
.report-subjects{display:flex;gap:5px;flex-wrap:wrap;min-height:10px}.report-subject-chip{background:#f4f7f5;border:1px solid var(--line);border-radius:999px;padding:5px 8px;font-size:.72rem}
.report-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}
.report-viewer-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.report-viewer-head span{color:var(--muted);font-size:.8rem}.pdf-frame{width:100%;height:70vh;border:1px solid var(--line);border-radius:14px;background:#f3f5f4}
.analysis-head{display:flex;justify-content:space-between;align-items:center;margin:18px 0 8px}.analysis-scroll{overflow:auto;border:1px solid var(--line);border-radius:13px;padding:10px;direction:rtl}.analysis-labels,.analysis-row{display:grid;grid-template-columns:minmax(120px,1.4fr) 55px 55px 70px 65px 65px 65px 90px 85px 85px 36px;gap:6px;min-width:900px;align-items:center}.analysis-labels{font-size:.68rem;color:var(--muted);padding:0 5px 6px}.analysis-row{margin:5px 0}.analysis-row input{min-width:0;padding:8px 7px}
@media(max-width:900px){.report-grid{grid-template-columns:1fr}.pdf-frame{height:65vh}}

/* v0.2.3 HF1 PDF preview fallback */
.pdf-fallback{height:100%;min-height:420px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:30px;color:var(--muted);background:#f7f9f8}.pdf-fallback b{color:var(--text);font-size:1rem}.pdf-fallback p{max-width:620px;line-height:1.9}


/* v0.2.3 HF2 — browser-independent PDF viewer */
.internal-pdf-toolbar{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;background:#f7faf8;border:1px solid var(--line);border-radius:13px;padding:8px 10px;margin-bottom:10px}
.pdf-page-control,.pdf-zoom-control{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:.78rem}
.pdf-page-control input{width:68px;text-align:center;padding:7px}
.pdf-zoom-control span{min-width:48px;text-align:center;font-weight:800;color:#42534d}
.internal-pdf-stage{position:relative;min-height:62vh;max-height:72vh;overflow:auto;background:#dadee0;border:1px solid var(--line);border-radius:14px;padding:18px;text-align:center}
.internal-pdf-image{display:none;max-width:100%;height:auto;margin:0 auto;background:#fff;box-shadow:0 8px 30px rgba(0,0,0,.18)}
.internal-pdf-image.ready{display:block}
.pdf-loading{position:absolute;inset:18px;display:grid;place-content:center;gap:8px;color:#53625d;background:#f4f6f5;border-radius:10px}
.pdf-loading span{font-size:.8rem;color:var(--muted)}
.pdf-viewer-note{text-align:center;color:var(--muted);font-size:.72rem;margin-top:8px}
@media(max-width:760px){.internal-pdf-stage{min-height:55vh;padding:8px}.internal-pdf-toolbar{justify-content:space-between}.pdf-page-control{order:3;width:100%;justify-content:center}}

/* v0.2.4 — Exam Analytics Pro */
.analytics-loading{padding:60px;text-align:center;color:var(--muted)}
.analytics-kpis{grid-template-columns:repeat(4,minmax(150px,1fr))}.analytics-top-grid{margin-top:18px}
.exam-line-chart{width:100%;height:220px;overflow:visible}.exam-line-chart .trend-line{fill:none;stroke:#16a36f;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.exam-line-chart circle{fill:#fff;stroke:#16a36f;stroke-width:3}.exam-line-chart text{font-size:12px;fill:#33453f;font-weight:800}.exam-line-chart .axis-label{font-size:10px;fill:#82908b;font-weight:600}.exam-line-chart .threshold{stroke:#ef8b52;stroke-width:1.5;stroke-dasharray:6 6}.exam-line-chart .threshold-label{font-size:10px;fill:#b66031;font-weight:700}
.strength-list{display:flex;gap:8px;flex-wrap:wrap}.strength-chip{padding:9px 12px;background:#ebf8f1;color:#166c4b;border:1px solid #d3ede0;border-radius:999px;font-size:.8rem;font-weight:800}.analytics-parent-summary{margin:0 18px 18px;padding:12px 14px;background:#f8faf9;border-radius:11px;color:#53645e;line-height:1.9;font-size:.82rem}
.analytics-priority-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px}.analytics-priority-card{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff}.analytics-priority-card>div:first-child{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.analytics-big{font-size:1.75rem;font-weight:950;margin:12px 0 5px}.analytics-meta{font-size:.74rem;color:var(--muted);line-height:1.8}.analytics-priority-card ul,.analytics-recommendations{margin:10px 0 0;padding-right:20px;line-height:2;color:#455750}.analytics-modal-body{max-height:78vh;overflow:auto;padding-left:3px}.subject-analytics-kpis{grid-template-columns:repeat(4,1fr);margin-bottom:14px}
@media(max-width:1000px){.analytics-kpis,.subject-analytics-kpis{grid-template-columns:repeat(2,1fr)}.analytics-priority-grid{grid-template-columns:1fr}}
@media(max-width:600px){.analytics-kpis,.subject-analytics-kpis{grid-template-columns:1fr}.analytics-priority-grid{padding:10px}.exam-line-chart{height:190px}}


/* v0.2.5 — Exam Intake Studio Pro */
.intake-studio-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:12px}.intake-studio-head h2{margin:0 0 4px}.intake-studio-head p{margin:0;color:var(--muted)}.intake-head-status{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.intake-head-status>span:last-child{font-size:.72rem;color:var(--muted)}
.intake-studio{display:grid;grid-template-columns:minmax(360px,.92fr) minmax(600px,1.35fr);gap:14px;min-height:72vh}
.intake-pdf-side,.intake-data-side{min-width:0}.intake-pdf-stage{position:relative;height:62vh;overflow:auto;background:#d9dddf;border:1px solid var(--line);border-radius:13px;padding:12px;text-align:center}.intake-pdf-stage .internal-pdf-image{max-width:100%;height:auto}
.text-layer-box{margin-top:8px;padding:9px 11px;border-radius:10px;display:flex;flex-direction:column;gap:4px;font-size:.75rem}.text-layer-box.has-text{background:#edf9f2;color:#26674f}.text-layer-box.no-text{background:#fff7e9;color:#865c19}.text-layer-box span{font-size:.7rem;line-height:1.6}
.intake-data-side{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;overflow:hidden}.intake-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.intake-summary-grid label{font-size:.72rem;color:var(--muted);font-weight:800}.intake-summary-grid input{margin-top:5px}
.intake-toolbar{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin:12px 0}.intake-toolbar select{width:auto;min-width:185px}.intake-progress{margin:9px 0 10px}.intake-progress>div:first-child{display:flex;justify-content:space-between;align-items:center;font-size:.75rem}.intake-progress .progress-bar{margin:6px 0 0}.intake-table-scroll{overflow:auto;border:1px solid var(--line);border-radius:12px;padding:8px}.intake-labels,.intake-row{display:grid;grid-template-columns:minmax(125px,1.5fr) 50px 50px 65px 60px 60px 60px 76px 72px 72px 90px;gap:5px;align-items:center;min-width:930px}.intake-labels{padding:0 5px 6px;color:var(--muted);font-size:.66rem}.intake-row{margin:5px 0}.intake-row input{min-width:0;padding:8px 6px}.intake-row-tools{display:flex;align-items:center;gap:4px}.intake-row-state{font-size:.63rem;white-space:nowrap}.intake-row-state.ok{color:#16815a}.intake-row-state.warn{color:#bd7715}.intake-row-state.bad{color:#c53d49}.intake-footer{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:10px}
.report-filter-panel{padding:10px 14px;margin-bottom:15px}.report-filter-panel .toolbar{display:flex;gap:8px}.report-filter-panel input{min-width:280px}.report-filter-panel select{min-width:170px}
.mini-dialog{border:0;border-radius:16px;padding:0;width:min(640px,calc(100% - 30px));box-shadow:0 20px 70px rgba(0,0,0,.28)}.mini-dialog::backdrop{background:rgba(20,30,27,.45)}.mini-dialog .modal-card{padding:20px}.mini-dialog textarea{width:100%;margin-top:8px;direction:ltr;text-align:left}
@media(max-width:1200px){.intake-studio{grid-template-columns:1fr}.intake-pdf-stage{height:48vh}.intake-summary-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.intake-summary-grid{grid-template-columns:1fr 1fr}.intake-footer{flex-direction:column;align-items:stretch}.report-filter-panel .toolbar{flex-direction:column}.report-filter-panel input,.report-filter-panel select{min-width:0;width:100%}}


/* v0.2.5 HF1 — Exam Intake Studio UI Polish */
.intake-studio{
  grid-template-columns:minmax(430px, .95fr) minmax(760px, 1.45fr);
  gap:16px;
}
.intake-pdf-side{
  position:sticky;
  top:8px;
  align-self:start;
}
.intake-pdf-stage{
  height:68vh;
  min-height:560px;
}
.intake-data-side{
  padding:14px;
}
.intake-summary-grid{
  grid-template-columns:repeat(4,minmax(130px,1fr));
  gap:10px;
}
.intake-summary-grid input{
  height:42px;
}
.intake-toolbar{
  position:sticky;
  top:0;
  z-index:3;
  background:#fff;
  padding:8px 0 10px;
  margin:8px 0;
  border-bottom:1px solid var(--line);
}
.intake-table-scroll{
  max-height:58vh;
  overflow:auto;
  background:#fff;
}
.intake-labels{
  position:sticky;
  top:0;
  z-index:2;
  background:#f8faf9;
  border-radius:8px;
  padding-top:7px;
}
.intake-labels,.intake-row{
  grid-template-columns:
    minmax(150px,1.7fr)
    58px
    58px
    72px
    68px
    68px
    68px
    82px
    82px
    82px
    105px;
  min-width:1010px;
}
.intake-row{
  padding:4px 3px;
  border-radius:10px;
}
.intake-row:nth-child(even){
  background:#fbfcfb;
}
.intake-row:focus-within{
  background:#f1faf6;
  outline:1px solid #d8eee3;
}
.intake-row input{
  height:40px;
  font-size:.78rem;
}
.intake-row .i-subject{
  font-weight:800;
}
.intake-row-state{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:46px;
  min-height:24px;
  padding:3px 6px;
  border-radius:999px;
  background:#f3f6f4;
}
.intake-row-state.ok{
  background:#e9f8ef;
}
.intake-row-state.warn{
  background:#fff4df;
}
.intake-row-state.bad{
  background:#fdebed;
}
.intake-footer{
  position:sticky;
  bottom:0;
  z-index:4;
  background:#fff;
  border-top:1px solid var(--line);
  padding-top:10px;
}
.intake-footer .primary{
  min-width:180px;
}
.intake-progress{
  background:#fafcfb;
  border:1px solid var(--line);
  border-radius:10px;
  padding:8px 10px;
}
.intake-progress .progress-bar{
  height:8px;
}
.intake-studio-head{
  position:sticky;
  top:0;
  z-index:5;
  background:#fff;
  padding:2px 0 8px;
}
.text-layer-box{
  border:1px solid transparent;
}
.text-layer-box.no-text{
  border-color:#f5e3be;
}
.report-meta .badge{
  margin-right:5px;
}
@media(max-width:1450px){
  .intake-studio{
    grid-template-columns:minmax(390px,.9fr) minmax(650px,1.3fr);
  }
}
@media(max-width:1180px){
  .intake-studio{
    grid-template-columns:1fr;
  }
  .intake-pdf-side{
    position:static;
  }
  .intake-pdf-stage{
    height:52vh;
    min-height:420px;
  }
  .intake-table-scroll{
    max-height:none;
  }
}


/* ============================================================
   v0.2.5 HF2 — Compact Exam Entry
   Removes horizontal table scrolling and turns each subject
   into a compact responsive card.
   ============================================================ */

.intake-cards-scroll{
  overflow-y:auto !important;
  overflow-x:hidden !important;
  max-height:57vh;
  padding:10px;
  background:#f7faf8;
}

.intake-subject-cards{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.intake-labels{
  display:none !important;
}

.intake-row.intake-subject-card{
  display:block;
  min-width:0 !important;
  width:100%;
  padding:12px;
  margin:0;
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

.intake-row.intake-subject-card:nth-child(even){
  background:#fff;
}

.intake-row.intake-subject-card:focus-within{
  background:#fff;
  border-color:#bfe4d2;
  outline:0;
  box-shadow:0 0 0 3px rgba(22,163,111,.08);
}

.intake-card-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  padding-bottom:10px;
  margin-bottom:10px;
  border-bottom:1px solid #edf1ef;
}

.intake-subject-name{
  flex:1;
  min-width:180px;
}

.intake-subject-name>span,
.intake-card-field>span,
.intake-group-title,
.intake-field-group label>span{
  display:block;
  color:var(--muted);
  font-size:.68rem;
  font-weight:800;
  margin-bottom:5px;
}

.intake-subject-name .i-subject{
  width:100%;
  height:42px;
  font-size:.9rem;
  font-weight:900;
  background:#f9fbfa;
}

.intake-card-head-actions{
  display:flex;
  align-items:center;
  gap:7px;
  padding-bottom:3px;
}

.intake-card-grid{
  display:grid;
  grid-template-columns:
    minmax(155px,1.25fr)
    minmax(76px,.55fr)
    minmax(215px,1.6fr)
    minmax(105px,.8fr)
    minmax(90px,.7fr)
    minmax(90px,.7fr);
  gap:9px;
  align-items:end;
}

.intake-card-field,
.intake-field-group{
  min-width:0;
}

.intake-card-field input{
  width:100%;
  height:40px;
  padding:8px 9px;
}

.intake-field-group{
  display:grid;
  gap:6px;
  padding:8px;
  border:1px solid #edf1ef;
  border-radius:11px;
  background:#fbfcfb;
}

.intake-field-group.question-range{
  grid-template-columns:1fr 1fr;
}

.intake-field-group.answer-counts{
  grid-template-columns:repeat(3,1fr);
}

.intake-field-group .intake-group-title{
  grid-column:1/-1;
  margin:0;
}

.intake-field-group label{
  min-width:0;
}

.intake-field-group input{
  width:100%;
  height:37px;
  padding:7px;
  text-align:center;
}

.intake-input-suffix{
  position:relative;
}

.intake-input-suffix input{
  padding-left:28px;
}

.intake-input-suffix b{
  position:absolute;
  left:9px;
  top:50%;
  transform:translateY(-50%);
  font-size:.75rem;
  color:var(--muted);
}

.intake-highlight-field input{
  background:#f0faf5;
  border-color:#d9eee3;
  font-weight:900;
}

.intake-row-state{
  min-width:auto;
  max-width:125px;
  padding:4px 8px;
  line-height:1.35;
  text-align:center;
}

.intake-row-state.ok:empty::after{
  content:"✓";
}

/* We no longer need any wide-table minimum width. */
.intake-labels,
.intake-row{
  min-width:0 !important;
}

.intake-table-scroll{
  overflow-x:hidden !important;
}

/* Let the form end at its content instead of visually stretching. */
.intake-data-side{
  align-self:start;
}

.intake-footer{
  margin-top:10px;
}

/* Laptop */
@media(max-width:1450px){
  .intake-card-grid{
    grid-template-columns:
      minmax(145px,1.15fr)
      minmax(70px,.5fr)
      minmax(200px,1.5fr)
      minmax(100px,.8fr)
      minmax(86px,.7fr)
      minmax(86px,.7fr);
  }
}

/* When split view becomes one column */
@media(max-width:1180px){
  .intake-cards-scroll{
    max-height:none;
  }
}

/* Tablet */
@media(max-width:850px){
  .intake-card-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .intake-field-group.answer-counts,
  .intake-field-group.question-range{
    grid-column:span 2;
  }
}

/* Mobile */
@media(max-width:560px){
  .intake-row.intake-subject-card{
    padding:10px;
  }
  .intake-card-head{
    align-items:center;
  }
  .intake-card-grid{
    grid-template-columns:1fr;
  }
  .intake-field-group.answer-counts,
  .intake-field-group.question-range{
    grid-column:auto;
  }
  .intake-field-group.answer-counts{
    grid-template-columns:repeat(3,1fr);
  }
  .intake-footer{
    position:static;
  }
}


/* ============================================================
   v0.2.5 HF3 — Final Intake Layout
   ============================================================ */

.intake-studio{
  min-height:0 !important;
  align-items:start !important;
  grid-template-columns:minmax(390px,.92fr) minmax(690px,1.38fr) !important;
}

.intake-data-side{
  height:auto !important;
  min-height:0 !important;
  overflow:visible !important;
  align-self:start !important;
}

/* ---------- Final two-row subject card ---------- */
.intake-final-grid{
  display:grid !important;
  grid-template-columns:minmax(180px,1.4fr) minmax(95px,.65fr) minmax(125px,.85fr) !important;
  grid-template-areas:
    "range coef percent"
    "answers scale rank" !important;
  gap:10px 12px !important;
  min-width:0 !important;
  width:100% !important;
}

.intake-area-range{grid-area:range}
.intake-area-coef{grid-area:coef}
.intake-area-percent{grid-area:percent}
.intake-area-answers{grid-area:answers}
.intake-area-scale{grid-area:scale}
.intake-area-rank{grid-area:rank}

.intake-subject-card{
  overflow:hidden;
}

.intake-card-head{
  align-items:center !important;
}

.intake-card-head-actions{
  flex-shrink:0;
  align-items:center;
}

.intake-remove{
  min-width:76px;
  white-space:nowrap;
}

.intake-row-state{
  position:static !important;
  max-width:170px !important;
  min-height:28px !important;
  font-weight:800;
}

.intake-row-state.ok{
  color:#166c4b;
  background:#eaf8f0;
}
.intake-row-state.ok::before{
  content:"✓ ";
}

.intake-row-state.warn{
  color:#9a6517;
  background:#fff4df;
}
.intake-row-state.warn::before{
  content:"⚠ ";
}

.intake-row-state.bad{
  color:#b6323f;
  background:#fdebed;
}
.intake-row-state.bad::before{
  content:"✕ ";
}

/* The JS already writes ✓ for valid state; avoid duplicate glyph. */
.intake-row-state.ok{
  font-size:0;
}
.intake-row-state.ok::before{
  content:"✓ اطلاعات معتبر";
  font-size:.68rem;
}

.intake-field-group.answer-counts{
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
}

.intake-field-group.question-range{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}

.intake-card-field input,
.intake-field-group input{
  min-width:0 !important;
  width:100% !important;
  box-sizing:border-box;
}

/* ---------- PDF final viewer ---------- */
.pdf-fit-control{
  display:flex;
  align-items:center;
  gap:5px;
  margin-inline-start:4px;
}

.pdf-fit-control button.active{
  box-shadow:0 0 0 2px rgba(22,163,111,.08);
}

.intake-pdf-stage{
  height:auto !important;
  min-height:340px !important;
  max-height:72vh !important;
  overflow:auto !important;
  padding:12px !important;
  display:flex;
  justify-content:center;
  align-items:flex-start;
}

.intake-pdf-stage.has-page{
  min-height:0 !important;
}

.intake-pdf-stage.fit-width .internal-pdf-image.ready{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  height:auto !important;
  max-height:none !important;
  object-fit:contain;
}

.intake-pdf-stage.fit-page{
  height:min(68vh,720px) !important;
  min-height:420px !important;
  align-items:center;
}

.intake-pdf-stage.fit-page .internal-pdf-image.ready{
  display:block !important;
  width:auto !important;
  max-width:100% !important;
  height:auto !important;
  max-height:calc(68vh - 30px) !important;
  object-fit:contain;
}

.intake-pdf-stage.manual-view .internal-pdf-image.ready{
  display:block !important;
  width:auto !important;
  max-width:none !important;
  height:auto !important;
}

.intake-pdf-stage.has-page .pdf-loading{
  display:none !important;
}

/* Avoid a huge blank area under the entry form. */
.intake-cards-scroll{
  max-height:52vh !important;
}

.intake-footer{
  position:sticky;
  bottom:0;
}

/* Laptop */
@media(max-width:1450px){
  .intake-studio{
    grid-template-columns:minmax(360px,.9fr) minmax(620px,1.3fr) !important;
  }
  .intake-final-grid{
    grid-template-columns:minmax(160px,1.25fr) minmax(88px,.65fr) minmax(115px,.85fr) !important;
  }
}

/* Single-column mode */
@media(max-width:1180px){
  .intake-studio{
    grid-template-columns:1fr !important;
  }
  .intake-final-grid{
    grid-template-columns:minmax(180px,1.35fr) minmax(100px,.7fr) minmax(130px,.9fr) !important;
  }
  .intake-pdf-stage.fit-page{
    height:min(62vh,650px) !important;
  }
}

/* Tablet */
@media(max-width:760px){
  .intake-final-grid{
    grid-template-columns:1fr 1fr !important;
    grid-template-areas:
      "range range"
      "coef percent"
      "answers answers"
      "scale rank" !important;
  }

  .pdf-fit-control{
    width:100%;
    justify-content:center;
  }
}

/* Mobile */
@media(max-width:520px){
  .intake-card-head{
    align-items:flex-start !important;
    flex-direction:column;
  }

  .intake-card-head-actions{
    width:100%;
    justify-content:space-between;
  }

  .intake-final-grid{
    grid-template-columns:1fr !important;
    grid-template-areas:
      "range"
      "coef"
      "percent"
      "answers"
      "scale"
      "rank" !important;
  }

  .intake-pdf-stage.fit-page{
    min-height:320px !important;
    height:55vh !important;
  }
}


/* ============================================================
   v0.2.6 — Exam Center
   ============================================================ */
.exam-center-overview,.exam-center-detail-kpis{grid-template-columns:repeat(4,minmax(150px,1fr))}
.center-filter-panel{padding:10px 14px;margin-bottom:15px}.center-filter-panel .toolbar{display:flex;gap:8px}.center-filter-panel input{min-width:310px}.center-filter-panel select{min-width:150px}
.exam-center-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.exam-center-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:17px;cursor:pointer;transition:.16s ease;box-shadow:0 3px 14px rgba(20,50,40,.035)}
.exam-center-card:hover{transform:translateY(-2px);border-color:#cde7da;box-shadow:0 8px 26px rgba(20,80,60,.08)}
.exam-center-card-head{display:flex;justify-content:space-between;align-items:center}.exam-center-card-head>div{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:.75rem}.exam-center-arrow{font-size:1.25rem;color:#779087}.exam-center-card h3{margin:12px 0 5px}.exam-center-class{color:var(--muted);font-size:.8rem}
.exam-center-card-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:14px 0}.exam-center-card-kpis span{padding:8px;background:#f7faf8;border-radius:9px;font-size:.69rem;color:var(--muted);text-align:center}.exam-center-card-kpis b{display:block;font-size:1rem;color:#213a31;margin-bottom:2px}
.center-progress>div:first-child{display:flex;justify-content:space-between;font-size:.68rem;color:var(--muted);margin-bottom:5px}
.center-detail-grid{margin-top:18px}.center-progress-large{padding:18px}.center-progress-large>div:nth-of-type(odd){display:flex;justify-content:space-between;margin:10px 0 5px}.center-progress-large .progress-bar{height:10px;margin-bottom:18px}
.center-member-filters{display:flex;gap:7px}.center-member-filters input{min-width:220px}.center-member-filters select{min-width:130px}.row-actions{display:flex;gap:5px;flex-wrap:wrap}
.center-subject-actions{display:flex;gap:7px;margin:10px 0}.center-subject-row{display:grid;grid-template-columns:minmax(160px,1fr) 70px 70px 85px 38px;gap:7px;margin:7px 0;align-items:center}.center-subject-row input{min-width:0}
.batch-drop-zone{display:grid;place-items:center;text-align:center;border:2px dashed #cfe2d9;background:#f7fbf9;border-radius:16px;padding:28px;cursor:pointer;margin-bottom:14px}.batch-drop-zone input{display:none}.batch-drop-zone b{font-size:1rem}.batch-drop-zone span{color:var(--muted);font-size:.75rem;margin-top:5px}
#center-file-map{display:flex;flex-direction:column;gap:7px;max-height:48vh;overflow:auto}.center-upload-map-row{display:grid;grid-template-columns:minmax(190px,1fr) minmax(240px,1fr) minmax(100px,.7fr);gap:8px;align-items:center;padding:9px 10px;border:1px solid var(--line);border-radius:11px}.center-file-name{direction:ltr;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.76rem}.center-upload-result{font-size:.72rem;color:var(--muted)}
.center-batch-summary{margin:10px 0;padding:9px;background:#f8faf9;border-radius:9px;color:var(--muted);font-size:.78rem}.existing-report-list{display:flex;flex-direction:column;gap:8px}.existing-report-option{border:1px solid var(--line);background:#fff;border-radius:11px;padding:12px;text-align:right;cursor:pointer}.existing-report-option:hover{background:#f2faf6}.existing-report-option b,.existing-report-option span{display:block}.existing-report-option span{color:var(--muted);font-size:.73rem;margin-top:4px}
.back-link{border:0;background:transparent;color:#22825e;padding:0;margin-bottom:5px;cursor:pointer}
@media(max-width:1000px){.exam-center-grid{grid-template-columns:1fr}.exam-center-overview,.exam-center-detail-kpis{grid-template-columns:repeat(2,1fr)}.exam-center-card-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.exam-center-overview,.exam-center-detail-kpis{grid-template-columns:1fr 1fr}.center-member-filters,.center-filter-panel .toolbar{flex-direction:column}.center-member-filters input,.center-member-filters select,.center-filter-panel input,.center-filter-panel select{min-width:0;width:100%}.center-subject-row{grid-template-columns:1fr 1fr}.center-subject-row .cs-title{grid-column:1/-1}.center-upload-map-row{grid-template-columns:1fr}.center-file-name{white-space:normal}}


/* ============================================================
   v0.3.0 — Counselor Command Center & Case Management
   ============================================================ */
.command-hero{display:flex;justify-content:space-between;gap:20px;align-items:center;background:linear-gradient(135deg,#f2fbf7,#fff);border:1px solid #dceee5;border-radius:20px;padding:20px 22px;margin-bottom:16px}.command-eyebrow{font-size:.66rem;font-weight:900;letter-spacing:.11em;color:#2d8a67}.command-hero h2{margin:4px 0}.command-hero p{margin:0;color:var(--muted)}.command-actions{display:flex;gap:7px;flex-wrap:wrap}
.command-kpis{grid-template-columns:repeat(4,minmax(150px,1fr))}.command-today{margin-top:18px}.command-grid{margin-top:18px}.command-family-list{padding:12px 16px}.command-family-item{display:flex;justify-content:space-between;gap:15px;padding:11px 0;border-bottom:1px solid var(--line)}.command-family-item:last-child{border-bottom:0}.command-family-item div{display:flex;flex-direction:column}.command-family-item span{font-size:.68rem;color:var(--muted);margin-top:3px}.command-family-item p{margin:0;color:#50625b;font-size:.78rem}
.case-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.case-mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:14px}.case-card{border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px;cursor:pointer;transition:.15s ease;min-width:0}.case-card:hover{border-color:#c5e5d6;box-shadow:0 7px 20px rgba(25,80,60,.07);transform:translateY(-1px)}.case-card.overdue{border-inline-start:4px solid #d75b66}.case-card-top{display:flex;justify-content:space-between;align-items:center;gap:7px;font-size:.7rem;color:var(--muted)}.case-card h3{margin:10px 0 4px;font-size:.95rem}.case-student{font-size:.75rem;font-weight:800;color:#2e7560}.case-card p{font-size:.76rem;color:#65756f;line-height:1.75;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.case-card-footer{display:flex;justify-content:space-between;color:var(--muted);font-size:.68rem;margin-top:10px}
.case-filter-panel,.family-filter-panel{padding:10px 14px;margin-bottom:15px}.case-filter-panel .toolbar,.family-filter-panel .toolbar{display:flex;gap:8px}.case-filter-panel input,.family-filter-panel input{min-width:280px}
.case-detail-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.case-detail-head h2{margin:0 0 4px}.case-detail-head p{margin:0;color:var(--muted)}.case-detail-meta{display:flex;gap:12px;color:var(--muted);font-size:.75rem;margin:12px 0}.case-detail-section{background:#f8faf9;border-radius:11px;padding:11px 13px;margin:8px 0}.case-detail-section p{white-space:pre-wrap;line-height:1.9;margin:5px 0 0}.case-state-actions{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}.case-action-panel{margin-top:12px}.case-action-timeline{margin-top:14px;display:flex;flex-direction:column;gap:8px}.case-action-item{padding:11px 13px;border:1px solid var(--line);border-radius:12px}.case-action-item>div{display:flex;justify-content:space-between}.case-action-item time,.case-action-item small{font-size:.68rem;color:var(--muted)}.case-action-item p{white-space:pre-wrap;margin:7px 0}.case-action-item small{display:block;margin-top:3px}
.family-contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.family-contact-card{border:1px solid var(--line);border-radius:15px;padding:14px;background:#fff}.family-contact-top{display:flex;justify-content:space-between;color:var(--muted);font-size:.72rem}.family-contact-card h3{margin:10px 0 3px}.family-contact-person{font-size:.73rem;font-weight:800;color:#2d7b5e}.family-contact-card p{white-space:pre-wrap;color:#586963;line-height:1.8}.family-outcome,.family-next{background:#f6faf8;border-radius:9px;padding:8px 10px;margin-top:7px;font-size:.74rem}.family-next{background:#fff8e9;color:#805f26}
.goal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.goal-card{border:1px solid var(--line);border-radius:15px;padding:14px;background:#fff}.goal-card-top{display:flex;justify-content:space-between;font-size:.72rem;color:var(--muted)}.goal-card h3{margin:10px 0}.goal-values{display:grid;grid-template-columns:1fr 1fr;gap:7px}.goal-values span{background:#f8faf9;border-radius:9px;padding:8px;font-size:.7rem;color:var(--muted)}.goal-values b{display:block;color:#243b33;margin-top:3px;font-size:.95rem}.goal-card .progress-bar{margin:10px 0 5px}.goal-card small{color:var(--muted)}.goal-footer{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:10px;font-size:.7rem;color:var(--muted)}.goal-footer>div{display:flex;gap:4px}.goal-mini-list{padding:12px 16px}.goal-mini{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.goal-mini:last-child{border-bottom:0}.goal-mini div{display:flex;flex-direction:column}.goal-mini span{font-size:.72rem;color:var(--muted);margin-top:2px}.goal-mini strong{font-size:.75rem;color:#648078}
@media(max-width:1200px){.command-kpis{grid-template-columns:repeat(2,1fr)}.case-grid{grid-template-columns:repeat(2,1fr)}.goal-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.command-hero{flex-direction:column;align-items:flex-start}.case-grid,.case-mini-grid,.family-contact-grid,.goal-grid{grid-template-columns:1fr}.case-filter-panel .toolbar,.family-filter-panel .toolbar{flex-direction:column}.case-filter-panel input,.family-filter-panel input{min-width:0;width:100%}.goal-footer{align-items:flex-start;flex-direction:column}}


/* ============================================================
   v0.3.1 — Smart Workflow + Omnichannel Messaging
   ============================================================ */
.smart-command-panel{margin-top:18px}.smart-summary{display:flex;gap:7px}.smart-summary span{background:#f6faf8;border-radius:999px;padding:6px 9px;font-size:.7rem;color:#637a70}.smart-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:14px}.smart-suggestion{border:1px solid var(--line);border-inline-start:4px solid #c8d9d1;border-radius:14px;padding:13px;background:#fff}.smart-critical{border-inline-start-color:#c93e4b}.smart-high{border-inline-start-color:#df7c2f}.smart-medium{border-inline-start-color:#d6aa35}.smart-low{border-inline-start-color:#55a988}.smart-head{display:flex;justify-content:space-between;align-items:center}.smart-head>div{display:flex;gap:7px;align-items:center}.smart-head strong{font-size:.75rem;color:#769087}.smart-severity{font-size:.65rem;border-radius:999px;background:#f4f7f5;padding:3px 7px;color:#657b72}.smart-suggestion h3{font-size:.88rem;margin:10px 0 5px}.smart-suggestion p{font-size:.72rem;color:var(--muted);line-height:1.7;min-height:38px}.smart-reasons{display:flex;flex-direction:column;gap:3px;border-top:1px solid #edf1ef;padding-top:8px}.smart-reasons span{font-size:.68rem;color:#65756f}.smart-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}
.channel-kpis{grid-template-columns:repeat(4,minmax(140px,1fr))}.channel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:18px}.channel-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:16px}.channel-card.enabled{border-color:#cfe8dc}.channel-card.disabled{opacity:.82}.channel-card-top{display:flex;justify-content:space-between;align-items:center}.channel-card h3{margin:0}.channel-code{font-family:monospace;color:#789085;font-size:.72rem;margin-top:4px}.channel-capabilities{display:flex;flex-wrap:wrap;gap:5px;margin:12px 0}.channel-capabilities span{background:#f6faf8;border-radius:999px;padding:4px 7px;font-size:.65rem}.channel-identity,.channel-empty{border-radius:11px;padding:10px;background:#f6faf8;display:flex;gap:8px;align-items:center}.channel-identity b{font-size:.73rem}.channel-identity span{font-size:.75rem}.channel-identity small{margin-inline-start:auto;color:#378160}.channel-empty{font-size:.72rem;color:var(--muted)}.channel-architecture{margin-top:18px}.channel-flow{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:18px}.channel-flow span{background:#f2faf6;border:1px solid #d8eee3;border-radius:10px;padding:10px 13px;font-weight:800;font-size:.75rem}.channel-flow b{color:#7a9188}.channel-architecture p{padding:0 18px 18px;color:var(--muted);font-size:.75rem}
@media(max-width:1150px){.smart-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.smart-grid,.channel-grid{grid-template-columns:1fr}.channel-kpis{grid-template-columns:repeat(2,1fr)}}


/* ============================================================
   v0.3.2 — Recovery + Notification Center
   ============================================================ */
.login-recovery-link{border:0;background:transparent;color:#238760;font-weight:800;cursor:pointer;padding:4px 0;align-self:flex-start}.login-recovery-link:hover{text-decoration:underline}.notification-button{position:relative;border:1px solid var(--line);background:#fff;border-radius:10px;min-width:38px;height:36px;cursor:pointer}.notification-count{position:absolute;inset-inline-start:-6px;top:-7px;background:#d84d59;color:#fff;border-radius:999px;min-width:19px;height:19px;display:grid;place-items:center;font-size:.6rem;font-weight:900;padding:0 4px}.notification-center-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.notification-center-head h2{margin:0}.notification-list{display:flex;flex-direction:column;gap:8px;max-height:65vh;overflow:auto;margin-top:14px}.notification-item{border:1px solid var(--line);border-radius:13px;padding:12px 13px}.notification-item.unread{background:#f5fbf8;border-color:#cfe9dc}.notification-item.read{opacity:.76}.notification-item-top{display:flex;justify-content:space-between;gap:10px}.notification-item-top>div{display:flex;gap:7px;align-items:center}.notification-item-top time{font-size:.67rem;color:var(--muted)}.notification-item p{white-space:pre-wrap;line-height:1.75;color:#52675e;font-size:.77rem}.recovery-info{display:flex;flex-direction:column;gap:8px;margin:14px 0}.recovery-info>span{font-size:.72rem;color:var(--muted)}.recovery-info code{font-size:1.2rem;letter-spacing:.12em;direction:ltr;display:inline-block}.automation-status{display:inline-flex;gap:6px;align-items:center}


/* ============================================================
   v0.3.3 — Omnichannel Inbox & Companion Hub
   ============================================================ */
.inbox-command-panel{margin-top:18px}.inbox-mini-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:14px}.inbox-mini-item{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;text-align:right;border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px;cursor:pointer}.inbox-mini-item:hover{background:#f7fbf9}.inbox-mini-item div{display:flex;flex-direction:column}.inbox-mini-item span{font-size:.65rem;color:var(--muted)}.inbox-mini-item p{grid-column:1/-1;margin:0;font-size:.72rem;color:#5f6f69}.inbox-filter-panel{padding:10px 14px;margin-bottom:15px}.inbox-filter-panel .toolbar{display:flex;gap:8px}.inbox-filter-panel input{min-width:300px}.inbox-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.inbox-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px}.inbox-card.is-new{border-inline-start:4px solid #26a876;box-shadow:0 5px 20px rgba(30,120,85,.06)}.inbox-card-head{display:flex;justify-content:space-between;align-items:center}.inbox-card h3{margin:10px 0 5px}.inbox-student{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:.72rem}.inbox-card>p{white-space:pre-wrap;line-height:1.75;color:#5f6e68;font-size:.76rem}.inbox-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:.67rem;border-top:1px solid #edf1ef;padding-top:8px}.inbox-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}.inbox-detail-head{display:flex;justify-content:space-between;gap:12px}.inbox-detail-head h2{margin:0}.inbox-detail-head p{color:var(--muted);margin:4px 0}.inbox-message-box,.inbox-resolution{background:#f7faf8;border-radius:11px;padding:12px;margin:12px 0}.inbox-message-box p,.inbox-resolution p{white-space:pre-wrap;line-height:1.9}.inbox-resolution{background:#eefaf4}.inbox-detail-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:.72rem}
@media(max-width:900px){.inbox-grid,.inbox-mini-list{grid-template-columns:1fr}.inbox-filter-panel .toolbar{flex-direction:column}.inbox-filter-panel input{min-width:0;width:100%}}


/* ============================================================
   v0.3.4 — Student Pulse, Appointment Hub & Teacher Signals
   ============================================================ */
.coordination-kpis,.coordination-mini{grid-template-columns:repeat(4,minmax(130px,1fr))}.coordination-command-panel{margin-top:18px}.coordination-mini{display:grid;gap:10px;padding:14px}.coordination-grid{margin-top:18px}.pulse-grid,.appointment-list{display:flex;flex-direction:column;gap:9px;padding:13px}.pulse-card,.appointment-card,.teacher-signal-card{border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px}.pulse-card.attention{border-inline-start:4px solid #dc7a36;background:#fffaf5}.pulse-card>div:first-child,.appointment-top,.signal-top{display:flex;justify-content:space-between;gap:12px}.pulse-card>div:first-child span,.appointment-top span,.signal-top span{font-size:.68rem;color:var(--muted)}.pulse-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:9px 0}.pulse-metrics span{background:#f7faf8;border-radius:9px;padding:7px;font-size:.66rem;color:var(--muted)}.pulse-metrics b{display:block;color:#283f37;margin-top:2px}.pulse-card p,.appointment-card p,.teacher-signal-card p{font-size:.73rem;color:#586963;line-height:1.7}.appointment-card h3,.teacher-signal-card h3{font-size:.9rem;margin:9px 0 4px}.teacher-signal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:14px}.teacher-signal-card{border-inline-start:4px solid #8aa79b}.teacher-signal-card.severity-high{border-inline-start-color:#df7c2f}.teacher-signal-card.severity-urgent{border-inline-start-color:#c93e4b}.teacher-signal-card.severity-low{border-inline-start-color:#7bb69e}.teacher-signal-card .actions,.appointment-card .actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:9px}@media(max-width:1100px){.teacher-signal-grid{grid-template-columns:repeat(2,1fr)}.coordination-kpis,.coordination-mini{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.teacher-signal-grid{grid-template-columns:1fr}.pulse-metrics{grid-template-columns:1fr}.coordination-kpis,.coordination-mini{grid-template-columns:1fr 1fr}}

/* v0.3.4 HF1 — independent sidebar navigation scroll */
.portal{min-height:100dvh}
.sidebar{height:100vh;height:100dvh;min-height:0;overflow:hidden}
.sidebar .brand-row,.sidebar .sidebar-footer{flex:0 0 auto}
.sidebar #nav{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;padding-bottom:10px}
.sidebar #nav::-webkit-scrollbar{width:7px}
.sidebar #nav::-webkit-scrollbar-track{background:transparent}
.sidebar #nav::-webkit-scrollbar-thumb{background:rgba(184,208,197,.30);border-radius:999px}
.sidebar #nav:hover::-webkit-scrollbar-thumb{background:rgba(184,208,197,.48)}
@media(max-width:820px){.sidebar{height:100vh;height:100dvh;max-height:100dvh}}


/* ============================================================
   Persian typography system — portal-wide
   ============================================================ */
body,button,input,select,textarea,table,dialog,
h1,h2,h3,h4,h5,h6,p,span,label,a,strong,small,
.sidebar,.topbar,.content,.panel,.modal-card,.toast{
  font-family:var(--font-ui)!important;
}
code,pre,kbd,samp,.channel-code{font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace!important}
html[dir="rtl"] body{font-kerning:normal;text-rendering:optimizeLegibility}
.tenant-scope-note{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:190px;text-align:center}
.tenant-scope-note strong{font-size:1.05rem;color:var(--text)}
.tenant-scope-note span{max-width:760px;line-height:2;color:var(--muted)}
.tenant-scope-note .actions{justify-content:center;margin-top:4px}
