@charset "UTF-8";*,*:before,*:after{box-sizing:border-box}:host,:root{--primary-color: #18181b;--primary-hover: #27272a;--secondary-color: #52525b;--background-color: #f8fafc;--surface-color: #ffffff;--text-main: #0f172a;--text-muted: #64748b;--border-color: #e2e8f0;--font-family-base: "Inter", system-ui, -apple-system, sans-serif;--font-size-base: 16px;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 2rem;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--dot-scheduled: #2563eb;--dot-completed: #16a34a;--dot-rejected: #dc2626;--dot-pending: #d97706;--dot-to-receive: #eab308;--dot-blocked: #ea580c;--banner-readonly-bg: linear-gradient(135deg, rgba(244, 63, 94, .14) 0%, rgba(225, 29, 72, .08) 100%), #fff1f2;--banner-readonly-border: rgba(225, 29, 72, .3);--banner-readonly-text: #9f1239;--banner-readonly-strong: #881337;--banner-readonly-dismiss: #be123c;--banner-readonly-dismiss-hover: #881337;--banner-readonly-dismiss-hover-bg: rgba(225, 29, 72, .12);--banner-grace-bg: linear-gradient(135deg, rgba(245, 158, 11, .14) 0%, rgba(217, 119, 6, .08) 100%), #fffbeb;--banner-grace-border: rgba(217, 119, 6, .32);--banner-grace-text: #92400e;--banner-grace-strong: #78350f;--banner-grace-dismiss: #b45309;--banner-grace-dismiss-hover: #78350f;--banner-grace-dismiss-hover-bg: rgba(245, 158, 11, .15);--banner-expired-bg: linear-gradient(135deg, rgba(99, 102, 241, .12) 0%, rgba(168, 85, 247, .08) 100%), #f5f3ff;--banner-expired-border: rgba(124, 58, 237, .3);--banner-expired-text: #3730a3;--banner-expired-strong: #1e1b4b;--banner-expired-dismiss: #4f46e5;--banner-expired-dismiss-hover: #312e81;--banner-expired-dismiss-hover-bg: rgba(99, 102, 241, .12);--banner-gratitude-bg: linear-gradient(135deg, rgba(147, 51, 234, .12) 0%, rgba(168, 85, 247, .08) 100%), #faf5ff;--banner-gratitude-border: rgba(147, 51, 234, .3);--banner-gratitude-text: #6b21a8;--banner-gratitude-strong: #581c87;--banner-gratitude-close: #7e22ce;--banner-gratitude-close-hover: #581c87;--banner-gratitude-close-hover-bg: rgba(147, 51, 234, .12);--scrollbar-thumb: rgba(24, 24, 27, .38);--scrollbar-thumb-hover: #18181b;--scrollbar-thumb-active: #09090b}:root.dark{color-scheme:dark;--primary-color: #6366f1;--primary-hover: #4f46e5;--secondary-color: #a1a1aa;--background-color: #0b1120;--surface-color: #151c2c;--text-main: #e2e8f0;--text-muted: #94a3b8;--border-color: #273449;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .4);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .5), 0 2px 4px -2px rgb(0 0 0 / .5);--dot-scheduled: #3b82f6;--dot-completed: #22c55e;--dot-rejected: #ef4444;--dot-pending: #f59e0b;--dot-to-receive: #facc15;--dot-blocked: #f97316;--banner-readonly-bg: linear-gradient(135deg, rgba(244, 63, 94, .22) 0%, rgba(225, 29, 72, .15) 100%), #1c0f16;--banner-readonly-border: rgba(244, 63, 94, .45);--banner-readonly-text: #fecdd3;--banner-readonly-strong: #ffffff;--banner-readonly-dismiss: #fda4af;--banner-readonly-dismiss-hover: #ffffff;--banner-readonly-dismiss-hover-bg: rgba(244, 63, 94, .25);--banner-grace-bg: linear-gradient(135deg, rgba(245, 158, 11, .22) 0%, rgba(217, 119, 6, .15) 100%), #1c1608;--banner-grace-border: rgba(245, 158, 11, .45);--banner-grace-text: #fde68a;--banner-grace-strong: #ffffff;--banner-grace-dismiss: #fcd34d;--banner-grace-dismiss-hover: #ffffff;--banner-grace-dismiss-hover-bg: rgba(245, 158, 11, .25);--banner-expired-bg: linear-gradient(135deg, rgba(99, 102, 241, .22) 0%, rgba(168, 85, 247, .16) 100%), #121324;--banner-expired-border: rgba(168, 85, 247, .45);--banner-expired-text: #e0e7ff;--banner-expired-strong: #ffffff;--banner-expired-dismiss: #c7d2fe;--banner-expired-dismiss-hover: #ffffff;--banner-expired-dismiss-hover-bg: rgba(99, 102, 241, .25);--banner-gratitude-bg: linear-gradient(135deg, rgba(147, 51, 234, .22) 0%, rgba(168, 85, 247, .16) 100%), #180e26;--banner-gratitude-border: rgba(147, 51, 234, .45);--banner-gratitude-text: #f3e8ff;--banner-gratitude-strong: #ffffff;--banner-gratitude-close: #d8b4fe;--banner-gratitude-close-hover: #ffffff;--banner-gratitude-close-hover-bg: rgba(147, 51, 234, .25);--scrollbar-thumb: rgba(99, 102, 241, .45);--scrollbar-thumb-hover: #6366f1;--scrollbar-thumb-active: #4f46e5}html,body{margin:0;padding:0;width:100%;max-width:100%;overflow-x:hidden;font-family:var(--font-family-base);background-color:var(--background-color);color:var(--text-main);-webkit-font-smoothing:antialiased}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:9999px;transition:background .2s ease,box-shadow .2s ease}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover);box-shadow:0 0 8px color-mix(in srgb,var(--scrollbar-thumb-hover) 35%,transparent)}::-webkit-scrollbar-thumb:active{background:var(--scrollbar-thumb-active)}::-webkit-scrollbar-corner{background:transparent}::-webkit-scrollbar-button{display:none!important;width:0!important;height:0!important}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600}button{cursor:pointer}.glass{background:color-mix(in srgb,var(--surface-color) 70%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid color-mix(in srgb,var(--surface-color) 30%,transparent);box-shadow:0 8px 32px #1f268712}.fade-in{animation:fadeIn .5s ease forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.btn-base,.btn-danger,.btn-icon,.btn-secondary,.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.25rem;border-radius:.6rem;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);border:1px solid transparent;font-family:inherit;font-size:.875rem;line-height:1.25rem;-webkit-user-select:none;user-select:none;text-decoration:none}.btn-base:hover,.btn-danger:hover,.btn-icon:hover,.btn-secondary:hover,.btn-primary:hover{transform:translateY(-1px)}.btn-base:active,.btn-danger:active,.btn-icon:active,.btn-secondary:active,.btn-primary:active{transform:translateY(0)}.btn-base:disabled,.btn-danger:disabled,.btn-icon:disabled,.btn-secondary:disabled,.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-primary{background:var(--primary-color);color:#fff}.btn-primary:hover{background:var(--primary-hover);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.btn-secondary{background:var(--surface-color);border-color:var(--border-color);color:var(--text-main)}.btn-secondary:hover{background:var(--background-color);border-color:var(--text-muted)}.btn-icon{background:transparent;padding:.5rem;border-radius:.5rem;color:var(--text-muted);border:none}.btn-icon:hover{background:var(--background-color);color:var(--text-main)}.btn-icon.danger:hover{background:#fee2e2;color:#ef4444}.btn-danger{background:#fee2e2;color:#991b1b}.btn-danger:hover{background:#fecaca}.btn-loading{position:relative;color:transparent!important;pointer-events:none}.btn-loading:after{content:"";position:absolute;width:1rem;height:1rem;top:calc(50% - .5rem);left:calc(50% - .5rem);border:2px solid currentColor;border-radius:50%;border-right-color:transparent;animation:btn-spin .75s linear infinite}@keyframes btn-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.dashboard-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.section-card{padding:1.5rem;border-radius:1.5rem;display:flex;flex-direction:column}.section-card h3{font-size:1.1rem;margin-bottom:1.25rem;font-weight:700;color:var(--text-main)}.summary-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}.transaction-list{display:flex;flex-direction:column;gap:.75rem}.transaction-list .transaction-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--border-color)}.transaction-list .transaction-item:last-child{border-bottom:none}.transaction-list .transaction-item .trans-info{display:flex;flex-direction:column;gap:.2rem}.transaction-list .transaction-item .trans-info .trans-main{display:flex;align-items:center;gap:.5rem}.transaction-list .transaction-item .trans-info .trans-main .trans-desc{font-weight:500;color:var(--text-main)}.transaction-list .transaction-item .trans-info .trans-main .trans-method{font-size:.7rem;background:var(--background-color);padding:.1rem .5rem;border-radius:1rem;color:var(--text-muted)}.transaction-list .transaction-item .trans-info .trans-notes{font-size:.75rem;color:var(--text-muted);font-style:italic}.transaction-list .transaction-item .trans-amount{font-weight:600;white-space:nowrap}.transaction-list .transaction-item.income .trans-amount{color:#059669}.transaction-list .transaction-item.expense .trans-amount{color:#dc2626}.form-message{margin:.75rem 0 0;padding:.6rem .8rem;border-radius:.5rem;font-size:.85rem;line-height:1.4}.form-message.error{background:color-mix(in srgb,#dc2626 12%,transparent);color:#b91c1c}.form-message.success{background:color-mix(in srgb,#16a34a 12%,transparent);color:#15803d}@media(max-width:768px)and (orientation:portrait){.modal-overlay,.appointment-details-modal-overlay,.day-overview-modal-overlay,.dialog-overlay,.overlay{align-items:flex-end!important;padding:0!important}.modal-content,.modal-card,.appointment-details-modal,.day-overview-modal,.dialog{width:100%!important;max-width:100%!important;border-radius:24px 24px 0 0!important;padding:1.5rem 1.25rem!important;padding-bottom:calc(3.5rem + env(safe-area-inset-bottom,28px))!important;max-height:85vh!important;overflow-y:auto!important;animation:modalSlideUp .3s cubic-bezier(.16,1,.3,1)!important}.modal-actions,.actions,.action-buttons,.reject-box-actions,.day-overview-footer{padding-bottom:calc(1.5rem + env(safe-area-inset-bottom,24px))!important}@keyframes modalSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}}@media(orientation:landscape)and (max-height:550px){.modal-overlay{align-items:center!important;justify-content:center!important;padding:.5rem!important}.modal-content,.modal-card{width:94%!important;max-width:540px!important;max-height:94dvh!important;border-radius:16px!important;padding:.75rem 1rem!important;overflow-y:auto!important}}
