/* Custom page components used by the actual ESA Smarty templates. */
body.esa-app .esa-settings-form { border: 1px solid var(--esa-line); border-radius: 12px; background: var(--esa-surface); overflow: clip; }
body.esa-app .esa-account-intro { display: flex; align-items: center; gap: 16px; padding: 25px 30px; border-bottom: 1px solid var(--esa-line); }
body.esa-app .esa-profile-avatar { width: 51px; height: 51px; display: grid; place-items: center; border: 1px solid color-mix(in srgb,var(--esa-accent) 30%,var(--esa-line)); border-radius: 12px; background: var(--esa-wash); color: var(--esa-accent-text); font: 600 16px 'Geist',sans-serif; flex-shrink: 0; }
body.esa-app .esa-account-intro>div { display: grid; gap: 3px; min-width: 0; }
body.esa-app .esa-account-intro strong { font: 550 17px 'Geist',sans-serif; }
body.esa-app .esa-account-intro>div>span { font-size: 13px; color: var(--esa-muted); overflow-wrap: anywhere; }
body.esa-app .esa-account-intro-label { margin-left: auto; font-size: 12px; color: var(--esa-muted); padding: 5px 9px; background: var(--esa-bg); border: 1px solid var(--esa-line); border-radius: 6px; }
body.esa-app .esa-settings-section { display: grid; grid-template-columns: minmax(170px,.65fr) minmax(0,1.75fr); gap: 40px; padding: 31px; border-bottom: 1px solid var(--esa-line); }
body.esa-app .esa-section-intro { min-width: 0; }
body.esa-app .esa-section-icon { display: grid; place-items: center; width: 35px; height: 35px; border: 1px solid var(--esa-line); border-radius: 8px; color: var(--esa-accent-text); background: var(--esa-bg); margin-bottom: 15px; }
body.esa-app .esa-section-intro h2 { font: 550 17px/1.35 'Geist',sans-serif; letter-spacing: -.02em; margin: 0 0 9px; }
body.esa-app .esa-section-intro p { font: 400 13px/1.7 'Inter',sans-serif; color: var(--esa-muted); margin: 0; max-width: 250px; }
body.esa-app .esa-section-fields { min-width: 0; }
body.esa-app .esa-field-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; }
body.esa-app .esa-field { min-width: 0; }
body.esa-app .esa-field>label { display: block; font: 500 14px/1.5 'Inter',sans-serif; margin: 0 0 9px; padding: 0; color: var(--esa-ink); }
body.esa-app .esa-field :is(input:not([type=checkbox]):not([type=radio]),select,textarea) { width: 100%; }
body.esa-app .esa-field small { display: block; font-size: 12px; line-height: 1.6; margin-top: 8px; color: var(--esa-muted); }
body.esa-app .esa-field.full { grid-column: 1/-1; }
body.esa-app .esa-field .control { font-size: 14px; }
body.esa-app .esa-choice-stack { display: grid; gap: 10px; }
body.esa-app .esa-check-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px 16px; min-height: 54px; background: var(--esa-bg); border: 1px solid var(--esa-line); border-radius: 8px; font-size: 14px; margin: 0; cursor: pointer; }
body.esa-app .esa-check-row:has(input:checked) { background: var(--esa-wash); border-color: color-mix(in srgb,var(--esa-accent) 35%,var(--esa-line)); }
body.esa-app .esa-check-row input[type=checkbox] { position: static; margin: 0; width: 17px; height: 17px; flex-shrink: 0; }
body.esa-app .esa-checkbox-wrap { display: inline-flex; align-items: center; }
body.esa-app .esa-save-bar { padding: 21px 30px; display: flex; align-items: center; justify-content: space-between; gap: 20px; background: color-mix(in srgb,var(--esa-bg) 65%,var(--esa-surface)); }
body.esa-app .esa-save-bar>span { color: var(--esa-muted); font-size: 13px; }
body.esa-app .esa-save-bar>div { display: flex; gap: 9px; align-items: center; flex-wrap: wrap; }
body.esa-app .esa-account-navigation { margin: 0 0 25px; }
body.esa-app .esa-account-tabs { display: flex; align-items: center; gap: 5px; border-bottom: 1px solid var(--esa-line); overflow-x: auto; padding-bottom: 1px; scrollbar-width: thin; }
body.esa-app .esa-account-tabs a { display: flex; align-items: center; gap: 8px; padding: 13px 15px; white-space: nowrap; color: var(--esa-muted); font-size: 14px; }
body.esa-app .esa-account-tabs a.active { color: var(--esa-accent-text); box-shadow: 0 2px var(--esa-accent-text); font-weight: 550; }
body.esa-app .esa-account-tabs a:hover { color: var(--esa-accent-text); }
body.esa-app .esa-account-tabs a.disabled { opacity: .4; pointer-events: none; }
body.esa-app .esa-account-tabs i { font-size: 14px; }
body.esa-app .esa-contact-picker { padding: 19px 24px; margin-bottom: 23px; border: 1px solid var(--esa-line); border-radius: 10px; background: var(--esa-surface); }
body.esa-app .esa-picker-grid { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 20px; }
body.esa-app .esa-picker-label { font-size: 14px; margin: 0; }
body.esa-app .esa-form-card { border: 1px solid var(--esa-line); border-radius: 11px; background: var(--esa-surface); margin-bottom: 24px; overflow: clip; }
body.esa-app .esa-form-card-header { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 23px 27px; border-bottom: 1px solid var(--esa-line); }
body.esa-app .esa-form-card-header h2 { font-size: 19px; margin: 0; }
body.esa-app .esa-form-card-body { padding: 27px; }
body.esa-app .esa-form-card-body .esa-field-grid { max-width: 900px; }
body.esa-app .esa-settings-stack { display: grid; gap: 24px; }
body.esa-app .esa-settings-stack>.esa-form-card { margin: 0; }
body.esa-app .esa-password-fields { display: grid; gap: 23px; max-width: 680px; }
body.esa-app .esa-field-actions { display: flex; gap: 12px; align-items: flex-start; }
body.esa-app .esa-field-actions>div { flex: 1; }
body.esa-app .esa-collection-heading { padding: 22px 24px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--esa-line); }
body.esa-app .esa-collection-heading h2 { margin: 0; font-size: 18px; }
body.esa-app .esa-collection-heading p { margin: 6px 0 0; color: var(--esa-muted); font-size: 13px; }
body.esa-app .esa-record-link { display: flex; align-items: center; gap: 12px; color: var(--esa-ink); font-size: 14px; font-weight: 550; }
body.esa-app .esa-record-mark { width: 37px; height: 40px; display: grid; place-items: center; background: var(--esa-bg); border: 1px solid var(--esa-line); border-radius: 7px; color: var(--esa-muted); flex-shrink: 0; }
body.esa-app .esa-record-link small { font: 12px 'Geist Mono',monospace; color: var(--esa-muted); }
body.esa-app .esa-amount { font: 500 14px 'Geist Mono',monospace; letter-spacing: -.035em; }
body.esa-app .esa-inline-meta { font-size: 12px; color: var(--esa-muted); }
body.esa-app .esa-ticket-link { display: grid; gap: 6px; border-left: 0!important; padding: 0!important; min-width: 190px; }
body.esa-app .esa-ticket-link .ticket-number { font: 12px 'Geist Mono',monospace; color: var(--esa-muted); }
body.esa-app .esa-ticket-link .ticket-subject { color: var(--esa-ink); font-size: 14px; }
body.esa-app .esa-ticket-link .ticket-subject.unread { font-weight: 650; }
body.esa-app .esa-profile-field-column { display: grid; align-content: start; gap: 22px; }
body.esa-app .esa-password-generator { margin-top: 12px; }
body.esa-app .esa-password-generator .btn { width: auto; }
body.esa-app .esa-dashboard-panels { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(280px,1fr); gap: 24px; align-items: start; }
body.esa-app .esa-dashboard-panel { min-width: 0; border: 1px solid var(--esa-line); border-radius: 11px; background: var(--esa-surface); overflow: hidden; }
body.esa-app .esa-dashboard-panel.esa-panel-wide { grid-column: 1/-1; }
body.esa-app .esa-dashboard-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 22px 24px; border-bottom: 1px solid var(--esa-line); }
body.esa-app .esa-dashboard-panel-head h2 { display: flex; align-items: center; gap: 10px; margin: 0; font-size: 18px; }
body.esa-app .esa-dashboard-panel-head h2>i { color: var(--esa-accent-text); font-size: 16px; }
body.esa-app .esa-panel-action { font-size: 12px; color: var(--esa-accent-text); display: flex; gap: 7px; align-items: center; }
body.esa-app .esa-dashboard-panel-body { padding: 25px; font-size: 14px; line-height: 1.8; color: var(--esa-muted); }
body.esa-app .esa-dashboard-panel-body>:last-child { margin-bottom: 0; }
body.esa-app .esa-dashboard-record { display: flex; align-items: center; gap: 13px; padding: 19px 24px; border-bottom: 1px solid var(--esa-line); color: var(--esa-ink); font-size: 14px; }
body.esa-app .esa-dashboard-record:last-child { border-bottom: 0; }
body.esa-app a.esa-dashboard-record:hover { background: var(--esa-wash); color: var(--esa-ink); }
body.esa-app .esa-dashboard-record-icon { width: 41px; height: 41px; display: grid; place-items: center; background: var(--esa-bg); border: 1px solid var(--esa-line); border-radius: 8px; color: var(--esa-muted); flex-shrink: 0; }
body.esa-app .esa-dashboard-record-label { min-width: 0; flex: 1; overflow-wrap: anywhere; }
body.esa-app .esa-dashboard-record-label strong { font-weight: 600; }
body.esa-app .esa-dashboard-record-label :is(small,.text-muted) { font-size: 12px; }
body.esa-app .esa-record-arrow { font-size: 14px; color: var(--esa-muted); }
body.esa-app .esa-panel-count { border-radius: 5px; background: var(--esa-raised); color: var(--esa-muted); padding: 3px 7px; font: 12px 'Geist Mono',monospace; flex-shrink: 0; }
body.esa-app .esa-dashboard-panel-footer { border-top: 1px solid var(--esa-line); padding: 15px 24px; font-size: 12px; color: var(--esa-muted); }
body.esa-app .esa-resource-card { background: var(--esa-surface); border: 1px solid var(--esa-line); border-radius: 12px; margin-bottom: 24px; overflow: hidden; }
body.esa-app .esa-resource-hero { display: flex; align-items: center; gap: 19px; padding: 27px; border-bottom: 1px solid var(--esa-line); }
body.esa-app .esa-resource-icon { display: grid; place-items: center; width: 58px; height: 58px; background: var(--esa-wash); color: var(--esa-accent-text); border: 1px solid color-mix(in srgb,var(--esa-accent) 30%,var(--esa-line)); border-radius: 12px; font-size: 24px; flex-shrink: 0; }
body.esa-app .esa-resource-hero h2 { font: 550 26px/1.25 'Geist',sans-serif; letter-spacing: -.04em; margin: 0; overflow-wrap: anywhere; }
body.esa-app .esa-resource-hero p { font: 13px 'Geist Mono',monospace; color: var(--esa-muted); margin: 9px 0 0; }
body.esa-app .esa-resource-hero>.status { margin-left: auto; }
body.esa-app .esa-resource-facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 30px; padding: 8px 27px 20px; margin: 0; }
body.esa-app .esa-resource-facts>div { display: flex; flex-direction: column; gap: 7px; border-bottom: 1px solid var(--esa-line); padding: 18px 0; min-width: 0; }
body.esa-app .esa-resource-facts dt { color: var(--esa-muted); font: 400 12px 'Inter',sans-serif; }
body.esa-app .esa-resource-facts dd { margin: 0; color: var(--esa-ink); font: 500 14px/1.6 'Inter',sans-serif; overflow-wrap: anywhere; }
body.esa-app .esa-resource-actions { display: flex; flex-wrap: wrap; gap: 9px; padding: 0 27px 24px; }
body.esa-app .esa-resource-action .btn { width: auto; }
body.esa-app .esa-member-row { display: flex; align-items: center; gap: 16px; padding: 22px 25px; border-bottom: 1px solid var(--esa-line); }
body.esa-app .esa-member-row:last-child { border-bottom: 0; }
body.esa-app .esa-member-avatar { width: 43px; height: 43px; background: var(--esa-wash); color: var(--esa-accent-text); border: 1px solid var(--esa-line); border-radius: 50%; display: grid; place-items: center; flex-shrink: 0; }
body.esa-app .esa-member-details { flex: 1; min-width: 0; font-size: 14px; overflow-wrap: anywhere; }
body.esa-app .esa-member-details small { display: inline-block; font-size: 12px; margin-top: 6px; }
body.esa-app .esa-member-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
body.esa-app .esa-member-actions form { display: flex; flex-wrap: wrap; gap: 8px; }
body.esa-app .esa-list-section-title { margin: 0; padding: 14px 25px; background: var(--esa-bg); color: var(--esa-muted); font: 500 12px 'Inter',sans-serif; border-block: 1px solid var(--esa-line); }
body.esa-app .esa-permission-choice { border: 1px solid var(--esa-line); border-radius: 8px; padding: 14px 18px 14px 36px; background: var(--esa-bg); font-size: 14px; margin-bottom: 10px; }
body.esa-app .esa-permission-choice:has(input:checked) { border-color: var(--esa-accent-text); background: var(--esa-wash); }
body.esa-app #invitePermissions { background: transparent; padding: 0; border: 0; }
body.esa-app #invitePermissions .esa-permission-choice { display: block; }
body.esa-app #invitePermissions>.esa-permission-choice+br { display: none; }
body.esa-app .esa-thread-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 25px; padding: 25px; border: 1px solid var(--esa-line); border-radius: 11px; background: var(--esa-surface); }
body.esa-app .esa-thread-heading h2 { font-size: 23px; margin: 0; line-height: 1.4; }
body.esa-app .esa-thread-actions { display: flex; flex-wrap: wrap; gap: 8px; }
body.esa-app .esa-thread-item { margin-bottom: 21px; }
body.esa-app .esa-thread-item .ticket-reply { margin: 0; padding: 0; border-radius: 11px; }
body.esa-app .esa-message-author { display: flex; align-items: center; gap: 12px; padding: 21px 24px; background: var(--esa-surface); border-bottom: 1px solid var(--esa-line); color: var(--esa-ink); }
body.esa-app .esa-message-avatar { width: 41px; height: 41px; display: grid; place-items: center; border: 1px solid var(--esa-line); border-radius: 50%; background: var(--esa-bg); color: var(--esa-muted); }
body.esa-app .esa-message-avatar.staff { background: #101820; border-color: #2b3740; color: var(--esa-accent); }
body.esa-app .esa-message-author>div { display: grid; gap: 4px; }
body.esa-app .esa-message-author strong { font-size: 14px; font-weight: 600; }
body.esa-app .esa-message-author small { color: var(--esa-muted); font-size: 12px; }
body.esa-app .esa-message-author time { margin-left: auto; color: var(--esa-muted); font-size: 12px; }
body.esa-app .esa-thread-item .ticket-reply .message { padding: 25px!important; background: var(--esa-surface); font-size: 16px; color: var(--esa-ink); line-height: 1.8; }
body.esa-app .esa-thread-item .attachments { border-top: 1px solid var(--esa-line); background: var(--esa-bg); padding: 20px 25px!important; }
body.esa-app .esa-reply-title { font-size: 20px; margin: 0 0 23px; }
body.esa-app #frmReply>.esa-field-grid { margin-bottom: 23px; }
body.esa-app .esa-inline-actions { display: flex; align-items: center; gap: 9px; border-top: 1px solid var(--esa-line); padding-top: 22px; margin-top: 25px; }
body.esa-app .esa-settings-form .esa-section-fields>.esa-field { margin-bottom: 22px; }
body.esa-app .esa-settings-form .esa-section-fields form>.esa-field { margin-bottom: 22px; }
@media(max-width:1150px) {
  body.esa-app .esa-settings-section { gap: 25px; padding: 26px; grid-template-columns: minmax(150px,.7fr) minmax(0,1.7fr); }
}
@media(max-width:900px) {
  body.esa-app .esa-member-row { flex-wrap: wrap; }
  body.esa-app .esa-member-actions { width: 100%; justify-content: flex-start; padding-left: 59px; }
  body.esa-app .esa-dashboard-panels { grid-template-columns: minmax(0,1fr); }
  body.esa-app .esa-settings-section { grid-template-columns: minmax(0,1fr); gap: 22px; }
  body.esa-app .esa-section-intro { display: grid; grid-template-columns: 35px 1fr; column-gap: 12px; align-items: center; }
  body.esa-app .esa-section-icon { margin: 0; grid-row: 1/3; }
  body.esa-app .esa-section-intro h2 { margin: 0; }
  body.esa-app .esa-section-intro p { grid-column: 2; max-width: none; margin-top: 5px; }
}
@media(max-width:600px) {
  body.esa-app .esa-resource-hero { padding: 22px; flex-wrap: wrap; gap: 14px; }
  body.esa-app .esa-resource-hero h2 { font-size: 23px; }
  body.esa-app .esa-resource-facts { grid-template-columns: minmax(0,1fr); padding-inline: 22px; }
  body.esa-app .esa-resource-actions { padding-inline: 22px; }
  body.esa-app .esa-thread-heading { flex-direction: column; align-items: flex-start; padding: 22px; }
  body.esa-app .esa-message-author { flex-wrap: wrap; padding: 18px; }
  body.esa-app .esa-message-author time { width: 100%; margin-left: 53px; }
  body.esa-app .esa-settings-section,body.esa-app .esa-form-card-body { padding: 22px; }
  body.esa-app .esa-field-grid { grid-template-columns: minmax(0,1fr); gap: 20px; }
  body.esa-app .esa-save-bar { padding: 20px 22px; flex-wrap: wrap; }
  body.esa-app .esa-save-bar>span { display: none; }
  body.esa-app .esa-account-intro { padding: 22px; }
  body.esa-app .esa-account-intro-label { display: none; }
  body.esa-app .esa-picker-grid { grid-template-columns: minmax(0,1fr) auto; gap: 10px; }
  body.esa-app .esa-picker-label { grid-column: 1/-1; }
  body.esa-app .esa-field-actions { flex-direction: column; }
  body.esa-app .esa-field-actions>div { width: 100%; }
}

body.esa-app .esa-permission-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
body.esa-app .esa-permission-row { display:flex; align-items:flex-start; gap:13px; padding:18px; background:var(--esa-bg); border:1px solid var(--esa-line); border-radius:8px; cursor:pointer; margin:0; }
body.esa-app .esa-permission-row:has(input:checked) { background:var(--esa-wash); border-color:var(--esa-accent-text); }
body.esa-app .esa-permission-row input { margin-top:4px; flex-shrink:0; }
body.esa-app .esa-permission-row strong { display:block; font-size:14px; margin-bottom:5px; }
body.esa-app .esa-permission-row small { display:block; font-size:12px; line-height:1.6; color:var(--esa-muted); }
body.esa-app .esa-security-form { display:grid; gap:23px; max-width:850px; }
body.esa-app .esa-inline-actions { display:flex; gap:10px; margin-top:5px; }
body.esa-app .esa-support-intro { margin:8px 0 30px; max-width:670px; }
body.esa-app .esa-support-intro h2 { font-size:27px; }
body.esa-app .esa-support-intro p { color:var(--esa-muted); line-height:1.8; }
body.esa-app .esa-department-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
body.esa-app .esa-department { display:flex; flex-direction:column; align-items:flex-start; padding:28px; border:1px solid var(--esa-line); border-radius:12px; background:var(--esa-surface); color:var(--esa-ink); transition:border-color .15s,transform .15s; }
body.esa-app .esa-department:hover { border-color:var(--esa-accent-text); transform:translateY(-2px); }
body.esa-app .esa-department h3 { font-size:19px; }
body.esa-app .esa-department p { font-size:14px; line-height:1.8; color:var(--esa-muted); }
body.esa-app .esa-department-action { display:flex; align-items:center; justify-content:space-between; gap:25px; margin-top:auto; padding-top:24px; width:100%; color:var(--esa-accent-text); font-size:13px; font-weight:550; }
body.esa-app .esa-ticket-compose .esa-form-card-body { display:grid; gap:24px; }
body.esa-app .esa-ticket-compose .esa-field-grid { max-width:none; }
@media(max-width:650px) { body.esa-app .esa-permission-grid, body.esa-app .esa-department-grid { grid-template-columns:1fr; } }

body.esa-app .esa-account-extra { margin-top:14px; padding:18px 22px; border:1px solid var(--esa-line); border-radius:9px; background:var(--esa-surface); font-size:14px; }
