.site-header[data-customer-header]{position:relative;z-index:100;box-sizing:border-box;min-height:85px;background:#fff;border-bottom:1px solid #e7ecf3}
.site-header[data-customer-header]+.auth-shell{min-height:calc(100vh - 84px - var(--lc-language-row,0px))}
.lc-customer-header{max-width:1440px;height:84px;margin:0 auto;padding:0 44px;display:grid;grid-template-columns:minmax(180px,240px) minmax(390px,1fr) minmax(330px,auto);gap:24px;align-items:center;color:#10223f;font-family:Inter,Pretendard,"Noto Sans KR",Arial,sans-serif}
.lc-customer-logo{display:flex;align-items:center;width:max-content;text-decoration:none}
.lc-customer-logo:focus-visible{outline:2px solid #1759e8;outline-offset:4px;border-radius:8px}
.lc-customer-logo img{display:block;width:180px;height:54px;object-fit:contain;object-position:left center}
.lc-customer-logo-fallback{display:none;align-items:center;color:#081b43;font-size:16px;font-weight:900;letter-spacing:.14em;white-space:nowrap}
.lc-customer-logo-fallback span{color:#2468f2;margin-left:.28em}
.lc-customer-nav{display:flex;justify-content:center;align-items:center;gap:clamp(18px,2.1vw,38px);min-width:0}
.lc-customer-nav a,.lc-customer-account-link{position:relative;color:#263651;text-decoration:none;font-size:14px;font-weight:800;white-space:nowrap}
.lc-customer-inquiry-count,.lc-customer-project-message-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;margin-left:4px;border-radius:999px;background:#e85d35;color:#fff;padding:0 5px;font-size:9px;font-weight:900;vertical-align:middle}.lc-customer-inquiry-count[hidden],.lc-customer-project-message-count[hidden]{display:none}
.lc-customer-nav a:hover,.lc-customer-account-link:hover{color:#1759e8}
.lc-customer-nav a.active,.lc-customer-account-link.active{color:#1759e8}
.lc-customer-nav a.active:after,.lc-customer-account-link.active:after{content:"";position:absolute;left:0;right:0;bottom:-10px;height:2px;border-radius:2px;background:#1759e8}
.lc-customer-session{display:flex;justify-content:flex-end;align-items:center;gap:14px;min-width:0}
.lc-customer-public-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px}.lc-customer-public-actions a{display:inline-flex;align-items:center;justify-content:center;min-width:88px;min-height:40px;border:1px solid #dfe5ee;border-radius:10px;background:#fff;color:#263651;text-decoration:none;font-size:13px;font-weight:900}.lc-customer-public-actions a.primary{border-color:#1759e8;background:#1759e8;color:#fff}.lc-customer-public-actions a.active{border-color:#1759e8;box-shadow:0 0 0 3px rgba(23,89,232,.12)}.lc-customer-public-actions a:hover,.lc-customer-public-actions a:focus-visible{border-color:#8eacf0;outline:2px solid rgba(23,89,232,.2);outline-offset:2px}
.lc-customer-company-name{display:block;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#53617a;font-size:12px;font-weight:900;cursor:default;pointer-events:none}
.lc-customer-logout{min-width:44px;min-height:40px;padding:8px 6px;border:0;background:transparent;color:#53617a;font:inherit;font-size:13px;font-weight:800;cursor:pointer;border-radius:9px}
.lc-customer-logout:hover{background:#f2f5fa;color:#173f97}
.lc-customer-logout:focus-visible,.lc-customer-account-link:focus-visible,.lc-customer-nav a:focus-visible,.lc-customer-menu-toggle:focus-visible{outline:2px solid #1759e8;outline-offset:3px}
.lc-customer-menu-toggle{display:none;width:44px;height:44px;border:1px solid #dfe5ee;border-radius:11px;background:#fff;cursor:pointer;padding:0;place-items:center}
.lc-customer-menu-toggle span,.lc-customer-menu-toggle:before,.lc-customer-menu-toggle:after{content:"";display:block;width:20px;height:2px;background:#10223f;border-radius:2px}
.lc-customer-menu-toggle span{margin:4px 0}
.lc-customer-mobile-menu{display:none;position:absolute;top:100%;left:0;right:0;padding:10px 20px 20px;background:#fff;border-top:1px solid #edf1f6;border-bottom:1px solid #dfe5ee;box-shadow:0 18px 38px rgba(21,43,82,.12)}
.lc-customer-mobile-menu.open{display:block}
.lc-customer-mobile-nav{display:grid}
.lc-customer-mobile-nav a{min-height:46px;display:flex;align-items:center;padding:0 4px;border-bottom:1px solid #edf1f6;color:#263651;text-decoration:none;font-size:14px;font-weight:800}
.lc-customer-mobile-nav a.active{color:#1759e8}
.lc-customer-mobile-company{display:block;margin-top:14px;padding:11px 12px;border-radius:10px;background:#f5f7fb;color:#53617a;font-size:12px;font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:default;pointer-events:none}
.lc-customer-mobile-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.lc-customer-mobile-actions a,.lc-customer-mobile-actions button{min-height:46px;display:flex;align-items:center;justify-content:center;border:1px solid #dfe5ee;border-radius:10px;background:#fff;color:#263651;text-decoration:none;font:inherit;font-size:14px;font-weight:800;cursor:pointer}
@media(max-width:1180px){.lc-customer-header{padding:0 28px;grid-template-columns:190px minmax(340px,1fr) minmax(280px,auto);gap:16px}.lc-customer-logo img{width:165px}.lc-customer-session{gap:10px}.lc-customer-company-name{max-width:130px}}
@media(max-width:920px){.site-header[data-customer-header]{min-height:73px}.site-header[data-customer-header]+.auth-shell{min-height:calc(100vh - 72px - var(--lc-language-row,0px))}.lc-customer-header{height:72px;padding:0 20px;grid-template-columns:1fr auto}.lc-customer-logo img{width:150px;height:48px}.lc-customer-nav,.lc-customer-session,.lc-customer-public-actions{display:none}.lc-customer-menu-toggle{display:grid}}
@media(max-width:420px){.lc-customer-header{padding:0 16px}.lc-customer-logo img{width:138px}.lc-customer-mobile-menu{padding-left:16px;padding-right:16px}}
/* Shared presentation fallbacks. This stylesheet is injected by api.js on every public and customer page, so it is the one place that reaches them all. */
/* 1) Keyboard focus is always visible. :where() keeps specificity at zero, so any page rule that draws its own ring still wins. */
:where(a,button,input,select,textarea,summary,[tabindex]:not([tabindex="-1"])):focus-visible{outline:2px solid #1759e8;outline-offset:2px}
/* 2) Respect the OS "reduce motion" setting: transitions and animations finish immediately and CSS smooth scrolling is disabled. */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
/* ==== Language switch presentation (Fable, claude/customer-english-ui). Markup from assets/customer-language.js mount(): nav.lc-language-switch
   [data-language-switch] > button.lc-language-option[data-language][lang][aria-pressed] > svg.lc-language-flag(aria-hidden) + span (name).
   A thin row above the three-column header grid, aligned with its max-width/padding, so it never competes with the nav or the mobile menu
   (the menu opens below the header row). The selected language has a visible 1px #1759e8 border (5.78:1 on white) that the other option
   lacks, so the state is a shape as well as a colour; in forced colours it is a Highlight border plus an underline (outline stays for focus). ==== */
:root{--lc-language-row:40px}
.site-header[data-customer-header]>.lc-language-switch{display:flex;justify-content:flex-end;align-items:center;gap:4px;box-sizing:border-box;max-width:1440px;margin:0 auto;padding:8px 44px 0}
.lc-language-option{display:inline-flex;align-items:center;gap:7px;min-height:32px;margin:0;padding:4px 12px 4px 10px;border:1px solid transparent;border-radius:999px;background:transparent;color:#53617a;font:inherit;font-family:Inter,Pretendard,"Noto Sans KR",Arial,sans-serif;font-size:12px;font-weight:700;line-height:1.2;letter-spacing:0;white-space:nowrap;cursor:pointer;box-shadow:none}
.lc-language-option:hover{background:#f2f5fa;color:#173f97}
.lc-language-option[aria-pressed="true"]{border-color:#1759e8;background:#eef3ff;color:#10223f;font-weight:800}
.lc-language-option:focus-visible{outline:2px solid #1759e8;outline-offset:2px}
.lc-language-flag{display:block;flex:none;width:18px;height:12px;border-radius:2px;box-shadow:0 0 0 1px rgba(16,34,63,.22)}
@media(max-width:1180px){.site-header[data-customer-header]>.lc-language-switch{padding:8px 28px 0}}
@media(max-width:920px){.site-header[data-customer-header]>.lc-language-switch{padding:6px 20px 0}:root{--lc-language-row:46px}.lc-language-option{min-height:40px;padding:6px 12px 6px 10px}}
@media(max-width:420px){.site-header[data-customer-header]>.lc-language-switch{padding:6px 16px 0}}
@media(forced-colors:active){.lc-language-option[aria-pressed="true"]{border-color:Highlight;text-decoration:underline;text-underline-offset:3px}}
/* English labels are wider than the Korean ones: the public header buttons get side padding so 'Create account' does not touch its border */
.lc-customer-public-actions a{box-sizing:border-box;padding:0 14px}
