/* Consistent spacing and readable forms throughout the cabinet. */
.app-layout { --page-gutter: clamp(16px, 2.5vw, 32px); }
.app-layout .main-content { min-width:0; padding-bottom:40px; }
.app-layout .topbar { padding-inline:var(--page-gutter); flex-shrink:0; }
.app-layout .page-header { padding:28px var(--page-gutter) 0; margin-bottom:8px; }
.app-layout .page-header h1 { line-height:1.25; letter-spacing:-.025em; }
.app-layout .page-header h2 { font-size:21px; line-height:1.4; color:var(--navy); }
.app-layout .page-header p { margin-top:8px; max-width:75ch; line-height:1.65; }
.app-layout .section-card { padding:26px; border-radius:16px; box-shadow:0 2px 8px rgb(11 37 69 / 3%); }
.app-layout .main-content > .section-card { margin-inline:var(--page-gutter) !important; }
.app-layout .section-card + .section-card { margin-top:22px; }
.app-layout .section-title { margin-bottom:20px; line-height:1.45; }
.app-layout .section-card p + p { margin-top:12px; }
.app-layout .section-card h3 { margin:24px 0 12px; line-height:1.45; color:var(--navy); }
.app-layout .section-card > form { margin-top:18px; }
.app-layout .section-card form p { margin-bottom:18px; }
.app-layout .section-card input:not([type=hidden]):not([type=checkbox]):not([type=radio]),
.app-layout .section-card select, .app-layout .section-card textarea { max-width:100%; box-sizing:border-box; }
.app-layout button, .app-layout .btn-primary, .app-layout .btn-secondary, .app-layout .btn-report { line-height:1.45; }
.app-layout input:focus-visible, .app-layout select:focus-visible, .app-layout textarea:focus-visible,
.app-layout button:focus-visible, .app-layout a:focus-visible { outline:3px solid rgb(0 184 148 / 30%); outline-offset:3px; }
.app-layout .inline-form { gap:14px; row-gap:18px; }
.table-scroll { width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.table-scroll table { min-width:640px; }
.dashboard-overview { display:grid; grid-template-columns:1fr 1fr; gap:22px; margin:22px var(--page-gutter) 0; }
.dashboard-overview .section-card { margin:0; min-width:0; }
.reports-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); gap:22px; padding:0 var(--page-gutter) 28px; }
.report-income { margin-top:24px; padding:0 var(--page-gutter) 24px !important; }
.report-income-card { background:white; border:1px solid var(--border); border-radius:16px; padding:26px; }
.report-card { display:flex; flex-direction:column; gap:10px; }
.report-card .btn-report { margin-top:auto; }
.report-period-form { display:flex; align-items:end; flex-wrap:wrap; gap:16px; margin:20px var(--page-gutter) 0; }
.report-period-form label { display:grid; gap:7px; font-size:13px; color:var(--text2); }
.report-period-form select { padding:10px 12px; border:1px solid var(--border); border-radius:9px; background:white; font:inherit; }
.data-notice { margin:20px var(--page-gutter) 0; padding:16px 20px; border:1px solid #f2d69b; background:#fffaf0; border-radius:12px; color:#78551a; font-size:14px; line-height:1.65; }
.profile-page .section-card { max-width:760px !important; }
.profile-page #connections, .profile-page #kep { scroll-margin-top:90px; }
.profile-page #connections { margin-top:28px; }
.connection-heading { margin:28px var(--page-gutter) 0; max-width:760px; }
.connection-heading h3 { font-size:19px; color:var(--navy); margin-bottom:8px; }
.connection-heading p { color:var(--text2); font-size:14px; line-height:1.65; }
.profile-page .connector-form { gap:18px; margin:20px 0; }
.profile-page .connector-form label { gap:8px; }
.profile-page .connector-form button { justify-self:start; padding:12px 20px; }
.profile-page #connections details { margin:20px 0; }
.profile-page #connections summary { padding-block:4px; }
.profile-page .kep-form { display:grid; gap:18px; margin-top:20px; }
.profile-page .kep-form p { margin:0; }
.profile-page .kep-form label { display:block; font-weight:600; font-size:14px; }
.profile-page .kep-form input { display:block; margin-top:8px; }
.profile-page .kep-form button { justify-self:start; padding:12px 20px; }
.app-layout .profile-switch-form { margin-top:12px; }
.app-layout .profile-select { border-radius:9px; padding:10px 12px; font:inherit; }
@media(max-width:768px) {
  .app-layout .page-header { padding-top:22px; }
  .app-layout .page-header h1 { font-size:23px; }
  .app-layout .section-card, .report-income-card { padding:20px; }
  .app-layout .section-card + .section-card { margin-top:18px; }
  .dashboard-overview { grid-template-columns:1fr; gap:18px; }
  .dashboard-overview .section-card { margin-top:0; }
  .app-layout .topbar-user { max-width:45%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .profile-page .connector-form button, .profile-page .kep-form button { width:100%; justify-self:stretch; }
  .report-period-form { align-items:stretch; }
  .report-period-form label { flex:1; min-width:110px; }
}

.biz-page { min-width:0; padding:28px var(--page-gutter) !important; }
.biz-page .page-head { display:block; margin-bottom:26px; }
.biz-page .page-head h1 { margin-bottom:20px; font-size:25px; line-height:1.3; }
.biz-page .inline-form { align-items:end; margin-top:18px; }
.biz-page .form-field { display:flex; flex-direction:column; gap:7px; flex:1 1 150px; font-size:13px; font-weight:600; }
.biz-page .form-field input, .biz-page .form-field select { width:100%; min-width:0; }
.biz-page .inline-form > button { min-height:43px; }
.biz-page .hint { margin-top:14px; line-height:1.6; }
@media(max-width:768px) {
  .biz-page { padding-top:22px !important; }
  .biz-page .page-head h1 { font-size:22px; }
  .biz-page .form-field { flex-basis:calc(50% - 14px); }
  .biz-page .inline-form > button { width:100%; }
}

.employer-notice { margin:20px var(--page-gutter) 0; padding:18px 20px; background:#fff7ed; border:1px solid #fed7aa; border-radius:12px; }
.employer-notice summary { cursor:pointer; color:#765024; font-weight:600; font-size:14px; line-height:1.5; }
.employer-notice summary span { display:block; margin-top:5px; font-size:12px; font-weight:400; }
.employer-notice-body { margin-top:16px; }
.employer-notice:not([open]) .employer-notice-body { display:none; }

.profile-info-row { overflow-wrap:anywhere; }
.profile-page input[type=file] { min-width:0; width:100%; }
@media(max-width:768px) {
  .item-row { grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important; gap:12px !important; }
  .item-row .item-name { grid-column:1 / -1; }
  .item-row > * { min-width:0; width:100%; }
  .item-row > button { justify-self:end; width:40px; }
  .document-summary { flex-direction:column; gap:18px; align-items:stretch !important; }
  .document-summary > button { width:100%; }
  .responsive-fields { grid-template-columns:1fr !important; }
}
