
/* Naesin Map 3.0 · subject analytics / school data chart UI */
.rv-section{overflow:hidden}
.rv-warning{display:flex;align-items:flex-start;gap:12px;padding:16px 18px;border-radius:13px;background:#f2f6ff;border:1px solid #dce6ff;margin-bottom:19px}
.rv-warning-icon{flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#3458e8;color:white;font-weight:950;font-size:13px}
.rv-warning strong{display:block;font-size:13px;font-weight:900;color:#1b3b89}
.rv-warning p{font-size:12px;font-weight:710;line-height:1.7;color:#536c98;margin:4px 0 0}
.rv-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:13px;margin-bottom:17px}
.rv-mode,.rv-subjects{display:flex;gap:6px;flex-wrap:wrap}
.rv-mode{border-radius:12px;background:#eef2fb;padding:5px}
.rv-mode button{border:0;border-radius:8px;padding:10px 12px;background:transparent;color:#647593;font-size:12px;font-weight:850;cursor:pointer}
.rv-mode button.active{background:white;box-shadow:0 3px 11px #243e7e16;color:#2d52d8}
.rv-subject-area{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.rv-subject-area>span{font-size:11px;font-weight:840;color:#6b7c96}
.rv-subjects button{background:#fff;border:1px solid #dee6f6;color:#667895;padding:8px 11px;border-radius:8px;font-size:12px;font-weight:850;cursor:pointer}
.rv-subjects button.active{color:white;background:#3458e8;border-color:#3458e8}
.rv-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}
.rv-kpis>div{padding:16px;border:1px solid #e5eaf6;background:linear-gradient(135deg,#fff,#f8faff);border-radius:14px;min-width:0}
.rv-kpi-icon{display:inline-block;font-weight:950;font-size:11px;background:#e8efff;color:#3458e8;border-radius:8px;padding:5px 8px;margin-bottom:12px}
.rv-kpis small{display:block;font-size:11px;font-weight:780;color:#7b8aa3;margin-bottom:5px}
.rv-kpis strong{display:block;font-size:16px;font-weight:920;color:#1c2f55;letter-spacing:-.025em}
.rv-chartgrid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:13px;margin:0 0 13px}
.rv-panel{background:white;border:1px solid #e4eaf5;border-radius:15px;padding:19px;min-width:0;box-shadow:0 7px 22px rgba(35,64,119,.022)}
.rv-panel-head{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-bottom:8px;flex-wrap:wrap}
.rv-panel-overline{font-size:9px;font-weight:950;color:#5071df;letter-spacing:.12em}
.rv-panel-head h3{margin:5px 0 0;font-size:17px;font-weight:920;line-height:1.38;color:#182b50;letter-spacing:-.036em}
.rv-demo-badge,.rv-table-status,.rv-soon{display:inline-flex;align-items:center;padding:6px 8px;border-radius:8px;background:#edf2ff;color:#4561c4;font-size:10px;font-weight:860;white-space:nowrap}
.rv-muted{color:#76869e;font-size:11px;font-weight:700;line-height:1.7;margin:0 0 18px}
.rv-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:16px 0 19px}
.rv-legend span{display:inline-flex;align-items:center;gap:5px;color:#647792;font-size:11px;font-weight:850}
.rv-legend i{display:inline-block;width:9px;height:9px;border-radius:3px;background:var(--rv-color)}
.rv-stack-list{display:flex;flex-direction:column;gap:17px}
.rv-stack-row{display:grid;grid-template-columns:44px minmax(0,1fr) 42px;gap:12px;align-items:center}
.rv-stack-label{font-size:12px;font-weight:890;color:#405476}
.rv-stack-row.selected .rv-stack-label{color:#3158e8}
.rv-stack-bg{display:flex;overflow:hidden;border-radius:6px;height:15px;min-width:0;background:#edf1fa}
.rv-stack-bg i{height:100%;display:block;min-width:0;transition:width .25s ease}
.rv-stack-summary{color:#6e819d;font-size:10px;font-weight:820;text-align:right;white-space:nowrap}
.rv-axis{display:flex;justify-content:space-between;color:#9daac0;font-size:9px;font-weight:740;margin:12px 54px 0 56px}
.rv-foot{font-size:10px!important;font-weight:670!important;line-height:1.75!important;color:#8996ab!important;margin:15px 0 0!important}
.rv-donut{height:180px;width:180px;border-radius:50%;background:conic-gradient(#3458e8 0 60%,#88a9f8 60% 100%);display:grid;place-items:center;margin:22px auto 18px;box-shadow:0 6px 14px #3a64d818}
.rv-donut>div{background:#fff;width:132px;height:132px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center}
.rv-donut strong{font-size:37px;font-weight:940;letter-spacing:-.05em;color:#244bd4;line-height:1.1}
.rv-donut span{color:#7484a1;font-size:11px;font-weight:860;margin-top:7px}
.rv-ratio-legend{display:flex;flex-direction:column;gap:10px;margin:10px 0}
.rv-ratio-legend>div{display:flex;justify-content:space-between;gap:8px;padding:11px 13px;border:1px solid #e9edf6;border-radius:9px;font-size:12px}
.rv-ratio-legend span{display:inline-flex;align-items:center;gap:7px;font-weight:790;color:#667a98}
.rv-ratio-legend strong{font-weight:930;color:#1d315a}
.rv-dot{display:inline-block;width:9px;height:9px;border-radius:3px}
.rv-dot.written{background:#3458e8}.rv-dot.performance{background:#88a9f8}
.rv-table-scroll{width:100%;overflow:auto;border:1px solid #e9edf6;border-radius:11px}
.rv-table{width:100%;border-collapse:collapse;min-width:380px;font-size:12px;font-variant-numeric:tabular-nums}
.rv-table thead{background:#f7f9fd}
.rv-table th,.rv-table td{padding:12px 9px;white-space:nowrap;text-align:center;border-bottom:1px solid #edf0f7}
.rv-table th{color:#697f9d;font-weight:870;font-size:11px}
.rv-table td{color:#4a6082;font-weight:770}
.rv-table th:first-child,.rv-table td:first-child{text-align:left;padding-left:14px;font-weight:900}
.rv-table tr:last-child td{border-bottom:0}
.rv-table .rv-row-active td{background:#f1f5ff;color:#2247c5}
.rv-table .rv-row-active td:first-child{box-shadow:inset 3px 0 0 #3458e8}
.rv-grade-panel{display:flex;flex-direction:column}
.rv-soon{background:#f3f5f8;color:#728198}
.rv-locked{text-align:center;margin:9px auto 0;max-width:280px}
.rv-lock-icon{display:grid;place-items:center;color:#526dbe;background:#f0f4fd;border-radius:15px;width:48px;height:48px;margin:0 auto 12px;font-size:24px}
.rv-locked strong{display:block;color:#283c62;font-size:13px;font-weight:900;margin-bottom:7px}
.rv-locked p{font-size:11px;color:#8291a8;line-height:1.65;font-weight:700;margin:0}
.rv-mini-placeholder{height:82px;display:flex;align-items:flex-end;gap:9px;justify-content:center;margin:18px 25px 5px;border-bottom:1px solid #e0e7f1}
.rv-mini-placeholder i{width:27px;border-radius:5px 5px 0 0;background:repeating-linear-gradient(-45deg,#dbe3f2 0 5px,#edf1f8 5px 10px)}
.rv-eval-panel{margin-bottom:0}.rv-eval-table{min-width:470px}.rv-eval-table td:last-child{text-align:left;color:#7a899e;font-weight:700;white-space:normal;min-width:150px}
.rv-no-data{text-align:center;padding:38px 25px;border:1px dashed #ccd7ef;border-radius:16px;background:#f8faff}
.rv-no-data-graphic{margin:0 auto 17px;background:#e8eeff;color:#3458e8;width:65px;height:65px;display:grid;place-items:center;border-radius:19px;font-size:27px}
.rv-no-data h3{font-size:18px;font-weight:920;color:#263e6e;margin:0 0 10px}
.rv-no-data p{font-size:12px;font-weight:690;color:#7585a0;line-height:1.85;max-width:450px;margin:0 auto 20px}
.rv-no-data button{background:#3458e8;color:#fff;border:none;border-radius:10px;padding:12px 18px;font-size:13px;font-weight:850;cursor:pointer}
.rv-section [hidden]{display:none!important}
.rv-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(max-width:900px){.rv-chartgrid{grid-template-columns:1fr}.rv-legend{gap:12px}}
@media(max-width:640px){.rv-section{padding:20px 15px}.rv-warning{padding:13px 12px;gap:9px}.rv-warning strong{font-size:12px}.rv-warning p{font-size:11px}.rv-toolbar{flex-direction:column;align-items:stretch}.rv-mode button{flex:1}.rv-subject-area{gap:8px}.rv-subjects{gap:5px}.rv-subjects button{padding:8px 10px}.rv-kpis{gap:6px}.rv-kpis>div{padding:11px 8px}.rv-kpi-icon{margin-bottom:8px}.rv-kpis small{font-size:9px;line-height:1.4}.rv-kpis strong{font-size:11px;line-height:1.5}.rv-chartgrid{gap:10px}.rv-panel{padding:15px 13px}.rv-panel-head h3{font-size:16px}.rv-panel-overline{font-size:9px}.rv-stack-row{grid-template-columns:30px minmax(0,1fr) 36px;gap:7px}.rv-axis{margin-left:39px;margin-right:39px;font-size:8px}.rv-donut{width:155px;height:155px}.rv-donut>div{width:113px;height:113px}.rv-donut strong{font-size:29px}.rv-table{font-size:11px}.rv-table th,.rv-table td{padding:10px 8px}.rv-legend{gap:10px}}
@media print{.rv-toolbar,.rv-no-data{display:none!important}.rv-section,.rv-panel{box-shadow:none!important}.rv-kpis{break-inside:avoid}.rv-panel{break-inside:avoid}}
