/* 멍글 — 관리자 로그인·대시보드·알림장 작성(견본). 틀은 console.css. 공유 파일.
   담당 CSS 는 arsv.css · acare.css · acms.css 에 접두어(.arsv- · .acare- · .acms-)로. */
.login-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 32rem); background: var(--bg); }
.login-side { position: relative; overflow: hidden; background: var(--night); }
.login-side img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .9; }
.login-side::after { content: ""; position: absolute; inset: 0; background: var(--login-shade); }
.login-side-text { position: absolute; left: 3rem; right: 3rem; bottom: 3rem; z-index: 1; color: var(--on-night); }
.login-side-title { font-size: 2rem; font-weight: 800; line-height: 1.3; letter-spacing: -0.03em; margin-bottom: .5rem; }
.login-card { align-self: center; justify-self: center; width: min(28rem, 100%); padding: 2.5rem 2rem; }
.login-card .logo { margin-bottom: 2rem; }
.login-card h1 { font-size: 1.75rem; }
.login-card .lead { color: var(--ink-3); margin: .375rem 0 1.5rem; font-size: 1rem; }
.login-card .auth-links { display: flex; justify-content: center; gap: var(--sp-2); flex-wrap: wrap; margin-top: var(--sp-4); font-size: var(--fs-sm); }
.login-card .auth-links a { min-height: 2.75rem; display: inline-flex; align-items: center; padding: 0 .3rem; color: var(--ink-2); text-decoration: underline; text-underline-offset: .1875rem; }
.login-card .auth-links > span { display: inline-flex; align-items: center; color: var(--ink-3); }
.login-card .auth-links > span[aria-hidden="true"] { color: var(--line-strong); } /* 구분 점만 흐리게 */
.demo-box { display: flex; align-items: center; gap: .375rem; flex-wrap: wrap; margin-top: 1.25rem; padding: .85rem 1rem; border-radius: var(--r); background: var(--surface-2); font-size: var(--fs-sm); color: var(--ink-2); }
@media (max-width: 900px) { .login-shell { grid-template-columns: 1fr; } .login-side { display: none; } .login-card { padding: 2rem 1.25rem; } }

/* 대시보드 */
.dash-head { display: flex; align-items: end; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding: 1.25rem 0 1rem; }
.dash-head h1 { font-size: var(--fs-h3); }
.dash-head p { color: var(--ink-3); font-size: var(--fs-sm); margin-top: .25rem; }
.dash-stats { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.dash-stats .stat { min-height: 7.5rem; }
.dash-stats .stat .k .ic { color: var(--accent); }
@media (max-width: 1400px) { .dash-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) { .dash-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } .dash-stats .stat .v { font-size: 1.5rem; } }
.dash-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 1rem; margin-top: 1rem; }
@media (max-width: 1500px) { .dash-grid { grid-template-columns: minmax(0, 1fr); } }
.dash-grid .table td { white-space: nowrap; }
.dash-class { display: grid; gap: .75rem; }
.dash-class li { display: grid; grid-template-columns: 6rem minmax(0, 1fr); gap: .75rem; align-items: center; font-size: var(--fs-sm); }
.dash-class strong { font-weight: 750; }
.inline-form { display: inline; }
/* 좁은 화면: 표 → 카드 */
@media (max-width: 640px) {
  .table-cards .table { min-width: 0; }
  .table-cards thead { position: absolute; width: 0.0625rem; height: 0.0625rem; overflow: hidden; clip: rect(0 0 0 0); }
  .table-cards tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .25rem .75rem; padding: .75rem 1rem; border-bottom: .0625rem solid var(--line); }
  .table-cards td, .table-cards th { padding: 0; border: 0; white-space: normal !important; }
  .table-cards td[data-label]::before { content: attr(data-label) " "; color: var(--ink-3); font-size: var(--fs-xs); }
  .table-cards .td-act { grid-column: 1 / -1; }
}

/* 알림장 작성(견본) */
.rw-grid { display: grid; grid-template-columns: minmax(0, 1fr) 20rem; gap: 1rem; align-items: start; padding-top: 1rem; }
.rw-grid > aside { position: sticky; top: 4.75rem; display: flex; flex-direction: column; gap: 1rem; }
@media (max-width: 1100px) { .rw-grid { grid-template-columns: minmax(0, 1fr); } .rw-grid > aside { position: static; } }
.rw-sec { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: 1rem; padding: 1.1rem; border-bottom: .0625rem solid var(--line); }
.rw-sec:last-child { border-bottom: 0; }
.rw-sec > h3 { font-size: var(--fs-md); display: flex; align-items: flex-start; gap: .5rem; padding-top: .5rem; }
.rw-sec > h3 .ic { color: var(--accent); }
.rw-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem 1rem; }
.rw-fields .full { grid-column: 1 / -1; }
@media (max-width: 760px) { .rw-sec { grid-template-columns: minmax(0, 1fr); gap: .5rem; } .rw-sec > h3 { padding-top: 0; } .rw-fields { grid-template-columns: minmax(0, 1fr); } }
.drop { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .375rem; min-height: 8rem; padding: 1rem; border: .125rem dashed var(--line-strong); border-radius: var(--r); background: var(--surface-3); color: var(--ink-2); text-align: center; cursor: pointer; transition: border-color var(--t-short) var(--ease), background var(--t-short) var(--ease); }
.drop:hover, .drop.is-over { border-color: var(--accent); background: var(--accent-soft); }
.drop input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.drop .ic { width: 1.75rem; height: 1.75rem; color: var(--accent); }
.drop:focus-within { box-shadow: var(--focus); }
.thumbs { display: grid; grid-template-columns: repeat(auto-fill, minmax(6.5rem, 1fr)); gap: .5rem; margin-top: .75rem; }
.thumbs:empty { display: none; }
.thumb-item { position: relative; border-radius: var(--r-sm); overflow: hidden; background: var(--surface-2); aspect-ratio: 4 / 3; }
.thumb-item img { width: 100%; height: 100%; object-fit: cover; }
.thumb-item .pdf { display: grid; place-items: center; height: 100%; font-size: var(--fs-xs); font-weight: 700; color: var(--ink-2); padding: .25rem; text-align: center; }
.thumb-item button { position: absolute; top: .25rem; right: .25rem; width: 2rem; height: 2rem; border-radius: 50%; display: grid; place-items: center; background: var(--glass); color: var(--ink); box-shadow: var(--shadow-sm); }
.thumb-item button:hover { background: var(--surface); color: var(--danger); }
.demo-pick { display: grid; grid-template-columns: repeat(auto-fill, minmax(6.5rem, 1fr)); gap: .5rem; }
.demo-pick label { position: relative; display: block; border-radius: var(--r-sm); overflow: hidden; cursor: pointer; aspect-ratio: 4 / 3; border: .1875rem solid transparent; }
.demo-pick img { width: 100%; height: 100%; object-fit: cover; }
.demo-pick input { position: absolute; top: .375rem; left: .375rem; width: 1.25rem; height: 1.25rem; accent-color: var(--accent); }
.demo-pick label:has(input:checked) { border-color: var(--accent); }
.demo-pick label:has(input:focus-visible) { box-shadow: var(--focus); }
.rw-sum .sum-list dd { max-width: 60%; }
.meter { height: .5rem; border-radius: var(--r-pill); background: var(--surface-2); overflow: hidden; margin-top: .5rem; }
.meter > span { display: block; height: 100%; width: var(--w, 0%); background: var(--accent); border-radius: var(--r-pill); }
