*{box-sizing:border-box}body{margin:0;background:#f4f6f8;color:#182230;font-family:Inter,Pretendard,"Noto Sans KR",system-ui,sans-serif}button,input,select{font:inherit}aside{position:fixed;inset:0 auto 0 0;width:238px;background:#0d2138;color:white;padding:28px 18px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;padding:0 10px 32px}.brand>b{display:grid;place-items:center;width:39px;height:39px;background:#c9a65b;border-radius:11px;color:#10233a;font-size:22px}.brand span{display:flex;flex-direction:column}.brand strong{font-size:20px}.brand small,.sidefoot small{color:#91a1b2;font-size:11px}nav{display:grid;gap:6px}nav button{border:0;background:transparent;color:#9eb0c1;text-align:left;padding:13px 14px;border-radius:10px;cursor:pointer;font-weight:650}nav button.active,nav button:hover{background:#17334f;color:white}.sidefoot{margin-top:auto;border-top:1px solid #294057;padding:20px 10px 0;display:flex;flex-direction:column;color:#c7d1db;font-size:12px}main{margin-left:238px;min-height:100vh}header{height:88px;background:white;border-bottom:1px solid #e2e6ea;padding:18px 42px;display:flex;align-items:center;justify-content:space-between}header h1{font-size:21px;margin:3px 0}header small{color:#7a8795}.status{display:flex;align-items:center;gap:8px;color:#62707d;font-size:13px}.dot{width:7px;height:7px;background:#3cb371;border-radius:50%}.avatar{margin-left:12px;width:34px;height:34px;border:0;border-radius:50%;background:#e9edf1;color:#34465a}.page{display:none;padding:38px 42px 60px}.page.active{display:block}.hero{min-height:225px;background:linear-gradient(120deg,#102a45,#173d60);border-radius:18px;color:white;padding:40px;display:flex;justify-content:space-between;align-items:end;box-shadow:0 10px 28px #17334f18}.hero h2{font-size:32px;line-height:1.3;margin:10px 0}.hero em{color:#d5b56d;font-style:normal}.hero p{color:#c2cfda;max-width:610px}.eyebrow{font-size:11px;letter-spacing:1.4px;color:#b18d48;font-weight:800}.primary,.outline,.ghost{border-radius:9px;padding:11px 17px;font-weight:750;cursor:pointer}.primary{border:1px solid #c9a65b;background:#c9a65b;color:#10233a}.outline{border:1px solid #ccd4dc;background:white;color:#30455a}.ghost{border:0;background:#eef1f4;color:#526272}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}.stats article,.panel,.formcard,.choice,.weekstatus,.tablewrap,.notice{background:white;border:1px solid #e0e5ea;border-radius:13px}.stats article{padding:20px;position:relative}.stats small{display:block;color:#75818d;margin-bottom:10px}.stats b{font-size:30px}.stats span{margin-left:4px;color:#6d7883}.stats i{position:absolute;right:18px;bottom:21px;font-style:normal;color:#89949f;font-size:12px}.good{color:#21845a!important}.pill,.preset{display:inline-block;background:#edf1f5;color:#506173;padding:6px 10px;border-radius:20px;font-size:12px}.grid{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}.panel{padding:22px}.panelhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.panel h3,.panelhead h3{margin:0 0 14px}.link{border:0;background:none;color:#8b6c2e;cursor:pointer}.event{display:flex;align-items:center;gap:15px;padding:14px 0;border-top:1px solid #edf0f2}.event time{width:45px;text-align:center;color:#7c8792;font-size:11px}.event time big{display:block;font-size:20px;color:#29394a;font-weight:800}.event div{display:flex;flex-direction:column;flex:1}.event div span,.rules span{color:#84909b;font-size:12px;margin-top:4px}.tag{padding:5px 9px;border-radius:20px;font-size:11px}.done{background:#e8f6ef;color:#23805a}.muted{opacity:.6}.rules{list-style:none;padding:0;margin:0}.rules li{display:flex;gap:14px;border-top:1px solid #edf0f2;padding:12px 0}.rules li>b{color:#c2a05b;font-size:12px}.rules div{display:flex;flex-direction:column}.pageintro{display:flex;justify-content:space-between;align-items:end;margin-bottom:24px}.pageintro h2{font-size:29px;margin:7px 0}.pageintro p{margin:0;color:#788591}.formcard{padding:26px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.formgrid label,.panel>label{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:700}.formgrid input,.formgrid select,.panel select{padding:11px;border:1px solid #d5dce2;border-radius:8px;background:white}.wide{grid-column:1/-1}.periods{display:flex;gap:6px}.periods button{width:37px;height:39px;border:1px solid #d5dce2;background:white;border-radius:7px}.periods button.on{background:#163a5d;color:white;border-color:#163a5d}.actions{text-align:right;margin-top:24px}.notice{margin-top:14px;padding:17px 20px;display:flex;flex-direction:column;gap:5px;border-left:4px solid #c9a65b}.notice span{font-size:12px;color:#73808d}.recommendgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.choice{padding:23px;position:relative}.choice.best{border:2px solid #b7944c;box-shadow:0 8px 24px #b7944c18}.rank{font-size:26px;font-weight:900;color:#173a5b}.rank span{font-size:10px;background:#c9a65b;color:white;padding:4px 7px;border-radius:10px;vertical-align:middle}.choice h3{margin-bottom:22px}.choice>strong{font-size:15px}.choice>p{color:#84909b;font-size:12px}.score{background:#f4f6f8;padding:11px;margin:18px 0}.score b{float:right}.choice ul{list-style:none;padding:0;font-size:13px;line-height:2}.choice ul b{float:right}.choice>button{width:100%;margin-top:10px}.why{margin-top:16px;background:#102b46;color:white;padding:18px 22px;border-radius:11px;display:flex;gap:22px}.why span{color:#c4d0da;font-size:13px}.weekstatus{padding:16px 20px;display:flex;gap:15px;align-items:center;margin-bottom:14px}.weekstatus>span:last-child{margin-left:auto;color:#687684;font-size:12px}.tablewrap{overflow:hidden}.tablewrap table{width:100%;border-collapse:collapse;text-align:center}.tablewrap th{background:#f0f3f5;padding:13px;color:#61707e;font-size:12px}.tablewrap td{border:1px solid #e5e9ed;height:70px;font-size:12px}.tablewrap td:first-child{width:60px;font-weight:800;background:#fafbfc}.cell{padding:8px}.cell b{display:block}.cell span{font-size:10px;color:#87929d}.cell.changed{background:#fff6df;border-left:3px solid #c69b3e}.cell.block{background:#edf4fa;border-left:3px solid #547b9f}.legend{display:flex;gap:20px;margin-top:14px;color:#75818d;font-size:11px}.legend i{display:inline-block;width:9px;height:9px;margin-right:5px}.legend .normal{background:#fff;border:1px solid #ccd4dc}.legend .changed{background:#f0c765}.legend .block{background:#6e95b8}.presetcards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.presetcard{background:white;border:1px solid #dfe5ea;border-radius:11px;padding:18px;text-align:left;cursor:pointer}.presetcard.on{border:2px solid #b8944b;background:#fffcf5}.presetcard b,.presetcard span{display:block}.presetcard span{font-size:11px;color:#7c8995;margin-top:6px}.settingsgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.panel>label{padding:13px 0;border-top:1px solid #edf0f2}.checks{font-weight:400}.slider{display:grid;grid-template-columns:140px 1fr;align-items:center;padding:13px 0;border-top:1px solid #edf0f2;font-size:13px}#toast{position:fixed;right:25px;bottom:84px;z-index:9999;max-width:min(560px,calc(100vw - 40px));background:#17334f;color:white;padding:13px 18px;border-radius:9px;opacity:0;transform:translateY(8px);transition:.2s;pointer-events:none;white-space:normal;line-height:1.45;box-shadow:0 8px 24px #0d213855}#toast.show{opacity:1;transform:none}@media(max-width:900px){aside{width:70px;padding:24px 10px}.brand span,nav span,.sidefoot{display:none}.brand{padding-left:5px}.brand>b{width:38px}main{margin-left:70px}.page,header{padding-left:22px;padding-right:22px}.stats,.recommendgrid,.presetcards{grid-template-columns:1fr 1fr}.grid,.settingsgrid{grid-template-columns:1fr}.hero{align-items:start;flex-direction:column}.formgrid{grid-template-columns:1fr}.wide{grid-column:auto}}
.importsteps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:18px}.step{background:#e9edf1;padding:12px 14px;border-radius:9px;display:flex;align-items:center;gap:9px;color:#75818d;font-size:12px}.step b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:white}.step.on{background:#173a5b;color:white}.uploadgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.uploadcard{background:white;border:1px dashed #cbd4dc;border-radius:13px;padding:28px;text-align:center}.uploadcard h3{margin:10px 0 5px}.uploadcard p{color:#7b8894;font-size:12px}.uploadcard input{display:none}.filebtn{display:inline-block;margin:12px 0 8px;cursor:pointer}.uploadcard small{display:block;color:#89949e}.uploadicon{display:grid;place-items:center;margin:auto;width:38px;height:38px;border-radius:11px;background:#edf2f6;color:#173a5b;font-weight:900}.importactions{text-align:right;margin:16px 0}.hidden{display:none}.importstats{margin-top:0}.detectlist{display:grid;gap:8px}.detectitem{padding:11px 12px;background:#f6f8fa;border-radius:8px;font-size:12px;display:flex;justify-content:space-between}.detectitem strong{color:#30475d}.detectitem.warn{background:#fff7e7;color:#8a6622}.detectitem.error{background:#fff0f0;color:#a43b3b}.emptymsg{color:#87939e;font-size:12px;padding:18px 4px}.registerbar{margin-top:16px;background:#102b46;color:white;border-radius:12px;padding:18px 22px;display:flex;justify-content:space-between;align-items:center}.registerbar div{display:flex;flex-direction:column;gap:4px}.registerbar span{color:#bfcbd5;font-size:12px}
@media(max-width:900px){.uploadgrid{grid-template-columns:1fr}.importsteps{grid-template-columns:1fr 1fr}}


/* === MTime 3.20 unified timetabler controls === */
[hidden]{display:none!important}
.segmented{
  display:inline-flex;align-items:center;gap:3px;padding:4px;
  background:#edf3f8;border:1px solid #d2dce7;border-radius:12px;
}
.segmented .modebtn,.segmented .viewbtn{
  appearance:none;border:0!important;background:transparent!important;color:#36516a;
  border-radius:9px!important;padding:9px 15px!important;font-weight:750;line-height:1.15;
  cursor:pointer;box-shadow:none!important;transition:background .12s ease,color .12s ease;
}
.segmented .modebtn.on,.segmented .viewbtn.on{
  background:#153b5d!important;color:#fff!important;
}
.absenceMode{margin:8px 0 10px}
#customPeriods{margin-top:10px}
#customPeriods .periods{display:flex;gap:7px;flex-wrap:wrap}
#customPeriods .periods button{
  width:40px;height:40px;border:1px solid #cbd7e3;border-radius:9px;background:#fff;
  color:#18344e;font-weight:750;cursor:pointer;
}
#customPeriods .periods button.on{background:#153b5d;color:#fff;border-color:#153b5d}

.viewtoolbar{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:10px 12px;margin:12px 0 14px;background:#fff;border:1px solid #d9e2eb;border-radius:13px;
}
.persistbar{display:flex;align-items:center;margin:10px 0}
.secondaryActions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.toolbtn{
  appearance:none;background:#fff!important;color:#18344e!important;border:1px solid #cbd7e3!important;
  border-radius:10px!important;padding:10px 15px!important;font-weight:750;cursor:pointer;
}
.toolbtn:hover{background:#f6f9fc!important;border-color:#9fb2c5!important}
.finalActions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.autosaveStatus{font-size:13px;color:#5e7285;padding:0 4px}

.applyStatus{min-height:18px;margin-top:8px;font-size:12px;color:#607589}
#runBatchOptimization:disabled{opacity:.7;cursor:wait}

/* Primary actions stay gold; navigation/selection stays navy. */
.primary,#confirm,#runBatchOptimization{
  background:#d2aa55!important;color:#102b44!important;border-color:#d2aa55!important;
}

#runBatchOptimization.busy::after{content:"";display:inline-block;width:12px;height:12px;margin-left:8px;border:2px solid rgba(16,43,68,.25);border-top-color:#102b44;border-radius:50%;animation:mtimeSpin .8s linear infinite;vertical-align:-2px}
@keyframes mtimeSpin{to{transform:rotate(360deg)}}
.cell.moved-from{background:#f8ecec;border-left:3px solid #b86b6b;opacity:.92}.cell .move-route{display:block;margin-top:3px;font-size:9px;line-height:1.25;color:#9a5b5b;font-weight:700}.cell.changed .move-route{color:#9a772d}.legend .moved-from{background:#d99a9a}
/* 3.33 recommendation review: compact before/after route visualization */
.decisionmetrics{display:flex;flex-wrap:wrap;gap:8px 10px;font-size:12px;margin:14px 0 10px}.decisionmetrics b{color:#172b42}.decisionmetrics span{color:#536273}.compareline{font-size:11px;color:#71808f;margin-bottom:10px}.choice details{margin:10px 0 4px}.choice summary{cursor:pointer;font-weight:750;font-size:13px}.route-list{display:grid;gap:8px;margin-top:10px}.route-row{display:grid;grid-template-columns:22px 1fr;gap:5px 8px;align-items:center}.route-row>b{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:#173a5b;color:white;font-size:10px}.route-name{font-size:12px;font-weight:750;color:#26394c}.route-pair{grid-column:2;display:grid;grid-template-columns:1fr 24px 1fr;gap:6px;align-items:center}.route-pair i{font-style:normal;text-align:center;color:#91a0ad}.route-from,.route-to{border-radius:6px;padding:6px 8px;text-align:center;font-size:10px}.route-from{background:#fff0f0;border:1px solid #f1d1d1;color:#a94e4e}.route-to{background:#edf8ef;border:1px solid #cfe8d4;color:#2c8055}.recommendmeta{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.reasonbox,.searchbox{border-radius:12px;padding:18px 20px}.reasonbox{background:#102b46;color:white}.reasonbox>b{color:#f3c65d}.reasonbox p{margin:8px 0;font-size:12px;color:#d2dce5}.searchbox{background:#eef6ff;border:1px solid #cfe0f3;color:#23466a}.searchbox>b{color:#315f93}.searchbox p{display:flex;justify-content:space-between;margin:8px 0;font-size:12px}.searchbox span{color:#6b7e91}.recommendguide{margin-top:14px;padding:14px 18px;border:1px solid #ead8a8;background:#fff9e9;border-radius:11px;display:flex;align-items:center;justify-content:space-between;gap:16px}.recommendguide>div{display:flex;flex-direction:column;gap:4px}.recommendguide b{color:#a57b20}.recommendguide span{font-size:12px;color:#6f6550}.cell.moved-from{background:#fff0f0;border-left:3px solid #d98282}.cell .move-route{display:block;margin-top:4px;font-size:9px;color:#8a6670;font-weight:700}.applyStatus{min-height:16px;margin-top:7px;font-size:10px;color:#708090}
@media(max-width:900px){.recommendmeta{grid-template-columns:1fr}.route-pair{grid-template-columns:1fr}.route-pair i{display:none}.recommendguide{align-items:stretch;flex-direction:column}}

/* 3.35 week-by-week operational history navigation */
.weeknav{display:flex;align-items:center;justify-content:center;gap:9px;margin:10px 0 12px}.weekpicker{min-width:250px;border:1px solid #b9c8d7;background:#fff;color:#153b5d;border-radius:11px;padding:8px 18px;cursor:pointer}.weekpicker b{display:block;font-size:15px}.weekpicker small{display:block;margin-top:2px;color:#7a8997;font-size:10px}.weekpicker:hover{background:#f7fafc;border-color:#8fa6bb}.weekstatus.history-week .pill{background:#eaf4ff;color:#315f93}.weekstatus.empty-week .pill{background:#f1f3f5;color:#77838f}@media(max-width:700px){.weeknav{flex-wrap:wrap}.weekpicker{order:-1;width:100%}}

/* 3.37 action controls: keep toolbar clickable and make history visible */
.finalActions,.persistbar,.secondaryActions{position:relative;z-index:3}
.finalActions button,.secondaryActions .toolbtn,.filebtn{pointer-events:auto!important;cursor:pointer}
.historypanel{background:#fff;border:1px solid #d9e1e8;border-radius:12px;padding:16px 18px;margin:10px 0 14px;box-shadow:0 8px 22px #17334f0d}
.historyhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.historyrow{display:flex;justify-content:space-between;gap:20px;padding:9px 0;border-top:1px solid #edf0f2;font-size:12px}.historyrow span{color:#72808d}.historysection{margin-top:14px}.historysection>b{display:block;margin-bottom:6px}
.cell.substitute-change{background:#fff4dc;border-left:3px solid #d4a33e}.substitute-route{color:#8a5a00;font-weight:700}

.cell .room-label{display:block;margin-top:3px;font-size:9px;line-height:1.25;color:#57718a;font-weight:700}

.installPwaBtn{border:1px solid #c9d7eb;background:#fff;color:#173b72;border-radius:10px;padding:8px 12px;font-weight:700;cursor:pointer}.installPwaBtn:hover{background:#eef4fc}.installPwaBtn[hidden]{display:none!important}

/* === MTime 3.50 Product UI Foundation / Academic Calendar === */
:root{
  --surface:#fff;--surface-soft:#f7f9fb;--line:#e2e8ee;--line-strong:#cfd9e3;
  --ink:#17283a;--muted-ink:#708090;--navy:#173b5d;--gold:#d2aa55;
  --danger:#b44a4a;--shadow:0 16px 48px rgba(23,51,79,.12);
}
.compact{padding:8px 12px!important}.iconbtn{width:38px;height:38px;border:1px solid var(--line-strong);background:#fff;color:var(--navy);border-radius:11px;font-size:22px;line-height:1;cursor:pointer;display:grid;place-items:center}.iconbtn:hover{background:#f4f7fa}.danger-soft{color:#9b4747!important;border-color:#e9caca!important;background:#fffafa!important}.danger-text{color:#a34545!important}.section-kicker{display:block;font-size:10px;letter-spacing:1.15px;color:#8a6b2c;font-weight:850;margin-bottom:5px}.calendar-pageintro{align-items:center}.calendar-head-actions{display:flex;gap:9px;align-items:center}.calendar-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.metric-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px 20px;box-shadow:0 3px 12px rgba(23,51,79,.035)}.metric-card>span{display:block;color:#758494;font-size:12px;margin-bottom:8px}.metric-card b{font-size:27px;color:var(--ink)}.metric-card small{color:#8794a0;margin-left:5px}.calendar-workspace{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(300px,.72fr);gap:16px;align-items:start}.calendar-card,.upcoming-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 4px 18px rgba(23,51,79,.045)}.calendar-card{padding:22px}.upcoming-card{padding:20px;position:sticky;top:108px}.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.calendar-toolbar h3,.upcoming-card h3{margin:0;color:var(--ink);font-size:20px}.calendar-nav{display:flex;align-items:center;gap:7px}.month-weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.month-weekdays{border:1px solid var(--line);border-bottom:0;border-radius:12px 12px 0 0;overflow:hidden;background:#f7f9fb}.month-weekdays span{text-align:center;padding:10px 4px;color:#708090;font-size:11px;font-weight:750}.month-grid{border-left:1px solid var(--line);border-top:1px solid var(--line)}.month-cell{min-height:104px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px;background:#fff;cursor:pointer;transition:background .12s ease}.month-cell:hover{background:#f9fbfd}.month-cell.outside{background:#fafbfc;color:#a7b0b8}.month-cell:nth-last-child(-n+7):first-child,.month-grid .month-cell:nth-last-child(1){border-radius:0}.month-date{height:24px;display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:750}.month-date b{font-size:9px;color:#fff;background:var(--navy);border-radius:10px;padding:3px 6px}.month-cell.today{box-shadow:inset 0 0 0 2px rgba(23,59,93,.24)}.month-events{display:grid;gap:4px}.calendar-chip{display:block;width:100%;border:0;border-radius:6px;text-align:left;padding:5px 7px;cursor:pointer;font-size:10px;font-weight:750;overflow:hidden}.calendar-chip span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-chip.holiday{background:#fff0f0;color:#9f4949}.calendar-chip.exam{background:#edf3ff;color:#42699b}.calendar-chip.misc{background:#f2effa;color:#67568d}.calendar-more{border:0;background:transparent;color:#758494;font-size:10px;text-align:left;padding:2px 4px;cursor:pointer}.calendar-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:13px;color:#7c8996;font-size:11px}.event-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}.event-dot.holiday{background:#d77d7d}.event-dot.exam{background:#7797c8}.event-dot.misc{background:#9b8bc4}.upcoming-card .panelhead{align-items:flex-start;margin-bottom:8px}.upcoming-list{display:grid}.upcoming-row{display:grid;grid-template-columns:58px 1fr 18px;gap:10px;align-items:center;width:100%;border:0;border-top:1px solid #edf1f4;background:#fff;padding:13px 2px;text-align:left;cursor:pointer}.upcoming-row:hover{background:#fafbfd}.upcoming-date{font-size:11px;font-weight:850;color:#765f2e}.upcoming-main{display:flex;flex-direction:column;gap:4px;min-width:0}.upcoming-main b{font-size:13px;color:#26394b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upcoming-main small{color:#83909c;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upcoming-arrow{color:#a0aab3;font-size:20px}.calendar-empty{display:flex;flex-direction:column;gap:5px;padding:26px 4px;color:#778694}.calendar-empty b{color:#415469}.calendar-empty span{font-size:11px}.calendar-tip{margin-top:14px;background:#f5f8fb;border:1px solid #e4ebf1;border-radius:11px;padding:13px 14px;display:flex;flex-direction:column;gap:4px}.calendar-tip b{font-size:12px;color:#314b64}.calendar-tip span{font-size:10px;line-height:1.5;color:#788694}

.drawer-backdrop{position:fixed;inset:0;background:rgba(11,28,44,.28);backdrop-filter:blur(2px);z-index:1190}.drawer-shell{position:fixed;z-index:1200;top:0;right:0;height:100vh;width:min(460px,92vw);background:#fff;box-shadow:-18px 0 55px rgba(11,28,44,.18);display:flex;flex-direction:column}.drawer-head{display:flex;justify-content:space-between;gap:16px;padding:26px 26px 20px;border-bottom:1px solid var(--line)}.drawer-head h3{font-size:23px;margin:0 0 5px;color:var(--ink)}.drawer-head p{margin:0;color:#7d8a96;font-size:12px;line-height:1.5}.drawer-body{padding:22px 26px;overflow:auto;display:grid;gap:16px;flex:1}.field-grid{display:grid;gap:12px}.field-grid.two{grid-template-columns:1fr 1fr}.field{display:flex;flex-direction:column;gap:7px;color:#405469;font-size:12px;font-weight:750}.field input,.field select{width:100%;border:1px solid #cfd9e3;background:#fff;border-radius:10px;padding:11px 12px;color:#22374b;outline:none}.field input:focus,.field select:focus{border-color:#7792ad;box-shadow:0 0 0 3px rgba(57,91,123,.08)}.drawer-notice{border-radius:11px;background:#f4f7fa;padding:13px 14px;display:flex;flex-direction:column;gap:4px}.drawer-notice b{font-size:11px;color:#35526e}.drawer-notice span{font-size:10px;line-height:1.5;color:#778694}.drawer-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 26px 20px;border-top:1px solid var(--line);background:#fff}.drawer-foot-right{display:flex;gap:8px;margin-left:auto}.drawer-open{overflow:hidden}

@media(max-width:1100px){.calendar-workspace{grid-template-columns:1fr}.upcoming-card{position:static}.calendar-summary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.calendar-pageintro{align-items:flex-start;gap:16px}.calendar-head-actions{width:100%}.calendar-head-actions button{flex:1}.calendar-summary{grid-template-columns:repeat(2,1fr);gap:8px}.metric-card{padding:14px}.calendar-card{padding:12px}.calendar-toolbar{align-items:flex-start;gap:12px}.month-cell{min-height:78px;padding:5px}.calendar-chip{padding:4px 5px;font-size:9px}.month-weekdays span{padding:8px 2px}.calendar-legend{gap:10px}.drawer-shell{width:100vw}.drawer-head,.drawer-body,.drawer-foot{padding-left:18px;padding-right:18px}.field-grid.two{grid-template-columns:1fr}.upcoming-card{padding:16px}}

/* === MTime 3.50.1 Product UI Phase 2 / Absence + Recommendation === */
.absence-workspace{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);gap:16px;align-items:start}.absence-entry-card,.absence-queue-card{padding:24px}.absence-queue-card{position:sticky;top:108px}.step-head{display:flex;align-items:flex-start;gap:13px;margin-bottom:22px}.step-head>div{flex:1}.step-head h3{margin:1px 0 5px;font-size:18px;color:var(--ink)}.step-head p{margin:0;color:#7a8997;font-size:11px;line-height:1.5}.step-no{flex:0 0 auto;background:#edf3f8;color:#365c7e;border-radius:7px;padding:6px 8px;font-size:9px;letter-spacing:.8px;font-weight:900}.optional{float:right;color:#99a4ae;font-weight:500}.absence-time-box{margin-top:20px;padding:16px;border:1px solid #e5ebf0;border-radius:12px;background:#fafbfd}.absence-time-box .labelrow>div{display:flex;flex-direction:column;gap:3px}.entry-actions{display:flex;justify-content:flex-end;gap:8px}.absencequeue{display:grid;gap:8px;min-height:116px}.emptyqueue{border:1px dashed #d7e0e8;border-radius:11px;background:#fafbfd;padding:26px 18px;text-align:center;color:#7c8995;display:flex;flex-direction:column;gap:5px}.emptyqueue b{color:#506275}.queueitem{border:1px solid #e3e9ee;border-radius:11px;padding:13px 14px;background:#fff}.optimization-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}.optimization-summary>div{background:#f5f8fa;border-radius:10px;padding:11px 12px}.optimization-summary span,.optimization-summary b{display:block}.optimization-summary span{font-size:9px;color:#8794a0;margin-bottom:4px}.optimization-summary b{font-size:11px;color:#334e66}.run-optimization{width:100%;padding:13px 16px}.run-optimization:disabled{opacity:.45;cursor:not-allowed}.product-notice{margin-top:16px}.recommend-empty{padding:48px 34px!important;text-align:center}.empty-icon{width:48px;height:48px;margin:0 auto 14px;display:grid;place-items:center;border-radius:14px;background:#f2f5f8;color:#947332;font-size:21px}.choice{overflow:hidden}.choice.best:before{content:"BEST";position:absolute;right:0;top:0;background:#b7944c;color:#fff;padding:5px 10px;border-radius:0 10px 0 9px;font-size:9px;font-weight:900;letter-spacing:.8px}.quality-head{display:flex;align-items:center;justify-content:space-between;margin:10px 0 14px}.quality-grade{display:flex;align-items:baseline;gap:5px}.quality-grade b{font-size:31px;color:#1d4f73}.quality-grade span{font-size:10px;color:#8794a0}.quality-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:15px}.quality-chip{padding:6px 8px;border-radius:8px;background:#f1f5f8;color:#506579;font-size:10px;font-weight:800}.quality-chip.good{background:#eaf6f0;color:#287153!important}.quality-chip.warn{background:#fff5e3;color:#8a6723}.decisionmetrics{display:grid!important;grid-template-columns:repeat(2,1fr);gap:7px;margin:12px 0}.decisionmetrics>*{float:none!important;background:#f7f9fb;border-radius:8px;padding:9px;font-size:10px!important;color:#647587}.decisionmetrics b{color:#2b4a63!important}.plan-actions{display:grid;grid-template-columns:.8fr 1.2fr;gap:8px;margin-top:14px}.plan-actions button{width:100%;margin:0!important}.recommend-preview .drawer-body{display:block}.preview-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:18px}.preview-summary>div{background:#f5f8fa;border-radius:10px;padding:12px}.preview-summary span,.preview-summary b{display:block}.preview-summary span{font-size:9px;color:#82909d;margin-bottom:4px}.preview-summary b{font-size:13px;color:#2e4a62}.preview-route{border-top:1px solid #e7ecf0;padding:13px 0}.preview-route>small{display:block;color:#9a7a39;font-weight:800;margin-bottom:6px}.preview-route>strong{display:block;color:#2d4256;font-size:12px;margin-bottom:7px}.preview-before-after{display:grid;grid-template-columns:1fr 20px 1fr;align-items:center;gap:5px}.preview-slot{background:#f7f9fb;border-radius:8px;padding:9px;font-size:10px;color:#657687}.preview-slot.after{background:#fff7e6;color:#745b28}.preview-arrow{text-align:center;color:#9aa5ae}.preview-safe{font-size:10px;color:#4b7d64}
@media(max-width:1050px){.absence-workspace{grid-template-columns:1fr}.absence-queue-card{position:static}}@media(max-width:700px){.absence-entry-card,.absence-queue-card{padding:17px}.optimization-summary{grid-template-columns:1fr}.plan-actions{grid-template-columns:1fr}.preview-summary{grid-template-columns:1fr}.preview-before-after{grid-template-columns:1fr}.preview-arrow{transform:rotate(90deg)}}

/* === MTime 3.50.3 Product UI Polish / Operational Registry === */
.calendar-card{overflow:visible}.calendar-legend{align-items:center;min-height:24px;padding:2px 0 1px;overflow:visible}.calendar-legend>span{display:inline-flex;align-items:center;line-height:1.35;white-space:nowrap}.calendar-legend .event-dot{flex:0 0 auto;margin-top:0}
.settings-pageintro{align-items:center}.settings-section-heading{margin:26px 0 12px}.settings-section-heading h3{font-size:20px;margin:3px 0 5px;color:var(--ink)}.settings-section-heading p{margin:0;color:#7b8996;font-size:12px}.settings-policy-card{min-height:100%}.operational-registry-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.operational-registry-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:0 4px 18px rgba(23,51,79,.035);min-width:0}.registry-card-head{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:start;padding-bottom:17px;border-bottom:1px solid #edf1f4}.registry-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#f1f5f8;color:#355a78;font-size:13px;font-weight:900}.registry-card-head h3{margin:1px 0 5px;font-size:18px;color:var(--ink)}.registry-card-head p{margin:0;color:#7b8996;font-size:11px;line-height:1.55}.registry-summary{display:flex;align-items:baseline;gap:5px;padding:16px 2px 10px;color:#82909c}.registry-summary span{margin-right:auto;font-size:11px;font-weight:750}.registry-summary b{font-size:25px;color:#294963}.registry-summary small{font-size:10px}.registry-list{display:grid;gap:8px}.registry-empty{border:1px dashed #dbe3ea;border-radius:11px;background:#fafbfd;padding:20px 16px;color:#7c8996;text-align:center;font-size:11px}.registry-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid #e4eaf0;border-radius:11px;padding:12px 13px;background:#fff}.registry-item-main{min-width:0;display:flex;flex-direction:column;gap:4px}.registry-item-main b{font-size:12px;color:#2f4559}.registry-item-main span{font-size:10px;color:#7f8c98;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.registry-item button{border:0;background:#f7f1f1;color:#9b5454;border-radius:8px;padding:6px 8px;font-size:10px;font-weight:800;cursor:pointer}.operational-drawer .field small{font-weight:500;color:#8a97a3}.operational-drawer .optional{float:none;margin-left:4px}
@media(max-width:1100px){.operational-registry-grid{grid-template-columns:1fr}.registry-card-head{grid-template-columns:42px minmax(0,1fr)}.registry-card-head>button{grid-column:2;justify-self:start}}
@media(max-width:700px){.settings-pageintro{align-items:flex-start}.settings-pageintro>button{width:100%;margin-top:12px}.operational-registry-card{padding:16px}.registry-card-head{grid-template-columns:38px minmax(0,1fr);gap:10px}.registry-icon{width:38px;height:38px}.registry-card-head>button{grid-column:1/-1;width:100%}.registry-summary{padding-top:13px}.registry-item{padding:11px}.calendar-legend{gap:8px 12px;padding-bottom:3px}}

/* === MTime 3.50.4 Product UI Polish / Settings + Editable Registry === */
.settings-policy-card .panelhead{margin-bottom:4px}.settings-policy-card .panelhead p{margin:5px 0 0;color:#82909c;font-size:11px;line-height:1.5}.settings-policy-list{display:grid;margin-top:8px}.policy-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:16px 0;border-top:1px solid #edf1f4}.policy-row:first-child{border-top:0}.policy-copy{display:flex;flex-direction:column;gap:4px;min-width:0}.policy-copy>b{font-size:12px;color:#2c4358}.policy-copy>span{font-size:10px;color:#8794a0;line-height:1.45}.policy-control{display:flex;align-items:center;justify-content:flex-end;gap:8px}.policy-control select{min-width:112px;border:1px solid #ced8e2;background:#fff;border-radius:10px;padding:9px 32px 9px 11px;color:#2c4358;font-weight:800;outline:none}.policy-control select:focus{border-color:#7792ad;box-shadow:0 0 0 3px rgba(57,91,123,.08)}.edge-control label{display:inline-flex;align-items:center;gap:5px;padding:8px 10px;border:1px solid #dce4eb;border-radius:9px;background:#fafbfd;color:#4d6276;font-size:10px;font-weight:800;cursor:pointer}.edge-control input{accent-color:var(--navy)}.weight-list .policy-row{grid-template-columns:minmax(150px,.9fr) minmax(120px,1fr) 34px}.weight-list input[type="range"]{width:100%;accent-color:var(--navy)}.weight-list .sliderValue{display:grid;place-items:center;min-width:34px;height:30px;border-radius:8px;background:#f1f5f8;color:#355a78;font-size:10px}.registry-actions{display:flex;align-items:center;gap:6px}.registry-action{border:0;border-radius:8px;padding:6px 9px;font-size:10px;font-weight:800;cursor:pointer}.registry-action.edit{background:#eef4f8;color:#3d6484}.registry-action.edit:hover{background:#e3edf4}.registry-action.delete{background:#f9eeee;color:#9b5454}.registry-action.delete:hover{background:#f5e3e3}.registry-item{transition:border-color .12s ease,box-shadow .12s ease}.registry-item:hover{border-color:#d4dee7;box-shadow:0 3px 10px rgba(23,51,79,.045)}
@media(max-width:700px){.policy-row{grid-template-columns:1fr;gap:10px;padding:14px 0}.policy-control{justify-content:flex-start}.policy-control select{width:100%}.weight-list .policy-row{grid-template-columns:1fr 38px}.weight-list .policy-copy{grid-column:1/-1}.registry-item{grid-template-columns:1fr}.registry-actions{justify-content:flex-end}}

/* === MTime 3.50.5 Account placement === */
.sidefoot{gap:12px}
.sidefoot-copy{display:flex;flex-direction:column;gap:3px}
.sidebar-account{display:flex;align-items:center}
.sidebar-logout{width:100%;border:1px solid #385069;background:#132c46;color:#d9e2ea;border-radius:9px;padding:9px 11px;text-align:left;font-size:12px;font-weight:700;cursor:pointer;transition:.18s ease}
.sidebar-logout:hover{background:#1a3a5a;border-color:#4a6680;color:#fff}
.sidebar-logout:focus-visible{outline:2px solid #d2ae61;outline-offset:2px}
@media(max-width:900px){.sidefoot{display:flex;padding:14px 2px 0}.sidefoot-copy{display:none}.sidebar-account{width:100%}.sidebar-logout{width:100%;padding:9px 4px;text-align:center;font-size:0}.sidebar-logout::before{content:'↪';font-size:18px;line-height:1}.sidebar-logout::after{content:'로그아웃';position:fixed;left:76px;bottom:20px;opacity:0;pointer-events:none;font-size:12px;background:#0d2138;color:#fff;border-radius:7px;padding:7px 9px;box-shadow:0 6px 18px #0d213844}.sidebar-logout:hover::after,.sidebar-logout:focus-visible::after{opacity:1}}

/* === MTime 3.50.6 Task-oriented operations dashboard === */
.dashboard-command{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;padding:30px 32px;background:linear-gradient(135deg,#102a45 0%,#183f62 100%);border-radius:20px;color:#fff;box-shadow:0 14px 34px rgba(23,51,79,.12)}
.dashboard-command h2{margin:7px 0 10px;font-size:30px;line-height:1.28}.dashboard-command h2 em{font-style:normal;color:#e0c078}.dashboard-command p{margin:0;color:#c7d4df;font-size:14px}.dashboard-command-actions{display:flex;gap:9px;flex-wrap:wrap}.dashboard-command-actions .outline{background:#fff;color:#23405d;border-color:#fff}.dashboard-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}.dashboard-metric{background:#fff;border:1px solid #dfe6ec;border-radius:16px;padding:19px 20px;min-height:124px;box-shadow:0 5px 18px rgba(16,42,69,.035)}.dashboard-metric>span{display:block;color:#6d7b89;font-size:12px;font-weight:750;margin-bottom:13px}.dashboard-metric>div{display:flex;align-items:baseline;gap:5px;min-height:38px}.dashboard-metric b{font-size:30px;letter-spacing:-1px;color:#142b43}.dashboard-metric small{color:#778491}.dashboard-metric p{margin:7px 0 0;color:#96a0aa;font-size:11px}.dashboard-state{font-size:20px;color:#245d4c;letter-spacing:-.4px}.dashboard-workspace{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:16px}.dashboard-card{background:#fff;border:1px solid #dfe6ec;border-radius:16px;padding:22px;min-width:0}.dashboard-card-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:10px}.dashboard-card-head h3{margin:3px 0 0;font-size:18px}.dashboard-action-list,.dashboard-upcoming-list{display:grid;gap:9px}.dashboard-action-item{width:100%;border:1px solid #e3e8ed;background:#fff;border-radius:13px;padding:15px 16px;display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:12px;text-align:left;cursor:pointer;transition:.16s}.dashboard-action-item:hover{border-color:#bdcad6;transform:translateY(-1px);box-shadow:0 6px 16px rgba(16,42,69,.055)}.dashboard-action-mark{width:8px;height:8px;border-radius:50%;background:#c7a454}.dashboard-action-item.warn .dashboard-action-mark{background:#d88d48}.dashboard-action-item.ok .dashboard-action-mark{background:#3c956d}.dashboard-action-copy{display:flex;flex-direction:column;gap:4px}.dashboard-action-copy b{font-size:13px;color:#26394c}.dashboard-action-copy small{font-size:11px;color:#7d8995;line-height:1.45}.dashboard-action-cta{font-size:11px;font-weight:800;color:#72591f;white-space:nowrap}.dashboard-upcoming-row{border:0;border-top:1px solid #edf1f4;background:transparent;padding:13px 2px;display:grid;grid-template-columns:62px minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;cursor:pointer}.dashboard-upcoming-row:first-child{border-top:0}.dashboard-upcoming-date{font-size:12px;font-weight:850;color:#8b6b2d}.dashboard-upcoming-copy{display:flex;flex-direction:column;gap:3px}.dashboard-upcoming-copy b{font-size:13px;color:#2a3c4e}.dashboard-upcoming-copy small{font-size:11px;color:#87929c}.dashboard-empty{padding:26px 8px;display:flex;flex-direction:column;gap:5px;text-align:center;color:#778591}.dashboard-empty b{color:#405365;font-size:13px}.dashboard-empty span{font-size:11px}.dashboard-quickbar{margin-top:16px;background:#fff;border:1px solid #dfe6ec;border-radius:15px;padding:16px 18px;display:flex;justify-content:space-between;gap:18px;align-items:center}.dashboard-quickbar>div:first-child{display:flex;flex-direction:column;gap:3px}.dashboard-quickbar b{font-size:13px}.dashboard-quickbar span{font-size:11px;color:#87929d}.dashboard-quick-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.dashboard-quick-actions button{border:1px solid #dce3e9;background:#f8fafb;color:#405365;border-radius:9px;padding:8px 11px;font-size:11px;font-weight:750;cursor:pointer}.dashboard-quick-actions button:hover{background:#eef3f6}.section-kicker{display:block;color:#a27d38;font-size:9px;letter-spacing:1.25px;font-weight:900}.dashboard-card .tag.done{background:#e9f5ef;color:#2d7f5d}
@media(max-width:1050px){.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-workspace{grid-template-columns:1fr}.dashboard-command{align-items:flex-start;flex-direction:column}.dashboard-command-actions{width:100%}}
@media(max-width:680px){.dashboard-command{padding:24px}.dashboard-command h2{font-size:25px}.dashboard-command-actions{display:grid;grid-template-columns:1fr 1fr}.dashboard-command-actions button{padding-left:10px;padding-right:10px}.dashboard-metrics{grid-template-columns:1fr 1fr;gap:10px}.dashboard-metric{padding:15px;min-height:108px}.dashboard-metric b{font-size:25px}.dashboard-workspace{gap:12px}.dashboard-card{padding:17px}.dashboard-action-item{grid-template-columns:8px minmax(0,1fr);}.dashboard-action-cta{grid-column:2}.dashboard-quickbar{align-items:flex-start;flex-direction:column}.dashboard-quick-actions{justify-content:flex-start}.dashboard-upcoming-row{grid-template-columns:54px minmax(0,1fr) auto}}

/* === MTime 3.50.7 Weekly timetable product interaction === */
.week-lesson-card{position:relative;cursor:pointer;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease;background-clip:padding-box}
.week-lesson-card:hover,.week-lesson-card:focus-visible{border-color:#9db1c3;box-shadow:0 5px 14px rgba(16,42,69,.08);transform:translateY(-1px);outline:none}
.week-lesson-card:focus-visible{box-shadow:0 0 0 3px rgba(53,91,124,.12),0 5px 14px rgba(16,42,69,.08)}
.legend-help{margin-left:auto;color:#8794a0;font-size:10px}
.week-cell-popover{position:fixed;z-index:1400;width:min(320px,calc(100vw - 24px));background:#fff;border:1px solid #d9e2e9;border-radius:14px;box-shadow:0 18px 44px rgba(16,42,69,.18);padding:14px}
.week-popover-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start}.week-popover-head>div{display:flex;flex-direction:column;gap:3px}.week-popover-head span{font-size:10px;color:#8b98a4;font-weight:800}.week-popover-head b{font-size:14px;color:#20384d}.week-popover-close{border:0;background:#f3f6f8;color:#52687c;width:28px;height:28px;border-radius:8px;cursor:pointer;font-size:18px;line-height:1}.week-popover-meta{display:flex;gap:7px;flex-wrap:wrap;margin:11px 0}.week-popover-meta span{font-size:10px;color:#596e81;background:#f5f8fa;border-radius:999px;padding:6px 8px}.week-popover-status{border-radius:9px;padding:9px 10px;font-size:10px;font-weight:750;line-height:1.45}.week-popover-status.safe{background:#edf7f2;color:#36765d}.week-popover-status.locked{background:#f5f6f8;color:#73808d}.week-popover-detail{margin-top:10px;width:100%;border:1px solid #d9e2e9;background:#fff;color:#335773;border-radius:9px;padding:9px 10px;font-size:11px;font-weight:850;cursor:pointer}.week-popover-detail:hover{background:#f5f8fa}
.week-lesson-drawer{width:min(480px,100vw)}.lesson-detail-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px}.lesson-detail-summary>div{border:1px solid #e2e8ed;background:#fafbfd;border-radius:11px;padding:12px;display:flex;flex-direction:column;gap:5px}.lesson-detail-summary span{font-size:9px;color:#8a97a3;font-weight:800}.lesson-detail-summary b{font-size:12px;color:#2d4459;line-height:1.4}.week-drawer-section{margin-top:20px;padding-top:18px;border-top:1px solid #edf1f4}.week-drawer-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}.week-drawer-section h4{margin:4px 0 0;font-size:16px;color:#243c50}.week-drawer-help{margin:7px 0 12px;font-size:10px;color:#83909b;line-height:1.5}.manual-swap-list{display:grid;gap:8px}.manual-swap-candidate{width:100%;border:1px solid #dfe7ed;background:#fff;border-radius:12px;padding:12px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;text-align:left;cursor:pointer;transition:.14s}.manual-swap-candidate:hover{border-color:#aebfcd;background:#fbfcfd;box-shadow:0 4px 12px rgba(16,42,69,.045)}.manual-swap-candidate>div:first-child{display:grid;grid-template-columns:26px minmax(0,1fr);align-items:center;gap:9px}.candidate-rank{width:26px;height:26px;display:grid;place-items:center;border-radius:8px;background:#edf3f7;color:#365c7a;font-size:10px;font-weight:900}.manual-swap-candidate b{display:block;font-size:11px;color:#2a4054}.manual-swap-candidate small{display:block;margin-top:3px;font-size:9px;color:#8a96a1}.candidate-check{text-align:right}.candidate-check strong{display:block;color:#35785d;font-size:10px}.candidate-check small{color:#8a96a1}.week-drawer-empty,.week-drawer-lock{border:1px dashed #d9e1e7;background:#fafbfd;border-radius:11px;padding:20px 16px;text-align:center;display:flex;flex-direction:column;gap:5px}.week-drawer-empty b,.week-drawer-lock b{font-size:11px;color:#4d6173}.week-drawer-empty span,.week-drawer-lock span{font-size:10px;color:#87939e;line-height:1.5}.week-drawer-lock{border-style:solid;background:#f5f6f8}
@media(max-width:700px){.legend-help{width:100%;margin-left:0}.week-cell-popover{left:12px!important;right:12px!important;top:auto!important;bottom:12px;width:auto}.lesson-detail-summary{grid-template-columns:1fr}.manual-swap-candidate{grid-template-columns:1fr}.candidate-check{text-align:left;margin-left:35px}}

/* === MTime 3.50.8 recommendation impact preview === */
.recommend-preview{width:min(620px,100vw)}
.impact-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px}
.impact-people{display:grid;gap:12px;padding:14px 0 6px;border-top:1px solid #edf1f4}
.impact-people section{display:grid;gap:7px}.impact-label{font-size:10px;font-weight:900;color:#637486;letter-spacing:.2px}.impact-chip-row{display:flex;gap:6px;flex-wrap:wrap}.impact-teacher-chip,.impact-class-chip,.impact-empty-chip{display:inline-flex;align-items:center;min-height:27px;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:800}.impact-teacher-chip{background:#eef4f9;color:#355a77;border:1px solid #d8e5ef}.impact-class-chip{background:#f7f2e8;color:#7a5d25;border:1px solid #eadfc5}.impact-empty-chip{background:#f5f6f7;color:#8b96a0;border:1px solid #e4e8eb}
.impact-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:14px 0 4px;padding:10px 12px;border:1px solid #e5ebef;background:#fafbfd;border-radius:10px;font-size:10px;color:#627487}.impact-legend span{display:inline-flex;align-items:center;gap:6px;font-weight:800}.impact-legend i{width:10px;height:10px;border-radius:3px}.impact-legend i.before{background:#f8efef;border:1px solid #e7c8c8}.impact-legend i.after{background:#edf7f1;border:1px solid #cde4d6}.impact-legend small{margin-left:auto;color:#8d99a3}
.impact-change-list{display:grid;gap:10px;margin-top:14px}.impact-change-row{border:1px solid #e2e8ed;border-radius:13px;background:#fff;padding:14px}.impact-change-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px 9px;align-items:center;margin-bottom:10px}.impact-change-head>span{grid-row:1/3;align-self:start;margin-top:1px;background:#edf3f7;color:#365c7a;border-radius:8px;padding:5px 7px;font-size:9px;font-weight:900}.impact-change-head strong{font-size:12px;color:#2d4256}.impact-change-head small{font-size:9px;color:#8995a0}.impact-before-after{display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);gap:7px;align-items:stretch}.impact-slot{border-radius:10px;padding:10px 11px;display:flex;flex-direction:column;gap:4px;min-width:0}.impact-slot span{font-size:9px;font-weight:850}.impact-slot b{font-size:11px;line-height:1.4;word-break:keep-all}.impact-slot.before{background:#fff6f6;border:1px solid #efd7d7;color:#8b5454}.impact-slot.after{background:#eff8f3;border:1px solid #d1e7da;color:#376f58}.impact-arrow{display:grid;place-items:center;color:#93a0aa;font-weight:900}
@media(max-width:700px){.impact-summary-grid{grid-template-columns:1fr 1fr}.impact-before-after{grid-template-columns:1fr}.impact-arrow{transform:rotate(90deg);min-height:18px}.impact-legend small{width:100%;margin-left:0}.recommend-preview{width:100vw}}

/* === MTime 3.50.9 Recommendation Decision Compare === */
.recommend-priority-guide{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 18px;margin-bottom:12px;border:1px solid #e1e7ec;border-radius:13px;background:#fff}.recommend-priority-guide[hidden]{display:none}.recommend-priority-guide>div{display:flex;align-items:center;gap:10px}.recommend-priority-guide b{font-size:13px;color:#304b63}.recommend-priority-guide ol{display:flex;align-items:center;gap:6px;list-style:none;padding:0;margin:0;counter-reset:priority}.recommend-priority-guide li{font-size:10px;font-weight:800;color:#5d7082;background:#f4f7f9;border-radius:999px;padding:7px 9px}.recommend-priority-guide li:before{counter-increment:priority;content:counter(priority);display:inline-grid;place-items:center;width:16px;height:16px;margin-right:5px;border-radius:50%;background:#173a5b;color:white;font-size:8px}.recommend-compare-summary{margin-bottom:16px;border:1px solid #dfe6eb;border-radius:14px;background:white;overflow:hidden}.recommend-compare-summary[hidden]{display:none}.recommend-compare-head{display:flex;align-items:flex-end;justify-content:space-between;padding:18px 20px 12px}.recommend-compare-head h3{margin:3px 0 2px;font-size:17px}.recommend-compare-head p{margin:0;color:#81909c;font-size:10px}.recommend-compare-table{border-top:1px solid #edf0f3}.compare-table-row{display:grid;grid-template-columns:1.25fr repeat(4,.8fr) .75fr;align-items:center;gap:8px;width:100%;padding:11px 18px;border:0;border-top:1px solid #edf0f3;background:#fff;text-align:left;color:#536779;font-size:11px}.compare-table-row:not(.compare-table-header){cursor:pointer}.compare-table-row:not(.compare-table-header):hover{background:#f8fafb}.compare-table-header{border-top:0;background:#f6f8fa;color:#8996a1;font-size:9px;font-weight:800;letter-spacing:.2px}.compare-table-row.recommended{background:#fffaf0}.compare-table-row strong{color:#25455f}.metric-good{color:#287153;font-weight:900}.metric-warn{color:#9a6921;font-weight:900}.decision-rank{font-size:9px!important;font-weight:900!important;color:#8b6d31!important;background:#fff4dc!important;border-radius:999px;padding:4px 7px}.rank .decision-rank{margin-left:5px;vertical-align:middle}.compare-priority-note{display:flex;gap:10px;padding:10px 18px;background:#fafbfd;color:#71808d;font-size:9px}.compare-priority-note b{color:#3e566b}.compare-priority-note span{word-spacing:2px}
@media(max-width:760px){.recommend-priority-guide{align-items:flex-start;flex-direction:column}.recommend-priority-guide ol{width:100%;overflow-x:auto;padding-bottom:3px}.recommend-priority-guide li{white-space:nowrap}.recommend-compare-table{overflow-x:auto}.compare-table-row{min-width:620px}.recommend-compare-head{align-items:flex-start}}


/* === MTime 3.50.10 Apply / Confirm product flow === */
.modal-backdrop{position:fixed;inset:0;background:rgba(18,34,50,.42);backdrop-filter:blur(2px);z-index:1180}.apply-confirm-dialog{position:fixed;z-index:1190;left:50%;top:50%;transform:translate(-50%,-50%);width:min(560px,calc(100vw - 32px));background:#fff;border:1px solid #dfe6ec;border-radius:18px;box-shadow:0 24px 70px rgba(19,43,66,.24);padding:26px}.apply-confirm-head h3{margin:5px 0 7px;font-size:21px;color:#243d54}.apply-confirm-head p{margin:0;color:#768695;font-size:12px}.apply-confirm-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:20px 0}.apply-confirm-summary>div{background:#f5f8fa;border-radius:11px;padding:12px}.apply-confirm-summary span,.apply-confirm-summary b{display:block}.apply-confirm-summary span{font-size:9px;color:#82909d;margin-bottom:5px}.apply-confirm-summary b{color:#2e4a62}.apply-confirm-summary b.good{color:#287153}.apply-confirm-summary b.warn{color:#9b6f1d}.apply-confirm-people{display:grid;gap:8px}.apply-confirm-people section{padding:11px 12px;border:1px solid #e6ebef;border-radius:10px}.apply-confirm-people span{font-size:9px;font-weight:900;color:#7e8d9a}.apply-confirm-people p{margin:5px 0 0;color:#41576a;font-size:11px;line-height:1.55}.apply-confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.applied-review-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:-8px 0 16px;padding:16px 18px;border:1px solid #c9d9e6;border-left:4px solid #315f93;border-radius:12px;background:#f5f9fd}.applied-review-copy{display:flex;flex-direction:column;gap:3px}.applied-review-copy b{color:#28475f;font-size:13px}.applied-review-copy small{color:#718291;line-height:1.45}.applied-review-actions{display:flex;gap:8px;flex:0 0 auto}.cell.applied-impact{box-shadow:inset 0 0 0 2px rgba(49,95,147,.32);position:relative}.cell.applied-impact:after{content:"적용안";position:absolute;right:4px;top:4px;font-size:8px;font-weight:900;letter-spacing:.2px;color:#315f93;background:#e7f0f8;border-radius:5px;padding:2px 4px}@media(max-width:700px){.apply-confirm-summary{grid-template-columns:1fr 1fr}.apply-confirm-dialog{padding:20px}.applied-review-banner{align-items:stretch;flex-direction:column}.applied-review-actions{display:grid;grid-template-columns:1fr 1fr}.applied-review-actions button{width:100%}}


/* === MTime 3.50.11 Change History & Audit Trail === */
.audit-workspace{padding:0;margin:12px 0 18px;overflow:hidden;border-radius:16px;box-shadow:0 12px 34px rgba(23,51,79,.08)}
.audit-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:22px 24px 18px;border-bottom:1px solid #e7ecf0;background:#fff}.audit-head h3{margin:2px 0 5px;font-size:20px;color:#263f55}.audit-head p{margin:0;color:#7a8996;font-size:11px}
.audit-toolbar{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(260px,1.4fr) minmax(160px,.7fr);gap:10px;padding:14px 24px;background:#f7f9fb;border-bottom:1px solid #e7ecf0}.audit-toolbar label{display:flex;flex-direction:column;gap:6px}.audit-toolbar label>span{font-size:9px;font-weight:900;color:#738391;letter-spacing:.2px}.audit-toolbar input,.audit-toolbar select{width:100%;box-sizing:border-box;border:1px solid #d6dfe6;background:#fff;border-radius:9px;padding:10px 11px;color:#2e4559;outline:none}.audit-toolbar input:focus,.audit-toolbar select:focus{border-color:#89a1b5;box-shadow:0 0 0 3px rgba(62,96,125,.08)}.audit-actor-field input{font-weight:800;color:#25465f}
.audit-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:16px 24px;background:#fff}.audit-summary-grid>div{border:1px solid #e3e9ee;border-radius:11px;padding:12px 13px;background:#fbfcfd}.audit-summary-grid span,.audit-summary-grid b,.audit-summary-grid small{display:block}.audit-summary-grid span{font-size:9px;color:#82909b;font-weight:800}.audit-summary-grid b{margin:4px 0 2px;font-size:19px;color:#29485f}.audit-summary-grid small{font-size:8px;color:#98a2ab}
.audit-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(250px,.65fr);border-top:1px solid #e8edf1;background:#fff}.audit-main{padding:18px 24px 24px;min-width:0}.audit-section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:12px}.audit-section-head b{display:block;color:#30495f;font-size:13px}.audit-section-head span{display:block;color:#8b97a2;font-size:9px;margin-top:3px}.audit-timeline{display:grid}.audit-event-card{display:grid;grid-template-columns:22px minmax(0,1fr);gap:9px}.audit-event-rail{position:relative;display:flex;justify-content:center}.audit-event-rail:after{content:"";position:absolute;top:17px;bottom:-4px;width:1px;background:#e2e8ed}.audit-event-card:last-child .audit-event-rail:after{display:none}.audit-event-dot{position:relative;z-index:1;width:10px;height:10px;border-radius:50%;margin-top:6px;background:#9aa8b3;box-shadow:0 0 0 4px #f2f5f7}.audit-event-dot.primary{background:#315f93}.audit-event-dot.warn{background:#c28a32}.audit-event-dot.info{background:#56859d}
.audit-event-body{padding:0 0 17px}.audit-event-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.audit-event-top time{font-size:8px;color:#98a3ac}.audit-event-badge{display:inline-flex;border-radius:999px;padding:4px 7px;font-size:8px;font-weight:900;background:#f0f3f5;color:#6e7d89}.audit-event-badge.primary{background:#e9f1f8;color:#315f93}.audit-event-badge.warn{background:#fff4df;color:#91651e}.audit-event-badge.info{background:#ebf5f7;color:#47768d}.audit-event-body h4{margin:7px 0 3px;font-size:12px;color:#2d4458}.audit-event-body p{margin:0;color:#71818f;font-size:10px}.audit-event-meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:7px;font-size:8px;color:#919ca5}.audit-event-meta b{color:#566b7d}.audit-empty{display:flex;flex-direction:column;gap:4px;padding:34px 16px;text-align:center;border:1px dashed #dfe6eb;border-radius:11px;color:#8996a1}.audit-empty b{color:#566a7b;font-size:11px}.audit-empty span{font-size:9px}
.audit-side{border-left:1px solid #e8edf1;background:#fafbfd;padding:18px}.audit-side section+section{margin-top:20px;padding-top:18px;border-top:1px solid #e2e8ed}.audit-side section>b{display:block;margin-bottom:8px;color:#40566a;font-size:11px}.audit-side-row{display:flex;flex-direction:column;gap:3px;padding:8px 0;border-top:1px solid #e7ebef}.audit-side-row b{font-size:9px;color:#425a6e}.audit-side-row span,.audit-side-empty{font-size:8px;color:#8b97a2}.audit-side-empty{padding:8px 0}
@media(max-width:900px){.audit-toolbar{grid-template-columns:1fr 1fr}.audit-toolbar .audit-actor-field{grid-column:1/-1}.audit-layout{grid-template-columns:1fr}.audit-side{border-left:0;border-top:1px solid #e8edf1}.audit-summary-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.audit-head{padding:18px}.audit-toolbar{grid-template-columns:1fr;padding:12px 18px}.audit-toolbar .audit-actor-field{grid-column:auto}.audit-summary-grid{padding:14px 18px}.audit-main{padding:16px 18px 20px}.audit-event-top{align-items:flex-start;flex-direction:column;gap:5px}.audit-event-meta{display:grid;grid-template-columns:1fr}.audit-side{padding:16px 18px}}


/* === MTime 3.50.12 management center & handoff readiness === */
.management-hero{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:28px 30px;margin-bottom:18px;border:1px solid #dce5ee;border-radius:20px;background:linear-gradient(135deg,#fff 0%,#f5f8fb 100%);box-shadow:0 10px 28px rgba(22,50,77,.05)}
.management-hero-copy{max-width:720px}.management-hero h2{margin:6px 0 8px;font-size:30px;letter-spacing:-.04em}.management-hero p{margin:0;color:#647386;line-height:1.65}
.handoff-score{min-width:172px;padding:20px 22px;border-radius:18px;background:#173b72;color:#fff;display:grid;gap:2px;text-align:right}.handoff-score span{font-size:12px;font-weight:800;opacity:.78}.handoff-score strong{font-size:42px;line-height:1.05}.handoff-score small{opacity:.8;line-height:1.35}
.management-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr);gap:18px}.management-card,.management-action-card,.operations-manual{border:1px solid #dbe3ec;background:#fff;border-radius:18px;box-shadow:0 8px 24px rgba(22,50,77,.04)}
.management-card{padding:24px}.management-card-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.management-card-head h3{margin:4px 0}.management-card-head p{margin:0;color:#6b7888}.handoff-checklist{display:grid;gap:9px;margin:20px 0}
.handoff-check{width:100%;display:grid;grid-template-columns:34px 1fr auto;gap:12px;align-items:center;text-align:left;border:1px solid #e1e7ee;background:#fbfcfd;border-radius:13px;padding:12px 14px;cursor:pointer}.handoff-check:hover{border-color:#b9c9da;background:#fff}.handoff-check-icon{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:900}.handoff-check.ready .handoff-check-icon{background:#e7f5ee;color:#26724d}.handoff-check.warn .handoff-check-icon{background:#fff3da;color:#9b6415}.handoff-check span:nth-child(2){display:grid;gap:3px}.handoff-check small{color:#768494}.handoff-check em{font-style:normal;font-size:12px;font-weight:800;color:#6a7888}.handoff-check.ready em{color:#26724d}.handoff-check.warn em{color:#9b6415}.handoff-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.management-actions-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.management-action-card{padding:18px;display:grid;grid-template-columns:40px 1fr;gap:12px;align-content:start}.management-action-icon{width:38px;height:38px;border-radius:11px;background:#edf3f8;color:#173b72;display:grid;place-items:center;font-weight:900}.management-action-card h3{margin:2px 0 5px;font-size:15px}.management-action-card p{margin:0 0 8px;color:#6b7888;font-size:13px;line-height:1.5}.management-action-card small{color:#8793a1}.management-card-actions{grid-column:1/-1;display:flex;gap:8px;margin-top:4px}.management-card-actions .outline{flex:1;text-align:center}
.operations-manual{margin-top:18px;padding:24px}.operations-manual-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.operations-manual-head h3{margin:4px 0}.manual-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:20px 0}.manual-steps>div{border:1px solid #e1e7ee;border-radius:13px;padding:14px;background:#fbfcfd;display:grid;gap:10px}.manual-steps>div>b{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:#173b72;color:#fff}.manual-steps span{display:grid;gap:5px}.manual-steps small{color:#728092;line-height:1.45}.manual-safety{display:flex;gap:12px;padding:14px 16px;border-radius:12px;background:#f4f7fa;color:#536477}.manual-safety b{color:#173b72}.manual-safety span{line-height:1.5}
@media(max-width:1000px){.management-layout{grid-template-columns:1fr}.manual-steps{grid-template-columns:1fr 1fr}.management-actions-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.management-hero{align-items:stretch;flex-direction:column;padding:20px}.handoff-score{text-align:left;min-width:0}.management-actions-grid,.manual-steps{grid-template-columns:1fr}.handoff-check{grid-template-columns:34px 1fr}.handoff-check em{grid-column:2}.management-card{padding:18px}}

/* === MTime 3.50.13 Semester Transition Wizard === */
.semester-transition-backdrop{z-index:90}.semester-wizard{position:fixed;z-index:91;left:50%;top:50%;transform:translate(-50%,-50%);width:min(900px,calc(100vw - 32px));max-height:calc(100vh - 40px);overflow:auto;background:#fff;border:1px solid #dbe3ec;border-radius:22px;box-shadow:0 28px 80px rgba(20,42,66,.24)}
.semester-wizard-head{display:flex;justify-content:space-between;gap:20px;padding:24px 26px 18px;border-bottom:1px solid #e7ecf1}.semester-wizard-head h3{margin:4px 0 5px;font-size:23px}.semester-wizard-head p{margin:0;color:#718091}.semester-steps{display:grid;grid-template-columns:repeat(6,1fr);gap:0;padding:15px 24px;background:#f7f9fb;border-bottom:1px solid #e7ecf1}.semester-step{position:relative;display:grid;justify-items:center;gap:6px;color:#8b98a4;text-align:center;font-size:9px;font-weight:800}.semester-step:after{content:"";position:absolute;height:1px;background:#d9e1e8;left:calc(50% + 17px);right:calc(-50% + 17px);top:13px}.semester-step:last-child:after{display:none}.semester-step b{position:relative;z-index:1;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#e9eef2;color:#71808d}.semester-step.active b{background:#173b72;color:#fff;box-shadow:0 0 0 4px #e8eff7}.semester-step.done b{background:#e4f3eb;color:#26724d}.semester-step.active span{color:#173b72}.semester-step.done span{color:#26724d}.semester-wizard-body{padding:26px;min-height:310px}.semester-stage{max-width:720px;margin:auto}.semester-stage h3{font-size:21px;margin:5px 0 7px}.semester-stage>p{margin:0 0 20px;color:#6d7c8c;line-height:1.6}.semester-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.semester-fields label{display:grid;gap:7px;font-size:11px;font-weight:800;color:#5e6f7f}.semester-fields input,.semester-fields select{border:1px solid #d5dee6;border-radius:10px;padding:11px;background:#fff}.semester-safety{margin-top:18px;padding:13px 15px;border-radius:11px;background:#f1f5f8;color:#516579;font-size:11px}.semester-carry-list{display:grid;gap:9px}.semester-carry-row{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:center;padding:12px 14px;border:1px solid #e0e6ec;border-radius:12px;background:#fbfcfd}.semester-carry-row span{display:grid;gap:3px}.semester-carry-row small{color:#7c8996}.semester-upload-state{display:grid;gap:8px;padding:20px;border:1px dashed #cfd9e2;border-radius:14px;background:#fafcfd}.semester-upload-state.ready{border-style:solid;border-color:#bcdacb;background:#f4fbf7}.semester-upload-state span{color:#728191;font-size:11px}.semester-upload-state button{justify-self:start;margin-top:5px}.semester-readiness{display:grid;gap:9px}.semester-readiness>div{display:grid;gap:4px;padding:12px 14px;border:1px solid #e1e7ed;border-radius:11px}.semester-readiness>div.ready{background:#f4fbf7;border-color:#cde3d7}.semester-readiness>div.warn{background:#fff9ed;border-color:#eeddbb}.semester-readiness b{font-size:11px}.semester-readiness span{font-size:9px;color:#71808e}.semester-final{text-align:center;padding:18px 0}.semester-final-actions{margin:24px 0 12px}.semester-final small{display:block;color:#7b8996}.semester-wizard-foot{position:sticky;bottom:0;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:15px 26px;background:#fff;border-top:1px solid #e7ecf1}.semester-wizard-foot span{text-align:center;color:#87939e;font-size:9px}
@media(max-width:720px){.semester-wizard{width:calc(100vw - 18px);max-height:calc(100vh - 18px)}.semester-wizard-head,.semester-wizard-body{padding:18px}.semester-steps{padding:12px 10px}.semester-step span{display:none}.semester-fields{grid-template-columns:1fr}.semester-wizard-foot{padding:12px 18px}.semester-wizard-foot span{display:none}}


/* === MTime 3.50.14 universal school constraint rules === */
.constraint-registry-card{margin:18px 0 14px}.constraint-rule-guide{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 14px}.constraint-rule-guide span{padding:7px 10px;border:1px solid var(--line,#e5e7eb);border-radius:999px;background:#fff;font-size:12px}.constraint-rule-list{display:grid;gap:10px}.constraint-rule-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px;border:1px solid var(--line,#e5e7eb);border-radius:14px;background:#fff}.constraint-rule-card.disabled{opacity:.55;background:#f8fafc}.constraint-rule-main{min-width:0;display:grid;gap:6px}.constraint-rule-main>div{display:flex;align-items:center;gap:9px}.constraint-rule-main p,.constraint-rule-main small{margin:0;color:var(--muted,#64748b)}.severity{font-size:11px;font-weight:800;padding:4px 7px;border-radius:999px;background:#f1f5f9}.severity.hard{background:#fee2e2;color:#991b1b}.severity.soft{background:#fef3c7;color:#92400e}.severity.prefer{background:#dcfce7;color:#166534}.rule-sentence-builder{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px;border:1px solid var(--line,#e5e7eb);border-radius:14px;background:#f8fafc}.constraint-rule-preview{display:grid;gap:5px;padding:13px 14px;border-radius:13px;background:#eef6ff}.constraint-rule-preview span,.constraint-rule-preview small{color:#475569}.constraint-rule-diagnostics{display:grid;gap:8px}.constraint-rule-diagnostics .diag{display:flex;gap:10px;padding:10px 12px;border-radius:10px;background:#f8fafc}.constraint-rule-diagnostics .diag.error{background:#fff1f2;color:#9f1239}.constraint-rule-diagnostics .diag.warning{background:#fffbeb;color:#92400e}.constraint-rule-diagnostics .diag.ok{background:#f0fdf4;color:#166534}@media(max-width:700px){.constraint-rule-card{align-items:flex-start;flex-direction:column}.rule-sentence-builder{grid-template-columns:1fr}.constraint-rule-card .registry-actions{width:100%;flex-wrap:wrap}}
.constraint-block-summary,.rule-impact-note{display:grid;gap:6px;margin:10px 0;padding:11px 12px;border-radius:12px;background:#fff7ed;color:#9a3412}.constraint-block-summary span,.constraint-block-summary small,.rule-impact-note span{font-size:12px}.rule-impact-note.ok{background:#f0fdf4;color:#166534}


/* === MTime 3.50.16 easy constraint rule presets === */
.constraint-rule-toolbar{display:grid;grid-template-columns:minmax(220px,1.6fr) repeat(3,minmax(120px,.65fr)) auto;gap:9px;align-items:end;margin:0 0 12px}.constraint-rule-toolbar label{display:grid;gap:5px;font-size:11px;font-weight:800;color:var(--muted,#64748b)}.constraint-rule-toolbar input,.constraint-rule-toolbar select{min-height:38px;border:1px solid var(--line,#e5e7eb);border-radius:10px;background:#fff;padding:0 10px;color:#0f172a}.constraint-rule-stat{display:flex;align-items:baseline;gap:8px;padding:10px 12px;margin-bottom:12px;border-radius:12px;background:#f8fafc}.constraint-rule-stat span{font-size:12px;color:#64748b}.constraint-rule-stat b{font-size:16px}.constraint-rule-stat small{margin-left:auto;color:#94a3b8}.rule-status-chip{font-size:10px;font-weight:800;padding:3px 6px;border-radius:999px;background:#f1f5f9;color:#475569}.constraint-preset-dialog{position:fixed;z-index:1190;left:50%;top:50%;transform:translate(-50%,-50%);width:min(860px,calc(100vw - 32px));max-height:min(760px,calc(100vh - 32px));overflow:auto;background:#fff;border:1px solid #e2e8f0;border-radius:20px;box-shadow:0 28px 80px #0f172a33;padding:20px}.preset-dialog-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.preset-dialog-head h3{margin:4px 0 5px;font-size:24px}.preset-dialog-head p{margin:0;color:#64748b}.constraint-preset-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.constraint-preset-card{display:grid;grid-template-columns:auto 1fr;grid-template-areas:'icon title' 'icon desc';gap:4px 10px;text-align:left;padding:15px;border:1px solid #e2e8f0;border-radius:14px;background:#fff;cursor:pointer}.constraint-preset-card:hover{border-color:#94a3b8;background:#f8fafc}.constraint-preset-card>span{grid-area:icon;display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#eef6ff;font-size:11px;font-weight:900}.constraint-preset-card>b{grid-area:title;align-self:end}.constraint-preset-card>small{grid-area:desc;color:#64748b;line-height:1.35}.preset-dialog-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:14px;border-top:1px solid #e2e8f0}.field-grid.three{grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.constraint-rule-toolbar{grid-template-columns:1fr 1fr}.rule-search{grid-column:1/-1}.constraint-preset-grid{grid-template-columns:1fr 1fr}}@media(max-width:620px){.constraint-rule-toolbar,.constraint-preset-grid,.field-grid.three{grid-template-columns:1fr}.constraint-rule-toolbar .rule-search{grid-column:auto}.preset-dialog-foot{align-items:stretch;flex-direction:column}.constraint-preset-dialog{padding:16px}}

/* === MTime 3.50.17 current-semester operational readiness === */
.readiness-blocker{display:flex;align-items:flex-start;gap:11px;margin:16px 0 12px;padding:13px 14px;border:1px solid #fecaca;border-left:4px solid #b91c1c;border-radius:10px;background:#fff1f2;color:#881337}.readiness-blocker[hidden]{display:none}.readiness-blocker>span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#b91c1c;color:#fff;font-weight:900}.readiness-blocker>div{display:grid;gap:3px}.readiness-blocker small{color:#9f1239;line-height:1.45}.handoff-check.normal .handoff-check-icon{background:#e7f5ee;color:#26724d}.handoff-check.normal em{color:#26724d}.handoff-check.warning .handoff-check-icon{background:#fff3da;color:#9b6415}.handoff-check.warning em{color:#9b6415}.handoff-check.error{border-color:#fecaca;background:#fff7f7}.handoff-check.error .handoff-check-icon{background:#fee2e2;color:#b91c1c}.handoff-check.error em{color:#b91c1c}#handoff-readiness-badge.error{background:#fee2e2;color:#991b1b}.operational-guide-steps{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:700px){.operational-guide-steps{grid-template-columns:1fr}}
/* === MTime 3.50.19 baseline readiness diagnostics === */
.readiness-diagnostics-dialog{width:min(760px,calc(100vw - 32px));max-height:min(82vh,760px);border:0;border-radius:22px;padding:0;box-shadow:0 24px 80px rgba(15,23,42,.22);color:#0f172a}.readiness-diagnostics-dialog::backdrop{background:rgba(15,23,42,.38)}.readiness-diagnostics-head{display:flex;justify-content:space-between;gap:24px;padding:26px 28px 18px;border-bottom:1px solid #e2e8f0}.readiness-diagnostics-head h3{margin:5px 0 7px;font-size:22px}.readiness-diagnostics-head p{margin:0;color:#64748b;line-height:1.55}.readiness-dialog-close{border:0;background:#f1f5f9;border-radius:12px;width:38px;height:38px;font-size:24px;cursor:pointer}.readiness-diagnostics-summary{margin:20px 28px 12px;padding:15px 17px;border-radius:14px;background:#f8fafc;display:flex;justify-content:space-between;gap:16px}.readiness-diagnostics-summary span{color:#64748b}.readiness-diagnostics-groups{padding:0 28px;overflow:auto;max-height:390px}.readiness-diagnostics-groups section{padding:16px 0;border-bottom:1px solid #e2e8f0}.readiness-diagnostics-groups section>div{display:flex;justify-content:space-between}.readiness-diagnostics-groups em{font-style:normal;font-weight:700;color:#b7791f}.readiness-diagnostics-groups ul{margin:10px 0 0;padding-left:20px;color:#475569;line-height:1.6}.readiness-diagnostics-groups .more{list-style:none;color:#94a3b8;margin-left:-20px}.readiness-diagnostics-note{margin:18px 28px;padding:14px 16px;border-radius:14px;background:#fff8e7;display:grid;gap:4px}.readiness-diagnostics-note span{color:#6b7280;line-height:1.5}.readiness-diagnostics-actions{display:flex;justify-content:flex-end;gap:10px;padding:18px 28px 24px}.readiness-diagnostics-actions button{border-radius:12px;padding:10px 16px;border:1px solid #cbd5e1;cursor:pointer}.readiness-diagnostics-actions .primary{background:#173b72;color:white;border-color:#173b72}.readiness-diagnostics-actions .secondary{background:white}@media(max-width:640px){.readiness-diagnostics-summary{display:grid}.readiness-diagnostics-head,.readiness-diagnostics-groups,.readiness-diagnostics-actions{padding-left:18px;padding-right:18px}.readiness-diagnostics-summary,.readiness-diagnostics-note{margin-left:18px;margin-right:18px}}
