@import "https://fonts.googleapis.com/css2?family=Fredoka:wght@400;500;600;700&family=Baloo+2:wght@500;600;700;800&display=swap";:root{--coral:#ff7a59;--coral-d:#ff5a34;--teal:#1fc4c4;--teal-d:#12a5a5;--sun:#ffd23f;--pink:#ff6baa;--violet:#9b6bff;--mint:#43d9a3;--sky:#63b3ff;--ink:#2b2440;--ink-soft:#6a6382;--paper:#fffdf7;--border:#2b2440;--ring:#9b6bff59;--shadow-sm:3px 3px 0 #2b244024;--shadow:0 8px 0 #2b24401a, 0 14px 24px #2b24401f;--shadow-pop:6px 6px 0 var(--ink);--radius:22px;--radius-lg:30px;--sans:"Fredoka", system-ui, "Segoe UI", sans-serif;--display:"Baloo 2", "Fredoka", system-ui, sans-serif;font-family:var(--sans);color:var(--ink);font-synthesis:none;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{height:100%}body{color:var(--ink);background:radial-gradient(1200px 600px at 10% -10%,#63b3ff33,#0000 60%),radial-gradient(1000px 500px at 100% 0,#ff6baa2e,#0000 55%),radial-gradient(900px 500px at 50% 120%,#43d9a333,#0000 55%),#fff7ec;min-height:100vh;margin:0;font-size:17px;line-height:1.5}body:before{content:"";z-index:-1;pointer-events:none;background-image:radial-gradient(#2b24400d 2px,#0000 2px);background-size:26px 26px;position:fixed;inset:0}h1,h2,h3{font-family:var(--display);color:var(--ink);margin:0 0 .4em;line-height:1.1}h1{letter-spacing:-.5px;font-size:clamp(2rem,5vw,3.4rem)}h2{font-size:clamp(1.4rem,3vw,2rem)}p{margin:0 0 1rem}a{color:var(--violet);font-weight:600;text-decoration:none}a:hover{text-decoration:underline}.btn{font-family:var(--display);border:3px solid var(--ink);color:var(--ink);cursor:pointer;box-shadow:var(--shadow-pop);background:#fff;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:12px 22px;font-size:1rem;font-weight:700;text-decoration:none;transition:transform .12s,box-shadow .12s,filter .12s;display:inline-flex}.btn:hover{box-shadow:8px 8px 0 var(--ink);text-decoration:none;transform:translate(-2px,-2px)}.btn:active{box-shadow:2px 2px 0 var(--ink);transform:translate(3px,3px)}.btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:var(--shadow-pop);transform:none}.btn-primary{background:var(--coral);color:#fff}.btn-teal{background:var(--teal);color:#fff}.btn-violet{background:var(--violet);color:#fff}.btn-sun{background:var(--sun);color:var(--ink)}.btn-ghost{background:#fff}.btn-danger{color:#fff;background:#ff5d6c}.btn-sm{box-shadow:3px 3px 0 var(--ink);border-width:2px;padding:7px 14px;font-size:.85rem}.btn-block{width:100%}.card{background:var(--paper);border:3px solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field>label{color:var(--ink-soft);font-size:.9rem;font-weight:600}input,select,textarea{font-family:var(--sans);color:var(--ink);border:3px solid var(--ink);background:#fff;border-radius:14px;width:100%;padding:11px 14px;font-size:1rem;transition:box-shadow .15s,border-color .15s}input:focus,select:focus,textarea:focus{box-shadow:0 0 0 4px var(--ring);outline:none}textarea{resize:vertical;min-height:84px}.badge{border:2px solid var(--ink);background:#fff;border-radius:999px;align-items:center;gap:5px;padding:4px 12px;font-size:.78rem;font-weight:700;display:inline-flex}.badge-scheduled{background:var(--sky);color:#fff}.badge-done{background:var(--mint);color:#fff}.badge-cancelled{color:var(--ink);background:#ffb0b8}.alert{border:3px solid var(--ink);border-radius:14px;margin-bottom:12px;padding:10px 14px;font-weight:600}.alert-error{color:#c02b3a;background:#ffe0e3}.alert-info{background:#e4f6ff}@keyframes floaty{0%,to{transform:translateY(0) rotate(var(--rot,0deg))}50%{transform:translateY(-16px) rotate(var(--rot,0deg))}}@keyframes wiggle{0%,to{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}@keyframes pop-in{0%{opacity:0;transform:scale(.6)}70%{opacity:1;transform:scale(1.08)}to{transform:scale(1)}}@keyframes slide-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes spin-slow{to{transform:rotate(360deg)}}.floaty{animation:5s ease-in-out infinite floaty}.wiggle-hover:hover{animation:.4s ease-in-out wiggle}.pop-in{animation:.5s cubic-bezier(.34,1.56,.64,1) both pop-in}.slide-up{animation:.45s both slide-up}.spinner{border:5px solid #2b244026;border-top-color:var(--coral);border-radius:50%;width:44px;height:44px;animation:.8s linear infinite spin-slow}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.support-widget{z-index:1000;text-align:left;position:fixed;bottom:20px;right:20px}.support-fab{background:var(--accent);color:#fff;font:600 15px/1 var(--sans);cursor:pointer;box-shadow:var(--shadow);border:none;border-radius:999px;align-items:center;gap:6px;padding:12px 18px;transition:transform .15s,filter .15s;display:inline-flex}.support-fab:hover{filter:brightness(1.05);transform:translateY(-1px)}.support-fab:focus-visible{outline:2px solid var(--accent-border);outline-offset:2px}.support-panel{background:var(--bg);border:1px solid var(--border);width:min(370px,100vw - 40px);max-height:min(560px,100vh - 100px);box-shadow:var(--shadow);border-radius:14px;flex-direction:column;display:flex;position:absolute;bottom:60px;right:0;overflow:hidden}.support-header{border-bottom:1px solid var(--border);background:var(--accent-bg);justify-content:space-between;align-items:center;gap:8px;padding:14px 16px;display:flex}.support-header strong{color:var(--text-h);font-size:16px;display:block}.support-sub{color:var(--text);font-size:12px;display:block}.support-newbtn{border:1px solid var(--border);background:var(--bg);color:var(--text-h);cursor:pointer;border-radius:6px;padding:5px 10px;font-size:13px}.support-newbtn:hover{border-color:var(--accent-border)}.support-body{flex-direction:column;flex:auto;gap:10px;min-height:0;padding:14px 16px;display:flex}.support-intro,.support-empty{color:var(--text);margin:0;font-size:14px}.support-new{flex-direction:column;gap:10px;display:flex}.support-input,.support-textarea{box-sizing:border-box;border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text-h);font:15px/1.4 var(--sans);resize:vertical;border-radius:8px;padding:10px 12px}.support-input:focus,.support-textarea:focus{border-color:var(--accent-border);outline:none}.support-send{background:var(--accent);color:#fff;font:600 14px/1 var(--sans);cursor:pointer;border:none;border-radius:8px;align-self:flex-end;padding:9px 16px}.support-send:disabled{opacity:.5;cursor:not-allowed}.support-thread{flex-direction:column;flex:auto;gap:10px;min-height:120px;padding-right:4px;display:flex;overflow-y:auto}.support-msg{flex-direction:column;max-width:82%;display:flex}.support-msg.is-client{align-self:flex-end;align-items:flex-end}.support-msg.is-support{align-self:flex-start;align-items:flex-start}.support-bubble{white-space:pre-wrap;word-break:break-word;border-radius:14px;padding:9px 13px;font-size:14px;line-height:1.4}.is-client .support-bubble{background:var(--accent);color:#fff;border-bottom-right-radius:4px}.is-support .support-bubble{background:var(--social-bg);color:var(--text-h);border:1px solid var(--border);border-bottom-left-radius:4px}.support-author{color:var(--text);margin-top:3px;font-size:11px}.support-typing{letter-spacing:2px;animation:1.2s infinite support-blink}@keyframes support-blink{0%,to{opacity:.35}50%{opacity:1}}.support-composer{border-top:1px solid var(--border);align-items:flex-end;gap:8px;padding-top:10px;display:flex}.support-composer .support-textarea{flex:auto}.support-composer .support-send{align-self:stretch}.support-error{color:#e5484d;margin:0;font-size:13px}.fullscreen-center{place-items:center;gap:16px;min-height:100vh;display:grid}.auth-wrap{place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{width:min(440px,100%);animation:.5s cubic-bezier(.34,1.56,.64,1) both pop-in}.auth-card h1{text-align:center}.auth-mascot{text-align:center;font-size:3.4rem;display:block}.auth-switch{text-align:center;color:var(--ink-soft);margin:14px 0 0}.landing{max-width:1100px;margin:0 auto;padding:28px 20px 80px}.landing-nav{justify-content:space-between;align-items:center;margin-bottom:40px;display:flex}.brand{font-family:var(--display);align-items:center;gap:10px;font-size:1.5rem;font-weight:800;display:inline-flex}.brand .logo{background:var(--coral);border:3px solid var(--ink);width:46px;height:46px;box-shadow:var(--shadow-sm);border-radius:16px;place-items:center;font-size:1.5rem;display:grid}.hero{grid-template-columns:1.1fr .9fr;align-items:center;gap:32px;display:grid}.hero h1 span{color:var(--coral)}.hero p.lead{color:var(--ink-soft);max-width:30ch;font-size:1.2rem}.hero-cta{flex-wrap:wrap;gap:14px;margin-top:8px;display:flex}.hero-art{place-items:center;height:340px;display:grid;position:relative}.blob{border:3px solid var(--ink);box-shadow:var(--shadow-sm);border-radius:50%;position:absolute}.blob-1{background:var(--sun);--rot:-4deg;width:210px;height:210px;top:20px;left:30px}.blob-2{background:var(--teal);--rot:6deg;width:150px;height:150px;bottom:10px;right:40px}.blob-3{background:var(--pink);--rot:-8deg;width:96px;height:96px;top:0;right:90px}.hero-emoji{z-index:2;filter:drop-shadow(4px 6px #2b244033);font-size:8rem;position:relative}.features{grid-template-columns:repeat(3,1fr);gap:20px;margin-top:64px;display:grid}.feature{text-align:center}.feature .ico{margin-bottom:6px;font-size:2.6rem;display:block}.feature h3{margin-bottom:4px;font-size:1.15rem}.feature p{color:var(--ink-soft);margin:0;font-size:.95rem}.cta-band{text-align:center;background:linear-gradient(135deg, var(--violet), var(--sky));color:#fff;margin-top:64px}.cta-band h2{color:#fff}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--paper);border-right:3px solid var(--ink);flex-direction:column;flex-shrink:0;gap:8px;width:250px;height:100vh;padding:22px 16px;display:flex;position:sticky;top:0}.sidebar .brand{margin-bottom:18px;padding:0 6px;font-size:1.3rem}.sidebar .clinic-tag{color:var(--ink-soft);border-bottom:2px dashed #2b24402e;margin-bottom:8px;padding:0 6px 12px;font-size:.8rem;font-weight:600}.nav-link{color:var(--ink);border:3px solid #0000;border-radius:14px;align-items:center;gap:12px;padding:11px 14px;font-weight:700;text-decoration:none;transition:background .12s,transform .12s;display:flex}.nav-link .ico{text-align:center;width:24px;font-size:1.3rem}.nav-link:hover{background:#9b6bff1f;text-decoration:none;transform:translate(3px)}.nav-link.active{background:var(--sun);border-color:var(--ink);box-shadow:var(--shadow-sm)}.sidebar-foot{margin-top:auto}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{border-bottom:3px solid var(--ink);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fff9;justify-content:space-between;align-items:center;gap:16px;padding:18px 28px;display:flex}.topbar .who{align-items:center;gap:10px;font-weight:700;display:flex}.avatar{border:3px solid var(--ink);background:var(--mint);border-radius:50%;place-items:center;width:40px;height:40px;font-size:1.2rem;display:grid}.page{width:100%;max-width:1080px;margin:0 auto;padding:28px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;display:flex}.page-head h1{margin:0}.page-head .sub{color:var(--ink-soft);margin:4px 0 0}.stat-grid{grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:26px;display:grid}.stat{align-items:center;gap:14px;animation:.5s cubic-bezier(.34,1.56,.64,1) both pop-in;display:flex}.stat .ico{border:3px solid var(--ink);border-radius:18px;flex-shrink:0;place-items:center;width:56px;height:56px;font-size:1.8rem;display:grid}.stat .n{font-family:var(--display);font-size:2rem;font-weight:800;line-height:1}.stat .l{color:var(--ink-soft);font-size:.9rem;font-weight:600}.stat-owners .ico{background:var(--sun)}.stat-patients .ico{background:var(--teal)}.stat-appts .ico{background:var(--pink)}.stat-upcoming .ico{background:var(--violet)}.dash-cols{grid-template-columns:1.4fr 1fr;gap:20px;display:grid}.quick-actions{flex-direction:column;gap:12px;display:flex}.toolbar{flex-wrap:wrap;gap:12px;margin-bottom:18px;display:flex}.toolbar .search{flex:1;min-width:200px}.list{flex-direction:column;gap:12px;display:flex}.row-card{align-items:center;gap:14px;padding:14px 18px;animation:.4s both slide-up;display:flex}.row-card .emoji{border:3px solid var(--ink);background:#fff;border-radius:14px;flex-shrink:0;place-items:center;width:48px;height:48px;font-size:1.5rem;display:grid}.row-main{flex:1;min-width:0}.row-main .title{font-family:var(--display);font-size:1.1rem;font-weight:700}.row-main .meta{color:var(--ink-soft);flex-wrap:wrap;gap:12px;font-size:.9rem;display:flex}.row-actions{flex-shrink:0;gap:8px;display:flex}.empty{text-align:center;color:var(--ink-soft);padding:46px 20px}.empty .big{margin-bottom:8px;font-size:3.4rem;animation:2.4s ease-in-out infinite bob;display:block}.modal-overlay{z-index:900;background:#2b244073;place-items:center;padding:20px;animation:.2s both slide-up;display:grid;position:fixed;inset:0}.modal{width:min(520px,100%);max-height:90vh;animation:.4s cubic-bezier(.34,1.56,.64,1) both pop-in;overflow:auto}.modal-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.modal-head h2{margin:0}.icon-btn{border:3px solid var(--ink);cursor:pointer;width:38px;height:38px;box-shadow:var(--shadow-sm);background:#fff;border-radius:12px;font-size:1.1rem}.icon-btn:hover{background:#ffe0e3}.form-grid{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}.form-grid .full{grid-column:1/-1}.modal-foot{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.theme-picker{flex-wrap:wrap;gap:10px;display:flex}.theme-dot{border:3px solid var(--ink);cursor:pointer;width:46px;height:46px;box-shadow:var(--shadow-sm);border-radius:50%;transition:transform .12s}.theme-dot:hover{transform:scale(1.1)}.theme-dot.sel{outline:4px solid var(--ring)}@media (width<=900px){.hero,.dash-cols{grid-template-columns:1fr}.hero-art{height:240px}.features{grid-template-columns:1fr}.stat-grid{grid-template-columns:1fr 1fr}}@media (width<=680px){.app-shell{flex-direction:column}.sidebar{border-right:none;border-bottom:3px solid var(--ink);flex-flow:wrap;align-items:center;width:100%;height:auto;position:static}.sidebar .brand,.sidebar .clinic-tag{border:none;width:100%;margin:0;padding:4px 6px}.sidebar-foot{margin:0}.nav-link{padding:8px 12px}.nav-link .label{display:none}.nav-link .ico{font-size:1.5rem}.form-grid,.stat-grid{grid-template-columns:1fr}.page{padding:18px}}
