.roster-app{--navy:#07182d;--navy2:#1b3555;--blue:#0d6bff;--blue2:#eaf1ff;--ink:#1c2d40;--muted:#718096;--line:#e1e8f1;--paper:transparent;--white:#fff;--green:#16775a;--red:#c34b4c;--shadow:0 3px 16px rgba(23,43,74,.04)}
.roster-app *{box-sizing:border-box}
.roster-app{font-family:"Pretendard","Malgun Gothic","Apple SD Gothic Neo",Arial,sans-serif}
.roster-app{margin:0;color:var(--ink);background:var(--paper);font-size:14px}
.roster-app button,.roster-app input,.roster-app select{font:inherit}
.roster-app button{cursor:pointer}
.roster-app button:disabled{cursor:not-allowed;opacity:.4}
.roster-app button:focus-visible,.roster-app input:focus-visible,.roster-app select:focus-visible{outline:2px solid #739af6;outline-offset:2px}
.roster-app a{color:inherit}
.roster-app .layout{display:flex;min-height:100vh}
.roster-app .sidebar{width:254px;min-width:254px;background:var(--navy);color:white;padding:25px 16px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:10}
.roster-app .brand{padding:3px 11px 24px;border-bottom:1px solid #37516d}
.roster-app .brand-mark{width:38px;height:38px;background:#e8efff;border-radius:12px;color:var(--blue);display:grid;place-items:center;font-size:21px;font-weight:900;margin-bottom:13px}
.roster-app .brand strong{display:block;font-size:16px;letter-spacing:-.5px}
.roster-app .brand small{color:#a8bbcf;display:block;font-size:11px;margin-top:7px}
.roster-app .nav-label{margin:27px 12px 10px;color:#809bb7;font-weight:700;font-size:10px;letter-spacing:1.4px}
.roster-app .nav-btn{display:flex;align-items:center;gap:11px;width:100%;border:0;padding:13px 14px;border-radius:9px;color:#cbd8e7;background:transparent;text-align:left;font-weight:600;margin:3px 0}
.roster-app .nav-btn .glyph{font-size:17px;width:21px;text-align:center;font-weight:400}
.roster-app .nav-btn:hover{background:#233e5d;color:white}
.roster-app .nav-btn.active{background:#eaf1ff;color:#204e9d}
.roster-app .side-bottom{margin-top:auto;padding:18px 11px 5px;border-top:1px solid #37516d;color:#a8bbcf;font-size:11px;line-height:1.8}
.roster-app .side-bottom strong{color:#d6e2f2}
.roster-app .main{min-width:0;flex:1;padding:0 34px 48px;max-width:1740px}
.roster-app .topbar{height:83px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:16px}
.roster-app .breadcrumb{color:var(--muted);font-size:12px}
.roster-app .breadcrumb strong{color:var(--ink);font-size:13px}
.roster-app .top-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.roster-app .pill-status{color:var(--green);background:#e7f7ef;border:1px solid #cbead9;padding:8px 11px;font-size:12px;border-radius:24px;font-weight:700}
.roster-app .btn{border:1px solid #d7e0ec;border-radius:9px;padding:10px 15px;background:white;color:#29415e;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;transition:.15s}
.roster-app .btn:hover{border-color:#91afe5;background:#f8fbff}
.roster-app .btn-primary{background:var(--blue);border-color:var(--blue);color:white}
.roster-app .btn-primary:hover{background:#1d4ea6;color:white}
.roster-app .btn-danger{border-color:#ffd4d5;color:#b83e45;background:#fff6f6}
.roster-app .btn-sm{font-size:12px;padding:7px 10px;border-radius:7px}
.roster-app .btn-quiet{border:0;color:var(--blue);background:none;padding:6px}
.roster-app .btn-slim{padding:9px 11px}
.roster-app .container{padding-top:30px}
.roster-app .eyebrow{color:var(--blue);font-size:11px;letter-spacing:1.35px;text-transform:uppercase;font-weight:900;margin-bottom:9px}
.roster-app .heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:24px}
.roster-app .heading h1{font-size:28px;letter-spacing:-1.1px;margin:0 0 9px}
.roster-app .heading p{margin:0;font-size:13px;color:var(--muted);line-height:1.8}
.roster-app .section{display:none}
.roster-app .section.active{display:block}
.roster-app .stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:23px}
.roster-app .stat{background:white;border:1px solid var(--line);border-radius:13px;padding:20px 21px;box-shadow:var(--shadow);position:relative}
.roster-app .stat:before{content:"";position:absolute;top:0;left:21px;width:38px;height:3px;background:#cedcee;border-radius:5px}
.roster-app .stat.big:before{background:var(--blue)}
.roster-app .stat.a:before{background:#3f84d0}
.roster-app .stat.b:before{background:#3aafac}
.roster-app .stat.c:before{background:#d9ab50}
.roster-app .stat small{color:var(--muted);font-weight:700;font-size:12px}
.roster-app .stat .value{font-size:33px;font-weight:850;letter-spacing:-1.5px;margin:9px 0 3px}
.roster-app .stat .unit{font-size:13px;font-weight:600;color:#9aa8b8;padding-left:4px}
.roster-app .stat p{color:#92a2b3;margin:0;font-size:11px}
.roster-app .panel{background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);overflow:hidden}
.roster-app .panel-hd{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:20px 23px;border-bottom:1px solid #eef1f6}
.roster-app .panel-hd h2{font-size:16px;margin:0;letter-spacing:-.4px}
.roster-app .panel-hd p{color:var(--muted);font-size:12px;margin:6px 0 0}
.roster-app .panel-bd{padding:23px}
.roster-app .split{display:grid;grid-template-columns:1.35fr 1fr;gap:20px}
.roster-app .small-heading{font-size:13px;font-weight:800;margin:0 0 15px}
.roster-app .bar-item{margin:0 0 20px}
.roster-app .bar-head{display:flex;justify-content:space-between;font-size:12px;font-weight:700;margin-bottom:8px}
.roster-app .bar-head span:last-child{color:#667a90}
.roster-app .bar-track{background:#ebf0f7;height:12px;border-radius:10px;overflow:hidden}
.roster-app .bar-fill{height:100%;border-radius:10px;background:var(--blue);transition:width .3s}
.roster-app .bar-fill.b{background:#3aafac}
.roster-app .bar-fill.c{background:#ddb15c}
.roster-app .note{background:#f6f9fd;border:1px solid #e6edf6;border-radius:10px;padding:17px 19px;color:#50627a;font-size:12px;line-height:1.9}
.roster-app .note strong{color:#254c83}
.roster-app .mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.roster-app .mini-card{border:1px solid #e8edf4;background:#fbfcfe;padding:13px;border-radius:10px;text-align:left;color:var(--ink)}
.roster-app .mini-card:hover{border-color:#aac4ed;background:#f4f8ff}
.roster-app .mini-card strong{font-size:12px;display:block;margin-bottom:7px}
.roster-app .mini-card span{color:var(--muted);font-size:11px}
.roster-app .mini-card b{font-size:16px;float:right;color:var(--blue)}
.roster-app .toolbar{display:flex;justify-content:space-between;align-items:center;gap:11px;flex-wrap:wrap;margin:0 0 17px}
.roster-app .filters{display:flex;gap:9px;flex-wrap:wrap;align-items:center;flex:1}
.roster-app .input,.roster-app .select{padding:10px 12px;background:white;border:1px solid #dce4ee;border-radius:9px;color:#2d435b;min-height:39px}
.roster-app .input::placeholder{color:#9aa9b8}
.roster-app .search{min-width:250px;flex:1;max-width:400px}
.roster-app .select{min-width:135px}
.roster-app .table-wrap{width:100%;overflow:auto}
.roster-app .table{width:100%;border-collapse:collapse;min-width:740px;text-align:left}
.roster-app .table th{background:#f7f9fc;color:#5c7188;font-size:12px;letter-spacing:.1px;padding:13px 15px;border-bottom:1px solid var(--line);font-weight:800}
.roster-app .table td{padding:13px 15px;border-bottom:1px solid #edf1f6;font-size:13px;white-space:nowrap}
.roster-app .table tr:hover td{background:#f9fbff}
.roster-app .table td.mono{font-variant-numeric:tabular-nums;color:#73849b}
.roster-app .table .name{font-weight:800}
.roster-app .table .action-cell{white-space:nowrap;text-align:right}
.roster-app .table th:last-child{text-align:right}
.roster-app .tag{border-radius:6px;background:#f0f4fa;padding:5px 8px;color:#456283;font-weight:700;font-size:11px;white-space:nowrap}
.roster-app .tag.a{background:#eaf1ff;color:#2759a6}
.roster-app .tag.b{background:#e6f7f4;color:#147c74}
.roster-app .tag.c{background:#fdf3df;color:#946521}
.roster-app .tag.u{background:#fde9e9;color:#ad3333}
.roster-app .table-footer{padding:15px 18px;display:flex;align-items:center;justify-content:space-between;gap:15px;color:#718096;font-size:12px}
.roster-app .pager{display:flex;gap:6px;align-items:center}
.roster-app .empty{text-align:center;padding:56px 14px;color:#77889b}
.roster-app .district-top{display:flex;gap:7px;margin-bottom:17px;flex-wrap:wrap}
.roster-app .seg{background:white;padding:10px 17px;border:1px solid var(--line);border-radius:9px;font-weight:800;color:#6a7e95}
.roster-app .seg.selected{background:var(--navy);color:white;border-color:var(--navy)}
.roster-app .district-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.roster-app .district-card{background:white;border:1px solid var(--line);border-radius:12px;padding:19px;box-shadow:var(--shadow)}
.roster-app .district-card-top{display:flex;justify-content:space-between;align-items:center;color:#5f7491;font-size:12px;font-weight:800}
.roster-app .district-card h3{font-size:14px;letter-spacing:-.2px;margin:15px 0 18px;line-height:1.5;min-height:44px}
.roster-app .district-card .card-bottom{display:flex;justify-content:space-between;align-items:center;gap:9px;border-top:1px solid #ecf1f5;padding-top:13px}
.roster-app .district-card .total{color:#244f8e;font-size:19px;font-weight:900}
.roster-app .district-card .total small{font-size:11px;font-weight:500;color:#8fa0b3}
.roster-app .district-card .actions{display:flex;gap:5px}
.roster-app .option-head{color:#213b5b;font-size:14px;font-weight:850;margin:0 0 13px}
.roster-app .print-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:20px}
.roster-app .choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.roster-app .choice{border:1px solid #dce5ef;padding:16px 13px;background:white;border-radius:9px;text-align:left;font-weight:800;font-size:13px}
.roster-app .choice span{display:block;color:#8292a6;font-size:11px;margin-top:7px;font-weight:500}
.roster-app .choice.active,.roster-app .choice:hover{border-color:#6594e6;background:#eef5ff;color:#2457a2}
.roster-app .district-check-list{max-height:302px;overflow-y:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:5px}
.roster-app .district-check{border-radius:6px;padding:7px 8px;display:flex;align-items:center;gap:7px;font-size:11px;white-space:nowrap}
.roster-app .district-check:hover{background:#f4f7fc}
.roster-app .district-check input{accent-color:var(--blue)}
.roster-app .form-line{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:19px}
.roster-app .form-line label{font-size:12px;color:#6a7e96;font-weight:700}
.roster-app .checkline{display:inline-flex;align-items:center;gap:6px;color:#496078;font-size:12px}
.roster-app .checkline input{accent-color:var(--blue)}
.roster-app .print-result{background:#f0f5ff;border:1px solid #dbe7ff;border-radius:10px;padding:17px;color:#355a96;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:19px}
.roster-app .print-result strong{font-size:15px}
.roster-app .print-result span{font-size:12px}
.roster-app .help-block{background:#fff;border:1px solid var(--line);border-radius:12px;padding:19px 23px;margin:0 0 13px}
.roster-app .help-block h3{font-size:15px;margin:0 0 11px}
.roster-app .help-block p,.roster-app .help-block li{line-height:1.9;font-size:13px;color:#596f86}
.roster-app .help-block ul{padding-left:20px}
.roster-app .warn{background:#fff8e8;border:1px solid #f5e2ac;border-radius:9px;color:#795e28;padding:14px 16px;font-size:12px;line-height:1.8;margin-top:15px}
.roster-app .alert-list{margin:0;padding-left:17px;line-height:2;color:#a44b45;font-size:12px}
.roster-app .modal-backdrop{position:fixed;inset:0;z-index:80;background:rgba(14,29,49,.55);display:none;align-items:center;justify-content:center;padding:20px}
.roster-app .modal-backdrop.show{display:flex}
.roster-app .modal{background:#fff;width:min(560px,100%);max-height:92vh;overflow:auto;border-radius:15px;box-shadow:0 26px 70px rgba(0,0,0,.25)}
.roster-app .modal-head{padding:23px 25px 18px;border-bottom:1px solid #ebeff5;display:flex;align-items:flex-start;justify-content:space-between}
.roster-app .modal-head h2{margin:0;font-size:19px}
.roster-app .modal-head p{font-size:12px;color:#8392a5;margin:7px 0 0}
.roster-app .modal-body{padding:23px 25px}
.roster-app .field{margin-bottom:17px}
.roster-app .field label{display:block;font-weight:800;color:#475c75;font-size:12px;margin-bottom:8px}
.roster-app .field .input,.roster-app .field .select{width:100%}
.roster-app .field-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.roster-app .modal-footer{border-top:1px solid #e9eef4;display:flex;justify-content:flex-end;padding:16px 25px;gap:8px}
.roster-app .error{font-size:12px;color:#b74242;margin:8px 0 0}
.roster-app .toast{position:fixed;bottom:22px;right:22px;z-index:120;transform:translateY(90px);opacity:0;transition:.3s;background:#213955;color:white;padding:13px 19px;border-radius:9px;box-shadow:0 15px 40px #0d203344;max-width:420px}
.roster-app .toast.visible{transform:translateY(0);opacity:1}
.roster-app input[type=file]{display:none}
.roster-app .preview-backdrop{position:fixed;inset:0;background:#192b43df;z-index:90;display:none;flex-direction:column}
.roster-app .preview-backdrop.show{display:flex}
.roster-app .preview-head{height:64px;min-height:64px;background:white;border-bottom:1px solid #dfebf5;padding:10px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.roster-app .preview-head strong{font-size:15px}
.roster-app .preview-head small{color:#72849c;font-size:12px;margin-left:12px}
.roster-app .preview-body{overflow:auto;padding:27px;display:flex;align-items:center;flex-direction:column;gap:17px}
.roster-app .print-sheet{width:210mm;min-height:297mm;background:#fff;color:#111;padding:13mm 11mm 11mm;box-shadow:0 6px 25px #050f1c54;display:flex;flex-direction:column;overflow:hidden}
.roster-app .print-sheet h2{margin:0 0 11px;font-size:18px;letter-spacing:-.6px;color:#162b44;border-bottom:2px solid #193a64;padding-bottom:11px}
.roster-app .sheet-overline{font-size:10px;letter-spacing:1px;color:#4e6884;margin-bottom:9px;font-weight:900}
.roster-app .sheet-info{display:flex;justify-content:space-between;align-items:center;font-size:11px;margin:0 0 12px;color:#5e6d78}
.roster-app .paper-table{border-collapse:collapse;width:100%;font-size:11px;table-layout:fixed}
.roster-app .paper-table th{border:1px solid #77889b;text-align:center;background:#eaf0f6;padding:7px 3px;color:#18324e}
.roster-app .paper-table td{border:1px solid #9da9b6;text-align:center;padding:4px 3px;height:25px;overflow-wrap:anywhere}
.roster-app .paper-table td:nth-child(2){text-align:left;padding-left:6px}
.roster-app .paper-table th:nth-child(1){width:7%}
.roster-app .paper-table th:nth-child(2){width:25%}
.roster-app .paper-table th:nth-child(3){width:15%}
.roster-app .paper-table th:nth-child(4){width:17%}
.roster-app .paper-table th:nth-child(5){width:13%}
.roster-app .paper-table th:nth-child(6){width:14%}
.roster-app .paper-table th:nth-child(7){width:9%}
.roster-app .paper-table.nosign th:nth-child(2){width:26%}
.roster-app .paper-table.nosign th:nth-child(3){width:17%}
.roster-app .paper-table.nosign th:nth-child(4){width:18%}
.roster-app .paper-table.nosign th:nth-child(5){width:17%}
.roster-app .paper-table.nosign th:nth-child(6){width:15%}
.roster-app .sheet-foot{display:flex;justify-content:space-between;margin-top:auto;padding-top:12px;color:#617386;font-size:10px}
.roster-app .sheet-foot strong{color:#182e4d}
.roster-app .sheet-table-note{font-size:10px;color:#68758a;margin:9px 0 0}
@media (max-width:1100px){.roster-app .sidebar{width:205px;min-width:205px}
.roster-app .main{padding:0 21px 35px}
.roster-app .stats{grid-template-columns:repeat(2,1fr)}
.roster-app .district-grid{grid-template-columns:repeat(2,1fr)}
.roster-app .split,.roster-app .print-grid{grid-template-columns:1fr}}
@media (max-width:650px){.roster-app .layout{display:block}
.roster-app .sidebar{width:100%;min-width:0;height:auto;position:static;padding:13px;display:block}
.roster-app .brand{display:none}
.roster-app .nav-label,.roster-app .side-bottom{display:none}
.roster-app .side-nav{display:flex;gap:5px;overflow-x:auto}
.roster-app .nav-btn{min-width:max-content;font-size:12px;padding:10px}
.roster-app .main{padding:0 13px 25px}
.roster-app .topbar{height:auto;min-height:64px;padding:14px 0;align-items:flex-start;flex-wrap:wrap}
.roster-app .container{padding-top:20px}
.roster-app .heading h1{font-size:22px}
.roster-app .stats{gap:8px}
.roster-app .stat{padding:15px}
.roster-app .stat .value{font-size:27px}
.roster-app .district-grid,.roster-app .choice-grid,.roster-app .mini-grid{grid-template-columns:1fr}
.roster-app .field-row{grid-template-columns:1fr}
.roster-app .preview-head{height:auto;min-height:64px;flex-wrap:wrap}
.roster-app .preview-body{align-items:flex-start}
.roster-app .print-sheet{transform-origin:top left;transform:scale(.6);margin-bottom:-119mm;margin-right:-84mm}}
@page {size:A4 portrait;margin:0}
@media  print{.roster-app,.roster-app{margin:0!important;background:white!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.roster-app .layout,.roster-app .modal-backdrop,.roster-app .toast,.roster-app .preview-head{display:none!important}
.roster-app .preview-backdrop{display:block!important;position:static!important;background:none!important}
.roster-app .preview-body{display:block!important;padding:0!important;overflow:visible!important}
.roster-app .print-sheet{width:210mm!important;height:297mm!important;min-height:297mm!important;max-height:297mm!important;box-shadow:none!important;padding:13mm 11mm 11mm!important;break-after:page;page-break-after:always;transform:none!important;margin:0!important}
.roster-app .print-sheet:last-child{break-after:auto;page-break-after:auto}
.roster-app .paper-table td{height:25px}
.roster-app .print-sheet.dense .paper-table td{height:22px;font-size:10px}
.roster-app .preview-backdrop:not(.show){display:none!important}}

.roster-host,.roster-host *{box-sizing:border-box}
.roster-app{--navy:#07182d;--navy2:#112b51;--blue:#0d6bff;--ink:#14243a;--muted:#637589;--line:#dfebf6;--paper:transparent;background:transparent;color:var(--ink);font-size:14px;max-width:100%}
.roster-app .roster-tabs{display:flex;gap:7px;flex-wrap:wrap;border-bottom:1px solid #e2e8f0;margin-bottom:18px;padding:4px 0 15px}
.roster-app .roster-tabs .nav-btn{width:auto;color:#465973;background:#eef3fa;padding:10px 15px;margin:0;white-space:nowrap}
.roster-app .roster-tabs .nav-btn.active{background:#07182d;color:#fff}
.roster-app .roster-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:9px 0 20px}
.roster-app .roster-version-label{font-weight:850;color:#52667e;font-size:12px}
.roster-app .roster-layout{display:grid;grid-template-columns:minmax(0,1fr) 255px;gap:18px;align-items:start}
.roster-app .roster-primary{min-width:0}
.roster-app .roster-history{position:sticky;top:90px;max-height:calc(100vh - 108px);overflow:auto;border:1px solid #dce7f3;background:#fff;border-radius:15px;box-shadow:0 10px 28px #132b4711;padding:17px}
.roster-app .roster-history-hd small{font-size:10px;color:#0d6bff;font-weight:900;letter-spacing:1.5px}
.roster-app .roster-history-hd h3{font-size:18px;margin:6px 0 7px;color:#07182d}
.roster-app .roster-history-hd p{color:#64748b;font-size:12px;line-height:1.65;margin:0 0 12px}
.roster-app .roster-history-hd .btn{width:100%;white-space:normal}
.roster-app .roster-history-list{display:grid;gap:8px;margin-top:16px}
.roster-app .history-item{border:1px solid #e0e9f3;background:#f8fafd;text-align:left;display:block;width:100%;border-radius:10px;padding:12px 10px;color:#193451;cursor:pointer}
.roster-app .history-item:hover{border-color:#599afa;background:#eef5ff}
.roster-app .history-item.selected{border-color:#0d6bff;background:#eaf2ff;box-shadow:inset 3px 0 #0d6bff}
.roster-app .history-item b{display:block;font-size:12px;line-height:1.45}
.roster-app .history-item span,.roster-app .history-item small{display:block;color:#74869b;font-size:11px;margin-top:5px;line-height:1.5}
.roster-app .roster-history-foot{font-size:11px;line-height:1.7;color:#8494a9;border-top:1px solid #e9eef5;margin-top:14px;padding-top:14px}
.roster-app.history-mode #add-top,.roster-app.history-mode #add-members,.roster-app.history-mode #import-members,.roster-app.history-mode #import-guide,.roster-app.history-mode [data-delete-index],.roster-app.history-mode [data-edit-index],.roster-app.history-mode [data-title-id]{display:none!important}
.roster-app.history-mode .roster-version-label{color:#a45a09}
.roster-app .heading{padding-top:10px}
.roster-app .heading h1{font-size:26px}
.roster-app .stat{min-height:137px}
.roster-app .roster-history button{font:inherit}
@media(max-width:1180px){.roster-app .roster-layout{grid-template-columns:minmax(0,1fr) 215px}.roster-app .stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:780px){.roster-app .roster-layout{grid-template-columns:1fr}.roster-app .roster-history{position:static;max-height:none;order:2}.roster-app .stats{grid-template-columns:repeat(2,minmax(0,1fr))}.roster-app .roster-tabs{flex-wrap:nowrap;overflow-x:auto}.roster-app .roster-tabs .nav-btn{flex-shrink:0}.roster-app .roster-history-list{grid-template-columns:repeat(auto-fit,minmax(175px,1fr))}.roster-app .district-grid{grid-template-columns:1fr}.roster-app .heading h1{font-size:22px}}
@media print{
 body>*{visibility:hidden!important}
 #print-overlay,#print-overlay *{visibility:visible!important}
 #print-overlay{display:block!important;position:absolute!important;inset:0!important;width:100%!important;height:auto!important;overflow:visible!important;background:#fff!important;z-index:999999!important}
 #print-overlay .preview-head{display:none!important}
 #print-overlay .preview-body{padding:0!important;display:block!important;overflow:visible!important}
 #print-overlay .print-sheet{width:210mm!important;height:297mm!important;min-height:297mm!important;max-height:297mm!important;break-after:page!important;box-shadow:none!important;transform:none!important;margin:0!important;padding:13mm 11mm 11mm!important}
 #print-overlay .print-sheet:last-child{break-after:auto!important}
}

/* 2026-10-22: faithful source-Excel print sheet layout, not the previous custom poster. */
.roster-app .excel-print-legacy-options{display:none!important}
.roster-app .excel-print-explanation{color:#40536b;background:#f4f8fe;border:1px solid #dce9fb;border-radius:9px;padding:12px 15px;line-height:1.65;font-size:12px}
.roster-app #print-overlay .preview-head .top-actions{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}
.roster-app #print-overlay .original-excel-sheet{width:210mm!important;height:297mm!important;min-height:297mm!important;max-height:297mm!important;box-sizing:border-box!important;background:#fff!important;padding:19mm 18mm!important;display:block!important;overflow:hidden!important;color:#000!important;font-family:"Malgun Gothic","맑은 고딕",Arial,sans-serif!important}
.roster-app #print-overlay .excel-print-table{width:149mm!important;max-width:100%!important;table-layout:fixed!important;border-collapse:collapse!important;border-spacing:0!important;margin:0 auto!important;color:#000!important;}
.roster-app #print-overlay .excel-print-table th,.roster-app #print-overlay .excel-print-table td{box-sizing:border-box!important;border:0.35pt solid #000!important;background:#fff!important;text-align:center!important;vertical-align:middle!important;padding:0 1mm!important;line-height:1.15!important;overflow:hidden!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:keep-all!important;color:#000!important;font-family:"Malgun Gothic","맑은 고딕",Arial,sans-serif!important}
.roster-app #print-overlay .excel-print-table .excel-print-title{height:13.9mm!important}
.roster-app #print-overlay .excel-print-table .excel-print-title th{height:13.9mm!important;font-size:20pt!important;font-weight:700!important;border-bottom:0.35pt solid #000!important;}
.roster-app #print-overlay .excel-print-table .excel-print-band{height:6.95mm!important}
.roster-app #print-overlay .excel-print-table .excel-print-band td{height:6.95mm!important;background:#e7eaf1!important}
.roster-app #print-overlay .excel-print-table .excel-print-headers{height:6.95mm!important}
.roster-app #print-overlay .excel-print-table .excel-print-headers th{height:6.95mm!important;background:#e7eaf1!important;font-size:12pt!important;font-weight:700!important}
.roster-app #print-overlay .excel-print-table tbody tr{height:6.95mm!important;max-height:6.95mm!important}
.roster-app #print-overlay .excel-print-table tbody td{height:6.95mm!important;max-height:6.95mm!important;font-size:10.5pt!important;font-weight:700!important}
@media print{
 .roster-app #print-overlay .original-excel-sheet{width:210mm!important;height:297mm!important;padding:19mm 18mm!important;break-after:page!important;page-break-after:always!important;transform:none!important;margin:0!important}
 .roster-app #print-overlay .original-excel-sheet:last-child{break-after:auto!important;page-break-after:auto!important}
 .roster-app #print-overlay .excel-print-table{width:149mm!important}
}
