:root{--navy:#12365b;--blue:#1557a0;--blue-dark:#0b315f;--paper:#f4f6f8;--white:#fff;--ink:#162536;--muted:#6e7e8e;--line:#dce3ea;--amber:#f5c64b;--green:#17694a;--red:#b33d39;--shadow:0 18px 50px rgba(20,44,69,.09);--radius:18px;--gutter:clamp(18px,4vw,54px)}
*{box-sizing:border-box}html{min-height:100%;background:var(--paper)}body{margin:0;color:var(--ink);font:15px/1.5 "Aptos","Segoe UI",Arial,sans-serif;background:var(--paper);min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.page-shell{width:min(100% - 2*var(--gutter),1440px);margin:0 auto}.topbar{height:82px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:18px}.brand img{width:210px;max-height:50px;object-fit:contain}.brand-divider{height:30px;width:1px;background:#c9d3dc}.brand-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--blue)}.user-bar{display:flex;align-items:center;gap:18px}.user-email{font-size:12px;color:var(--muted)}
.button{min-height:43px;padding:0 16px;border-radius:9px;border:1px solid transparent;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:9px;transition:background .15s,border-color .15s,transform .15s}.button:hover{transform:translateY(-1px)}.button-primary{background:var(--blue);color:#fff}.button-primary:hover{background:var(--blue-dark)}.button-quiet{color:var(--navy);background:transparent;border-color:var(--line)}.button-quiet:hover,.button-outline:hover{background:#edf3f8}.button-outline{background:#fff;border-color:var(--line);color:var(--navy)}.button-danger{background:#fff4f3;border-color:#f2cbc8;color:var(--red)}.button-full{width:100%;margin-top:10px}.plus{font-size:18px;font-weight:400;line-height:1}
.notice{margin:28px 0;padding:16px 18px;border-radius:12px;display:flex;align-items:flex-start;gap:13px}.notice-setup{background:#fff8e3;border:1px solid #eed68e;color:#604900}.notice-error{background:#fff0ef;border:1px solid #eec1bd;color:#842c28}.notice p{margin:3px 0 0;font-size:12px;line-height:1.55}.notice code{background:rgba(0,0,0,.06);padding:2px 5px;border-radius:4px}.notice-mark{width:24px;height:24px;flex:0 0 24px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:13px}
.login-panel{display:grid;grid-template-columns:1fr minmax(330px,440px);gap:clamp(45px,10vw,150px);align-items:center;max-width:1040px;min-height:calc(100vh - 170px);margin:0 auto;padding:60px 0}.login-copy{padding:35px 0}.eyebrow{margin:0 0 13px;color:var(--blue);font:700 10px/1.4 "Segoe UI",Arial,sans-serif;letter-spacing:.15em;text-transform:uppercase}.login-copy h1{margin:0;font:800 clamp(52px,7vw,88px)/.9 "Segoe UI",Arial,sans-serif;letter-spacing:-.065em;color:var(--navy)}.login-copy h1 span{color:var(--blue)}.login-lead{max-width:470px;margin:24px 0;color:var(--muted);font-size:16px;line-height:1.75}.login-points{display:grid;gap:12px;margin-top:35px;color:#43566a;font-size:12px}.login-points span{display:flex;align-items:center;gap:13px}.login-points b{font:700 10px monospace;color:#a27b12}.login-card{padding:34px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.login-card h2{margin:0 0 25px;color:var(--navy);font-size:27px;letter-spacing:-.04em}.login-card label,.entry-form label{display:grid;gap:7px;margin:14px 0 8px;font-size:11px;font-weight:700;color:#43566a}.login-card input,.entry-form input,.entry-form select,.entry-form textarea,.filters input,.filters select{width:100%;min-height:43px;padding:10px 12px;border:1px solid #d6dfe7;border-radius:8px;background:#fff;color:var(--ink);outline:none}.login-card input:focus,.entry-form input:focus,.entry-form select:focus,.entry-form textarea:focus,.filters input:focus,.filters select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(21,87,160,.12)}.login-footnote{margin:16px 0 0;color:var(--muted);font-size:10px;line-height:1.6}.form-error{margin:11px 0 0;color:var(--red);font-size:12px}.form-error:not([hidden]){display:block}
.page-heading{display:flex;justify-content:space-between;align-items:end;gap:25px;padding:38px 0 23px}.page-heading h1{margin:0;color:var(--navy);font-size:clamp(32px,4vw,46px);line-height:1.1;letter-spacing:-.05em}.heading-note{margin:9px 0 0;color:var(--muted);font-size:13px}.page-heading .eyebrow{margin-bottom:8px}.summary-grid{display:grid;grid-template-columns:1.3fr repeat(3,1fr);gap:14px}.summary-card{min-height:126px;padding:20px 22px;background:#fff;border:1px solid var(--line);border-radius:13px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.summary-main{background:var(--navy);border-color:var(--navy);color:#fff}.card-label{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.summary-main .card-label{color:#bdcddd}.summary-card strong{margin-top:6px;font-size:27px;line-height:1.1;letter-spacing:-.04em;color:var(--navy)}.summary-main strong{font-size:34px;color:#fff}.card-caption{margin-top:5px;color:var(--muted);font-size:10px}.summary-main .card-caption{color:#bdcddd}.summary-muted{background:#f9fafb}
.records-panel{margin:25px 0 0;padding:22px;background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 8px 30px rgba(20,44,69,.035)}.records-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.records-heading h2{margin:0;color:var(--navy);font-size:19px;letter-spacing:-.03em}.records-heading p{margin:4px 0 0;color:var(--muted);font-size:11px}.filters{display:flex;gap:10px;margin:20px 0 15px}.search-field{position:relative;flex:1;max-width:550px}.search-field input{padding-left:37px}.search-icon{position:absolute;left:12px;top:8px;color:#8090a0;font-size:21px}.select-field{width:min(235px,40%)}.filters select{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%2355687d' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 13px center;padding-right:34px}.table-wrap{width:100%;overflow:auto}.records-table{width:100%;border-collapse:collapse;min-width:920px}.records-table th{padding:12px 10px;background:#f0f4f8;border-bottom:1px solid #dce4ec;color:#5c7083;text-align:left;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.records-table th:first-child{border-radius:8px 0 0 8px}.records-table th:last-child{border-radius:0 8px 8px 0}.records-table td{padding:13px 10px;border-bottom:1px solid #edf0f3;vertical-align:top;color:#2c3d4e;font-size:11px}.records-table tr:last-child td{border-bottom:0}.records-table tr:hover td{background:#fbfcfd}.records-table td[data-label="Date"]{white-space:nowrap;color:#66798b}.records-table td[data-label="Partner"]{font-weight:700;color:var(--navy);min-width:140px}.records-table td[data-label="Contribution type"]{white-space:nowrap}.records-table td[data-label="Description"]{min-width:170px;font-weight:600}.records-table td[data-label="Amount"]{text-align:right;white-space:nowrap;font-weight:800;color:var(--navy)}.records-table td[data-label="Reference / notes"]{max-width:230px;color:#748392}.record-actions{display:flex;justify-content:flex-end;gap:6px;white-space:nowrap}.row-action{min-height:30px;padding:0 8px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--blue);font-size:10px;font-weight:700}.row-action:hover{background:#f1f6fb}.row-action.delete{color:var(--red)}.record-count-note{margin:12px 0 0;color:var(--muted);font-size:10px}.loading-state,.empty-state{padding:55px 15px;text-align:center;color:var(--muted);font-size:12px}.spinner{display:inline-block;width:16px;height:16px;margin-right:8px;vertical-align:-3px;border:2px solid #cad6e1;border-top-color:var(--blue);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-icon{display:inline-grid;width:44px;height:44px;place-items:center;border-radius:13px;background:#edf3f8;color:var(--blue);font-size:24px}.empty-state h3{margin:11px 0 4px;color:var(--navy);font-size:17px}.empty-state p{margin:0 0 15px}.data-note{margin:13px 0;color:var(--muted);font-size:10px}.data-note span{color:var(--green);font-size:8px;margin-right:5px}.footer{display:flex;justify-content:space-between;margin-top:38px;padding:17px 0 24px;border-top:1px solid var(--line);color:#8593a0;font:700 9px monospace;letter-spacing:.1em}.footer span:last-child{font-weight:500;letter-spacing:.03em}
.entry-dialog{width:min(640px,calc(100% - 24px));max-height:calc(100% - 24px);padding:0;border:0;border-radius:16px;background:#fff;color:var(--ink);box-shadow:0 25px 85px rgba(8,30,52,.25)}.entry-dialog::backdrop{background:rgba(9,28,46,.56);backdrop-filter:blur(2px)}.entry-form{padding:26px}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:17px}.dialog-heading h2{margin:0;color:var(--navy);font-size:25px;letter-spacing:-.04em}.icon-button{width:36px;height:36px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#526476;font-size:22px;line-height:1}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 15px}.form-grid label{margin:9px 0 7px}.form-span-2{grid-column:1/-1}.entry-form textarea{resize:vertical;min-height:80px}.optional{font-weight:400;color:#8793a0}.dialog-actions{display:flex;align-items:center;gap:8px;margin-top:22px}.actions-spacer{flex:1}.toast{position:fixed;z-index:10;right:24px;bottom:24px;max-width:min(400px,calc(100% - 32px));padding:13px 17px;border-radius:10px;background:var(--navy);color:#fff;font-size:12px;box-shadow:var(--shadow);opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .2s,transform .2s}.toast.show{opacity:1;transform:translateY(0)}.toast.error{background:#8c302d}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:900px){.summary-grid{grid-template-columns:repeat(2,1fr)}.summary-main{grid-column:span 2}.login-panel{gap:45px}.records-panel{padding:18px}}
@media(max-width:640px){:root{--gutter:16px}.topbar{height:68px}.brand{gap:10px}.brand img{width:145px;max-height:42px}.brand-divider{height:25px}.brand-label{font-size:9px}.user-bar{gap:8px}.user-email{display:none}.button{min-height:41px;padding:0 12px;font-size:11px}.login-panel{display:flex;min-height:auto;flex-direction:column;align-items:stretch;gap:17px;padding:34px 0}.login-copy{padding:12px 0 0}.login-copy h1{font-size:54px}.login-lead{margin:13px 0;font-size:13px}.login-points{display:none}.login-card{padding:23px}.page-heading{align-items:flex-start;flex-direction:column;padding:28px 0 18px}.page-heading h1{font-size:37px}.page-heading>.button{width:100%}.heading-note{font-size:12px}.summary-grid{gap:9px}.summary-card{min-height:102px;padding:14px}.summary-card strong{font-size:22px}.summary-main strong{font-size:29px}.card-label{font-size:9px}.card-caption{font-size:9px}.records-panel{padding:15px 12px;margin-top:16px}.records-heading{align-items:flex-start}.records-heading h2{font-size:17px}.records-heading p{max-width:235px}.records-heading .button{font-size:10px;padding:0 9px}.filters{flex-direction:column}.search-field,.select-field{width:100%;max-width:none}.records-table{min-width:0;display:block}.records-table thead{display:none}.records-table tbody{display:grid;gap:10px}.records-table tr{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:10px;overflow:hidden}.records-table td{display:flex;flex-direction:column;gap:3px;padding:9px 10px;border-bottom:0;font-size:10px;min-width:0!important;max-width:none!important;white-space:normal!important;text-align:left!important}.records-table td::before{content:attr(data-label);color:#8793a0;font-size:8px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.records-table td[data-label="Partner"],.records-table td[data-label="Description"],.records-table td[data-label="Reference / notes"]{grid-column:1/-1}.records-table td[data-label="Amount"]{color:var(--navy)}.records-table td[data-label="Actions"]{grid-column:1/-1;flex-direction:row;justify-content:flex-end;border-top:1px solid #edf0f3;padding-top:8px}.records-table td[data-label="Actions"]::before{content:""}.record-actions{width:100%}.record-actions .row-action{flex:1}.footer{margin-top:24px;font-size:8px}.entry-dialog{width:100%;height:100%;max-height:100%;margin:auto 0 0;border-radius:16px 16px 0 0}.entry-form{padding:22px 18px calc(20px + env(safe-area-inset-bottom))}.form-grid{grid-template-columns:1fr}.form-span-2{grid-column:auto}.dialog-actions{flex-wrap:wrap}.dialog-actions .button{flex:1}.actions-spacer{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

.text-link{display:block;margin:9px 0 14px auto;padding:0;border:0;background:none;color:var(--blue);font:600 11px 'Segoe UI',Arial,sans-serif;text-decoration:underline;cursor:pointer}.text-link:disabled{opacity:.65;cursor:wait}
