:root{--navy:#0f1f3d;--deep:#17386b;--blue:#2f5fa7;--gold:#d7b574;--beige:#f7f2e8;--gray:#64748b;--text:#1f2937;--line:#e5e7eb;--bg:#f3f4f6;--white:#fff;--shadow:0 14px 34px rgba(15,31,61,.10)}
*{box-sizing:border-box}body{margin:0;font-family:Pretendard,"Noto Sans KR","Malgun Gothic",Arial,sans-serif;color:var(--text);background:var(--bg)}a{color:inherit}
.site-header{background:linear-gradient(135deg,var(--navy),var(--deep) 62%,#315d97);color:white;padding:24px 42px;position:sticky;top:0;z-index:20;box-shadow:0 8px 24px rgba(0,0,0,.16)}
.header-inner{max-width:1180px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{display:flex;align-items:center;gap:14px;text-decoration:none}.logo-mark{width:52px;height:58px;background:linear-gradient(180deg,var(--beige),#ead9b8);color:var(--navy);clip-path:polygon(50% 0%,92% 14%,92% 62%,50% 100%,8% 62%,8% 14%);display:flex;align-items:center;justify-content:center;font-weight:950;box-shadow:0 8px 18px rgba(0,0,0,.16);flex-shrink:0}
.brand-text strong{display:block;font-size:18px}.brand-text span{display:block;margin-top:3px;font-size:12px;color:#dbeafe;letter-spacing:1.2px;font-weight:700}.nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.nav a{text-decoration:none;color:#eef6ff;font-size:13px;font-weight:800;padding:9px 12px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.10)}.nav a:hover{background:rgba(255,255,255,.18)}
.hero{background:radial-gradient(circle at 82% 18%,rgba(215,181,116,.25),transparent 30%),linear-gradient(180deg,#fff 0%,#f7f2e8 100%);padding:74px 22px 56px;border-bottom:1px solid #eadfce}.hero-inner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:42px}.hero-kicker{display:inline-flex;align-items:center;gap:8px;background:#fff;color:var(--deep);border:1px solid #e6dac1;padding:8px 13px;border-radius:999px;font-size:13px;font-weight:900;box-shadow:0 6px 20px rgba(15,31,61,.06)}.hero h1{margin:18px 0 14px;font-size:45px;line-height:1.18;color:var(--navy);letter-spacing:-.8px}.hero p{margin:0;color:#475569;font-size:16px;line-height:1.85}.hero-card{background:white;border-radius:28px;padding:30px;box-shadow:var(--shadow);border:1px solid #eee4d2}.hero-card h2{margin:0 0 12px;color:var(--navy);font-size:24px}.hero-card ul{margin:16px 0 0;padding:0;list-style:none;display:grid;gap:10px}.hero-card li{display:flex;gap:10px;align-items:flex-start;color:#475569;font-size:14px;line-height:1.55}.hero-card li:before{content:"✓";display:inline-flex;align-items:center;justify-content:center;width:21px;height:21px;border-radius:50%;background:var(--navy);color:white;font-size:12px;flex-shrink:0;margin-top:1px}
.container{max-width:1180px;margin:0 auto;padding:42px 22px 64px}.section-title{margin:0 0 10px;color:var(--navy);font-size:29px}.section-subtitle{margin:0 0 24px;color:var(--gray);line-height:1.7}.card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.menu-card{display:block;min-height:210px;text-decoration:none;background:white;border-radius:22px;padding:24px;box-shadow:var(--shadow);border:1px solid var(--line);transition:.18s ease;position:relative;overflow:hidden}.menu-card:hover{transform:translateY(-4px);border-color:var(--blue);box-shadow:0 18px 42px rgba(15,31,61,.14)}.menu-icon{width:48px;height:48px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:var(--beige);color:var(--navy);font-size:23px;margin-bottom:18px}.menu-card h3{margin:0 0 9px;color:var(--navy);font-size:20px}.menu-card p{margin:0;color:var(--gray);font-size:14px;line-height:1.65}.menu-card.important{border-top:5px solid var(--gold)}.menu-card.private{border-top:5px solid var(--deep)}
.page-hero{background:linear-gradient(135deg,var(--navy),var(--deep));color:white;padding:54px 22px}.page-hero .inner{max-width:980px;margin:0 auto}.page-hero .crumb{color:#dbeafe;font-size:13px;font-weight:800;letter-spacing:1px;margin-bottom:12px}.page-hero h1{margin:0;font-size:38px;line-height:1.24}.page-hero p{margin:14px 0 0;color:#dbeafe;line-height:1.75;font-size:15px}.content{max-width:980px;margin:0 auto;padding:42px 22px 70px}.panel{background:white;border-radius:22px;padding:30px;box-shadow:var(--shadow);border:1px solid var(--line);margin-bottom:20px}.panel h2{margin:0 0 14px;color:var(--navy);font-size:24px}.panel h3{margin:22px 0 10px;color:var(--deep);font-size:19px}.panel p,.panel li{color:#475569;line-height:1.8;font-size:15px}.notice-box{background:#fff7e6;border:1px solid #f3dfb7;border-left:6px solid var(--gold);border-radius:16px;padding:17px 18px;color:#5f4a18;line-height:1.7}.prepare-box{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:20px;padding:28px;text-align:center;color:#64748b}.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 18px;border-radius:999px;border:none;text-decoration:none;background:var(--navy);color:white;font-weight:900;cursor:pointer;font-size:14px}.btn.secondary{background:white;color:var(--navy);border:1px solid var(--line)}.btn.gold{background:#b58e43}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-field{display:flex;flex-direction:column;gap:8px}.form-field.full{grid-column:1/-1}label{font-size:13px;font-weight:900;color:var(--navy)}input,select,textarea{width:100%;border:1.5px solid #d7dee9;border-radius:14px;padding:13px 14px;font-size:15px;font-family:inherit;outline:none;background:#fff}textarea{min-height:110px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(47,95,167,.10)}.checkbox-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.check-card{border:1px solid #d7dee9;border-radius:12px;padding:10px 12px;display:flex;align-items:center;gap:8px;font-size:14px;color:#475569}.check-card input{width:auto}.dev-message{display:none;margin-top:16px;padding:16px;border-radius:16px;background:#ecfdf5;color:#065f46;border:1px solid #bbf7d0;line-height:1.7;font-weight:700}.login-box{max-width:520px;margin:0 auto}.login-box .panel{padding:36px}.site-footer{background:#0f1f3d;color:#cbd5e1;padding:28px 22px;text-align:center;font-size:12px;line-height:1.7}
@media(max-width:1050px){.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-inner{grid-template-columns:1fr}}@media(max-width:760px){.site-header{padding:20px 18px;position:static}.header-inner{flex-direction:column;align-items:flex-start}.nav{justify-content:flex-start}.hero{padding-top:48px}.hero h1{font-size:34px}.card-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.checkbox-grid{grid-template-columns:1fr}.page-hero h1{font-size:31px}}

.image-panel {
  background: #ffffff;
  border-radius: 24px;
  padding: 22px;
  box-shadow: var(--shadow);
  border: 1px solid var(--line);
  margin-bottom: 22px;
}

.info-image {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 18px;
  border: 1px solid #e5d6b7;
  box-shadow: 0 14px 32px rgba(15,31,61,.12);
}

.page-note {
  margin-top: 16px;
  color: #64748b;
  line-height: 1.7;
  font-size: 14px;
}

.link-card-list {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}

.link-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 18px 20px;
  border-radius: 18px;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
}

.link-card strong {
  color: var(--navy);
  font-size: 16px;
}

.link-card span {
  color: var(--gray);
  display: block;
  margin-top: 5px;
  font-size: 13px;
  line-height: 1.5;
}

.location-info {
  display: grid;
  gap: 12px;
  margin-top: 18px;
}

.location-row {
  padding: 16px 18px;
  border-radius: 16px;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
}

.location-row b {
  color: var(--navy);
  display: block;
  margin-bottom: 6px;
}

.location-row span {
  color: #475569;
  line-height: 1.6;
}

/* MES custom update sections */
.big-quote {
  background: linear-gradient(135deg, #0f1f3d, #17386b);
  color: #fff;
  border-radius: 24px;
  padding: 34px;
  box-shadow: var(--shadow);
  border: 1px solid rgba(255,255,255,.12);
  margin-bottom: 22px;
}

.big-quote .kicker {
  color: #d7b574;
  font-weight: 900;
  letter-spacing: 1.5px;
  font-size: 13px;
  margin-bottom: 12px;
}

.big-quote h2 {
  margin: 0;
  font-size: 30px;
  line-height: 1.35;
}

.big-quote p {
  color: #dbeafe;
  margin: 14px 0 0;
  line-height: 1.8;
}

.profile-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.profile-list li {
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  padding: 12px 14px;
  color: #475569;
  line-height: 1.6;
}

.profile-list li::before {
  content: "✓ ";
  color: #1f3f73;
  font-weight: 900;
}

.philosophy-grid,
.text-feature-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 18px;
}

.philosophy-card,
.text-feature-card {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-top: 5px solid #d7b574;
  border-radius: 20px;
  padding: 22px;
  box-shadow: var(--shadow);
}

.philosophy-card h3,
.text-feature-card h3 {
  margin: 0 0 10px;
  color: #0f1f3d;
  font-size: 20px;
}

.philosophy-card p,
.text-feature-card p {
  margin: 0;
  color: #475569;
  line-height: 1.75;
}

.management-top-note {
  background: #fff7e6;
  border: 1px solid #f3dfb7;
  border-left: 7px solid #d7b574;
  border-radius: 18px;
  padding: 17px 18px;
  color: #5f4a18;
  font-weight: 800;
  line-height: 1.7;
  margin-bottom: 22px;
}

.management-section {
  margin-bottom: 30px;
}

.management-section h2 {
  color: #0f1f3d;
  margin: 0 0 12px;
  font-size: 26px;
}

.management-section p {
  color: #64748b;
  line-height: 1.75;
  margin: 0 0 16px;
}

.image-panel {
  background: #ffffff;
  border-radius: 24px;
  padding: 22px;
  box-shadow: var(--shadow);
  border: 1px solid var(--line);
  margin-bottom: 22px;
}

.info-image {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 18px;
  border: 1px solid #e5d6b7;
  box-shadow: 0 14px 32px rgba(15,31,61,.12);
}

.page-note {
  margin-top: 16px;
  color: #64748b;
  line-height: 1.7;
  font-size: 14px;
}

.link-card-list {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}

.link-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 18px 20px;
  border-radius: 18px;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
}

.link-card strong {
  color: var(--navy);
  font-size: 16px;
}

.link-card span {
  color: var(--gray);
  display: block;
  margin-top: 5px;
  font-size: 13px;
  line-height: 1.5;
}

.location-info {
  display: grid;
  gap: 12px;
  margin-top: 18px;
}

.location-row {
  padding: 16px 18px;
  border-radius: 16px;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
}

.location-row b {
  color: var(--navy);
  display: block;
  margin-bottom: 6px;
}

.location-row span {
  color: #475569;
  line-height: 1.6;
}

@media (max-width: 760px) {
  .profile-list,
  .philosophy-grid,
  .text-feature-grid {
    grid-template-columns: 1fr;
  }
  .big-quote h2 {
    font-size: 24px;
  }
}



/* Approved MES online noticeboard layout restored */
.nb-shell {
  min-height: 100vh;
  background:
    radial-gradient(circle at top right, rgba(215,181,116,.16), transparent 34%),
    linear-gradient(135deg, #f8fafc 0%, #fffaf0 100%);
  color: #0f172a;
}

.nb-app {
  display: grid;
  grid-template-columns: 210px 1fr;
  min-height: 100vh;
}

.nb-sidebar {
  background: linear-gradient(180deg, #071a36, #0f1f3d 64%, #0a1730);
  color: #fff;
  padding: 24px 18px;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: auto;
}

.nb-crest {
  width: 108px;
  height: 108px;
  margin: 0 auto 18px;
  border: 2px solid #d7b574;
  border-radius: 28px;
  display: grid;
  place-items: center;
  color: #d7b574;
  font-weight: 900;
  text-align: center;
  line-height: 1.1;
  background: rgba(255,255,255,.04);
  box-shadow: inset 0 0 0 4px rgba(215,181,116,.08);
}

.nb-crest strong {
  display: block;
  font-size: 34px;
}

.nb-crest span {
  font-size: 10px;
  letter-spacing: 1px;
}

.nb-nav {
  display: grid;
  gap: 9px;
  margin: 18px 0;
}

.nb-nav a,
.nb-nav button {
  border: 1px solid rgba(255,255,255,.12);
  background: transparent;
  color: #e5efff;
  text-decoration: none;
  padding: 12px 13px;
  border-radius: 14px;
  font-weight: 800;
  display: flex;
  align-items: center;
  gap: 9px;
  cursor: pointer;
  font-size: 14px;
}

.nb-nav a.active,
.nb-nav button.active {
  background: rgba(215,181,116,.16);
  border-color: rgba(215,181,116,.65);
  color: #fff2c8;
}

.nb-mascot-side {
  margin-top: 22px;
  text-align: center;
}

.nb-mascot-side img {
  width: 100%;
  border-radius: 24px;
  display: block;
  box-shadow: 0 18px 45px rgba(0,0,0,.22);
  background: #fff;
}

.nb-mascot-side p {
  color: #f8d983;
  font-size: 13px;
  line-height: 1.5;
  font-weight: 800;
}

.nb-main {
  padding: 26px 26px 42px;
}

.nb-topbar {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
  margin-bottom: 18px;
}

.nb-title h1 {
  font-size: 42px;
  letter-spacing: -1.4px;
  margin: 0;
  color: #0f1f3d;
}

.nb-title p {
  margin: 8px 0 0;
  color: #64748b;
  line-height: 1.6;
}

.nb-userbox {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #fff;
  border: 1px solid #e8e0cf;
  border-radius: 18px;
  padding: 12px 14px;
  box-shadow: 0 10px 22px rgba(15,31,61,.08);
  white-space: nowrap;
}

.nb-avatar {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #f7efe0;
  display: grid;
  place-items: center;
  font-weight: 900;
  color: #0f1f3d;
}

.nb-userbox strong {
  display: block;
  color: #0f1f3d;
}

.nb-userbox span {
  color: #64748b;
  font-size: 13px;
}

.nb-tabs {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 14px 0 10px;
}

.nb-tab {
  border: 1px solid #e5e7eb;
  background: #fff;
  border-radius: 999px;
  padding: 11px 19px;
  font-weight: 900;
  color: #334155;
  cursor: pointer;
  box-shadow: 0 8px 18px rgba(15,31,61,.05);
}

.nb-tab.active {
  background: #0f1f3d;
  border-color: #0f1f3d;
  color: #fff;
}

.nb-day-tabs {
  display: inline-flex;
  background: #fff;
  border: 1px solid #e5d6b7;
  border-radius: 16px;
  padding: 5px;
  gap: 5px;
  margin-bottom: 18px;
}

.nb-day-tabs .nb-tab {
  box-shadow: none;
  border-radius: 12px;
  padding: 10px 28px;
}

.nb-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
  gap: 22px;
  align-items: start;
}

.nb-card {
  background: rgba(255,255,255,.92);
  border: 1px solid #e8e0cf;
  border-radius: 28px;
  padding: 24px;
  box-shadow: 0 22px 55px rgba(15,31,61,.10);
}

.nb-card-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}

.nb-card-title h2,
.nb-card-title h3 {
  margin: 0;
  color: #0f1f3d;
}

.nb-card-title a,
.nb-card-title button {
  border: 0;
  background: transparent;
  color: #64748b;
  font-weight: 800;
  cursor: pointer;
  text-decoration: none;
}

.nb-calendar {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  overflow: hidden;
  border: 1px solid #e5e7eb;
  border-radius: 20px;
  background: #fff;
}

.nb-cal-head,
.nb-cal-day {
  min-height: 72px;
  padding: 10px;
  border-right: 1px solid #eef2f7;
  border-bottom: 1px solid #eef2f7;
  position: relative;
}

.nb-cal-head {
  min-height: 38px;
  color: #475569;
  font-weight: 900;
  text-align: center;
  background: #f8fafc;
}

.nb-cal-day:nth-child(7n),
.nb-cal-head:nth-child(7n) {
  border-right: 0;
}

.nb-date {
  font-weight: 900;
  color: #0f1f3d;
}

.nb-sun .nb-date {
  color: #b91c1c;
}

.nb-sat .nb-date {
  color: #1d4ed8;
}

.nb-day-muted .nb-date {
  color: #cbd5e1;
}

.nb-event {
  display: inline-block;
  margin-top: 7px;
  padding: 4px 7px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
  background: #dbeafe;
  color: #1e3a8a;
}

.nb-event.gold {
  background: #fef3c7;
  color: #92400e;
}

.nb-event.blue {
  background: #e0f2fe;
  color: #075985;
}

.nb-notice-list {
  display: grid;
  gap: 12px;
}

.nb-notice-item {
  display: grid;
  grid-template-columns: 40px 1fr auto;
  gap: 12px;
  align-items: center;
  border: 1px solid #e5e7eb;
  background: #fff;
  border-radius: 18px;
  padding: 14px;
  cursor: pointer;
  transition: .18s ease;
}

.nb-notice-item:hover,
.nb-notice-item.active {
  border-color: #91b4ef;
  box-shadow: 0 10px 28px rgba(31,63,115,.12);
}

.nb-doc-icon {
  width: 40px;
  height: 40px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  background: #eff6ff;
  color: #1f3f73;
}

.nb-notice-item strong {
  display: block;
  color: #0f1f3d;
}

.nb-notice-item span {
  color: #64748b;
  font-size: 13px;
}

.nb-mini-mascot {
  display: flex;
  gap: 12px;
  align-items: center;
  background: #fff7e6;
  border: 1px solid #ead9b8;
  border-radius: 22px;
  padding: 16px;
  margin-top: 14px;
}

.nb-mini-mascot img {
  width: 92px;
  height: 92px;
  object-fit: cover;
  border-radius: 20px;
}

.nb-mini-mascot p {
  margin: 0;
  color: #5f4a18;
  font-weight: 900;
  line-height: 1.6;
}

.nb-editor {
  display: grid;
  gap: 14px;
}

.nb-form-row label {
  display: block;
  font-weight: 900;
  color: #0f1f3d;
  margin-bottom: 8px;
}

.nb-form-row input,
.nb-form-row select,
.nb-form-row textarea {
  width: 100%;
  border: 1px solid #dbe3ef;
  background: #f8fafc;
  border-radius: 16px;
  padding: 13px 14px;
  font-size: 15px;
  outline: none;
  font-family: inherit;
}

.nb-form-row textarea {
  min-height: 180px;
  resize: vertical;
  line-height: 1.7;
}

.nb-upload-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.nb-upload-box {
  border: 1px dashed #b6c7e5;
  background: #f8fbff;
  border-radius: 20px;
  padding: 18px;
}

.nb-upload-box strong {
  display: block;
  color: #1f3f73;
  margin-bottom: 8px;
}

.nb-upload-box input {
  width: 100%;
}

.nb-action-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}

.nb-btn {
  border: 0;
  padding: 13px 15px;
  border-radius: 14px;
  font-weight: 900;
  cursor: pointer;
  font-size: 15px;
}

.nb-btn.navy { background: #0f1f3d; color: #fff; }
.nb-btn.gold { background: #d7b574; color: #0f1f3d; }
.nb-btn.light { background: #f2eee6; color: #0f1f3d; border: 1px solid #e8dabe; }
.nb-btn.danger { background: #fee2e2; color: #991b1b; }

.nb-permission-card {
  margin-top: 18px;
  background: linear-gradient(135deg,#0f1f3d,#17386b);
  color: #fff;
  border-radius: 24px;
  padding: 22px;
  box-shadow: 0 20px 45px rgba(15,31,61,.18);
}

.nb-permission-card h3 {
  margin: 0 0 12px;
  color: #f8d983;
}

.nb-permission-card ul {
  margin: 0;
  padding-left: 19px;
  line-height: 1.8;
  color: #dbeafe;
}

.nb-submit-panel {
  margin-top: 22px;
}

.nb-submit-grid {
  display: grid;
  grid-template-columns: 1.15fr .85fr .85fr;
  gap: 14px;
}

.nb-submission-list {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}

.nb-submission-item {
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  padding: 13px 14px;
  color: #475569;
}

.nb-alert {
  position: fixed;
  left: 50%;
  bottom: 24px;
  transform: translateX(-50%) translateY(20px);
  z-index: 1000;
  display: none;
  max-width: 520px;
  width: calc(100% - 34px);
  background: #fff;
  border: 1px solid rgba(215,181,116,.6);
  border-radius: 24px;
  padding: 22px;
  box-shadow: 0 30px 90px rgba(15,31,61,.24);
}

.nb-alert.show {
  display: block;
  animation: nbSlide .25s ease forwards;
}

@keyframes nbSlide {
  from { opacity: 0; transform: translateX(-50%) translateY(30px); }
  to { opacity: 1; transform: translateX(-50%) translateY(0); }
}

.nb-alert h3 {
  margin: 0 0 8px;
  color: #0f1f3d;
}

.nb-alert p {
  margin: 0 0 16px;
  color: #475569;
  line-height: 1.6;
}

.nb-role-link {
  margin-top: 18px;
  font-size: 14px;
  color: #64748b;
  text-align: center;
}

.nb-role-link a {
  color: #1f3f73;
  font-weight: 900;
}

.nb-login-layout {
  max-width: 1040px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1.05fr;
  gap: 24px;
  align-items: center;
}

.nb-login-visual {
  background: linear-gradient(135deg,#0f1f3d,#17386b);
  color: #fff;
  border-radius: 34px;
  padding: 30px;
  min-height: 520px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-shadow: var(--shadow);
}

.nb-login-visual h2 {
  font-size: 34px;
  margin: 0;
}

.nb-login-visual p {
  color: #dbeafe;
  line-height: 1.75;
}

.nb-login-visual img {
  width: 100%;
  border-radius: 28px;
  background: #fff;
}

.nb-login-card {
  background: #fff;
  border: 1px solid #e8e0cf;
  border-radius: 34px;
  padding: 32px;
  box-shadow: var(--shadow);
}

.nb-login-card h2 {
  margin: 0 0 10px;
  color: #0f1f3d;
  font-size: 30px;
}

.nb-login-card p {
  color: #64748b;
  line-height: 1.7;
  margin: 0 0 22px;
}

.nb-teacher-grid {
  display: grid;
  grid-template-columns: minmax(0,.92fr) minmax(0,1.08fr);
  gap: 22px;
}

.nb-admin-badge {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  background: #0f1f3d;
  color: #fff;
  border-radius: 999px;
  padding: 9px 13px;
  font-weight: 900;
  font-size: 13px;
}

@media (max-width: 1000px) {
  .nb-app {
    grid-template-columns: 1fr;
  }

  .nb-sidebar {
    height: auto;
    position: relative;
  }

  .nb-mascot-side {
    display: none;
  }

  .nb-grid,
  .nb-submit-grid,
  .nb-login-layout,
  .nb-teacher-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  .nb-main {
    padding: 18px;
  }

  .nb-title h1 {
    font-size: 32px;
  }

  .nb-topbar {
    flex-direction: column;
  }

  .nb-upload-grid,
  .nb-action-row {
    grid-template-columns: 1fr;
  }

  .nb-cal-head,
  .nb-cal-day {
    min-height: 56px;
    padding: 7px;
    font-size: 12px;
  }
}

/* ===== MES Online Noticeboard v5 compact readability update ===== */
.nb-app {
  grid-template-columns: 186px 1fr;
}

.nb-sidebar {
  padding: 18px 14px;
}

.nb-crest {
  width: 82px;
  height: 82px;
  border-radius: 22px;
  margin-bottom: 14px;
}

.nb-crest strong {
  font-size: 27px;
}

.nb-crest span {
  font-size: 8px;
  letter-spacing: .7px;
}

.nb-nav {
  gap: 7px;
  margin: 14px 0;
}

.nb-nav a,
.nb-nav button {
  padding: 10px 11px;
  border-radius: 12px;
  font-size: 13px;
}

.nb-mascot-side {
  margin-top: 16px;
}

.nb-mascot-side img {
  width: 124px;
  height: 124px;
  object-fit: cover;
  margin: 0 auto;
  border-radius: 22px;
}

.nb-mascot-side p {
  font-size: 11px;
  line-height: 1.35;
  margin-top: 9px;
}

.nb-main {
  padding: 18px 22px 34px;
}

.nb-topbar {
  margin-bottom: 12px;
}

.nb-topbar-compact {
  align-items: center;
  padding: 10px 0 4px;
  border-bottom: 1px solid rgba(15,31,61,.08);
}

.nb-title h1 {
  font-size: 30px;
  line-height: 1.2;
  letter-spacing: -.7px;
}

.nb-title p {
  font-size: 14px;
  margin-top: 5px;
}

.nb-userbox {
  padding: 9px 11px;
  border-radius: 15px;
}

.nb-avatar {
  width: 36px;
  height: 36px;
}

.nb-userbox strong {
  font-size: 14px;
}

.nb-userbox span {
  font-size: 12px;
}

.nb-tabs {
  gap: 8px;
  margin: 12px 0 8px;
}

.nb-tab {
  padding: 8px 15px;
  font-size: 14px;
}

.nb-day-tabs {
  margin-bottom: 14px;
}

.nb-day-tabs .nb-tab {
  padding: 8px 22px;
}

.nb-grid {
  grid-template-columns: minmax(0, .98fr) minmax(340px, .92fr);
  gap: 16px;
}

.nb-card {
  border-radius: 22px;
  padding: 18px;
}

.nb-card-title {
  margin-bottom: 12px;
}

.nb-card-title h2 {
  font-size: 21px;
}

.nb-card-title h3 {
  font-size: 18px;
}

.nb-calendar {
  border-radius: 16px;
}

.nb-cal-head {
  min-height: 32px;
  font-size: 13px;
  padding: 8px;
}

.nb-cal-day {
  min-height: 58px;
  padding: 8px;
}

.nb-date {
  font-size: 14px;
}

.nb-event {
  margin-top: 5px;
  padding: 3px 6px;
  font-size: 10px;
}

.nb-notice-list {
  gap: 9px;
}

.nb-notice-item {
  grid-template-columns: 34px 1fr auto;
  padding: 11px;
  border-radius: 15px;
}

.nb-doc-icon {
  width: 34px;
  height: 34px;
  border-radius: 12px;
}

.nb-notice-item strong {
  font-size: 14px;
}

.nb-notice-item span {
  font-size: 12px;
}

.nb-mini-mascot {
  padding: 12px 14px;
  border-radius: 18px;
  margin-top: 10px;
}

.nb-mini-mascot img {
  width: 64px;
  height: 64px;
  border-radius: 16px;
}

.nb-mini-mascot p {
  font-size: 13px;
  line-height: 1.45;
}

.notice-section {
  padding: 14px;
  border-radius: 15px;
  font-size: 14px;
}

.nb-submit-panel {
  margin-top: 16px;
}

.nb-submit-grid {
  grid-template-columns: 1fr;
  gap: 10px;
}

.nb-form-row label,
.nb-upload-box strong {
  font-size: 14px;
}

.nb-form-row input,
.nb-form-row select,
.nb-form-row textarea {
  padding: 11px 12px;
  border-radius: 13px;
  font-size: 14px;
}

.nb-form-row textarea {
  min-height: 125px;
}

.nb-upload-box {
  padding: 14px;
  border-radius: 16px;
}

.nb-upload-box p {
  font-size: 13px;
  margin: 0 0 10px;
}

.nb-action-row {
  gap: 8px;
}

.nb-btn {
  padding: 11px 13px;
  border-radius: 12px;
  font-size: 14px;
}

.nb-permission-card {
  margin-top: 14px;
  border-radius: 20px;
  padding: 18px;
}

.nb-permission-card h3 {
  font-size: 18px;
}

.nb-permission-card ul,
.nb-permission-card p {
  font-size: 14px;
  line-height: 1.65;
}

.nb-alert {
  border-radius: 20px;
  padding: 18px;
}

.nb-alert h3 {
  font-size: 19px;
}

.nb-alert p {
  font-size: 14px;
}

.nb-teacher-grid {
  gap: 16px;
}

.nb-admin-badge {
  padding: 7px 10px;
  font-size: 12px;
}

@media (max-width: 1000px) {
  .nb-app {
    grid-template-columns: 1fr;
  }

  .nb-sidebar {
    height: auto;
    position: relative;
  }

  .nb-mascot-side {
    display: none;
  }

  .nb-grid,
  .nb-login-layout,
  .nb-teacher-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  .nb-main {
    padding: 14px;
  }

  .nb-title h1 {
    font-size: 25px;
  }

  .nb-topbar-compact {
    align-items: flex-start;
  }

  .nb-grid {
    gap: 12px;
  }
}



/* ===== MES Online Noticeboard v6 layout cleanup ===== */
.notice-login-page .site-header{padding:16px 34px}
.nb-login-hero{padding:24px 22px 16px}
.nb-login-hero-inner{max-width:1040px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.nb-login-hero-copy h1{font-size:28px;line-height:1.2}
.nb-login-hero-copy p{margin-top:8px;font-size:14px;line-height:1.6}
.nb-login-hero-side{display:flex;align-items:center;justify-content:flex-end}
.nb-login-hero-side img{width:64px;height:64px;object-fit:cover;border-radius:18px;border:1px solid rgba(255,255,255,.2);background:#fff;box-shadow:0 8px 20px rgba(0,0,0,.12)}
.nb-login-content{padding-top:18px;padding-bottom:34px}
.nb-login-layout.compact{grid-template-columns:1.08fr .92fr;gap:18px;align-items:stretch}
.nb-login-visual.homeworks{min-height:auto;padding:22px 22px 18px}
.nb-login-visual-copy h2{font-size:28px;line-height:1.35;margin-bottom:10px}
.nb-login-visual-copy p{font-size:14px;line-height:1.7;margin:0}
.nb-login-label{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);padding:8px 12px;border-radius:999px;color:#f8d983;font-size:12px;font-weight:900;margin-bottom:12px}
.homework-collage{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:18px}
.homework-collage img{width:100%;height:150px;object-fit:cover;border-radius:18px;border:1px solid rgba(255,255,255,.18);background:#fff;box-shadow:0 10px 26px rgba(0,0,0,.16)}
.nb-login-card.compact{padding:24px 24px 20px;border-radius:26px;display:flex;flex-direction:column;justify-content:center}
.nb-login-card.compact h2{font-size:24px;margin-bottom:8px}
.nb-login-card.compact p{font-size:14px;line-height:1.65;margin-bottom:16px}
.compact-onecol{grid-template-columns:1fr;gap:12px}
.nb-login-card.compact .form-row label{font-size:13px}
.nb-login-card.compact .form-row input,.nb-login-card.compact .form-row select{padding:12px 13px;font-size:14px;border-radius:14px}
.nb-login-card.compact .btn{margin-top:4px}
.nb-login-note{margin-top:14px;padding:12px 14px;border-radius:14px;background:#f8fafc;border:1px solid #e5e7eb;color:#475569;font-size:13px;line-height:1.6}
.nb-login-note strong{display:block;color:#0f1f3d;margin-bottom:4px}

.nb-sidebar-simple .nb-mascot-side{display:none}
.nb-nav-simple a,.nb-nav-simple button{justify-content:center;font-size:13px}
.nb-mascot-chip{margin-top:12px;padding:12px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);border-radius:16px;display:flex;align-items:center;gap:10px}
.nb-mascot-chip img{width:42px;height:42px;object-fit:cover;border-radius:12px;background:#fff;flex-shrink:0}
.nb-mascot-chip strong{display:block;color:#fff;font-size:12px}
.nb-mascot-chip span{display:block;color:#dbeafe;font-size:11px;line-height:1.45}

.nb-dashboard-strip{display:flex;align-items:center;gap:14px;justify-content:space-between;flex-wrap:wrap;background:rgba(255,255,255,.92);border:1px solid #e8e0cf;border-radius:22px;padding:14px 16px;box-shadow:0 14px 34px rgba(15,31,61,.08);margin-bottom:16px}
.nb-strip-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0}
.nb-strip-title strong{color:#b58e43;font-size:13px;white-space:nowrap}
.nb-strip-title h1{margin:0;color:#0f1f3d;font-size:24px;line-height:1.2;white-space:nowrap}
.nb-strip-title p{margin:0;color:#64748b;font-size:13px;line-height:1.5;white-space:nowrap}
.nb-strip-user{display:flex;align-items:center}
.nb-strip-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.nb-inline-tabs{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.nb-inline-tabs .nb-tab{padding:7px 13px;border-radius:999px;font-size:13px;box-shadow:none}

.nb-card button{font-size:13px}
.nb-admin-badge{background:#f1f5f9;color:#0f1f3d;border:1px solid #dbe3ef}
.nb-card-title h2{font-size:20px}
.nb-notice-item strong{font-size:14px}
.nb-submit-grid{grid-template-columns:1.15fr .85fr .85fr}
.nb-feedback-grid{display:grid;gap:10px}
.nb-feedback-item{padding:14px;border-radius:16px;background:#f8fafc;border:1px solid #e5e7eb}
.nb-feedback-item strong{display:block;color:#0f1f3d;margin-bottom:6px;font-size:14px}
.nb-feedback-item p{margin:0;color:#64748b;font-size:13px;line-height:1.65}

@media (max-width: 1180px){
  .nb-dashboard-strip{align-items:flex-start}
  .nb-strip-title p{white-space:normal}
}
@media (max-width: 1000px){
  .nb-login-layout.compact{grid-template-columns:1fr}
  .nb-login-hero-inner{align-items:flex-start}
  .homework-collage img{height:130px}
  .nb-dashboard-strip{display:grid;grid-template-columns:1fr;gap:10px}
  .nb-strip-user,.nb-strip-controls{justify-content:flex-start}
  .nb-submit-grid{grid-template-columns:1fr}
}
@media (max-width: 760px){
  .notice-login-page .site-header{padding:16px 18px}
  .nb-login-hero{padding-top:18px;padding-bottom:12px}
  .nb-login-hero-copy h1{font-size:24px}
  .nb-login-hero-side img{width:52px;height:52px}
  .homework-collage{grid-template-columns:1fr 1fr}
  .homework-collage img{height:110px}
  .nb-strip-title h1{font-size:21px;white-space:normal}
  .nb-strip-title strong,.nb-strip-title p{white-space:normal}
}

/* ===== MES Online Noticeboard v6 homework submit layout fix ===== */
.nb-submit-grid {
  grid-template-columns: 1fr 1fr !important;
  gap: 12px !important;
}

.nb-submit-grid > .nb-form-row {
  grid-column: 1 / -1;
}

#typedHomework {
  min-height: 230px !important;
  font-size: 15px !important;
  line-height: 1.75 !important;
}

.nb-submit-grid > .nb-upload-box {
  padding: 12px 14px !important;
  border-radius: 15px !important;
}

.nb-submit-grid > .nb-upload-box strong {
  font-size: 14px !important;
  margin-bottom: 6px !important;
}

.nb-submit-grid > .nb-upload-box p {
  font-size: 12.5px !important;
  line-height: 1.55 !important;
  margin-bottom: 9px !important;
}

.nb-submit-grid > .nb-upload-box input[type="file"] {
  font-size: 12px !important;
}

.nb-submit-grid > .nb-upload-box .nb-btn {
  padding: 9px 11px !important;
  font-size: 13px !important;
}

@media (max-width: 900px) {
  .nb-submit-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ===== MES login homework photo density update ===== */
.homework-collage img {
  height: 165px !important;
  object-fit: cover !important;
  object-position: center !important;
  filter: contrast(1.04) saturate(.98);
}

.nb-login-label::before {
  content: "✓";
  display: inline-grid;
  place-items: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgba(215,181,116,.22);
  color: #f8d983;
  font-size: 12px;
}

@media (max-width: 760px) {
  .homework-collage img {
    height: 120px !important;
  }
}

/* ===== MES teacher login simple update ===== */
.teacher-login-simple .nb-login-hero {
  padding-top: 20px !important;
  padding-bottom: 12px !important;
}

.teacher-login-simple .nb-login-hero-copy h1 {
  font-size: 27px !important;
}

.teacher-login-simple .nb-login-hero-copy p {
  font-size: 14px !important;
}

.teacher-login-simple .nb-login-hero-side img {
  width: 52px !important;
  height: 52px !important;
  border-radius: 15px !important;
}

.teacher-login-content {
  max-width: 620px !important;
  padding-top: 24px !important;
}

.teacher-login-card {
  background: #ffffff;
  border: 1px solid #e8e0cf;
  border-radius: 26px;
  padding: 28px;
  box-shadow: var(--shadow);
}

.teacher-login-head h2 {
  margin: 0 0 8px;
  color: #0f1f3d;
  font-size: 25px;
  letter-spacing: -.4px;
}

.teacher-login-head p {
  margin: 0 0 18px;
  color: #64748b;
  font-size: 14px;
  line-height: 1.65;
}

.teacher-login-card .form-row label {
  font-size: 14px;
}

.teacher-login-card input {
  padding: 12px 13px !important;
  border-radius: 14px !important;
  font-size: 14px !important;
}

/* ===== MES teacher homework writing area width/height update ===== */
#nbTeacherApp .nb-teacher-grid {
  grid-template-columns: minmax(0, 1.38fr) minmax(300px, .62fr) !important;
  gap: 18px !important;
}

#write .nb-card-title h2,
#write h2 {
  font-size: 21px !important;
}

#teacherNoticeContent {
  min-height: 360px !important;
  font-size: 15px !important;
  line-height: 1.82 !important;
  padding: 16px 17px !important;
  background: #ffffff !important;
}

#teacherNoticeTitle {
  font-size: 15px !important;
  padding: 13px 15px !important;
}

#write .nb-editor {
  gap: 13px !important;
}

#write .nb-form-row label {
  font-size: 14px !important;
}

#write .nb-upload-grid {
  grid-template-columns: 1fr 1fr !important;
}

@media (max-width: 1100px) {
  #nbTeacherApp .nb-teacher-grid {
    grid-template-columns: 1fr !important;
  }

  #teacherNoticeContent {
    min-height: 320px !important;
  }
}

.director-visual{background:white;border-radius:24px;padding:18px;box-shadow:var(--shadow);border:1px solid var(--line);margin-bottom:22px;overflow:hidden}.director-visual img{width:100%;display:block;border-radius:18px;border:1px solid rgba(215,181,116,.55)}.director-visual .page-note{margin:14px 8px 0;color:#64748b;font-size:14px;line-height:1.65;text-align:center}
.image-panel h2{margin:0 0 16px;color:var(--navy);font-size:22px}


/* ===== Teacher page compact readability update v15-7 ===== */
.teacher-compact .nb-main { padding: 16px 20px 28px; }
.teacher-compact .nb-card { padding: 15px; border-radius: 18px; }
.teacher-compact .nb-card-title { margin-bottom: 10px; }
.teacher-compact .nb-card-title h2 { font-size: 19px; }
.teacher-compact .nb-admin-badge { padding: 7px 11px; font-size: 12px; }
.teacher-compact .page-note { font-size: 13px; line-height: 1.55; }
.teacher-compact .nb-form-row label,
.teacher-compact .nb-upload-box strong { font-size: 13px; margin-bottom: 6px; }
.teacher-compact .nb-form-row input,
.teacher-compact .nb-form-row select,
.teacher-compact .nb-form-row textarea { font-size: 13px; padding: 9px 11px; border-radius: 12px; }
.teacher-compact .nb-form-row textarea { min-height: 108px; line-height: 1.55; }
.teacher-compact .nb-upload-box { padding: 12px; border-radius: 14px; }
.teacher-compact .nb-btn { font-size: 13px; padding: 9px 11px; border-radius: 10px; }
.teacher-compact .nb-submission-item,
.teacher-compact .notice-section,
.teacher-compact .nb-permission-card,
.teacher-compact .nb-calendar,
.teacher-compact .nb-event { font-size: 13px; }
.teacher-compact .nb-submission-item { padding: 11px 12px; border-radius: 13px; }
.teacher-compact .nb-teacher-grid { gap: 18px; }
.teacher-compact .nb-notice-list { gap: 8px; }
.teacher-compact .nb-notice-item-inline {
  grid-template-columns: 28px minmax(0,1fr) auto auto;
  gap: 8px;
  align-items: center;
  padding: 9px 10px;
  border-radius: 13px;
}
.teacher-compact .nb-notice-item-inline .nb-doc-icon {
  width: 28px; height: 28px; border-radius: 10px; font-size: 13px;
}
.teacher-compact .nb-notice-inline-main {
  min-width: 0; display: flex; align-items: center; gap: 8px; flex-wrap: nowrap;
}
.teacher-compact .nb-notice-item-inline strong {
  display: inline; font-size: 13px; line-height: 1.35; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.teacher-compact .nb-notice-inline-meta {
  font-size: 11.5px; color: #64748b; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.teacher-compact .nb-notice-inline-actions {
  display: inline-flex; align-items: center; gap: 4px; flex-shrink: 0;
}
.teacher-compact .nb-notice-inline-actions .nb-btn {
  padding: 6px 8px; font-size: 11.5px; border-radius: 9px;
}
.teacher-compact .nb-notice-arrow { color: #94a3b8; font-weight: 900; font-size: 13px; }
.teacher-compact .nb-cal-head { min-height: 28px; font-size: 12px; }
.teacher-compact .nb-cal-day { min-height: 52px; padding: 6px; }
.teacher-compact .nb-event { padding: 2px 5px; font-size: 9.5px; }
@media (max-width: 1000px) {
  .teacher-compact .nb-notice-item-inline { grid-template-columns: 28px 1fr; }
  .teacher-compact .nb-notice-inline-main { flex-wrap: wrap; }
  .teacher-compact .nb-notice-inline-actions { grid-column: 2; justify-content: flex-start; }
  .teacher-compact .nb-notice-arrow { display:none; }
}


/* ===== Teacher page compact refinement v15-9 ===== */
.teacher-compact .nb-topbar.nb-topbar-compact {padding: 8px 0 4px;}
.teacher-compact .nb-title {display:flex; align-items:baseline; gap:8px; flex-wrap:wrap;}
.teacher-compact .nb-title > div:first-child {font-size:12px; color:#b8892f !important; margin-bottom:0 !important;}
.teacher-compact .nb-title h1 {font-size:21px; line-height:1.15; margin:0; color:#12315f;}
.teacher-compact .nb-title p {font-size:12px; color:#708197; margin:0;}
.teacher-compact .nb-card-title h2 {font-size:18px;}
.teacher-compact .nb-card-title .nb-admin-badge {font-size:11px; padding:6px 9px;}

.teacher-compact #teacherNoticePreview.nb-notice-list {gap:6px;}
.teacher-compact .nb-card:has(#teacherNoticePreview) .nb-card-title h2 {font-size:16px;}
.teacher-compact .nb-card:has(#teacherNoticePreview) .nb-card-title .nb-admin-badge {font-size:10.5px; padding:5px 8px;}
.teacher-compact .nb-notice-item-inline {
  grid-template-columns: 24px minmax(0,1fr) auto auto;
  gap: 6px;
  padding: 7px 8px;
  border-radius: 11px;
}
.teacher-compact .nb-notice-item-inline .nb-doc-icon {
  width:24px; height:24px; border-radius:8px; font-size:12px;
}
.teacher-compact .nb-notice-inline-main {
  display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px; min-width:0;
}
.teacher-compact .nb-notice-item-inline strong {
  font-size:12.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.teacher-compact .nb-notice-inline-meta {
  font-size:10px; color:#7c8da3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.teacher-compact .nb-notice-inline-actions {gap:3px;}
.teacher-compact .nb-notice-inline-actions .nb-btn {
  padding:4px 7px; font-size:10.5px; min-height:auto; line-height:1.15; border-radius:8px;
}
.teacher-compact .nb-notice-arrow {font-size:11px;}
.teacher-compact .nb-page-btns {margin-top:8px;}
.teacher-compact .nb-page-btns .nb-btn {padding:4px 7px; font-size:10.5px; border-radius:8px;}

.teacher-compact #write .nb-upload-box,
.teacher-compact #write .nb-form-row,
.teacher-compact #write .nb-action-row {margin-top:8px;}
.teacher-compact #write .nb-form-row label {font-size:12px;}
.teacher-compact #write .nb-upload-box strong,
.teacher-compact #write .nb-upload-box p {font-size:12px;}
.teacher-compact #write .nb-form-row input,
.teacher-compact #write .nb-form-row select,
.teacher-compact #write .nb-form-row textarea {
  padding:8px 10px; font-size:12px; border-radius:10px;
}
.teacher-compact #write .nb-form-row textarea {min-height:98px;}
.teacher-compact #write .nb-btn {
  padding:7px 10px; font-size:12px; line-height:1.15; border-radius:9px;
}
.teacher-compact #write .nb-action-row {gap:6px;}
.teacher-compact .nb-upload-box {padding:10px 12px;}

@media (max-width: 1000px) {
  .teacher-compact .nb-title {display:block;}
  .teacher-compact .nb-title > div:first-child,
  .teacher-compact .nb-title h1,
  .teacher-compact .nb-title p {display:block;}
  .teacher-compact .nb-notice-inline-main {grid-template-columns:1fr; gap:2px;}
  .teacher-compact .nb-notice-item-inline {grid-template-columns: 24px 1fr;}
  .teacher-compact .nb-notice-inline-actions {grid-column:2;}
}


/* ===== Teacher page tune v15-10 ===== */
#nbTeacherApp .nb-teacher-grid {
  grid-template-columns: minmax(0, 1.31fr) minmax(360px, .69fr) !important;
}
.teacher-compact .nb-card:has(#teacherNoticePreview) .nb-card-title h2 {
  font-size: 15px;
}
.teacher-compact .nb-card:has(#teacherNoticePreview) .nb-card-title .nb-admin-badge {
  font-size: 10px; padding: 4px 7px;
}
.teacher-compact .nb-notice-item-inline {
  grid-template-columns: 22px minmax(0,1fr) auto auto;
  gap: 5px;
  padding: 6px 7px;
}
.teacher-compact .nb-notice-item-inline .nb-doc-icon {
  width:22px; height:22px; font-size:11px; border-radius:7px;
}
.teacher-compact .nb-notice-inline-main { gap: 6px; }
.teacher-compact .nb-notice-item-inline strong {
  font-size: 12px;
}
.teacher-compact .nb-notice-inline-meta {
  font-size: 9px;
  letter-spacing: -0.1px;
}
.teacher-compact .nb-notice-inline-actions .nb-btn {
  padding: 3px 6px; font-size: 10px;
}
.teacher-compact .nb-card:has(#teacherNoticePreview) { overflow: hidden; }

.teacher-compact .nb-upload-grid {
  grid-template-columns: 1.08fr .92fr;
  gap: 8px;
}
.teacher-compact .nb-upload-box {
  padding: 8px 10px;
  border-radius: 12px;
}
.teacher-compact .nb-upload-box strong {
  font-size: 11.5px;
  margin-bottom: 5px;
}
.teacher-compact .nb-upload-box input[type="file"] {
  font-size: 11px;
  padding: 0;
  border: 0;
  background: transparent;
}
.teacher-compact .nb-upload-box input[type="file"]::file-selector-button {
  padding: 5px 8px;
  font-size: 10.5px;
  margin-right: 7px;
  border-radius: 8px;
  border: 1px solid #d4dce8;
  background: #f8fafc;
  color: #183153;
  cursor: pointer;
}
.teacher-compact #teacherFileLink,
.teacher-compact #teacherVideoLink {
  margin-top: 6px !important;
  padding: 7px 9px !important;
  font-size: 11.5px !important;
}
.teacher-compact #write .nb-action-row .nb-btn {
  padding: 6px 9px;
  font-size: 11.5px;
}
.teacher-compact #write .nb-action-row { gap: 5px; }
.teacher-compact #schedule .nb-card-title h2 { font-size: 16px; }
.teacher-compact #schedule .nb-editor { gap: 8px; }
.teacher-compact #schedule .nb-form-row input { padding: 8px 10px; font-size: 12px; }
.teacher-compact #schedule .nb-btn { padding: 7px 10px; font-size: 11.5px; }
@media (max-width: 1000px) {
  #nbTeacherApp .nb-teacher-grid { grid-template-columns: 1fr !important; }
  .teacher-compact .nb-upload-grid { grid-template-columns: 1fr; }
}


/* ===== Master page compact refinement v15-11 ===== */
.master-compact .nb-main { padding: 16px 20px 28px; }
.master-compact .nb-topbar.nb-topbar-compact { padding: 8px 0 4px; }
.master-compact .nb-title { display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.master-compact .nb-title > div:first-child { font-size:12px; color:#b8892f !important; margin-bottom:0 !important; }
.master-compact .nb-title h1 { font-size:21px; line-height:1.15; margin:0; color:#12315f; }
.master-compact .nb-title p { font-size:12px; color:#708197; margin:0; }
.master-compact .nb-card { padding: 15px; border-radius: 18px; }
.master-compact .nb-card-title { margin-bottom: 10px; }
.master-compact .nb-card-title h2 { font-size: 17px; }
.master-compact .nb-admin-badge { padding: 6px 10px; font-size: 11px; }
.master-compact .nb-btn { font-size: 12px; padding: 7px 10px; border-radius: 9px; }
.master-compact .page-note,
.master-compact .nb-submission-item,
.master-compact .nb-permission-card,
.master-compact .nb-event,
.master-compact .nb-notice-list,
.master-compact .nb-calendar,
.master-compact #masterApplicationSummary,
.master-compact #masterApplications,
.master-compact #masterSubmissions,
.master-compact #masterSchedules,
.master-compact #masterWorkReportList,
.master-compact #masterReportSummaryBody,
.master-compact #masterNoticeDetail,
.master-compact #masterNotices { font-size: 13px; }
.master-compact .nb-submission-item { padding: 11px 12px; border-radius: 13px; }
.master-compact .nb-page-btns .nb-btn { padding:4px 7px; font-size:10.5px; border-radius:8px; }
.master-compact .nb-calendar { font-size: 12px; }
.master-compact .nb-cal-head { min-height: 28px; font-size: 12px; }
.master-compact .nb-cal-day { min-height: 52px; padding: 6px; }
.master-compact .nb-event { padding: 2px 5px; font-size: 9.5px; }
.master-compact .nb-teacher-grid { gap: 18px; }
.master-compact #masterCalendarCard .nb-btn,
.master-compact #masterReportSummary .nb-btn { padding: 5px 8px; font-size: 11px; }
.master-compact #masterSheetSave { padding: 6px 9px !important; font-size: 10.5px; }
@media (max-width: 1000px) {
  .master-compact .nb-title { display:block; }
  .master-compact .nb-title > div:first-child,
  .master-compact .nb-title h1,
  .master-compact .nb-title p { display:block; }
}


/* ===== Master page top row schedule beside calendar v15-12 ===== */
.master-compact .master-top-row {
  display: grid;
  grid-template-columns: minmax(0, 1.28fr) minmax(300px, 0.72fr);
  gap: 18px;
  align-items: start;
}
.master-compact .master-top-row #masterCalendarCard,
.master-compact .master-top-row #schedules {
  margin-bottom: 0 !important;
}
.master-compact .master-top-row #masterCalendarCard .nb-card-title h2,
.master-compact .master-top-row #schedules .nb-card-title h2 {
  font-size: 17px;
}
.master-compact .master-top-row #schedules .nb-card-title {
  margin-bottom: 8px;
}
.master-compact .master-top-row #schedules .nb-submission-item,
.master-compact .master-top-row #schedules .nb-notice-item,
.master-compact .master-top-row #schedules .nb-list-item,
.master-compact .master-top-row #schedules .nb-event,
.master-compact .master-top-row #masterSchedules {
  font-size: 12.5px;
}
.master-compact .master-top-row #schedules .nb-page-btns .nb-btn,
.master-compact .master-top-row #schedules .nb-btn {
  padding: 4px 7px;
  font-size: 10.5px;
}
@media (max-width: 1000px) {
  .master-compact .master-top-row {
    grid-template-columns: 1fr;
  }
}


/* ===== v15-12 기준 재검토 완료 수정: 원장페이지 요청만 반영 ===== */
.master-compact .application-all-info { grid-template-columns: 1fr; }
.master-compact .application-all-info div { grid-template-columns: 140px 1fr; gap: 8px; padding: 3px 0; }
.master-compact .application-all-info b { font-size: 10.8px; color: #0f1f3d; }
.master-compact .application-all-info span { font-size: 11.2px; color: #475569; line-height: 1.45; }
.master-compact .master-notice-inline { grid-template-columns: 24px minmax(0,1fr) auto auto; gap: 6px; padding: 7px 8px; border-radius: 12px; }
.master-compact .master-notice-inline .nb-doc-icon { width: 24px; height: 24px; border-radius: 8px; font-size: 11px; }
.master-compact .master-notice-main { min-width: 0; }
.master-compact .master-notice-main strong { display: block; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.master-compact .master-notice-main span { display: block; font-size: 9.6px; color: #708197; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.master-compact .master-notice-actions { display: inline-flex; gap: 3px; flex-shrink: 0; }
.master-compact .master-notice-actions .nb-btn,
.master-compact .master-schedule-item .master-compact-buttons .nb-btn { padding: 3px 6px; font-size: 10px; border-radius: 8px; }
.master-compact .master-schedule-item { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 4px 6px; padding: 8px 9px; }
.master-compact .master-schedule-item strong { font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.master-compact .master-schedule-item > span { font-size: 9.8px; color: #708197; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.master-compact .master-schedule-item .master-compact-buttons { grid-row: 1 / span 2; grid-column: 2; align-self: center; display: inline-flex; gap: 3px; margin-top: 0; }
.master-compact .master-top-row { align-items: stretch; }
.master-compact .master-top-row #masterCalendarCard,
.master-compact .master-top-row #schedules { height: 100%; display: flex; flex-direction: column; }
.master-compact .master-top-row #masterSchedules { flex: 1; overflow: auto; padding-right: 2px; }
.master-compact .master-top-row #schedules .nb-card-title { flex-shrink: 0; }
@media (max-width: 680px) {
  .master-compact .application-all-info div { grid-template-columns: 1fr; gap: 1px; }
  .master-compact .master-notice-inline,
  .master-compact .master-schedule-item { grid-template-columns: 1fr; }
  .master-compact .master-notice-actions,
  .master-compact .master-schedule-item .master-compact-buttons { grid-column: 1; grid-row: auto; }
}


/* ===== Admission application layout update ===== */
.admission-layout-page { max-width: 1180px; }
.admission-split {
  display: grid;
  grid-template-columns: minmax(260px, 0.82fr) minmax(520px, 1.45fr);
  gap: 24px;
  align-items: start;
}
.admission-copy-card {
  background: linear-gradient(145deg, #10213f, #18345f);
  color: #fff;
  border-radius: 24px;
  padding: 32px 28px;
  box-shadow: 0 16px 40px rgba(15, 31, 61, 0.18);
  position: sticky;
  top: 96px;
}
.admission-copy-card .crumb {
  color: #d6b46a;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .12em;
}
.admission-copy-card h1 {
  margin: 12px 0 12px;
  font-size: 34px;
  line-height: 1.18;
  color: #fff;
}
.admission-copy-card p {
  color: rgba(255,255,255,.86);
  font-size: 15px;
  line-height: 1.65;
}
.admission-side-notice {
  margin-top: 22px;
  color: #17233f;
  background: #fff8e8;
  border-color: rgba(214, 180, 106, .45);
}
.admission-side-points {
  display: grid;
  gap: 8px;
  margin-top: 18px;
}
.admission-side-points span {
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px;
  padding: 8px 12px;
  color: rgba(255,255,255,.88);
  font-size: 13px;
}
.admission-form-panel {
  margin: 0;
  padding: 24px;
}
.admission-form-panel h2 {
  margin-top: 0;
}
.admission-form-panel h3 {
  margin: 24px 0 10px;
  font-size: 16px;
  color: #142747;
  font-weight: 900;
}
.admission-row {
  display: grid;
  gap: 10px;
  align-items: end;
}
.admission-row-4 {
  grid-template-columns: 1.05fr 1.2fr .72fr 1.25fr;
}
.admission-row-3 {
  grid-template-columns: 1fr 1fr 1.35fr;
}
.admission-skill-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.admission-form-panel .form-field label {
  font-size: 12px;
  font-weight: 900;
  color: #142747;
}
.admission-form-panel input,
.admission-form-panel select,
.admission-form-panel textarea {
  font-size: 13px;
}
.admission-form-panel input::placeholder,
.admission-form-panel textarea::placeholder {
  color: #9aa6b5;
}
.admission-form-panel .checkbox-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}
.admission-form-panel .check-card {
  font-size: 12px;
  padding: 8px 10px;
}
@media (max-width: 980px) {
  .admission-split { grid-template-columns: 1fr; }
  .admission-copy-card { position: static; }
}
@media (max-width: 760px) {
  .admission-row-4,
  .admission-row-3,
  .admission-skill-grid {
    grid-template-columns: 1fr;
  }
  .admission-form-panel .checkbox-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


/* ===== 신규신청서 누적 목차형 목록 수정 ===== */
.master-application-compact {
  cursor: pointer;
}
.master-application-compact .master-app-summary {
  display: grid;
  grid-template-columns: 90px minmax(0,1fr);
  align-items: start;
  gap: 8px;
}
.master-application-compact .master-app-summary strong {
  color: #0f1f3d;
  font-size: 13px;
  line-height: 1.35;
}
.master-application-compact .master-app-summary span {
  color: #475569;
  font-size: 12.2px;
  line-height: 1.45;
  word-break: keep-all;
}
.master-application-compact .master-compact-buttons {
  margin-top: 7px;
  display: flex;
  gap: 6px;
  justify-content: flex-end;
  flex-wrap: wrap;
}
.master-application-compact .application-all-info {
  border-top: 1px dashed #d9e2ef;
  padding-top: 8px;
}
@media (max-width: 720px) {
  .master-application-compact .master-app-summary {
    grid-template-columns: 1fr;
  }
}


/* ===== 신규입학테스트 신청 안내문 글씨 크기 조정 ===== */
.admission-copy-card h1 {
  font-size: 28px;
  line-height: 1.22;
}
.admission-copy-card p {
  font-size: 13.2px;
  line-height: 1.55;
}
.admission-copy-card .admission-side-notice {
  font-size: 12.6px;
  line-height: 1.55;
  padding: 13px 14px;
}
.admission-copy-card .admission-side-points span {
  font-size: 12px;
  padding: 7px 10px;
}
.admission-form-panel .dev-message {
  font-size: 13px;
  line-height: 1.55;
  font-weight: 600;
  padding: 13px 14px;
}
@media (max-width: 760px) {
  .admission-copy-card h1 { font-size: 25px; }
  .admission-copy-card p { font-size: 12.8px; }
}


/* ===== 메인페이지 첫 화면 압축형 레이아웃 ===== */
.home-compact-hero {
  padding: 30px 18px 24px;
}
.home-compact-hero .hero-inner {
  max-width: 1160px;
  min-height: auto;
}
.home-hero-grid {
  display: grid;
  grid-template-columns: minmax(320px, 0.85fr) minmax(420px, 1.15fr);
  gap: 22px;
  align-items: stretch;
}
.home-hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.home-hero-copy .hero-kicker {
  font-size: 12px;
  letter-spacing: 0.14em;
  margin-bottom: 10px;
}
.home-hero-copy h1 {
  font-size: 34px;
  line-height: 1.16;
  margin: 0 0 12px;
}
.home-hero-copy p {
  font-size: 14.2px;
  line-height: 1.6;
  max-width: 520px;
  margin: 0 0 15px;
}
.compact-btn-row {
  gap: 8px;
  margin-top: 2px;
}
.compact-btn-row .btn {
  padding: 10px 15px;
  font-size: 13px;
}
.home-system-mini {
  margin-top: 14px;
  padding: 12px 14px;
  border: 1px solid rgba(15,31,61,.12);
  border-radius: 16px;
  background: rgba(255,255,255,.72);
  box-shadow: 0 10px 22px rgba(15,31,61,.07);
}
.home-system-mini strong {
  display: block;
  color: #0f1f3d;
  font-size: 14px;
  margin-bottom: 4px;
}
.home-system-mini span {
  color: #475569;
  font-size: 12.5px;
  line-height: 1.45;
}
.home-menu-panel {
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(15,31,61,.10);
  border-radius: 24px;
  padding: 18px;
  box-shadow: 0 18px 36px rgba(15,31,61,.12);
}
.home-menu-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: end;
  margin-bottom: 12px;
}
.home-menu-head h2 {
  margin: 0;
  color: #0f1f3d;
  font-size: 21px;
  line-height: 1.25;
}
.home-menu-head p {
  margin: 0;
  color: #64748b;
  font-size: 12.5px;
}
.home-quick-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 9px;
}
.home-quick-card {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 58px;
  padding: 12px 13px;
  border-radius: 16px;
  background: #f8fafc;
  border: 1px solid #e5eaf2;
  text-decoration: none;
  color: #0f1f3d;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.home-quick-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 22px rgba(15,31,61,.12);
  border-color: #c8d2e2;
}
.home-quick-card span {
  width: 30px;
  height: 30px;
  border-radius: 11px;
  background: #ffffff;
  display: grid;
  place-items: center;
  font-size: 17px;
  flex: 0 0 auto;
}
.home-quick-card strong {
  font-size: 13.5px;
  line-height: 1.25;
}
.home-quick-card.important {
  background: #fff8e8;
  border-color: #ead8a8;
}
.home-quick-card.wide {
  grid-column: span 2;
  min-height: 54px;
}
@media (max-width: 900px) {
  .home-hero-grid {
    grid-template-columns: 1fr;
  }
  .home-hero-copy h1 {
    font-size: 30px;
  }
}
@media (max-width: 560px) {
  .home-quick-grid {
    grid-template-columns: 1fr;
  }
  .home-quick-card.wide {
    grid-column: auto;
  }
  .home-menu-head {
    display: block;
  }
  .home-menu-head p {
    margin-top: 4px;
  }
}


/* ===== 메인페이지 푸터 하단 고정 + 첫 화면 공간 채우기 ===== */
html, body {
  min-height: 100%;
}
body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
.site-header,
.site-footer {
  flex: 0 0 auto;
}
.home-compact-hero {
  flex: 1 0 auto;
  display: flex;
  align-items: center;
  min-height: calc(100vh - 142px);
  padding-top: 34px;
  padding-bottom: 34px;
}
.home-compact-hero .hero-inner {
  width: 100%;
}
.home-hero-grid {
  min-height: 430px;
}
.home-menu-panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.home-quick-grid {
  align-content: center;
}
.home-quick-card {
  min-height: 62px;
}
.site-footer {
  margin-top: auto;
}
@media (max-width: 900px) {
  .home-compact-hero {
    min-height: auto;
    align-items: flex-start;
  }
  .home-hero-grid {
    min-height: auto;
  }
}


/* ===== 메인페이지 100% 화면 스크롤 방지 최종 조정 ===== */
html, body {
  height: 100%;
}
body {
  min-height: 100vh;
  overflow-x: hidden;
}
.home-compact-hero {
  flex: 1 1 auto;
  min-height: 0 !important;
  padding: 18px 18px 12px !important;
  display: flex;
  align-items: center;
}
.home-compact-hero .hero-inner {
  width: 100%;
}
.home-hero-grid {
  min-height: 0 !important;
  gap: 24px;
  align-items: stretch;
}
.home-hero-copy h1 {
  font-size: 38px;
  line-height: 1.14;
  margin-bottom: 12px;
}
.home-hero-copy p {
  font-size: 15px;
  line-height: 1.55;
  margin-bottom: 14px;
}
.home-system-mini {
  margin-top: 13px;
  padding: 13px 15px;
}
.home-system-mini strong {
  font-size: 15px;
}
.home-system-mini span {
  font-size: 13px;
}
.home-menu-panel {
  padding: 19px;
}
.home-menu-head h2 {
  font-size: 23px;
}
.home-menu-head p {
  font-size: 13px;
}
.home-quick-grid {
  gap: 9px;
}
.home-quick-card {
  min-height: 60px !important;
  padding: 12px 14px;
}
.home-quick-card strong {
  font-size: 14px;
}
.home-quick-card span {
  width: 32px;
  height: 32px;
  font-size: 18px;
}
.site-footer {
  padding: 10px 18px !important;
  font-size: 11.5px;
  line-height: 1.35;
}
@media (max-height: 760px) and (min-width: 901px) {
  .home-compact-hero {
    padding-top: 12px !important;
    padding-bottom: 8px !important;
  }
  .home-hero-copy h1 {
    font-size: 34px;
    margin-bottom: 8px;
  }
  .home-hero-copy p {
    font-size: 14px;
    margin-bottom: 10px;
  }
  .compact-btn-row .btn {
    padding: 9px 13px;
  }
  .home-system-mini {
    margin-top: 10px;
    padding: 10px 13px;
  }
  .home-menu-panel {
    padding: 15px;
  }
  .home-quick-card {
    min-height: 54px !important;
    padding: 10px 12px;
  }
}


/* ===== 메인페이지 MES 교육철학 문구 정리 ===== */
.home-hero-copy h1 {
  font-size: 35px;
  line-height: 1.18;
  letter-spacing: -0.04em;
}
.home-hero-copy p {
  font-size: 14.7px;
  line-height: 1.58;
  color: #334155;
  font-weight: 600;
}
.home-philosophy-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 7px;
  margin: 12px 0 14px;
}
.home-philosophy-list span {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 8px 11px;
  border-radius: 13px;
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(15,31,61,.10);
  color: #1f2f4d;
  font-size: 12.8px;
  line-height: 1.35;
  font-weight: 700;
  box-shadow: 0 8px 18px rgba(15,31,61,.055);
}
.home-philosophy-list span::before {
  content: "✓";
  width: 18px;
  height: 18px;
  border-radius: 50%;
  display: inline-grid;
  place-items: center;
  background: #0f1f3d;
  color: #fff;
  font-size: 11px;
  flex: 0 0 auto;
}
@media (max-height: 760px) and (min-width: 901px) {
  .home-hero-copy h1 {
    font-size: 31px;
  }
  .home-philosophy-list {
    gap: 5px;
    margin: 9px 0 10px;
  }
  .home-philosophy-list span {
    padding: 7px 10px;
    font-size: 12.3px;
  }
}

/* ===== MES v5.8 알림장 리치 편집기 + 원장페이지 섹션 색상 구분 ===== */
.mes-rich-hidden{display:none!important;}
.mes-rich-wrap{border:1px solid #d7cfc0;border-radius:16px;background:#fff;overflow:hidden;box-shadow:0 8px 20px rgba(15,31,61,.06);}
.mes-rich-toolbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:9px;background:#f8fafc;border-bottom:1px solid #e5e7eb;}
.mes-rich-toolbar button,.mes-rich-toolbar select{border:1px solid #d7cfc0;background:#fff;border-radius:9px;padding:7px 9px;font-weight:800;color:#0f1f3d;cursor:pointer;font-size:12px;}
.mes-rich-toolbar button:hover,.mes-rich-toolbar select:hover{background:#fff7e6;border-color:#d7b574;}
.mes-tool-label{font-size:11px;font-weight:900;color:#64748b;margin-left:4px;}
.mes-color-dot{width:24px!important;height:24px!important;border-radius:50%!important;padding:0!important;box-shadow:inset 0 0 0 2px rgba(255,255,255,.7);}
.mes-rich-editor{min-height:260px;padding:14px 15px;line-height:1.75;color:#1f2937;font-size:15px;outline:none;background:#fff;}
.mes-rich-editor:focus{box-shadow:inset 0 0 0 2px rgba(174,135,63,.25);}
.mes-rich-editor img,.mes-rich-display img{max-width:100%;height:auto;border-radius:12px;margin:8px 0;display:block;}
.mes-rich-table,.mes-rich-editor table,.mes-rich-display table{border-collapse:collapse;width:100%;margin:10px 0;background:#fff;}
.mes-rich-table td,.mes-rich-editor td,.mes-rich-display td,.mes-rich-editor th,.mes-rich-display th{border:1px solid #cbd5e1;min-width:70px;padding:8px;vertical-align:top;}
.mes-rich-display{white-space:normal;word-break:keep-all;}
.mes-rich-display ul,.mes-rich-display ol{padding-left:22px;}
.master-compact #applications{background:linear-gradient(180deg,#fff,#f8fbff);border-left:6px solid #3b82f6;}
.master-compact #submissions{background:linear-gradient(180deg,#fff,#fff8ed);border-left:6px solid #d7a33d;}
.master-compact #write{background:linear-gradient(180deg,#fff,#f7fff9);border-left:6px solid #16a34a;}
.master-compact #notices{background:linear-gradient(180deg,#fff,#f8f5ff);border-left:6px solid #7c3aed;}
.master-compact #masterCalendarCard,.master-compact #schedules{background:linear-gradient(180deg,#fff,#f5fbff);border-left:6px solid #0ea5e9;}
.master-compact #masterWorkReports,.master-compact #masterReportSummary{background:linear-gradient(180deg,#fff,#fff6f6);border-left:6px solid #ef4444;}
.master-compact .nb-card-title h2{letter-spacing:-.03em;}


/* ===== MES v5.9: 학생 알림장 UI 정리 + 원장 달력 축소 ===== */
.master-compact .master-top-row {
  grid-template-columns: minmax(280px, 0.74fr) minmax(300px, 1fr) !important;
  gap: 14px !important;
}
.master-compact #masterCalendarCard {
  max-width: 560px;
}
.master-compact #masterCalendarCard .nb-card-title {
  margin-bottom: 6px !important;
}
.master-compact #masterCalendarCard .nb-calendar {
  font-size: 11px !important;
}
.master-compact #masterCalendarCard .nb-cal-head {
  min-height: 24px !important;
  padding: 5px !important;
  font-size: 11px !important;
}
.master-compact #masterCalendarCard .nb-cal-day {
  min-height: 38px !important;
  padding: 4px !important;
}
.master-compact #masterCalendarCard .nb-date {
  font-size: 11px !important;
}
.master-compact #masterCalendarCard .nb-event {
  margin-top: 2px !important;
  padding: 1px 4px !important;
  font-size: 8.5px !important;
  line-height: 1.15 !important;
}
.master-compact #masterOpsCalendarDetail {
  margin-top: 8px !important;
  padding: 8px 10px !important;
  font-size: 12px !important;
}
@media (max-width: 900px){
  .master-compact .master-top-row { grid-template-columns: 1fr !important; }
  .master-compact #masterCalendarCard { max-width: none; }
}

/* v5.10 rich editor additions: alignment, table/image resizing, symbols */
.mes-rich-toolbar select[data-action="symbol"]{min-width:92px;}
.mes-rich-selected{outline:3px solid rgba(174,135,63,.55)!important;outline-offset:2px;}
.mes-rich-editor table,.mes-rich-display table{max-width:100%;}
.mes-rich-editor img,.mes-rich-display img{max-width:100%;height:auto;}


/* ===== MES v5.12: 원장 캘린더/학원일정 수평 균형 보정 ===== */
.master-compact .master-top-row{
  align-items:stretch !important;
  grid-template-columns:minmax(300px, .82fr) minmax(320px, 1fr) !important;
}
.master-compact .master-top-row #masterCalendarCard,
.master-compact .master-top-row #schedules{
  margin-top:0 !important;
  margin-bottom:0 !important;
  height:100% !important;
  min-height:0 !important;
  display:flex !important;
  flex-direction:column !important;
}
.master-compact .master-top-row #masterCalendarCard .nb-card-title,
.master-compact .master-top-row #schedules .nb-card-title{
  min-height:38px !important;
  display:flex !important;
  align-items:center !important;
}
.master-compact .master-top-row #masterSchedules{
  flex:1 1 auto !important;
  max-height:315px !important;
  overflow:auto !important;
}
.master-compact #masterOpsCalendarDetail{
  flex:0 0 auto !important;
}
.master-confirm-toast{
  margin-top:10px;
  padding:10px 12px;
  border-radius:12px;
  background:#ecfdf5;
  border:1px solid #bbf7d0;
  color:#166534;
  font-weight:800;
  font-size:13px;
}
@media (max-width:900px){
  .master-compact .master-top-row{grid-template-columns:1fr !important;}
  .master-compact .master-top-row #masterSchedules{max-height:none !important;}
}


/* ===== MES v5.15: 알림장/과제 게시 버튼 통합 + 원장 달력/일정 균형 최종 보정 ===== */
.master-compact .master-top-row{
  grid-template-columns:minmax(360px,1fr) minmax(360px,1fr) !important;
  gap:16px !important;
  align-items:stretch !important;
}
.master-compact .master-top-row #masterCalendarCard,
.master-compact .master-top-row #schedules{
  max-width:none !important;
  height:auto !important;
  min-height:440px !important;
  display:flex !important;
  flex-direction:column !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
}
.master-compact .master-top-row #masterOpsCalendar,
.master-compact .master-top-row #masterSchedules{
  flex:1 1 auto !important;
}
.master-compact .master-top-row #masterSchedules{
  max-height:360px !important;
  overflow:auto !important;
}
.master-compact #masterCalendarCard .nb-cal-day{min-height:42px !important;}
.master-compact #teacherAssign{display:none !important;}
@media(max-width:900px){
  .master-compact .master-top-row{grid-template-columns:1fr !important;}
  .master-compact .master-top-row #masterCalendarCard,
  .master-compact .master-top-row #schedules{min-height:0 !important;}
}

/* v5.16 원장 캘린더/학원일정 수평 균형 보정 */
.master-top-row{align-items:stretch!important;}
.master-top-row > .nb-card{margin-top:0!important;margin-bottom:0!important;height:100%;box-sizing:border-box;}
#masterCalendarCard .nb-calendar{gap:6px;}
#masterCalendarCard .nb-day,#masterCalendarCard .nb-cal-day{min-height:50px;padding:6px;}
#schedules{display:flex;flex-direction:column;}
#masterSchedules{flex:1;}


/* v5.17 알림장 편집기 상단 도구 고정 + 선생님/원장 화면 compact 보정 */
body.teacher-compact, body.master-compact{font-size:13.5px;}
body.teacher-compact .nb-main, body.master-compact .nb-main{padding:20px 24px 38px;}
body.teacher-compact .nb-card, body.master-compact .nb-card{padding:16px 17px;border-radius:18px;margin-bottom:14px;}
body.teacher-compact .nb-topbar, body.master-compact .nb-topbar{padding:18px 20px;border-radius:20px;margin-bottom:14px;}
body.teacher-compact .nb-card-title, body.master-compact .nb-card-title{margin-bottom:10px;}
body.teacher-compact .nb-card-title h2, body.master-compact .nb-card-title h2{font-size:18px;}
body.teacher-compact .nb-title h1, body.master-compact .nb-title h1{font-size:26px;}
body.teacher-compact .nb-title p, body.master-compact .nb-title p{font-size:13.5px;line-height:1.55;}
body.teacher-compact .nb-form-row, body.master-compact .nb-form-row{margin-bottom:9px;}
body.teacher-compact .nb-form-row label, body.master-compact .nb-form-row label{font-size:12.5px;margin-bottom:5px;}
body.teacher-compact input, body.teacher-compact select, body.teacher-compact textarea,
body.master-compact input, body.master-compact select, body.master-compact textarea{font-size:13px;padding:9px 11px;border-radius:12px;}
body.teacher-compact .nb-btn, body.master-compact .nb-btn{padding:8px 12px;font-size:13px;}
body.teacher-compact .nb-admin-badge, body.master-compact .nb-admin-badge{font-size:11.5px;padding:6px 9px;}
body.teacher-compact .nb-teacher-grid, body.master-compact .nb-teacher-grid{gap:14px;}
body.teacher-compact .nb-upload-grid, body.master-compact .nb-upload-grid{gap:10px;}
body.teacher-compact .nb-upload-box, body.master-compact .nb-upload-box{padding:11px;border-radius:14px;}
body.teacher-compact .nb-notice-item, body.master-compact .nb-notice-item,
body.teacher-compact .nb-submission-item, body.master-compact .nb-submission-item{padding:11px 12px;border-radius:14px;font-size:13px;}
body.teacher-compact .mes-rich-wrap, body.master-compact .mes-rich-wrap{overflow:visible;border-radius:14px;box-shadow:0 6px 16px rgba(15,31,61,.05);}
body.teacher-compact .mes-rich-toolbar, body.master-compact .mes-rich-toolbar{
  position:sticky; top:8px; z-index:30; display:flex; flex-wrap:wrap; gap:4px;
  padding:7px; margin-bottom:0; background:rgba(248,250,252,.98);
  border-bottom:1px solid #e5e7eb; box-shadow:0 8px 18px rgba(15,31,61,.10); backdrop-filter:blur(6px);
}
body.teacher-compact .mes-rich-toolbar button, body.teacher-compact .mes-rich-toolbar select,
body.master-compact .mes-rich-toolbar button, body.master-compact .mes-rich-toolbar select{font-size:11.5px;padding:5px 7px;border-radius:8px;min-height:30px;}
body.teacher-compact .mes-rich-editor, body.master-compact .mes-rich-editor{
  min-height:260px; max-height:460px; overflow:auto; padding:12px 13px;
  font-size:14px; line-height:1.65; border-radius:0 0 14px 14px;
}
body.teacher-compact .mes-rich-editor table td, body.master-compact .mes-rich-editor table td,
body.teacher-compact .mes-rich-editor table th, body.master-compact .mes-rich-editor table th{padding:6px;}
body.teacher-compact .nb-calendar, body.master-compact .nb-calendar{gap:5px;}
body.teacher-compact .nb-day, body.teacher-compact .nb-cal-day,
body.master-compact .nb-day, body.master-compact .nb-cal-day{min-height:48px;padding:6px;font-size:11.5px;border-radius:10px;}
@media(max-width:900px){body.teacher-compact .mes-rich-toolbar, body.master-compact .mes-rich-toolbar{top:0;}}


/* ===== MES v6.2: 알림장 상단 입력부 축소 + 원장페이지 은은한 섹션 구분 ===== */
body.teacher-compact #write .nb-editor,
body.master-compact #write .nb-editor{
  display:grid;
  grid-template-columns:minmax(145px,.85fr) minmax(150px,.8fr) minmax(260px,1.6fr);
  gap:8px 10px;
  align-items:end;
}
body.teacher-compact #write .nb-editor > .nb-form-row:nth-of-type(1),
body.master-compact #write .nb-editor > .nb-form-row:nth-of-type(1){grid-column:1;}
body.teacher-compact #write .nb-editor > .nb-form-row:nth-of-type(2),
body.master-compact #write .nb-editor > .nb-form-row:nth-of-type(2){grid-column:2;}
body.teacher-compact #write .nb-editor > .nb-form-row:nth-of-type(3),
body.master-compact #write .nb-editor > .nb-form-row:nth-of-type(3){grid-column:3;}
body.teacher-compact #write .nb-editor > .nb-form-row:nth-of-type(n+4),
body.teacher-compact #write .nb-upload-grid,
body.teacher-compact #write .nb-action-row,
body.master-compact #write .nb-editor > .nb-form-row:nth-of-type(n+4),
body.master-compact #write .nb-upload-grid,
body.master-compact #write .nb-action-row{grid-column:1 / -1;}
body.teacher-compact #write .nb-form-row:nth-of-type(-n+3),
body.master-compact #write .nb-form-row:nth-of-type(-n+3){margin-bottom:0;}
body.teacher-compact #write .nb-form-row:nth-of-type(-n+3) label,
body.master-compact #write .nb-form-row:nth-of-type(-n+3) label{
  font-size:11px;
  margin-bottom:3px;
  color:#64748b;
}
body.teacher-compact #write .nb-form-row:nth-of-type(-n+3) input,
body.teacher-compact #write .nb-form-row:nth-of-type(-n+3) select,
body.master-compact #write .nb-form-row:nth-of-type(-n+3) input,
body.master-compact #write .nb-form-row:nth-of-type(-n+3) select{
  min-height:36px;
  padding:7px 9px;
  font-size:12.5px;
  border-radius:10px;
}
body.teacher-compact #write .nb-card-title,
body.master-compact #write .nb-card-title{margin-bottom:8px;}
body.teacher-compact #write .nb-card-title h2,
body.master-compact #write .nb-card-title h2{font-size:17px;}

/* 원장 페이지: 진한 띠색 제거, 카드 배경만 은은하게 분리 */
body.master-compact #applications,
body.master-compact #submissions,
body.master-compact #write,
body.master-compact #notices,
body.master-compact #masterCalendarCard,
body.master-compact #schedules,
body.master-compact #masterWorkReports,
body.master-compact #masterReportSummary{
  border-left:1px solid rgba(215,207,192,.85) !important;
  box-shadow:0 10px 24px rgba(15,31,61,.055);
}
body.master-compact #applications{background:linear-gradient(180deg,#ffffff 0%,#f7faff 100%) !important;}
body.master-compact #write{background:linear-gradient(180deg,#ffffff 0%,#fbfaf4 100%) !important;}
body.master-compact #notices{background:linear-gradient(180deg,#ffffff 0%,#f8fafc 100%) !important;}
body.master-compact #submissions{background:linear-gradient(180deg,#ffffff 0%,#fffaf2 100%) !important;}
body.master-compact #masterWorkReports,
body.master-compact #masterReportSummary{background:linear-gradient(180deg,#ffffff 0%,#f9fbfb 100%) !important;}
body.master-compact #masterCalendarCard,
body.master-compact #schedules{background:linear-gradient(180deg,#ffffff 0%,#f6f9fc 100%) !important;}

/* 원장페이지: 알림장/신규신청 영역 우선, 달력/일정은 아래에서 균형 유지 */
body.master-compact .master-top-row{
  margin-top:14px !important;
  margin-bottom:0 !important;
  grid-template-columns:minmax(280px,.82fr) minmax(300px,1.18fr) !important;
  align-items:stretch !important;
}
body.master-compact .master-top-row #masterCalendarCard,
body.master-compact .master-top-row #schedules{max-width:none !important;}

@media(max-width:900px){
  body.teacher-compact #write .nb-editor,
  body.master-compact #write .nb-editor{grid-template-columns:1fr;}
  body.teacher-compact #write .nb-editor > .nb-form-row:nth-of-type(1),
  body.teacher-compact #write .nb-editor > .nb-form-row:nth-of-type(2),
  body.teacher-compact #write .nb-editor > .nb-form-row:nth-of-type(3),
  body.master-compact #write .nb-editor > .nb-form-row:nth-of-type(1),
  body.master-compact #write .nb-editor > .nb-form-row:nth-of-type(2),
  body.master-compact #write .nb-editor > .nb-form-row:nth-of-type(3){grid-column:1 / -1;}
}


/* ===== MES v6.3 알림장 편집 도구바 초압축 ===== */
body.teacher-compact .mes-toolbar-compact,
body.master-compact .mes-toolbar-compact{
  flex-wrap:nowrap!important;
  overflow-x:auto;
  overflow-y:hidden;
  gap:3px!important;
  padding:5px 6px!important;
  min-height:34px;
  scrollbar-width:thin;
}
body.teacher-compact .mes-toolbar-compact button,
body.teacher-compact .mes-toolbar-compact select,
body.master-compact .mes-toolbar-compact button,
body.master-compact .mes-toolbar-compact select{
  flex:0 0 auto;
  font-size:10.8px!important;
  line-height:1!important;
  padding:4px 6px!important;
  min-height:24px!important;
  border-radius:7px!important;
  white-space:nowrap;
}
body.teacher-compact .mes-toolbar-compact select,
body.master-compact .mes-toolbar-compact select{max-width:78px;}
body.teacher-compact .mes-toolbar-compact select[data-action="symbol"],
body.master-compact .mes-toolbar-compact select[data-action="symbol"]{max-width:62px;min-width:58px;}
body.teacher-compact .mes-toolbar-compact .mes-tool-label,
body.master-compact .mes-toolbar-compact .mes-tool-label{
  flex:0 0 auto;
  font-size:10px!important;
  margin-left:2px!important;
  color:#64748b;
}
body.teacher-compact .mes-toolbar-compact .mes-color-dot,
body.master-compact .mes-toolbar-compact .mes-color-dot{
  width:17px!important;
  height:17px!important;
  min-height:17px!important;
  padding:0!important;
  border-radius:50%!important;
}
body.teacher-compact .mes-rich-editor,
body.master-compact .mes-rich-editor{min-height:240px;max-height:430px;}


/* ===== MES v6.4 알림장/과제 목록 한 줄 목차형 정리 + 선생님 도구바 동일 적용 ===== */
body.teacher-compact #notices .nb-card-title,
body.master-compact #notices .nb-card-title{
  margin-bottom:6px!important;
}
body.teacher-compact #notices .nb-card-title h2,
body.master-compact #notices .nb-card-title h2{
  font-size:15px!important;
}
body.teacher-compact #notices .nb-admin-badge,
body.master-compact #notices .nb-admin-badge{
  font-size:10px!important;
  padding:3px 7px!important;
}
body.teacher-compact #teacherNoticePreview.nb-notice-list,
body.master-compact #teacherNoticePreview.nb-notice-list{
  display:block!important;
  gap:0!important;
  margin-top:4px!important;
}
body.teacher-compact .nb-notice-rowline,
body.master-compact .nb-notice-rowline,
body.master-compact .master-notice-rowline{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:6px!important;
  padding:5px 7px!important;
  margin:0!important;
  border:0!important;
  border-bottom:1px solid rgba(226,232,240,.9)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  min-height:30px!important;
}
body.teacher-compact .nb-notice-rowline:hover,
body.master-compact .nb-notice-rowline:hover,
body.master-compact .master-notice-rowline:hover{
  background:rgba(248,250,252,.95)!important;
}
body.teacher-compact .nb-notice-titleline,
body.master-compact .nb-notice-titleline{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  min-width:0!important;
  width:100%!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  text-align:left!important;
  cursor:pointer!important;
  font-family:inherit!important;
}
body.teacher-compact .nb-notice-titleline strong,
body.master-compact .nb-notice-titleline strong{
  flex:1 1 auto!important;
  min-width:0!important;
  display:block!important;
  font-size:12px!important;
  line-height:1.25!important;
  color:#1f2937!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
body.teacher-compact .nb-notice-titleline span,
body.master-compact .nb-notice-titleline span{
  flex:0 0 auto!important;
  max-width:38%!important;
  font-size:9.5px!important;
  line-height:1.2!important;
  color:#94a3b8!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
body.teacher-compact .nb-notice-mini-del,
body.master-compact .nb-notice-mini-del{
  padding:2px 6px!important;
  min-height:20px!important;
  border:1px solid #e5e7eb!important;
  border-radius:999px!important;
  background:#fff!important;
  color:#64748b!important;
  font-size:10px!important;
  cursor:pointer!important;
}
body.teacher-compact .nb-page-row,
body.master-compact .nb-page-row{
  margin-top:6px!important;
  gap:3px!important;
}
body.teacher-compact .nb-page-row button,
body.master-compact .nb-page-row button{
  padding:4px 7px!important;
  min-height:24px!important;
  font-size:11px!important;
}
/* 혹시 이전 도구바 CSS가 일부 페이지에 남아도 선생님/원장 모두 같은 압축형 강제 */
body.teacher-compact .mes-rich-toolbar,
body.master-compact .mes-rich-toolbar{
  flex-wrap:nowrap!important;
  overflow-x:auto!important;
  gap:3px!important;
  padding:5px 6px!important;
}
body.teacher-compact .mes-rich-toolbar button,
body.teacher-compact .mes-rich-toolbar select,
body.master-compact .mes-rich-toolbar button,
body.master-compact .mes-rich-toolbar select{
  font-size:10.8px!important;
  padding:4px 6px!important;
  min-height:24px!important;
  border-radius:7px!important;
  white-space:nowrap!important;
}
@media(max-width:900px){
  body.teacher-compact .nb-notice-titleline span,
  body.master-compact .nb-notice-titleline span{display:none!important;}
}


/* ===== MES v6.20 학생페이지 배치 재수정 + 긴 과제 스크롤 ===== */
.parent-notice-layout{
  display:grid!important;
  grid-template-columns:minmax(0,1.7fr) minmax(300px,.78fr)!important;
  gap:18px!important;
  align-items:start!important;
}
.parent-right-column{display:grid!important;grid-template-columns:1fr!important;gap:14px!important;align-items:start!important;}
.parent-list-card{margin-bottom:0!important;}
.parent-calendar-card{margin-bottom:0!important;}
.parent-detail-card{min-height:420px!important;}
.parent-detail-card #nbNoticeDetail{
  max-height:560px!important;
  overflow-y:auto!important;
  padding-right:8px!important;
  font-size:15px!important;
  line-height:1.8!important;
}
.parent-detail-card #nbNoticeDetail::-webkit-scrollbar,
body.teacher-compact .mes-rich-editor::-webkit-scrollbar,
body.master-compact .mes-rich-editor::-webkit-scrollbar{width:8px;height:8px;}
.parent-detail-card #nbNoticeDetail::-webkit-scrollbar-thumb,
body.teacher-compact .mes-rich-editor::-webkit-scrollbar-thumb,
body.master-compact .mes-rich-editor::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px;}
.parent-detail-card #nbNoticeDetail::-webkit-scrollbar-track,
body.teacher-compact .mes-rich-editor::-webkit-scrollbar-track,
body.master-compact .mes-rich-editor::-webkit-scrollbar-track{background:#f1f5f9;border-radius:999px;}
.parent-list-card .nb-notice-list{
  max-height:270px!important;
  overflow-y:auto!important;
  padding-right:4px!important;
}
.parent-calendar-card .nb-calendar{gap:5px!important;}
.parent-calendar-card .nb-cal-day,.parent-calendar-card .nb-day{min-height:44px!important;padding:5px!important;font-size:11px!important;border-radius:10px!important;}
.parent-calendar-card .nb-card-title h2{font-size:16px!important;}
.parent-calendar-card .nb-card-title button{padding:5px 8px!important;font-size:11px!important;}
.parent-bottom-layout{margin-top:18px!important;}
body.teacher-compact .mes-rich-wrap,
body.master-compact .mes-rich-wrap{max-height:none!important;}
body.teacher-compact .mes-rich-editor,
body.master-compact .mes-rich-editor{
  min-height:220px!important;
  max-height:380px!important;
  overflow-y:auto!important;
  overflow-x:auto!important;
  overscroll-behavior:contain!important;
}
body.teacher-compact #write .nb-editor,
body.master-compact #write .nb-editor{align-items:start!important;}
@media(max-width:900px){
  .parent-notice-layout{grid-template-columns:1fr!important;}
  .parent-right-column{order:2!important;}
  .parent-detail-card{order:1!important;}
  .parent-detail-card #nbNoticeDetail{max-height:520px!important;}
  .parent-list-card .nb-notice-list{max-height:240px!important;}
}

/* v6.22 원장페이지 알림장 목록 작성/수정 시간 표시 폭 보정 */
body.master-compact .master-notice-rowline{
  grid-template-columns:minmax(0,1fr) 34px!important;
  gap:4px!important;
  padding:5px 5px!important;
}
body.master-compact .master-notice-rowline .nb-notice-titleline{
  gap:6px!important;
}
body.master-compact .master-notice-rowline .nb-notice-titleline strong{
  flex:1 1 auto!important;
  min-width:80px!important;
  max-width:none!important;
}
body.master-compact .master-notice-rowline .nb-notice-titleline span{
  flex:0 0 178px!important;
  max-width:178px!important;
  font-size:9.2px!important;
  text-align:left!important;
  color:#64748b!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
body.master-compact .master-notice-rowline .nb-notice-mini-del{
  padding:2px 5px!important;
  min-width:30px!important;
  font-size:9px!important;
}
@media (max-width:900px){
  body.master-compact .master-notice-rowline .nb-notice-titleline span{
    flex:0 0 145px!important;
    max-width:145px!important;
  }
}

/* ===== MES v6.23 원장 알림장 목록 시간 표시 추가 보정 + 파스텔 구역 구분 ===== */
/* 원장 알림장 목록: 작성/수정자 + 수정시간이 끝까지 보이도록 시간 영역을 더 넓힘 */
body.master-compact .master-notice-rowline{
  grid-template-columns:minmax(0,1fr) 24px!important;
  gap:3px!important;
  padding:5px 4px!important;
}
body.master-compact .master-notice-rowline .nb-notice-titleline{
  display:grid!important;
  grid-template-columns:minmax(58px,1fr) 260px!important;
  align-items:center!important;
  gap:4px!important;
  width:100%!important;
}
body.master-compact .master-notice-rowline .nb-notice-titleline strong{
  min-width:0!important;
  max-width:none!important;
  font-size:11.5px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
body.master-compact .master-notice-rowline .nb-notice-titleline span{
  flex:none!important;
  width:260px!important;
  max-width:260px!important;
  font-size:9.1px!important;
  line-height:1.15!important;
  color:#56657a!important;
  text-align:left!important;
  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
}
body.master-compact .master-notice-rowline .nb-notice-mini-del{
  width:24px!important;
  min-width:24px!important;
  padding:2px 3px!important;
  font-size:8.5px!important;
  border-radius:8px!important;
}
@media (max-width:1100px){
  body.master-compact .master-notice-rowline .nb-notice-titleline{
    grid-template-columns:minmax(50px,1fr) 235px!important;
  }
  body.master-compact .master-notice-rowline .nb-notice-titleline span{
    width:235px!important;
    max-width:235px!important;
    font-size:8.8px!important;
  }
}
@media (max-width:900px){
  body.master-compact .master-notice-rowline .nb-notice-titleline{
    grid-template-columns:1fr!important;
    gap:1px!important;
  }
  body.master-compact .master-notice-rowline .nb-notice-titleline span{
    width:auto!important;
    max-width:none!important;
    font-size:9px!important;
    overflow:visible!important;
    white-space:normal!important;
  }
}

/* 원장페이지 구역별 은은한 파스텔 배경: 원색 띠 제거, 기능은 건드리지 않음 */
body.master-compact #applications{
  background:linear-gradient(180deg,#ffffff 0%,#f6f9fc 100%)!important;
  border:1px solid #dbe5ef!important;
  border-left:1px solid #dbe5ef!important;
}
body.master-compact #submissions{
  background:linear-gradient(180deg,#ffffff 0%,#fbf7ef 100%)!important;
  border:1px solid #eadfcd!important;
  border-left:1px solid #eadfcd!important;
}
body.master-compact #write{
  background:linear-gradient(180deg,#ffffff 0%,#f3faf6 100%)!important;
  border:1px solid #d8eadf!important;
  border-left:1px solid #d8eadf!important;
}
body.master-compact #notices{
  background:linear-gradient(180deg,#ffffff 0%,#f7f5fb 100%)!important;
  border:1px solid #e4dff0!important;
  border-left:1px solid #e4dff0!important;
}
body.master-compact #masterCalendarCard,
body.master-compact #schedules{
  background:linear-gradient(180deg,#ffffff 0%,#f3f8fb 100%)!important;
  border:1px solid #d8e8f0!important;
  border-left:1px solid #d8e8f0!important;
}
body.master-compact #masterWorkReports,
body.master-compact #masterReportSummary{
  background:linear-gradient(180deg,#ffffff 0%,#fbf5f5 100%)!important;
  border:1px solid #eadada!important;
  border-left:1px solid #eadada!important;
}
body.master-compact .nb-card{
  box-shadow:0 14px 32px rgba(15,31,61,.075)!important;
}

/* ===== MES v6.24 학생페이지 달력 폭 보정: 왼쪽 상세 영역 소폭 추가 축소 ===== */
.parent-notice-layout{
  grid-template-columns:minmax(0,1.45fr) minmax(360px,.95fr)!important;
}
.parent-calendar-card .nb-calendar{
  width:100%!important;
}
.parent-calendar-card .nb-cal-day,
.parent-calendar-card .nb-day{
  min-width:0!important;
}
@media(max-width:900px){
  .parent-notice-layout{grid-template-columns:1fr!important;}
}


/* ===== MES v6.25 학생페이지 달력 폭 추가 보정: 숙제/알림장 상세 폭 축소, 달력 폭 확대 ===== */
.parent-notice-layout{
  grid-template-columns:minmax(0,1.08fr) minmax(450px,1fr)!important;
  gap:18px!important;
}
.parent-detail-card{min-width:0!important;}
.parent-right-column{min-width:430px!important;}
.parent-calendar-card .nb-calendar{
  gap:6px!important;
}
.parent-calendar-card .nb-cal-day,
.parent-calendar-card .nb-day{
  min-height:52px!important;
  padding:6px!important;
  font-size:11.5px!important;
  border-radius:11px!important;
}
@media(max-width:1200px){
  .parent-notice-layout{grid-template-columns:minmax(0,1fr) minmax(410px,.98fr)!important;}
  .parent-right-column{min-width:390px!important;}
}
@media(max-width:900px){
  .parent-notice-layout{grid-template-columns:1fr!important;}
  .parent-right-column{min-width:0!important;}
}


/* ===== MES v6.30 원장페이지 작성/링크 구역 화면밖 이탈 방지 (v6.25 기반) ===== */
body.master-compact .nb-main{
  overflow-x:hidden!important;
}
body.master-compact .nb-teacher-grid,
body.master-compact .nb-teacher-grid > div,
body.master-compact #write,
body.master-compact #write .nb-editor,
body.master-compact #write .nb-form-row,
body.master-compact #write .nb-upload-grid,
body.master-compact #write .nb-upload-box,
body.master-compact #write .nb-action-row,
body.master-compact #write input,
body.master-compact #write select,
body.master-compact #write textarea,
body.master-compact #write .mes-rich-wrap,
body.master-compact #write .mes-rich-toolbar,
body.master-compact #write .mes-rich-editor{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
body.master-compact #write .nb-editor{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:8px 10px!important;
  align-items:start!important;
}
body.master-compact #write .nb-editor > .nb-form-row:nth-of-type(1){grid-column:1!important;}
body.master-compact #write .nb-editor > .nb-form-row:nth-of-type(2){grid-column:2!important;}
body.master-compact #write .nb-editor > .nb-form-row:nth-of-type(3),
body.master-compact #write .nb-editor > .nb-form-row:nth-of-type(n+4){grid-column:1 / -1!important;}
body.master-compact #write .nb-upload-grid{
  grid-column:1 / -1!important;
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:8px!important;
}
body.master-compact #write .nb-upload-box{
  overflow:hidden!important;
  padding:10px 11px!important;
}
body.master-compact #write .nb-upload-box input[type="file"]{
  width:100%!important;
  max-width:100%!important;
  overflow:hidden!important;
  font-size:11px!important;
}
body.master-compact #write #teacherFileLink,
body.master-compact #write #teacherVideoLink{
  width:100%!important;
  max-width:100%!important;
  font-size:12px!important;
  padding:8px 9px!important;
}
body.master-compact #write .nb-action-row{
  grid-column:1 / -1!important;
  display:flex!important;
  flex-wrap:wrap!important;
  justify-content:flex-start!important;
  gap:6px!important;
}
body.master-compact #write .nb-action-row .nb-btn{
  flex:1 1 140px!important;
  min-width:0!important;
  white-space:normal!important;
}
@media(max-width:1250px){
  body.master-compact .nb-teacher-grid{grid-template-columns:1fr!important;}
}
@media(max-width:900px){
  body.master-compact #write .nb-editor{grid-template-columns:1fr!important;}
  body.master-compact #write .nb-editor > .nb-form-row:nth-of-type(1),
  body.master-compact #write .nb-editor > .nb-form-row:nth-of-type(2),
  body.master-compact #write .nb-editor > .nb-form-row:nth-of-type(3){grid-column:1 / -1!important;}
}

/* ===== MES v6.31 원장페이지 전체 압축 + 알림장 목록 수정/삭제 텍스트형 ===== */
body.master-compact{font-size:12.5px!important;}
body.master-compact .nb-main{padding:14px 18px 28px!important;}
body.master-compact .nb-topbar,
body.master-compact .nb-dashboard-strip{padding:13px 15px!important;border-radius:15px!important;margin-bottom:10px!important;}
body.master-compact .nb-title h1{font-size:22px!important;line-height:1.2!important;}
body.master-compact .nb-title p{font-size:12px!important;line-height:1.45!important;margin-top:5px!important;}
body.master-compact .nb-card{padding:11px 12px!important;border-radius:14px!important;margin-bottom:10px!important;}
body.master-compact .nb-card-title{margin-bottom:7px!important;gap:8px!important;}
body.master-compact .nb-card-title h2{font-size:15px!important;line-height:1.25!important;}
body.master-compact .nb-admin-badge{font-size:10px!important;padding:3px 6px!important;border-radius:999px!important;}
body.master-compact .nb-form-row{margin-bottom:6px!important;}
body.master-compact .nb-form-row label{font-size:11px!important;margin-bottom:3px!important;}
body.master-compact input,
body.master-compact select,
body.master-compact textarea{font-size:12px!important;padding:7px 8px!important;border-radius:9px!important;}
body.master-compact .nb-btn,
body.master-compact .btn{font-size:12px!important;padding:6px 9px!important;min-height:28px!important;border-radius:10px!important;}
body.master-compact .nb-teacher-grid,
body.master-compact .master-top-row{gap:10px!important;}
body.master-compact .nb-upload-box{padding:8px 9px!important;border-radius:10px!important;}
body.master-compact .nb-submission-item,
body.master-compact .nb-notice-item{padding:8px 9px!important;border-radius:10px!important;font-size:12px!important;line-height:1.45!important;}
body.master-compact .mes-rich-toolbar{gap:3px!important;padding:4px 5px!important;}
body.master-compact .mes-rich-toolbar button,
body.master-compact .mes-rich-toolbar select{font-size:10.5px!important;padding:3px 5px!important;min-height:22px!important;border-radius:6px!important;}
body.master-compact .mes-rich-editor{min-height:190px!important;max-height:340px!important;font-size:12.5px!important;line-height:1.55!important;padding:9px 10px!important;}
body.master-compact .nb-calendar{gap:4px!important;}
body.master-compact .nb-day,
body.master-compact .nb-cal-day{min-height:42px!important;padding:5px!important;font-size:10.5px!important;border-radius:8px!important;}

/* 원장 알림장/과제 목록: 제목 아래에 작성/수정 정보를 전체 폭으로 표시 */
body.master-compact #teacherNoticePreview.nb-notice-list{gap:0!important;margin-top:3px!important;}
body.master-compact .master-notice-stackline{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:start!important;
  gap:8px!important;
  padding:7px 8px!important;
  border:0!important;
  border-bottom:1px solid rgba(226,232,240,.95)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  min-height:0!important;
}
body.master-compact .master-notice-main{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  background:transparent!important;
  text-align:left!important;
  font-family:inherit!important;
  cursor:pointer!important;
}
body.master-compact .master-notice-title-only{
  display:block!important;
  width:100%!important;
  font-size:12px!important;
  line-height:1.25!important;
  color:#1f2937!important;
  font-weight:900!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
}
body.master-compact .master-notice-meta-full{
  display:block!important;
  width:100%!important;
  margin-top:2px!important;
  font-size:10.4px!important;
  line-height:1.32!important;
  color:#526175!important;
  font-weight:700!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  word-break:keep-all!important;
  overflow-wrap:anywhere!important;
}
body.master-compact .master-notice-actions{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:flex-end!important;
  gap:7px!important;
  min-width:46px!important;
  padding-top:1px!important;
  white-space:nowrap!important;
}
body.master-compact .master-text-action{
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  padding:0!important;
  margin:0!important;
  min-width:0!important;
  min-height:0!important;
  width:auto!important;
  color:#17386b!important;
  font-size:10.8px!important;
  line-height:1.25!important;
  font-weight:900!important;
  text-decoration:none!important;
  cursor:pointer!important;
}
body.master-compact .master-text-action.danger{color:#b91c1c!important;}
body.master-compact .master-text-action:hover{text-decoration:underline!important;}
body.master-compact .master-notice-rowline .nb-notice-titleline,
body.master-compact .master-notice-rowline .nb-notice-titleline strong,
body.master-compact .master-notice-rowline .nb-notice-titleline span{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;}

/* ===== MES v6.32 원장/선생님 알림장 목록 숙제제목 행 축소 ===== */
/* 목록의 날짜형 숙제제목(예: 7월 1일(수))이 혼자 크게 보이지 않도록 제목 글씨와 행 높이만 줄임 */
body.teacher-compact .nb-notice-rowline,
body.master-compact .master-notice-stackline{
  padding:4px 6px!important;
  gap:5px!important;
  min-height:0!important;
  line-height:1.25!important;
}
body.teacher-compact .nb-notice-titleline strong,
body.master-compact .master-notice-title-only{
  font-size:10.8px!important;
  line-height:1.18!important;
  font-weight:800!important;
  letter-spacing:-.02em!important;
}
body.teacher-compact .nb-notice-titleline span,
body.master-compact .master-notice-meta-full{
  font-size:9.3px!important;
  line-height:1.22!important;
  margin-top:1px!important;
}
body.teacher-compact .nb-notice-mini-del{
  padding:1px 5px!important;
  min-height:18px!important;
  font-size:9.5px!important;
  border-radius:8px!important;
}
body.master-compact .master-notice-actions{
  gap:5px!important;
  min-width:42px!important;
  padding-top:0!important;
}
body.master-compact .master-text-action{
  font-size:9.8px!important;
  line-height:1.15!important;
}
body.teacher-compact #teacherNoticePreview.nb-notice-list,
body.master-compact #teacherNoticePreview.nb-notice-list{
  margin-top:2px!important;
}


/* ===== MES v6.33 최종 재반영: 원장/선생님 알림장 목록 제목-메타-수정삭제 구조 확정 ===== */
/* 목표: 7월 1일(수) 아래에 작성/수정 정보가 보이고, 시간은 절대 말줄임 처리되지 않게 함. */
body.master-compact #teacherNoticePreview.nb-notice-list,
body.teacher-compact #teacherNoticePreview.nb-notice-list{
  gap:2px!important;
  margin-top:2px!important;
}
body.master-compact #teacherNoticePreview .master-notice-stackline,
body.teacher-compact #teacherNoticePreview .staff-notice-stackline{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) max-content!important;
  align-items:start!important;
  column-gap:6px!important;
  row-gap:0!important;
  padding:4px 6px!important;
  min-height:0!important;
  border-radius:7px!important;
  border:1px solid rgba(226,232,240,.9)!important;
  background:#f8fafc!important;
  box-shadow:none!important;
  line-height:1.18!important;
  overflow:visible!important;
}
body.master-compact #teacherNoticePreview .master-notice-main,
body.teacher-compact #teacherNoticePreview .staff-notice-main{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  text-align:left!important;
  font:inherit!important;
  color:inherit!important;
  cursor:pointer!important;
  overflow:visible!important;
  white-space:normal!important;
}
body.master-compact #teacherNoticePreview .master-notice-title-only,
body.teacher-compact #teacherNoticePreview .staff-notice-title-only{
  display:block!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  font-size:10.3px!important;
  line-height:1.14!important;
  font-weight:800!important;
  color:#1f2937!important;
  letter-spacing:-.025em!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
}
body.master-compact #teacherNoticePreview .master-notice-meta-full,
body.teacher-compact #teacherNoticePreview .staff-notice-meta-full{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  margin:2px 0 0!important;
  padding:0!important;
  font-size:9.2px!important;
  line-height:1.22!important;
  font-weight:700!important;
  color:#526175!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  word-break:keep-all!important;
  overflow-wrap:anywhere!important;
}
body.master-compact #teacherNoticePreview .master-notice-actions,
body.teacher-compact #teacherNoticePreview .staff-notice-actions{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:flex-end!important;
  gap:5px!important;
  width:auto!important;
  min-width:38px!important;
  padding:0!important;
  margin:0!important;
  white-space:nowrap!important;
}
body.master-compact #teacherNoticePreview .master-text-action,
body.teacher-compact #teacherNoticePreview .staff-text-action{
  display:inline!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  padding:0!important;
  margin:0!important;
  min-width:0!important;
  min-height:0!important;
  width:auto!important;
  height:auto!important;
  border-radius:0!important;
  color:#17386b!important;
  font-size:9.4px!important;
  line-height:1.15!important;
  font-weight:900!important;
  text-decoration:none!important;
  cursor:pointer!important;
}
body.master-compact #teacherNoticePreview .master-text-action.danger,
body.teacher-compact #teacherNoticePreview .staff-text-action.danger{
  color:#b91c1c!important;
}
body.master-compact #teacherNoticePreview .master-text-action:hover,
body.teacher-compact #teacherNoticePreview .staff-text-action:hover{
  text-decoration:underline!important;
}
/* 이전 버전의 span 말줄임/버튼 스타일이 남아 있어도 목록 시간 줄에는 영향을 못 주도록 무력화 */
body.master-compact #teacherNoticePreview .master-notice-stackline span,
body.master-compact #teacherNoticePreview .master-notice-stackline strong,
body.teacher-compact #teacherNoticePreview .staff-notice-stackline span,
body.teacher-compact #teacherNoticePreview .staff-notice-stackline strong{
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
}

/* ===== MES v6.34: 원장/선생님 알림장 목록 가독성 재정리 ===== */
/* 제목은 왼쪽 정렬, 작성/수정 정보는 제목 아래 아주 작게, 수정/삭제는 글씨형 버튼, 목록은 5개씩 페이지 처리 */
body.master-compact #teacherNoticePreview.nb-notice-list,
body.teacher-compact #teacherNoticePreview.nb-notice-list{
  display:grid!important;
  gap:3px!important;
  margin-top:3px!important;
  max-height:none!important;
  overflow:visible!important;
}
body.master-compact #teacherNoticePreview .admin-notice-compact-row,
body.teacher-compact #teacherNoticePreview .admin-notice-compact-row{
  position:relative!important;
  display:block!important;
  grid-template-columns:none!important;
  width:100%!important;
  box-sizing:border-box!important;
  padding:5px 52px 5px 8px!important;
  min-height:34px!important;
  border-radius:8px!important;
  border:1px solid rgba(226,232,240,.95)!important;
  background:#f8fafc!important;
  box-shadow:none!important;
  line-height:1.15!important;
  overflow:visible!important;
}
body.master-compact #teacherNoticePreview .admin-notice-compact-row:hover,
body.teacher-compact #teacherNoticePreview .admin-notice-compact-row:hover{
  background:#f1f5f9!important;
}
body.master-compact #teacherNoticePreview .admin-notice-main,
body.teacher-compact #teacherNoticePreview .admin-notice-main{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  text-align:left!important;
  color:inherit!important;
  font:inherit!important;
  cursor:pointer!important;
  white-space:normal!important;
  overflow:visible!important;
}
body.master-compact #teacherNoticePreview .admin-notice-title,
body.teacher-compact #teacherNoticePreview .admin-notice-title{
  display:block!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  text-align:left!important;
  font-size:10.8px!important;
  line-height:1.14!important;
  font-weight:900!important;
  color:#172033!important;
  letter-spacing:-.02em!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
}
body.master-compact #teacherNoticePreview .admin-notice-meta,
body.teacher-compact #teacherNoticePreview .admin-notice-meta{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  margin:2px 0 0!important;
  padding:0!important;
  text-align:left!important;
  font-size:8.25px!important;
  line-height:1.18!important;
  font-weight:650!important;
  color:#64748b!important;
  letter-spacing:-.035em!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  word-break:keep-all!important;
  overflow-wrap:anywhere!important;
}
body.master-compact #teacherNoticePreview .admin-notice-actions,
body.teacher-compact #teacherNoticePreview .admin-notice-actions{
  position:absolute!important;
  right:7px!important;
  bottom:5px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:5px!important;
  width:auto!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  white-space:nowrap!important;
}
body.master-compact #teacherNoticePreview .admin-notice-actions button,
body.teacher-compact #teacherNoticePreview .admin-notice-actions button,
body.master-compact #teacherNoticePreview .master-text-action,
body.teacher-compact #teacherNoticePreview .staff-text-action{
  display:inline!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  padding:0!important;
  margin:0!important;
  min-width:0!important;
  min-height:0!important;
  width:auto!important;
  height:auto!important;
  border-radius:0!important;
  color:#17386b!important;
  font-size:8.8px!important;
  line-height:1.1!important;
  font-weight:900!important;
  text-decoration:none!important;
  cursor:pointer!important;
}
body.master-compact #teacherNoticePreview .admin-notice-actions .danger,
body.teacher-compact #teacherNoticePreview .admin-notice-actions .danger,
body.master-compact #teacherNoticePreview .master-text-action.danger,
body.teacher-compact #teacherNoticePreview .staff-text-action.danger{
  color:#b91c1c!important;
}
body.master-compact #teacherNoticePreview .admin-notice-actions button:hover,
body.teacher-compact #teacherNoticePreview .admin-notice-actions button:hover{
  text-decoration:underline!important;
}
body.master-compact #teacherNoticePreview .staff-notice-pager,
body.teacher-compact #teacherNoticePreview .staff-notice-pager{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  margin:7px 0 0!important;
  padding:2px 0 0!important;
  border-top:1px solid rgba(226,232,240,.8)!important;
}
body.master-compact #teacherNoticePreview .staff-pager-link,
body.teacher-compact #teacherNoticePreview .staff-pager-link{
  display:inline!important;
  width:auto!important;
  min-width:0!important;
  min-height:0!important;
  height:auto!important;
  padding:0 2px!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:#64748b!important;
  font-size:10.2px!important;
  line-height:1.2!important;
  font-weight:800!important;
  cursor:pointer!important;
}
body.master-compact #teacherNoticePreview .staff-pager-link.active,
body.teacher-compact #teacherNoticePreview .staff-pager-link.active{
  color:#0f1f3d!important;
  font-weight:950!important;
  text-decoration:underline!important;
  text-underline-offset:2px!important;
}
body.master-compact #teacherNoticePreview .staff-pager-link:hover,
body.teacher-compact #teacherNoticePreview .staff-pager-link:hover{
  color:#17386b!important;
  text-decoration:underline!important;
}


/* ===== v6.35 선생님/원장 페이지 글씨형 액션 버튼 보정 ===== */
body.teacher-compact .nb-main .nb-btn,body.master-compact .nb-main .nb-btn,body.teacher-compact .nb-alert .btn,body.master-compact .nb-alert .btn{display:inline-flex!important;align-items:center!important;justify-content:flex-start!important;width:auto!important;min-width:0!important;max-width:none!important;height:auto!important;min-height:0!important;flex:0 0 auto!important;padding:0 3px!important;margin:0 5px 0 0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;font-size:12px!important;line-height:1.25!important;font-weight:950!important;letter-spacing:-.02em!important;color:#17386b!important;text-decoration:none!important;white-space:nowrap!important;cursor:pointer!important;}
body.teacher-compact .nb-main .nb-btn:hover,body.master-compact .nb-main .nb-btn:hover,body.teacher-compact .nb-alert .btn:hover,body.master-compact .nb-alert .btn:hover{text-decoration:underline!important;text-underline-offset:2px!important;}
body.teacher-compact .nb-main .nb-btn.navy,body.master-compact .nb-main .nb-btn.navy,body.teacher-compact .nb-main .nb-btn.gold,body.master-compact .nb-main .nb-btn.gold{color:#0f1f3d!important;}
body.teacher-compact .nb-main .nb-btn.light,body.master-compact .nb-main .nb-btn.light{color:#475569!important;}
body.teacher-compact .nb-main .nb-btn.danger,body.master-compact .nb-main .nb-btn.danger,body.teacher-compact .nb-main button[class*="delete"],body.master-compact .nb-main button[class*="delete"],body.teacher-compact .nb-main .staff-text-action.danger,body.master-compact .nb-main .master-text-action.danger{color:#b91c1c!important;}
body.teacher-compact .nb-main button[class*="send"],body.master-compact .nb-main button[class*="send"],body.teacher-compact .nb-main button[class*="submit"],body.master-compact .nb-main button[class*="submit"],body.teacher-compact .nb-main #teacherPublish,body.master-compact .nb-main #teacherPublish,body.teacher-compact .nb-main #saveEvent,body.master-compact .nb-main #saveEvent{color:#12315f!important;}
body.teacher-compact .nb-action-row,body.master-compact .nb-action-row,body.teacher-compact .master-compact-buttons,body.master-compact .master-compact-buttons,body.teacher-compact .admin-notice-actions,body.master-compact .admin-notice-actions,body.teacher-compact .master-notice-actions,body.master-compact .master-notice-actions{display:flex!important;flex-wrap:wrap!important;align-items:center!important;justify-content:flex-start!important;gap:6px 10px!important;grid-template-columns:none!important;}
body.teacher-compact .nb-page-btns,body.master-compact .nb-page-btns,body.teacher-compact .staff-notice-pager,body.master-compact .staff-notice-pager{display:flex!important;flex-wrap:wrap!important;justify-content:center!important;gap:8px!important;}
body.teacher-compact .nb-card-title .nb-btn,body.master-compact .nb-card-title .nb-btn{font-size:15px!important;padding:0 2px!important;margin:0 2px!important;}
body.teacher-compact .mes-rich-toolbar button,body.master-compact .mes-rich-toolbar button{border:1px solid #d7dee9!important;border-radius:6px!important;background:#fff!important;padding:3px 5px!important;min-height:22px!important;color:#0f1f3d!important;box-shadow:none!important;}


/* ===== MES v6.36: 글씨형 버튼 형광펜 배경색 구분 + 편집기 색/형광펜 복구 + 학생 상세 메타 소형화 ===== */
/* 1) 선생님/원장 주요 버튼: 네모박스 느낌은 줄이고, 형광펜처럼 연한 배경색으로 역할 구분 */
body.teacher-compact .nb-main .nb-btn:not(.mes-color-dot),
body.master-compact .nb-main .nb-btn:not(.mes-color-dot),
body.teacher-compact .nb-alert .btn,
body.master-compact .nb-alert .btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  min-height:0!important;
  height:auto!important;
  flex:0 0 auto!important;
  padding:2px 6px!important;
  margin:0 4px 0 0!important;
  border:0!important;
  border-radius:5px!important;
  box-shadow:none!important;
  background:linear-gradient(180deg,rgba(238,244,255,.78),rgba(238,244,255,.78))!important;
  color:#12315f!important;
  font-size:11.5px!important;
  line-height:1.25!important;
  font-weight:950!important;
  letter-spacing:-.02em!important;
  text-decoration:none!important;
  white-space:nowrap!important;
  cursor:pointer!important;
}
body.teacher-compact .nb-main .nb-btn.navy:not(.mes-color-dot),
body.master-compact .nb-main .nb-btn.navy:not(.mes-color-dot),
body.teacher-compact .nb-main button[class*="send"],
body.master-compact .nb-main button[class*="send"],
body.teacher-compact .nb-main button[class*="submit"],
body.master-compact .nb-main button[class*="submit"],
body.teacher-compact .nb-main #teacherPublish,
body.master-compact .nb-main #teacherPublish{
  background:linear-gradient(180deg,rgba(222,235,255,.95),rgba(222,235,255,.95))!important;
  color:#0f2f68!important;
}
body.teacher-compact .nb-main .nb-btn.gold:not(.mes-color-dot),
body.master-compact .nb-main .nb-btn.gold:not(.mes-color-dot){
  background:linear-gradient(180deg,rgba(255,241,188,.96),rgba(255,241,188,.96))!important;
  color:#704d00!important;
}
body.teacher-compact .nb-main .nb-btn.light:not(.mes-color-dot),
body.master-compact .nb-main .nb-btn.light:not(.mes-color-dot),
body.teacher-compact .nb-alert .btn.secondary,
body.master-compact .nb-alert .btn.secondary{
  background:linear-gradient(180deg,rgba(241,245,249,.96),rgba(241,245,249,.96))!important;
  color:#475569!important;
}
body.teacher-compact .nb-main .nb-btn.danger:not(.mes-color-dot),
body.master-compact .nb-main .nb-btn.danger:not(.mes-color-dot),
body.teacher-compact .nb-main button[class*="delete"],
body.master-compact .nb-main button[class*="delete"],
body.teacher-compact .nb-main .staff-text-action.danger,
body.master-compact .nb-main .master-text-action.danger,
body.teacher-compact .nb-main .admin-notice-actions .danger,
body.master-compact .nb-main .admin-notice-actions .danger{
  background:linear-gradient(180deg,rgba(254,226,226,.96),rgba(254,226,226,.96))!important;
  color:#b91c1c!important;
}
body.teacher-compact .nb-main .nb-btn:hover,
body.master-compact .nb-main .nb-btn:hover,
body.teacher-compact .nb-alert .btn:hover,
body.master-compact .nb-alert .btn:hover{
  text-decoration:underline!important;
  text-underline-offset:2px!important;
}
/* 알림장 목록의 수정/삭제 텍스트 버튼도 아주 작고 색으로만 구분 */
body.teacher-compact #teacherNoticePreview .admin-notice-actions button,
body.master-compact #teacherNoticePreview .admin-notice-actions button,
body.teacher-compact #teacherNoticePreview .staff-text-action,
body.master-compact #teacherNoticePreview .master-text-action{
  display:inline!important;
  min-width:0!important;
  min-height:0!important;
  width:auto!important;
  height:auto!important;
  padding:1px 3px!important;
  margin:0!important;
  border:0!important;
  border-radius:4px!important;
  box-shadow:none!important;
  background:rgba(222,235,255,.85)!important;
  color:#17386b!important;
  font-size:8.8px!important;
  line-height:1.12!important;
  font-weight:950!important;
}
body.teacher-compact #teacherNoticePreview .admin-notice-actions .danger,
body.master-compact #teacherNoticePreview .admin-notice-actions .danger,
body.teacher-compact #teacherNoticePreview .staff-text-action.danger,
body.master-compact #teacherNoticePreview .master-text-action.danger{
  background:rgba(254,226,226,.92)!important;
  color:#b91c1c!important;
}
/* 2) 알림장 편집기 서식 도구는 버튼 압축 규칙에서 제외: 글씨색/형광펜 색점이 다시 보이도록 복구 */
body.teacher-compact .mes-rich-toolbar,
body.master-compact .mes-rich-toolbar{
  display:flex!important;
  flex-wrap:nowrap!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  gap:3px!important;
  padding:5px 6px!important;
  background:rgba(248,250,252,.98)!important;
}
body.teacher-compact .mes-rich-toolbar button:not(.mes-color-dot),
body.master-compact .mes-rich-toolbar button:not(.mes-color-dot),
body.teacher-compact .mes-rich-toolbar select,
body.master-compact .mes-rich-toolbar select{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  min-width:0!important;
  min-height:24px!important;
  height:auto!important;
  flex:0 0 auto!important;
  padding:4px 6px!important;
  margin:0!important;
  border:1px solid #d7dee9!important;
  border-radius:7px!important;
  background:#fff!important;
  color:#0f1f3d!important;
  box-shadow:none!important;
  font-size:10.8px!important;
  line-height:1!important;
  font-weight:800!important;
  text-decoration:none!important;
}
body.teacher-compact .mes-rich-toolbar button.mes-color-dot,
body.master-compact .mes-rich-toolbar button.mes-color-dot{
  display:inline-block!important;
  flex:0 0 auto!important;
  width:17px!important;
  height:17px!important;
  min-width:17px!important;
  min-height:17px!important;
  padding:0!important;
  margin:0!important;
  border:1px solid rgba(15,31,61,.18)!important;
  border-radius:50%!important;
  background:var(--dot-bg)!important;
  background-color:var(--dot-bg)!important;
  color:transparent!important;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.55)!important;
  overflow:hidden!important;
}
body.teacher-compact .mes-rich-toolbar .mes-tool-label,
body.master-compact .mes-rich-toolbar .mes-tool-label{
  flex:0 0 auto!important;
  font-size:10px!important;
  color:#64748b!important;
  margin-left:2px!important;
}
/* 3) 학생페이지 상세 확인란: 제목 아래에 작성/수정 정보를 아주 작게 표시 */
.parent-detail-card .nb-card-title{
  align-items:flex-start!important;
  justify-content:flex-start!important;
  gap:0!important;
}
.parent-detail-card #nbDetailTitle{
  display:block!important;
  width:100%!important;
  margin:0!important;
  line-height:1.2!important;
}
.parent-notice-detail-title{
  display:block!important;
  font-size:16px!important;
  line-height:1.2!important;
  color:#0f1f3d!important;
  font-weight:900!important;
  letter-spacing:-.02em!important;
}
.parent-notice-detail-meta{
  display:block!important;
  margin-top:3px!important;
  font-size:10px!important;
  line-height:1.25!important;
  color:#64748b!important;
  font-weight:700!important;
  letter-spacing:-.025em!important;
  white-space:normal!important;
}
.parent-detail-card #nbDetailBadge{
  display:none!important;
}

/* ===== MES v6.37: 원장페이지 알림장 작성 상단 입력부 추가 압축 ===== */
body.master-compact #write{
  padding:11px 12px!important;
  margin-bottom:12px!important;
}
body.master-compact #write .nb-card-title{
  margin-bottom:5px!important;
  gap:6px!important;
  align-items:center!important;
}
body.master-compact #write .nb-card-title h2{
  font-size:14.5px!important;
  line-height:1.15!important;
  letter-spacing:-.04em!important;
}
body.master-compact #write .nb-card-title .nb-admin-badge{
  font-size:9.5px!important;
  line-height:1.1!important;
  padding:3px 6px!important;
  border-radius:999px!important;
  white-space:nowrap!important;
}
body.master-compact #write .nb-editor{
  grid-template-columns:minmax(120px,.8fr) minmax(130px,.8fr) minmax(190px,1.25fr)!important;
  gap:5px 7px!important;
}
body.master-compact #write .nb-editor > .nb-form-row:nth-of-type(-n+3){
  margin-bottom:0!important;
}
body.master-compact #write .nb-editor > .nb-form-row:nth-of-type(-n+3) label{
  font-size:9.8px!important;
  line-height:1.1!important;
  margin-bottom:2px!important;
  font-weight:850!important;
  letter-spacing:-.035em!important;
}
body.master-compact #write .nb-editor > .nb-form-row:nth-of-type(-n+3) input,
body.master-compact #write .nb-editor > .nb-form-row:nth-of-type(-n+3) select{
  min-height:28px!important;
  height:28px!important;
  padding:4px 7px!important;
  font-size:11px!important;
  line-height:1.1!important;
  border-radius:8px!important;
}
body.master-compact #write #teacherNoticeTitle{
  font-size:11px!important;
  font-weight:800!important;
}
body.master-compact #write .nb-form-row:nth-of-type(4) label{
  font-size:10.5px!important;
  margin-bottom:3px!important;
}
@media(max-width:900px){
  body.master-compact #write .nb-editor{grid-template-columns:1fr!important;}
}

/* ===== 모바일 홈페이지 잘림/푸터겹침 수정 ===== */
@media (max-width: 900px) {
  html, body { height: auto !important; }
  body { min-height: 100vh; overflow-x: hidden; }
  .home-compact-hero {
    flex: 0 0 auto !important;
    min-height: auto !important;
    align-items: flex-start !important;
    padding: 18px 16px 28px !important;
  }
  .home-compact-hero .hero-inner { width: 100%; }
  .home-hero-grid { min-height: auto !important; }
}
