:root{--color-primary-pink: #fec2cd;--color-primary-blue: #89c5cf;--color-ink: #2e2a28;--color-white: #ffffff;--color-pink-dark: color-mix(in srgb, var(--color-primary-pink) 62%, black 38%);--color-pink-soft: color-mix(in srgb, var(--color-primary-pink) 32%, white 68%);--color-pink-border: color-mix(in srgb, var(--color-primary-pink) 55%, white 45%);--color-blue-dark: color-mix(in srgb, var(--color-primary-blue) 62%, black 38%);--color-blue-soft: color-mix(in srgb, var(--color-primary-blue) 32%, white 68%);--color-blue-border: color-mix(in srgb, var(--color-primary-blue) 55%, white 45%);--color-background: #fffcfa;--color-surface: #ffffff;--color-text: var(--color-ink);--color-text-muted: color-mix(in srgb, var(--color-ink) 55%, white 45%);--color-accent: var(--color-pink-dark);--color-secondary: var(--color-blue-dark);--color-intense-pink: #f472b6;--color-intense-pink-hover: #ec4899;--color-intense-blue: #38bdf8;--color-intense-blue-hover: #0ea5e9;--color-header-pink: color-mix(in srgb, var(--color-intense-pink) 82%, white 18%);--font-heading: "Cormorant Garamond", Georgia, serif;--font-body: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}body{margin:0;font-family:var(--font-body);background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary-blue) 12%,var(--color-background) 88%),color-mix(in srgb,var(--color-primary-pink) 12%,var(--color-background) 88%));background-attachment:fixed;color:var(--color-text)}h1,h2,h3{font-family:var(--font-heading);font-weight:600;letter-spacing:.01em}h3{color:var(--color-secondary)}.card{background:var(--color-surface);border:1px solid var(--color-pink-border);border-radius:14px;padding:1.1rem 1.35rem;margin-bottom:1rem;box-shadow:0 2px 10px #89c5cf24}.btn{border:none;border-radius:10px;padding:.55rem 1.1rem;font-weight:600;cursor:pointer;font-size:.95rem;font-family:var(--font-body);transition:background-color .15s ease,transform .05s ease}.btn:active{transform:translateY(1px)}.btn-sm{padding:.3rem .8rem;font-size:.85rem}.btn-primary{background:var(--color-primary-pink);color:var(--color-ink)}.btn-primary:hover{background:var(--color-intense-pink);color:#fff}.btn-secondary{background:var(--color-primary-blue);color:var(--color-ink)}.btn-secondary:hover{background:var(--color-intense-blue);color:#fff}.btn-outline{background:var(--color-surface);color:var(--color-pink-dark);border:1px solid var(--color-pink-dark)}.btn-outline:hover{background:var(--color-pink-soft)}input,textarea,select{border:1px solid color-mix(in srgb,var(--color-ink) 18%,white 82%);border-radius:8px;padding:.55rem .65rem;font-size:.95rem;font-family:var(--font-body);width:100%;background:var(--color-surface);color:var(--color-text)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--color-primary-blue);box-shadow:0 0 0 3px var(--color-blue-soft)}label{display:block;margin-bottom:.75rem;font-weight:600;font-size:.85rem;color:var(--color-text-muted)}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:.6rem .75rem;border-bottom:1px solid var(--color-pink-border)}th{color:var(--color-pink-dark);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700}.badge{display:inline-block;padding:.2rem .65rem;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.02em;color:#fff}.badge-pending{background:#e0a458}.badge-confirmed{background:var(--color-blue-dark)}.badge-cancelled{background:#b6aca8}.badge-completed{background:#7fb787}.error-text{color:#b3453a;font-size:.9rem}.spinner{width:48px;height:48px;border-radius:50%;border:5px solid var(--color-blue-soft);border-top-color:var(--color-pink-dark);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.app-header{position:relative;background:linear-gradient(135deg,var(--color-intense-blue) 0%,var(--color-header-pink) 100%);padding:.6rem 1.5rem;box-shadow:0 2px 10px #2e2a281f}.app-header-inner{display:flex;align-items:center;justify-content:space-between}@media(min-width:1440px){.app-header-inner{max-width:1280px;margin:0 auto}}.app-header-brand{display:flex;align-items:center;gap:.6rem}.app-header-logo{width:36px;height:36px;object-fit:cover;border-radius:50%;border:2px solid white}.app-header-title{font-family:var(--font-heading);font-size:1.3rem;color:#fff;letter-spacing:.02em}.app-nav{display:flex;align-items:center;gap:1.25rem}.app-nav-link{color:#fff;text-decoration:none;font-weight:600;font-size:.92rem}.app-header-toggle{display:none}@media(max-width:639.98px){.app-header-toggle{display:flex;flex-direction:column;justify-content:center;gap:4px;width:32px;height:32px;padding:0;background:transparent;border:none;cursor:pointer}.app-header-toggle span{display:block;height:2px;background:#fff;border-radius:2px}.app-nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--color-intense-blue);box-shadow:0 8px 16px #2e2a282e;padding:.5rem 0;z-index:20}.app-nav-open{display:flex}.app-nav-link{padding:.75rem 1.25rem}.app-nav-logout{margin:.5rem 1.25rem;align-self:flex-start}}.app-footer{position:relative;overflow:hidden;height:110px;background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary-blue) 12%,var(--color-background) 88%),color-mix(in srgb,var(--color-primary-pink) 12%,var(--color-background) 88%));background-attachment:fixed}.butterfly-float-footer-a{animation:footer-float-a 13s ease-in-out infinite}.butterfly-float-footer-b{animation:footer-float-b 16s ease-in-out infinite}@keyframes footer-float-a{0%,to{transform:translate(0) rotate(-4deg)}50%{transform:translate(14px,-12px) rotate(4deg)}}@keyframes footer-float-b{0%,to{transform:translate(0) rotate(4deg)}50%{transform:translate(-12px,-10px) rotate(-4deg)}}.app-backdrop{background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary-blue) 12%,var(--color-background) 88%),color-mix(in srgb,var(--color-primary-pink) 12%,var(--color-background) 88%));background-attachment:fixed}.login-backdrop{background-size:200% 200%;animation:gradient-drift 16s ease-in-out infinite}@keyframes gradient-drift{0%{background-position:0% 0%}50%{background-position:100% 100%}to{background-position:0% 0%}}.butterfly-float{position:absolute;pointer-events:none}.butterfly-float-a{animation:float-path-a 24s ease-in-out infinite}.butterfly-float-b{animation:float-path-b 29s ease-in-out infinite}@keyframes float-path-a{0%{transform:translate(0) rotate(-6deg)}25%{transform:translate(110px,-70px) rotate(5deg)}50%{transform:translate(30px,-150px) rotate(-8deg)}75%{transform:translate(-90px,-60px) rotate(6deg)}to{transform:translate(0) rotate(-6deg)}}@keyframes float-path-b{0%{transform:translate(0) rotate(5deg)}30%{transform:translate(-100px,-55px) rotate(-6deg)}60%{transform:translate(-25px,-130px) rotate(8deg)}85%{transform:translate(95px,-45px) rotate(-4deg)}to{transform:translate(0) rotate(5deg)}}.butterfly-outline{fill:none;stroke:var(--butterfly-color, #2e2a28);stroke-opacity:.55;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.butterfly-wing-fill{fill:var(--butterfly-color, #2e2a28);fill-opacity:.45;stroke:var(--butterfly-color, #2e2a28);stroke-opacity:.75;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.butterfly-wing-inner{fill:none;stroke:var(--butterfly-color, #2e2a28);stroke-opacity:.4;stroke-width:1.1}.butterfly-wings{animation:wing-flap 1.1s ease-in-out infinite}@keyframes wing-flap{0%,to{transform:scaleX(1)}50%{transform:scaleX(.35)}}.login-card{position:relative;z-index:1;border-radius:28px!important}.btn-login{background:var(--color-intense-pink);color:#fff}.btn-login:hover{background:var(--color-intense-pink-hover)}.file-picker{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.file-picker input[type=file]{display:none}.file-picker-name{color:var(--color-text-muted);font-size:.85rem}.page-container{padding:1rem}@media(min-width:640px){.page-container{padding:1.5rem}}@media(min-width:1024px){.page-container{padding:2rem 2.5rem}}@media(min-width:1440px){.page-container{width:100%;max-width:1280px;margin:0 auto}}.btn-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.split-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem}.form-grid{display:block}@media(min-width:640px){.form-grid{display:grid;grid-template-columns:repeat(2,1fr);column-gap:1.5rem;align-items:start}.form-grid-full{grid-column:1 / -1}}@media(max-width:639.98px){table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}th,td{white-space:nowrap}}
