@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Space+Grotesk:wght@500;600&display=swap";:root{--font-body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-heading: "Space Grotesk", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--color-bg: #f7f3ea;--color-surface: #ffffff;--color-surface-soft: #f0eadf;--color-text: #1f2937;--color-heading: #111827;--color-muted: #64748b;--color-on-primary: #ffffff;--color-border: #e5ded2;--color-primary: #047857;--color-primary-strong: #065f46;--color-primary-soft: #ecfdf5;--color-upcoming: #2563eb;--color-upcoming-soft: #eff6ff;--color-danger: #b42318;--color-danger-soft: #fef3f2;--color-warning: #b45309;--color-warning-soft: #fffbeb;--color-success: #15803d;--color-success-soft: #f0fdf4;--color-overlay: rgba(15, 23, 42, .46);--shadow-soft: 0 18px 50px rgba(15, 23, 42, .08);--radius-sm: 8px;--radius-md: 14px;--radius-lg: 18px;color:var(--color-text);background:var(--color-bg);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button{border:0;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-card{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);box-shadow:var(--shadow-soft)}.app-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--radius-sm);font-size:.88rem;font-weight:500;white-space:nowrap}.app-button-md{min-height:44px;padding:0 15px}.app-button-sm{min-height:36px;padding:0 11px;font-size:.82rem}.app-button-full{width:100%}.app-button-primary{background:var(--color-primary);color:var(--color-on-primary)}.app-button-secondary{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}.app-button-ghost{background:transparent;color:var(--color-muted)}.app-button-danger{background:var(--color-danger-soft);color:var(--color-danger)}.app-button-spinner,.app-spinner{width:16px;height:16px;flex:0 0 auto;border:2px solid currentColor;border-right-color:transparent;border-radius:999px;animation:spinner-rotate .7s linear infinite}.app-button-spinner{width:14px;height:14px}.app-spinner-wrap{display:inline-flex;align-items:center;justify-content:center;gap:10px;color:var(--color-muted);font-size:.94rem;font-weight:400}.app-spinner-wrap-sm{gap:8px;font-size:.84rem}.app-spinner-wrap-lg{flex-direction:column;gap:14px;color:var(--color-primary);font-size:.98rem}.app-spinner-wrap-lg .app-spinner{width:48px;height:48px;border-width:4px}.app-spinner-label{color:var(--color-muted)}.app-spinner-wrap-lg .app-spinner-label{color:var(--color-text)}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.app-shell{min-height:100vh;padding:18px}.auth-card,.workspace{width:min(100%,860px);margin:0 auto}.auth-card{display:grid;gap:28px;align-content:center;min-height:calc(100vh - 36px)}.brand-block h1,.topbar h1{margin:4px 0 0;color:var(--color-heading);font-family:var(--font-heading);font-weight:600;font-size:clamp(1.75rem,7vw,4.2rem);line-height:.95;letter-spacing:0}.topbar h1{font-size:clamp(1.75rem,6vw,3.6rem)}.eyebrow{margin:0;color:var(--color-primary);font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.muted{margin:6px 0 0;color:var(--color-muted);font-size:.94rem}.auth-form,.payment-form-panel,.empty-state{border-color:var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);box-shadow:var(--shadow-soft)}.auth-form{display:grid;gap:14px;padding:18px}.segmented,.filters{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;padding:5px;border-radius:8px;background:var(--color-surface-soft)}.segmented button,.filters button{min-height:42px;border-radius:6px;background:transparent;color:var(--color-muted);font-size:.9rem;font-weight:400}.segmented button.active,.filters button.active{background:var(--color-surface);color:var(--color-heading);font-weight:500;box-shadow:0 4px 14px #0f172a14}.filters{grid-template-columns:repeat(4,minmax(0,1fr));margin:18px 0;overflow-x:auto}.filters span{display:block;margin-top:2px;color:var(--color-muted);font-size:.72rem}label{display:grid;gap:7px;color:var(--color-text);font-size:.84rem;font-weight:500}input,select,textarea{width:100%;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);color:var(--color-text);padding:12px 13px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #04785729}.password-field{position:relative;display:block}.password-field input{padding-right:46px}.password-toggle{position:absolute;top:50%;right:6px;width:36px;height:36px;display:grid;place-items:center;border-radius:8px;background:transparent;color:var(--color-muted);transform:translateY(-50%)}.password-toggle:hover,.password-toggle:focus-visible{background:var(--color-surface-soft);color:var(--color-text)}.password-toggle:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.password-toggle svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.error-text{margin:0;border-radius:8px;background:var(--color-danger-soft);color:var(--color-danger);padding:10px 12px;font-size:.9rem;font-weight:400}.workspace{padding:10px 0 28px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.account-menu{position:relative;flex:0 0 auto}.account-trigger{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);color:var(--color-primary);box-shadow:0 10px 28px #0f172a0f}.account-trigger:hover,.account-trigger:focus-visible{border-color:var(--color-primary);background:var(--color-primary-soft)}.account-trigger:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.account-trigger svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.account-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:20;width:min(230px,calc(100vw - 36px));overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:0 18px 50px #0f172a24}.account-menu-header{display:grid;gap:3px;padding:11px 12px;border-bottom:1px solid var(--color-border)}.account-menu-header p,.account-menu-header span{margin:0}.account-menu-header p{color:var(--color-heading);font-size:.9rem;font-weight:500}.account-menu-header span{overflow:hidden;color:var(--color-muted);font-size:.9rem;text-overflow:ellipsis;white-space:nowrap}.account-menu-item{width:100%;min-height:38px;display:flex;align-items:center;gap:10px;background:var(--color-surface);color:var(--color-danger);padding:0 12px;font-size:.9rem;text-align:left}.account-menu-item:hover,.account-menu-item:focus-visible{background:var(--color-danger-soft)}.account-menu-item:focus-visible{outline:2px solid var(--color-danger);outline-offset:-2px}.account-menu-item svg{width:16px;height:16px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.actions-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.payment-form-panel{padding:14px}.payment-form{display:grid;gap:13px}.form-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.form-heading h2,.empty-state h2,.month-group h2{margin:0;color:var(--color-heading);font-family:var(--font-heading);font-weight:500;font-size:1rem}.field-grid{display:grid;grid-template-columns:1fr .8fr;gap:10px}.empty-state{display:grid;gap:6px;padding:28px 18px;text-align:center}.payment-list{display:grid;gap:18px}.month-group{display:grid;gap:10px}.month-group h2{color:var(--color-muted);font-size:.84rem;letter-spacing:.04em;text-transform:uppercase}.payment-card{display:grid;gap:12px;border:1px solid var(--color-border);border-left:5px solid var(--color-upcoming);border-radius:8px;background:var(--color-surface);padding:14px;box-shadow:0 10px 28px #0f172a0f}.payment-card.status-overdue{border-left-color:var(--color-danger)}.payment-card.status-today{border-left-color:var(--color-warning)}.payment-card.status-paid{border-left-color:var(--color-success);opacity:.72}.payment-main,.payment-detail,.card-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.payment-title,.payment-amount{margin:0;color:var(--color-heading);font-size:1rem;font-weight:600}.payment-meta,.payment-notes{margin:4px 0 0;color:var(--color-muted);font-size:.84rem}.payment-amount{flex:0 0 auto}.payment-detail{color:var(--color-text);font-size:.88rem;font-weight:400}.status-pill{border-radius:999px;background:var(--color-upcoming-soft);color:var(--color-upcoming);padding:5px 9px;font-size:.74rem}.status-overdue .status-pill{background:var(--color-danger-soft);color:var(--color-danger)}.status-today .status-pill{background:var(--color-warning-soft);color:var(--color-warning)}.status-paid .status-pill{background:var(--color-success-soft);color:var(--color-success)}.card-actions{justify-content:flex-start;flex-wrap:wrap}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:18px;background:var(--color-overlay)}.modal-card{width:min(100%,420px);display:grid;gap:18px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:18px;box-shadow:0 24px 80px #0f172a33}.modal-content{display:grid;gap:8px}.modal-content h2,.modal-content p{margin:0}.modal-content h2{color:var(--color-heading);font-family:var(--font-heading);font-weight:500;font-size:1.05rem}.modal-content p{color:var(--color-muted);font-size:.92rem;line-height:1.45}.modal-actions{display:flex;justify-content:flex-end;gap:10px}.toast-region{position:fixed;right:14px;bottom:14px;left:14px;z-index:50;display:grid;gap:10px;pointer-events:none}.toast-card{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border:1px solid var(--color-border);border-left:5px solid var(--color-upcoming);border-radius:var(--radius-md);background:var(--color-surface);padding:12px;box-shadow:0 16px 44px #0f172a24;pointer-events:auto}.toast-success{border-left-color:var(--color-success)}.toast-error{border-left-color:var(--color-danger)}.toast-warning{border-left-color:var(--color-warning)}.toast-title,.toast-message{margin:0}.toast-title{color:var(--color-heading);font-size:.9rem;font-weight:600}.toast-message{margin-top:3px;color:var(--color-muted);font-size:.82rem;line-height:1.35}.toast-close{width:28px;height:28px;flex:0 0 auto;border-radius:999px;background:var(--color-surface-soft);color:var(--color-muted);font-size:.82rem;font-weight:500}.loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;background:#f7f3ead6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}@media(min-width:720px){.app-shell{padding:34px}.auth-card{grid-template-columns:1.15fr .85fr;align-items:center}.payment-form{grid-template-columns:repeat(2,1fr)}.form-heading,.full,.payment-form .app-button,.payment-form .error-text{grid-column:1 / -1}.actions-row{display:flex;justify-content:flex-start}.toast-region{right:22px;bottom:22px;left:auto;width:min(360px,calc(100vw - 44px))}}
