:root { --ink:#102a52; --ink-soft:#405a7d; --paper:#f5f8fe; --surface:#ffffff; --line:#d9e3f0; --line-dark:#b8c9df; --sage:#e5efff; --sage-strong:#79a6e7; --acid:#ffd84a; --mint:#e9f2ff; --red:#b94034; --serif:"Fraunces", Georgia, serif; --sans:"Manrope", Arial, sans-serif; --mono:"DM Mono", monospace; --shadow:0 20px 60px rgba(24,65,119,.12); }
* { box-sizing:border-box; }
html { background:var(--paper); scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:var(--sans); font-size:16px; line-height:1.5; }
button, input { font:inherit; }
button, a { -webkit-tap-highlight-color:transparent; }
a { color:inherit; text-decoration:none; }
button { cursor:pointer; }
.noise { pointer-events:none; z-index:10; position:fixed; inset:0; opacity:.035; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.75'/%3E%3C/svg%3E"); }
.topbar { max-width:1340px; height:82px; margin:auto; padding:0 44px; display:flex; align-items:center; justify-content:space-between; }
.brand { display:inline-flex; align-items:center; gap:10px; font-weight:800; letter-spacing:-.045em; font-size:20px; }
.brand-mark { display:grid; place-items:center; width:30px; height:30px; color:var(--acid); background:var(--ink); border-radius:50% 50% 50% 10%; transform:rotate(-10deg); font-family:var(--serif); font-size:17px; }
.topbar nav { display:flex; align-items:center; gap:27px; font-size:13px; font-weight:700; }
.nav-link { transition:opacity .2s ease; }.nav-link:hover { opacity:.65; }.nav-admin { display:inline-flex; gap:6px; align-items:center; }
.page { min-height:calc(100vh - 82px); max-width:1340px; margin:auto; padding:32px 44px 70px; }
.home-page { display:flex; flex-direction:column; justify-content:space-between; padding-top:58px; }
.home-hero { display:grid; grid-template-columns:1.2fr .8fr; gap:9vw; align-items:center; max-width:1150px; margin:0 auto; width:100%; }
.eyebrow, .section-kicker { display:flex; gap:9px; align-items:center; margin:0 0 16px; font:500 10px/1 var(--mono); color:#52635c; letter-spacing:.12em; text-transform:uppercase; }.eyebrow span { width:22px; height:1px; background:var(--ink); }
h1,h2,h3,p { margin-top:0; } h1,h2 { letter-spacing:-.06em; } h1 { font:700 clamp(43px,5.6vw,78px)/.96 var(--serif); } h1 em { color:#668368; font-style:italic; font-weight:600; } h2 { font:700 28px/1.05 var(--serif); } 
.hero-copy h1 { margin:0 0 24px; }.hero-text { max-width:455px; color:var(--ink-soft); font-size:17px; line-height:1.65; }.button { border:0; min-height:48px; display:inline-flex; align-items:center; justify-content:center; gap:11px; padding:0 18px; border-radius:3px; font-size:13px; font-weight:800; transition:transform .18s ease, box-shadow .18s ease, background .18s ease; }.button svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }.button:hover:not(:disabled) { transform:translateY(-2px); box-shadow:0 10px 18px rgba(22,40,34,.13); }.button:focus-visible, input:focus-visible, a:focus-visible { outline:3px solid rgba(103,136,95,.5); outline-offset:3px; }.button:disabled { cursor:not-allowed; opacity:.48; }.button-primary { color:var(--ink); background:var(--acid); }.button-secondary { border:1px solid var(--line-dark); background:transparent; }.button-danger { color:#fff; background:var(--red); }.button-large { margin-top:20px; min-height:56px; padding:0 22px; }.microcopy { margin:13px 0 0; color:#718079; font-size:11px; }
.closing-card { position:relative; width:min(100%,344px); padding:26px 27px 23px; justify-self:end; background:#fffef9; box-shadow:14px 17px 0 #d5dfd2, var(--shadow); transform:rotate(2.4deg); font-family:var(--mono); }.receipt-tear { position:absolute; top:-5px; left:0; right:0; height:8px; background:linear-gradient(135deg, transparent 5px,#fffef9 0) 0 0/10px 10px repeat-x; }.receipt-head,.receipt-foot { display:flex; justify-content:space-between; color:#63726b; font-size:10px; letter-spacing:.09em; }.receipt-date { margin:27px 0 12px; font-size:10px; color:#65726c; }.receipt-date span { margin-left:13px; color:var(--ink); }.receipt-total { padding:16px 0 18px; border-top:1px dashed #c4cec3; border-bottom:1px dashed #c4cec3; }.receipt-total span { display:block; margin-bottom:4px; color:#68766e; font-size:9px; letter-spacing:.08em; }.receipt-total strong { font:500 35px/1 var(--mono); letter-spacing:-.08em; }.receipt-lines { padding:17px 0; }.receipt-lines span { display:flex; justify-content:space-between; padding:4px 0; font-size:10px; }.receipt-lines i { color:#63716a; font-style:normal; }.receipt-lines b { font-weight:500; }.receipt-foot { padding-top:14px; border-top:1px dashed #c4cec3; }.home-notes { display:grid; grid-template-columns:repeat(3,1fr); gap:42px; max-width:1150px; width:100%; margin:80px auto 0; padding-top:24px; border-top:1px solid var(--line-dark); }.home-notes article { display:flex; gap:15px; }.note-number { color:#6b866c; font:500 11px var(--mono); }.home-notes h2 { margin:0 0 7px; font:700 17px/1.1 var(--sans); letter-spacing:-.035em; }.home-notes p { margin:0; max-width:250px; color:#65736c; font-size:13px; line-height:1.55; }
.page-heading { display:flex; justify-content:space-between; align-items:flex-start; max-width:990px; margin:0 auto 45px; }.page-heading .back-link { margin-bottom:37px; }.back-link { display:inline-flex; align-items:center; gap:3px; color:#68766e; font-size:12px; font-weight:700; }.back-link svg,.records-heading a svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; transform:rotate(180deg); }.page-heading h1 { margin:0 0 11px; font-size:50px; }.page-heading > div > p:last-child { margin:0; color:#64736b; font-size:15px; }.heading-lock { display:flex; align-items:center; gap:8px; margin-top:43px; padding:7px 10px; color:#58715d; border:1px solid #c6d7c6; background:#e4eee4; font:500 10px var(--mono); }.heading-lock svg,.setup-notice svg,.attachment-legend svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }.setup-notice { max-width:990px; margin:-18px auto 25px; padding:12px 15px; display:flex; gap:10px; align-items:flex-start; border:1px solid #e4cb90; color:#72530c; background:#fff8dd; font-size:12px; }.setup-notice svg { flex:0 0 auto; margin-top:1px; }.setup-notice strong { font-weight:800; }.setup-notice code { padding:1px 4px; border-radius:2px; background:#f0e7c1; font-family:var(--mono); font-size:10px; }
#closing-form { max-width:990px; margin:auto; }.date-stage,.amount-stage,.save-stage { display:grid; grid-template-columns:76px 1fr; border-top:1px solid var(--line-dark); }.save-stage { border-bottom:1px solid var(--line-dark); }.stage-index { padding:31px 0; color:#779278; font:500 11px var(--mono); }.stage-content { padding:25px 0 31px; }.date-stage label { display:block; margin-bottom:12px; font-size:16px; font-weight:800; letter-spacing:-.035em; }.date-picker { max-width:490px; height:57px; display:grid; grid-template-columns:20px 172px 1fr; gap:11px; align-items:center; padding:0 16px; background:#fff; border:1px solid var(--line); box-shadow:0 3px 8px rgba(32,58,46,.035); }.date-picker svg { width:19px; height:19px; fill:none; stroke:#5a7560; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }.date-picker input { height:100%; min-width:0; border:0; background:transparent; color:var(--ink); font:500 12px var(--mono); outline:0; }.date-picker span { padding-left:12px; border-left:1px solid var(--line); color:#65736c; font-size:12px; }.amount-stage { opacity:.47; transition:opacity .25s ease; }.amount-stage.is-active { opacity:1; }.stage-title { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:14px; }.stage-title h2 { margin:0; font-size:24px; }.section-kicker { margin-bottom:7px; }.attachment-legend { display:flex; align-items:center; gap:5px; color:#67766f; font:500 10px var(--mono); }.payment-table { border-top:1px solid var(--line); }.payment-row { position:relative; min-height:84px; display:grid; grid-template-columns:1fr auto; align-items:center; gap:18px; border-bottom:1px solid var(--line); }.payment-label { display:flex; align-items:center; gap:13px; }.payment-icon { display:grid; place-items:center; width:31px; height:31px; color:#47674d; background:#e5eee3; border-radius:50%; font:500 15px/1 var(--serif); }.payment-label h3 { margin:0 0 1px; font-size:14px; font-weight:800; letter-spacing:-.025em; }.payment-label p { margin:0; color:#748077; font-size:11px; }.payment-controls { display:flex; align-items:center; gap:9px; }.currency-input { width:156px; height:42px; display:flex; align-items:center; padding:0 11px; border:1px solid var(--line); background:#fff; transition:border-color .2s; }.currency-input:focus-within { border-color:#668368; }.currency-input span { color:#6b7a72; font:500 11px var(--mono); }.currency-input input { width:100%; min-width:0; margin-left:7px; border:0; outline:0; color:var(--ink); background:transparent; text-align:right; font:500 15px var(--mono); }.currency-input input:disabled { cursor:not-allowed; }.upload-button { height:42px; min-width:42px; display:flex; align-items:center; justify-content:center; gap:6px; padding:0 11px; color:#527058; border:1px solid #b9ceb9; background:#e9f3e7; font-size:11px; font-weight:800; cursor:pointer; transition:background .18s; }.upload-button:hover { background:#dcebd9; }.upload-button input { position:absolute; width:1px; height:1px; opacity:0; }.upload-button input:disabled + span { opacity:.45; }.upload-button svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }.upload-button em { font-style:normal; }.no-attachment { display:grid; place-items:center; width:42px; color:#a1aaa3; }.file-previews { grid-column:1 / -1; display:flex; gap:8px; flex-wrap:wrap; margin:-3px 0 16px 44px; }.file-preview { position:relative; width:54px; height:54px; margin:0; border:1px solid var(--line-dark); background:#fff; }.file-preview img { display:block; width:100%; height:100%; object-fit:cover; }.file-preview button { position:absolute; top:-6px; right:-6px; display:grid; place-items:center; width:18px; height:18px; padding:0; border:0; border-radius:50%; color:#fff; background:var(--ink); }.file-preview svg { width:12px; height:12px; fill:none; stroke:currentColor; stroke-width:2; }.total-and-save { display:flex; justify-content:space-between; align-items:center; }.total-and-save .section-kicker { margin-bottom:6px; }.total-and-save strong { display:block; font:500 33px/1 var(--mono); letter-spacing:-.06em; }.receipt-status { margin:6px 0 0; color:#718079; font-size:11px; }.is-loading { pointer-events:none; }.spinner { display:inline-block; width:16px; height:16px; border:2px solid rgba(22,40,34,.22); border-top-color:currentColor; border-radius:50%; animation:spin .75s linear infinite; }.spinner--dark { color:var(--ink); } @keyframes spin { to { transform:rotate(360deg); } }
.success-page { display:grid; place-items:center; padding-bottom:130px; }.success-card { width:min(100%,530px); padding:43px 50px; text-align:center; border:1px solid var(--line); background:#fff; box-shadow:var(--shadow); }.success-seal { display:grid; place-items:center; width:47px; height:47px; margin:0 auto 25px; border-radius:50%; color:var(--ink); background:var(--acid); font-size:24px; }.success-card .eyebrow { justify-content:center; }.success-card h1 { margin:0 0 17px; font-size:51px; }.success-card > p:not(.eyebrow) { color:#66746d; font-size:14px; }.success-id { display:flex; justify-content:space-between; margin:28px 0; padding:13px 0; border-top:1px dashed var(--line-dark); border-bottom:1px dashed var(--line-dark); font:500 10px var(--mono); letter-spacing:.1em; }.success-id code { color:#5c765c; }.success-actions { display:flex; justify-content:center; gap:10px; }
.login-page { max-width:none; padding:0; min-height:calc(100vh - 82px); }.login-layout { display:grid; grid-template-columns:44% 56%; min-height:calc(100vh - 82px); }.login-aside { display:flex; flex-direction:column; padding:55px max(44px,calc((100vw - 1280px)/2)); color:#eaf2e6; background:var(--ink); }.login-aside .back-link { color:#b5c6b8; }.login-aside .eyebrow { margin-top:93px; color:#afc4b2; }.login-aside .eyebrow span { background:var(--acid); }.login-aside h1 { margin:0 0 25px; color:#fff; font-size:clamp(42px,4.2vw,64px); }.login-aside h1 em { color:var(--acid); }.login-aside > p { max-width:340px; color:#b7c8b9; font-size:15px; line-height:1.7; }.login-aside-line { width:58px; height:1px; margin:auto 0 20px; background:#4d6656; }.login-aside > span { color:#9eb2a2; font:10px var(--mono); letter-spacing:.09em; }.login-card { align-self:center; width:min(100% - 70px,425px); margin:auto; padding:48px; border:1px solid var(--line); background:#fff; box-shadow:var(--shadow); }.login-icon { display:grid; place-items:center; width:38px; height:38px; margin-bottom:28px; color:#567258; background:#e4eee2; border-radius:50%; }.login-icon svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; }.login-card h2 { margin:0 0 9px; font-size:28px; }.login-card > p { margin-bottom:26px; color:#65736c; font-size:13px; }.login-card .setup-notice { margin:0 0 19px; }.login-card form { display:grid; gap:16px; }.login-card label { color:#53635b; font-size:11px; font-weight:800; }.login-card input { display:block; width:100%; height:46px; margin-top:6px; padding:0 12px; border:1px solid var(--line); outline:0; color:var(--ink); background:#fff; font-size:13px; }.login-card input:focus { border-color:#668368; }.login-card .button { width:100%; margin-top:7px; }.form-error { margin:0; color:var(--red); font-size:12px; }
.admin-page { max-width:none; padding:0; min-height:100vh; background:#f6f8f4; }.admin-shell { display:grid; grid-template-columns:245px 1fr; min-height:100vh; }.admin-sidebar { position:sticky; top:0; height:100vh; display:flex; flex-direction:column; padding:29px 23px 22px; color:#eaf2e6; background:var(--ink); }.admin-sidebar .brand { color:#fff; margin-bottom:57px; }.admin-sidebar .brand-mark { color:var(--ink); background:var(--acid); }.sidebar-eyebrow { margin:0 0 12px 11px; color:#8ca38f; font:10px var(--mono); letter-spacing:.1em; }.admin-nav { display:grid; gap:3px; }.admin-nav a { display:flex; gap:11px; align-items:center; padding:11px; border-left:2px solid transparent; color:#b3c3b5; font-size:12px; font-weight:700; }.admin-nav a svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; }.admin-nav a:hover { color:#fff; }.admin-nav a.is-current { border-left-color:var(--acid); color:#fff; background:rgba(255,255,255,.075); }.sidebar-user { display:flex; gap:10px; align-items:center; margin-top:auto; padding:15px 4px 0; border-top:1px solid #3b5044; }.user-initial { display:grid; place-items:center; width:29px; height:29px; border-radius:50%; color:var(--ink); background:var(--sage-strong); font-size:12px; font-weight:800; }.sidebar-user strong { display:block; max-width:158px; overflow:hidden; color:#e7f0e8; text-overflow:ellipsis; white-space:nowrap; font-size:10px; }.sidebar-user button { display:flex; gap:4px; align-items:center; margin-top:4px; padding:0; border:0; color:#9db2a0; background:none; font-size:10px; }.sidebar-user button:hover { color:#fff; }.sidebar-user button svg { width:12px; height:12px; fill:none; stroke:currentColor; stroke-width:1.8; }.admin-content { max-width:1280px; width:100%; margin:auto; padding:46px 48px 70px; }.admin-header { display:flex; justify-content:space-between; align-items:flex-end; padding-bottom:27px; border-bottom:1px solid var(--line-dark); }.admin-header h1 { margin:0; font-size:44px; }.month-filter { display:flex; align-items:center; gap:9px; color:#718078; font:10px var(--mono); letter-spacing:.07em; text-transform:uppercase; }.month-filter input { height:37px; padding:0 8px; border:1px solid var(--line-dark); color:var(--ink); background:#fff; font:500 11px var(--mono); outline:0; }.dashboard-body { padding-top:27px; }.loading-block,.detail-loading { min-height:210px; display:flex; justify-content:center; align-items:center; gap:10px; color:#66756d; font-size:13px; }.summary-grid { display:grid; grid-template-columns:2fr repeat(4,1fr); gap:11px; }.summary-main,.summary-card { min-height:128px; padding:22px; border:1px solid var(--line); background:#fff; }.summary-main { color:var(--ink); background:var(--acid); border-color:#d5e850; }.summary-grid p { margin:0 0 17px; font:500 9px var(--mono); letter-spacing:.08em; }.summary-main strong { display:block; font:500 30px/1 var(--mono); letter-spacing:-.07em; }.summary-main span { display:block; margin-top:8px; font-size:10px; }.summary-card strong { font:500 17px/1.2 var(--mono); letter-spacing:-.05em; }.records-section { margin-top:43px; }.records-heading { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:14px; }.records-heading h2 { margin:0; font-size:26px; }.records-heading a { display:flex; gap:3px; align-items:center; color:#58735d; font-size:12px; font-weight:800; }.records-heading a svg { transform:none; }.records-table { border-top:1px solid var(--line-dark); background:#fff; }.record-header,.record-row { display:grid; grid-template-columns:135px 1fr 145px 26px; gap:15px; align-items:center; }.record-header { min-height:41px; padding:0 16px; color:#77837b; font:500 9px var(--mono); letter-spacing:.09em; }.record-row { width:100%; min-height:71px; padding:10px 16px; border:0; border-top:1px solid var(--line); color:var(--ink); background:transparent; text-align:left; transition:background .18s; }.record-row:hover { background:#f4f8f2; }.record-date b { display:block; font-size:12px; }.record-date small { display:block; margin-top:2px; color:#668368; font-size:10px; }.payment-chips { display:flex; gap:5px; flex-wrap:wrap; }.payment-chip { padding:3px 6px; color:#65736c; background:#f0f4ee; font-size:9px; }.payment-chip b { margin-left:3px; color:#405145; font-weight:700; }.record-row > strong { text-align:right; font:500 13px var(--mono); letter-spacing:-.04em; }.row-chevron svg { width:17px; height:17px; fill:none; stroke:#718078; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }.empty-state { min-height:235px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:30px; border:1px dashed var(--line-dark); color:#708078; text-align:center; }.empty-state svg { width:29px; height:29px; margin-bottom:13px; fill:none; stroke:#809080; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }.empty-state h3 { margin:0 0 4px; color:#4b5e51; font-size:14px; }.empty-state p { max-width:300px; margin:0; font-size:12px; }.full-records { margin-top:30px; }
.detail-page { max-width:1120px; padding-top:36px; }.admin-detail-top { display:flex; justify-content:space-between; align-items:center; padding-bottom:25px; border-bottom:1px solid var(--line-dark); }.detail-status { padding:5px 8px; color:#54715b; background:#e2ede0; font:500 9px var(--mono); letter-spacing:.08em; text-transform:uppercase; }.detail-header { display:flex; align-items:flex-end; justify-content:space-between; padding:38px 0; }.detail-header h1 { margin:0 0 10px; font-size:48px; }.detail-header p:last-child { margin:0; color:#69776f; font-size:12px; }.detail-total { min-width:224px; padding:17px; color:#fff; background:var(--ink); }.detail-total span { display:block; margin-bottom:7px; color:#b0c3b0; font:10px var(--mono); letter-spacing:.08em; }.detail-total strong { font:500 25px/1 var(--mono); letter-spacing:-.07em; }.detail-grid { display:grid; grid-template-columns:310px 1fr; gap:22px; }.detail-payments,.detail-receipts { padding:26px; border:1px solid var(--line); background:#fff; }.detail-section-head { margin-bottom:20px; }.detail-section-head h2 { margin:0; font-size:23px; }.detail-section-head > span { display:block; margin-top:7px; color:#718078; font-size:11px; }.detail-payment { display:flex; justify-content:space-between; align-items:center; padding:12px 0; border-top:1px solid var(--line); }.detail-payment > div { display:flex; align-items:center; gap:9px; font-size:13px; font-weight:700; }.detail-payment .payment-icon { width:27px; height:27px; font-size:12px; }.detail-payment strong { font:500 12px var(--mono); }.receipt-gallery { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }.receipt-image { display:block; overflow:hidden; border:1px solid var(--line); background:#f0f4ee; }.receipt-image img { display:block; aspect-ratio:1.15; width:100%; object-fit:cover; transition:transform .25s; }.receipt-image:hover img { transform:scale(1.04); }.receipt-image span { display:block; padding:7px; color:#5e6d64; font-size:10px; }.danger-zone { display:flex; justify-content:space-between; align-items:center; gap:25px; margin-top:52px; padding:21px 0; border-top:1px solid #d6b2ad; border-bottom:1px solid #d6b2ad; }.danger-zone h2 { margin:0 0 4px; color:#7c3029; font:700 18px var(--sans); letter-spacing:-.04em; }.danger-zone p { margin:0; color:#8a6661; font-size:11px; }.danger-zone .button { flex:0 0 auto; }
.toast-region { z-index:20; position:fixed; right:20px; bottom:20px; display:grid; gap:9px; width:min(360px,calc(100vw - 40px)); }.toast { display:flex; align-items:flex-start; gap:9px; padding:13px; color:#eff6ee; background:var(--ink); box-shadow:var(--shadow); animation:toast-in .3s ease both; font-size:12px; }.toast--error { color:#fff4f2; background:#8f352c; }.toast > span { display:grid; place-items:center; flex:0 0 auto; width:19px; height:19px; border-radius:50%; color:var(--ink); background:var(--acid); font-weight:800; }.toast--error > span { color:#8f352c; background:#fff; }.toast p { margin:1px 0 0; } @keyframes toast-in { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }.reveal { animation:reveal .65s cubic-bezier(.2,.8,.2,1) both; }.delay-1 { animation-delay:.12s; } @keyframes reveal { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:none; } }
@media (max-width:900px) { .topbar,.page { padding-left:25px; padding-right:25px; }.home-hero { gap:45px; }.closing-card { justify-self:center; }.summary-grid { grid-template-columns:repeat(2,1fr); }.summary-main { grid-column:span 2; }.detail-grid { grid-template-columns:1fr; }.admin-content { padding:35px 27px; }.admin-shell { grid-template-columns:210px 1fr; }.record-header,.record-row { grid-template-columns:112px 1fr 110px 18px; }.payment-chips { max-height:34px; overflow:hidden; }.login-aside { padding-left:30px; padding-right:30px; }.login-card { padding:37px 30px; } }
@media (max-width:680px) { .topbar { height:68px; padding:0 18px; }.topbar nav { gap:14px; font-size:11px; }.nav-link:first-child { display:none; }.page { min-height:calc(100vh - 68px); padding:30px 18px 48px; }.home-page { padding-top:35px; }.home-hero { grid-template-columns:1fr; }.hero-copy h1 { font-size:53px; }.closing-card { margin:4px auto 0; }.home-notes { grid-template-columns:1fr; gap:22px; margin-top:53px; }.page-heading { display:block; margin-bottom:30px; }.page-heading .back-link { margin-bottom:25px; }.page-heading h1 { font-size:42px; }.heading-lock { display:none; }.date-stage,.amount-stage,.save-stage { grid-template-columns:35px 1fr; }.stage-index { padding-top:28px; }.date-picker { grid-template-columns:20px 132px 1fr; padding:0 11px; }.date-picker input { font-size:10px; }.date-picker span { padding-left:7px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:10px; }.stage-title { align-items:flex-start; gap:10px; }.stage-title h2 { font-size:20px; }.attachment-legend { margin-top:6px; white-space:nowrap; }.payment-row { min-height:77px; }.payment-label { gap:8px; }.payment-label h3 { font-size:12px; }.payment-label p { max-width:110px; font-size:9px; }.currency-input { width:103px; height:38px; padding:0 7px; }.currency-input input { margin-left:3px; font-size:12px; }.upload-button { min-width:38px; height:38px; padding:0; }.upload-button em { display:none; }.no-attachment { width:38px; }.file-previews { margin-left:38px; }.total-and-save { display:block; }.total-and-save strong { font-size:29px; }.total-and-save .button { width:100%; margin-top:20px; }.receipt-status { max-width:270px; }.success-card { padding:38px 23px; }.success-card h1 { font-size:44px; }.success-actions { display:grid; }.login-page { min-height:calc(100vh - 68px); }.login-layout { grid-template-columns:1fr; min-height:calc(100vh - 68px); }.login-aside { display:none; }.login-card { width:min(100% - 36px,430px); margin:50px auto; }.admin-shell { grid-template-columns:1fr; }.admin-sidebar { position:static; height:auto; min-height:0; padding:16px 18px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:17px; }.admin-sidebar .brand { margin:0; font-size:18px; }.sidebar-eyebrow,.sidebar-user { display:none; }.admin-nav { display:flex; justify-content:flex-end; gap:3px; }.admin-nav a { padding:7px; border:0; font-size:0; }.admin-nav a svg { width:19px; height:19px; }.admin-nav a.is-current { border:0; background:rgba(255,255,255,.09); }.admin-content { padding:31px 18px 50px; }.admin-header { align-items:flex-start; gap:14px; }.admin-header h1 { font-size:37px; }.month-filter { display:grid; gap:3px; }.month-filter input { width:128px; }.summary-grid { grid-template-columns:repeat(2,1fr); gap:7px; }.summary-main,.summary-card { min-height:100px; padding:15px; }.summary-main strong { font-size:25px; }.summary-card strong { font-size:14px; }.summary-grid p { margin-bottom:12px; font-size:8px; }.records-section { margin-top:31px; }.record-header { display:none; }.record-row { grid-template-columns:88px 1fr 92px 13px; min-height:68px; padding:9px 8px; gap:6px; }.record-date b { font-size:10px; }.payment-chip { font-size:8px; }.record-row > strong { font-size:10px; }.detail-page { padding:26px 18px 48px; }.detail-header { display:block; padding:28px 0; }.detail-header h1 { font-size:38px; }.detail-total { width:100%; margin-top:21px; }.detail-payments,.detail-receipts { padding:19px; }.receipt-gallery { grid-template-columns:repeat(2,1fr); }.danger-zone { display:block; }.danger-zone .button { width:100%; margin-top:17px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; } }

/* Jupiter: azul de precisão financeira, amarelo de sinalização e uma órbita discreta na marca. */
.brand-mark { position:relative; border-radius:50%; transform:none; overflow:visible; box-shadow:inset -5px -4px 0 rgba(40,112,214,.32); }
.brand-mark::after { content:""; position:absolute; width:39px; height:12px; border:1px solid var(--acid); border-radius:50%; transform:rotate(-18deg); pointer-events:none; opacity:.9; }
.eyebrow,.section-kicker { color:#526d95; }
h1 em { color:#2e73d5; }
.button:hover:not(:disabled) { box-shadow:0 10px 18px rgba(16,42,82,.15); }
.button:focus-visible,input:focus-visible,a:focus-visible { outline-color:rgba(45,116,217,.45); }
.microcopy,.receipt-status { color:#6b7f9c; }
.closing-card { box-shadow:14px 17px 0 #cbdcf5,var(--shadow); }
.receipt-head,.receipt-foot,.receipt-date,.receipt-total span,.receipt-lines i { color:#607493; }
.receipt-total,.receipt-foot { border-color:#c8d6e8; }
.note-number { color:#2e73d5; }
.home-notes p,.back-link,.page-heading > div > p:last-child,.date-picker span,.payment-label p,.attachment-legend,.currency-input span,.success-card > p:not(.eyebrow),.login-card > p,.loading-block,.detail-loading,.month-filter,.detail-header p:last-child,.detail-section-head > span,.empty-state { color:#607493; }
.heading-lock { color:#245eac; border-color:#bed2f0; background:#e8f1ff; }
.stage-index { color:#357ad9; }
.date-picker svg { stroke:#2e73d5; }
.payment-icon { color:#245eac; background:#e7f0ff; }
.currency-input:focus-within,.login-card input:focus { border-color:#2e73d5; }
.upload-button { color:#245eac; border-color:#bdd2f2; background:#edf4ff; }
.upload-button:hover { background:#dceaff; }
.no-attachment { color:#9aabc2; }
.success-id code { color:#245eac; }
.login-aside { color:#e9f1ff; }
.login-aside .back-link { color:#b7c9e5; }
.login-aside .eyebrow { color:#a8c0e8; }
.login-aside > p { color:#c1d1e9; }
.login-aside-line { background:#45689c; }
.login-aside > span { color:#a7bee0; }
.login-icon { color:#245eac; background:#e4efff; }
.login-card label { color:#445f85; }
.admin-page { background:#f5f8fe; }
.admin-sidebar { color:#e9f1ff; }
.admin-sidebar .brand-mark { color:var(--ink); background:var(--acid); box-shadow:inset -5px -4px 0 rgba(241,177,0,.25); }
.admin-sidebar .brand-mark::after { border-color:#173b70; }
.sidebar-eyebrow { color:#9ebbe7; }
.admin-nav a { color:#bdcde4; }
.sidebar-user { border-color:#3b5e91; }
.user-initial { background:#8eb5ed; }
.sidebar-user strong { color:#e9f1ff; }
.sidebar-user button { color:#aac2e5; }
.summary-main { border-color:#f0ca3d; }
.records-heading a,.record-date small { color:#286bd0; }
.record-row:hover { background:#edf4ff; }
.record-header { color:#7184a2; }
.payment-chip { color:#5c7091; background:#edf3fc; }
.payment-chip b { color:#254b7f; }
.row-chevron svg,.empty-state svg { stroke:#7189ae; }
.empty-state h3 { color:#405b82; }
.detail-status { color:#245eac; background:#e6f0ff; }
.detail-total span { color:#b8cff1; }
.receipt-image { background:#edf3fc; }
.receipt-image span { color:#5b7093; }
.toast { color:#eff5ff; }
