/* 공지사항 게시판. app.css 변수만 쓴다. */
.nt-hero{margin-bottom:16px}
.nt-herorow{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.nt-herorow h1{flex:1;min-width:0;margin:0}
.nt-search{margin-top:14px}
.nt-search input{width:100%;padding:10px 13px;border:1px solid var(--line);border-radius:9px;
  background:var(--card2);color:var(--ink);font-size:13.5px;font-family:inherit;outline:none}
.nt-search input:focus{border-color:var(--ac);box-shadow:0 0 0 3px var(--ac-soft)}

.nt-item{margin-bottom:10px;padding:0;overflow:hidden}
.nt-item.pinned{border-color:var(--ac)}
.nt-head{padding:13px 16px;cursor:pointer}
.nt-head:hover{background:var(--card2)}
.nt-titlerow{display:flex;align-items:center;gap:7px;min-width:0}
.nt-title{flex:1;min-width:0;font-size:14.5px;font-weight:700;color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nt-pin{flex:none;padding:1px 7px;border-radius:999px;background:var(--ac);color:#fff;
  font-size:10.5px;font-weight:700}
.nt-hasimg{flex:none;padding:1px 7px;border-radius:999px;background:var(--card2);color:var(--sub);
  font-size:10.5px;font-weight:700}
.nt-meta{margin-top:4px;font-size:11.5px;color:var(--sub)}
.nt-prev{margin-top:5px;font-size:12.5px;color:var(--sub);line-height:1.5;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.nt-body{padding:4px 16px 14px;border-top:1px solid var(--line);
  font-size:14px;line-height:1.75;color:var(--ink);word-break:break-word}
.nt-body img{max-width:100%;height:auto;border-radius:8px;margin:8px 0}
.nt-body p{margin:0 0 10px}
.nt-body table{border-collapse:collapse;max-width:100%}
.nt-body td,.nt-body th{border:1px solid var(--line);padding:6px 9px}
.nt-ops{display:flex;gap:8px;padding:0 16px 14px;flex-wrap:wrap}
.nt-more{margin:12px 2px}

/* 글쓰기 창 */
.nt-modalbox{max-width:820px}
.nt-flabel{display:flex;flex-direction:column;gap:5px;margin:14px 0 12px;
  font-size:12px;font-weight:650;color:var(--sub)}
.nt-flabel input{padding:9px 12px;border:1px solid var(--line);border-radius:8px;
  background:var(--card2);color:var(--ink);font-size:14px;font-family:inherit;outline:none}
.nt-flabel input:focus{border-color:var(--ac);box-shadow:0 0 0 3px var(--ac-soft)}
.nt-edbody{min-height:220px;max-height:46vh;overflow:auto}
.nt-formbtns{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}

@media (max-width:640px){
  .nt-herorow{gap:8px}
  .nt-head{padding:11px 13px}
  .nt-body{padding:4px 13px 12px}
  .nt-ops{padding:0 13px 12px}
  .nt-edbody{min-height:180px;max-height:40vh}
  .nt-ops button,.nt-formbtns button{min-height:36px}
}

/* 댓글 */
.nt-cn{flex:none;padding:1px 7px;border-radius:999px;background:var(--ac-soft);color:var(--ac);
  font-size:10.5px;font-weight:700}
.nt-cwrap{padding:0 16px 14px;border-top:1px solid var(--line)}
.nt-clist{display:flex;flex-direction:column;gap:8px;margin:12px 0}
.nt-c{padding:8px 10px;border-radius:8px;background:var(--card2)}
.nt-cmeta{display:flex;align-items:baseline;gap:8px;font-size:11.5px;color:var(--sub)}
.nt-cmeta b{color:var(--ink);font-weight:700;font-size:12px}
.nt-cdel{margin-left:auto;width:20px;height:20px;border:0;border-radius:5px;background:transparent;
  color:var(--sub);font-size:14px;line-height:1;cursor:pointer}
.nt-cdel:hover{background:var(--line);color:#b91c1c}
.nt-ctext{margin-top:3px;font-size:13px;color:var(--ink);line-height:1.6;white-space:pre-wrap;word-break:break-word}
.nt-cform{display:flex;gap:8px}
.nt-cinput{flex:1;min-width:0;padding:8px 11px;border:1px solid var(--line);border-radius:8px;
  background:var(--card2);color:var(--ink);font-size:13px;font-family:inherit;outline:none}
.nt-cinput:focus{border-color:var(--ac);box-shadow:0 0 0 3px var(--ac-soft)}

@media (max-width:640px){
  .nt-cwrap{padding:0 13px 12px}
  .nt-cform button{min-height:36px}
}

/* 글쓰기 창의 고정 선택 */
.nt-formrow{margin-top:12px}
.nt-pinlab{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--ink);cursor:pointer}
.nt-formrow .ms{margin:0}

/* 목록에서 바로 고정하기(관리자만 보임) */
.nt-pinbtn{margin-left:8px;padding:1px 8px;border:1px solid var(--line);border-radius:999px;
  background:var(--card2);color:var(--sub);font-family:inherit;font-size:10.5px;font-weight:700;cursor:pointer}
.nt-pinbtn:hover{border-color:var(--ac);color:var(--ac)}
.nt-pinbtn.on{background:var(--ac);border-color:var(--ac);color:#fff}

/* ---------- 첨부 파일 ---------- */
.nt-hasfile{font-size:11px;font-weight:650;color:var(--ac);background:var(--ac-soft);
  border-radius:999px;padding:1px 8px;white-space:nowrap}
.nt-files{display:flex;flex-direction:column;gap:6px;margin:12px 0 0;padding-top:12px;
  border-top:1px solid var(--line)}
.nt-file{display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  background:var(--card2);border:1px solid var(--line);border-radius:8px;padding:7px 10px}
.nt-fname{flex:1;min-width:120px;font-size:13px;font-weight:650;color:var(--ink);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  border:0;background:transparent;padding:0;text-align:left;cursor:pointer;
  text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
.nt-fname:hover{color:var(--ac);text-decoration-color:currentColor}
.nt-fsize{font-size:11.5px;color:var(--sub);white-space:nowrap}
.nt-fbtn{padding:3px 10px;font-size:12px}
.nt-attach{margin-top:12px;border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.nt-attachhead{display:flex;align-items:center;justify-content:space-between;gap:10px;
  font-size:12.5px;font-weight:700;color:var(--sub)}
.nt-attachbtn{cursor:pointer;padding:4px 12px;font-size:12px}
.nt-attachlist{display:flex;flex-direction:column;gap:4px;margin-top:8px}
.nt-arow{display:flex;align-items:center;gap:8px;font-size:12.5px;
  background:var(--card2);border-radius:6px;padding:5px 8px}
.nt-arow > span:first-child{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nt-arow.new > span:first-child{color:var(--ac)}
.nt-adel{border:0;background:transparent;color:var(--sub);cursor:pointer;font-size:15px;line-height:1;padding:0 2px}
.nt-adel:hover{color:var(--bad)}
.nt-aname{flex:1;min-width:0;border:1px solid var(--line);border-radius:6px;
  padding:4px 8px;font:inherit;font-size:12.5px;background:var(--card);color:var(--ink)}
.nt-arow.new .nt-aname{border-color:var(--ac)}

/* 교수님이 남긴 글·댓글은 눈에 띄게 */
.nt-prof{font-size:10.5px;font-weight:700;color:var(--ac);background:var(--ac-soft);
  border-radius:999px;padding:1px 8px;white-space:nowrap}
.nt-item.byprof{border-color:var(--ac);box-shadow:inset 3px 0 0 var(--ac)}
.nt-c.byprof{background:var(--ac-soft);border-radius:8px;padding:6px 8px}
/* 닉네임과 시각의 글자 크기가 달라 줄이 어긋나 보였다. 줄 높이를 맞춘다. */
.nt-cmeta{align-items:center;line-height:18px}
.nt-cmeta > *{display:inline-flex;align-items:center;height:18px}
