:root { color: #101827; background: radial-gradient(circle at 12% 0%, rgba(255, 122, 89, 0.28), transparent 30%), radial-gradient(circle at 92% 8%, rgba(45, 212, 191, 0.24), transparent 32%), linear-gradient(135deg, #fff3e8 0%, #ecfeff 48%, #fff1f8 100%); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.5; } * { box-sizing: border-box; } body { margin: 0; min-width: 320px; } button, input { font: inherit; } .stage { min-height: 100vh; display: grid; place-items: start center; padding: 24px; } .phone { width: min(100%, 390px); height: 780px; min-height: 780px; overflow: hidden; border: 1px solid rgba(20, 83, 45, 0.12); border-radius: 28px; background: #ffffff; box-shadow: 0 24px 58px rgba(15, 23, 42, 0.14); } .appbar { background: linear-gradient(135deg, #00a676 0%, #00b4d8 52%, #ff7a59 100%); color: #fff; padding: 18px 18px 14px; } .toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; } .title { margin: 0; font-size: 20px; font-weight: 750; letter-spacing: 0; } .icon-button { width: 36px; height: 36px; display: grid; place-items: center; border: 0; border-radius: 18px; background: rgba(255, 255, 255, 0.22); color: inherit; font-size: 26px; line-height: 1; } .toolbar-spacer { width: 36px; height: 36px; } .icon { width: 18px; height: 18px; display: block; } .deprecated-note { margin: 24px 14px; border: 1px solid #bdeee0; border-radius: 8px; padding: 16px; background: #ffffff; } .deprecated-note h2 { margin: 0 0 8px; font-size: 18px; } .deprecated-note p { margin: 0 0 12px; color: #526072; } .deprecated-note a { color: #007a78; font-weight: 800; } .stats { display: grid; grid-template-columns: 1fr 1.2fr 1fr; gap: 12px; margin-top: 20px; text-align: center; } .stat strong { display: block; font-size: 20px; } .stat span { color: rgba(255, 255, 255, 0.76); font-size: 12px; } .content { padding: 14px 14px 2px; } .phone-relative .content { padding-bottom: 250px; } .section-title { margin: 14px 2px 8px; color: #0f5f68; font-size: 13px; font-weight: 650; } .ledger-card { border: 1px solid #d8f1e7; border-radius: 8px; padding: 14px; background: #ffffff; } .ledger-card + .ledger-card { margin-top: 10px; } .ledger-head, .row { display: flex; align-items: center; justify-content: space-between; gap: 12px; } .ledger-name { margin: 0; font-size: 19px; line-height: 1.2; } .badge { display: inline-flex; align-items: center; min-height: 24px; padding: 0 9px; border-radius: 12px; background: #d7fbef; color: #007a5a; font-size: 12px; font-weight: 700; white-space: nowrap; } .muted { color: #526072; font-size: 13px; } .card-actions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 14px; border-top: 1px solid #dff5ee; padding-top: 12px; } .action { min-height: 36px; border: 1px solid #ccefe5; border-radius: 8px; background: #fff; color: #152033; } .day { margin: 14px -14px 0; padding: 7px 16px; background: #e9fbf7; color: #0f5f68; font-size: 12px; font-weight: 700; } .entry { display: grid; grid-template-columns: 40px 1fr auto; gap: 10px; align-items: center; min-height: 62px; border-bottom: 1px solid #e0f4ed; } .entry-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 17px; background: #00a676; color: #fff; font-size: 13px; font-weight: 750; } .entry-main strong, .entry-amount strong { display: block; } .entry-main span, .entry-amount span { color: #526072; font-size: 12px; } .entry-amount { text-align: right; } .expense { color: #d94836; } .income { color: #008f5f; } .fab { position: absolute; right: 24px; bottom: 24px; width: 56px; height: 56px; border: 0; border-radius: 28px; background: #00a676; color: #fff; font-size: 28px; box-shadow: 0 8px 24px rgba(0, 166, 118, 0.28); } .phone-relative { position: relative; } .drawer-scrim { position: absolute; inset: 0; z-index: 2; background: linear-gradient(to bottom, rgba(15, 23, 42, 0.02), rgba(15, 23, 42, 0.2)); pointer-events: none; } .entry-drawer { position: absolute; right: 0; bottom: 0; left: 0; z-index: 3; min-height: 292px; overflow: hidden; border-top: 1px solid #bdeee0; border-radius: 18px 18px 0 0; background: #ffffff; box-shadow: 0 -18px 36px rgba(15, 23, 42, 0.16); } .drawer-handle { width: 42px; height: 5px; margin: 9px auto 0; border-radius: 999px; background: #8ee8d4; } .drawer-amount-line { padding-top: 12px; padding-bottom: 8px; } .radial-step { position: relative; width: 176px; height: 118px; margin-left: auto; } .radial-center, .radial-node { position: absolute; z-index: 1; border: 1px solid transparent; border-radius: 999px; display: grid; place-items: center; box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08); font-weight: 800; white-space: nowrap; } .radial-center { right: 0; bottom: 0; width: 54px; height: 54px; border: 0; background: #00a676; color: #fff; font-size: 20px; } .radial-node { min-width: 48px; height: 34px; padding: 0 10px; background: #ffffff; color: #101827; font-size: 12px; } .radial-node.active { border-color: #ffb703; background: #fff0bf; color: #9b4d00; } .type-expense { right: 68px; bottom: 8px; } .type-income { right: 34px; bottom: 70px; } .category-food { right: 88px; bottom: 4px; border-color: #ffbf87; } .category-transit { right: 104px; bottom: 48px; border-color: #93c5fd; } .category-daily { right: 54px; bottom: 82px; border-color: #86efac; } .category-shop { right: 0; bottom: 96px; border-color: #f9a8d4; } .sub-takeout { right: 86px; bottom: 8px; } .sub-restaurant { right: 92px; bottom: 54px; } .sub-coffee { right: 40px; bottom: 88px; } .selection-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 14px 10px; } .selected-path { display: flex; align-items: center; min-width: 0; flex-wrap: wrap; gap: 5px; padding: 0; color: #0f5f68; font-size: 12px; font-weight: 750; } .selected-path span + span::before, .selected-path span + strong::before { content: ">"; margin-right: 5px; color: #00a676; } .selected-path span, .selected-path strong { min-height: 24px; border-radius: 12px; padding: 3px 8px; background: #e6fbf8; } .selected-path strong { background: #fff0bf; color: #9b4d00; } .drawer-note-line { padding-bottom: 10px; } .flow-stage { width: min(100%, 1180px); margin: 0 auto; padding: 28px 20px 48px; } .flow-intro { margin-bottom: 20px; } .flow-intro h1 { margin: 0 0 6px; font-size: 26px; line-height: 1.15; } .flow-intro p { margin: 0; color: #526072; } .flow-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(252px, 1fr)); gap: 18px; align-items: start; } .flow-phone { width: 100%; height: 470px; min-height: 470px; border-radius: 20px; } .mini-appbar { min-height: 58px; padding: 12px 14px; display: flex; align-items: center; gap: 10px; background: linear-gradient(135deg, #00a676 0%, #00b4d8 100%); color: #fff; } .mini-appbar span { width: 28px; height: 28px; border-radius: 14px; display: grid; place-items: center; background: rgba(255, 255, 255, 0.22); font-weight: 850; } .drawer-demo { position: relative; min-height: 412px; background: #ffffff; } .floating-choice { position: absolute; right: 7px; bottom: 150px; z-index: 4; padding: 10px; border: 1px solid rgba(189, 238, 224, 0.86); border-radius: 16px; background: rgba(255, 255, 255, 0.94); box-shadow: 0 14px 34px rgba(15, 23, 42, 0.16); } .mini-keypad { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 8px; border-top: 1px solid #bdeee0; } .mini-keypad span, .mini-keypad strong { min-height: 38px; border-right: 1px solid #d7f5ec; border-bottom: 1px solid #d7f5ec; display: grid; place-items: center; font-size: 14px; } .mini-keypad span:nth-child(4n) { border-right: 0; background: #e6fbf8; color: #007a78; } .mini-keypad strong { border-right: 0; background: #00a676; color: #fff; } .mini-keypad .category-cell { background: #fff0bf; color: #9b4d00; font-weight: 800; } .mini-keypad .confirm-cell { background: #00a676; color: #fff; } .active-picker { margin-top: 170px; } .bottom-panel { margin-top: 18px; border-top: 1px solid #d7f5ec; background: #ffffff; } .amount-line { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 16px; } .amount-line strong { font-size: 34px; line-height: 1; } .amount-meta { display: grid; justify-items: end; gap: 7px; min-width: max-content; } .toggle { min-width: 58px; min-height: 34px; border: 0; border-radius: 17px; background: #ff5a47; color: #fff; font-weight: 750; } .date-pill { min-height: 28px; border: 1px solid #ffc56d; border-radius: 14px; padding: 0 10px; background: #fff2cc; color: #a45100; font-size: 12px; font-weight: 750; } .chips { display: flex; gap: 8px; overflow-x: auto; padding: 0 14px 12px; scrollbar-width: none; } .chips::-webkit-scrollbar { display: none; } .chip { min-width: max-content; min-height: 34px; border: 1px solid #bdeee0; border-radius: 17px; padding: 0 12px; display: inline-flex; align-items: center; gap: 6px; background: #ffffff; color: #115e59; } .chip.active { border-color: #ffb703; background: #fff0bf; color: #9b4d00; font-weight: 750; } .category-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; padding-bottom: 12px; } .category { min-width: 0; min-height: 78px; border: 1px solid transparent; border-radius: 8px; padding: 8px 4px 7px; display: grid; justify-items: center; align-content: center; gap: 6px; background: #fff; color: #101827; box-shadow: 0 8px 18px rgba(15, 23, 42, 0.06); } .category span:last-child { font-size: 12px; font-weight: 700; line-height: 1.1; } .category-mark { width: 38px; height: 38px; border-radius: 19px; display: grid; place-items: center; color: #fff; font-size: 17px; font-weight: 850; } .category.food { border-color: #ffbf87; background: #fff1e4; } .category.food .category-mark { background: #ff6b35; } .category.daily { border-color: #86efac; background: #ecfdf3; } .category.daily .category-mark { background: #16a34a; } .category.transit { border-color: #93c5fd; background: #eff6ff; } .category.transit .category-mark { background: #2563eb; } .category.shopping { border-color: #f9a8d4; background: #fdf2f8; } .category.shopping .category-mark { background: #e84393; } .category.income { border-color: #bef264; background: #f7fee7; } .category.income .category-mark { background: #65a30d; } .category.active { outline: 2px solid #00a676; outline-offset: 0; } .note-line { padding: 0 14px 12px; } .note-line input { min-height: 42px; width: 100%; border: 1px solid #bdeee0; border-radius: 8px; padding: 0 12px; background: #ffffff; } .chip-dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; opacity: 0.75; } .keypad { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid #bdeee0; } .key { min-height: 58px; border: 0; border-right: 1px solid #d7f5ec; border-bottom: 1px solid #d7f5ec; background: #ffffff; color: #101827; font-size: 20px; font-weight: 650; } .key:nth-child(4n) { border-right: 0; background: #e6fbf8; color: #007a78; } .key:active { background: #c9f7ef; } .commit-key { background: #00a676 !important; color: #fff !important; } .utility-key { font-size: 16px; } .category-key { font-size: 16px; background: #fff0bf !important; color: #9b4d00 !important; } .invite-box { border: 1px dashed #86dfca; border-radius: 8px; padding: 14px; background: #ffffff; } .member { display: grid; grid-template-columns: 38px 1fr auto; gap: 10px; align-items: center; min-height: 58px; border-bottom: 1px solid #d7f5ec; } .avatar { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 18px; background: #d7fbef; color: #007a5a; font-weight: 800; } @media (max-width: 430px) { .stage { padding: 0; } .phone { height: 100vh; min-height: 100vh; border: 0; border-radius: 0; box-shadow: none; } }