mirror of
https://github.com/whekin/household-bot.git
synced 2026-03-31 13:44:03 +00:00
1388 lines
23 KiB
CSS
1388 lines
23 KiB
CSS
@import 'tailwindcss';
|
|
|
|
:root {
|
|
color: #f5efe1;
|
|
background:
|
|
radial-gradient(circle at top, rgb(225 116 58 / 0.32), transparent 32%),
|
|
radial-gradient(circle at bottom left, rgb(79 120 149 / 0.26), transparent 28%),
|
|
linear-gradient(180deg, #121a24 0%, #0b1118 100%);
|
|
font-family: 'IBM Plex Sans', 'Segoe UI', sans-serif;
|
|
}
|
|
|
|
* {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.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;
|
|
}
|
|
|
|
body {
|
|
margin: 0;
|
|
min-height: 100vh;
|
|
color: #f5efe1;
|
|
background: transparent;
|
|
}
|
|
|
|
button {
|
|
font: inherit;
|
|
cursor: pointer;
|
|
}
|
|
|
|
button:disabled {
|
|
cursor: default;
|
|
}
|
|
|
|
#root {
|
|
min-height: 100vh;
|
|
}
|
|
|
|
.shell {
|
|
position: relative;
|
|
min-height: 100vh;
|
|
overflow: hidden;
|
|
padding: 24px 18px calc(140px + env(safe-area-inset-bottom));
|
|
}
|
|
|
|
.shell__backdrop {
|
|
position: absolute;
|
|
border-radius: 999px;
|
|
filter: blur(12px);
|
|
opacity: 0.85;
|
|
}
|
|
|
|
.shell__backdrop--top {
|
|
top: -120px;
|
|
right: -60px;
|
|
width: 260px;
|
|
height: 260px;
|
|
background: rgb(237 131 74 / 0.3);
|
|
}
|
|
|
|
.shell__backdrop--bottom {
|
|
bottom: -140px;
|
|
left: -80px;
|
|
width: 300px;
|
|
height: 300px;
|
|
background: rgb(87 129 159 / 0.22);
|
|
}
|
|
|
|
.topbar,
|
|
.hero-card,
|
|
.nav-grid,
|
|
.content-grid {
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
.topbar {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.topbar__copy {
|
|
min-width: 0;
|
|
}
|
|
|
|
.topbar h1,
|
|
.hero-card h2,
|
|
.panel h3 {
|
|
margin: 0;
|
|
font-family: 'Space Grotesk', 'IBM Plex Sans', sans-serif;
|
|
letter-spacing: -0.04em;
|
|
}
|
|
|
|
.topbar h1 {
|
|
font-size: clamp(1.55rem, 4.4vw, 2.35rem);
|
|
line-height: 0.96;
|
|
}
|
|
|
|
.eyebrow {
|
|
margin: 0 0 8px;
|
|
color: #f7b389;
|
|
font-size: 0.75rem;
|
|
font-weight: 700;
|
|
letter-spacing: 0.18em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.locale-switch {
|
|
display: grid;
|
|
gap: 8px;
|
|
min-width: 116px;
|
|
color: #d8d6cf;
|
|
font-size: 0.82rem;
|
|
}
|
|
|
|
.locale-switch--compact {
|
|
justify-items: end;
|
|
min-width: 0;
|
|
align-self: flex-start;
|
|
}
|
|
|
|
.locale-switch__buttons {
|
|
display: inline-grid;
|
|
grid-auto-flow: column;
|
|
align-items: center;
|
|
gap: 4px;
|
|
padding: 3px;
|
|
border: 1px solid rgb(255 255 255 / 0.1);
|
|
border-radius: 999px;
|
|
background: rgb(255 255 255 / 0.04);
|
|
box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.04);
|
|
}
|
|
|
|
.locale-switch__icon {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 24px;
|
|
height: 24px;
|
|
color: rgb(247 179 137 / 0.88);
|
|
}
|
|
|
|
.locale-switch__buttons button,
|
|
.nav-grid button,
|
|
.ghost-button {
|
|
border: 1px solid rgb(255 255 255 / 0.12);
|
|
background: rgb(255 255 255 / 0.04);
|
|
color: inherit;
|
|
transition:
|
|
transform 140ms ease,
|
|
border-color 140ms ease,
|
|
background 140ms ease;
|
|
}
|
|
|
|
.locale-switch__buttons button {
|
|
border-radius: 999px;
|
|
min-width: 36px;
|
|
padding: 6px 8px;
|
|
font-size: 0.72rem;
|
|
font-weight: 700;
|
|
letter-spacing: 0.04em;
|
|
}
|
|
|
|
.locale-switch__buttons--inline {
|
|
margin-top: 6px;
|
|
}
|
|
|
|
.locale-switch__buttons button.is-active,
|
|
.nav-grid button.is-active {
|
|
border-color: rgb(247 179 137 / 0.7);
|
|
background: rgb(247 179 137 / 0.14);
|
|
}
|
|
|
|
.locale-switch__buttons button:focus-visible,
|
|
.nav-grid button:focus-visible,
|
|
.ghost-button:focus-visible {
|
|
outline: 2px solid #f7b389;
|
|
outline-offset: 2px;
|
|
border-color: rgb(247 179 137 / 0.7);
|
|
}
|
|
|
|
.hero-card,
|
|
.panel {
|
|
border: 1px solid rgb(255 255 255 / 0.1);
|
|
background-color: rgb(18 26 36 / 0.82);
|
|
background: linear-gradient(180deg, rgb(255 255 255 / 0.06), rgb(255 255 255 / 0.02));
|
|
-webkit-backdrop-filter: blur(16px);
|
|
backdrop-filter: blur(16px);
|
|
box-shadow: 0 24px 64px rgb(0 0 0 / 0.22);
|
|
}
|
|
|
|
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
|
|
.hero-card,
|
|
.panel {
|
|
background: rgb(18 26 36 / 0.94);
|
|
}
|
|
}
|
|
|
|
.hero-card {
|
|
margin-top: 28px;
|
|
border-radius: 28px;
|
|
padding: 22px;
|
|
}
|
|
|
|
.hero-card__meta {
|
|
display: flex;
|
|
gap: 10px;
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.hero-card h2 {
|
|
font-size: clamp(1.5rem, 4vw, 2.4rem);
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.hero-card p,
|
|
.panel p {
|
|
margin: 0;
|
|
color: #d6d3cc;
|
|
line-height: 1.55;
|
|
}
|
|
|
|
.pill {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
border-radius: 999px;
|
|
padding: 6px 10px;
|
|
background: rgb(247 179 137 / 0.14);
|
|
color: #ffd5b7;
|
|
font-size: 0.72rem;
|
|
font-weight: 700;
|
|
letter-spacing: 0.08em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.pill--muted {
|
|
background: rgb(255 255 255 / 0.08);
|
|
color: #e5e2d8;
|
|
}
|
|
|
|
.ghost-button {
|
|
margin-top: 18px;
|
|
border-radius: 16px;
|
|
padding: 12px 16px;
|
|
}
|
|
|
|
.ui-button {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 8px;
|
|
border: 1px solid rgb(255 255 255 / 0.12);
|
|
border-radius: 14px;
|
|
min-height: 44px;
|
|
padding: 10px 14px;
|
|
background: rgb(255 255 255 / 0.05);
|
|
color: inherit;
|
|
transition:
|
|
transform 140ms ease,
|
|
border-color 140ms ease,
|
|
background 140ms ease,
|
|
color 140ms ease;
|
|
}
|
|
|
|
.ui-button:disabled {
|
|
opacity: 0.6;
|
|
}
|
|
|
|
.ui-button--primary {
|
|
border-color: rgb(247 179 137 / 0.52);
|
|
background: rgb(247 179 137 / 0.18);
|
|
color: #fff4ea;
|
|
}
|
|
|
|
.ui-button--secondary {
|
|
background: rgb(255 255 255 / 0.04);
|
|
}
|
|
|
|
.ui-button--ghost,
|
|
.ui-button--icon {
|
|
background: transparent;
|
|
}
|
|
|
|
.ui-button--ghost {
|
|
border-color: rgb(255 255 255 / 0.08);
|
|
}
|
|
|
|
.ui-button--danger {
|
|
border-color: rgb(247 115 115 / 0.28);
|
|
background: rgb(247 115 115 / 0.08);
|
|
color: #ffc5c5;
|
|
}
|
|
|
|
.ui-button--icon {
|
|
min-width: 40px;
|
|
min-height: 40px;
|
|
border-radius: 12px;
|
|
padding-inline: 0;
|
|
}
|
|
|
|
.ui-icon {
|
|
width: 18px;
|
|
height: 18px;
|
|
flex: none;
|
|
}
|
|
|
|
.nav-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
gap: 6px;
|
|
padding: 4px;
|
|
border: 1px solid rgb(255 255 255 / 0.08);
|
|
border-radius: 18px;
|
|
background: rgb(18 26 36 / 0.9);
|
|
box-shadow: 0 18px 36px rgb(0 0 0 / 0.26);
|
|
}
|
|
|
|
.nav-grid button {
|
|
display: grid;
|
|
justify-items: center;
|
|
gap: 4px;
|
|
border: none;
|
|
border-radius: 14px;
|
|
min-height: 52px;
|
|
padding: 8px 6px;
|
|
font-size: 0.72rem;
|
|
font-weight: 700;
|
|
letter-spacing: 0.02em;
|
|
text-align: center;
|
|
}
|
|
|
|
.nav-grid button span {
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.app-bottom-nav {
|
|
position: fixed;
|
|
right: 18px;
|
|
bottom: calc(12px + env(safe-area-inset-bottom));
|
|
left: 18px;
|
|
z-index: 3;
|
|
}
|
|
|
|
.content-grid {
|
|
display: grid;
|
|
gap: 12px;
|
|
margin-top: 16px;
|
|
}
|
|
|
|
.content-stack {
|
|
display: grid;
|
|
gap: 12px;
|
|
margin-top: 12px;
|
|
padding-bottom: 12px;
|
|
}
|
|
|
|
.summary-card-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 10px;
|
|
}
|
|
|
|
.panel {
|
|
border-radius: 24px;
|
|
padding: 18px;
|
|
}
|
|
|
|
.balance-list,
|
|
.ledger-list,
|
|
.home-grid,
|
|
.admin-layout,
|
|
.admin-sublist,
|
|
.activity-list {
|
|
display: grid;
|
|
gap: 12px;
|
|
}
|
|
|
|
.balance-item,
|
|
.ledger-item,
|
|
.stat-card,
|
|
.activity-row,
|
|
.utility-bill-row {
|
|
display: grid;
|
|
align-content: start;
|
|
gap: 10px;
|
|
border: 1px solid rgb(255 255 255 / 0.08);
|
|
border-radius: 18px;
|
|
padding: 16px;
|
|
background: rgb(255 255 255 / 0.03);
|
|
}
|
|
|
|
.balance-item--accent {
|
|
background:
|
|
linear-gradient(180deg, rgb(247 179 137 / 0.12), rgb(255 255 255 / 0.03)),
|
|
rgb(255 255 255 / 0.03);
|
|
border-color: rgb(247 179 137 / 0.28);
|
|
}
|
|
|
|
.balance-item--muted {
|
|
background: rgb(255 255 255 / 0.02);
|
|
}
|
|
|
|
.profile-card {
|
|
gap: 10px;
|
|
}
|
|
|
|
.balance-item header,
|
|
.ledger-item header,
|
|
.activity-row header,
|
|
.utility-bill-row header {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
align-items: start;
|
|
gap: 12px;
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.balance-item strong,
|
|
.ledger-item strong,
|
|
.activity-row strong,
|
|
.utility-bill-row strong {
|
|
font-size: 1rem;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.balance-item p,
|
|
.ledger-item p,
|
|
.activity-row p,
|
|
.utility-bill-row p {
|
|
margin: 0;
|
|
}
|
|
|
|
.balance-status.is-credit {
|
|
color: #95e2b0;
|
|
}
|
|
|
|
.balance-status.is-settled {
|
|
color: #d6d0c9;
|
|
}
|
|
|
|
.balance-status.is-due {
|
|
color: #f7b389;
|
|
}
|
|
|
|
.home-grid {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
}
|
|
|
|
.home-pay-card,
|
|
.home-pay-card__header,
|
|
.home-pay-card__copy,
|
|
.home-pay-card__chips,
|
|
.home-pay-card__actions {
|
|
display: grid;
|
|
gap: 12px;
|
|
}
|
|
|
|
.home-pay-card__actions {
|
|
justify-items: start;
|
|
}
|
|
|
|
.stat-card {
|
|
display: grid;
|
|
gap: 8px;
|
|
}
|
|
|
|
.balance-breakdown {
|
|
display: grid;
|
|
gap: 10px;
|
|
}
|
|
|
|
.balance-spotlight {
|
|
gap: 14px;
|
|
}
|
|
|
|
.balance-spotlight__header {
|
|
display: grid;
|
|
gap: 14px;
|
|
}
|
|
|
|
.balance-spotlight__copy {
|
|
display: grid;
|
|
gap: 8px;
|
|
}
|
|
|
|
.balance-spotlight__copy small,
|
|
.balance-detail-row__main small {
|
|
color: #c6c2bb;
|
|
font-size: 0.86rem;
|
|
}
|
|
|
|
.balance-spotlight__hero {
|
|
display: grid;
|
|
gap: 6px;
|
|
padding: 14px;
|
|
border: 1px solid rgb(255 255 255 / 0.08);
|
|
border-radius: 18px;
|
|
background: rgb(10 18 28 / 0.38);
|
|
}
|
|
|
|
.balance-spotlight__hero span,
|
|
.balance-detail-row__main span,
|
|
.fx-panel__cell span,
|
|
.testing-card__section span {
|
|
color: #c6c2bb;
|
|
font-size: 0.78rem;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.08em;
|
|
}
|
|
|
|
.balance-spotlight__hero strong,
|
|
.balance-detail-row__main strong,
|
|
.fx-panel__cell strong,
|
|
.testing-card__section strong {
|
|
font-family: 'Space Grotesk', 'IBM Plex Sans', sans-serif;
|
|
}
|
|
|
|
.balance-spotlight__hero strong {
|
|
font-size: clamp(1.6rem, 5vw, 2.3rem);
|
|
line-height: 1;
|
|
}
|
|
|
|
.balance-spotlight__hero small {
|
|
color: #d6d3cc;
|
|
}
|
|
|
|
.balance-spotlight__stats,
|
|
.balance-spotlight__rows,
|
|
.balance-spotlight__meta,
|
|
.testing-card,
|
|
.testing-card__actions {
|
|
display: grid;
|
|
gap: 10px;
|
|
}
|
|
|
|
.balance-spotlight__stat {
|
|
min-height: 100%;
|
|
}
|
|
|
|
.balance-detail-row,
|
|
.fx-panel,
|
|
.testing-card__section {
|
|
display: grid;
|
|
gap: 10px;
|
|
border: 1px solid rgb(255 255 255 / 0.08);
|
|
border-radius: 18px;
|
|
padding: 14px;
|
|
background: rgb(255 255 255 / 0.03);
|
|
}
|
|
|
|
.balance-detail-row--accent {
|
|
border-color: rgb(111 211 192 / 0.34);
|
|
background: rgb(111 211 192 / 0.08);
|
|
}
|
|
|
|
.balance-detail-row__main {
|
|
display: grid;
|
|
gap: 6px;
|
|
}
|
|
|
|
.fx-panel {
|
|
background: linear-gradient(180deg, rgb(148 168 255 / 0.08), rgb(255 255 255 / 0.02));
|
|
}
|
|
|
|
.fx-panel__header {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 10px;
|
|
}
|
|
|
|
.fx-panel__grid {
|
|
display: grid;
|
|
gap: 10px;
|
|
}
|
|
|
|
.fx-panel__cell {
|
|
display: grid;
|
|
gap: 6px;
|
|
padding: 12px;
|
|
border-radius: 16px;
|
|
background: rgb(12 20 31 / 0.45);
|
|
}
|
|
|
|
.member-visual-list {
|
|
display: grid;
|
|
gap: 12px;
|
|
margin-top: 14px;
|
|
}
|
|
|
|
.member-visual-card {
|
|
border: 1px solid rgb(255 255 255 / 0.08);
|
|
border-radius: 18px;
|
|
padding: 14px;
|
|
background: rgb(255 255 255 / 0.02);
|
|
}
|
|
|
|
.member-visual-card header {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
gap: 10px;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.member-visual-bar {
|
|
margin-top: 10px;
|
|
}
|
|
|
|
.member-visual-bar__track {
|
|
display: flex;
|
|
min-height: 14px;
|
|
border-radius: 999px;
|
|
overflow: hidden;
|
|
background: rgb(255 255 255 / 0.04);
|
|
}
|
|
|
|
.member-visual-bar__segment--rent {
|
|
background: #f7b389;
|
|
}
|
|
|
|
.member-visual-bar__segment--utilities {
|
|
background: #6fd3c0;
|
|
}
|
|
|
|
.member-visual-bar__segment--purchase-debit {
|
|
background: #f06a8d;
|
|
}
|
|
|
|
.member-visual-bar__segment--purchase-credit {
|
|
background: #94a8ff;
|
|
}
|
|
|
|
.member-visual-meta {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
margin-top: 12px;
|
|
}
|
|
|
|
.member-visual-chip {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
border-radius: 999px;
|
|
padding: 6px 10px;
|
|
background: rgb(255 255 255 / 0.05);
|
|
font-size: 0.85rem;
|
|
}
|
|
|
|
.member-visual-chip--rent {
|
|
border: 1px solid rgb(247 179 137 / 0.35);
|
|
}
|
|
|
|
.member-visual-chip--utilities {
|
|
border: 1px solid rgb(111 211 192 / 0.35);
|
|
}
|
|
|
|
.member-visual-chip--purchase-debit {
|
|
border: 1px solid rgb(240 106 141 / 0.35);
|
|
}
|
|
|
|
.member-visual-chip--purchase-credit {
|
|
border: 1px solid rgb(148 168 255 / 0.35);
|
|
}
|
|
|
|
.purchase-chart {
|
|
display: grid;
|
|
gap: 16px;
|
|
margin-top: 14px;
|
|
}
|
|
|
|
.purchase-chart__figure {
|
|
position: relative;
|
|
width: min(180px, 100%);
|
|
justify-self: center;
|
|
}
|
|
|
|
.purchase-chart__donut {
|
|
width: 100%;
|
|
overflow: visible;
|
|
}
|
|
|
|
.purchase-chart__ring,
|
|
.purchase-chart__slice {
|
|
fill: none;
|
|
stroke-width: 16;
|
|
}
|
|
|
|
.purchase-chart__ring {
|
|
stroke: rgb(255 255 255 / 0.08);
|
|
}
|
|
|
|
.purchase-chart__slice {
|
|
transform: rotate(-90deg);
|
|
transform-origin: 50% 50%;
|
|
stroke-linecap: butt;
|
|
}
|
|
|
|
.purchase-chart__center {
|
|
position: absolute;
|
|
inset: 0;
|
|
display: grid;
|
|
place-content: center;
|
|
gap: 2px;
|
|
text-align: center;
|
|
}
|
|
|
|
.purchase-chart__center strong {
|
|
font-family: 'Space Grotesk', 'IBM Plex Sans', sans-serif;
|
|
font-size: clamp(1.1rem, 4vw, 1.45rem);
|
|
line-height: 1;
|
|
}
|
|
|
|
.purchase-chart__center small {
|
|
color: #c6c2bb;
|
|
font-size: 0.72rem;
|
|
letter-spacing: 0.08em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.purchase-chart__legend {
|
|
display: grid;
|
|
gap: 10px;
|
|
}
|
|
|
|
.purchase-chart__legend-item {
|
|
border: 1px solid rgb(255 255 255 / 0.08);
|
|
border-radius: 16px;
|
|
padding: 10px 12px;
|
|
background: rgb(255 255 255 / 0.02);
|
|
}
|
|
|
|
.purchase-chart__legend-item div {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
}
|
|
|
|
.purchase-chart__legend-item p {
|
|
margin-top: 8px;
|
|
}
|
|
|
|
.purchase-chart__legend-swatch {
|
|
width: 12px;
|
|
height: 12px;
|
|
border-radius: 999px;
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.stat-card span {
|
|
color: #c6c2bb;
|
|
font-size: 0.82rem;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.08em;
|
|
}
|
|
|
|
.stat-card strong {
|
|
font-family: 'Space Grotesk', 'IBM Plex Sans', sans-serif;
|
|
font-size: clamp(1.2rem, 4vw, 1.7rem);
|
|
}
|
|
|
|
.settings-grid {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr);
|
|
gap: 12px;
|
|
margin-top: 12px;
|
|
}
|
|
|
|
.admin-layout {
|
|
gap: 12px;
|
|
}
|
|
|
|
.admin-summary-grid,
|
|
.admin-grid {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr);
|
|
align-items: start;
|
|
gap: 12px;
|
|
}
|
|
|
|
.admin-section {
|
|
display: grid;
|
|
align-items: start;
|
|
gap: 12px;
|
|
}
|
|
|
|
.admin-disclosure {
|
|
border: 1px solid rgb(255 255 255 / 0.08);
|
|
border-radius: 20px;
|
|
background:
|
|
linear-gradient(180deg, rgb(255 255 255 / 0.05), rgb(255 255 255 / 0.02)),
|
|
rgb(255 255 255 / 0.03);
|
|
overflow: hidden;
|
|
}
|
|
|
|
.admin-disclosure__summary {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
align-items: center;
|
|
gap: 12px;
|
|
width: 100%;
|
|
border: 0;
|
|
background: transparent;
|
|
padding: 16px;
|
|
text-align: left;
|
|
}
|
|
|
|
.admin-disclosure__copy {
|
|
display: grid;
|
|
gap: 6px;
|
|
}
|
|
|
|
.admin-disclosure__icon {
|
|
transition: transform 140ms ease;
|
|
}
|
|
|
|
.admin-disclosure__icon.is-open {
|
|
transform: rotate(180deg);
|
|
}
|
|
|
|
.admin-disclosure__content {
|
|
display: grid;
|
|
gap: 12px;
|
|
padding: 0 16px 16px;
|
|
}
|
|
|
|
.admin-sublist {
|
|
margin-top: 12px;
|
|
}
|
|
|
|
.admin-sublist--plain {
|
|
gap: 10px;
|
|
}
|
|
|
|
.admin-card--wide {
|
|
min-width: 0;
|
|
}
|
|
|
|
.settings-field {
|
|
display: grid;
|
|
gap: 6px;
|
|
}
|
|
|
|
.settings-field span {
|
|
color: #c6c2bb;
|
|
font-size: 0.82rem;
|
|
}
|
|
|
|
.settings-field input,
|
|
.settings-field select {
|
|
width: 100%;
|
|
border: 1px solid rgb(255 255 255 / 0.12);
|
|
border-radius: 14px;
|
|
min-height: 48px;
|
|
padding: 12px 14px;
|
|
background: rgb(255 255 255 / 0.04);
|
|
color: inherit;
|
|
font-size: 1rem;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.settings-field input[aria-invalid='true'] {
|
|
border-color: rgb(247 115 115 / 0.45);
|
|
background: rgb(247 115 115 / 0.08);
|
|
}
|
|
|
|
.settings-field select {
|
|
appearance: none;
|
|
-webkit-appearance: none;
|
|
}
|
|
|
|
.settings-field__value {
|
|
display: flex;
|
|
align-items: center;
|
|
min-height: 48px;
|
|
border: 1px solid rgb(255 255 255 / 0.12);
|
|
border-radius: 14px;
|
|
padding: 12px 14px;
|
|
background: rgb(255 255 255 / 0.04);
|
|
color: inherit;
|
|
}
|
|
|
|
.settings-field--wide {
|
|
grid-column: 1 / -1;
|
|
}
|
|
|
|
.inline-actions {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 10px;
|
|
margin-top: 12px;
|
|
}
|
|
|
|
.inline-actions .ghost-button {
|
|
margin-top: 0;
|
|
}
|
|
|
|
.ghost-button--danger {
|
|
border-color: rgb(247 115 115 / 0.28);
|
|
color: #ffc5c5;
|
|
}
|
|
|
|
.panel-toolbar {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
justify-content: flex-start;
|
|
gap: 10px;
|
|
margin-top: 8px;
|
|
}
|
|
|
|
.ledger-compact-card {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
gap: 14px;
|
|
align-items: start;
|
|
border: 1px solid rgb(255 255 255 / 0.08);
|
|
border-radius: 18px;
|
|
padding: 14px;
|
|
background: rgb(255 255 255 / 0.02);
|
|
}
|
|
|
|
.ledger-compact-card__main {
|
|
min-width: 0;
|
|
}
|
|
|
|
.ledger-compact-card header {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
gap: 10px;
|
|
margin-bottom: 6px;
|
|
}
|
|
|
|
.ledger-compact-card p {
|
|
margin: 0;
|
|
color: #d6d3cc;
|
|
}
|
|
|
|
.ledger-compact-card__meta {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
margin-top: 10px;
|
|
}
|
|
|
|
.ledger-compact-card__actions {
|
|
display: flex;
|
|
align-items: start;
|
|
}
|
|
|
|
.mini-chip {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
border-radius: 999px;
|
|
padding: 6px 10px;
|
|
background: rgb(247 179 137 / 0.12);
|
|
color: #ffe6d2;
|
|
font-size: 0.82rem;
|
|
}
|
|
|
|
.mini-chip--muted {
|
|
background: rgb(255 255 255 / 0.05);
|
|
color: #dad5ce;
|
|
}
|
|
|
|
.mini-chip-button {
|
|
appearance: none;
|
|
-webkit-appearance: none;
|
|
border: 0;
|
|
background: transparent;
|
|
padding: 6px 10px;
|
|
font: inherit;
|
|
line-height: inherit;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.timezone-suggestions {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
}
|
|
|
|
.timezone-chip {
|
|
padding: 6px 10px;
|
|
border: 1px solid transparent;
|
|
}
|
|
|
|
.timezone-chip--active {
|
|
border-color: rgb(247 179 137 / 0.44);
|
|
background: rgb(247 179 137 / 0.18);
|
|
}
|
|
|
|
.testing-card {
|
|
gap: 12px;
|
|
}
|
|
|
|
.testing-card__actions {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
}
|
|
|
|
.modal-backdrop {
|
|
position: fixed;
|
|
inset: 0;
|
|
z-index: 50;
|
|
display: grid;
|
|
place-items: end center;
|
|
padding: 18px 14px;
|
|
background: rgb(8 10 16 / 0.7);
|
|
-webkit-backdrop-filter: blur(10px);
|
|
backdrop-filter: blur(10px);
|
|
}
|
|
|
|
.modal-sheet {
|
|
width: min(720px, 100%);
|
|
max-height: min(88vh, 920px);
|
|
overflow: auto;
|
|
border: 1px solid rgb(255 255 255 / 0.1);
|
|
border-radius: 24px;
|
|
padding: 16px;
|
|
background:
|
|
linear-gradient(180deg, rgb(255 255 255 / 0.07), rgb(255 255 255 / 0.03)), rgb(18 26 36 / 0.96);
|
|
box-shadow: 0 28px 80px rgb(0 0 0 / 0.35);
|
|
}
|
|
|
|
.modal-sheet__header {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
gap: 10px;
|
|
align-items: start;
|
|
}
|
|
|
|
.modal-sheet__header h3 {
|
|
margin: 0;
|
|
font-family: 'Space Grotesk', 'IBM Plex Sans', sans-serif;
|
|
letter-spacing: -0.04em;
|
|
font-size: 1.4rem;
|
|
}
|
|
|
|
.modal-sheet__header p {
|
|
margin-top: 6px;
|
|
}
|
|
|
|
.modal-sheet__body {
|
|
display: grid;
|
|
gap: 14px;
|
|
margin-top: 14px;
|
|
}
|
|
|
|
.modal-sheet__footer {
|
|
margin-top: 14px;
|
|
}
|
|
|
|
.modal-close-button {
|
|
align-self: start;
|
|
width: 36px;
|
|
min-width: 36px;
|
|
min-height: 36px;
|
|
border-color: rgb(255 255 255 / 0.08);
|
|
}
|
|
|
|
.editor-grid {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr);
|
|
gap: 12px;
|
|
}
|
|
|
|
.editor-panel {
|
|
display: grid;
|
|
gap: 12px;
|
|
border: 1px solid rgb(255 255 255 / 0.08);
|
|
border-radius: 18px;
|
|
padding: 14px;
|
|
background: rgb(255 255 255 / 0.03);
|
|
}
|
|
|
|
.editor-panel__header {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
gap: 10px;
|
|
align-items: start;
|
|
}
|
|
|
|
.participant-list {
|
|
display: grid;
|
|
gap: 10px;
|
|
}
|
|
|
|
.participant-card {
|
|
border: 1px solid rgb(255 255 255 / 0.08);
|
|
border-radius: 16px;
|
|
padding: 12px;
|
|
background: rgb(255 255 255 / 0.02);
|
|
}
|
|
|
|
.participant-card header {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
gap: 10px;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.participant-card__controls {
|
|
display: grid;
|
|
gap: 10px;
|
|
}
|
|
|
|
.participant-card__field {
|
|
margin-top: 2px;
|
|
}
|
|
|
|
.member-editor-actions {
|
|
display: grid;
|
|
gap: 10px;
|
|
}
|
|
|
|
.member-editor-actions__close,
|
|
.member-editor-actions__button {
|
|
width: 100%;
|
|
}
|
|
|
|
.member-editor-actions__grid {
|
|
display: grid;
|
|
gap: 10px;
|
|
}
|
|
|
|
.modal-action-row {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
justify-content: space-between;
|
|
gap: 10px;
|
|
}
|
|
|
|
.modal-action-row--single {
|
|
justify-content: flex-end;
|
|
}
|
|
|
|
.modal-action-row__primary {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
justify-content: flex-end;
|
|
gap: 10px;
|
|
}
|
|
|
|
.panel--wide {
|
|
min-height: 170px;
|
|
}
|
|
|
|
.activity-row,
|
|
.utility-bill-row {
|
|
background: rgb(255 255 255 / 0.02);
|
|
}
|
|
|
|
.activity-row header,
|
|
.utility-bill-row header {
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.activity-row strong {
|
|
word-break: break-word;
|
|
}
|
|
|
|
.balance-item--wide {
|
|
grid-column: 1 / -1;
|
|
}
|
|
|
|
.activity-row p,
|
|
.ledger-item p,
|
|
.utility-bill-row p,
|
|
.balance-item p {
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.balance-item > p + .ledger-list,
|
|
.balance-item > p + .balance-list {
|
|
margin-top: 4px;
|
|
}
|
|
|
|
.balance-section {
|
|
gap: 16px;
|
|
}
|
|
|
|
.balance-section--secondary {
|
|
background: linear-gradient(180deg, rgb(255 255 255 / 0.04), rgb(255 255 255 / 0.02));
|
|
}
|
|
|
|
.balance-section__header {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: start;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
}
|
|
|
|
.balance-section__copy {
|
|
display: grid;
|
|
gap: 8px;
|
|
}
|
|
|
|
.balance-section__field {
|
|
min-width: min(220px, 100%);
|
|
}
|
|
|
|
.household-balance-list {
|
|
display: grid;
|
|
gap: 12px;
|
|
}
|
|
|
|
.household-balance-list__card .ledger-compact-card__meta {
|
|
margin-top: 12px;
|
|
}
|
|
|
|
.balance-detail-card,
|
|
.balance-detail-card__rows {
|
|
display: grid;
|
|
gap: 12px;
|
|
}
|
|
|
|
.balance-detail-card__header {
|
|
display: grid;
|
|
gap: 10px;
|
|
}
|
|
|
|
.balance-detail-card__copy {
|
|
display: grid;
|
|
gap: 6px;
|
|
}
|
|
|
|
.app-context-row {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 10px;
|
|
}
|
|
|
|
.app-context-meta {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
}
|
|
|
|
.app-context-row__action {
|
|
margin-left: auto;
|
|
}
|
|
|
|
@media (min-width: 760px) {
|
|
.shell {
|
|
max-width: 920px;
|
|
margin: 0 auto;
|
|
padding: 32px 24px 136px;
|
|
}
|
|
|
|
.summary-card-grid {
|
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
}
|
|
|
|
.balance-breakdown {
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
}
|
|
|
|
.balance-spotlight__header,
|
|
.balance-spotlight__stats,
|
|
.fx-panel__grid,
|
|
.testing-card__actions {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.home-pay-card__header {
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
align-items: start;
|
|
}
|
|
|
|
.balance-spotlight__hero {
|
|
grid-column: 1 / -1;
|
|
}
|
|
|
|
.balance-spotlight__header {
|
|
align-items: start;
|
|
}
|
|
|
|
.home-pay-card__actions {
|
|
justify-items: end;
|
|
}
|
|
|
|
.balance-spotlight__stats {
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
}
|
|
|
|
.purchase-chart {
|
|
grid-template-columns: minmax(220px, 260px) minmax(0, 1fr);
|
|
align-items: center;
|
|
}
|
|
|
|
.purchase-chart__legend {
|
|
align-self: stretch;
|
|
}
|
|
|
|
.admin-grid {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.settings-grid {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.panel--wide {
|
|
grid-column: 1 / -1;
|
|
}
|
|
|
|
.admin-card--wide {
|
|
grid-column: 1 / -1;
|
|
}
|
|
|
|
.balance-item--wide {
|
|
grid-column: 1 / -1;
|
|
}
|
|
}
|
|
|
|
@media (min-width: 980px) {
|
|
.settings-grid {
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
}
|
|
|
|
.editor-grid {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.member-editor-actions__grid {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.balance-detail-card__rows {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
}
|
|
|
|
@media (max-width: 759px) {
|
|
.shell {
|
|
padding: 18px 14px calc(132px + env(safe-area-inset-bottom));
|
|
}
|
|
|
|
.topbar {
|
|
flex-direction: row;
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.locale-switch {
|
|
width: auto;
|
|
min-width: 0;
|
|
}
|
|
|
|
.locale-switch--compact {
|
|
justify-items: end;
|
|
}
|
|
|
|
.nav-grid {
|
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
}
|
|
|
|
.balance-breakdown {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
}
|
|
|
|
.member-visual-card header {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
}
|
|
|
|
.activity-row header,
|
|
.ledger-compact-card header,
|
|
.ledger-item header,
|
|
.utility-bill-row header,
|
|
.balance-item header {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
}
|
|
}
|