:root{
  --bs-primary:#0e6b5c; --bs-primary-rgb:14,107,92; --bs-link-color:#0e6b5c; --bs-link-hover-color:#0a5246;
  --bs-body-font-family:"Public Sans","Segoe UI",system-ui,-apple-system,Roboto,sans-serif; --bs-body-bg:#eef3f1; --bs-body-color:#1c2b27;
  --bs-border-radius:.75rem; --coop-ink-soft:#5d716b; --coop-line:#dbe5e1; --coop-dark:#0b3f37;
}
body{font-size:16px;background:var(--bs-body-bg)}
.btn-primary{--bs-btn-bg:#0e6b5c;--bs-btn-border-color:#0e6b5c;--bs-btn-hover-bg:#0a5246;--bs-btn-hover-border-color:#0a5246;--bs-btn-active-bg:#0a5246;--bs-btn-disabled-bg:#0e6b5c;--bs-btn-disabled-border-color:#0e6b5c}
.btn-outline-primary{--bs-btn-color:#0e6b5c;--bs-btn-border-color:#0e6b5c;--bs-btn-hover-bg:#0e6b5c;--bs-btn-hover-border-color:#0e6b5c;--bs-btn-active-bg:#0a5246}
.btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:.4rem}
.btn-sm{min-height:36px}
.form-control,.form-select{min-height:44px}

/* shell */
.app-navbar{background:var(--coop-dark);color:#fff;height:60px;padding:0;z-index:1030}
.app-navbar .navbar-brand{color:#fff;font-weight:700}
.brand-mark{width:34px;height:34px;border-radius:10px;background:#8fe0cb;color:var(--coop-dark);display:grid;place-items:center;font-weight:800}
.avatar{width:34px;height:34px;border-radius:50%;background:#cdeee5;color:var(--coop-dark);display:grid;place-items:center;font-weight:700;font-size:.8rem}
.app-body{display:flex;min-height:calc(100vh - 60px)}
.app-sidebar{background:#fff;border-right:1px solid var(--coop-line);width:260px;flex-shrink:0}
@media (min-width:992px){.app-sidebar{position:sticky;top:60px;height:calc(100vh - 60px);overflow-y:auto}}
@media (max-width:991.98px){.app-sidebar{background:var(--coop-dark);color:#fff}.app-sidebar .nav-link{color:#cfe6e0}.app-sidebar .nav-heading{color:#8fb3aa}}
.nav-heading{font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;color:var(--coop-ink-soft);padding:.9rem .6rem .3rem}
.app-sidebar .nav-link{display:flex;align-items:center;gap:.7rem;color:#31443e;border-radius:.6rem;padding:.55rem .7rem;min-height:44px}
.app-sidebar .nav-link:hover{background:#e6f1ee}
.app-sidebar .nav-link.active{background:#d8efe8;color:var(--coop-dark);font-weight:600}
.app-main{flex:1;min-width:0;padding:1.25rem 0 5.5rem}
@media (min-width:992px){.app-main{padding:1.75rem 0 2rem}.app-main>.container-fluid{padding:0 2rem;max-width:1500px}}
.bottom-nav{display:flex;background:#fff;border-top:1px solid var(--coop-line);padding:.3rem .25rem calc(.3rem + env(safe-area-inset-bottom));z-index:1020}
.bottom-nav a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:48px;color:var(--coop-ink-soft);text-decoration:none;font-size:.7rem;border-radius:.6rem}
.bottom-nav a i{font-size:1.25rem}.bottom-nav a.active{color:var(--bs-primary);font-weight:600}

/* page */
.page-head{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between;align-items:flex-start;margin-bottom:1.1rem}
.page-head h1{font-size:1.45rem;font-weight:700;margin:0}.page-head p{margin:.25rem 0 0;color:var(--coop-ink-soft)}
.page-actions{display:flex;flex-wrap:wrap;gap:.5rem}
.card{border-color:var(--coop-line);box-shadow:0 1px 2px rgba(11,63,55,.05)}
.card-header{background:#fff;font-weight:600}
.stat-card{background:#fff;border:1px solid var(--coop-line);border-radius:1rem;padding:1rem;height:100%}
.stat-label{font-size:.78rem;color:var(--coop-ink-soft)}.stat-value{font-size:1.25rem;font-weight:700;margin-top:.15rem;word-break:break-word}
.stat-sub{font-size:.75rem;color:var(--coop-ink-soft);margin-top:.15rem}
.stat-card.hero{background:linear-gradient(135deg,#0e6b5c,#14997f);color:#fff;border:0}.stat-card.hero .stat-label,.stat-card.hero .stat-sub{color:#d6f4ec}.stat-card.hero .stat-value{font-size:1.6rem}
.stat-card.negative .stat-value{color:#b42318}
.empty-state{text-align:center;padding:3rem 1rem;color:var(--coop-ink-soft)}.empty-state i{font-size:2.5rem}
.card-row{padding:.4rem 0}.card-row .row-top{display:flex;justify-content:space-between;gap:.5rem;font-weight:600}.card-row .row-sub{font-size:.8rem;color:var(--coop-ink-soft);display:flex;justify-content:space-between;gap:.5rem;margin-top:.2rem}
.amount{font-variant-numeric:tabular-nums;white-space:nowrap}
.sticky-actions{position:sticky;bottom:calc(64px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--coop-line);padding:.75rem;margin:1rem -.75rem -.75rem;display:flex;gap:.5rem;z-index:5}
@media (min-width:992px){.sticky-actions{bottom:0}}
.sticky-actions .btn{flex:1}@media(min-width:576px){.sticky-actions .btn{flex:0 0 auto}.sticky-actions{justify-content:flex-end}}
.drawer-wide{--bs-offcanvas-width:min(560px,100vw)}.sheet-bottom{max-height:88vh;--bs-offcanvas-height:auto}
.sheet-footer{position:sticky;bottom:0;background:#fff;padding-top:.75rem;margin-top:1rem}
.kv{display:grid;grid-template-columns:1fr;gap:.15rem .75rem}.kv div{display:flex;justify-content:space-between;gap:1rem;padding:.35rem 0;border-bottom:1px dashed var(--coop-line)}.kv span:first-child{color:var(--coop-ink-soft)}
.diff-ok{color:#067647;font-weight:700}.diff-bad{color:#b42318;font-weight:700}

/* auth */
.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:1rem;background:linear-gradient(160deg,#0b3f37,#0e6b5c 55%,#14997f)}
.auth-card{width:100%;max-width:420px;background:#fff;border-radius:1.25rem;padding:1.75rem;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.auth-card .brand-mark{width:44px;height:44px;font-size:1.3rem}
.demo-box{background:#f2f8f6;border:1px dashed #9ccdc0;border-radius:.75rem;padding:.75rem;font-size:.85rem}

/* tables / DevExtreme */
.dx-datagrid{font-family:var(--bs-body-font-family)}
.dx-datagrid .dx-header-row>td{font-weight:600;color:var(--coop-ink-soft);background:#f6faf9}
.dx-widget{font-family:var(--bs-body-font-family)}
.dx-list-item-content{white-space:normal}
.dx-overlay-wrapper{z-index:2100!important}
.grid-card{background:#fff;border:1px solid var(--coop-line);border-radius:1rem;padding:.75rem}
.dx-texteditor.dx-editor-outlined{min-height:44px}
.checklist li{margin-bottom:.35rem}
.paper{background:#fff;border:1px solid var(--coop-line);border-radius:.5rem;padding:1.5rem;max-width:820px;margin:0 auto;font-family:"Times New Roman",serif;font-size:.95rem;line-height:1.55}
.paper h3{text-align:center;font-size:1.1rem;text-decoration:underline;font-weight:700}
.paper .signs{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;text-align:center;margin-top:1.25rem}.paper .sign-space{height:70px}
.chip{display:inline-block;padding:.15rem .55rem;border-radius:999px;background:#e6f1ee;font-size:.75rem}
.step-list{counter-reset:s;padding-left:0;list-style:none}.step-list li{counter-increment:s;display:flex;gap:.6rem;margin-bottom:.5rem}.step-list li:before{content:counter(s);flex:0 0 26px;height:26px;border-radius:50%;background:#d8efe8;color:var(--coop-dark);display:grid;place-items:center;font-weight:700;font-size:.8rem}
@media print{.app-navbar,.app-sidebar,.bottom-nav,.page-head .page-actions,.no-print{display:none!important}.app-main{padding:0}body{background:#fff}.paper{border:0}}

@media (max-width:575.98px){.stat-value{font-size:1.02rem}.stat-card.hero .stat-value{font-size:1.25rem}.stat-card{padding:.8rem}.page-head h1{font-size:1.25rem}}
.dx-form-group-caption{font-size:1rem!important;font-weight:600!important}

/* sign-in and password pages: one column, one card with the logo and the form */
.auth-page{min-height:100vh;display:grid;place-items:center;padding:1.5rem 1rem;background:linear-gradient(165deg,#f1f7f5,#dcebe6)}
.auth-panel{width:100%;max-width:440px;background:#fff;border-radius:1.1rem;padding:2rem 1.75rem 1.75rem;box-shadow:0 18px 45px rgba(14,107,92,.18),0 3px 10px rgba(0,0,0,.08)}
.auth-brand{text-align:center;margin-bottom:1.5rem}
.auth-logo{width:96px;height:auto;display:block;margin:0 auto .75rem}
.auth-brand-name{font-weight:700;font-size:1.15rem;color:var(--coop-dark)}
.auth-tagline{color:#5b6f69;margin:.15rem 0 0;font-size:.92rem}
@media (max-width:575.98px){.auth-page{align-items:start;padding-top:1.25rem}.auth-panel{padding:1.5rem 1.15rem}}

/* DevExtreme popups: scroll long forms inside the popup; align default buttons with the app palette */
.dx-popup-normal .dx-popup-content, .dx-popup-fullscreen .dx-popup-content{overflow-y:auto;-webkit-overflow-scrolling:touch}
.dx-button-mode-contained.dx-button-default{background-color:var(--bs-primary);border-color:var(--bs-primary)}
.dx-button-mode-contained.dx-button-default.dx-state-hover{background-color:#0a5246}
.dx-button-mode-outlined.dx-button-danger{color:#b42318;border-color:#b42318}

/* Epsylon logo */
.brand-logo{height:34px;width:auto;background:#fff;border-radius:10px;padding:5px 7px}

/* agreement preview (A4-like page) */
.paper{max-width:794px;padding:2.2rem 2.6rem}
.agreement-line{margin:0 0 .35rem;font-size:.95rem}
.agreement-line.align-center{text-align:center}.agreement-line.align-right{text-align:right}.agreement-line.align-justify{text-align:justify}.agreement-line.indented{padding-left:1.5rem}
.agreement-table{width:100%;margin:.5rem 0}.agreement-table td{width:50%;text-align:center;padding:.15rem;height:2.2rem;vertical-align:bottom}.agreement-table tr:nth-child(2) td{height:4rem}

/* printable reports */
@media print{.grid-card{border:0;box-shadow:none;padding:0}.report-sheet{font-size:.85rem}.table{font-size:.8rem}}

/* Phones: every button, field and select is a comfortable tap target (spec 9.2: at least 44 px). */
@media (max-width:575.98px){.btn,.btn-sm,.btn-lg,.form-control,.form-select{min-height:44px}.btn-sm{padding-top:.5rem;padding-bottom:.5rem}.form-check-input{width:1.35em;height:1.35em}}
