:root{--ink:#2c2f33;--text:#4a4e53;--text-muted:#6f7378;--text-light:#9a9ea3;--accent:#2fae60;--accent-dark:#23904e;--accent-tint:#e8f7ee;--success:#18b394;--danger:#e2536b;--danger-tint:#f3c6cd;--border:#e2e2e2;--border-soft:#ededed;--bg:#fff;--bg-alt:#fafbfa;--bg-muted:#f2f2f1;--font-ui:Roboto, Helvetica, Arial, "Malgun Gothic", "Apple SD Gothic Neo", sans-serif}*{box-sizing:border-box}html,body{height:100%}body{font-family:var(--font-ui);color:var(--text);background:var(--bg-alt);margin:0}h1,h2,h3,h4,h5,h6{font-family:var(--font-ui)}button{cursor:pointer;font-family:inherit}a{color:inherit;text-decoration:none}table{border-collapse:collapse;width:100%}.app-shell{grid-template-rows:64px 1fr;grid-template-columns:230px 1fr;min-height:100vh;display:grid}.sidebar-logo{z-index:2;background:var(--bg);color:var(--ink);border-bottom:1px solid #e4e6e7;border-right:1px solid var(--border);grid-area:1/1;align-items:center;padding:0 24px;display:flex;position:sticky;top:0}.sidebar-logo__img{width:140px;height:auto;display:block}.sidebar-logo__title{font-family:var(--font-ui);color:var(--ink);font-size:16px;font-weight:700}.sidebar-menu{background:var(--bg);border-right:1px solid var(--border);flex-direction:column;grid-area:2/1;align-self:start;height:calc(100vh - 64px);display:flex;position:sticky;top:64px;overflow:hidden}.sidebar-menu>ul{flex:1;min-height:0;overflow-y:auto}.sidebar-menu ul{margin:0;padding:5px 0 12px;list-style:none}.sidebar-menu__item{margin-bottom:11px}.sidebar-menu__footer{background:#00008b;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 8px;margin-top:auto;padding:14px 20px;display:flex}.sidebar-menu__footer-user{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.sidebar-menu__footer-actions{align-items:center;gap:12px;display:flex}.sidebar-menu__footer-logout{color:gold;white-space:nowrap;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:13px;font-weight:700;display:flex}.sidebar-menu__footer-logout:hover,.sidebar-menu__footer-logout:active{color:#fff}.sidebar-menu__button{width:100%;color:var(--text);font:700 13px var(--font-ui);text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:0 20px;line-height:28px;display:flex}.sidebar-menu__button:hover,.sidebar-menu__button:active{color:var(--accent)}.sidebar-menu__button.is-active{color:var(--accent);background:var(--accent-tint)}.sidebar-menu__button--static{cursor:default}.sidebar-menu__button--static:hover,.sidebar-menu__button--static:active{color:var(--text);background:0 0}.sidebar-menu ul.sidebar-menu__submenu{background:var(--bg);margin:0;padding:0;list-style:none}.sidebar-menu__sublink{color:var(--text-muted);padding:0 20px 0 47px;font-family:Arial,sans-serif;font-size:14px;line-height:28px;display:block}.sidebar-menu__sublink--with-icon{align-items:center;gap:6px;padding-left:24px;display:flex}.sidebar-menu__subicon{flex-shrink:0}.sidebar-menu__entry{position:relative}.sidebar-menu__star{color:#b8bcc0;cursor:pointer;opacity:0;background:0 0;border:none;justify-content:center;align-items:center;padding:2px;display:flex;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.sidebar-menu__entry:hover .sidebar-menu__star,.sidebar-menu__star:focus-visible{opacity:1}.sidebar-menu__star:hover{color:#f5a623}.sidebar-menu__star.is-on{color:#f5a623;opacity:1}.sidebar-menu__favorites{border-bottom:1px solid #e4e6e7;padding-bottom:6px}.sidebar-menu__sublink:hover,.sidebar-menu__sublink:active{color:var(--accent)}.sidebar-menu__sublink.is-active{color:var(--accent);background:var(--accent-tint)}.content-area{flex-direction:column;grid-area:1/2/-1;min-width:0;display:flex}.app-shell:not(.app-shell--print) .content-area{background:#e9e9e9}.main-content{flex:1;padding:20px 24px 40px;overflow-y:auto}.app-shell:not(.app-shell--print) .main-content{overflow-x:auto}.app-shell:not(.app-shell--print) .main-content>*{min-width:880px}.app-shell--print .main-content{padding:0}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:20px;padding-bottom:16px;display:flex}.page-header__title{font-family:var(--font-ui);color:var(--ink);margin:0;font-size:30px;font-weight:700}.page-header__breadcrumb{letter-spacing:.04em;text-transform:uppercase;color:var(--text-light);margin-top:4px;font-size:12px}.page-header__badges{flex-wrap:wrap;gap:8px;display:flex}.badge{color:#fff;white-space:nowrap;border-radius:14px;align-items:center;gap:4px;padding:5px 12px;font-size:12px;font-weight:600;display:inline-flex}.badge--outline{background:var(--bg-alt);color:var(--text);border:1px solid var(--border)}.badge--outline.badge--danger{color:var(--danger);border-color:var(--danger-tint)}.badge--gray{background:#8a94a6}.badge--blue{background:#4a90d9}.badge--green{background:#3cb878}.badge--orange{background:#f5a623}.badge--red{background:var(--danger)}.badge--teal{background:#2bb3a3}.badge--purple{background:#8e6fd8}.badge--indigo{background:#5c6bc0}.badge--yellow{color:#333;background:#f2c94c}.badge--status{white-space:nowrap;justify-content:center;min-width:84px}.search-bar{align-items:center;gap:12px;margin-bottom:12px;display:none}.search-bar__label{background:var(--accent);color:#fff;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;border-radius:2px 0 0 2px;padding:12px 16px;font-size:13px;font-weight:700}.search-bar__input{border:1px solid var(--border);border-left:none;border-radius:0 2px 2px 0;flex:1;height:44px;margin-left:-12px;padding:0 14px;font-size:13px}.search-bar__label--period{background:var(--text);border-radius:2px 0 0 2px}.search-bar__select{border:1px solid var(--border);background:var(--bg);border-left:none;border-radius:0 2px 2px 0;height:44px;margin-left:-12px;padding:0 10px;font-size:13px}.search-bar__submit{background:var(--accent);color:#fff;border:none;border-radius:2px;justify-content:center;align-items:center;width:48px;height:44px;transition:background .15s;display:flex}.search-bar__submit:hover,.search-bar__submit:active{background:var(--accent-dark)}.monthly-chart{grid-template-rows:240px auto;grid-template-columns:auto minmax(0,1fr);column-gap:12px;margin-top:8px;padding-top:24px;display:grid}.monthly-chart__y-axis{color:var(--text-light);flex-direction:column;justify-content:space-between;align-items:flex-end;font-size:12px;display:flex}.monthly-chart__y-axis span{line-height:0}.monthly-chart__plot{position:relative}.monthly-chart__grid{flex-direction:column;justify-content:space-between;display:flex;position:absolute;inset:0}.monthly-chart__grid-line{border-top:1px dotted var(--border)}.monthly-chart__grid-line:last-child{border-top:1px solid var(--text-light)}.monthly-chart__bars{display:flex;position:absolute;inset:0}.monthly-chart__bar-col{flex:1;justify-content:center;align-items:flex-end;min-width:0;display:flex}.monthly-chart__bar-wrap{width:14px;min-height:2px;position:relative}.monthly-chart__value{color:var(--text);white-space:nowrap;font-size:12px;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.monthly-chart__bar{border-radius:3px 3px 0 0;height:100%;min-height:2px;transition:filter .15s}.monthly-chart__bar-col:hover .monthly-chart__bar{filter:brightness(.92)}.monthly-chart__tooltip{z-index:2;background:var(--ink);color:#fff;white-space:nowrap;pointer-events:none;border-radius:6px;align-items:center;gap:8px;padding:8px 12px;font-size:12px;display:none;position:absolute;top:0;left:calc(100% + 10px);box-shadow:0 4px 12px #00000026}.monthly-chart__bar-col:nth-last-child(-n+3) .monthly-chart__tooltip{left:auto;right:calc(100% + 10px)}.monthly-chart__bar-col:hover .monthly-chart__tooltip{display:flex}.monthly-chart__tooltip-swatch{border-radius:2px;width:8px;height:8px}.monthly-chart__tooltip-value{color:#c9ccd0;margin-left:16px}.monthly-chart__x-axis{color:var(--text-muted);padding-top:8px;font-size:12px;display:flex}.monthly-chart__x-axis span{text-align:center;word-break:keep-all;flex:1;min-width:0}.daily-chart{flex-direction:column;gap:8px;display:flex}.daily-chart__row{align-items:center;gap:10px;display:flex}.daily-chart__label{width:110px;color:var(--text-light);white-space:nowrap;flex-shrink:0;font-size:12px}.daily-chart__track{background:var(--bg-alt);border-radius:2px;flex:1;height:14px;overflow:hidden}.daily-chart__fill{background:#4a7fd6;border-radius:2px;min-width:2px;height:100%}.daily-chart__value{text-align:right;width:28px;color:var(--text);flex-shrink:0;font-size:12px;font-weight:700}.panel{background:var(--bg);border:1px solid var(--border);border-radius:30px;margin-bottom:20px;padding:24px;overflow-x:auto}.dashboard{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;gap:20px;display:grid}.dashboard>.form-error{grid-column:1/-1}.dashboard__badges{flex-wrap:wrap;gap:10px;margin-bottom:20px;display:flex}.dashboard .panel{padding:24px 12px}@media (max-width:1400px){.dashboard{grid-template-columns:minmax(0,1fr)}}.import-result{background:var(--accent-tint);color:var(--text);border-radius:6px;margin-bottom:16px;padding:12px 16px;font-size:13px}.import-result__list{max-height:160px;margin:8px 0 0;padding-left:18px;font-size:12px;overflow-y:auto}.panel--empty{text-align:center;color:var(--text-light);padding:60px 20px}.panel__meta{margin-top:8px;font-size:13px}.panel__title-row{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:20px;display:flex}.panel__title-row--tight{margin-bottom:12px}.panel__title{font-family:var(--font-ui);color:var(--ink);margin:0;font-size:20px;font-weight:700}.panel__subtitle{font-family:var(--font-ui);color:var(--ink);margin:24px 0 10px;font-size:15px;font-weight:700}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:720px;display:grid}.form-field{flex-direction:column;gap:6px;display:flex}.form-field--full{grid-column:1/-1}.form-field label{letter-spacing:.03em;text-transform:uppercase;color:var(--text);font-size:12px;font-weight:700}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--border);border-radius:2px;padding:10px 12px;font-family:inherit;font-size:13px}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--accent);outline:none}.form-field input:disabled{background:var(--bg-alt);color:var(--ink);opacity:1;-webkit-text-fill-color:var(--ink)}.form-warning{color:#b45309;background:#fffbeb;border:1px solid #fde68a;border-radius:2px;margin-top:8px;padding:8px 12px;font-size:13px}input[type=checkbox]{appearance:none;border:2px solid var(--border);vertical-align:middle;cursor:pointer;background:#fff;border-radius:4px;width:28px;min-width:28px;height:24px;margin:0;padding:0;display:inline-block;position:relative}input[type=radio]{appearance:none;border:2px solid var(--border);vertical-align:middle;cursor:pointer;background:#fff;border-radius:50%;width:20px;min-width:20px;height:20px;margin:0;padding:0;display:inline-block;position:relative}input[type=checkbox]:hover:not(:disabled),input[type=radio]:hover:not(:disabled){border-color:var(--accent)}input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}input[type=checkbox]:checked:after{content:"";border:3px solid #fff;border-width:0 3px 3px 0;width:7px;height:10px;position:absolute;top:1px;left:6px;transform:rotate(45deg)}input[type=radio]:checked{border-color:var(--accent)}input[type=radio]:checked:after{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}input[type=checkbox]:disabled,input[type=radio]:disabled{opacity:.5;cursor:not-allowed}.form-actions{grid-column:1/-1;gap:10px;margin-top:8px;display:flex}.btn{border:2px solid var(--border);letter-spacing:.05em;text-transform:uppercase;color:var(--ink);background:#fff;border-radius:2px;padding:9px 20px;font-size:12px;font-weight:700;transition:border-color .15s,background .15s}.btn:hover,.btn:active{color:var(--ink);border-color:var(--text-light);background:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary,.btn--outline{border-color:var(--border);color:var(--ink);background:#fff}.btn--primary:hover,.btn--primary:active,.btn--outline:hover{color:var(--ink);border-color:var(--text-light);background:#fff}.btn--danger{border-color:var(--danger);color:#fff;background:var(--danger)}.btn--danger:hover{background:#c23652;border-color:#c23652}.btn--secondary{white-space:nowrap;padding:9px 14px}.applicant-phone-row{align-items:center;gap:6px;display:flex}.applicant-phone-row input{text-align:center;width:72px}.student-name-btn{cursor:pointer;font:inherit;background:0 0;border:none;padding:0}.student-contact-modal{max-width:520px}.student-contact-modal__course{margin:-8px 0 14px}.student-contact-modal__address{gap:6px;display:flex}.student-contact-modal__address input{flex:1;min-width:0}.form-field__label{letter-spacing:.03em;color:var(--text);font-size:12px;font-weight:700}.applicant-gender{align-items:center;gap:18px;min-height:40px;display:flex}.form-field .applicant-gender label{text-transform:none;cursor:pointer;align-items:center;gap:6px;font-size:13px;font-weight:400;display:flex}.form-field input:disabled,.form-field select:disabled,.form-field textarea:disabled{color:#555;background:#f1f2f3}.applicant-phone-check{margin-top:8px;font-size:13px}.applicant-phone-check--ok{color:var(--success)}.applicant-phone-check--warn{color:#b7791f}.applicant-phone-check--warn ul{margin:4px 0 0;padding-left:18px}.applicant-phone-check--error{color:var(--danger)}.applicant-phone-check--pending{color:var(--text-light)}.applicant-detail{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.applicant-detail__form,.applicant-detail__memos{margin-bottom:0}.applicant-memo-list{flex-direction:column;gap:10px;max-height:640px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.applicant-memo-list li{border:1px solid var(--border);background:#fafbfb;border-radius:8px;padding:10px 12px}.applicant-memo-list li.is-current{border-color:var(--accent);background:var(--accent-tint)}.applicant-memo-list__meta{color:var(--text-muted);justify-content:space-between;gap:8px;margin-bottom:4px;font-size:12px;display:flex}.applicant-memo-list__meta span:first-child{flex:1}.applicant-memo-list__author{white-space:nowrap;font-weight:600}.applicant-memo-list__delete{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:4px;padding:0 8px;font-size:12px;line-height:20px}.applicant-memo-list__delete:hover{color:#e0526f;border-color:#e0526f}.applicant-memo-list__edit{flex-direction:column;gap:6px;display:flex}.applicant-memo-list__edit textarea{box-sizing:border-box;width:100%}.applicant-memo-list__edit-actions{gap:6px;display:flex}.applicant-memo-list__content{color:var(--ink);white-space:pre-wrap;word-break:break-word;font-size:13px}@media (max-width:960px){.applicant-detail{grid-template-columns:1fr}}.form-error{color:var(--danger);margin-top:8px;font-size:13px}.cert-filter-row{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.cert-filter-row select,.cert-filter-row input[type=text],.cert-filter-row input:not([type]){border:1px solid var(--border);border-radius:2px;padding:9px 12px;font-family:inherit;font-size:13px}.cert-radio-group{color:var(--text);flex-wrap:wrap;gap:14px;font-size:13px;display:flex}.cert-radio-group label{align-items:center;gap:4px;display:inline-flex}.cert-notice{background:var(--accent-tint);text-align:center;color:#c23652;border:1px solid #f4c7d1;border-radius:2px;padding:14px 16px;font-size:13px}.cert-notice strong{margin-bottom:6px;display:block}.cert-notice p{margin:4px 0 0}.cert-issue-form{background:var(--bg-alt);border:1px solid var(--border);border-radius:2px;align-items:center;gap:10px;margin-bottom:16px;padding:14px;display:flex}.subtabs{border-bottom:1px solid var(--border);align-items:center;gap:24px;margin-bottom:20px;display:flex}.subtabs__tab{letter-spacing:.03em;text-transform:uppercase;color:var(--text-light);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 2px;font-size:13px;font-weight:700}.subtabs__tab:hover{color:var(--accent)}.subtabs__tab.is-active{color:var(--ink);border-bottom-color:var(--text-light)}.subtabs__year-select{border:1px solid var(--border);border-radius:2px;margin-left:4px;padding:5px 8px;font-size:13px}.subtabs__spacer{flex:1}.period-grid{grid-template-columns:repeat(auto-fit,minmax(195px,1fr));gap:3px 12px;display:grid}.period-row__time{color:var(--text);white-space:nowrap;flex:1;font-size:12px}.unit-period-total td{color:var(--ink);background:var(--bg-alt);font-weight:700}.course-calendar-pane{min-width:0}.course-calendar-pane .panel__title-row{margin-bottom:6px}.course-calendar-pane .panel__title{font-size:13px}.course-calendar-pane .schedule-column__title{margin:0 0 4px;font-size:12px}.course-calendar-pane .form-grid{gap:8px 12px;max-width:none}.course-calendar-pane .form-field{gap:3px}.course-calendar-pane .form-field label{letter-spacing:0;font-size:11px}.course-calendar-pane .form-field input,.course-calendar-pane .form-field select,.course-calendar-pane .period-row input{padding:5px 8px;font-size:12px}.course-calendar-pane .btn{padding:5px 12px;font-size:12px}.course-calendar-pane .data-table th,.course-calendar-pane .data-table td{padding:5px 8px;font-size:11px}.course-calendar-pane .panel__meta{margin:0;font-size:11px}.course-calendar-pane .course-weekday-option{font-size:11px}.course-calendar-pane .course-schedule-calendar{margin-bottom:10px}.course-calendar-pane .course-schedule-calendar .panel__title{margin-bottom:4px;font-size:12px}.course-calendar-pane .calendar__weekday{padding:4px;font-size:11px}.period-row{align-items:center;gap:6px;display:flex}.period-row input[type=time]{flex:1;min-width:0}.period-row__label{white-space:nowrap;min-width:46px;color:var(--text-muted);flex-shrink:0;font-size:11px;font-weight:700}.period-row__tilde{color:var(--text-light);font-size:12px}.period-row__note{color:var(--text-light);white-space:nowrap;font-size:11px}.period-row__instructor{flex-shrink:0;width:72px}.period-row__instructor--wide{flex:1;width:auto}.period-row__instructor-text{width:72px;color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;font-size:12px;overflow:hidden}.period-row--top{background:var(--accent-tint);border-radius:4px;flex-wrap:wrap;grid-column:1/-1;padding:3px 6px}.period-row--top input[type=time]{flex:0 110px}.period-row__label--gap{margin-left:10px}.period-row--lunch{background:var(--bg-muted);border-radius:4px;grid-column:1/-1;padding:3px 6px}.period-row--lunch .period-row__label{color:var(--danger)}.login-modal.login-modal--wide{width:calc(100% - 48px);max-width:720px}.course-status-history{flex-direction:column;align-items:flex-start;gap:2px;margin-top:6px;display:flex}.course-status-history__link{color:var(--text);text-align:left;background:0 0;border:none;padding:0;font-size:12px}.course-status-history__link:hover{color:var(--accent)}.filter-tabs{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.filter-tabs__btn{border:1px solid var(--border);background:var(--bg);color:var(--text-muted);border-radius:16px;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:700;display:inline-flex}.filter-tabs__btn:hover{color:var(--accent);border-color:var(--accent)}.filter-tabs__btn.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.filter-tabs__count{color:var(--text-light);font-size:11px;font-weight:600}.filter-tabs__btn.is-active .filter-tabs__count{color:#fff}.course-weekday-row{flex-wrap:wrap;gap:14px;display:flex}.course-weekday-option{color:var(--text);align-items:center;gap:4px;font-size:13px;font-weight:400;display:flex}.schedule-columns{grid-template-columns:1fr 1fr;gap:24px;display:grid}@media (max-width:720px){.schedule-columns{grid-template-columns:1fr}}.schedule-column__title{font-family:var(--font-ui);color:var(--ink);border-bottom:2px solid var(--text-light);margin:0 0 12px;padding-bottom:8px;font-size:15px;font-weight:700}.schedule-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.schedule-list__item{border:1px solid var(--border);border-radius:2px;align-items:center;gap:10px;padding:10px 12px;font-size:13px;display:flex}.schedule-list__date{color:var(--text-light);white-space:nowrap}.schedule-list__title{color:var(--text);flex:1;font-weight:700}.schedule-list__memo{color:var(--text-light);font-size:12px}.schedule-list__delete{color:var(--text-light);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:16px;line-height:1}.schedule-list__delete:hover{color:var(--danger)}.schedule-badge{white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.schedule-badge--confirmed{color:var(--success);background:#e6f5f1}.schedule-badge--holiday{background:var(--danger-tint);color:var(--danger)}.schedule-badge--undetermined{color:#b7791f;background:#fef6e6}.calendar__header{justify-content:center;align-items:center;gap:16px;margin-bottom:12px;display:flex}.calendar__nav-btn{border:1px solid var(--border);background:var(--bg);width:28px;height:28px;color:var(--text);border-radius:4px;justify-content:center;align-items:center;font-size:16px;line-height:1;display:flex}.calendar__event--mine{background:var(--accent)}.instructor-schedule__count{text-align:center;margin:-4px 0 12px}.calendar__today-btn{border:1px solid var(--border);background:var(--bg);height:28px;color:var(--text);border-radius:14px;padding:0 12px;font-size:12px;font-weight:700}.calendar__today-btn:hover{border-color:var(--accent);color:var(--accent)}.examcal__supervisor{opacity:.9;display:block}.examcal__repeat{margin-right:3px}.exam-repeat__row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.exam-repeat__row select{flex:0 0 140px}.exam-repeat__row input[type=date]{flex:0 0 170px}.exam-repeat__label{color:var(--text-muted);font-size:13px}.exam-repeat__weekdays{gap:6px;margin-top:8px;display:flex}.exam-repeat__day{border:1px solid var(--border);background:var(--bg);width:34px;height:34px;color:var(--text);border-radius:50%;font-size:13px}.exam-repeat__day.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.exam-time-help{color:var(--text-muted);margin:6px 0 0;font-size:12px;line-height:1.5}.login-modal.exam-modal{position:relative}.exam-scope{border-radius:inherit;background:#ffffffd9;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.exam-scope__box{border:1px solid var(--border);background:var(--bg);text-align:center;border-radius:14px;width:min(360px,100% - 32px);padding:22px;box-shadow:0 10px 30px #0000001f}.exam-scope__title{margin:0 0 6px;font-size:17px}.exam-scope__desc{color:var(--text-muted);margin:0 0 14px;font-size:13px}.exam-scope__options{flex-direction:column;gap:8px;margin-bottom:10px;display:flex}.exam-scope__cancel{width:100%;margin-top:6px}.exam-modal__series{vertical-align:middle;margin-left:8px}.calendar__nav-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.calendar__legend{color:var(--text);gap:16px;margin-bottom:12px;font-size:12px;display:flex}.calendar__legend-item{align-items:center;gap:6px;display:inline-flex}.calendar__legend-swatch{border-radius:2px;width:10px;height:10px;display:inline-block}.calendar__grid{border-top:1px solid var(--border);border-left:1px solid var(--border);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar__weekday{text-align:center;color:var(--text-light);background:var(--bg-alt);border-bottom:1px solid var(--border);border-right:1px solid var(--border);padding:8px;font-size:12px;font-weight:700}.calendar__cell{border-bottom:1px solid var(--border);border-right:1px solid var(--border);vertical-align:top;min-width:0;min-height:90px;padding:6px;overflow:hidden}.calendar__cell--empty{background:var(--bg-alt)}.calendar__date{color:var(--text);margin-bottom:4px;font-size:12px;font-weight:700;display:inline-block}.calendar__date--today{color:#fff;background:var(--accent);border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;display:inline-flex}.course-schedule-calendar .calendar__cell{text-align:center;min-height:0;padding:4px}.course-schedule-day{width:28px;height:28px;color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:50%;font-size:12px}.course-schedule-day:hover:not(:disabled){border-color:var(--accent)}.course-schedule-day--selected{background:var(--accent);color:#fff}.course-schedule-day--outside{color:#d0d0d0;cursor:not-allowed}.course-schedule-day--holiday{border:2px solid var(--danger)}.course-schedule-day--holiday:not(.course-schedule-day--selected){color:var(--danger)}.course-schedule-day--holiday:disabled{cursor:not-allowed;opacity:.45}.course-bulk{background:#fff8e1;border:2px solid #f0b429;border-radius:12px;margin-bottom:10px;padding:12px 14px}.course-bulk__notice{color:#b25e00;margin:0;font-size:13px;font-weight:700}.course-bulk input[type=time]{background:#fffdf2;border:2px solid #f0b429}.course-bulk__apply{width:100%;font-weight:800}.course-stats-totals{margin-bottom:12px}.course-schedule-day__order{color:var(--text);font-weight:700}.course-schedule-day__detail{color:var(--text-light);overflow-wrap:anywhere;flex-direction:column;align-items:center;margin-top:2px;font-size:10px;line-height:1.3;display:flex}.calendar__event{color:#fff;white-space:normal;overflow-wrap:anywhere;cursor:default;border-radius:3px;margin-bottom:2px;padding:2px 6px;font-size:11px;line-height:1.4;display:block}.calendar__event--clickable{cursor:pointer}.calendar__event--confirmed{background:var(--danger)}.calendar__event--planned{background:#f2a0c4}.calendar__event--postponed1{color:#3a2f00;background:#f0c419}.calendar__event--postponed2{background:#2f6fed}.calendar__event--postponed3{background:#222}.examcal__event--toeic{background:#4f7df3}.examcal__event--tax{background:#9b6bd6}.examcal__event--hrd{background:#e08a2e}.examcal__event--kpc{background:#2ba3a3}.examcal__event--other{background:#8a8f98}.calendar__event--closing{background:#3cb878}.applicant-status-summary{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.applicant-status-summary__item{background:var(--bg-alt);border-radius:2px;align-items:baseline;gap:6px;padding:6px 12px;font-size:12px;display:flex}.applicant-status-summary__label{color:var(--text-light)}.applicant-status-summary__count{color:var(--ink);font-weight:700}.applicant-search{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.applicant-search input,.applicant-search select{border:1px solid var(--border);border-radius:2px;padding:9px 10px;font-family:inherit;font-size:13px}.applicant-search input{width:160px}.data-table{font-size:13px}.data-table th{background:var(--bg-alt);color:var(--text);letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid #e4e6e7;border-top:1px solid var(--border);text-align:center;white-space:nowrap;padding:10px 12px;font-size:12px;font-weight:700}.data-table__sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.data-table__sortable:hover{color:var(--accent)}.data-table td{border-bottom:1px solid var(--border-soft);text-align:center;color:var(--text);padding:12px}.course-stats-table td{white-space:nowrap}.course-stats-table th,.course-stats-table td{padding-left:6px;padding-right:6px}.course-list-table td.course-cell{word-break:keep-all;overflow-wrap:break-word;min-width:220px}.course-list-table td:not(.course-cell),.course-list-table th{white-space:nowrap}.course-stats-table__name{text-overflow:ellipsis;width:30%;max-width:0;overflow:hidden}.data-table--board th,.data-table--board td{text-align:left}.data-table--board th:nth-child(2),.data-table--board td:nth-child(2),.data-table--board th:nth-child(3),.data-table--board td:nth-child(3){text-align:center;white-space:nowrap}.course-cell{text-align:left;position:relative}.data-table th.memo-col{width:28%}.data-table td.memo-cell{text-overflow:ellipsis;white-space:nowrap;text-align:left;max-width:0;overflow:hidden}.sort-btn{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;display:inline-flex}.sort-btn__arrow{color:#b8bcc0;font-size:10px}.sort-btn:hover,.sort-btn.is-active,.sort-btn.is-active .sort-btn__arrow{color:var(--accent)}.link-cell{color:var(--text)}.link-cell:hover{color:var(--accent)}.new-badge{color:#fff;vertical-align:middle;background:#ff7043;border-radius:3px;justify-content:center;align-items:center;width:16px;height:16px;margin-left:4px;font-size:10px;font-weight:700;display:inline-flex}.pagination{justify-content:center;gap:4px;margin-top:20px;display:flex}.pagination button{border:1px solid var(--border);background:var(--bg);min-width:30px;height:30px;color:var(--text);border-radius:2px;font-size:13px}.pagination button:hover:not(:disabled),.pagination button:active:not(:disabled),.pagination button.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.pagination button:disabled{color:#c7c7c7;cursor:not-allowed}.pagination__ellipsis{min-width:30px;height:30px;color:var(--text-light);justify-content:center;align-items:center;font-size:13px;display:inline-flex}.roster-summary{background:var(--bg-alt);border:1px solid var(--border);border-radius:2px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;padding:16px 20px;display:flex}.roster-summary__title{font-family:var(--font-ui);color:var(--ink);font-size:16px;font-weight:700}.roster-summary__meta{color:var(--text);margin-top:4px;font-size:13px}.roster-header{text-align:center;background:#e6e6e6;border-radius:6px;margin-bottom:28px;padding:22px 24px 18px}.roster-header__title{color:#555;align-items:center;gap:10px;font-size:26px;font-weight:400;line-height:1.3;display:inline-flex}.roster-header__title svg{flex-shrink:0}.roster-header__period{color:#555;margin-top:8px;font-size:17px;font-weight:700}.roster-header__count{color:#555;margin-top:6px;font-size:14px;font-weight:700}.roster-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:32px 48px;display:grid}.roster-card{border:1px solid var(--border);text-align:center;background:#fff}.roster-card__status{color:#000;letter-spacing:1px;-webkit-print-color-adjust:exact;print-color-adjust:exact;padding:8px 12px;font-size:15px;font-weight:800}.roster-card__status--yellow{background:#ffd84d}.roster-card__status--red{background:#f25c5c}.roster-card--dropped .roster-card__body{opacity:.6}.roster-header__dropped{color:#d93636}.roster-card__body{padding:36px 16px 30px}.roster-card__avatar{color:#666;width:100px;height:100px;margin:0 auto 18px;display:block}.roster-card__photo{object-fit:cover;background:#f4f4f4;border:1px solid #ddd;border-radius:4px;width:90px;height:120px;margin:0 auto 10px;display:block}.roster-card__photo-actions{justify-content:center;gap:6px;margin:-6px 0 14px;display:flex}.roster-card__photo-actions button{color:#555;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:4px;padding:2px 8px;font-size:12px}.roster-card__photo-actions button:hover{border-color:#888}.roster-card__name{color:#444;font-size:20px;font-weight:700}.roster-card__role{color:#555;margin-top:6px;font-size:14px;font-weight:700}.roster-card__phone{color:#555;margin-top:26px;font-size:15px;font-weight:700}.roster-card__email{color:#666;margin-top:4px;font-size:13px}.roster-card__actions{border-top:1px solid var(--border);flex-direction:column;align-items:center;gap:14px;padding:22px 12px 26px;display:flex}.roster-card__primary{color:#fff;background:#5bc0c8;border-radius:3px;padding:4px 14px;font-size:13px;font-weight:700;display:inline-block}.roster-card__primary:hover{background:#45aeb6}.roster-card__tools{flex-wrap:wrap;justify-content:center;gap:4px;display:flex}.roster-card__tools button,.roster-card__tools a{border:1px solid var(--border);color:#555;cursor:pointer;white-space:nowrap;background:#fff;border-radius:3px;padding:4px 10px;font-size:13px;line-height:1.4;text-decoration:none}.roster-card__tools button:hover,.roster-card__tools a:hover{background:var(--bg-alt)}.data-table--clickable tbody tr{cursor:pointer}.data-table--clickable tbody tr:hover td{background:var(--accent-tint)}.boards{grid-template-columns:1fr 1fr;gap:20px;display:grid}.board{background:var(--bg);border:1px solid var(--border);border-radius:2px;padding:18px 20px}.board__title{font-family:var(--font-ui);color:var(--ink);margin:0 0 12px;font-size:15px;font-weight:700}@media (max-width:900px){.app-shell{grid-template-rows:auto auto 1fr;grid-template-columns:1fr}.sidebar-logo{flex-wrap:wrap;grid-area:1/1;row-gap:8px;padding:12px 20px}.sidebar-menu{grid-area:2/1}.content-area{grid-area:3/1}.boards,.form-grid{grid-template-columns:1fr}}.landing-page{background:#f2f2f2;flex-direction:column;min-height:100vh;display:flex}.landing-page--bg{background-color:#2a2a2e;background-position:50%;background-repeat:no-repeat;background-size:cover}.landing-page--bg .landing-header{background:#ffffffeb}.landing-header{border-bottom:1px solid var(--border);background:#f2f2f2;justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.landing-logo-placeholder{border:1px solid var(--ink);color:var(--text);text-align:center;background:var(--bg);justify-content:center;align-items:center;font-size:14px;display:flex}.landing-logo{height:auto;display:block}.landing-logo--header{width:auto;height:48px}.landing-logo--hero{-webkit-mask-composite:source-in;width:min(440px,80vw);-webkit-mask-image:linear-gradient(90deg,#0000,#000 6% 94%,#0000),linear-gradient(#0000,#000 5% 95%,#0000);mask-image:linear-gradient(90deg,#0000,#000 6% 94%,#0000),linear-gradient(#0000,#000 5% 95%,#0000);-webkit-mask-composite:source-in;mask-composite:intersect}.landing-logo-placeholder--header{padding:12px 24px}.landing-logo-placeholder--hero{width:320px;height:220px}.landing-login-btn{background:var(--accent);color:#fff;border:none;border-radius:8px;align-items:center;gap:8px;padding:12px 20px;font-size:14px;font-weight:700;transition:background .15s;display:flex}.landing-login-btn:hover,.landing-login-btn:active{background:var(--accent-dark)}.landing-header__actions{gap:8px;display:flex}.landing-login-btn--student{color:var(--accent);border:1px solid var(--accent);background:#fff}.landing-login-btn--student:hover,.landing-login-btn--student:active{background:var(--accent-tint)}.landing-hero{flex:1;justify-content:center;align-items:center;padding:60px 24px;display:flex}.login-modal-overlay{z-index:100;background:#14161873;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.login-modal{background:var(--bg-alt);border-radius:16px;width:100%;max-width:400px;padding:32px 28px;box-shadow:0 20px 50px #0003}.login-modal__header{justify-content:space-between;align-items:center;display:flex}.login-modal__title{font-family:var(--font-ui);color:var(--ink);margin:0;font-size:24px;font-weight:800}.login-modal__close{color:var(--text-muted);background:0 0;border:none;padding:4px;display:flex}.login-modal__close:hover{color:var(--ink)}.login-modal__divider{border-top:1px solid var(--border);margin:16px 0 24px}.login-modal__form{flex-direction:column;gap:14px;display:flex}.login-modal__input{border:1px solid var(--border);background:var(--bg);box-sizing:border-box;border-radius:10px;width:100%;padding:14px 16px;font-family:inherit;font-size:14px}.login-modal--portal{background:#fff;max-width:560px;padding:40px 36px 28px;position:relative}.login-modal__close--corner{position:absolute;top:14px;right:14px}.portal-login__form{flex-direction:column;gap:16px;display:flex}.login-modal--portal .login-modal__password-wrap .portal-login__password{box-sizing:border-box;width:100%;padding-right:48px}.login-modal--portal .login-modal__password-toggle{right:14px}.portal-login__card .login-modal__password-wrap .portal-login__password{box-sizing:border-box;width:100%;padding-right:48px}.portal-login__card .login-modal__password-toggle{right:14px}.login-modal__input:focus{border-color:var(--accent);outline:none}.login-modal__password-wrap{position:relative}.login-modal__password-wrap .login-modal__input{padding-right:44px}.login-modal__password-toggle{width:28px;height:28px;color:var(--text-light);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.login-modal__password-toggle:hover{color:var(--text)}.login-modal__remember{color:var(--text);align-items:center;gap:6px;font-size:13px;display:flex}.login-modal__submit{background:var(--ink);color:#fff;border:none;border-radius:10px;width:100%;margin-top:4px;padding:14px;font-size:15px;font-weight:700}.login-modal__submit:hover,.login-modal__submit:active{background:var(--accent-dark)}.login-modal__submit:disabled{opacity:.6;cursor:not-allowed}.data-table .check-cell{text-align:center;width:40px}.login-modal--scroll{max-height:calc(100vh - 48px);overflow-y:auto}.login-modal.applicant-modal{width:calc(100% - 48px);max-width:800px}.applicant-modal .form-grid{max-width:none}.login-modal.exam-modal{width:calc(100% - 48px);max-width:640px}.btn--sm{padding:4px 10px;font-size:12px}.login-modal.counseling-modal{width:calc(100% - 48px);max-width:880px}.counseling-modal .form-grid{max-width:none}.counseling-modal__section{color:var(--ink);margin:4px 0 12px;font-size:16px;font-weight:700}.unified-search{--unified-green:#1fa98b;border:1px solid var(--unified-green);background:#fff;border-radius:4px;align-items:stretch;height:46px;margin-bottom:16px;display:flex;overflow:hidden}.unified-search__label{background:var(--unified-green);color:#fff;white-space:nowrap;align-items:center;padding:0 16px;font-size:14px;font-weight:700;display:flex}.unified-search__input,.unified-search__select{color:var(--text);background:#fff;border:none;outline:none;font-size:14px}.unified-search__input{flex:1;min-width:0;padding:0 14px}.unified-search__select{cursor:pointer;flex:0 0 min(34%,380px);padding:0 12px}.unified-search__button{background:var(--unified-green);color:#fff;cursor:pointer;border:none;flex:0 0 56px;justify-content:center;align-items:center;display:flex}.unified-search__button:hover{filter:brightness(.93)}.unified-search__result{background:#eef8f4;border-radius:6px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:10px 14px;font-size:14px;display:flex}@media (max-width:760px){.unified-search{flex-wrap:wrap;height:auto}.unified-search__label,.unified-search__input,.unified-search__select{min-height:42px}.unified-search__input{flex:60%}.unified-search__select{flex:40%}}.course-list__nowrap{white-space:nowrap}.login-modal.sms-modal{width:calc(100% - 48px);max-width:1100px}.sms-modal__tabs{margin-bottom:14px}.sms-modal__notice{color:#6b5210;background:#fff6e0;border:1px solid #f1d58a;border-radius:8px;margin-bottom:14px;padding:10px 14px;font-size:13px}.sms-modal__notice strong{margin-right:6px}.sms-modal__compose{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:28px;display:grid}.sms-modal__count{color:var(--primary,#1f8a4c);margin-left:8px;font-size:13px;font-weight:600}.sms-modal__filters{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr) auto;gap:6px;margin-bottom:10px;display:grid}.sms-modal__filters select,.sms-modal__filters input{border:1px solid var(--border);background:#fff;border-radius:6px;min-width:0;height:36px;padding:0 8px;font-size:13px}.sms-modal__list{border:1px solid var(--border);border-radius:6px;max-height:420px;overflow-y:auto}.sms-modal__list .data-table thead th{z-index:1;position:sticky;top:0}.data-table tr.is-disabled td{color:#aaa}.sms-modal__template-row{gap:6px;margin:12px 0 10px;display:flex}.sms-modal__template-row select{border:1px solid var(--border);background:#fff;border-radius:6px;flex:1;min-width:0;height:36px;padding:0 8px;font-size:13px}.sms-modal__placeholders{color:var(--text);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;font-size:12px;display:flex}.sms-modal__placeholders button{border:1px solid var(--border);cursor:pointer;background:#f6f7f9;border-radius:999px;padding:4px 8px;font-size:12px}.sms-modal__placeholders button:hover{background:#eaf5ee}.sms-modal__textarea{box-sizing:border-box;border:1px solid var(--border);width:100%;font:inherit;resize:vertical;border-radius:6px;padding:10px 12px;font-size:14px;line-height:1.6}.sms-modal__bytes{text-align:right;color:var(--text);margin-top:4px;font-size:12px}.sms-modal__bytes.is-over{color:#c0392b;font-weight:700}.sms-modal__preview{background:#eef1f5;border-radius:8px;margin-top:12px;padding:12px}.sms-modal__preview-label{color:var(--text);margin-bottom:8px;font-size:12px}.sms-modal__bubble{white-space:pre-wrap;overflow-wrap:anywhere;background:#fff;border-radius:12px 12px 12px 2px;max-width:85%;padding:10px 12px;font-size:13px;line-height:1.6;box-shadow:0 1px 2px #00000014}.sms-modal__nowrap{white-space:nowrap}.sms-modal__message{text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;max-width:420px;font-size:13px}.sms-modal__badge{color:#7a5b00;background:#fff1c9;border-radius:999px;margin-left:6px;padding:1px 6px;font-size:11px}.sms-modal__detail-row>td{background:#fafbfc;padding:10px 14px}.sms-modal__fail{color:#c0392b}@media (max-width:860px){.sms-modal__compose{grid-template-columns:1fr}}.login-modal.training-cost-modal{width:calc(100% - 48px);max-width:900px}.training-cost-modal .form-grid{max-width:none}.training-cost-modal__form{margin-bottom:28px}.training-cost-modal__course-cost{align-items:center;gap:8px;margin:4px 0 0;font-size:12px;display:flex}.training-cost-modal__readonly{border:1px solid var(--border);color:var(--ink);background:#f4f5f7;border-radius:6px;padding:10px 12px;font-size:14px}.training-cost-modal__receipt{align-items:center;gap:6px;min-width:0;display:flex}.training-cost-modal__file{text-overflow:ellipsis;white-space:nowrap;text-align:left;cursor:pointer;background:0 0;border:none;flex:1;min-width:0;padding:0;font-size:14px;overflow:hidden}.training-cost-modal__file--empty{color:var(--muted,#888);cursor:default}.training-cost-modal__history-head{color:var(--text);background:#eef4fb;border-radius:8px;flex-direction:column;align-items:center;gap:4px;margin-bottom:12px;padding:14px;font-size:13px;display:flex}.training-cost-modal__history-head strong{color:var(--ink);font-size:16px}.training-cost-modal__amount{white-space:nowrap;text-align:right}.data-table tr.is-selected td{background:#e3f3dc}.counseling-modal__form{margin-bottom:28px}.counseling-modal__who{color:var(--ink);font-size:14px;font-weight:700}.counseling-modal__memo{text-align:left;max-width:360px}.counseling-modal__memo-btn{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;white-space:pre-wrap;overflow-wrap:anywhere;-webkit-line-clamp:2;background:0 0;border:none;-webkit-box-orient:vertical;padding:0;display:-webkit-box;overflow:hidden}.print-page{background:#f2f2f1;min-height:100vh;padding:0 0 40px}.print-toolbar{z-index:10;border-bottom:1px solid var(--border);color:var(--text);background:#fff;align-items:center;gap:16px;padding:12px 24px;font-size:14px;display:flex;position:sticky;top:0}.print-toolbar__actions{gap:8px;margin-left:auto;display:flex}.nametag-picker{box-sizing:border-box;border:1px solid var(--border);background:#fff;border-radius:8px;flex-wrap:wrap;gap:8px 18px;width:210mm;max-width:100%;margin:16px auto 0;padding:12px 16px;display:flex}.nametag-picker__all{flex:0 0 100%;font-weight:600}.nametag-picker__item{align-items:center;gap:6px;display:inline-flex}.nametag-picker__item .nametag-picker__name{border:1px solid var(--border);border-radius:6px;width:110px;padding:4px 8px;font-size:14px}.nametag-picker label{cursor:pointer;align-items:center;gap:6px;font-size:14px;display:inline-flex}.nametag-sheet{box-sizing:border-box;background:#fff;grid-template-columns:repeat(2,105mm);grid-auto-rows:85mm;align-content:start;width:210mm;margin:24px auto 0;padding:21mm 0;display:grid}.nametag{box-sizing:border-box;color:#1f2a1c;break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff;outline:.2mm solid #0000008c;flex-direction:column;width:105mm;height:85mm;padding:4mm 3.5mm;font-family:Noto Sans KR,Malgun Gothic,Apple SD Gothic Neo,sans-serif;display:flex;position:relative;overflow:hidden}.nametag__top{align-items:flex-start;gap:3mm;display:flex}.nametag__course{flex:1;min-width:0}.nametag__title{text-underline-offset:1mm;word-break:break-all;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:13pt;font-weight:700;line-height:1.55;text-decoration:underline;text-decoration-thickness:.5mm;display:-webkit-box;overflow:hidden}.nametag__period{margin-top:.5mm;font-size:15pt}.nametag__logo{flex:0 0 25mm;width:25mm;height:auto}.nametag__logo--image{object-fit:contain;max-height:22mm}.nametag__name{white-space:nowrap;flex:1;justify-content:center;align-items:center;font-weight:400;line-height:1;display:flex}.nametag__academy{letter-spacing:.04em;text-underline-offset:1.2mm;align-self:center;margin-bottom:1mm;font-size:15pt;text-decoration:underline;text-decoration-thickness:.5mm}.login-modal.nametag-setting-modal{width:min(860px,100vw - 32px);max-width:none}.nametag-setting{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:20px 28px;display:grid}.nametag-setting__full{grid-column:1/-1}.nametag-setting__fields{flex-direction:column;gap:16px;display:flex}.nametag-setting__logo-row{align-items:center;gap:12px;display:flex}.nametag-setting__logo-box{border:1px solid var(--border);box-sizing:border-box;border-radius:6px;justify-content:center;align-items:center;width:96px;height:72px;padding:6px;font-size:12px;display:flex}.nametag-setting__default-label{color:var(--text);font-size:15px;font-weight:600}.nametag-setting__logo-box img{object-fit:contain;max-width:100%;max-height:100%}.nametag-setting__logo-actions{flex-direction:column;gap:6px;display:flex}.nametag-setting__reset{align-self:flex-start}.nametag-setting__preview-label{margin-bottom:6px;font-size:13px;font-weight:600}.nametag-setting__preview-frame{width:84mm;height:68mm;overflow:hidden}.nametag-setting__preview-frame .nametag{transform-origin:0 0;transform:scale(.8)}@media (max-width:760px){.nametag-setting{grid-template-columns:1fr}}.cert-panel{border:1px solid var(--border);background:#fff;border-radius:8px;max-width:1000px;margin:16px auto 0;padding:16px 20px}.cert-panel__grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px 16px;display:grid}.cert-panel__field{flex-direction:column;gap:4px;font-size:13px;display:flex}.cert-panel__field>span{color:var(--ink);font-weight:600}.cert-panel__field input,.cert-panel__field select,.cert-panel__units input,.cert-panel__units select{border:1px solid var(--border);box-sizing:border-box;background:#fff;border-radius:6px;width:100%;height:34px;padding:0 8px;font-size:13px}.cert-panel__inline{gap:6px;display:flex}.cert-panel__inline .btn{white-space:nowrap}.cert-panel__static{height:34px;color:var(--text);align-items:center;font-size:13px;display:flex}.cert-panel__notice,.cert-panel__warn{border-radius:6px;margin-bottom:12px;padding:8px 12px;font-size:13px}.cert-panel__notice{color:#1c6b3d;background:#e8f6ee}.cert-panel__warn{color:#6b5210;background:#fff6e0}.cert-panel__units{margin-top:16px}.cert-panel__units-head{justify-content:space-between;align-items:center;margin-bottom:8px;font-size:14px;display:flex}.cert-panel__footer{justify-content:space-between;align-items:center;gap:12px;margin-top:14px;display:flex}.cert-sheet{color:#111;box-sizing:border-box;-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff;margin:24px auto 0;position:relative;overflow:hidden}.cert-sheet--portrait{width:210mm;height:297mm}.cert-sheet--landscape{width:297mm;height:210mm}.cert-label{width:var(--cert-label-width,28mm);text-align:justify;text-align-last:justify;white-space:nowrap;display:inline-block}.cert-enroll{--cert-label-width:26mm;padding:36mm 30mm 0;font-family:궁서,Gungsuh,GungsuhChe,Batang,serif}.cert-enroll__title{text-align:center;letter-spacing:.06em;margin:0;font-family:inherit;font-size:48pt;font-weight:400;line-height:1.2}.cert-enroll__info{border-collapse:collapse;margin-top:26mm;font-size:10.5pt;line-height:1.55}.cert-enroll__info th{width:var(--cert-label-width);vertical-align:top;text-align:left;padding:0;font-weight:400}.cert-enroll__info td{vertical-align:top;padding:0 0 0 1mm}.cert-enroll__body{letter-spacing:.1em;text-align:justify;text-indent:1em;word-break:break-all;margin:20mm 0 0;font-size:21pt;line-height:13.6mm}.cert-enroll__date{text-align:center;white-space:pre;margin-top:20mm;font-size:15pt}.cert-enroll__sign{text-align:center;margin-top:10mm;font-size:17pt;line-height:11mm}.cert-enroll__owner{letter-spacing:.15em;display:inline-block;position:relative}.cert-enroll__seal{object-fit:contain;width:20mm;height:20mm;margin-left:-1mm;position:absolute;top:50%;left:100%;transform:translateY(-50%)}.cert-watermark{z-index:0;object-fit:contain;pointer-events:none;position:absolute}.cert-enroll>:not(.cert-watermark),.cert-ncs>:not(.cert-watermark){z-index:1;position:relative}.cert-watermark--enroll{width:110mm;height:110mm;top:150mm;left:50%;transform:translate(-50%,-50%)}.cert-watermark--ncs{width:90mm;height:90mm;top:105mm;left:75.5mm;transform:translate(-50%,-50%)}.cert-watermark--completion{width:89.3mm;height:89mm;top:136.9mm;left:60.9mm}.cert-completion__seal{object-fit:contain;width:23.5mm;height:23.5mm;position:absolute;top:250.25mm;left:136.9mm}.cert-completion>:not(.cert-completion__bg):not(.cert-watermark){z-index:2}.cert-images{border-top:1px solid var(--border);margin-top:16px;padding-top:14px}.cert-images__head{align-items:baseline;gap:10px;margin-bottom:10px;font-size:14px;display:flex}.cert-images__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.cert-images__item{border:1px solid var(--border);border-radius:8px;padding:12px}.cert-images__label{color:var(--ink);margin-bottom:8px;font-size:13px;font-weight:600}.cert-images__body{align-items:center;gap:12px;display:flex}.cert-images__preview{border:1px solid var(--border);background:repeating-conic-gradient(#eee 0% 25%,#fff 0% 50%) 50%/12px 12px;border-radius:6px;flex:0 0 96px;justify-content:center;align-items:center;width:96px;height:96px;display:flex}.cert-images__preview img{object-fit:contain;max-width:88px;max-height:88px}.cert-images__actions{flex-direction:column;gap:6px;display:flex}.cert-images__item .panel__meta{margin:8px 0 0;font-size:12px}.cert-images__opacity{align-items:center;gap:8px;margin-top:10px;font-size:13px;display:flex}.cert-images__opacity input{flex:1}.cert-images__opacity span{text-align:right;width:40px}.cert-images__targets{flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:8px;font-size:13px;display:flex}@media (max-width:760px){.cert-images__grid{grid-template-columns:1fr}}.cert-completion{--cert-label-width:25mm;font-family:궁서,Gungsuh,GungsuhChe,Batang,serif}.cert-completion__bg{width:100%;height:100%;position:absolute;inset:0}.cert-completion__number,.cert-completion__info,.cert-completion__body,.cert-completion__teacher,.cert-completion__date{position:absolute}.cert-completion__number{letter-spacing:.08em;font-size:11pt;top:51mm;left:29.5mm}.cert-completion__info{border-collapse:collapse;width:105mm;font-size:10pt;line-height:5.7mm;top:102mm;left:90.5mm}.cert-completion__info th{text-align:left;vertical-align:top;white-space:nowrap;width:var(--cert-label-width);padding:0;font-weight:400}.cert-completion__info td{vertical-align:top;padding:0 0 0 1mm}.cert-completion__body{letter-spacing:.1em;text-align:justify;text-indent:1em;word-break:break-all;width:152mm;margin:0;font-size:22pt;line-height:13.8mm;top:141.5mm;left:30mm}.cert-completion__teacher{text-align:center;font-size:12.5pt;font-weight:700;line-height:8.5mm;bottom:68.5mm;left:0;right:0}.cert-completion__teacher-row span+span{margin-left:2em}.cert-completion__teacher--compact{font-size:11pt;line-height:6.5mm}.cert-completion__date{text-align:center;white-space:pre;font-size:13pt;font-weight:700;top:240mm;left:0;right:0}.cert-ncs{--cert-label-width:21mm;grid-template-columns:119mm 128mm;column-gap:18mm;padding:19mm 16mm 0;font-family:함초롬바탕,HCR Batang,Batang,바탕,serif;display:grid}.cert-ncs__number{font-size:13pt}.cert-ncs__title{text-align:center;border:3px double #111;margin-top:4mm;padding:2.5mm 4mm;line-height:1.25}.cert-ncs__title-en{font-family:Times New Roman,Batang,serif;font-size:20pt}.cert-ncs__title-ko{font-size:14pt}.cert-ncs__info{margin:10mm 0 0;padding:0 0 0 5mm;font-size:13pt;line-height:7.8mm;list-style:none}.cert-ncs__info li{display:flex}.cert-ncs__info li:before{content:"▪";flex:0 0 6mm}.cert-ncs__info li .cert-label{flex:0 0 var(--cert-label-width)}.cert-ncs__info li span:last-child{flex:1;margin-left:2mm}.cert-ncs__body{text-align:justify;text-indent:1em;word-break:keep-all;margin:10mm 0 0 5mm;font-size:15pt;line-height:8.9mm}.cert-ncs__date{text-align:center;white-space:pre;margin-top:10mm;font-size:14pt}.cert-ncs__academy{text-align:center;letter-spacing:.02em;margin-top:10mm;font-size:22pt}.cert-ncs__seal{text-align:center;letter-spacing:.3em;font-size:7pt;font-weight:700}.cert-ncs__result-title{margin:6mm 0 0;font-family:inherit;font-size:14pt;font-weight:400}.cert-ncs__subject{margin-top:8mm;font-size:13pt}.cert-ncs__table{border-collapse:collapse;table-layout:fixed;width:100%;margin-top:6mm;font-family:함초롬돋움,HCR Dotum,Malgun Gothic,sans-serif;font-size:11pt}.cert-ncs__table th,.cert-ncs__table td{text-align:center;word-break:keep-all;border:1px solid #111;height:8.9mm;padding:0 2mm}.cert-ncs__table th{white-space:nowrap;background:#d9d9d9;padding:0 1mm;font-size:10pt;font-weight:700}.cert-ncs__table th:first-child{width:28%}.cert-ncs__table th:nth-child(2){width:44%}.cert-ncs__table th:nth-child(3),.cert-ncs__table th:nth-child(4){width:14%}.cert-ncs__table td:first-child{text-align:left}.cert-ncs__empty{color:#999}.cert-ncs__notes{margin:8mm 0 0;padding-left:6mm;font-size:11.5pt;line-height:6.3mm;list-style:decimal}.personal-card{box-sizing:border-box;color:#111;background:#fff;width:210mm;min-height:297mm;margin:24px auto 0;padding:18mm 16mm}.personal-card__title{text-align:center;letter-spacing:.3em;margin:0 0 10mm;font-size:24pt;font-weight:700}.personal-card__subtitle{margin:10mm 0 3mm;font-size:13pt;font-weight:700}.personal-card__table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:10.5pt}.personal-card__table th,.personal-card__table td{vertical-align:middle;border:1px solid #333;padding:3mm}.personal-card__table th{text-align:center;background:#f0f0f0;font-weight:700}.personal-card__memo{white-space:pre-wrap;overflow-wrap:anywhere}.personal-card__empty{text-align:center;color:#666}.personal-card__footer{text-align:right;color:#444;margin-top:8mm;font-size:10pt}.person-info{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px 24px;display:grid}.person-info>div{flex-direction:column;gap:4px;font-size:14px;display:flex}.person-info span{color:var(--text-muted);font-size:12px}.person-info strong{color:var(--ink)}.student-subview{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.student-subview__toggle{border:1px solid var(--border);border-radius:6px;display:inline-flex;overflow:hidden}.student-subview__toggle button{color:var(--text);cursor:pointer;background:#fff;border:none;padding:7px 16px;font-size:13px}.student-subview__toggle button+button{border-left:1px solid var(--border)}.student-subview__toggle button.is-active{background:var(--accent);color:#fff;font-weight:600}.student-subview__search{gap:6px;margin-left:auto;display:flex}.student-subview__search input{border:1px solid var(--border);border-radius:6px;width:240px;height:34px;padding:0 10px;font-size:13px}.student-subview__crumb{align-items:center;gap:10px;margin-bottom:10px;font-size:14px;display:flex}.receipt-modal{max-width:640px}.receipt-modal__year{align-items:center;gap:10px;margin-bottom:12px;font-size:14px;font-weight:600;display:flex}.receipt-modal__year select{border:1px solid var(--border);border-radius:6px;height:34px;padding:0 8px}.receipt-modal__year .panel__meta{font-weight:400}.receipt-modal__warn{color:#b5541c;font-size:12px}.receipt-panel__title{color:var(--ink);margin:4px 0 10px;font-size:14px}.receipt-panel__title:not(:first-of-type){border-top:1px solid var(--border);margin-top:18px;padding-top:14px}.receipt-panel__wide{grid-column:span 2}.receipt-panel__check{align-items:center;gap:6px;min-height:34px;font-size:13px;display:flex;color:var(--text)!important;font-weight:400!important}.cert-panel__field .receipt-panel__check input[type=checkbox]{border:2px solid var(--border);border-radius:4px;width:28px;height:24px;padding:0}.cert-panel__field .receipt-panel__check input[type=checkbox]:checked{border-color:var(--accent)}.receipt-panel__seal{border:1px solid var(--border);border-radius:8px;align-items:center;gap:14px;margin-top:14px;padding:10px 12px;display:flex}.receipt-panel__seal-label{color:var(--ink);white-space:nowrap;font-size:13px;font-weight:600}.receipt-panel__seal-preview{border:1px dashed var(--border);background:#fff;border-radius:6px;flex:none;justify-content:center;align-items:center;width:64px;height:64px;display:flex}.receipt-panel__seal-preview img{object-fit:contain;max-width:56px;max-height:56px}.receipt-panel__seal-body{flex-direction:column;gap:4px;min-width:0;display:flex}.receipt-panel__seal-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.receipt-panel__items{flex-direction:column;margin-top:8px;display:flex}.receipt-sheet{flex-direction:column;padding:12mm 12mm 8mm;font-family:Malgun Gothic,Apple SD Gothic Neo,sans-serif;font-size:9.5pt;display:flex}.receipt-sheet__head{justify-content:space-between;margin-bottom:5mm;font-size:8.5pt;display:flex}.receipt-sheet__rev{color:#2b46c8}.receipt-sheet__side{align-self:flex-end}.receipt-sheet__title{text-align:center;letter-spacing:1mm;margin:0 0 3mm;font-size:19pt;font-weight:800}.receipt-sheet table{border-collapse:collapse;table-layout:fixed;width:100%}.receipt-sheet__info{border-top:1.4px solid #111;border-bottom:1.4px solid #111}.receipt-sheet__info td{white-space:nowrap;border-top:.6px solid #888;border-left:.6px solid #888;height:7.8mm;padding:0 2.5mm;overflow:hidden}.receipt-sheet__info tr:first-child td{border-top:none}.receipt-sheet__info td:first-child{border-left:none}.receipt-sheet__info td.receipt-sheet__side-head{text-align:center;padding:0}.receipt-sheet__label{min-width:27mm;margin-right:2mm;display:inline-block}.receipt-sheet__section{text-align:center;margin:4mm 0 3mm;font-size:11pt;font-weight:700}.receipt-sheet__grid{border-top:1.4px solid #111;border-bottom:1.4px solid #111}.receipt-sheet__grid th,.receipt-sheet__grid td{text-align:center;border:.6px solid #888;height:7.6mm;padding:0 1.5mm;font-weight:400;line-height:1.25}.receipt-sheet__grid tr>:first-child{border-left:none}.receipt-sheet__grid tr>:last-child{border-right:none}.receipt-sheet__grid thead tr:first-child th{border-top:none}.receipt-sheet__grid tbody tr:last-child td{border-top:1px solid #111;border-bottom:none}.receipt-sheet__small{font-size:8.5pt}.receipt-sheet__text{word-break:keep-all;overflow-wrap:anywhere;font-size:8.5pt}.receipt-sheet__grid td.receipt-sheet__amount{text-align:right}.receipt-sheet__purpose{border-bottom:1.4px solid #111}.receipt-sheet__purpose td{height:8mm;padding:0 3mm}.receipt-sheet__purpose td.receipt-sheet__purpose-head{text-align:center;border-right:.6px solid #888}.receipt-sheet__statement{text-align:center;margin:5mm 0 0;font-size:10pt}.receipt-sheet__statement--confirm{text-align:left;margin-top:2mm;padding-left:9mm}.receipt-sheet__date{text-align:right;margin:4mm 3mm 0 0;font-size:10pt}.receipt-sheet__date span{text-align:right;min-width:9mm;display:inline-block}.receipt-sheet__sign{border-bottom:2.4px solid #8a8a8a;align-items:flex-end;margin-top:4mm;padding:0 3mm 1.5mm 0;font-size:10pt;display:flex;position:relative}.receipt-sheet__signer{width:18mm;margin-left:80mm}.receipt-sheet__signer-name{flex:1}.receipt-sheet__sign-mark{color:#8a8a8a;font-size:9pt;position:relative}.receipt-sheet__seal{object-fit:contain;width:15mm;height:15mm;position:absolute;bottom:-4.5mm;right:3mm}.receipt-sheet__foot{text-align:right;margin-top:auto;padding-top:3mm;font-size:8pt}.receipt-back__side{text-align:right;margin-bottom:1.5mm;font-size:8.5pt}.receipt-back__rule,.receipt-back__end{border-top:2.4px solid #6f6f6f}.receipt-back__blank{height:52mm}.receipt-back__title{text-align:center;-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#bdbdbd;border-top:2.4px solid #6f6f6f;border-bottom:.6px solid #888;padding:3.5mm 0;font-size:10.5pt}.receipt-back__body{padding:4mm 0;font-size:8.4pt;line-height:1.55}.receipt-back__body p{margin:0}.receipt-back__body ul,.receipt-back__body ol{margin:0;padding:0;list-style:none}.receipt-back__dash>li{padding-left:5mm;position:relative}.receipt-back__dash>li:before{content:"-";position:absolute;left:1.5mm}.receipt-back__num{counter-reset:receipt-num}.receipt-back__num>li{counter-increment:receipt-num;padding-left:4mm;position:relative}.receipt-back__num>li:before{content:counter(receipt-num) ".";position:absolute;left:0}.receipt-back__star{text-indent:-2mm;padding-left:7mm}.receipt-back__kor>li{padding-left:5mm;position:relative}.receipt-back__kor>li:before{content:attr(data-mark);position:absolute;left:0}@media (max-width:760px){.receipt-panel__wide{grid-column:auto}.student-subview__search{width:100%;margin-left:0}.student-subview__search input{flex:1;width:auto}}.survey-portal-card{background:#f4f8fd;border-color:#d6e4f5;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.survey-portal-card .panel__title{margin:0 0 6px}.survey-portal-card .panel__meta{margin:0 0 8px}.survey-portal-card__url{word-break:break-all;background:#fff;border:1px solid #d6e4f5;border-radius:6px;padding:4px 10px;font-size:13px;display:inline-block}.survey-portal-card__actions{flex-wrap:wrap;gap:8px;display:flex}.survey-badge{vertical-align:middle;margin-left:6px}.survey-editor__top{grid-template-columns:minmax(0,1fr);align-items:start;gap:16px;margin-bottom:20px;display:grid}.survey-editor__top .panel{margin-bottom:0}.survey-form{border-top:1px solid var(--border);flex-direction:column;display:flex}.survey-form__row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 0;display:flex}.survey-form__label{width:80px;color:var(--ink);flex:none;font-size:13px;font-weight:700}.survey-form__row>input,.survey-form__row>textarea{border:1px solid var(--border);border-radius:6px;flex:1;min-width:0;padding:8px 10px;font-family:inherit;font-size:13px}.survey-form__row>input[type=date]{flex:0 180px}.survey-form__radios,.survey-form__checks{flex-wrap:wrap;gap:8px 18px;font-size:13px;display:flex}.survey-form__radios label,.survey-form__checks label{cursor:pointer;align-items:center;gap:6px;display:flex}.survey-links{border:1px solid var(--border);background:#fafbfb;border-radius:6px;flex-direction:column;gap:6px;max-height:260px;padding:8px;display:flex;overflow-y:auto}.survey-links__item{border:1px solid var(--border);background:#fff;border-radius:6px;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;padding:8px 10px;display:grid}.survey-links__name{font-size:13px;font-weight:600}.survey-links__name small{color:var(--text-muted);font-weight:400}.survey-links__meta{color:var(--text-muted);grid-column:1;font-size:12px}.survey-links__actions{grid-area:1/2/span 2;align-items:center;gap:6px;display:flex}.survey-links__form{border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:10px;margin-top:14px;padding:14px;display:flex}.survey-links__form strong{font-size:13px}.survey-links__form select,.survey-links__dates input{border:1px solid var(--border);border-radius:6px;min-width:0;height:36px;padding:0 8px;font-size:13px}.survey-links__check{align-items:center;gap:6px;font-size:13px;display:flex}.survey-links__dates{align-items:center;gap:8px;display:flex}.survey-links__dates input{flex:1}.course-surveys__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.course-surveys__group{border:1px solid var(--border);background:#fafbfb;border-radius:6px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.course-surveys__title{color:var(--ink);font-size:13px;font-weight:700}.course-surveys__item{cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex;font-weight:400!important}.course-surveys__item small{color:var(--text-muted)}@media (max-width:960px){.course-surveys__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.survey-q-tools{background:#eaf7ef;border:1px solid #c8e8d4;border-radius:6px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;padding:12px 14px;display:flex}.survey-q-tools__import{flex:320px;gap:6px;display:flex}.survey-q-tools__import select{border:1px solid var(--border);border-radius:6px;flex:1;min-width:0;height:32px;padding:0 8px;font-size:13px}.survey-q{border-top:1px solid var(--border);padding:12px 0}.survey-q__head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.survey-q__no{background:var(--accent);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;font-weight:700;display:inline-flex}.survey-q__text{border:1px solid var(--border);border-radius:6px;flex:300px;min-width:0;height:34px;padding:0 10px;font-size:14px}.survey-q__required{align-items:center;gap:4px;font-size:13px;display:flex}.survey-q__options{flex-direction:column;gap:6px;margin:10px 0 0 34px;display:flex}.survey-q__option{align-items:center;gap:8px;display:flex}.survey-q__option>span:first-child{width:20px;color:var(--accent);font-size:15px}.survey-q__option input{border:1px solid var(--border);border-radius:6px;min-width:0;height:32px;padding:0 8px;font-size:13px}.survey-q__option input:first-of-type{flex:1}.survey-q__score-label{color:var(--text-muted);font-size:12px}.survey-q__option input.survey-q__score{text-align:center;flex:none;width:60px}.survey-q__add{align-self:flex-start}.survey-q__textarea{border:1px dashed var(--border);color:var(--text-muted);border-radius:6px;margin:10px 0 0 34px;padding:14px;font-size:13px}.survey-editor__footer{border-top:1px solid var(--border);justify-content:center;padding-top:16px;display:flex}.survey-results__filters{flex-wrap:wrap;align-items:flex-end;gap:12px 16px;display:flex}.survey-results__filters label{flex-direction:column;gap:4px;min-width:0;font-size:13px;font-weight:600;display:flex}.survey-results__filters select,.survey-results__filters input{border:1px solid var(--border);border-radius:6px;min-width:0;max-width:100%;height:36px;padding:0 8px;font-size:13px;font-weight:400}.survey-results__filters select{width:320px}.survey-results__dates{align-items:center;gap:6px;display:flex}.survey-results__summary{justify-content:space-between;align-items:center;gap:12px;display:flex}.survey-results__title{margin-bottom:4px;font-size:16px;font-weight:700}.survey-results__count{white-space:nowrap;font-size:14px}.survey-results__count strong{color:var(--accent);font-size:24px}.survey-result-q{break-inside:avoid}.survey-result-q__head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.survey-result-q__bars{flex-direction:column;gap:8px;padding-left:36px;display:flex}.survey-result-q__bar{grid-template-columns:minmax(120px,220px) minmax(0,1fr) 110px;align-items:center;gap:12px;font-size:13px;display:grid}.survey-result-q__track{background:#eef0f1;border-radius:7px;height:14px;overflow:hidden}.survey-result-q__fill{background:var(--accent);-webkit-print-color-adjust:exact;print-color-adjust:exact;border-radius:7px;height:100%;display:block}.survey-result-q__value{text-align:right;color:var(--text)}.survey-result-q__texts{flex-direction:column;gap:6px;margin:0 0 0 36px;padding:0;list-style:none;display:flex}.survey-result-q__texts li{white-space:pre-wrap;background:#f7f8f8;border-radius:6px;padding:8px 12px;font-size:13px}.download-period{flex-wrap:wrap;align-items:center;gap:8px 10px;display:flex}.download-period__label{font-size:13px;font-weight:700}.download-period input{border:1px solid var(--border);border-radius:6px;height:34px;padding:0 8px}.download-list{flex-direction:column;display:flex}.download-item{align-items:flex-start;gap:16px;display:flex}.download-item__icon{background:var(--accent-tint);width:44px;height:44px;color:var(--accent);border-radius:10px;flex:none;justify-content:center;align-items:center;display:flex}.download-item__body{flex:1;min-width:0}.download-item__body h2{margin:2px 0 4px;font-size:16px}.download-item__body p{color:var(--text-muted);margin:0 0 12px;font-size:13px}.download-item__controls{flex-wrap:wrap;gap:8px;display:flex}.download-item__controls select{border:1px solid var(--border);border-radius:6px;flex:0 460px;min-width:0;height:36px;padding:0 8px;font-size:13px}@media (max-width:960px){.survey-editor__top{grid-template-columns:1fr}.survey-result-q__bar{grid-template-columns:1fr 90px}.survey-result-q__track{grid-area:2/1/auto/-1}.survey-results__filters select{width:100%}}.user-row--retired td{color:var(--text-muted);background:#fafafa}.user-menus{flex-wrap:wrap;justify-content:center;gap:4px;display:flex}.user-menus__chip{background:var(--accent-tint);color:var(--accent);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:12px}.user-docs{color:#b0b4b8;flex-direction:column;align-items:flex-start;gap:2px;font-size:12px;display:flex}.user-docs__item{white-space:nowrap}.user-docs__item.is-done{color:var(--accent);font-weight:600}.staff-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.staff-form__col{flex-direction:column;gap:16px;min-width:0;display:flex}.staff-form__col .panel{margin-bottom:0}.staff-card__head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin:-4px 0 16px;padding-bottom:12px;display:flex}.staff-card__head h2{margin:0;font-size:15px}.staff-card__required{color:#c0392b;font-size:12px;font-weight:600}.user-name{align-items:center;gap:10px;display:inline-flex}.user-avatar{background:#eef0f2;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex;overflow:hidden}.user-avatar img,.user-avatar svg{object-fit:cover;width:100%;height:100%}.staff-detail__income{padding:4px 0 8px 4px}.staff-photo{background:#f5f6f7;border-radius:50%;justify-content:center;align-items:center;width:120px;height:120px;display:flex;overflow:hidden}.staff-photo img{object-fit:cover;width:100%;height:100%}.staff-photo__actions{gap:6px;margin-top:8px;display:flex}.staff-photo__note{color:var(--text-muted);text-align:center;margin:8px 0 0;font-size:12px}.portal-field .portal-field__mark--optional{color:#5b6b82}.portal-field select{background:0 0;border:none;flex:1;min-width:0;height:38px;padding:0 10px;font-size:13px}.staff-field__hint{color:var(--text-muted);flex:none;align-items:center;padding:0 12px;font-size:12px;display:flex}.staff-guide{text-align:center;background:#e2e4e6;border-radius:8px;padding:20px 22px;font-size:13px;line-height:1.7}.staff-guide h3{color:#6b7280;margin:0 0 6px;font-size:20px;font-weight:400}.staff-guide p{margin:0}.staff-guide__small{color:#4b5563;font-size:12px}.staff-guide__warn{color:#b5541c;font-size:12px;margin-top:8px!important}.staff-detail{flex-direction:column;gap:8px;display:flex}.staff-detail>.portal-field{flex:none}.staff-detail__label{margin-top:8px;font-size:13px;font-weight:700}.staff-detail__label small{color:var(--text-muted);margin-left:6px;font-weight:400}.staff-detail__row{align-items:center;gap:12px;display:flex}.staff-detail__group{flex:0 260px;max-width:260px}.staff-detail__link{color:var(--text);font-size:12px}.staff-detail__link:hover{color:var(--accent)}.staff-detail__menus{background:#f7f8f8;border-radius:6px;flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px;display:flex}.staff-detail__menus .user-menus{justify-content:flex-start}.staff-detail__memo{box-sizing:border-box;border:1px solid var(--border);resize:vertical;border-radius:6px;width:100%;padding:10px 12px;font-family:inherit;font-size:13px}.staff-docs{flex-direction:column;gap:10px;display:flex}.staff-docs__row{grid-template-columns:150px minmax(0,1fr);align-items:center;gap:10px;display:grid}.staff-docs__label{font-size:13px;font-weight:600}.staff-docs__empty{text-align:center;color:#4b5563;margin:8px 0;font-size:15px;font-weight:700}.perm-guide{margin:0 0 14px;line-height:1.7}.perm-table__scroll{overflow-x:auto}.perm-table{min-width:980px}.perm-table__check{text-align:center}.perm-table__system td{background:#fafbfb}.perm-table__name,.perm-table select{border:1px solid var(--border);border-radius:6px;width:140px;height:32px;padding:0 8px;font-size:13px}.perm-table__new td{background:#f3faf6}@media (max-width:960px){.staff-form,.staff-docs__row{grid-template-columns:1fr}}.revenue-formula{background:#f4f8fd;border-color:#d6e4f5;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 32px;display:flex}.revenue-formula__label{color:#1f4e9a;margin-bottom:8px;font-size:12px;font-weight:700;display:block}.revenue-formula__expr{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.revenue-formula__term{color:var(--ink);background:#fff;border:1px solid #d6e4f5;border-radius:8px;flex-direction:column;align-items:center;padding:8px 14px;font-size:15px;font-weight:700;display:inline-flex}.revenue-formula__term small{color:var(--text-muted);margin-top:2px;font-size:11px;font-weight:400}.revenue-formula__op{color:#1f4e9a;font-size:18px;font-weight:700}.revenue-formula__rules{flex-direction:column;gap:6px;font-size:13px;display:flex}.revenue-tag{-webkit-print-color-adjust:exact;print-color-adjust:exact;border-radius:4px;justify-content:center;align-items:center;min-width:22px;padding:1px 6px;font-size:11px;font-weight:700;display:inline-flex}.revenue-tag--before{color:#1c6b3d;background:#e3f5ea}.revenue-tag--after{color:#a35b00;background:#fff1db}.revenue-tabs{margin-bottom:16px}.revenue-year-bar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.revenue-year-bar select{border:1px solid var(--border);border-radius:6px;height:34px;padding:0 10px;font-size:14px;font-weight:700}.revenue-year-bar__total{margin-left:auto;font-size:14px}.revenue-year-bar__total strong{color:var(--accent);margin-left:6px;font-size:22px}.revenue-cal{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.revenue-cal--years{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.revenue-cell{border:1px solid var(--border);text-align:left;cursor:pointer;background:#fff;border-radius:10px;flex-direction:column;align-items:stretch;gap:6px;padding:14px 16px;transition:border-color .15s,box-shadow .15s;display:flex}.revenue-cell:hover{border-color:var(--accent)}.revenue-cell.is-current{background:#f6fbf8}.revenue-cell.is-selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-tint)}.revenue-cell.is-empty .revenue-cell__amount{color:#b0b4b8}.revenue-cell__title{color:var(--text);font-size:13px;font-weight:700}.revenue-cell.is-current .revenue-cell__title:after{content:"이번 달";background:var(--accent);color:#fff;border-radius:999px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:600}.revenue-cal--years .revenue-cell.is-current .revenue-cell__title:after{content:"올해"}.revenue-cell__amount{color:var(--ink);font-size:20px;font-weight:800}.revenue-cell__bar{background:#eef0f1;border-radius:3px;height:6px;overflow:hidden}.revenue-cell__bar span{background:var(--accent);border-radius:3px;height:100%;display:block}.revenue-cell__split{color:var(--text);justify-content:space-between;gap:6px;font-size:12px;display:flex}.revenue-cell__meta{color:var(--text-muted);font-size:12px}.revenue-detail__scroll{overflow-x:auto}.revenue-detail{min-width:860px}.revenue-detail__formula{color:var(--text);white-space:nowrap;font-size:13px}.revenue-detail td.revenue-detail__amount{text-align:right;white-space:nowrap;font-weight:700}.revenue-detail__subtotal td{text-align:right;background:#fafbfb;font-weight:600}.revenue-detail__total td{background:var(--accent-tint);text-align:right;font-size:15px;font-weight:800}@media (max-width:960px){.revenue-cal{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:640px){.revenue-cal{grid-template-columns:repeat(2,minmax(0,1fr))}.revenue-year-bar__total{width:100%;margin-left:0}}.portal-login{background:#f3f5f8;justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.portal-login__card{background:#fff;border-radius:16px;flex-direction:column;gap:16px;width:100%;max-width:560px;padding:40px 36px 32px;display:flex;box-shadow:0 12px 36px #0f204014}.portal-login__title{text-align:center;color:#0d1b2a;margin:0 0 8px;font-size:30px;font-weight:800}.portal-login__phone{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.portal-login__phone input,.portal-login__password{color:#111;background:#fff;border:1px solid #dfe3e8;border-radius:10px;min-width:0;height:54px;padding:0 18px;font-size:18px}.portal-login__phone input:focus,.portal-login__password:focus{border-color:#2b4a75;outline:none;box-shadow:0 0 0 2px #2b4a7526}.portal-login__submit{color:#fff;cursor:pointer;background:#0e2240;border:none;border-radius:10px;height:54px;font-size:18px;font-weight:700}.portal-login__submit:disabled{opacity:.6}.portal-login__error{color:#b42318;background:#fdecec;border-radius:8px;padding:10px 12px;font-size:14px}.portal-login__help{text-align:center;color:#6b7280;margin:4px 0 0;font-size:13px;line-height:1.6}.portal-shell{color:#1f2937;background:#f3f5f8;grid-template-rows:52px 1fr;grid-template-columns:72px 1fr;min-height:100vh;display:grid}.portal-header{background:#fff;border-bottom:1px solid #e5e7eb;grid-column:1/-1;align-items:center;gap:16px;padding:0 20px;display:flex}.portal-header__brand{color:#0e2240;white-space:nowrap;align-items:center;gap:8px;font-size:16px;font-weight:800;display:flex}.portal-header__logo{width:auto;height:34px;display:block}.portal-header__mark{color:#fff;background:#1f4e9a;border-radius:6px;justify-content:center;align-items:center;width:26px;height:26px;font-size:14px;display:inline-flex}.portal-header__sub{color:#6b7280;font-size:14px;font-weight:500}.portal-header__right{align-items:center;gap:14px;min-width:0;margin-left:auto;display:flex}.portal-header__course{background:#fff;border:1px solid #e5e7eb;border-radius:6px;min-width:0;max-width:360px;height:32px;padding:0 8px;font-size:13px;font-weight:600}.portal-header__user{white-space:nowrap;align-items:center;gap:8px;font-size:13px;display:flex}.portal-header__user span:last-child{flex-direction:column;line-height:1.2;display:flex}.portal-header__user small{color:#6b7280;font-size:11px}.portal-header__avatar{color:#1f4e9a;background:#e8eef7;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-weight:700;display:inline-flex}.portal-header__logout{color:#4b5563;cursor:pointer;background:0 0;border:none;padding:6px;display:flex}.portal-nav{background:#fff;border-right:1px solid #e5e7eb;flex-direction:column;padding-top:8px;display:flex}.portal-nav__item{color:#6b7280;flex-direction:column;align-items:center;gap:4px;padding:12px 0;font-size:11px;display:flex}.portal-nav__item.is-active{color:#1f4e9a;background:#eaf1fb;font-weight:700}.portal-main{flex-direction:column;gap:16px;min-width:0;padding:20px 24px 40px;display:flex}.portal-head{background:#eef5fd;border:1px solid #d6e4f5;border-radius:12px;justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px;display:flex}.portal-head__path{color:#7a8699;font-size:12px}.portal-head__title{color:#0e2240;margin:6px 0 4px;font-size:22px;font-weight:800}.portal-head__desc{color:#4b5563;margin:0;font-size:13px}.portal-head__tag,.portal-chip{color:#1f4e9a;white-space:nowrap;background:#e1ebf8;border-radius:999px;align-items:center;padding:2px 10px;font-size:12px;font-weight:600;display:inline-flex}.portal-chip--gray{color:#4b5563;background:#eef0f3}.portal-chip--green{color:#1c6b3d;background:#e3f5ea}.portal-chip--blue{color:#fff;background:#1f4e9a}.portal-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:16px 20px}.portal-card__head{justify-content:space-between;align-items:center;gap:12px;margin:-4px 0 12px;display:flex}.portal-card__head h2{color:#111827;margin:0;font-size:15px;font-weight:700}.portal-card__head h2 small{color:#6b7280;margin-left:8px;font-size:12px;font-weight:400}.portal-card__count{color:#4b5563;font-size:12px}.portal-button{color:#fff;cursor:pointer;white-space:nowrap;background:#1f4e9a;border:none;border-radius:8px;justify-content:center;align-items:center;gap:6px;height:36px;padding:0 16px;font-size:13px;font-weight:700;display:inline-flex}.portal-button:disabled{opacity:.6;cursor:default}.portal-button--sm{height:30px;padding:0 12px;font-size:12px}.portal-button--lg{height:48px;padding:0 48px;font-size:15px}.portal-button--light{color:#374151;background:#eef0f3}.portal-welcome{background:#f6f9fe;border-color:#d6e4f5;justify-content:space-between;align-items:center;gap:16px;display:flex}.portal-welcome__label{color:#1f4e9a;font-size:12px;font-weight:700}.portal-welcome__title{margin:6px 0 4px;font-size:20px;font-weight:800}.portal-welcome__desc{color:#6b7280;margin:0;font-size:13px}.portal-current{background:#eef5fd;border-color:#d6e4f5;align-items:center;gap:14px;display:flex}.portal-current__icon{color:#fff;background:#1f4e9a;border-radius:8px;flex:none;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.portal-current__label{color:#1f4e9a;font-size:12px}.portal-current__name{font-size:16px;font-weight:800}.portal-current__link{color:#1f4e9a;white-space:nowrap;margin-left:auto;font-size:13px}.portal-shortcuts{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.portal-shortcut{color:#1f4e9a;align-items:center;gap:14px;display:flex}.portal-shortcut div{flex-direction:column;gap:2px;display:flex}.portal-shortcut strong{color:#111827;font-size:14px}.portal-shortcut span{color:#6b7280;font-size:12px}.portal-courses{margin:0 -20px -16px;padding:0;list-style:none}.portal-courses li{border-top:1px solid #eef0f3}.portal-courses li.is-active{background:#f8fafd;box-shadow:inset 3px 0 #1f4e9a}.portal-courses button{text-align:left;cursor:pointer;color:#111827;background:0 0;border:none;flex-wrap:wrap;align-items:center;gap:10px;width:100%;padding:12px 20px;font-size:14px;display:flex}.portal-courses__name{flex:1;min-width:200px;font-weight:600}.portal-courses__period{color:#6b7280;font-size:12px}.portal-banner{text-align:center;background:#e4e4e4;border-radius:12px;padding:22px 16px}.portal-banner__name{color:#111;font-size:22px}.portal-banner__period{margin-top:6px;font-size:15px;font-weight:700}.portal-info-box{color:#24607a;white-space:pre-wrap;background:#e3f3f9;border:1px solid #b9e2ef;border-radius:8px;padding:14px 16px;font-size:13px;line-height:1.7}.portal-info-box p{margin:0}.portal-notice{color:#1c6b3d;background:#e8f6ee;border-radius:8px;padding:10px 14px;font-size:13px}.portal-table{border-collapse:collapse;width:100%;font-size:13px}.portal-table th{color:#4b5563;background:#f5f7fa;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;padding:10px 8px;font-size:12px;font-weight:600}.portal-table td{text-align:center;border-bottom:1px solid #eef0f3;padding:12px 8px}.portal-table__title{font-weight:600;text-align:left!important}.portal-table__title .portal-chip{margin-left:6px}.portal-table__link{color:#1f4e9a;text-underline-offset:3px;text-decoration:underline}.portal-view-bar{color:#6b5210;background:#fff6e0;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;font-size:13px;font-weight:600;display:flex}.portal-survey--view .portal-question__options label{cursor:default}.portal-survey--view .portal-question__text{resize:none;background:#f8f9fb}.portal-table__empty{color:#374151;background:#f8f9fb}.portal-table__muted{color:#6b7280;font-size:12px}.portal-survey{flex-direction:column;gap:14px;display:flex}.portal-question__title{align-items:flex-start;gap:10px;font-size:15px;font-weight:700;line-height:1.5;display:flex}.portal-question__no{color:#fff;background:#1f4e9a;border-radius:50%;flex:none;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;display:inline-flex}.portal-question__required{color:#b42318;background:#fdecec;border-radius:999px;flex:none;margin-top:2px;padding:1px 8px;font-size:11px}.portal-question__options{flex-direction:column;gap:8px;margin-top:12px;padding-left:36px;display:flex}.portal-question__options label{cursor:pointer;border:1px solid #e5e7eb;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;display:flex;position:relative}.portal-question__options label.is-checked{background:#eef5fd;border-color:#1f4e9a;font-weight:600}.portal-question__options input[type=radio]{opacity:0;pointer-events:none;position:absolute}.portal-question__mark{color:#1f4e9a;font-size:16px}.portal-question__text{resize:vertical;box-sizing:border-box;border:1px solid #e5e7eb;border-radius:8px;width:calc(100% - 36px);margin:12px 0 0 36px;padding:10px 12px;font-family:inherit;font-size:14px;display:block}.portal-survey__actions{justify-content:center;gap:10px;padding:8px 0 24px;display:flex}.portal-done{text-align:center;padding:40px 20px}.portal-done h2{margin:0 0 18px;font-size:18px}.portal-profile{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.portal-profile__col{flex-direction:column;gap:16px;min-width:0;display:flex}.portal-basic{gap:24px;display:flex}.portal-basic__photo{flex-direction:column;flex:none;align-items:center;gap:6px;width:140px;display:flex}.portal-basic__photo-box{color:#9ca3af;background:#f5f7fa;border:1px solid #e5e7eb;border-radius:6px;justify-content:center;align-items:center;width:120px;height:150px;font-size:12px;display:flex;overflow:hidden}.portal-basic__photo-box img{object-fit:cover;width:100%;height:100%}.portal-basic__fields{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.portal-field{background:#fff;border:1px solid #e0e4ea;border-radius:6px;flex:1;align-items:stretch;min-width:0;display:flex;overflow:hidden}.portal-field__mark{color:#c0392b;background:#eef2f8;flex:none;justify-content:center;align-items:center;width:30px;font-weight:800;display:flex}.portal-field input{background:0 0;border:none;flex:1;min-width:0;height:38px;padding:0 12px;font-size:13px}.portal-field--split input+input{border-left:1px solid #e0e4ea}.portal-field--readonly{background:#eceeef}.portal-form>.portal-field{flex:none}.portal-field--narrow{flex:0 200px;max-width:200px}.portal-field__btn{color:#fff;cursor:pointer;background:#2b7cc4;border:none;flex:none;padding:0 14px;font-size:13px;font-weight:700}.portal-gender{gap:18px;padding:4px 0 0 4px;font-size:13px;display:flex}.portal-gender label{align-items:center;gap:6px;display:flex}.portal-mini-btn{cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #e0e4ea;border-radius:6px;padding:4px 10px;font-size:12px}.portal-mini-btn--add{color:#1f4e9a;border-color:#b9cde8;align-self:flex-start}.portal-tabs{border-bottom:1px solid #e5e7eb;margin:-16px -20px 16px;display:flex}.portal-tabs button{color:#9ca3af;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:14px 24px;font-size:14px}.portal-tabs button.is-active{color:#111827;background:#f5f7fa;border-bottom-color:#1f4e9a;font-weight:700}.portal-form{flex-direction:column;gap:10px;display:flex}.portal-form__label{margin-top:6px;font-size:13px;font-weight:700}.portal-form__label small{color:#6b7280;margin-left:6px;font-weight:400}.portal-form__warn{color:#e05252!important}.portal-form__row{gap:8px;min-width:0;display:flex}.portal-form__row>input,.portal-form__row>select{background:#fff;border:1px solid #e0e4ea;border-radius:6px;flex:1;min-width:0;height:38px;padding:0 10px;font-size:13px}.portal-form__row--inline{flex-wrap:wrap;align-items:center}.portal-form__row--inline>span{white-space:nowrap;font-size:13px;font-weight:600}.portal-form__row--inline>input[type=month],.portal-form__row--inline>input[type=date]{flex:0 160px}.portal-repeat{border:1px dashed #e0e4ea;border-radius:8px;flex-direction:column;gap:8px;padding:12px;display:flex}.portal-file{border:1px solid #e0e4ea;border-radius:6px;align-items:stretch;min-height:38px;display:flex;overflow:hidden}.portal-file__name{white-space:nowrap;text-overflow:ellipsis;flex:1;align-items:center;min-width:0;padding:0 12px;font-size:13px;display:flex;overflow:hidden}.portal-file__name button{cursor:pointer;background:0 0;border:none;padding:0;font-size:13px}.portal-file__empty{color:#9ca3af}.portal-file__btn{color:#1f4e9a;cursor:pointer;background:#e9f1fb;border:none;border-left:1px solid #e0e4ea;flex:none;padding:0 16px;font-size:13px;font-weight:600}.portal-file__btn--light{color:#6b7280;background:#fff}.portal-guide{background:#e2e4e6;border-radius:12px;padding:20px 22px;font-size:13px;line-height:1.7}.portal-guide h3{margin:0 0 4px;font-size:16px}.portal-guide strong{color:#1f4e9a}.portal-guide p{margin:4px 0 0}.portal-profile__actions{justify-content:center;display:flex}.portal-tt__weeks{justify-content:center;margin-bottom:16px;display:flex}.portal-tt__weeks button{color:#fff;cursor:pointer;background:#1f7ac4;border:none;width:36px;font-size:20px}.portal-tt__weeks button:first-child{border-radius:6px 0 0 6px}.portal-tt__weeks button:last-child{border-radius:0 6px 6px 0}.portal-tt__weeks button:disabled{opacity:.4;cursor:default}.portal-tt__weeks select{text-align:center;border:1px solid #e0e4ea;width:420px;max-width:60vw;height:38px;font-size:13px}.portal-tt__scroll{overflow-x:auto}.portal-tt{border-collapse:collapse;table-layout:fixed;width:100%;min-width:860px;font-size:12px}.portal-tt th,.portal-tt td{vertical-align:top;border:1px solid #e5e7eb;padding:8px 6px}.portal-tt thead th{color:#4b5563;background:#f5f7fa;font-weight:600}.portal-tt thead th.is-sun{color:#e03131}.portal-tt thead th.is-sat{color:#1c7ed6}.portal-tt tbody th{text-align:center;background:#fafbfc;width:120px}.portal-tt__period{font-size:13px;font-weight:700}.portal-tt__time{color:#6b7280;margin-top:4px;font-weight:400}.portal-tt td{height:64px}.portal-tt td.is-class{background:#f8fbff}.portal-tt__class{background:#e8f0fb;border-left:3px solid #1f4e9a;border-radius:4px;flex-direction:column;gap:3px;padding:6px 8px;display:flex}.portal-tt__class strong{font-size:12px}.portal-tt__class span{color:#4b5563}.portal-docs{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.portal-doc{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.portal-doc h2{margin:0;font-size:16px}.portal-doc p{color:#6b7280;flex:1;margin:0;font-size:13px}.portal-doc.is-disabled{opacity:.65}.portal-print{margin:-20px -24px -40px}.portal-print__error,.portal-print__warn{border-radius:8px;max-width:1000px;margin:16px auto 0;padding:10px 14px;font-size:13px}.portal-print__error{color:#b42318;background:#fdecec}.portal-print__warn{color:#6b5210;background:#fff6e0}@media (max-width:900px){.portal-profile{grid-template-columns:1fr}.portal-basic{flex-direction:column;align-items:center}.portal-basic__fields{width:100%}}@media (max-width:640px){.portal-shell{grid-template-rows:auto auto 1fr;grid-template-columns:1fr}.portal-header{flex-wrap:wrap;padding:8px 16px}.portal-header__right{width:100%;margin-left:0}.portal-header__course{flex:1;max-width:none}.portal-nav{border-bottom:1px solid #e5e7eb;border-right:none;flex-direction:row;padding-top:0;overflow-x:auto}.portal-nav__item{flex:1;min-width:64px}.portal-main{padding:16px}.portal-print{margin:-16px}.portal-welcome{flex-direction:column;align-items:flex-start}.portal-login__card{padding:28px 18px}.portal-login__title{font-size:24px}}@media print{@page{size:A4 portrait;margin:0}.print-toolbar,.nametag-picker{display:none}.app-shell--print{min-height:0;display:block}.app-shell--print .sidebar-logo,.app-shell--print .sidebar-menu{display:none}.app-shell--print .content-area,.app-shell--print .main-content{padding:0;display:block;overflow:visible}.print-page{background:#fff;min-height:0;padding:0}.nametag-sheet,.personal-card,.cert-sheet{margin:0}.cert-panel{display:none}.nametag-sheet{break-after:page;height:297mm}.nametag-sheet:last-child{break-after:auto}.app-shell:has(.survey-results){display:block}.survey-results__filters,.survey-results .page-header__badges{display:none!important}.app-shell:has(.survey-results) .sidebar-logo{display:none!important}.app-shell:has(.survey-results) .sidebar-menu{display:none!important}.app-shell:has(.survey-results) .main-content{padding:12mm 12mm 0;overflow:visible}.portal-shell{background:#fff;min-height:0;display:block}.portal-header,.portal-nav,.portal-print__warn{display:none!important}.portal-main{padding:0;display:block}.portal-print{margin:0}.receipt-sheet+.receipt-back{break-before:page}}.attendance-modal{width:min(1500px,96vw);max-width:96vw}.attendance-modal__scroll{max-height:55vh;overflow:auto}.attendance-modal__alerts{color:#b3263f;background:#fdecef;border:1px solid #e0526f;border-radius:10px;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:10px 14px;display:flex}.attsheet__day.is-target,.attsheet__table td.is-target{outline-offset:-2px;background:#fff7cc;outline:2px solid #e6b800}.attsheet__table td.is-disabled{color:#888;background:#f1f1f1}.attsheet__table tr.has-alert td:first-child,.attsheet__table tr.has-alert td:nth-child(2){font-weight:700;box-shadow:inset 4px 0 #e0526f}.attendance-modal__select{min-width:112px}.attendance-modal__note{box-sizing:border-box;width:150px}.attendance-modal__alert-cell{white-space:nowrap}.attendance-modal__body{flex-direction:column;gap:12px;padding:16px 24px 24px;display:flex}.attendance-modal__legend{color:var(--text-muted);flex-wrap:wrap;gap:4px 14px;font-size:13px;display:flex}.attendance-modal__table select,.attendance-modal__table input{box-sizing:border-box;width:100%}.attsheet__title{text-align:center;margin:0 0 16px;font-size:26px;text-decoration:underline}.attsheet__info{border-collapse:collapse;width:100%;margin-bottom:8px;font-size:13px}.attsheet__info th,.attsheet__info td{text-align:left;border:1px solid #8fa8c4;padding:6px 10px}.attsheet__info th{white-space:nowrap;background:#cfe0f2;width:140px}.attsheet__notice{color:#2a52be;margin:8px 0;font-size:12px}.attsheet__scroll{overflow-x:auto}.attsheet__table{border-collapse:collapse;min-width:100%;font-size:12px}.attsheet__table th,.attsheet__table td{text-align:center;white-space:nowrap;border:1px solid #8fa8c4;padding:4px 6px}.attsheet__table thead th{background:#cfe0f2}.attsheet__day.is-sat{color:#2a52be}.attsheet__day.is-sun{color:#d62839}.attsheet__day-btn{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.attsheet__day-btn:hover{text-decoration:underline}.attsheet__table tr.is-low td{background:#fbd5e0}.attsheet__table td.is-absent{background:#fff3a8;font-weight:700}.attsheet__cell{min-width:22px}.attsheet__legend{flex-wrap:wrap;gap:4px 14px;margin-top:14px;font-size:12px;display:flex}.attsheet__legend ul{color:var(--text-muted);flex:0 0 100%;margin:6px 0 0;padding-left:18px}@media print{.attsheet{border:0;padding:0;overflow:visible}.attsheet__scroll{overflow:visible}.attsheet__notice{display:none}}.attsheet__period{flex-wrap:wrap;align-items:center;gap:8px 12px;margin:12px 0 4px;display:flex}.attsheet__period label{font-size:13px;font-weight:700}@media print{.attsheet__period{display:none}}.attsheet__cell.is-off,.attsheet__day.is-off{background:#f1f2f3}.attsheet__day.is-off{color:#9aa0a6}.payroll-month{text-align:center;min-width:110px;font-size:16px}.payroll-rate{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 14px;display:flex}.payroll-rate label{font-size:13px;font-weight:700}.payroll-rate input{text-align:right;width:140px;padding:6px 8px}.course-session-guide{color:var(--text-muted);margin:8px 0 4px;padding-left:18px;font-size:12px;line-height:1.7}.course-session-guide strong{min-width:34px;color:var(--text);display:inline-block}.schedule-table-filters{flex-wrap:wrap;gap:8px 18px;margin:6px 0 10px;display:flex}.schedule-table-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.schedule-table-preview{background:#fff;border:1px solid #ddd;padding:28px 24px;overflow-x:auto;box-shadow:0 2px 10px #00000014}.schedule-table-header-edit{gap:8px;max-width:640px;margin:8px 0 4px;display:grid}.schedule-table-header-edit label{gap:3px;font-size:12px;font-weight:700;display:grid}.schedule-table-header-edit input,.schedule-table-header-edit textarea{border:1px solid #ccc;border-radius:6px;padding:6px 8px;font:13px/1.5 inherit}.schedule-table-code{color:#333;resize:vertical;background:#f6f7f8;border:1px solid #ddd;border-radius:6px;width:100%;margin-top:8px;padding:8px 10px;font:12px/1.5 Consolas,monospace}.portal-month__toggle{justify-content:center;gap:6px;margin-bottom:12px;display:flex}.portal-month__toggle button{color:#1f7ac4;cursor:pointer;background:#fff;border:1px solid #1f7ac4;border-radius:999px;padding:6px 16px;font-size:13px;font-weight:700}.portal-month__toggle button.is-active{color:#fff;background:#1f7ac4}.portal-month td{vertical-align:top;text-align:left;min-width:96px;height:92px}.portal-month td.is-out{background:#f5f6f7}.portal-month__day{color:#666;margin-bottom:4px;font-size:12px;font-weight:700}.portal-month__class{flex-direction:column;gap:2px;font-size:12px;line-height:1.35;display:flex}.portal-month__class strong{color:#1f7ac4;white-space:nowrap}.portal-month__class span{color:#444}.attendance-modal .attsheet__table{table-layout:fixed;width:100%}.attendance-modal .attsheet__table th,.attendance-modal .attsheet__table td{padding:3px 1px;overflow:hidden}.attendance-modal .attsheet__f{z-index:2;box-sizing:border-box;background:#fff;position:sticky}.attendance-modal .attsheet__table thead th.attsheet__f{z-index:4;background:#cfe0f2}.attendance-modal .attsheet__f1{width:32px;left:0}.attendance-modal .attsheet__f2{width:80px;left:32px}.attendance-modal .attsheet__f3{width:46px;left:112px}.attendance-modal .attsheet__f4{width:38px;left:158px}.attendance-modal .attsheet__f5{width:38px;left:196px}.attendance-modal .attsheet__f6{width:46px;left:234px}.attendance-modal .attsheet__f7{width:56px;left:280px;box-shadow:2px 0 #8fa8c4}.attendance-modal .attsheet__table tr.is-low td.attsheet__f{background:#fbd5e0}.attendance-modal .attsheet__note{width:130px}.attendance-modal .attsheet__note .attendance-modal__note{box-sizing:border-box;width:100%;padding:2px 4px;font-size:11px}.attendance-modal .attsheet__cell{min-width:0;padding:0}.attendance-modal__pick{height:32px;position:relative}.attendance-modal__symbol{text-align:center;pointer-events:none;font-size:26px;line-height:32px;display:block}.attendance-modal__symbol.is-absent{color:#d62839;font-size:32px;font-weight:700}.attendance-modal .attsheet__cell .attendance-modal__select{opacity:0;cursor:pointer;width:100%;min-width:0;height:100%;margin:0;padding:0;position:absolute;inset:0}.attendance-modal .attsheet__cell .attendance-modal__select:disabled{cursor:default}.attendance-modal .attendance-modal__alert-cell{padding:3px 2px}.attendance-modal .attendance-modal__alert-badge{box-sizing:border-box;text-align:center;white-space:nowrap;border-radius:4px;width:100%;min-width:0;padding:2px 0;font-size:11px;line-height:1.3;display:block}.portal-gender__req{color:#c0392b;margin-right:6px;font-weight:800}.cert-completion__academy{text-align:center;white-space:nowrap;letter-spacing:.02em;width:62mm;font-weight:700;line-height:8mm;position:absolute;top:252.95mm;left:76.4mm}.cert-completion__principal{text-align:center;white-space:nowrap;width:62mm;font-size:17pt;font-weight:700;line-height:8mm;position:absolute;top:263.05mm;left:76.4mm}.cert-spaced-name{letter-spacing:.4em;margin-right:-.4em}.attendance-modal .attsheet__table td.attsheet__podd,.attendance-modal .attsheet__table th.attsheet__podd{background:#eef5ff}.attendance-modal .attsheet__table td.attsheet__peven,.attendance-modal .attsheet__table th.attsheet__peven{background:#fff4e5}.attendance-modal .attsheet__table thead th.attsheet__podd{background:#cfe0f2}.attendance-modal .attsheet__table thead th.attsheet__peven{background:#f6dfb8}.attendance-modal .attsheet__table td.attsheet__pstart,.attendance-modal .attsheet__table th.attsheet__pstart{border-left:3px solid #3b5e91}.attendance-modal .attsheet__table td.is-off,.attendance-modal .attsheet__table th.is-off{background:#f1f2f3}.attendance-modal .attsheet__table td.is-target{background:#fff7cc}.attendance-modal__periods{margin-top:16px}.attendance-modal__periods .data-table{max-width:560px;margin-top:6px}.attendance-modal__chip{vertical-align:-2px;border:1px solid #8fa8c4;border-radius:3px;width:14px;height:14px;margin-right:6px;display:inline-block}.attendance-modal__chip.attsheet__podd{background:#cfe0f2}.attendance-modal__chip.attsheet__peven{background:#f6dfb8}.attendance-modal__periods-total td{background:#f4f6f8;font-weight:700}.attendance-modal__symbol.is-sick{color:#d9730d;font-weight:700}.staff-editor{gap:10px;margin:8px 0 12px;display:grid}.staff-editor__row{background:#fafbfc;border:1px solid #e0e4ea;border-radius:8px;gap:14px;padding:10px;display:flex}.staff-editor__row--new{background:#f3f8f4}.staff-editor__photo{text-align:center;color:#888;flex:none;width:110px;font-size:12px}.staff-editor__photo img{object-fit:cover;border:1px solid #ddd;border-radius:4px;width:100px;height:125px;margin:0 auto 6px;display:block}.staff-editor__photo>span{border:1px dashed #ccc;border-radius:4px;justify-content:center;align-items:center;width:100px;height:125px;margin:0 auto 6px;display:flex}.staff-editor__photo-actions{justify-content:center;gap:4px;display:flex}.staff-editor__photo-actions button{cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:4px;padding:2px 8px;font-size:12px}.staff-editor__fields{flex:1;gap:6px;min-width:0;display:grid}.staff-editor__line{gap:6px;display:flex}.staff-editor__line input:first-child{width:120px}.staff-editor__line input:last-child{flex:1}.staff-editor input,.staff-editor textarea{border:1px solid #ccc;border-radius:6px;padding:6px 8px;font:13px/1.5 inherit}.staff-editor__buttons{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.training-cost-inline{width:100%}.training-cost-inline__title{margin:0 0 12px;font-size:20px}.receipt-preview__sheet{background:#f2f2f2;padding:12px;overflow-x:auto}.training-cost-modal__preview-hint{color:#d62839;text-align:center;background:#fff1f2;border:2px solid #d62839;border-radius:8px;margin-top:4px;padding:10px 14px;font-size:16px;font-weight:800}.cert-completion__logo{object-fit:contain;width:32.5mm;height:22.7mm;position:absolute;top:28.1mm;left:89.9mm}.portal-job__choices{align-items:center;gap:14px;display:inline-flex}.job-consult-view{border:1px solid var(--border);background:#fafafa;border-radius:6px;padding:10px}.job-consult-view__empty{color:#d62839;margin:0 0 8px;font-weight:700}.job-consult-view__table{border-collapse:collapse;width:100%;font-size:13px}.job-consult-view__table th,.job-consult-view__table td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:6px 8px}.job-consult-view__table th{white-space:nowrap;background:#f1f3f5;font-weight:700}.job-consult-view__text{white-space:pre-wrap}.portal-form__row>textarea{resize:vertical;background:#fff;border:1px solid #e0e4ea;border-radius:6px;flex:1;width:100%;min-width:0;min-height:180px;padding:10px;font-size:13px;line-height:1.6}.portal-form__row--inline>input[type=time]{flex:0 140px}.counseling-modal__viewing{background:#eef9f1;border:1px solid #b7e1c4;border-radius:6px;margin:0 0 10px;padding:8px 12px;font-size:13px;font-weight:700}.cert-completion__medal{object-fit:contain;width:37.8mm;height:49.7mm;position:absolute;top:237.15mm;left:40.1mm}.attendance-modal .attsheet__name-link{color:var(--accent);white-space:nowrap;font-weight:700;text-decoration:underline}.alert-tabs{align-items:center;gap:24px;display:flex}.alert-tabs__tab{color:var(--text-light);cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;align-items:center;gap:10px;padding:6px 4px;font-size:18px;font-weight:700;display:inline-flex}.alert-tabs__tab.is-active{color:var(--ink);border-bottom-color:var(--accent)}
