#gradeClassView .homeroom-grade-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px}
dialog.hi-dialog{width:min(920px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 48px);padding:0;border:1px solid var(--line,#ececef);border-radius:18px;background:#fff;color:var(--ink,#1a1a1a);box-shadow:0 24px 72px #1b24432e;margin:auto}
dialog.hi-dialog[open]{display:flex;flex-direction:column}
dialog.hi-dialog::backdrop{background:#17203466;backdrop-filter:blur(2px)}
.hi-dialog *{box-sizing:border-box}.hi-dialog [hidden]{display:none!important}
.hi-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px;border-bottom:1px solid var(--line,#ececef);flex:none}
.hi-header h3{margin:0;font-size:19px;font-weight:650}
.hi-close{display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:10px;background:#f7f7f8;color:#6e6e76;font:inherit;font-size:26px;cursor:pointer;line-height:1}
.hi-body{min-height:0;overflow:auto;overscroll-behavior:contain;padding:24px}
.hi-file-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.hi-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;border:1px solid var(--line,#ececef);border-radius:10px;background:#fff;color:var(--ink,#1a1a1a);font:inherit;font-size:14px;font-weight:500;padding:10px 16px;cursor:pointer;text-align:center}
.hi-primary{background:var(--brand,#5e5ce6);border-color:var(--brand,#5e5ce6);color:#fff}
.hi-button:disabled,.hi-close:disabled,.hi-file:has(input:disabled){cursor:not-allowed;opacity:.5}
.hi-file{position:relative;overflow:hidden}
.hi-file input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.hi-file:focus-within,.hi-dialog button:focus-visible{outline:3px solid #a9a6ed;outline-offset:3px}
.hi-filename{min-width:0;overflow-wrap:anywhere;color:var(--ink-2,#6e6e76);font-size:13px}
.hi-hint{margin:12px 0 0;color:var(--ink-2,#6e6e76);font-size:13px;line-height:1.7}
.hi-status{margin:16px 0 0;font-size:14px;line-height:1.6}
.hi-preview{margin-top:24px}
.hi-summary{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;font-size:13px;color:var(--ink-2,#6e6e76);padding-bottom:14px}
.hi-summary strong{font-size:15px;font-weight:600;color:var(--ink,#1a1a1a)}
.hi-errors{margin-bottom:16px;padding:14px 16px;background:#fff6f6;border:1px solid #f2d8d8;border-radius:10px;color:#b33742;font-size:13px;line-height:1.7}
.hi-errors strong{font-weight:600}.hi-errors ul{margin:6px 0 0;padding-left:20px;max-height:150px;overflow:auto}
.hi-table-wrap{width:100%;overflow:auto;max-height:48dvh;overscroll-behavior:contain;border:1px solid var(--line,#ececef);border-radius:10px}
.hi-table-wrap table{width:100%;border-collapse:collapse;min-width:620px}
.hi-table-wrap th,.hi-table-wrap td{padding:12px 14px;border-bottom:1px solid var(--line,#ececef);text-align:left;vertical-align:top;overflow-wrap:anywhere;font-size:13px;line-height:1.6}
.hi-table-wrap th{position:sticky;top:0;background:#f8f8fb;color:var(--ink-2,#6e6e76);font-weight:500;z-index:1}
.hi-table-wrap tr:last-child td{border-bottom:0}.hi-table-wrap td strong{font-weight:500}
.hi-row-error{background:#fff8f8}.hi-danger{color:#b33742}.hi-change{color:var(--brand,#5e5ce6)}
.hi-no-change{margin:16px 0 0;color:var(--ink-2,#6e6e76);font-size:13px}
.hi-footer{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:16px 24px;border-top:1px solid var(--line,#ececef);background:#fff;flex:none}
@media(max-width:640px){dialog.hi-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 24px)}.hi-header{padding:14px 16px}.hi-body{padding:18px 16px}.hi-file-actions>.hi-button{flex:1}.hi-filename{flex-basis:100%}.hi-footer{padding:14px 16px}.hi-footer .hi-button{flex:1;min-height:44px}.hi-close{width:44px;height:44px}.hi-hint{font-size:12px}}
@media(hover:hover) and (pointer:fine){.hi-button:hover:not(:disabled){background:#f7f7fb}.hi-primary:hover:not(:disabled){background:var(--brand-dark,#4b47c2)}.hi-close:hover:not(:disabled){background:#efeff4}}
@media(prefers-reduced-transparency:reduce){dialog.hi-dialog::backdrop{backdrop-filter:none}}
