/* ═══════════════════════════════════════════════════════════════════════════
   docs.leesunsin.com 직원 화면 — iOS 유리질 덧씌우기 (2026-10-12)
   /static/glass.css(공통 디자인 — app.leesunsin.com 과 같은 파일) 뒤에 읽는다. 각 화면의 인라인 <style> 보다 뒤에
   링크되므로 같은 명시도면 이 파일이 이긴다. 글·버튼·동작·마크업은 바꾸지 않고 겉모습만 덧씌운다.
   - 대상: 직원 화면(form·preview·engagement_list·engagement_documents·uploads·fx·dojang·dojang_list·seonim_list·
     seonim_manage·login). 의뢰인 화면(sign·appoint·upload·fx_statement 등)은 이 파일을 읽지 않는다.
   - 흐림(backdrop-filter)은 헤더·좌측 메뉴·본문 패널·최상위 카드에만. 패널 안의 상자·표의 행에는 쓰지 않는다.
   - display 는 건드리지 않는다(화면 스크립트가 style.display 로 켜고 끈다).
   - !important 는 인라인 style 속성을 덮어야 하는 곳(모서리·테두리 색·바탕)에만 쓴다.
   ═══════════════════════════════════════════════════════════════════════════ */
:root {
  --d-gold-text:#7d5f28;          /* 작은 금색 제목 — #B08A44 는 유리 위 대비 미달(약 3:1) → 같은 색조로 어둡게(약 5:1) */
  --d-gold-solid:#8a6a2e;         /* 흰 글자를 얹는 금색 단추(흰 글자 대비 약 5:1) */
  --d-gold-solid-h:#76592a;
  --d-hair:rgba(26,58,92,.1);     /* 유리 위 구분선 */
  --d-inner:rgba(255,255,255,.5); /* 패널 안의 상자(흐림 없음) */
}

/* ── 0. 공통 바탕·글자 ── */
body.g-body ::selection { background:rgba(26,58,92,.16); }
body.g-body input[type=checkbox]:not(.vat-switch), body.g-body input[type=radio], body.g-body input[type=range] { accent-color:var(--c-navy); }

/* ── 1. 헤더 (g-header) ── */
.doc-header { background:rgba(255,255,255,.58); -webkit-backdrop-filter:var(--g-blur); backdrop-filter:var(--g-blur);
  border-bottom:1px solid rgba(26,58,92,.08); padding-top:12px; padding-bottom:12px; }

/* ── 2. 좌측 메뉴 (g-nav · g-nav-link · g-nav-label) ── */
.doc-sidebar { background:rgba(255,255,255,.38); -webkit-backdrop-filter:var(--g-blur); backdrop-filter:var(--g-blur);
  border:0; border-radius:20px; padding:14px 10px;
  box-shadow:inset 0 1px 0 var(--glass-hi), 0 0 0 1px rgba(26,58,92,.08), 0 10px 26px -18px rgba(26,58,92,.3); }
.doc-sidebar .nav-section h4 { color:var(--g-faint); letter-spacing:.08em; padding:0 8px; }
.doc-sidebar a.nav-link { border-radius:12px; font-size:13.5px; font-weight:500; color:var(--c-body); border-color:rgba(26,58,92,.1);
  transition:background-color .2s ease, color .2s ease, transform .2s var(--spring), box-shadow .2s ease; }
.doc-sidebar a.nav-link:hover { background:rgba(255,255,255,.7); color:var(--c-title); }
.doc-sidebar a.nav-link:active { transform:scale(.97); }
.doc-sidebar a.nav-link.active { background:var(--c-navy); color:#fff; border-color:var(--c-navy); box-shadow:0 8px 18px -10px rgba(26,58,92,.7); }
.doc-sidebar .user-info .name { color:var(--c-title); }
.doc-sidebar .user-info .id { color:var(--g-faint); }
.doc-sidebar .logout-btn { border:0; border-radius:999px; background:rgba(255,255,255,.74); color:var(--c-navy); font-weight:600;
  box-shadow:inset 0 0 0 1px rgba(26,58,92,.16), 0 1px 2px rgba(16,24,40,.05);
  transition:background-color .2s ease, transform .2s var(--spring); }
.doc-sidebar .logout-btn:hover { background:#fff; }
.doc-sidebar .logout-btn:active { transform:scale(.97); }

/* ── 3. 본문 패널 (g-panel) ── */
.doc-main { background:rgba(255,255,255,.46); -webkit-backdrop-filter:var(--g-blur); backdrop-filter:var(--g-blur);
  border:0; border-radius:22px; min-width:0;   /* min-width:0 — 넓은 표가 패널을 화면 밖으로 밀지 않고 표 안에서 가로 스크롤 */
  box-shadow:inset 0 1px 0 var(--glass-hi), 0 0 0 1px var(--edge), 0 14px 34px -18px rgba(26,58,92,.32); }
/* 위임장 관리 화면은 본문이 카드 여러 장의 묶음 — 본문 자체는 투명, 카드가 유리 */
.doc-main:has(> section.card) { background:transparent; -webkit-backdrop-filter:none; backdrop-filter:none; box-shadow:none; border-radius:0; }

/* 최상위 유리 카드: 위임장 관리 카드 · 미리보기 화면의 요약·미리보기 · 서류 다운로드 화면 · 로그인 */
.doc-main > section.card,
.doc-main-right > .summary, .doc-main-right > .preview,
.wrap > .meta-card, .wrap > .group,
.login-card {
  background:rgba(255,255,255,.48); -webkit-backdrop-filter:var(--g-blur); backdrop-filter:var(--g-blur);
  background-image:linear-gradient(135deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,0) 42%);
  border:0; border-radius:20px;
  box-shadow:inset 0 1px 0 var(--glass-hi), inset 0 0 0 1px rgba(255,255,255,.35), 0 0 0 1px var(--edge),
             0 1px 1px rgba(16,24,40,.03), 0 14px 34px -16px rgba(26,58,92,.3); }
.login-card { border-radius:22px; }
.wrap > .group.signed { background-color:rgba(236,250,240,.62);
  box-shadow:inset 0 1px 0 var(--glass-hi), 0 0 0 1px rgba(52,199,89,.32), 0 14px 34px -16px rgba(26,58,92,.25); }

/* 제목·보조 글자 (g-title · g-muted) */
.doc-main h2, .wrap > h2, .summary h2, .login-card h1 { color:var(--c-title); letter-spacing:-.02em; }
.doc-main h3, .section h3 { color:var(--d-gold-text); }
.subtitle, .sub, .pill, .type-hint, .greeting, .empty, .muted, .back-link,
.field .hint, .doc-idv .hint, .stephdr .sub, .meta-row, .range-row .val, .seal .meta,
.meta .k, .meta-card .row .k, .locked-box .k, .locked-box .hint, .info-row .label, .preview-header h2,
.footer, .footer a { color:var(--g-muted); }
.back-link:hover, .footer a:hover { color:var(--c-navy); }
.quote-no { color:var(--d-gold-text); }
/* 인라인 style 로 적힌 옅은 회색 작은 글자 → 대비 확보.
   화면 스크립트가 style.display 를 바꾼 요소는 브라우저가 style 속성을 'color: rgb(…)' 꼴로 다시 써서 두 표기를 모두 적는다 */
body.g-body :is([style*="color:#888"], [style*="color: #888"], [style*="color:#999"], [style*="color:#aaa"],
  [style*="color: rgb(136, 136, 136)"], [style*="color: rgb(153, 153, 153)"], [style*="color: rgb(170, 170, 170)"]) { color:var(--g-muted) !important; }
body.g-body :is([style*="color:#B08A44" i], [style*="color: rgb(176, 138, 68)"]) { color:var(--d-gold-text) !important; }

/* 구분선 */
.section { border-top-color:var(--d-hair); }
.info-row { border-top-color:var(--d-hair); }
.doc-row { border-top-color:var(--d-hair); }
.modal li { border-bottom-color:var(--d-hair); }
body.g-body .doc-main :is([style*="border-top:1px dashed #ddd"], [style*="border-top: 1px dashed rgb(221, 221, 221)"]) { border-top-color:rgba(26,58,92,.16) !important; }

/* ── 4. 입력 (g-input) ── */
:is(.field, .fld, .form-field, .load-row, .link-row, .mrow, .lnk)
  :is(input:where(:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]):not([type=file]):not([type=submit]):not([type=button]):not([type=color]):not([type=reset]):not([type=image])), select, textarea),
.preview-select {
  background-color:rgba(255,255,255,.74); border:1px solid rgba(26,58,92,.16); border-radius:12px; color:var(--c-title); outline:none;
  transition:border-color .2s ease, box-shadow .2s ease, background-color .2s ease; }
:is(.field, .fld, .form-field, .load-row, .link-row, .mrow, .lnk)
  :is(input:where(:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]):not([type=file]):not([type=submit]):not([type=button]):not([type=color]):not([type=reset]):not([type=image])), select, textarea):focus,
.preview-select:focus {
  background-color:#fff; border-color:rgba(26,58,92,.5); box-shadow:0 0 0 3px rgba(26,58,92,.12); outline:none; }
:is(.field, .fld, .form-field, .load-row, .link-row, .mrow, .lnk) :is(input, textarea)::placeholder { color:#6b6b72; }   /* glass.css .g-input 과 같은 값 */
:is(.field, .fld, .form-field, .load-row, .link-row, .mrow, .lnk) :is(input, select, textarea):disabled {
  background-color:rgba(255,255,255,.4); color:var(--g-faint); cursor:not-allowed; }
/* 인라인 style 에 테두리·모서리가 적힌 입력(계약 폼의 여러 줄 입력, 미리보기·환율 화면의 링크 칸) */
body.g-body .doc-main .field textarea[style], #ec_password, #ec_url, #sn_url, #stmtLink {
  border-color:rgba(26,58,92,.16) !important; border-radius:12px !important; background-color:rgba(255,255,255,.74) !important; }
body.g-body .doc-main .field textarea[style]:focus, #ec_password:focus, #ec_url:focus, #sn_url:focus, #stmtLink:focus {
  border-color:rgba(26,58,92,.5) !important; background-color:#fff !important; box-shadow:0 0 0 3px rgba(26,58,92,.12); outline:none; }

/* 부가가치세 자동 적용 — 체크박스를 iOS 스위치 모양으로(같은 체크박스·같은 동작) */
.vat-field > label { align-items:center !important; }
input.vat-switch { -webkit-appearance:none; appearance:none; width:44px !important; height:26px !important; margin:0 !important; flex-shrink:0;
  border:0; border-radius:999px; cursor:pointer; vertical-align:middle;
  background-color:rgba(120,120,128,.32);
  background-image:radial-gradient(circle at 50% 50%, #fff 0 10px, rgba(255,255,255,0) 10.6px),
                   radial-gradient(circle at 50% 50%, rgba(0,0,0,.30) 0 10.9px, rgba(0,0,0,0) 11.5px),
                   radial-gradient(circle at 50% 56%, rgba(0,0,0,.16) 0 10.4px, rgba(0,0,0,0) 12px);   /* 손잡이 윤곽(비텍스트 대비) + 그림자 */
  background-size:26px 26px, 26px 26px, 26px 26px; background-repeat:no-repeat; background-position:0 0, 0 0, 0 0;
  transition:background-color .25s ease, background-position .25s var(--spring); }
input.vat-switch:checked { background-color:#34c759; background-position:18px 0, 18px 0, 18px 0; }
input.vat-switch:focus-visible { outline:2px solid rgba(26,58,92,.45); outline-offset:2px; }

/* ── 5. 단추 (g-btn 계열) ── */
/* 흰 유리 단추 */
.download-btn, .btn-bottom, .zip-btn, .btn-refresh, .load-row button, .picked button, .btn, .seal a.dl, .btn-sm,
.type-row .type-btn, .swap {
  border:0; border-radius:999px; background:rgba(255,255,255,.74); color:var(--c-navy); font-weight:600; cursor:pointer;
  box-shadow:inset 0 0 0 1px rgba(26,58,92,.16), 0 1px 2px rgba(16,24,40,.05);
  transition:background-color .2s ease, color .2s ease, transform .2s var(--spring), box-shadow .2s ease; }
.download-btn:hover, .btn-bottom:hover, .zip-btn:hover, .btn-refresh:hover, .load-row button:hover, .picked button:hover,
.btn:hover, .seal a.dl:hover, .btn-sm:hover, .type-row .type-btn:hover, .swap:hover { background:#fff; color:var(--c-navy); }
.download-btn:active, .btn-bottom:active, .zip-btn:active, .btn-refresh:active, .load-row button:active, .picked button:active,
.btn:active, .seal a.dl:active, .btn-sm:active, .type-row .type-btn:active { transform:scale(.96); }
.btn-sm { padding:4px 10px; font-size:11px; line-height:1.4; }
.swap { border-radius:50%; }
.btn-refresh:disabled, .btn:disabled { opacity:.55; transform:none; cursor:default; }
/* PDF(빨간 글자) · DOCX(남색 글자) */
.download-btn.pdf, .btn-sm.btn-pdf { background:rgba(255,255,255,.74); color:#b3261e; box-shadow:inset 0 0 0 1px rgba(192,57,43,.28), 0 1px 2px rgba(16,24,40,.05); }
.download-btn.pdf:hover, .btn-sm.btn-pdf:hover { background:#fff; color:#b3261e; }
.download-btn.docx, .btn-sm.btn-docs, .btn-sm.btn-open { background:rgba(255,255,255,.74); color:var(--c-navy); }
.download-btn.docx:hover, .btn-sm.btn-docs:hover, .btn-sm.btn-open:hover { background:#fff; color:var(--c-navy); }
/* 남색 채움 (g-primary) */
.actions > button, .btn-issue, .btn-primary, .btn-login, .btn.btn-navy, .btn-sm.btn-signed-ko, .type-row .type-btn.active {
  border:0; border-radius:999px; background:var(--c-navy); color:#fff; box-shadow:0 8px 18px -8px rgba(26,58,92,.6);
  transition:background-color .2s ease, transform .2s var(--spring), box-shadow .2s ease; }
.actions > button:hover, .btn-issue:hover, .btn-primary:hover, .btn-login:hover, .btn.btn-navy:hover, .btn-sm.btn-signed-ko:hover,
.type-row .type-btn.active:hover { background:var(--c-navy-d); color:#fff; }
.actions > button:active, .btn-issue:active, .btn-primary:active, .btn-login:active { transform:scale(.97); }
.btn-login:hover { transform:none; box-shadow:0 10px 22px -8px rgba(26,58,92,.6); }
.btn-issue:disabled { background:rgba(26,58,92,.32); color:#fff; box-shadow:none; transform:none; cursor:default; }
/* 초록 (서명 완료본 · 복사) — 흰 글자 대비 확보한 진한 초록 */
.download-btn.signed, .btn-sm.btn-signed, .result .copy {
  border:0; border-radius:999px; background:#15803d; color:#fff; box-shadow:0 8px 18px -8px rgba(21,128,61,.55); }
.download-btn.signed:hover, .btn-sm.btn-signed:hover, .result .copy:hover { background:#166534; color:#fff; }
/* 빨강 틴트 (g-danger) */
.btn-sm.btn-revoke, .btn.btn-danger { background:rgba(255,59,48,.1); color:#b3261e; box-shadow:inset 0 0 0 1px rgba(255,59,48,.3); }
.btn-sm.btn-revoke:hover, .btn.btn-danger:hover { background:rgba(255,59,48,.16); color:#b3261e; }
/* 금색: 목록의 작은 'URL·링크 복사' = 틴트 / 큰 '링크 복사' = 채움 */
.btn-sm.btn-copy { background:rgba(211,191,160,.32); color:#6b5320; box-shadow:inset 0 0 0 1px rgba(176,138,68,.35); }
.btn-sm.btn-copy:hover { background:rgba(211,191,160,.46); color:#5a4419; }
.btn.btn-gold { background:var(--d-gold-solid); color:#fff; box-shadow:0 8px 18px -8px rgba(138,106,46,.55); }
.btn.btn-gold:hover { background:var(--d-gold-solid-h); color:#fff; }
/* 비활성 서류 종류 */
.type-row .type-btn.off { background:rgba(255,255,255,.35); color:#8e8e93; box-shadow:inset 0 0 0 1px rgba(26,58,92,.08); cursor:not-allowed; }
/* 글자 단추 */
.filecount { color:var(--c-navy); }
.modal .mh .x { color:var(--g-muted); border-radius:999px; width:30px; height:30px; transition:background-color .2s ease; }
.modal .mh .x:hover { background:rgba(60,60,67,.08); }
/* 인라인 style 로 모양이 적힌 단추·링크 */
#ec_issue_btn, #stmtIssueBtn { border-radius:999px !important; box-shadow:0 8px 18px -8px rgba(26,58,92,.6); }
#ec_copy_btn, #sn_copy_btn { background:var(--d-gold-solid) !important; border-radius:999px !important; box-shadow:0 8px 18px -8px rgba(138,106,46,.5); }
#stmtCopy { background:#15803d !important; border-radius:999px !important; }
#stmtOpen { border-radius:999px !important; border-color:rgba(26,58,92,.16) !important; background:rgba(255,255,255,.74); }
#draft-notice-close { border-radius:999px !important; }

/* ── 6. 구간 선택 (g-seg) — 자료 업로드·도장 생성기의 선택 단추, 목록의 '전 직원/본인 발급만' ── */
.seg, .scope-toggle { background:rgba(26,58,92,.09); border:0; border-radius:14px; padding:3px; gap:2px;
  box-shadow:inset 0 1px 1px rgba(16,24,40,.06); }
.seg button, .scope-toggle a { background:transparent; border:0; border-radius:11px; color:#45454c; font-weight:600;
  transition:background-color .25s ease, color .25s ease, box-shadow .25s ease, transform .2s var(--spring); }
.seg button:hover, .scope-toggle a:hover { color:var(--c-title); }
.seg button:active, .scope-toggle a:active { transform:scale(.96); }
.seg button.on, .scope-toggle a.active { background:#fff; color:var(--c-navy); border-color:transparent;
  box-shadow:0 1px 2px rgba(16,24,40,.1), 0 6px 14px -6px rgba(26,58,92,.38); }
.seg button:disabled { background:transparent; color:#8e8e93; box-shadow:none; transform:none; cursor:not-allowed; }

/* 키보드 초점 — glass.css 의 g-btn·g-seg-btn·g-nav-link 와 같은 표시 */
.doc-sidebar a.nav-link:focus-visible, .doc-sidebar .logout-btn:focus-visible,
.download-btn:focus-visible, .btn-bottom:focus-visible, .zip-btn:focus-visible, .btn-refresh:focus-visible, .load-row button:focus-visible,
.picked button:focus-visible, .btn:focus-visible, .seal a.dl:focus-visible, .btn-sm:focus-visible, .type-row .type-btn:focus-visible,
.swap:focus-visible, .actions > button:focus-visible, .btn-issue:focus-visible, .btn-primary:focus-visible, .btn-login:focus-visible,
.result .copy:focus-visible, .seg button:focus-visible, .scope-toggle a:focus-visible, .opt:focus-visible, .filecount:focus-visible,
.modal .mh .x:focus-visible, #ec_issue_btn:focus-visible, #ec_copy_btn:focus-visible, #sn_copy_btn:focus-visible,
#stmtIssueBtn:focus-visible, #stmtCopy:focus-visible, #stmtOpen:focus-visible {
  outline:2px solid rgba(26,58,92,.55); outline-offset:2px; }

/* ── 7. 알약 (g-state) ── */
.status { border-radius:999px; }
.group-title .badge, .badge { border-radius:999px; }
.group.internal .group-title .badge { background:#6e6e73; }
.meta-row .src { border-radius:999px; background:rgba(26,58,92,.08); }

/* ── 8. 패널 안의 상자 (흐림 없음) ── */
.issue-card, .calc-card, .seal-grid > .card, .seal, details.new-box, .summary .group, .locked-box {
  background-color:var(--d-inner); border:1px solid var(--d-hair); border-radius:18px; }
.summary .group { border-radius:16px; }
.locked-box { border-radius:14px; }
.wrap > .meta-card { padding:14px 18px; }
.note, .clause { background:var(--d-inner); border-radius:0 14px 14px 0; }
.clause table th { background:rgba(255,255,255,.6); }
.clause table td, .clause table th { border-color:rgba(26,58,92,.12); }
.doc-idv { background:rgba(250,246,236,.66); border-color:rgba(176,138,68,.25); border-left-color:#B08A44; border-radius:12px; }
.preview-box { border-color:var(--d-hair); border-radius:18px; }
.seal .imgwrap { border-radius:12px; }
.opt { background:rgba(255,255,255,.7); border-color:var(--d-hair); border-radius:12px; transition:background-color .2s ease; }
.opt:hover { background:#fff; border-color:rgba(26,58,92,.22); }
.path, .fld .path, .preview .path { background:rgba(255,255,255,.7); border-color:var(--d-hair); border-radius:10px; }
.nofolder { background:rgba(255,255,255,.45); border-color:rgba(26,58,92,.16); border-radius:12px; }
.picked, .result, .notice, .error-box, .source-note, section.card .warn, .flash { border-radius:14px; }
.result { border-radius:16px; }
/* 계약 폼·미리보기·환율 화면의 인라인 상자 */
body.g-body .doc-main :is([style*="border:1px solid #eee"], [style*="border: 1px solid rgb(238, 238, 238)"]), #ls_hourly_block, #ls_fixed_block, .bonus-slot {
  background-color:var(--d-inner) !important; border-color:var(--d-hair) !important; border-radius:16px !important; }
body.g-body :is([style*="background:#f9f6f0"], [style*="background: rgb(249, 246, 240)"]) {
  background:rgba(255,255,255,.5) !important; border-color:rgba(176,138,68,.28) !important; border-radius:16px !important; }
#ec_result, #sn_box { background:rgba(255,255,255,.66) !important; border-radius:14px !important; }
#stmtResult { border-radius:16px !important; }
#draft-notice, #vat_off_badge, .vat-off-warning { border-radius:14px !important; }
body.g-body .doc-main :is([style*="background:#fef3c7"], [style*="background: rgb(254, 243, 199)"]) { border-radius:14px !important; }

/* ── 9. 표 (g-table) ── */
.table-wrap { background:rgba(255,255,255,.42); border-radius:18px; box-shadow:inset 0 0 0 1px var(--d-hair); }
.table-wrap th { background:rgba(255,255,255,.55); color:var(--g-muted); border-bottom-color:var(--d-hair); letter-spacing:.02em; }
.table-wrap td { border-bottom-color:rgba(26,58,92,.07); }
.table-wrap tbody tr:last-child td { border-bottom-color:transparent; }
.table-wrap tr:hover { background:rgba(255,255,255,.5); }
.table-wrap td + td { border-top-color:rgba(26,58,92,.07); }
.table-wrap td::before { color:var(--g-muted); }
td a.quote-link { border-bottom-color:rgba(26,58,92,.3); }
.rate-table th, table.audit th { background:rgba(255,255,255,.55); border-bottom-color:var(--d-hair); }
.rate-table td, table.audit td { border-bottom-color:rgba(26,58,92,.07); }

/* ── 10. 미리보기 틀 ── */
.preview iframe, .pdf-frame { border-color:var(--d-hair); border-radius:14px; background-color:#fff; }

/* ── 11. 모달 (g-modal) ── */
.modal-bg { background:rgba(26,58,92,.25); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
.modal { background:rgba(255,255,255,.95); border-radius:22px; box-shadow:0 24px 60px -20px rgba(26,58,92,.45), 0 0 0 1px rgba(26,58,92,.08); }
.modal .msub, .modal li .dt, .modal .empty { color:var(--g-muted); }

/* ── 12. 휴대폰·좁은 화면 ── */
@media (max-width: 880px) {
  .doc-sidebar { padding:8px 10px; border-radius:18px; }
}
@media (max-width: 768px) {
  .doc-sidebar a.nav-link { background:rgba(255,255,255,.5); }
  .doc-sidebar a.nav-link.active { background:var(--c-navy); }
  /* 표 → 카드: 바깥 상자는 투명, 줄마다 유리 상자 */
  .table-wrap { background:transparent; box-shadow:none; border-radius:0; }
  .table-wrap tr { background:rgba(255,255,255,.55); border-color:var(--d-hair); border-radius:16px; }
  .table-wrap tr:hover { background:rgba(255,255,255,.7); }
  .table-wrap tbody tr:last-child td { border-bottom-color:transparent; }
}
@media (prefers-reduced-motion: reduce) {
  .doc-sidebar a.nav-link, .doc-sidebar .logout-btn, .download-btn, .btn-bottom, .zip-btn, .btn-refresh, .btn, .btn-sm, .seal a.dl,
  .type-row .type-btn, .seg button, .scope-toggle a, .actions > button, .btn-issue, .btn-primary, .btn-login, input.vat-switch, .opt {
    transition:none !important; }
  .doc-sidebar a.nav-link:active, .doc-sidebar .logout-btn:active, .download-btn:active, .btn-bottom:active, .zip-btn:active,
  .btn-refresh:active, .load-row button:active, .picked button:active, .btn:active, .seal a.dl:active, .btn-sm:active,
  .type-row .type-btn:active, .seg button:active, .scope-toggle a:active, .actions > button:active, .btn-issue:active,
  .btn-primary:active, .btn-login:active { transform:none; }
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .doc-header, .doc-sidebar { background:rgba(255,255,255,.92); }
  .doc-main, .doc-main > section.card, .doc-main-right > .summary, .doc-main-right > .preview, .wrap > .meta-card, .wrap > .group,
  .login-card { background-color:rgba(255,255,255,.93); }
  .doc-main:has(> section.card) { background:transparent; }
}

/* ── 7. 대비 보강(GPT 검토): 기존 인라인 CSS 의 옅은 금색·연한 초록·회색 — 흰 글자/작은 글자가 AA 를 넘게 ── */
body.g-body .summary .quote-no { color:#7d5f28 !important; }   /* 미리보기 견적번호·배지의 금색 #B08A44(3.2:1) → 5.9:1 */
body.g-body .group.signed .badge, body.g-body .download-btn.signed { background:#15803d !important; border-color:#15803d !important; }   /* #16a34a 위 흰 글자 3.3:1 → 5.0:1 */
body.g-body .status-expired { color:#4f4f56 !important; }   /* #6b7280/#f3f4f6 4.4:1 → 7:1 */
