/* 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; }
}

/* Verified income channels and fiscal documents. */
.fiscal-tabs,.fiscal-section-header,.fiscal-period{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.fiscal-tabs{margin:0 0 22px}.fiscal-section-header{justify-content:space-between;margin-bottom:18px}
.fiscal-section-header .section-title{margin-bottom:8px}.fiscal-note{font-size:13px;line-height:1.65;color:#64748b;margin:10px 0}
.income-channels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:18px 0}
.channel-card{border:1px solid #e2e8f0;border-radius:14px;background:#f8fafc;padding:20px;min-width:0}
.channel-icon{display:block;font-size:24px;margin-bottom:12px}.channel-label{font-size:13px;font-weight:600;color:#475569;line-height:1.5;margin-bottom:10px}
.channel-value,.channel-grand-total{display:block;font-size:23px;line-height:1.4;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;color:#0b2545}
.channel-grand-total{color:#047857}.channel-link{display:inline-block;margin-top:14px;font-size:13px;font-weight:600;line-height:1.6}
.fiscal-warning{padding:14px 16px;background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;color:#9a3412;font-size:13px;line-height:1.65;margin:14px 0}
.fiscal-period{align-items:flex-end;margin:0 0 16px}.fiscal-period label{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:600}
.fiscal-period input{min-height:42px;max-width:100%;padding:9px 12px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#0f172a;font:inherit}
.fiscal-number{overflow-wrap:anywhere}.text-right{text-align:right;font-variant-numeric:tabular-nums}
.fiscal-activity .section-card{margin-bottom:20px}.fiscal-activity .table-wrap{overflow-x:auto}
.fiscal-activity table{width:100%;border-collapse:collapse}.fiscal-activity th,.fiscal-activity td{padding:14px 12px;border-bottom:1px solid #e2e8f0;vertical-align:top;font-size:13px;line-height:1.6}
.fiscal-activity th{background:#f8fafc}.fiscal-activity h3{margin:24px 0 12px}
a.period-tab{text-decoration:none}.period-tabs{flex-wrap:wrap}
@media(max-width:900px){.channel-value,.channel-grand-total{font-size:20px}.channel-card{padding:16px}}
@media(max-width:620px){.income-channels{grid-template-columns:1fr;gap:12px}.fiscal-section-header{align-items:flex-start}.fiscal-period{align-items:stretch}.fiscal-period label{flex:1 1 130px}.fiscal-period button{flex:1 1 100%}.fiscal-tabs{gap:8px}.fiscal-tabs a{font-size:13px;padding:10px 12px}.fiscal-activity .table-wrap table{min-width:650px}.channel-card{padding:18px}}
.fiscal-tabs .btn-secondary{display:inline-block;background:#fff;color:#334155;border:1px solid #cbd5e1;box-shadow:none;text-align:center}
.fiscal-tabs .btn-secondary:hover{background:#f1f5f9;color:#0b2545}
.fiscal-activity .fiscal-tabs{padding:0 var(--page-gutter)}
.fiscal-period .btn-primary{width:auto;flex:0 0 auto;min-width:140px}
@media(max-width:620px){.fiscal-period .btn-primary{width:100%;flex:1 1 100%}}
.fiscal-activity > .income-channels{padding:0 var(--page-gutter);margin:20px 0}
.fiscal-activity > .income-channels > .section-card{margin:0}
