/* INHA A&T PMS · 2026-10-02: shared visual and accessibility layer */
:root { --bg:#0e1523; --sf:#141e2e; --sf2:#182335; --sf3:#202e43; --tx3:#9baac0; --bd:rgba(177,194,217,.14); --r:12px; --rs:8px; }
[data-theme="light"] { --bg:#f1f4f8; --sf:#fff; --sf2:#fff; --sf3:#edf2f7; --tx3:#68788e; --bd:rgba(40,61,90,.14); --ac:#2563eb; --ac2:#426ddc; }
body { line-height:1.55; }
.bg-mesh { opacity:.45; }
.hdr { max-width:1440px; min-height:64px; height:auto; padding:10px 24px; }
.hdr-sys-main { font-size:16px; }
.hdr-btn { min-height:34px; border-radius:8px; }
.wrap { max-width:1320px; padding:26px 24px; }
.card { background:var(--sf); box-shadow:0 3px 14px rgba(0,0,0,.035); }
.card-title { font-size:14px; }
.btn { border-radius:8px; min-height:38px; }
.btn-primary { background:var(--ac); box-shadow:0 3px 9px rgba(37,99,235,.15); }
.input,.sel { background:var(--sf); border-color:var(--bd2); }
.input:focus,.sel:focus { box-shadow:0 0 0 3px rgba(79,143,247,.13); }
:focus-visible { outline:2px solid var(--ac); outline-offset:3px; }
.tbl-wrap { background:var(--sf); max-height:72vh; overflow:auto; scrollbar-gutter:stable; }
thead th { position:sticky; top:0; z-index:2; padding:13px 16px; }
td { padding:12px 16px; }
tbody tr:hover td { background:rgba(79,143,247,.055); }
.ptbl tbody tr { cursor:default; }
.ptbl td input[type="text"] { min-width:150px; }
.stat-card { background:var(--sf); padding:22px; min-height:148px; }
.stat-name { font-size:13px; color:var(--tx2); text-transform:none; }
.stat-sub { font-size:12px; }
.prog { height:6px; }
.overview-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-bottom:20px; }
.overview-card { display:flex; flex-direction:column; gap:8px; background:var(--sf); border:1px solid var(--bd); border-radius:12px; padding:18px 22px; }
.overview-card span { font-size:12px; color:var(--tx2); }
.overview-card strong { font-size:30px; font-variant-numeric:tabular-nums; }
.dashboard-tools { display:flex; align-items:center; gap:12px; margin:0 0 22px; }
.dashboard-tools .input { max-width:420px; }
.result-count { font-size:12px; color:var(--tx2); padding:12px 2px; }
.modal-overlay { position:fixed; inset:0; display:flex; justify-content:center; align-items:center; padding:20px; background:rgba(3,9,19,.7); z-index:800; }
.modal-card { width:100%; background:var(--sf); border:1px solid var(--bd2); border-radius:14px; box-shadow:0 24px 80px rgba(0,0,0,.4); }
.login-box { background:var(--sf); padding:34px; }
.login-sub,.input-label { color:var(--tx2); }
.toast { max-width:calc(100vw - 32px); white-space:normal; border-radius:10px; text-align:center; }
[hidden] { display:none!important; }
@media(max-width:768px) {
  .wrap { padding:18px 14px; }
  .hdr { padding:10px 12px; gap:6px; flex-wrap:wrap; }
  .hdr-right { gap:6px; }
  .hdr-bc { display:none; }
  .hdr-user-wrap { padding:4px 8px; }
  .overview-grid { gap:8px; }
  .overview-card { padding:12px; }
  .overview-card strong { font-size:24px; }
  .stat-card { padding:16px; }
  .stat-val { font-size:26px; }
  .stat-grid { gap:10px; }
  .login-box { padding:26px; }
  .modal { resize:none; padding:20px; }
  .dashboard-tools { gap:8px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
