:root{--navy:#173d63;--blue:#2c6ea1;--green:#43835c;--purple:#75579b;--gold:#a87b24;--bg:#f3f6f9;--line:#dfe7ee}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;color:#16283a;background:var(--bg);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
button,a{font:inherit}
[hidden]{display:none!important}
.app-shell{min-height:100vh;padding:26px clamp(14px,3vw,44px) 40px}
.topbar{position:relative;background:linear-gradient(135deg,#153a5d,#1d4d78);border-radius:22px;color:#fff;padding:26px 30px;display:flex;justify-content:space-between;gap:24px;align-items:center;box-shadow:0 14px 35px #153a5d24}
.topbar h1{max-width:760px;margin:0;font-size:clamp(22px,3vw,34px);line-height:1.15}
.top-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.top-action,.logout{border:1px solid #ffffff66;background:#ffffff18;color:#fff;border-radius:12px;padding:11px 15px;font-size:12px;font-weight:800;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.top-action:hover,.logout:hover{background:#ffffff2a}
.logout{padding:11px 13px}
.expenses-menu{position:relative}
.expenses-popover{position:absolute;right:0;top:calc(100% + 10px);z-index:20;width:min(390px,calc(100vw - 28px));background:#fff;color:#1d3347;border:1px solid #d8e2eb;border-radius:16px;padding:16px;box-shadow:0 20px 50px #071c3050}
.expenses-close{position:absolute;right:10px;top:8px;width:29px;height:29px;border:0;border-radius:50%;background:#edf2f6;color:#29445d;font-size:20px;line-height:1;cursor:pointer}
.expenses-popover>strong{display:block;color:var(--navy);font-size:15px;padding-right:32px}
.expenses-popover>span{display:block;color:#6a7c8e;font-size:11px;margin:3px 0 12px;padding-right:32px}
.expenses-popover>div{display:grid;gap:7px;max-height:320px;overflow:auto}
.expenses-popover a{display:block;padding:10px 11px;border-radius:10px;background:#edf3f8;color:#174d78;text-decoration:none;font-size:12px;font-weight:750;border:1px solid #d9e5ee}
.kpis{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px;margin:18px 0}
.kpis article{background:var(--navy);color:#fff;border-radius:18px;padding:17px 18px;box-shadow:0 8px 24px #173d6312}
.kpis article.blue{background:var(--blue)}.kpis article.green{background:var(--green)}.kpis article.purple{background:var(--purple)}.kpis article.gold{background:var(--gold)}
.kpis span{display:block;text-transform:uppercase;letter-spacing:.05em;font-size:10px;font-weight:700;opacity:.85}
.kpis strong{display:block;font-size:clamp(20px,2vw,29px);margin-top:6px}
.panel{background:#fff;border:1px solid #e1e7ed;border-radius:22px;box-shadow:0 10px 30px #263e5510;overflow:hidden}
.panel-heading{padding:19px 22px;display:flex;justify-content:space-between;align-items:flex-end;gap:20px;border-bottom:1px solid var(--line)}
.panel-heading h2{margin:0;font-size:19px}.panel-heading p{margin:4px 0 0;color:#647589;font-size:13px}.update{font-size:12px;color:#647589;white-space:nowrap}
.table-wrap{overflow:auto;max-height:calc(100vh - 310px)}
table{width:100%;border-collapse:separate;border-spacing:0;min-width:1850px;font-size:12px}
th{position:sticky;top:0;z-index:2;background:#dce7f1;color:#203549;padding:11px 9px;text-align:center;border-right:1px solid #c7d3df;border-bottom:1px solid #b9c9d8;white-space:nowrap}
th.andrew{background:#ffe69a;color:#775a00}
td{padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;text-align:center;white-space:nowrap}
td.name,th.name{text-align:left;min-width:255px;font-weight:650}.money{text-align:right}
.status{display:inline-flex;padding:5px 8px;border-radius:999px;font-weight:800;font-size:10px}.paid{background:#e2f0d9;color:#237318}.partial{background:#dcebf8;color:#235b86}.scheduled{background:#fff2cc;color:#8a6200}.installments{background:#e7dff1;color:#71469b}.pending{background:#edf0f3;color:#65717c}
.details{border:0;background:none;color:#25649a;font-weight:700;font-size:11px;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.andrew-cell.recorded{background:#e8f4df}.andrew-cell.future{background:#fff9e8}
tfoot td{position:sticky;bottom:0;background:#e4f0dc;font-weight:800;border-top:1px solid #8db975}
.access-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at top,#e5eef6,#f3f6f9 55%)}
.access-card{width:min(460px,100%);background:#fff;border:1px solid #dce5ed;border-radius:24px;padding:34px;box-shadow:0 22px 60px #173d6324}
.access-kicker{font-size:11px;letter-spacing:.14em;font-weight:850;color:#4779a5}.access-card h1{margin:8px 0 5px;color:var(--navy);font-size:27px;line-height:1.15}.access-card p{margin:0 0 25px;color:#65788a}.access-card label{display:block;color:#344d64;font-size:13px;font-weight:750}.access-card input{display:block;width:100%;margin-top:7px;border:1px solid #bccddd;border-radius:12px;padding:13px 14px;font:inherit;outline:none}.access-card input:focus{border-color:#4779a5;box-shadow:0 0 0 3px #4779a51c}.access-button{width:100%;margin-top:15px;border:0;border-radius:12px;padding:13px;background:var(--navy);color:#fff;font-weight:800;cursor:pointer}.access-error{margin-top:11px;color:#a62c2c;background:#fff0f0;border-radius:9px;padding:9px 11px;font-size:12px;font-weight:700}
.modal-backdrop{position:fixed;inset:0;background:#0c2034a8;backdrop-filter:blur(5px);z-index:50;display:grid;place-items:center;padding:18px}.modal{width:min(680px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:22px;padding:25px;box-shadow:0 24px 70px #06172866;position:relative}.close{position:absolute;right:15px;top:12px;width:36px;height:36px;border:0;border-radius:50%;background:#edf2f6;color:#29445d;font-size:25px;cursor:pointer}.modal-kicker{display:block;color:#67809a;text-transform:uppercase;font-size:11px;letter-spacing:.08em;font-weight:800;padding-right:42px}.modal h2{margin:5px 42px 18px 0;font-size:24px;color:var(--navy)}.detail-box{background:#f2f6f9;border:1px solid #dae4ec;border-radius:14px;padding:18px;white-space:pre-wrap;line-height:1.55}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.detail-grid>div{background:#f4f7fa;border:1px solid #dee6ed;border-radius:13px;padding:13px}.detail-grid span{display:block;color:#6e7e8e;font-size:11px;margin-bottom:5px}.detail-grid strong{font-size:14px}.detail-grid .wide{grid-column:1/-1}
@media(max-width:900px){.topbar{align-items:flex-start;flex-direction:column}.top-actions{width:100%;justify-content:flex-start}.kpis{grid-template-columns:repeat(2,1fr)}.panel-heading{align-items:flex-start;flex-direction:column}.table-wrap{max-height:none}}
@media(max-width:600px){.app-shell{padding:12px}.topbar{padding:20px}.top-actions{display:grid;grid-template-columns:1fr 1fr}.top-action,.logout{justify-content:center}.expenses-popover{right:auto;left:0}.access-card{padding:26px}.access-card h1{font-size:23px}.kpis{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}}
