/* 업무실 입구: 장식 없이 역할 선택과 로그인만 보여준다. 색·글꼴·간격은 공통 디자인 변수(--company-*)를 따른다. */
.company-access-body { margin:0; background:var(--v3-bg,#f3f5f7); color:var(--v3-text,#17232d); font-family:system-ui,-apple-system,"Apple SD Gothic Neo","Noto Sans KR",sans-serif; -webkit-font-smoothing:antialiased; }
.access-page { max-width:880px; margin:0 auto; padding:20px 20px 48px; display:flex; flex-direction:column; gap:20px; }
.access-brandbar { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:6px 0 14px; border-bottom:1px solid var(--v3-border,#dde3e8); }
.company-wordmark { display:inline-flex; align-items:center; gap:10px; font-size:17px; font-weight:600; letter-spacing:-.01em; }
.company-wordmark b { font-weight:700; }
.company-brand-mark { display:inline-grid; place-items:center; width:32px; height:32px; border-radius:8px; background:var(--v3-primary-soft,#e3f1ee); color:var(--v3-primary,#1f7f70); }
.company-brand-mark svg { width:20px; height:20px; }
.access-brand-actions { display:flex; align-items:center; gap:10px; }
.access-brand-actions a, .access-brand-actions button { min-height:44px; min-width:44px; padding:0 12px; justify-content:center; border-radius:8px; border:1px solid var(--v3-border,#dde3e8); background:var(--v3-panel,#fff); color:inherit; font:inherit; font-size:14px; cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; gap:6px; }
.access-heading { margin-top:6px; }
.access-heading h1 { margin:0 0 6px; font-size:24px; font-weight:700; letter-spacing:-.02em; }
.access-heading p { margin:0; color:var(--v3-muted,#5b6b78); font-size:15px; }
.access-current { padding:12px 14px; border-radius:10px; background:var(--v3-panel,#fff); border:1px solid var(--v3-border,#dde3e8); font-size:14px; line-height:1.5; }
.access-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.access-card { display:flex; flex-direction:column; gap:12px; padding:20px; border-radius:12px; background:var(--v3-panel,#fff); border:1px solid var(--v3-border,#dde3e8); }
.access-card-head { display:flex; align-items:center; gap:10px; }
.access-card h2 { margin:0; font-size:19px; font-weight:700; letter-spacing:-.01em; }
.access-card > p { margin:0; color:var(--v3-muted,#5b6b78); font-size:14px; line-height:1.55; }
.access-icon { display:inline-grid; place-items:center; width:36px; height:36px; border-radius:9px; background:var(--v3-primary-soft,#e3f1ee); color:var(--v3-primary,#1f7f70); }
.access-card.operations .access-icon { background:var(--v3-primary-soft,#f5eaf1); color:var(--v3-primary-dark,#4f1f3b); }
.access-facts { margin:0; display:grid; gap:8px; font-size:13.5px; }
.access-facts div { display:grid; grid-template-columns:64px 1fr; gap:8px; }
.access-facts dt { color:var(--v3-muted,#5b6b78); }
.access-facts dd { margin:0; }
.access-action { margin-top:auto; display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:0 16px; border-radius:9px; background:var(--v3-primary,#1f7f70); color:#fff; font-weight:600; font-size:15px; text-decoration:none; }
.access-card.operations .access-action { background:var(--ws-action,#7a2f57); }
.access-action[aria-disabled="true"] { background:var(--v3-border,#dde3e8); color:var(--v3-muted,#5b6b78); cursor:not-allowed; }
.access-login { padding:20px; border-radius:12px; background:var(--v3-panel,#fff); border:1px solid var(--v3-border,#dde3e8); }
.access-login h2 { margin:0 0 12px; font-size:17px; font-weight:700; }
.access-login form { display:grid; grid-template-columns:1fr 1fr auto; gap:10px; align-items:end; }
.access-login label { display:grid; gap:6px; font-size:13px; color:var(--v3-muted,#5b6b78); }
.access-login input { min-height:44px; padding:0 12px; border-radius:8px; border:1px solid var(--v3-border,#dde3e8); background:var(--v3-panel-soft,#fff); color:inherit; font:inherit; font-size:15px; }
.access-login button { min-height:44px; padding:0 18px; border-radius:8px; border:0; background:var(--v3-text,#17232d); color:#fff; font:inherit; font-weight:600; cursor:pointer; }
.access-login button:disabled, .access-login input:disabled { opacity:.55; cursor:not-allowed; }
.access-note { margin:12px 0 0; font-size:13px; color:var(--v3-muted,#5b6b78); }
.access-signup-link a { padding:15px 6px; margin:0 -6px; }
/* 비밀번호 보기 체크칸은 글과 나란히 둔다. */
.access-show-password { grid-template-columns:auto 1fr; align-items:center; gap:8px; }
.access-show-password input { width:20px; height:20px; min-height:20px; padding:0; }
/* 초대·재설정 링크 화면은 한 줄에 한 칸씩 쌓는다. */
#invite-form { grid-template-columns:1fr; }
#invite-form button { width:100%; }
ul#invite-rules { margin:4px 0 0; padding-left:18px; }
ul#invite-rules li { margin:2px 0; }
/* 임시 비밀번호를 바꾸는 화면도 한 줄에 한 칸씩 쌓는다. 비밀번호 관리자용 이름 칸은 화면 밖에 둔다. */
#access-password { grid-template-columns:1fr; }
#access-password button { width:100%; }
ul#password-rules { margin:4px 0 0; padding-left:18px; }
ul#password-rules li { margin:2px 0; }
.access-login input.access-username { position:absolute; width:1px; height:1px; min-height:0; padding:0; border:0; opacity:0; overflow:hidden; pointer-events:none; }
.access-login input[aria-invalid="true"] { border-color:var(--v3-danger,#b42318); }
.access-login button:disabled { cursor:wait; }
/* 처음부터 숨겨 두었다가 상태 확인 뒤에 여는 요소는 [hidden]이 화면 배치 규칙에 밀리지 않게 한다. */
.access-grid[hidden], .office-entry .access-grid[hidden], .office-entry .entry-owner[hidden], .office-entry .entry-staff-link[hidden], .access-note[hidden] { display:none; }
.access-error { margin:6px 0 0; font-size:13px; color:var(--v3-danger,#b42318); min-height:1em; }
.access-footer { display:flex; justify-content:space-between; align-items:center; gap:12px; font-size:13px; color:var(--v3-muted,#5b6b78); padding-top:8px; }
.access-footer a { color:inherit; display:inline-flex; align-items:center; min-height:44px; padding:0 4px; }
/* 임원 요약 */
.executive-page .executive-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.executive-heading h1 { margin:6px 0; font-size:22px; }
.executive-heading p { margin:0; color:var(--v3-muted,#5b6b78); }
.access-kicker { font-size:12.5px; color:var(--v3-primary,#1f7f70); font-weight:600; }
.access-readonly { font-size:12.5px; padding:4px 10px; border-radius:999px; border:1px solid var(--v3-border,#dde3e8); color:var(--v3-muted,#5b6b78); white-space:nowrap; }
.executive-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; }
.executive-card { padding:16px; border-radius:12px; background:var(--v3-panel,#fff); border:1px solid var(--v3-border,#dde3e8); display:grid; gap:4px; }
.executive-card b { font-size:26px; }
.executive-card span { font-size:13px; color:var(--v3-muted,#5b6b78); }
@media (max-width:720px) {
 .access-page { padding:14px 14px 40px; gap:14px; }
 .access-grid { grid-template-columns:1fr; }
 .access-login form { grid-template-columns:1fr; }
 .access-login button { width:100%; }
 .access-heading h1 { font-size:21px; }
}
html[data-theme="dark"] .access-action, body[data-theme="dark"] .access-action { color:#0f1c22; }
html[data-theme="dark"] .access-action[aria-disabled="true"], body[data-theme="dark"] .access-action[aria-disabled="true"] { color:var(--v3-muted); }
html[data-theme="dark"] .access-login button, body[data-theme="dark"] .access-login button { color:#0f1c22; }
