@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,700;0,800;1,800&display=swap');
/* 공통 디자인 토큰 + 앱 전체 레이아웃(브랜드바/네브바/로그인 게이트).
   index.html(대시보드)/analyze.html(분석)/clients.html(거래처관리)에서 공유. */
:root{
  /* 원테크 브랜드 가이드: 남색 #22263A · 주황 #F39701 (카탈로그 PDF에서 뽑은 값).
     주황은 흰 글자를 얹으면 읽기 어려워서, 버튼처럼 칠하는 곳(--brand)과
     글자·링크·테두리에 쓰는 진한 주황(--accent)을 나눠 둔다. */
  --bg:#F2F3F6;
  --card:#FFFFFF;
  --text:#1B2130;
  --muted:#5A6273;
  --border:#E1E4EA;
  --navy:#22263A;
  --brand:#F39701;
  --on-brand:#1B2130;
  --ink:#22263A;
  --on-ink:#FFFFFF;
  --ink-soft:#E7EAF0;
  --accent:#9A5800;
  --accent-dark:#7A4600;
  --accent-soft:#FFF3DE;
  --danger:#DC2626;
  --danger-soft:#FDECEC;
  --ok:#16A34A;
  --ok-soft:#EAF7EE;
  --over:#2563EB;
  --over-soft:#EAF0FE;
  --warn:#B45309;
  --warn-soft:#FEF3E2;
  /* 카탈로그의 금색 사선 띠·금색 글자. 금색 글자는 남색 바탕에서만 쓴다(흰 바탕 대비 부족). */
  --gold:#EDB24E;
  --gold-band:linear-gradient(90deg,#EBAF4B,#D28E31);
  --on-navy-soft:#D3D6DF;
  --font-display:Montserrat,'Pretendard',-apple-system,BlinkMacSystemFont,sans-serif;
  --radius:10px;
  --shadow:none;
}
/* 시스템이 다크모드일 때 자동 적용. 단, 사용자가 테마 전환 버튼으로
   직접 라이트를 선택했으면([data-theme="light"]) 그 선택이 우선한다. */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0E1119;
    --card:#161B26;
    --text:#E8EBF1;
    --muted:#8E97A8;
    --border:#262D3D;
    --navy:#0B0E15;
    --brand:#F39701;
    --on-brand:#14110A;
    --ink:#E8EBF1;
    --on-ink:#0E1119;
    --ink-soft:#262D3D;
    --accent:#F3B44A;
    --accent-dark:#FFD48A;
    --accent-soft:#33240A;
    --danger:#F0847A;
    --danger-soft:#34181A;
    --ok:#4ADE80;
    --ok-soft:#0F2A1B;
    --over:#5B8DEF;
    --over-soft:#152A4D;
    --warn:#F5A623;
    --warn-soft:#332108;
    --shadow:none;
  }
}
/* 시스템이 라이트모드여도 사용자가 테마 전환 버튼으로 다크를 직접
   선택했으면([data-theme="dark"]) 이 쪽이 이긴다. */
:root[data-theme="dark"]{
  --bg:#0E1119;
  --card:#161B26;
  --text:#E8EBF1;
  --muted:#8E97A8;
  --border:#262D3D;
  --navy:#0B0E15;
  --brand:#F39701;
  --on-brand:#14110A;
  --ink:#E8EBF1;
  --on-ink:#0E1119;
  --ink-soft:#262D3D;
  --accent:#F3B44A;
  --accent-dark:#FFD48A;
  --accent-soft:#33240A;
  --danger:#F0847A;
  --danger-soft:#34181A;
  --ok:#4ADE80;
  --ok-soft:#0F2A1B;
  --over:#5B8DEF;
  --over-soft:#152A4D;
  --warn:#F5A623;
  --warn-soft:#332108;
  --shadow:none;
}
*{box-sizing:border-box;}
html{font-size:clamp(15px, 14px + 0.2vw, 18px);}

/* ---- Lucide 선 아이콘 (common-icons.js와 짝) ---- */
.i{width:1em;height:1em;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none;}
.ic{display:inline-flex;align-items:center;justify-content:center;flex:none;vertical-align:-0.15em;line-height:1;}
.ic.ic-lead{margin-right:.4em;}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:'Pretendard', -apple-system, BlinkMacSystemFont, "Segoe UI", "Malgun Gothic", "Apple SD Gothic Neo", Roboto, sans-serif;
  line-height:1.55;
}
table td, .iv, .stat .v, #statBalance{ font-variant-numeric: tabular-nums; }

.brand-bar{
  background:var(--navy);
  border-bottom:3px solid var(--brand);
  color:#fff;
  padding:13px 24px;
  display:flex;
  align-items:center;
  gap:10px;
  font-size:0.875rem;
  font-weight:700;
  letter-spacing:.01em;
}
.brand-bar .brand-link{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;}
.brand-bar .mark{
  width:22px;height:22px;border-radius:6px;
  background:var(--brand);color:var(--on-brand);
  display:flex;align-items:center;justify-content:center;
  font-size:0.75rem;font-weight:900;
}
.brand-bar .mark{display:none;}
.brand-bar .brand-link > span:last-child{font-style:italic;font-weight:900;font-size:1.25rem;letter-spacing:.01em;text-shadow:2px 1px 0 #0E1119;}
.brand-bar .name{opacity:.7;font-size:0.75rem;font-weight:500;margin-left:2px;}
.brand-bar-right{margin-left:auto;display:flex;align-items:center;gap:10px;}

.notice-bell{position:relative;}
.bell-btn{
  position:relative;background:none;border:1px solid rgba(255,255,255,.3);
  color:#fff;padding:6px 10px;font-size:0.9375rem;border-radius:6px;cursor:pointer;line-height:1;
}
.bell-btn:hover{background:rgba(255,255,255,.1);}
.bell-badge{
  position:absolute;top:-5px;right:-5px;
  background:var(--brand);color:var(--on-brand);font-size:0.625rem;font-weight:800;
  min-width:16px;height:16px;border-radius:999px;
  display:flex;align-items:center;justify-content:center;padding:0 3px;line-height:1;
}
.bell-dropdown{
  position:absolute;right:0;top:calc(100% + 8px);
  width:320px;max-width:88vw;max-height:420px;overflow-y:auto;
  background:var(--card);border:1px solid var(--border);border-radius:10px;
  box-shadow:0 16px 40px rgba(0,0,0,.25);
  z-index:250;
}
.bell-dropdown-head{padding:14px 16px;font-weight:800;font-size:0.875rem;border-bottom:1px solid var(--border);color:var(--text);}
.bell-dropdown-list{padding:8px;}
.bell-item{padding:10px 8px;border-bottom:1px solid var(--border);}
.bell-item:last-child{border-bottom:none;}
.bell-item .bi-title{font-size:0.8125rem;font-weight:700;color:var(--text);margin-bottom:3px;line-height:1.4;}
.bell-item .bi-meta{font-size:0.6875rem;color:var(--muted);}
.bell-dropdown-footer{
  display:block;text-align:center;padding:11px;font-size:0.8125rem;font-weight:700;
  color:var(--accent);text-decoration:none;border-top:1px solid var(--border);
}
.bell-dropdown-footer:hover{background:var(--bg);}
.bell-empty{padding:20px;text-align:center;color:var(--muted);font-size:0.8125rem;}

.nav-bar{
  background:var(--card);
  border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  flex-wrap:wrap;
  padding:0 24px;
}
.nav-bar .nav-left, .nav-bar .nav-right{display:flex;align-items:center;gap:4px;}
.nav-bar a{
  display:inline-flex;align-items:center;
  padding:13px 14px;margin-bottom:-1px;
  font-size:0.8125rem;font-weight:700;
  color:var(--muted);text-decoration:none;
  border-bottom:3px solid transparent;
  white-space:nowrap;
}
.nav-bar a:hover{color:var(--text);}
.nav-bar a.active{color:var(--text);border-bottom-color:var(--brand);}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .nav-bar a.active{color:#fff;}
}
:root[data-theme="dark"] .nav-bar a.active{color:#fff;}
.nav-bar .nav-right a{font-weight:600;font-size:0.75rem;color:var(--muted);border-bottom:none;padding:13px 10px;}
.nav-bar .nav-right a:hover{color:var(--accent);}

/* 좁은 화면에서는 브랜드바 부제를 숨기고, 네브바는 nav-left가 가로 스크롤되도록
   하고 nav-right(외부 링크)는 두 번째 줄로 내려서 페이지 전체가 옆으로
   밀리지 않게 한다. */
@media (max-width:640px){
  .brand-bar .name{display:none;}
  .nav-bar{padding:0 12px;}
  .nav-bar .nav-left{
    flex:1;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .nav-bar .nav-left::-webkit-scrollbar{display:none;}
  .nav-bar .nav-left{display:flex;}
  .nav-bar .nav-left a{flex:1 0 auto;justify-content:center;padding:12px 6px;font-size:0.75rem;}
  /* 외부 링크 줄은 숨기고(푸터로 이동) 상단 고정 영역을 한 줄 줄인다. */
  .nav-bar .nav-right{display:none;}
}
.site-footer{display:none;}
@media (max-width:640px){
  .site-footer{display:flex;justify-content:center;gap:22px;padding:18px 16px 28px;border-top:1px solid var(--border);}
  .site-footer a{font-size:0.75rem;font-weight:600;color:var(--muted);text-decoration:none;}
  .site-footer a:hover{color:var(--accent);}
}

.wrap{max-width:1320px;margin:0 auto;padding:32px 20px 90px;}
.chart-box{position:relative;height:300px;margin-bottom:8px;}
.eyebrow{display:flex;align-items:center;gap:7px;font-size:0.75rem;font-weight:700;color:var(--muted);letter-spacing:.04em;margin-bottom:10px;text-transform:uppercase;}
.eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--brand);flex:none;}
h1{font-size:1.6875rem;font-weight:700;letter-spacing:-0.01em;margin:0 0 10px;line-height:1.35;color:var(--text);}
.sub{color:var(--muted);font-size:0.875rem;margin:0 0 14px;}
.hero-meta{display:flex;align-items:center;gap:10px;font-size:0.75rem;color:var(--muted);margin-bottom:32px;}
.hero-meta .pill{background:var(--accent-soft);color:var(--accent-dark);border-radius:6px;padding:3px 10px;font-weight:700;}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin:38px 0 14px;flex-wrap:wrap;gap:6px;}
.section-head .htext .eyebrow{margin-bottom:6px;}
.section-head h2{font-size:1.1875rem;font-weight:800;letter-spacing:-0.01em;margin:0;}
.section-head .meta{font-size:0.75rem;color:var(--muted);}
.section-title{font-size:0.9375rem;font-weight:700;margin:26px 0 12px;}

.card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:20px;
  margin-bottom:16px;
}
.info-card{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--card);margin-bottom:16px;}
.info-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 20px;border-bottom:1px solid var(--border);}
.info-row:last-of-type{border-bottom:none;}
.info-row .t{font-size:0.8125rem;color:var(--text);font-weight:600;}
.info-row .s{font-size:0.6875rem;color:var(--muted);margin-top:2px;}
.info-row .iv{font-size:1.1875rem;font-weight:800;text-align:right;}
.info-card .foot{padding:9px 20px;font-size:0.6875rem;color:var(--muted);border-top:1px solid var(--border);background:var(--bg);}

button{
  font:inherit;
  border:none;
  border-radius:8px;
  padding:10px 18px;
  cursor:pointer;
  font-weight:700;
  font-size:0.8125rem;
}
.btn-primary{background:var(--brand);color:var(--on-brand);padding:11px 22px;font-size:0.875rem;}
.btn-primary:disabled{opacity:.4;cursor:not-allowed;}
.btn-primary:hover:not(:disabled){filter:brightness(1.06);}
.btn-outline{background:var(--card);color:var(--text);border:1px solid var(--border);}
.btn-outline:hover{border-color:var(--accent);color:var(--accent);}
.btn-navy{background:var(--ink);color:var(--on-ink);padding:11px 22px;font-size:0.875rem;text-decoration:none;}
.btn-navy:hover{filter:brightness(1.15);}
/* 링크로 만든 단추도 <button>과 같은 모양: 글자·아이콘 가운데, 둥근 모서리 */
a.btn-outline, a.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:8px;font-weight:700;text-decoration:none;}

.tagbadge{display:inline-block;font-size:0.625rem;font-weight:800;padding:2px 8px;border-radius:5px;margin-left:6px;vertical-align:1px;}
.tagbadge.ok{background:var(--ok-soft);color:var(--ok);}
.tagbadge.accent{background:var(--warn-soft);color:var(--warn);}
.tagbadge.danger{background:var(--danger-soft);color:var(--danger);}
.tagbadge.muted{background:var(--over-soft);color:var(--over);}
.badge{display:inline-block;padding:2px 9px;border-radius:5px;font-size:0.6875rem;font-weight:800;}
.badge.paid{background:var(--ok-soft);color:var(--ok);}
.badge.partial{background:var(--warn-soft);color:var(--warn);}
.badge.unpaid{background:var(--danger-soft);color:var(--danger);}
.badge.age-watch{background:var(--ok-soft);color:var(--ok);}
.badge.age-caution{background:var(--warn-soft);color:var(--warn);}
.badge.age-warning{background:var(--danger-soft);color:var(--danger);}
.badge.age-severe{background:var(--danger);color:#fff;}
.badge.promise-fulfilled{background:var(--ok-soft);color:var(--ok);}
.badge.promise-pending{background:var(--warn-soft);color:var(--warn);}
.badge.promise-broken{background:var(--danger);color:#fff;}

.muted{color:var(--muted);}

.form-section{margin-bottom:18px;}
.form-section-title{font-size:0.8125rem;font-weight:700;color:var(--muted);margin-bottom:10px;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.form-grid label{display:flex;flex-direction:column;gap:4px;font-size:0.75rem;color:var(--muted);}
.form-grid label.span2{grid-column:1 / -1;}
@media (max-width:480px){
  .form-grid{grid-template-columns:1fr;}
  .form-grid label.span2{grid-column:auto;}
}
.form-grid input[type=text],.form-grid input[type=number],.form-grid input[type=password],.form-grid input[type=date],
.form-grid textarea,.form-grid select{
  box-sizing:border-box;width:100%;
  font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:8px;
  background:var(--bg);color:var(--text);font-size:0.875rem;
}
.form-grid textarea{resize:vertical;min-height:80px;}
.form-grid label.checkbox-row{flex-direction:row;align-items:center;gap:8px;font-size:0.8125rem;color:var(--text);grid-column:1 / -1;}

#error{
  display:none;
  background:var(--danger-soft);
  color:var(--danger);
  border:1px solid var(--danger);
  border-radius:10px;
  padding:12px 16px;
  font-size:0.8125rem;
  margin-bottom:20px;
  white-space:pre-line;
}

table{width:100%;border-collapse:collapse;font-size:0.8125rem;}
th,td{padding:10px 12px;text-align:right;border-bottom:1px solid var(--border);white-space:nowrap;}
td:first-child{text-align:left;}
th{color:var(--muted);font-weight:700;font-size:0.6875rem;text-transform:uppercase;letter-spacing:.03em;position:sticky;top:0;background:var(--bg);text-align:center;}
tbody tr:hover{background:var(--bg);}
.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px;}

.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:16px;}
@media (max-width:640px){.summary-grid{grid-template-columns:repeat(2,1fr);}}
/* 좁은 2단 칼럼 안에 들어갈 땐 4칸이 너무 빽빽해지므로 2칸으로 줄인다. */
.dash-two-col .summary-grid{grid-template-columns:repeat(2,1fr);}
.stat{background:var(--card);padding:16px 18px;}
.stat .k{font-size:0.75rem;color:var(--muted);margin-bottom:8px;font-weight:600;}
.stat .v{font-size:1.1875rem;font-weight:800;}
.stat.balance .v.owe{color:var(--danger);}
.stat.balance .v.over{color:var(--over);}

.modal-overlay{
  position:fixed;inset:0;background:rgba(20,15,10,.5);
  display:flex;align-items:center;justify-content:center;
  padding:20px;z-index:300;
}
.modal-box{
  background:var(--card);border-radius:12px;max-width:640px;width:100%;
  max-height:88vh;display:flex;flex-direction:column;
  box-shadow:0 20px 60px rgba(0,0,0,.3);
}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--border);}
.modal-header h2{margin:0;font-size:1.0625rem;}
.modal-close{background:none;border:none;font-size:1rem;padding:4px 8px;color:var(--muted);}
.modal-body{padding:20px 22px;overflow-y:auto;}
.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 22px;border-top:1px solid var(--border);}

.drawer-overlay{
  position:fixed;inset:0;background:rgba(20,15,10,.35);
  z-index:200;display:none;
}
.drawer-overlay.open{display:block;}
.drawer{
  position:fixed;top:0;right:0;bottom:0;
  width:640px;max-width:94vw;
  background:var(--card);
  box-shadow:-12px 0 40px rgba(0,0,0,.25);
  z-index:201;
  display:flex;flex-direction:column;
  transform:translateX(100%);
  transition:transform .22s ease;
}
.drawer:not(.open){box-shadow:none;}
.drawer.open{transform:translateX(0);}
.drawer-header{padding:20px 22px;border-bottom:1px solid var(--border);flex:none;}
.drawer-header .dh-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;}
.drawer-header h2{margin:0 0 4px;font-size:1.25rem;}
.drawer-header .biz{font-size:0.75rem;color:var(--muted);}
.drawer-header .contact-line{font-size:0.8125rem;color:var(--text);margin-top:12px;display:flex;justify-content:space-between;align-items:center;gap:10px;}
.drawer-close{background:none;border:none;font-size:1.125rem;color:var(--muted);padding:4px 8px;cursor:pointer;}
.drawer-body{flex:1;overflow-y:auto;padding:20px 22px;}

.drawer-stats{display:flex;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:20px;}
.drawer-stats .ds{flex:1;background:var(--card);padding:12px 14px;}
.drawer-stats .ds .k{font-size:0.6875rem;color:var(--muted);margin-bottom:4px;}
.drawer-stats .ds .v{font-size:1rem;font-weight:800;}

.timeline{list-style:none;margin:0 0 4px;padding:0;}
.timeline li{
  display:flex;gap:12px;padding:11px 0;border-bottom:1px solid var(--border);
  font-size:0.8125rem;
}
.timeline li:last-child{border-bottom:none;}
.timeline .t-date{flex:none;width:64px;color:var(--muted);font-size:0.6875rem;padding-top:2px;white-space:nowrap;}
.timeline .t-body{flex:1;line-height:1.5;}
.timeline li.timeline-year{
  padding:16px 0 6px;border-bottom:none;
  font-size:0.75rem;font-weight:800;color:var(--muted);letter-spacing:.02em;
}
.timeline li.timeline-year:first-child{padding-top:0;}

.add-log-form{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:14px;margin-bottom:20px;}
.add-log-form .form-grid{margin-bottom:10px;}
.add-log-form .form-grid{margin-bottom:10px;}

.company-item{
  position:relative;
  display:flex;justify-content:space-between;align-items:center;gap:10px;
  padding:12px 14px;border:1px solid var(--border);border-radius:8px;
  margin-bottom:8px;cursor:pointer;background:var(--card);
  color:var(--text);text-decoration:none;
}
.company-item:hover{border-color:var(--accent);background:var(--accent-soft);}
.company-item .cn{font-weight:700;font-size:0.875rem;}
.company-item .cs{font-size:0.75rem;color:var(--muted);margin-top:2px;}
.company-item .cc{font-size:0.75rem;color:var(--muted);}

.contact-tooltip{
  position:absolute;left:14px;top:100%;margin-top:6px;
  background:var(--navy);color:#fff;
  padding:8px 12px;border-radius:8px;
  font-size:0.75rem;line-height:1.5;white-space:nowrap;
  box-shadow:0 8px 24px rgba(0,0,0,.25);
  z-index:50;pointer-events:none;
  opacity:0;visibility:hidden;transform:translateY(-4px);
  transition:opacity .15s ease, transform .15s ease;
}
.company-item:hover .contact-tooltip{opacity:1;visibility:visible;transform:translateY(0);}

.dash-two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start;}
@media (max-width:860px){.dash-two-col{grid-template-columns:1fr;}}

.checklist-add-row{display:flex;gap:8px;margin-bottom:14px;}
.checklist-add-row input{
  flex:1;box-sizing:border-box;
  font:inherit;padding:9px 12px;border:1px solid var(--border);border-radius:8px;
  background:var(--card);color:var(--text);font-size:0.875rem;
}
.checklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;}
.checklist li{
  display:flex;align-items:center;gap:10px;
  padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--card);
}
.checklist li.done{opacity:.55;}
.checklist li.done .checklist-text{text-decoration:line-through;}
.checklist li input[type=checkbox]{flex:none;width:16px;height:16px;cursor:pointer;}
.checklist-text{flex:1;font-size:0.875rem;}
.checklist-del{background:none;border:none;color:var(--muted);font-size:0.9375rem;padding:2px 6px;cursor:pointer;flex:none;}
.checklist-del:hover{color:var(--danger);}

/* 공지사항은 이제 전체 폭을 혼자 쓰므로, 좁은 목록 대신 카드가 여러 열로
   흐르는 그리드로 배치해서 넓은 화면 공간을 활용한다. */
.notice-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;}

.notice-card{position:relative;border:1px solid var(--border);border-radius:10px;padding:14px 16px;background:var(--card);}
.notice-card.important{border-left:3px solid var(--danger);}
.notice-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;}
.notice-badge{display:inline-flex;align-items:center;gap:4px;font-size:0.6875rem;font-weight:800;padding:2px 9px;border-radius:5px;}
.notice-badge.cat-important{background:var(--danger-soft);color:var(--danger);}
.notice-badge.cat-work{background:var(--accent-soft);color:var(--accent-dark);}
.notice-badge.cat-schedule{background:var(--warn-soft);color:var(--warn);}
.notice-badge.cat-ref{background:var(--over-soft);color:var(--over);}
.notice-title{font-weight:700;font-size:0.9375rem;margin-bottom:4px;}
.notice-content{font-size:0.8125rem;color:var(--muted);line-height:1.6;margin-bottom:8px;white-space:pre-line;}
.notice-date{font-size:0.6875rem;color:var(--muted);}

.icon-menu{position:relative;flex:none;}
.icon-menu-btn{background:none;border:none;color:var(--muted);font-size:1.125rem;line-height:1;padding:2px 6px;cursor:pointer;font-weight:900;}
.icon-menu-btn:hover{color:var(--text);}
.icon-menu-dropdown{
  position:absolute;right:0;top:100%;margin-top:4px;
  background:var(--card);border:1px solid var(--border);border-radius:8px;
  box-shadow:0 10px 30px rgba(0,0,0,.15);
  min-width:96px;z-index:60;overflow:hidden;
}
.icon-menu-dropdown button{
  display:block;width:100%;text-align:left;background:none;border:none;border-radius:0;
  padding:9px 12px;font-size:0.8125rem;font-weight:600;color:var(--text);
}
.icon-menu-dropdown button:hover{background:var(--bg);}
.icon-menu-dropdown button.danger{color:var(--danger);}

.chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;}
.chip{
  font:inherit;font-size:0.75rem;font-weight:700;padding:6px 12px;border-radius:999px;
  border:1px solid var(--border);background:var(--card);color:var(--muted);cursor:pointer;
}
.chip:hover{border-color:var(--accent);color:var(--accent);}
.chip.active{background:var(--ink);border-color:var(--ink);color:var(--on-ink);}

.skeleton-card{border:1px solid var(--border);border-radius:10px;padding:14px 16px;margin-bottom:10px;}
.skeleton-line{height:12px;border-radius:6px;background:var(--border);margin-bottom:8px;animation:skeleton-pulse 1.4s ease-in-out infinite;}
.skeleton-line:last-child{margin-bottom:0;}
.skeleton-line.w60{width:60%;}
.skeleton-line.w40{width:40%;}
.skeleton-line.w90{width:90%;}
@keyframes skeleton-pulse{0%,100%{opacity:.5;}50%{opacity:1;}}

.toast-stack{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:1100;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none;}
.toast{
  background:var(--navy);color:#fff;font-size:0.8125rem;font-weight:600;
  padding:11px 20px;border-radius:999px;box-shadow:0 12px 30px rgba(0,0,0,.25);
  opacity:0;transform:translateY(8px);transition:opacity .2s ease, transform .2s ease;
}
.toast.show{opacity:1;transform:translateY(0);}

.modal-box.small{max-width:380px;}

/* 🌎 글로벌 용접 박람회 */
.exh-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;}
.exh-card{position:relative;border:1px solid var(--border);border-radius:10px;padding:14px 16px;background:var(--card);}
.exh-card.ended{opacity:.55;}
.exh-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:8px;}
.exh-flag-name{display:flex;align-items:center;gap:6px;font-weight:700;font-size:0.9375rem;line-height:1.4;}
.exh-flag{font-size:0.9375rem;flex:none;}
.exh-head-right{display:flex;align-items:center;gap:6px;flex:none;}
.exh-status{display:inline-flex;align-items:center;font-size:0.625rem;font-weight:800;padding:2px 8px;border-radius:5px;white-space:nowrap;}
.exh-status.upcoming{background:var(--accent-soft);color:var(--accent-dark);}
.exh-status.ongoing{background:var(--ok-soft);color:var(--ok);}
.exh-status.ended{background:var(--border);color:var(--muted);}
.exh-date{font-size:0.8125rem;color:var(--text);margin-bottom:2px;font-weight:600;}
.exh-place{font-size:0.75rem;color:var(--muted);margin-bottom:8px;word-break:break-word;}
.exh-dday{display:inline-block;font-size:0.6875rem;font-weight:800;padding:2px 9px;border-radius:5px;margin-bottom:8px;background:var(--accent-soft);color:var(--accent-dark);}
.exh-dday.soon{background:var(--warn-soft);color:var(--warn);}
.exh-cat-row{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px;}
.exh-cat{font-size:0.625rem;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--bg);color:var(--muted);border:1px solid var(--border);white-space:nowrap;}
.exh-link{display:inline-flex;align-items:center;gap:3px;font-size:0.75rem;font-weight:700;color:var(--accent);text-decoration:none;}
.exh-link:hover{text-decoration:underline;}

/* 일정관리 달력 */
.cal-card{padding:0;overflow:hidden;}
.cal-toolbar{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border);flex-wrap:wrap;gap:10px;}
.cal-nav{display:flex;align-items:center;gap:10px;}
.cal-nav button{background:none;border:1px solid var(--border);color:var(--text);width:30px;height:30px;padding:0;border-radius:8px;font-size:1rem;line-height:1;}
.cal-nav button:hover{border-color:var(--accent);color:var(--accent);}
.cal-month-label{font-size:1.0625rem;font-weight:800;min-width:110px;text-align:center;}
.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--border);}
.cal-weekdays div{padding:8px 0;text-align:center;font-size:0.6875rem;font-weight:700;color:var(--muted);text-transform:uppercase;}
.cal-weekdays div.sun{color:var(--danger);}
.cal-weekdays div.sat{color:var(--over);}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);}
.cal-day{
  min-height:96px;min-width:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border);
  padding:6px;cursor:pointer;position:relative;
}
.cal-day:nth-child(7n){border-right:none;}
.cal-day:hover{background:var(--bg);}
.cal-day.other-month{color:var(--muted);background:var(--bg);opacity:.55;}
.cal-day.today .cal-day-num{background:var(--brand);color:var(--on-brand);}
.cal-day-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:0.75rem;font-weight:700;margin-bottom:4px;}
.cal-day-items{display:flex;flex-direction:column;gap:2px;min-width:0;}
.cal-event-pill,.cal-exh-pill{min-width:0;font-size:0.625rem;font-weight:600;padding:1px 6px;border-radius:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cal-event-pill{background:var(--ink-soft);color:var(--ink);}
.cal-exh-pill{background:var(--warn-soft);color:var(--warn);font-weight:700;}
.cal-more-pill{font-size:0.625rem;color:var(--muted);padding-left:2px;}
@media (max-width:640px){
  .cal-day{min-height:64px;padding:4px;}
  .cal-event-pill,.cal-exh-pill,.cal-more-pill{font-size:0.5625rem;}
}
.cal-event-item{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;margin-bottom:8px;background:var(--card);}
.cal-event-item .cei-body{flex:1;min-width:0;}
.cal-event-item .cei-title{font-weight:700;font-size:0.875rem;}
.cal-event-item .cei-memo{font-size:0.75rem;color:var(--muted);margin-top:3px;white-space:pre-line;}
.cal-exh-tag{display:inline-flex;align-items:center;gap:6px;font-size:0.75rem;font-weight:700;padding:6px 10px;border-radius:8px;background:var(--warn-soft);color:var(--warn);margin-bottom:8px;margin-right:6px;}

@media print{
  body{background:#fff;color:#000;}
  .no-print{display:none !important;}
  .card, .stat{box-shadow:none;border-color:#ccc;}
  table{font-size:11px;}
  tr{break-inside:avoid;}
}

/* ---- 로그인 게이트 (전체 페이지 오버레이) ----
   카탈로그 표지와 같은 구성: 남색 판 + 금색 사선 띠(아크가 용접하듯 깔림) + 흰 로그인 카드
   + 아래 흰 띠(SINCE 2000). 테마와 상관없이 같은 모양(카탈로그 색을 직접 씀). */
.auth-page{
  position:fixed;inset:0;z-index:1000;
  background:#22263A;color:#fff;
  display:flex;flex-direction:column;
  overflow-x:hidden;overflow-y:auto;
}
.auth-stage{position:relative;flex:1 0 auto;display:flex;flex-direction:column;padding:0 56px;}
.auth-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;}
.auth-top{position:relative;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-top:1px solid rgba(255,255,255,.18);margin-top:34px;padding-top:22px;}
.auth-wm{font-family:var(--font-display);font-style:italic;font-weight:800;font-size:2.125rem;line-height:1;color:#F29700;letter-spacing:.01em;}
.auth-clock{text-align:right;}
.auth-clock .lb{font-family:var(--font-display);font-weight:800;font-size:.6875rem;letter-spacing:.3em;color:#EDB24E;}
.auth-clock .tm{font-family:var(--font-display);font-weight:800;font-size:2.5rem;line-height:1.05;color:#EDB24E;font-variant-numeric:tabular-nums;white-space:nowrap;}
.auth-clock .dt{font-size:.8125rem;color:#D3D6DF;}
.auth-grid{position:relative;flex:1;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,400px);gap:40px;align-items:center;padding:26px 0 30px;}
.auth-tag{display:inline-block;background:#fff;color:#22263A;font-family:var(--font-display);font-weight:800;font-size:.6875rem;letter-spacing:.32em;padding:8px 12px 8px 15px;}
.auth-title{margin:20px 0 0;font-family:var(--font-display);font-weight:800;font-size:clamp(2.75rem,6vw,5.25rem);line-height:1;letter-spacing:-.005em;color:#fff;}
.auth-title span{display:block;}
.auth-sub{margin:16px 0 0;font-size:1.0625rem;font-weight:700;color:#fff;}
.auth-card{position:relative;background:#fff;color:#1B2130;border-radius:4px;padding:28px 28px 22px;box-shadow:0 30px 80px rgba(0,0,0,.45);}
.auth-card .lb{font-family:var(--font-display);font-weight:800;font-size:.6875rem;letter-spacing:.3em;color:#6E7488;}
.auth-card h2{margin:6px 0 2px;font-family:var(--font-display);font-weight:800;font-size:1.75rem;color:#22263A;}
.auth-card h2 small{font-family:'Pretendard',sans-serif;font-size:.9375rem;font-weight:700;color:#6E7488;margin-left:8px;}
.auth-card p{margin:0 0 20px;color:#5A6273;font-size:.875rem;}
.auth-chip{position:absolute;right:18px;top:18px;background:#22263A;color:#fff;font-family:var(--font-display);font-weight:800;font-size:.625rem;letter-spacing:.2em;padding:5px 8px 5px 10px;}
.auth-field{display:block;font-size:.8125rem;font-weight:700;color:#5A6273;}
/* 비밀번호 칸: 점 대신 글자마다 용접 비드가 한 알씩 쌓인다(실제 입력칸은 그대로, 글자만 투명) */
.auth-pw{position:relative;margin-top:6px;}
.auth-pw input{display:block;width:100%;font:inherit;font-size:1rem;padding:14px;border:1px solid #E1E4EA;border-radius:4px;background:#F4F5F8;color:transparent;caret-color:#F39701;}
.auth-pw input::placeholder{color:#7A8295;}
.auth-pw input:focus{outline:none;border-color:#F39701;box-shadow:0 0 0 3px rgba(243,151,1,.22);}
.auth-pw input:-webkit-autofill{-webkit-text-fill-color:#1B2130;}
.auth-pw.plain input{color:#1B2130;}
.auth-beads{position:absolute;left:14px;top:50%;transform:translateY(-50%);display:flex;align-items:center;pointer-events:none;}
.auth-beads i{width:14px;height:16px;margin-right:-3px;border-radius:50%;background:radial-gradient(ellipse at 40% 35%,#FFE7B8 0%,#EBAF4B 40%,#D28E31 75%,#8A5A24 100%);animation:authBead 1.4s ease-out;}
@keyframes authBead{0%{transform:scale(.3);filter:brightness(1.8);box-shadow:0 0 12px 4px rgba(255,190,80,.8);background:radial-gradient(ellipse at 40% 35%,#FFFFFF 0%,#FFE08A 30%,#F39701 65%,#A35D00 100%);}20%{transform:scale(1.15);}35%{transform:scale(1);}100%{box-shadow:0 0 0 0 rgba(255,190,80,0);filter:none;}}
.auth-seam{position:absolute;left:8px;right:8px;bottom:-1px;height:3px;overflow:hidden;pointer-events:none;}
.auth-seam i{position:absolute;left:0;top:0;bottom:0;width:0;background:linear-gradient(90deg,#D28E31,#EBAF4B,#FFF3C4);box-shadow:0 0 10px 2px rgba(255,190,80,.8);}
.auth-pw.run .auth-seam i{animation:authSeam .9s cubic-bezier(.4,0,.2,1) forwards;}
@keyframes authSeam{to{width:100%;}}
.auth-pw.bad{animation:authShake .4s;}
.auth-pw.bad .auth-beads i{animation:none;background:#C9CED8;}
@keyframes authShake{20%,60%{transform:translateX(-6px);}40%,80%{transform:translateX(6px);}}
.auth-error{color:#C81E1E;font-size:.8125rem;font-weight:700;margin-top:8px;}
.auth-submit{display:block;width:100%;margin-top:14px;padding:13px;font-size:1rem;font-weight:800;border-radius:4px;}
.auth-note{font-size:.75rem;color:#5A6273;margin-top:12px;}
.auth-secs{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid rgba(255,255,255,.18);margin-bottom:28px;}
.auth-secs div{padding:14px 14px 0;border-left:1px solid rgba(255,255,255,.14);min-width:0;}
.auth-secs div:first-child{border-left:0;padding-left:0;}
.auth-secs .n{display:block;font-family:var(--font-display);font-weight:700;font-size:.6875rem;color:#EDB24E;}
.auth-secs .t{display:block;font-family:var(--font-display);font-weight:800;font-size:1.0625rem;margin-top:2px;}
.auth-secs .k{display:block;font-size:.75rem;color:#D3D6DF;}
.auth-foot{flex:none;background:#fff;color:#22263A;border-top:5px solid #EBAF4B;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 56px;}
.auth-foot .s{font-family:var(--font-display);font-weight:700;font-size:.625rem;letter-spacing:.3em;color:#6E7488;}
.auth-foot b{display:block;font-family:var(--font-display);font-weight:700;font-size:.9375rem;}
.auth-foot small{font-size:.75rem;color:#6E7488;}
.auth-foot .auth-wm{font-size:1.875rem;}
/* 등장: 띠는 캔버스(아크)가 그리고, 글자·카드·아래 줄은 띠가 다 그어진 뒤 차례로 올라온다 */
.auth-page .auth-tag,.auth-page .auth-title span,.auth-page .auth-sub,.auth-page .auth-card,.auth-page .auth-secs div{transition:opacity .5s,transform .6s cubic-bezier(.2,.8,.2,1);}
.auth-page.pre .auth-tag,.auth-page.pre .auth-title span,.auth-page.pre .auth-sub,.auth-page.pre .auth-card,.auth-page.pre .auth-secs div{opacity:0;transform:translateY(14px);}
.auth-flash{position:fixed;inset:0;background:#fff;opacity:0;pointer-events:none;z-index:1001;}
.auth-flash.on{animation:authFlash .6s ease-out;}
@keyframes authFlash{15%{opacity:.8;}100%{opacity:0;}}
@media (max-width:860px){
  .auth-stage{padding:0 20px;}
  .auth-top{margin-top:20px;padding-top:16px;}
  .auth-wm{font-size:1.5rem;}
  .auth-clock .tm{font-size:1.75rem;}
  .auth-grid{grid-template-columns:1fr;gap:26px;padding:22px 0 30px;}
  .auth-title{font-size:2.5rem;}
  .auth-secs{display:none;}
  .auth-foot{padding:14px 20px;}
  .auth-foot .auth-wm{font-size:1.25rem;}
}
@media (max-width:380px){ .auth-tag{letter-spacing:.2em;} .auth-title{font-size:2.125rem;} }

/* ---- 폼 인라인 오류 / 필수 표시 (alert 대신 해당 입력칸 아래에 표시) ---- */
.req{color:var(--danger);margin-left:2px;font-weight:700;}
.form-hint{font-size:0.75rem;color:var(--muted);margin:0 0 12px;}
.field-error{display:none;color:var(--danger);font-size:0.75rem;font-weight:600;margin-top:2px;}
label.has-error input,label.has-error textarea,label.has-error select{border-color:var(--danger) !important;box-shadow:0 0 0 2px var(--danger-soft);}
.form-banner{display:none;background:var(--danger-soft);color:var(--danger);border:1px solid var(--danger);border-radius:8px;padding:10px 12px;font-size:0.8125rem;font-weight:600;margin-bottom:12px;white-space:pre-line;}

/* ---- 불러오기 오류 배너 (섹션마다 반복하지 않고 한 번만 + 다시 시도) ---- */
.error-banner{display:none;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--danger-soft);border:1px solid var(--danger);color:var(--danger);border-radius:10px;padding:12px 14px;font-size:0.8125rem;font-weight:600;margin-bottom:16px;}
.error-banner.show{display:flex;}
.btn-sm{padding:6px 12px;font-size:0.75rem;}

/* ---- 공지 카드: 제목 2줄·내용 3줄로 제한하고 넘치면 "더보기" ---- */
.notice-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.notice-content{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.notice-more{background:none;border:none;padding:0;color:var(--accent);font-size:0.75rem;font-weight:700;cursor:pointer;margin-bottom:8px;}
.notice-more:hover{text-decoration:underline;}
.notice-view-title{font-size:1.0625rem;font-weight:800;margin:8px 0 6px;}
.notice-view-content{white-space:pre-line;line-height:1.7;font-size:0.9375rem;}

/* ---- 체크리스트: 행 전체를 눌러 완료 처리 ---- */
.checklist li{cursor:pointer;}

/* ---- 터치 기기: 작은 아이콘 버튼의 탭 영역을 44px로 ---- */
@media (pointer:coarse){
  .bell-btn,.icon-menu-btn,.checklist-del,.cal-nav button,.modal-close,.drawer-close{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;}
  .checklist li{padding:12px 12px;}
  .checklist li input[type=checkbox]{width:20px;height:20px;}
}

/* ---- 모바일: 박람회 전체보기 표에서 도시/분야 칸은 숨긴다 ---- */
@media (max-width:640px){
  #exhDrawer th:nth-child(4),#exhDrawer td:nth-child(4),#exhDrawer th:nth-child(6),#exhDrawer td:nth-child(6){display:none;}
}

/* ---- 벨 드롭다운 항목: 누르면 공지 전문 ---- */
.bell-item{cursor:pointer;}
.bell-item:hover,.bell-item:focus-visible{background:var(--bg);outline:none;}

/* ---- 미수금 TOP: 담당자 전화 버튼 ---- */
.company-row{display:flex;gap:8px;align-items:stretch;margin-bottom:8px;}
.company-row .company-item{flex:1;min-width:0;margin-bottom:0;}
.call-btn{
  flex:none;display:inline-flex;align-items:center;justify-content:center;width:44px;
  border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--accent);
  text-decoration:none;font-size:1.05rem;
}
.call-btn:hover{border-color:var(--accent);background:var(--accent-soft);}

/* ---- 작성 중 초안 복원 안내 ---- */
.draft-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--accent-soft);color:var(--accent-dark);border-radius:8px;padding:8px 12px;font-size:0.8125rem;font-weight:600;margin-bottom:12px;}

/* ---- 모바일 달력: 셀에는 점만 찍고, 이번 달 일정은 달력 아래 목록으로 ---- */
.cal-agenda{display:none;border-top:1px solid var(--border);padding:12px 14px 4px;}
.cal-agenda-title{font-size:0.75rem;font-weight:700;color:var(--muted);margin-bottom:6px;}
.cal-agenda-item{display:flex;align-items:flex-start;gap:10px;padding:9px 0;border-bottom:1px solid var(--border);cursor:pointer;font-size:0.8125rem;}
.cal-agenda-item:last-child{border-bottom:none;}
.cal-agenda-item .d{flex:none;width:58px;font-size:0.75rem;font-weight:700;color:var(--muted);padding-top:1px;}
.cal-agenda-item .dot{flex:none;width:8px;height:8px;border-radius:50%;margin-top:6px;background:var(--ink);}
.cal-agenda-item .dot.exh{background:var(--warn);}
.cal-agenda-item .t{flex:1;min-width:0;}
.cal-agenda-item .t .m{font-size:0.75rem;color:var(--muted);}
.cal-agenda-empty{font-size:0.8125rem;color:var(--muted);padding:6px 0 10px;}
@media (max-width:640px){
  .cal-day{min-height:56px;}
  .cal-day-items{flex-direction:row;flex-wrap:wrap;gap:3px;}
  .cal-event-pill,.cal-exh-pill{flex:none;width:7px;height:7px;padding:0;border-radius:50%;font-size:0;overflow:hidden;}
  .cal-event-pill{background:var(--ink);}
  .cal-exh-pill{background:var(--warn);}
  .cal-more-pill{display:none;}
  .cal-agenda{display:block;}
}
.tel-link{color:var(--accent);text-decoration:none;font-weight:600;}
.tel-link:hover{text-decoration:underline;}

/* ---- 모바일 브랜드바 버튼 간격 ---- */
@media (max-width:640px){
  .brand-bar-right{gap:6px;}
}

/* ---- 키보드 포커스 표시 (마우스 클릭에는 나타나지 않음) ---- */
button:focus-visible,a:focus-visible,[tabindex]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
/* 구글 계정으로 로그인(common-auth.js addGoogleButton) */
.auth-or{display:flex;align-items:center;gap:10px;margin:14px 0 10px;color:#7A8295;font-size:.75rem;font-weight:700;}
.auth-or::before,.auth-or::after{content:'';flex:1;height:1px;background:#E1E4EA;}
.auth-gbtn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;border:1px solid #22263A;border-radius:4px;background:#fff;color:#22263A;font:inherit;font-size:.9375rem;font-weight:800;cursor:pointer;}
.auth-gbtn:hover{background:#22263A;color:#fff;}
.auth-gbtn:disabled{opacity:.6;cursor:wait;}
/* 비밀번호 로그인을 끈 경우(관리 → 07): 비밀번호 칸 대신 구글 단추가 주인공 */
.auth-pwoff{display:none;margin-top:10px;color:#5A6175;font-size:.8125rem;line-height:1.5;}
.auth-card.pw-off .auth-field,.auth-card.pw-off .auth-pw,.auth-card.pw-off .auth-submit,.auth-card.pw-off .auth-or{display:none;}
.auth-card.pw-off .auth-pwoff{display:block;}
.auth-card.pw-off .auth-gbtn{background:#22263A;color:#fff;padding:14px;}
.auth-card.pw-off .auth-gbtn:hover{background:#2F3450;}
/* 로그인 화면 영상(관리 → 08): 왼쪽 제목 아래 16:9, 누르면 그 자리에서 재생 */
.auth-video{position:relative;width:min(460px,100%);aspect-ratio:16/9;margin-top:22px;overflow:hidden;border-radius:4px;background:#11131D center/cover no-repeat;box-shadow:0 20px 50px rgba(0,0,0,.45);animation:authVideoIn .5s ease-out both;}
.auth-video video,.auth-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;object-fit:cover;background:#000;}
.auth-video::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(34,38,58,.05),rgba(34,38,58,.78));pointer-events:none;}
.auth-video .av-tag{position:absolute;left:14px;top:12px;z-index:2;background:#fff;color:#22263A;font-family:var(--font-display);font-weight:800;font-size:.625rem;letter-spacing:.28em;padding:5px 9px;}
.auth-video .av-play{position:absolute;inset:0;z-index:2;display:grid;place-items:center;padding:0;border:0;background:none;cursor:pointer;}
.auth-video .av-play span{width:58px;height:58px;border-radius:50%;background:#F39701;color:#22263A;display:grid;place-items:center;box-shadow:0 0 0 8px rgba(243,151,1,.25);transition:transform .2s;}
.auth-video .av-play span svg{width:22px;height:22px;fill:currentColor;margin-left:3px;}
.auth-video .av-play:hover span,.auth-video .av-play:focus-visible span{transform:scale(1.08);}
.auth-video .av-cap{position:absolute;left:16px;right:16px;bottom:12px;z-index:2;color:#fff;pointer-events:none;}
.auth-video .av-cap b{display:block;font-family:var(--font-display);font-weight:800;font-size:.8125rem;letter-spacing:.2em;}
.auth-video .av-cap small{display:block;margin-top:2px;font-size:.75rem;color:#D3D6DF;}
.auth-video.playing::after,.auth-video.playing .av-tag,.auth-video.playing .av-play,.auth-video.playing .av-cap{display:none;}
@keyframes authVideoIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){.auth-video{animation:none;}}
@media (max-width:860px){.auth-video{width:100%;margin-top:0;}}
