.muted{color:var(--muted)}
.brand{color:#f4efe6}
.brand h1{color:#fff;max-width:min(360px,100%);overflow-wrap:break-word}
.login-wrap,.login-card,.brand,.login-form{min-width:0;max-width:100%}
.login-card{width:min(100%,950px)}
@media (max-width:1100px){
  .login-wrap{padding:16px}
  .brand{padding:32px 26px}
  .brand h1{font-size:clamp(30px,4.4vw,44px)}
  .login-form{padding:36px 28px}
}
@media (max-width:700px){
  .login-card{grid-template-columns:minmax(0,1fr);width:100%;max-width:480px;min-height:auto;border-radius:18px}
  .brand{display:flex;padding:22px 20px 16px}
  .brand h1{font-size:clamp(26px,8vw,34px);color:#fff}
  .eyebrow{margin:14px 0 8px}
  .brand p{margin:8px 0 0;max-width:none}
  .brand small{margin-top:16px}
  .mobile-mark{display:none}
  .login-form{padding:22px 18px 26px}
  .login-form h2{font-size:clamp(24px,7vw,30px);overflow-wrap:break-word}
  .options{align-items:flex-start}
}
.login-card.solo{min-height:auto;display:block;max-width:520px}
a.primary{display:grid;place-items:center;text-decoration:none}
a.nav-item{text-decoration:none}
a.brand-row{text-decoration:none;color:inherit}
.sidebar-bottom form{margin:0}
.flash-banner{margin:0 0 16px;padding:11px 12px;border-radius:9px;font-size:12px;line-height:1.5}
.flash-banner.success{background:#e4f5e9;color:#19713a}
.flash-banner.error{background:#fff0ed;color:#b43b2c;border:1px solid #f2c6bf}
.message.error{color:#9f1c1c;background:#fdecec;border-color:#f0c4c0}
.message.success{color:#146c36;background:#e4f5e9;border-color:#b9e4c6}
.field-error{display:block;margin-top:6px;color:#9f1c1c;font-size:11px;font-weight:700;line-height:1.4}
.field-error[hidden]{display:none!important}
.is-invalid{border-color:#d66b6b!important;box-shadow:0 0 0 3px #a82b2b14!important}
.action-cell{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.action-cell form{margin:0}
.wrap-cell{white-space:normal!important;min-width:140px;max-width:280px}
.table-panel-flush{margin-top:0}
.out-icon{background:#fff0ed!important;color:#b43b2c!important}
.person-hint{display:block;margin-top:6px;color:#697586;font-size:11px;font-weight:600}
.center-empty{text-align:center;color:#697586;padding:26px}
.backup-note{margin:0 0 14px;padding:10px 12px;border-radius:9px;background:#fffaf0;border:1px dashed #d9ad5c;color:#6f4e16;font-size:12px;line-height:1.55}
a.modal-cancel,a.modal-save{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;box-sizing:border-box}
.transaction-filter-actions a{white-space:nowrap;padding:11px 13px}

.searchable{position:relative;width:100%;min-width:0}
.searchable-trigger{width:100%;height:40px;border:1px solid #d7dde6;border-radius:8px;background:#fff;color:#202938;text-align:left;padding:0 32px 0 10px;font:inherit;font-size:12px;position:relative}
.modal-field .searchable-trigger,.field .searchable-trigger{height:44px;border-radius:10px;background:#fbfcfe;font-size:13px}
.searchable-caret{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:#855c1d;font-size:10px}
.searchable.is-ready .searchable-native{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.searchable-panel,.excel-panel{position:fixed;z-index:80;width:min(16.5rem,calc(100vw - 1rem));max-height:min(22rem,calc(100dvh - 1rem));overflow:auto;background:#fff;border:1px solid #e1e5eb;border-radius:12px;box-shadow:0 18px 50px rgba(31,41,55,.18);padding:10px}
.searchable-search,.excel-search{width:100%;height:40px;border:1px solid #d7dde6;border-radius:8px;padding:0 10px;margin-bottom:8px;font:inherit;font-size:16px}
.searchable-option,.excel-sort{width:100%;text-align:left;border:0;background:transparent;padding:8px 10px;border-radius:8px;min-height:40px;font:inherit;font-size:13px;color:#202938}
.searchable-option.is-active,.searchable-option:hover,.excel-sort:hover{background:#fbf4e7}
.searchable-empty{padding:8px 10px;color:#697586;font-size:12px}
.excel-head{display:inline-flex;align-items:center;gap:4px}
.excel-filter-btn{border:0;background:transparent;color:#6f4e16;font-size:12px;line-height:1;min-width:28px;min-height:28px;border-radius:6px;padding:0}
.excel-filter-btn.is-active{background:#fff3d6}
.excel-actions{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.excel-actions button{flex:1 1 45%;min-height:36px;border:1px solid #d7dde6;border-radius:8px;background:#fff;font:inherit;font-size:11px;font-weight:800;color:#344054}
.excel-values{display:flex;flex-direction:column;gap:2px;margin:8px 0}
.excel-values label{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:#202938;padding:6px 4px;border-radius:8px}
.excel-values label:hover{background:#f8fafc}
.excel-check{margin-top:2px;accent-color:#b88732}

.date-field{position:relative;min-width:0}
.date-field input[type="text"]{width:100%;padding-right:42px}
.date-open{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:36px;height:36px;border:0;background:transparent;color:#855c1d;display:grid;place-items:center}
.date-open svg{width:16px;height:16px;fill:currentColor}
.date-native{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}

.app-splash{position:fixed;inset:0;z-index:2000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:radial-gradient(circle at 75% 30%,#755831,#34281b 40%,#191511 75%);color:#f2d99c;text-align:center;padding:24px}
.app-splash strong{font-size:clamp(26px,4vw,34px);letter-spacing:-.6px;color:#fff}
.app-splash span{color:#d0c5b6;font-size:13px}
.splash-mark{width:64px;height:64px;display:grid;place-items:center;border:1px solid #f2d99c99;border-radius:18px;font-weight:900;font-size:28px;margin-bottom:8px}
.splash-bar{width:min(180px,60vw);height:3px;border-radius:99px;background:#ffffff22;overflow:hidden;margin-top:14px}
.splash-bar i{display:block;height:100%;width:40%;background:#e3c17f;animation:splash-move 1.1s ease-in-out infinite}
@keyframes splash-move{0%{transform:translateX(-120%)}100%{transform:translateX(320%)}}
.app-splash.is-done{opacity:0;transition:opacity .35s ease}
@media (prefers-reduced-motion:reduce){.app-splash{display:none!important}.splash-bar i{animation:none}}
@media print{.app-splash{display:none!important}}

@media (max-width:700px){
  .searchable-trigger,.date-field input[type="text"]{font-size:16px;min-height:44px}
  .transaction-filter-actions{display:flex;width:100%}
  .transaction-filter-actions button,.transaction-filter-actions a{flex:1 1 0;min-width:0;white-space:normal;text-align:center}
  .excel-panel,.searchable-panel{max-height:min(70dvh,22rem)}
}
@media (max-width:380px){
  .stats{grid-template-columns:1fr}
}
