:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#e6edf5;background:#0b1220;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh}a{color:#80d3e4;text-decoration:none}a:hover{text-decoration:underline}header{display:flex;align-items:center;gap:32px;padding:16px max(24px,calc((100vw - 1200px)/2));background:#111d2e;color:#e6edf5;min-height:72px}header a{color:#dbeaf5}.brand{font-weight:800;font-size:23px;letter-spacing:-.05em;white-space:nowrap;color:#76d5e0}.brand span{color:#172638}nav{display:flex;gap:20px;flex:1}nav a{font-size:14px;padding:7px 0;white-space:nowrap}nav a.active{color:#172638;border-bottom:2px solid #76d5e0}header form{margin:0}.text-button{border:0;background:transparent;color:#dbeaf5;cursor:pointer;font-size:13px}main{max-width:1200px;margin:auto;padding:36px 24px 80px}.narrow{max-width:900px}.page-head,.card-head,.card-subhead{display:flex;justify-content:space-between;align-items:center;gap:16px}.page-head{margin-bottom:24px}.eyebrow{display:block;color:#a6b8c8;text-transform:uppercase;font-weight:800;letter-spacing:.14em;font-size:12px;margin-bottom:7px}h1{font-size:clamp(30px,4vw,46px);line-height:1.1;margin:0 0 26px;letter-spacing:-.04em}h2{font-size:19px;margin:0 0 18px;letter-spacing:-.025em}h3{font-size:15px}.actions,.form-actions{display:flex;gap:10px;flex-wrap:wrap}button,.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid #3a5368;border-radius:10px;background:#172638;color:#e6edf5;font:inherit;font-weight:700;font-size:14px;padding:11px 16px;cursor:pointer}.primary{background:#0f7590;color:white;border-color:#0f7590}.button:hover,button:hover{filter:brightness(.95);text-decoration:none}.hero{display:grid;grid-template-columns:1fr 1.3fr;align-items:center;gap:24px;background:linear-gradient(120deg,#183247,#1d4e61);color:#172638;border-radius:20px;padding:30px 34px;margin-bottom:22px;min-height:230px}.hero span,.hero small{display:block;color:#b5d2e2}.hero strong{display:block;font-size:clamp(38px,5vw,62px);letter-spacing:-.06em;margin:10px 0}.chart{width:100%;height:170px}.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:20px}.card{background:#172638;border:1px solid #2b4054;border-radius:18px;padding:24px;box-shadow:0 8px 30px #00000024;margin-bottom:20px}.list-row{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 0;border-top:1px solid #2b4054;color:#e6edf5}.list-row:first-child{border-top:0}.list-row small{display:block;color:#a6b8c8;margin-top:3px}.list-row strong{white-space:nowrap}.muted{color:#a6b8c8}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left}th,td{padding:14px 12px;border-bottom:1px solid #2b4054;white-space:nowrap}th{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#a6b8c8}td{font-size:14px}tr:last-child td{border-bottom:0}.badge{display:inline-block;background:#183c4b;color:#a3e9ed;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:800}.back{display:inline-block;margin-bottom:24px}label{display:block;font-size:13px;font-weight:750;color:#b4c5d4;margin:0 0 18px}input,select,textarea{display:block;width:100%;font:inherit;color:#e6edf5;background:#101b2b;border:1px solid #3a5368;border-radius:10px;padding:11px 12px;margin-top:7px}input:focus,select:focus,textarea:focus{outline:2px solid #70bad0;border-color:#0f7590}input:disabled,select:disabled,textarea:disabled{background:#243345;color:#a6b8c8}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.upload-box{border:1px dashed #4b7184;background:#142838;padding:18px;border-radius:14px;margin:8px 0 24px}.upload-box p{font-size:13px;color:#a6b8c8}.upload-box input{background:#172638;margin-bottom:12px}.upload-box button{margin-bottom:8px}.card-subhead{margin:20px 0 4px}.card-subhead h2{margin:0}.item-row{display:grid;grid-template-columns:2fr 1fr 1.5fr auto;gap:10px;align-items:end;border-top:1px solid #2b4054;padding:12px 0}.item-row label{margin:0}.item-row button{margin-bottom:0}.allocation-preview{margin:24px 0}.review-card{background:#183c4b}.review-card form{display:flex;gap:10px}.user-form{padding:16px 0;border-top:1px solid #2b4054}.check{display:flex;align-items:center;gap:10px}.check input{width:auto;margin:0}.login-page{display:grid;place-items:center;background:radial-gradient(circle at top left,#21445a,#111d2e 55%)}.login-card{width:min(430px,calc(100% - 32px));background:#172638;border-radius:22px;padding:34px;box-shadow:0 24px 80px #0003}.login-card .brand span{color:#111d2e}.login-card h1{margin:28px 0 12px}.login-card p{color:#a6b8c8;margin-bottom:24px}.login-card button{width:100%}.alert{background:#442820;border:1px solid #925443;color:#ffb4a0;padding:12px;border-radius:8px;margin-bottom:16px}@media(max-width:750px){header{padding:14px 18px;flex-wrap:wrap;gap:10px}header nav{order:3;width:100%;overflow:auto;gap:17px}header form{margin-left:auto}main{padding:26px 16px 60px}.page-head{align-items:start;flex-direction:column}.hero,.grid-two{grid-template-columns:1fr}.hero{padding:24px}.item-row{grid-template-columns:1fr 1fr}.item-row label:first-child{grid-column:1/-1}.form-grid{grid-template-columns:1fr}.card{padding:18px}}

.audit-row{border-top:1px solid #2b4054;padding:12px 0}.audit-row summary{cursor:pointer;color:#b4c5d4;font-size:13px}.audit-row div{padding:12px;background:#101b2b;border-radius:8px;margin-top:8px}.audit-row pre{white-space:pre-wrap;overflow-wrap:anywhere;font:12px ui-monospace,monospace;color:#b4c5d4}

.alert[hidden]{display:none}
.success{background:#173d32;border:1px solid #3d8068;color:#b4f0cf;padding:12px;border-radius:8px;margin-bottom:16px}
.entry-meta{margin:-10px 0 20px;color:#a6b8c8;font-size:14px}
.page-head .entry-meta{margin:0}
.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 30px;margin:0}
.detail-grid div{min-width:0}
.detail-grid dt{color:#a6b8c8;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:7px}
.detail-grid dd{margin:0;overflow-wrap:anywhere}
.detail-grid .detail-wide{grid-column:1/-1}
.detail-amount{font-size:26px;font-weight:800}
.detail-note{white-space:pre-wrap}
@media(max-width:600px){.detail-grid{grid-template-columns:1fr}}
.member-combobox{position:relative;min-width:0;align-self:start}
.member-combobox .field-label{display:block;font-size:13px;font-weight:750;color:#b4c5d4;margin-bottom:7px}
.member-field{display:flex;align-items:center;flex-wrap:wrap;gap:5px;min-height:44px;padding:5px 9px;margin-top:7px;background:#101b2b;border:1px solid #3a5368;border-radius:10px;cursor:text}
.member-field:focus-within{outline:2px solid #70bad0;border-color:#0f7590}
.member-field:has(.member-search:disabled){background:#243345;cursor:default}
.member-chips{display:contents}
.member-chip{flex:none;padding:3px 7px;border:1px solid #3d6973;border-radius:999px;background:#183c4b;color:#a3e9ed;font-size:11px;font-weight:600}
.member-search{flex:1 1 90px;width:90px;min-width:70px;margin:0;padding:4px 2px;border:0;background:transparent;border-radius:0;outline:0;font-size:13px}
.member-search:focus{outline:0;border:0}
.member-search:disabled{background:transparent}
.member-arrow{flex:none;color:#b4c5d4;pointer-events:none}
.member-option:focus-visible,.member-chip:focus-visible{outline:2px solid #0f7590;outline-offset:2px}
.member-popup{position:absolute;z-index:10;top:calc(100% + 4px);left:0;width:100%;min-width:min(250px,85vw);padding:6px;background:#172638;border:1px solid #3a5368;border-radius:12px;box-shadow:0 12px 32px #00000055}
.member-popup[hidden]{display:none}
.member-options{max-height:205px;overflow-y:auto}
.member-option{display:block;width:100%;text-align:left;border:0;border-radius:6px;padding:8px 10px;font-weight:500}
.member-option[aria-selected="true"]{background:#183c4b;color:#a3e9ed;font-weight:700}
.member-options .muted{padding:5px 10px;margin:0}
.user-filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.user-filters label{flex:1 1 220px;margin:0}
.user-filters label:nth-child(2){flex:0 1 170px}
.user-filters button{margin-bottom:0}
.user-count{color:#a6b8c8;font-size:13px;margin:14px 0 4px}
.user-list-row{display:grid;grid-template-columns:minmax(0,1fr) 90px 90px auto;align-items:center;gap:16px;padding:13px 0;border-bottom:1px solid #2b4054}
.user-list-name{min-width:0;overflow-wrap:anywhere}
.user-list-role{color:#b4c5d4;font-size:14px}
.user-list-row .badge{justify-self:start}
.badge-inactive{background:#2b3442;color:#b4c5d4}
.user-list-row .button{padding:8px 12px}
.restore-form{display:flex;align-items:center;gap:8px;margin:0}
.restore-form input{min-width:190px;margin:0}
.restore-form button{padding:8px 12px}
.danger{background:#73352e;border-color:#a85d52;color:#fff}
.remove-user-form{border-color:#73423c}
.user-pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding-top:20px;color:#a6b8c8;font-size:13px}
@media(max-width:600px){.user-filters label,.user-filters label:nth-child(2){flex:1 1 100%}.user-filters button{width:100%}.user-list-row{grid-template-columns:minmax(0,1fr) auto;gap:7px 12px}.user-list-name{grid-column:1}.user-list-row .button{grid-column:2;grid-row:1/3}.user-list-role{grid-column:1;grid-row:2}.user-list-row .badge{grid-column:1;grid-row:3}.user-pagination{justify-content:space-between;flex-wrap:wrap}}
@media(max-width:600px){.user-list-row .restore-form{grid-column:1/-1;flex-wrap:wrap}.restore-form input{flex:1 1 190px}}

/* Account link and dark surface refinements. */
.brand{display:inline-flex;align-items:center;gap:8px}
.brand img{display:block;width:34px;height:34px;object-fit:contain;flex:none}
.login-card .brand img{width:42px;height:42px}
.brand span,.login-card .brand span,.hero,nav a.active{color:#f4f8fc}
.account-link{display:inline-block;max-width:min(22vw,220px);overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.account-actions{min-width:0}
.account-actions{display:flex;align-items:center;gap:18px;white-space:nowrap}
.account-link{color:#dbeaf5;font-size:14px;font-weight:700;padding:7px 0}
.account-link:hover,.account-link:focus-visible{color:#fff}
.account-link.active{color:#fff;border-bottom:2px solid #76d5e0}
.text-button{padding:7px 0}
.amount-income{color:#b4f0cf}
.amount-expense{color:#ffb4a0}
.item-totals{display:flex;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;margin:12px 0 22px;padding:14px 16px;border:1px solid #2b4054;border-radius:10px;background:#101b2b;color:#b4c5d4;font-size:14px}
.item-totals strong{display:block;margin-top:4px;color:#e6edf5;font-size:18px}
.item-totals .item-difference-match{color:#b4f0cf}
.item-totals .item-difference-mismatch{color:#ffb4a0}
button:focus-visible,.button:focus-visible,a:focus-visible{outline:2px solid #76d5e0;outline-offset:3px}
@media(max-width:750px){header .account-actions{margin-left:auto;gap:14px}header .account-actions form{margin-left:0}.account-link{max-width:35vw}}

/* Font Awesome duotone accents. Labels remain visible beside decorative icons. */
.fa-duotone,.svg-inline--fa{--fa-primary-color:currentColor;--fa-secondary-color:#5596a7;--fa-secondary-opacity:.72;flex:none}
header nav a,.account-link,.text-button,.back,.card-head>a,.entry-title-cell a{display:inline-flex;align-items:center;gap:8px}
header nav a :is(.fa-duotone,.svg-inline--fa),.account-link :is(.fa-duotone,.svg-inline--fa),.text-button :is(.fa-duotone,.svg-inline--fa){color:#80d3e4}
button,.button{gap:8px}
.back :is(.fa-duotone,.svg-inline--fa){font-size:13px}
h2{display:flex;align-items:center;gap:10px}
h2 :is(.fa-duotone,.svg-inline--fa){color:#80d3e4;font-size:.9em}
.hero .balance-label{display:inline-flex;align-items:center;gap:9px}
.hero .balance-label :is(.fa-duotone,.svg-inline--fa){color:#a3e9ed}
.card-subhead h2{display:flex;align-items:center}
.row-content{display:inline-flex;align-items:center;gap:12px;min-width:0}
.row-content>span:last-child{min-width:0}
.row-icon{width:34px;height:34px;display:inline-grid;place-items:center;flex:none;border:1px solid #356072;border-radius:10px;background:#1b3b4c;color:#a3e9ed}
.row-icon :is(.fa-duotone,.svg-inline--fa){font-size:16px}
.list-row:hover .row-icon{border-color:#66aabb;background:#204b5c}
.entry-title-cell :is(.fa-duotone,.svg-inline--fa),.user-leading{color:#80d3e4;margin-right:8px}
.user-list-name{display:flex;align-items:center}
.user-list-name :is(.fa-duotone,.svg-inline--fa){flex:none}
.badge{display:inline-flex;align-items:center;gap:6px}
td a :is(.fa-duotone,.svg-inline--fa){font-size:12px;margin-left:3px}
.upload-box a :is(.fa-duotone,.svg-inline--fa),.card>a :is(.fa-duotone,.svg-inline--fa){margin-right:7px}
@media(max-width:750px){header nav{flex:1 0 100%}header nav a{gap:6px}.row-icon{width:30px;height:30px}}

/* Booking type uses distinct duotone layers in the existing amount palette. */
.kind-icon.kind-income{color:#b4f0cf;--fa-primary-color:#b4f0cf;--fa-secondary-color:#328b68;--fa-secondary-opacity:1}
.kind-icon.kind-expense{color:#ffb4a0;--fa-primary-color:#ffb4a0;--fa-secondary-color:#ad554b;--fa-secondary-opacity:1}
.row-icon.kind-income{background:#173b36;border-color:#3c7965}
.row-icon.kind-expense{background:#422d32;border-color:#8d5a53}
.list-row:hover .row-icon.kind-income{background:#1b4c42;border-color:#5aa886}
.list-row:hover .row-icon.kind-expense{background:#51343a;border-color:#bd7466}
.entry-kind-heading{display:flex;align-items:baseline;gap:12px}
.entry-kind-heading .kind-icon{font-size:.56em}
.history-kind{display:inline-flex;align-items:center;gap:8px}

/* Only negative member balances change the dashboard row accents. */
.list-row.balance-negative>strong{color:#ffb4a0}
.list-row.balance-negative .row-icon{background:#422d32;border-color:#8d5a53}
.list-row.balance-negative .row-icon :is(.fa-duotone,.svg-inline--fa){color:#ffb4a0;--fa-primary-color:#ffb4a0;--fa-secondary-color:#ad554b;--fa-secondary-opacity:1}
.list-row.balance-negative:hover .row-icon{background:#51343a;border-color:#bd7466}
