@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,300..0,800;1,300..1,800&family=Playfair+Display:ital,wght@0,400..0,900;1,400..1,900&display=swap";:root{--black:#0f0f0f;--white:#fff;--ink:#251b2b;--blush:#e295a3;--blush-d:#c96d7d;--sage:#8faaa0;--cream:#faf5f7;--surface:#fff;--border:#efe9ed;--muted:#9c8e96;--error:#d94f3d;--success:#3a9d6a;--warning:#d4882a;--font-display:"Playfair Display", serif;--font-body:"Plus Jakarta Sans", sans-serif;--radius-sm:8px;--radius:16px;--radius-lg:24px;--shadow-sm:0 2px 8px #251b2b0a;--shadow:0 8px 30px #251b2b14;--shadow-lg:0 16px 48px #251b2b1f;--transition:.25s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-body);background:var(--cream);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.5}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}.gradient-overlay-soft{pointer-events:none;z-index:1;background:linear-gradient(#faf5f700 0%,#faf5f773 35%,#faf5f7 100%);position:absolute;inset:0}.marquee-wrapper{opacity:.28;z-index:0;pointer-events:none;display:flex;position:absolute;inset:0;overflow:hidden}.marquee-container{gap:20px;width:max-content;animation:32s linear infinite marquee-scroll;display:flex}.marquee-strip{object-fit:cover;width:105px;height:135vh;box-shadow:var(--shadow-sm);border-radius:14px;transform:translateY(-8%)}@keyframes marquee-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (width<=768px){.client-mobile-lock{flex-direction:column;display:flex;position:relative;height:100dvh!important;min-height:100dvh!important;max-height:100dvh!important;overflow:hidden!important}.client-mobile-lock .app-content{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden!important}}.app-content{flex-direction:column;display:flex}input,select,textarea{border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--white);width:100%;color:var(--ink);transition:border-color var(--transition);outline:none;padding:10px 14px;font-family:inherit;font-size:.95rem}input:focus,select:focus,textarea:focus{border-color:var(--blush)}.swipe-row{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:16px;padding:8px 4px 16px;display:flex;overflow:auto hidden}.swipe-row::-webkit-scrollbar{display:none}.swipe-card{scroll-snap-align:start;flex-shrink:0}.container{width:100%;max-width:1100px;margin:0 auto;padding:0 16px}.container-sm{width:100%;max-width:520px;margin:0 auto;padding:0 16px}.btn{border-radius:var(--radius-sm);transition:all var(--transition);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-size:.9rem;font-weight:600;display:inline-flex}.btn-primary{background:var(--ink);color:var(--white)}.btn-primary:hover{background:#35293d}.btn-accent{background:var(--blush);color:var(--white)}.btn-accent:hover{background:var(--blush-d)}.btn-outline{border:1.5px solid var(--ink);color:var(--ink);background:0 0}.btn-outline:hover{background:var(--ink);color:var(--white)}.btn-ghost{color:var(--ink);background:0 0}.btn-sm{padding:8px 16px;font-size:.8rem}.btn:disabled{opacity:.5;cursor:not-allowed}.card{background:var(--white);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);padding:16px}.badge{border-radius:99px;padding:4px 10px;font-size:.75rem;font-weight:600;display:inline-block}.badge-pending{color:#e65100;background:#fff3e0}.badge-paid{color:#2e7d32;background:#e8f5e9}.badge-completed{color:#6a1b9a;background:#f3e5f5}.badge-cancelled{color:#880e4f;background:#fce4ec}.spinner{border:3px solid var(--border);border-top-color:var(--blush);border-radius:50%;width:28px;height:28px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.page-loading{flex-direction:column;justify-content:center;align-items:center;gap:12px;height:100dvh;display:flex}.card:has(table){-webkit-overflow-scrolling:touch;overflow:auto hidden!important}.card:has(table) table{width:100%;min-width:750px}table{border-collapse:collapse;width:100%;font-size:.88rem}thead th{text-align:left;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);border-bottom:2px solid var(--border);background:var(--cream);padding:10px 14px;font-size:.78rem;font-weight:600}tbody td{border-bottom:1px solid var(--border);vertical-align:middle;padding:12px 14px}tbody tr:hover{background:var(--cream)}
