/* 로그인 화면 · 급여 · 공통 부품 · 법인세 — styles.css 에서 잘라 낸 조각. 자른 순서대로 읽힌다 · 순서를 바꾸면 생김새가 바뀐다 */
.login-entry-panel {
  display:grid;
  min-width:0;
  place-items:center;
  padding:48px clamp(36px,7vw,120px);
  background:
    linear-gradient(rgba(255,255,255,.78),rgba(255,255,255,.78)),
    radial-gradient(circle at 20% 20%,#dff5f3,transparent 36%),
    #f3f6f8;
}
.login-entry-panel .login-card {
  width:min(480px,100%);
  margin:0;
  padding:44px 46px 38px;
  border:1px solid #dce4e9;
  border-radius:14px;
  background:#fff;
  box-shadow:0 24px 60px rgba(17,43,71,.12);
}
.login-card-head { display:flex;align-items:center;gap:12px;margin-bottom:30px; }
.login-card-symbol { width:42px;height:42px;font-size:17px;border-radius:9px; }
.login-card-head > div { display:grid;gap:3px; }
.login-card-head .hero-label { margin:0;color:#079a9a;font-size:10px;letter-spacing:.13em; }
.login-card-head small { color:#7a8796;font-size:12px; }
.login-entry-panel .login-card h2 { margin:0 0 8px;color:#13263f;font-size:32px;letter-spacing:-.045em; }
.login-entry-panel .login-card > .meta-line { margin:0;color:#758396;font-size:13px; }
.login-entry-panel .login-form { gap:16px;margin-top:28px; }
.login-entry-panel .login-form label { gap:8px;color:#33465e;font-size:13px;font-weight:700; }
.login-entry-panel .login-form input[type="text"],
.login-entry-panel .login-form input[type="password"] {
  width:100%;
  min-height:48px;
  padding:11px 13px;
  border:1px solid #ced9e2;
  border-radius:7px;
  background:#fbfcfd;
  color:#172940;
  font-size:14px;
  transition:border-color .15s,box-shadow .15s,background .15s;
}
.login-entry-panel .login-form input:focus {
  outline:0;
  border-color:#0aa3a2;
  background:#fff;
  box-shadow:0 0 0 3px rgba(10,163,162,.12);
}
.login-entry-panel .login-form input::placeholder { color:#aab4bf; }
.login-entry-panel .login-form label.login-remember { margin-top:-2px;color:#53647a;font-size:13px;font-weight:500; }
.login-entry-panel .login-form .primary-button {
  min-height:49px;
  border-radius:7px;
  background:linear-gradient(135deg,#13aaa7,#079697);
  box-shadow:0 9px 20px rgba(7,151,151,.2);
  font-size:14px;
  font-weight:800;
}
.login-entry-panel .login-form .primary-button:hover { transform:translateY(-1px);filter:brightness(.98); }
.login-entry-panel #login-status { min-height:20px;color:#7d8997;font-size:12px;line-height:1.5;text-align:center; }
.login-help { margin:22px 0 0;padding-top:18px;border-top:1px solid #edf0f2;color:#99a3af;font-size:11px;text-align:center; }

@media (max-width:1050px) {
  .login-shell { grid-template-columns:minmax(390px,42%) minmax(480px,58%); }
  .login-brand-panel { padding-inline:42px; }
  .login-brand-lockup,.login-brand-footer { left:42px; }
  .login-brand-copy h1 { font-size:38px; }
  .login-brand-copy > span { font-size:14px; }
}

@media (max-width:760px) {
  .login-shell { display:block;min-height:100vh;padding:0;background:#f3f6f8;overflow:auto; }
  .login-brand-panel { min-height:210px;justify-content:flex-end;padding:88px 24px 26px; }
  .login-brand-lockup { top:24px;left:24px; }
  .login-brand-mark { width:42px;height:42px; }
  .login-brand-copy > p,.login-feature-list,.login-brand-footer { display:none; }
  .login-brand-copy h1 { font-size:28px;line-height:1.3; }
  .login-brand-copy > span { margin-top:9px;font-size:12px;line-height:1.55; }
  .login-entry-panel { padding:24px 16px 38px;place-items:start center; }
  .login-entry-panel .login-card { width:100%;padding:28px 24px;border-radius:12px; }
  .login-card-head { margin-bottom:23px; }
}

/* Internal login copy and client header typography corrections */
.login-internal-copy {
  position:relative;
  z-index:1;
  display:grid;
  align-content:center;
  justify-items:start;
}
.login-internal-copy > span {
  color:rgba(64,211,204,.13);
  font-size:clamp(180px,19vw,340px);
  font-weight:900;
  line-height:.72;
  letter-spacing:-.09em;
  user-select:none;
}
.login-internal-copy h1 {
  margin:-8px 0 10px;
  color:#fff;
  font-size:clamp(48px,4.4vw,78px);
  line-height:1.08;
  letter-spacing:-.055em;
}
.login-internal-copy p {
  margin:0;
  color:#57d4cf;
  font-size:17px;
  font-weight:700;
  letter-spacing:.02em;
}
.login-internal-copy small {
  margin-top:18px;
  color:#a9bac9;
  font-size:13px;
}

@media (min-width:841px) {
  #view-temp_registration .temp-reg-title-actions button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    line-height:1.2!important;
    white-space:nowrap;
  }
  #view-temp_registration .temp-reg-company-head {
    height:auto!important;
    min-height:112px!important;
    padding-top:15px;
    padding-bottom:13px;
    overflow:visible;
  }
  #view-temp_registration .temp-reg-detail-label {
    line-height:18px!important;
  }
  #view-temp_registration .temp-reg-company-head strong {
    display:block;
    line-height:27px!important;
  }
  #view-temp_registration #temp-reg-company-badges {
    min-height:27px;
  }
  #view-temp_registration .temp-reg-status-badge,
  #view-temp_registration .temp-reg-type-badge {
    line-height:20px!important;
  }
  #view-temp_registration .temp-reg-company-head .temp-reg-head-right {
    min-height:18px;
    margin-top:5px;
    line-height:18px!important;
  }
  #view-temp_registration .temp-reg-backup {
    display:block;
    padding:0;
    line-height:18px!important;
    text-decoration:none;
  }
}

@media (max-width:760px) {
  .login-internal-copy > span { display:none; }
  .login-internal-copy h1 { margin:0 0 5px;font-size:30px; }
  .login-internal-copy p { font-size:14px; }
  .login-internal-copy small { margin-top:7px;font-size:11px; }
}

/* Payroll workspace: compact task flow instead of full-width stretched fields */
@media (min-width:761px) {
  #view-payroll.workspace-calculator-view.active {
    width:min(100%,1360px);
    margin-inline:auto;
    gap:14px!important;
  }
  #view-payroll > .workflow-stagebar {
    width:min(100%,820px);
    min-height:62px;
    justify-self:center;
    border-radius:9px;
    box-shadow:0 5px 18px rgba(24,48,72,.045);
  }
  #view-payroll > .workflow-stagebar > div {
    grid-template-columns:28px minmax(0,1fr);
    column-gap:9px;
    padding:9px 14px;
  }
  #view-payroll > .workflow-stagebar > div > span {
    width:26px;
    height:26px;
  }
  #view-payroll .payroll-target-card,
  #view-payroll .payroll-work-card,
  #view-payroll .payroll-result-card {
    padding:20px;
    border-radius:10px;
  }
  #view-payroll .payroll-target-card {
    position:relative;
    background:linear-gradient(105deg,#fff 0%,#fff 72%,#f2faf9 100%);
  }
  #view-payroll .payroll-target-card::before {
    position:absolute;
    inset:20px auto 20px 0;
    width:3px;
    border-radius:0 3px 3px 0;
    background:#0f9f9c;
    content:"";
  }
  #view-payroll .payroll-client-row {
    display:grid;
    grid-template-columns:minmax(360px,680px) 230px;
    gap:18px;
    align-items:end;
    justify-content:start;
  }
  #view-payroll .payroll-client-field:first-child {
    min-width:0;
  }
  #view-payroll .contract-client-picker-button {
    min-height:44px;
    border-radius:7px;
  }
  #view-payroll .payroll-month-selects { gap:7px; }
  #view-payroll .payroll-month-selects select {
    width:110px;
    min-width:0;
    height:44px;
    border-radius:7px;
  }
  #view-payroll #payroll-client-status {
    max-width:920px;
    margin:13px 0 0;
    padding:9px 11px;
    border-left:3px solid #9bcfcb;
    border-radius:0 6px 6px 0;
    background:#f6faf9;
  }
  #view-payroll .payroll-section-heading {
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin:-2px 0 14px;
  }
  #view-payroll .payroll-section-heading > div {
    display:grid;
    gap:3px;
  }
  #view-payroll .payroll-section-heading span {
    color:#192a40;
    font-size:17px;
    font-weight:800;
  }
  #view-payroll .payroll-section-heading small {
    color:#7c8999;
    font-size:12px;
  }
  #view-payroll .payroll-grid {
    display:grid;
    grid-template-columns:minmax(250px,1.6fr) repeat(3,minmax(135px,.72fr));
    gap:10px;
    max-width:980px;
    padding:14px;
    border:1px solid #e1e7eb;
    border-radius:8px;
    background:#f8fafb;
  }
  #view-payroll .payroll-grid label {
    display:grid;
    gap:7px;
    min-width:0;
    color:#526378;
    font-size:12px!important;
    font-weight:700;
  }
  #view-payroll .payroll-grid input,
  #view-payroll .payroll-grid select {
    width:100%;
    min-width:0;
    min-height:42px!important;
    border-radius:6px;
    background:#fff;
  }
  #view-payroll [data-tax-table-info] {
    margin:10px 0 0;
  }
  #view-payroll .payroll-import-head {
    min-height:0;
    margin:20px -20px 0;
    padding:16px 20px 13px;
    border-top:1px solid #e3e8ec;
    border-bottom:1px solid #e3e8ec;
    border-radius:0;
    background:#fbfcfc;
  }
  #view-payroll .payroll-import-head > div:first-child {
    display:grid;
    gap:3px;
  }
  #view-payroll .payroll-import-head h3 { margin:0; }
  #view-payroll .payroll-import-head p {
    margin:0;
    color:#8491a1;
    font-size:11px;
  }
  #view-payroll .payroll-import-head .inline-actions {
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:7px;
  }
  #view-payroll .payroll-import-head button,
  #view-payroll .payroll-import-head .file-label {
    min-height:36px;
    padding-inline:12px;
    white-space:nowrap;
  }
  #view-payroll #payroll-records-wrap {
    min-height:94px;
    margin-top:14px;
  }
  #view-payroll .payroll-actions {
    min-height:48px;
    margin:12px -20px -20px;
    padding:10px 20px;
    border-top:1px solid #e3e8ec;
    border-radius:0 0 10px 10px;
    background:#fbfcfc;
  }
  #view-payroll .payroll-result-card .panel-head {
    display:grid;
    grid-template-columns:minmax(360px,700px) minmax(180px,1fr);
    gap:16px;
    min-height:0;
    padding:0 0 14px;
    border-bottom:1px solid #e5eaee;
    border-radius:0;
  }
  #view-payroll .payroll-title-label input { min-width:0; }
  #view-payroll .payroll-result-card > .table-wrap {
    min-height:100px;
    margin-top:14px;
  }
}

@media (max-width:1100px) and (min-width:761px) {
  #view-payroll .payroll-client-row { grid-template-columns:minmax(300px,1fr) 230px; }
  #view-payroll .payroll-grid { grid-template-columns:repeat(2,minmax(180px,1fr));max-width:none; }
  #view-payroll .payroll-import-head { align-items:flex-start;flex-direction:column;gap:12px; }
  #view-payroll .payroll-import-head .inline-actions { justify-content:flex-start; }
}

/* Dashboard cards as clear navigation controls */
#view-home button.home-kpi-card {
  position:relative;
  width:100%;
  margin:0;
  color:inherit;
  font:inherit;
  text-align:left;
  cursor:pointer;
}
#view-home button.home-kpi-card::before {
  position:absolute;
  top:12px;
  right:13px;
  color:#9aabb9;
  font-size:16px;
  line-height:1;
  content:"›";
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .15s,transform .15s;
}
#view-home button.home-kpi-card:hover::before,
#view-home button.home-kpi-card:focus-visible::before { opacity:1;transform:none; }
#view-home button.home-kpi-card:focus-visible,
#view-home .home-workflow-stage:focus-visible,
#view-home .home-wh-summary > button:focus-visible,
#view-home button.home-activity-row:focus-visible {
  outline:3px solid rgba(15,159,156,.22);
  outline-offset:2px;
}
#view-home .home-wh-summary > button {
  display:grid;
  gap:7px;
  min-width:0;
  min-height:78px;
  align-content:center;
  padding:10px 7px;
  border:0;
  border-right:1px solid #e0e6ec;
  border-radius:0;
  background:#fff;
  color:inherit;
  text-align:center;
  cursor:pointer;
  transition:background .15s;
}
#view-home .home-wh-summary > button:last-child { border-right:0; }
#view-home .home-wh-summary > button:hover { background:#f3faf9; }
#view-home button.home-workflow-stage {
  color:inherit;
  font:inherit;
  text-align:left;
  cursor:pointer;
  transition:border-color .15s,background .15s,transform .15s;
}
#view-home button.home-workflow-stage:hover {
  border-color:#9bcfcd;
  background:#f5fbfa;
  transform:translateY(-1px);
}
#view-home button.home-activity-row {
  width:100%;
  padding:0;
  border-right:0;
  border-bottom:0;
  border-left:0;
  border-radius:0;
  background:#fff;
  text-align:left;
  cursor:pointer;
}
#view-home button.home-activity-row:hover { background:#f4faf9; }

/* ================================================================
   Company logo blue palette
   Sampled from the supplied mark: blue #0f75bd, sky #57b7df,
   navy #0c3f6c. Semantic warning/success/danger colours stay intact.
   ================================================================ */
:root {
  --brand-blue:#0f75bd;
  --brand-blue-hover:#0c609a;
  --brand-sky:#57b7df;
  --brand-navy:#0c3f6c;
  --brand-navy-deep:#082f52;
  --brand-pale:#e9f4fa;
  --bg:#f2f6f9;
  --panel:#ffffff;
  --line:#d9e4eb;
  --line-strong:#c6d5df;
  --text:#182d42;
  --muted:#687b8d;
  --primary:var(--brand-blue);
  --primary-hover:var(--brand-blue-hover);
  --primary-soft:var(--brand-pale);
  --dark:var(--brand-navy);
  --dark-deep:var(--brand-navy-deep);
  --progress-bg:#e8f3fa;
  --progress-text:#0f75bd;
  --shadow:0 5px 18px rgba(12,63,108,.06);
}

html,
body,
.app-shell { background:#f2f6f9; }

button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline-color:rgba(15,117,189,.22);
}

input:focus,
select:focus,
textarea:focus,
.temp-reg-field:focus {
  border-color:var(--brand-blue)!important;
  box-shadow:0 0 0 3px rgba(15,117,189,.11)!important;
}

.topbar { border-bottom-color:#d6e2ea; }
.brand { background:var(--brand-navy); }
.brand:hover { background:#104b7c; }
.brand-mark {
  background:linear-gradient(145deg,var(--brand-sky),var(--brand-blue));
  box-shadow:0 8px 18px rgba(8,47,82,.2);
}

@media (min-width:761px) {
  .sidebar {
    background:linear-gradient(180deg,var(--brand-navy) 0%,var(--brand-navy-deep) 100%);
  }
  body:not(.sidebar-collapsed) .brand-mark {
    background:transparent;
    color:var(--brand-sky);
    box-shadow:none;
  }
}

.sidebar .menu-item.active,
.dashboard-home-button.active {
  border-color:rgba(87,183,223,.34);
  background:linear-gradient(90deg,rgba(15,117,189,.34),rgba(87,183,223,.12));
  color:#8ed2ec;
  box-shadow:inset 3px 0 var(--brand-sky);
}

.sidebar .menu-item.active::before,
.dashboard-home-button.active::before,
.sidebar .menu-group-toggle.has-active { color:#8ed2ec; }

.sidebar .menu-item:hover,
.sidebar .menu-group-toggle:hover,
.sidebar .menu-group.open > .menu-group-toggle {
  background:rgba(87,183,223,.09);
}

.primary-button,
#ui-text-edit-button.is-active,
.client-tab.active {
  border-color:var(--brand-blue)!important;
  background:var(--brand-blue)!important;
  color:#fff!important;
  box-shadow:0 2px 6px rgba(15,117,189,.2);
}

.primary-button:hover,
#ui-text-edit-button.is-active:hover {
  border-color:var(--brand-blue-hover)!important;
  background:var(--brand-blue-hover)!important;
}

.hero-card { border-left-color:var(--brand-blue); }
.view-section:not(#view-home) .tab-row button.active,
.law-source-tabs button.active,
.temp-reg-tabs button.active {
  border-color:var(--brand-blue)!important;
  color:var(--brand-blue)!important;
  box-shadow:inset 0 -2px var(--brand-blue);
}

.summary-filter-button.active,
.client-card.selected,
.monthly-status-cell .task-state-button.is-active,
.task-state-button.is-active,
.vat-period-card.is-active,
.vat-state-button.is-active,
.binding-client-result.is-selected {
  border-color:#8fc8e3;
  background:var(--brand-pale);
  color:var(--brand-navy);
  box-shadow:inset 0 0 0 1px rgba(15,117,189,.1);
}

.client-card.selected { box-shadow:0 0 0 2px rgba(15,117,189,.13); }
.progress-slot.filled,
.summary-progress-fill,
.home-wh-bar-fill,
.month-state-submitted,
.month-mini-item.is-done {
  border-color:var(--brand-blue);
  background:linear-gradient(180deg,var(--brand-sky),var(--brand-blue));
  color:#fff;
}

/* Dashboard */
#view-home .home-kpi-card::after {
  background:linear-gradient(90deg,var(--brand-blue),var(--brand-sky));
}
#view-home .home-kpi-icon {
  background:var(--brand-pale);
  color:var(--brand-blue);
}
#view-home .home-kpi-card strong { color:var(--brand-blue); }
#view-home button.home-kpi-card:hover {
  border-color:#a9cee2;
  box-shadow:0 7px 20px rgba(12,63,108,.09);
}
#view-home button.home-kpi-card:focus-visible,
#view-home .home-workflow-stage:focus-visible,
#view-home .home-wh-summary > button:focus-visible,
#view-home button.home-activity-row:focus-visible {
  outline-color:rgba(15,117,189,.25);
}
#view-home .home-wh-summary strong.is-done,
#view-home .home-wh-summary strong.is-progress { color:var(--brand-blue); }
#view-home .home-quick-grid button:hover,
#view-home .home-wh-summary > button:hover,
#view-home button.home-activity-row:hover {
  border-color:#a9cee2;
  background:#f0f7fb;
  color:var(--brand-navy);
}
#view-home .home-quick-grid button:nth-child(4) > span,
#view-home .home-quick-grid button:nth-child(5) > span {
  background:var(--brand-pale);
  color:var(--brand-blue);
}
#view-home .home-deadline-list button > span { background:#edf6fa; }
#view-home .home-deadline-list button b { color:var(--brand-blue); }
#view-home .home-deadline-list button strong { color:var(--brand-navy); }
#view-home button.home-workflow-stage:hover {
  border-color:#a9cee2;
  background:#f1f8fb;
}

/* Client registration and detail */
.temp-reg-list-tab strong { border-bottom-color:var(--brand-blue); }
.temp-reg-count strong { color:var(--brand-blue); }
.temp-reg-count.active {
  background:var(--brand-pale)!important;
  color:var(--brand-navy)!important;
  box-shadow:none;
}
.temp-reg-count.active strong { color:var(--brand-blue)!important; }
.temp-reg-table tbody tr:hover,
.temp-reg-table tr.temp-reg-card:hover { background:#f2f8fb; }
.temp-reg-table tbody tr.active,
.temp-reg-table tr.temp-reg-card.active {
  background:#eaf4fa;
  box-shadow:inset 3px 0 var(--brand-blue);
}
.temp-reg-table tr.multi-selected .temp-reg-select-box,
.temp-reg-pagination button.active {
  border-color:var(--brand-blue);
  background:var(--brand-blue);
}
.temp-reg-table-status,
.temp-reg-status-badge,
.temp-reg-type-badge,
.temp-reg-detail-actions button {
  border-color:#75bbdc;
  color:var(--brand-blue);
}
.temp-reg-type-badge.corporate {
  border-color:#75bbdc;
  color:var(--brand-navy);
}
.temp-reg-withholding-cycle,
#view-temp_registration .temp-reg-tax-toggle {
  border-color:#8fc8e3;
  background:#edf6fb;
  color:var(--brand-navy);
}
.temp-reg-withholding-check { background:var(--brand-blue); }
.temp-reg-progress-card > i b { background:var(--brand-blue); }
.temp-reg-company-head { background:var(--brand-navy); }
.temp-reg-tag-add:hover::before,
.temp-reg-tag-add:hover::after { background:var(--brand-blue); }

/* Reports, tools and workflow screens */
.workflow-stagebar > div.active { background:linear-gradient(90deg,#eaf4fa,#fff); }
.workflow-stagebar > div.active::before,
.workspace-tax-view .tab-summary-card.active::after,
.workspace-tax-view .summary-filter-button.active::after {
  background:var(--brand-blue);
}
.workflow-stagebar > div.active > span {
  border-color:var(--brand-blue);
  background:var(--brand-blue);
}
.workflow-stagebar > div.active strong,
.law-citation-link,
a:not(.danger-action) { color:var(--brand-navy); }
.workspace-tax-view #vat-status,
.workspace-form-view .binding-bulk-section {
  border-left-color:var(--brand-blue);
  background:#f3f8fb;
}
.law-reference-result.active {
  border-color:var(--brand-blue);
  background:#eef6fa;
}
.withholding-cycle-help span,
.withholding-type-pill.monthly {
  background:var(--brand-pale);
  color:var(--brand-navy);
}
.withholding-date-cell button,
.temp-reg-table-status.working {
  border-color:#8fc8e3;
  background:#f1f7fb;
  color:var(--brand-navy);
}
.withholding-grid-cell.is-selected,
.withholding-grid-cell.is-editing { box-shadow:inset 0 0 0 2px var(--brand-blue); }
input[type="checkbox"],
input[type="radio"] { accent-color:var(--brand-blue); }

/* Login */
.login-shell { background:#f1f5f8; }
.login-brand-panel {
  background:
    radial-gradient(circle at 88% 18%,rgba(87,183,223,.25),transparent 29%),
    radial-gradient(circle at 18% 92%,rgba(15,117,189,.22),transparent 31%),
    linear-gradient(145deg,#104f80 0%,var(--brand-navy) 54%,var(--brand-navy-deep) 100%);
}
.login-brand-panel::before,
.login-brand-panel::after { border-color:rgba(87,183,223,.2); }
.login-brand-mark,
.login-card-symbol {
  background:linear-gradient(145deg,var(--brand-sky),var(--brand-blue));
  box-shadow:0 12px 30px rgba(8,47,82,.25);
}
.login-brand-copy > p,
.login-feature-list b { color:#8ed2ec; }
.login-feature-list b { background:rgba(87,183,223,.14); }
.login-entry-panel {
  background:
    linear-gradient(rgba(255,255,255,.82),rgba(255,255,255,.82)),
    radial-gradient(circle at 20% 20%,#d9edf7,transparent 36%),
    #f1f5f8;
}
.login-card-head .hero-label { color:var(--brand-blue); }
.login-entry-panel .login-form input:focus {
  border-color:var(--brand-blue);
  box-shadow:0 0 0 3px rgba(15,117,189,.12);
}
.login-entry-panel .login-form .primary-button {
  background:linear-gradient(135deg,var(--brand-blue),#0c609a)!important;
  box-shadow:0 9px 20px rgba(15,117,189,.22);
}

/* ===== 법인세 — 자동 결산(엔진 연동) ===== */
.corporate-closing-badge {
  display:inline-block; margin-left:.5em; padding:.15em .6em; border-radius:999px;
  font-size:.72em; font-weight:700; letter-spacing:.02em;
  background:var(--warn-bg); color:var(--warn-text); vertical-align:middle;
}
.corporate-closing-section { margin-top:1.4em; padding-top:1.2em; border-top:1px dashed #dbe4ea; }
.corporate-closing-section h4 { margin:0 0 .5em; font-size:.95em; }
.corporate-num-input { width:5.5em; }
.corporate-upload-grid {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:.8em;
  margin:.6em 0;
}
.corporate-upload-grid label {
  display:flex; flex-direction:column; gap:.35em; font-size:.85em; color:#4a5a66;
}
.corporate-status-chip {
  display:inline-flex; align-items:center; gap:.4em; padding:.5em .8em; border-radius:10px;
  font-size:.85em; background:#f4f7f9;
}
.corporate-status-dot { width:.65em; height:.65em; border-radius:50%; background:#b9c4cb; flex:none; }
.corporate-status-dot.ok { background:#22a55e; }
.corporate-status-dot.bad { background:var(--danger-text); }
.corporate-match-candidates { display:flex; flex-wrap:wrap; gap:.5em; margin-top:.5em; }
.corporate-warning-banner {
  margin-top:1em; padding:.9em 1em; border-radius:10px;
  background:var(--warn-bg); color:var(--warn-text);
  border:1px solid rgba(146,64,14,.18); font-size:.88em; line-height:1.6;
}
.corporate-warning-banner strong { display:block; margin-bottom:.3em; }
.corporate-warning-banner pre {
  white-space:pre-wrap; word-break:break-word; margin:.4em 0 0; font-family:inherit;
}
.corporate-composite-notice {
  margin:.6em 0 0; padding:.5em .7em; border-radius:8px;
  background:var(--danger-bg); color:var(--danger-text); font-size:.85em;
}
.corp-wehago-bar {
  display:flex; align-items:center; gap:.6em; flex-wrap:wrap;
  margin:0 0 .9em; padding:.6em .8em; border-radius:8px;
  background:#f4f7f9; border:1px solid #e3eaef; font-size:.84em; color:#41525f;
}
.corp-wehago-dot { width:9px; height:9px; border-radius:50%; background:#c4ced6; flex:none; }
.corp-wehago-dot.ok { background:#1a9d6a; }
.corp-wehago-dot.bad { background:#c0392b; }
.corp-wehago-bar button { margin-left:auto; }
.corp-card-actions {
  display:flex; align-items:center; justify-content:space-between; gap:.6em;
  flex-wrap:wrap; margin-top:.7em; padding-top:.7em; border-top:1px solid #eef2f4;
}
.corp-card-actions-group { display:flex; gap:.4em; flex-wrap:wrap; }
.corp-card-actions .ghost-button.small { padding:5px 10px; font-size:.78em; white-space:nowrap; }
/* ★수집 현황 글자는 「과거자료 수집」 버튼 ★바로 왼쪽에 붙어 있어야 한다(대표님 지시).
   카드 폭이 좁아 줄바꿈이 일어나도 둘이 떨어지지 않도록 한 묶음으로 둔다. */
.corp-card-history-group {
  display:flex; align-items:center; gap:.5em; margin-left:auto; flex:none;
}
.corp-card-collected { font-size:.78em; color:#5b6b77; white-space:nowrap; }
.corp-card-history { flex:none; }
.corp-card-status {
  margin:.5em 0 0; font-size:.78em; color:#8a97a1;
}
/* ★실패했을 때 사유를 봐야 한다 — 로그 원문을 요약하지 않고 접힌 영역에 그대로 둔다. */
.corp-upload-picker {
  display:flex; flex-direction:column; gap:.4em; margin:.8em 0;
  font-size:.88em; color:#4a5a66;
}
.corp-history-range { align-items:center; gap:.5em; margin:.8em 0; }
.corp-confirm-company {
  margin:0 0 .5em; font-size:1.05em; font-weight:700; color:var(--danger-text);
}
.corp-history-range select { min-width:6em; }
.corp-card-log:empty { display:none; }
.corp-card-log { margin-top:.4em; }
.corp-card-log summary { font-size:.78em; color:#5b6b77; cursor:pointer; }
.corp-card-log pre {
  max-height:220px; overflow:auto; white-space:pre-wrap; word-break:break-all;
  background:#0f1a22; color:#d7e6ee; padding:.7em; border-radius:6px;
  font-size:.72em; line-height:1.5; margin:.4em 0 0;
}
.corporate-closing-steps {
  display:flex; flex-wrap:wrap; gap:.5em; list-style:none; margin:0 0 .8em; padding:0;
}
.corporate-closing-steps li {
  display:flex; align-items:center; gap:.4em; padding:.4em .8em; border-radius:8px;
  background:#f4f7f9; color:#7a8894; font-size:.85em;
}
.corporate-closing-steps li span {
  display:inline-flex; align-items:center; justify-content:center;
  width:1.4em; height:1.4em; border-radius:50%; background:#dfe6ea; font-size:.8em;
}
.corporate-closing-steps li.step-active { background:var(--warn-bg); color:var(--warn-text); }
.corporate-closing-steps li.step-active span { background:var(--warn-text); color:#fff; }
.corporate-closing-steps li.step-done { background:var(--success-bg); color:var(--success-text); }
.corporate-closing-steps li.step-done span { background:var(--success-text); color:#fff; }
.corporate-closing-steps li.step-error { background:var(--danger-bg); color:var(--danger-text); }
.corporate-closing-steps li.step-error span { background:var(--danger-text); color:#fff; }
#corporate-closing-log-tail {
  max-height:280px; overflow:auto; white-space:pre-wrap; word-break:break-all;
  background:#0f1a22; color:#d7e6ee; padding:.9em; border-radius:8px; font-size:.78em;
  line-height:1.5;
}
.corporate-upload-file-row { display:flex; justify-content:space-between; gap:.6em; padding:.35em 0; border-bottom:1px solid #eef2f4; font-size:.85em; }
.corporate-upload-file-row.rejected { color:var(--danger-text); }


/* ★로고 — 대표님 2026-09-08 「해당 로고를 내 웹사이트에 사용할것이다 · 겉에 하얀색 제거한 파란색 네모로고」
   ★맨 뒤 조각의 끝에 붙인다. 새 조각을 만들면 settings 를 고쳐야 하고 그러면 재시작 전까지 404 다(오늘 겪었다).
   ★로고 자체가 파란 네모라 앞 조각들의 ★하늘색 그라데이션과 그림자를 빼야 겹쳐 보이지 않는다.
   ★`body:not(.sidebar-collapsed) .brand-mark` 가 뒤에서 background 를 통째로 비우므로 그 자리도 같이 적는다. */
:root { --brand-logo: url("../assets/yeiltax-logo.png"); }
.login-brand-mark,
.login-card-symbol,
.brand-mark,
body:not(.sidebar-collapsed) .brand-mark {
  background: var(--brand-logo) center / contain no-repeat;
  box-shadow: none;
  font-size: 0;                 /* 글자는 HTML 에서 뺐다 — 남아 있어도 안 보이게 한 겹 더 */
}
/* ★상단바 것은 글자가 폭을 잡고 있었다 — 글자를 빼니 34x52 로 찌그러졌다(브라우저에서 잼).
   높이는 조각마다 다르므로(54px·40px) 폭을 박지 않고 ★높이에 맞춰 정사각으로 둔다. */
.brand-mark,
body:not(.sidebar-collapsed) .brand-mark { flex: none; aspect-ratio: 1; width: auto; }
