:root{--color-primary:#1b5e4f;--color-on-primary:#fff;--color-primary-dark:#0d3b30;--color-accent:#e0a96d;--color-bg:#f5f0e8;--color-surface:#fff;--color-text:#1c1b18;--color-text-muted:#5b5952;--color-error:#ba1a1a;--color-success:#2f7d4f;--color-border:#ddd6c8;--radius:12px}[data-theme=light]{--color-primary:#1b5e4f;--color-on-primary:#fff;--color-primary-dark:#0d3b30;--color-accent:#e0a96d;--color-bg:#f5f0e8;--color-surface:#fff;--color-text:#1c1b18;--color-text-muted:#5b5952;--color-error:#ba1a1a;--color-success:#2f7d4f;--color-border:#ddd6c8}[data-theme=dark]{--color-primary:#5fb797;--color-on-primary:#14181a;--color-primary-dark:#d7f0e6;--color-accent:#e0a96d;--color-bg:#14181a;--color-surface:#1e2326;--color-text:#eef0ee;--color-text-muted:#a9afac;--color-error:#ff6b6b;--color-success:#6fcf97;--color-border:#333a3d}[data-theme=calm-teal]{--color-primary:#0f6e56;--color-on-primary:#fff;--color-primary-dark:#073d30;--color-accent:#5dcaa5;--color-bg:#f2faf7;--color-surface:#fff;--color-text:#14231e;--color-text-muted:#5a6e67;--color-error:#ba1a1a;--color-success:#1d9e75;--color-border:#cdeade}[data-theme=warm-blush]{--color-primary:#993556;--color-on-primary:#fff;--color-primary-dark:#5c1f34;--color-accent:#d4537e;--color-bg:#fdf3f6;--color-surface:#fff;--color-text:#241318;--color-text-muted:#7a5c65;--color-error:#ba1a1a;--color-success:#2f7d4f;--color-border:#f4d3de}[data-theme=autumn-harvest]{--color-primary:#ba7517;--color-on-primary:#1c1b18;--color-primary-dark:#5c3a09;--color-accent:#d85a30;--color-bg:#fdf6ea;--color-surface:#fffaf1;--color-text:#2b1f10;--color-text-muted:#7a6a51;--color-error:#ba1a1a;--color-success:#3b6d11;--color-border:#ecdcb8}[data-theme=halloween]{--color-primary:#d3852f;--color-on-primary:#1b1712;--color-primary-dark:#2a1c10;--color-accent:#ef9f27;--color-bg:#1b1712;--color-surface:#241d16;--color-text:#f3ead9;--color-text-muted:#b8a98d;--color-error:#ff6b57;--color-success:#8bc34a;--color-border:#3a2f22}[data-theme=halloween-light]{--color-primary:#b35a0f;--color-on-primary:#fff;--color-primary-dark:#4a2606;--color-accent:#e8890c;--color-bg:#fbf3e4;--color-surface:#fffaf0;--color-text:#2a1c10;--color-text-muted:#6f5a43;--color-error:#b3261e;--color-success:#4b7a1f;--color-border:#ebd9bb}[data-theme=winter-holiday]{--color-primary:#3b6d11;--color-on-primary:#fff;--color-primary-dark:#1c3608;--color-accent:#a32d2d;--color-bg:#f5fafd;--color-surface:#fff;--color-text:#16261d;--color-text-muted:#5c6f66;--color-error:#a32d2d;--color-success:#3b6d11;--color-border:#d8e9ec}[data-theme=spring-bloom]{--color-primary:#639922;--color-on-primary:#1c1b18;--color-primary-dark:#345310;--color-accent:#d4537e;--color-bg:#f7fbf0;--color-surface:#fff;--color-text:#202a16;--color-text-muted:#647254;--color-error:#ba1a1a;--color-success:#639922;--color-border:#dcedc0}[data-theme=summer-solstice]{--color-primary:#a8752c;--color-on-primary:#000;--color-primary-dark:#5a3d14;--color-accent:#3f7d4a;--color-bg:#fbf2dd;--color-surface:#fffaf0;--color-text:#2b2410;--color-text-muted:#7a6b48;--color-error:#ba1a1a;--color-success:#3f7d4a;--color-border:#ecdcae}[data-theme=hanukkah]{--color-primary:#1d3f8f;--color-on-primary:#fff;--color-primary-dark:#0f1f3f;--color-accent:#c9a24a;--color-bg:#eef3fb;--color-surface:#fff;--color-text:#0f1f3f;--color-text-muted:#4d5d7d;--color-error:#ba1a1a;--color-success:#2f7d4f;--color-border:#cfe0f5}[data-theme=new-year]{--color-primary:#e8c65a;--color-on-primary:#14142b;--color-primary-dark:#f7f3e3;--color-accent:#e8c65a;--color-bg:#14142b;--color-surface:#1d1d3a;--color-text:#f7f3e3;--color-text-muted:#c3c1d6;--color-error:#ff6b57;--color-success:#6fcf97;--color-border:#33335c}[data-theme=valentines-day]{--color-primary:#c8102e;--color-on-primary:#fff;--color-primary-dark:#6e0819;--color-accent:#e63950;--color-bg:#fff1f2;--color-surface:#fff;--color-text:#3b0a14;--color-text-muted:#7d3a46;--color-error:#ba1a1a;--color-success:#2f7d4f;--color-border:#f5c9d0}[data-theme=new-year-light]{--color-primary:#8a6208;--color-on-primary:#fff;--color-primary-dark:#1d1d3a;--color-accent:#c9a227;--color-bg:#fbf8ee;--color-surface:#fffdf6;--color-text:#1d1d3a;--color-text-muted:#5d5b78;--color-error:#b3261e;--color-success:#2f7d4f;--color-border:#e8dfc2}[data-theme=winter-solstice-light]{--color-primary:#0f7a6c;--color-on-primary:#fff;--color-primary-dark:#0a3f3b;--color-accent:#2aa58f;--color-bg:#eef8f6;--color-surface:#fbfefd;--color-text:#0f2a30;--color-text-muted:#4d6b68;--color-error:#b3261e;--color-success:#2f7d4f;--color-border:#c9e4de}[data-theme=winter-solstice]{--color-primary:#4fd1b8;--color-on-primary:#0f2a30;--color-primary-dark:#eaf7f4;--color-accent:#4fd1b8;--color-bg:#0f2a30;--color-surface:#16363d;--color-text:#eaf7f4;--color-text-muted:#a9cdc6;--color-error:#ff6b57;--color-success:#6fcf97;--color-border:#1f4b52}[data-theme=gay-pride]{--color-primary:#2f6fed;--color-on-primary:#fff;--color-primary-dark:#1a3f8f;--color-accent:#8b3fd1;--color-bg:#fbfbfb;--color-surface:#fff;--color-text:#1c1b18;--color-text-muted:#5b5952;--color-error:#e02020;--color-success:#3a9d3a;--color-border:#e6e6e6}[data-theme=world-womens-day]{--color-primary:#6a3f8f;--color-on-primary:#fff;--color-primary-dark:#3c2350;--color-accent:#f6c945;--color-bg:#fbf7ea;--color-surface:#fff;--color-text:#2e2038;--color-text-muted:#6a5c78;--color-error:#ba1a1a;--color-success:#2f7d4f;--color-border:#e3d5ef}.halloween-decorations{pointer-events:none;z-index:15;position:fixed;inset:0;overflow:hidden}.halloween-cobweb{opacity:.3;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cg fill='none' stroke='%23f3ead9' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M0 0 L100 0 M0 0 L0 100 M0 0 L52 52 M0 0 L100 42 M0 0 L42 100'/%3E%3Cpath d='M7 0 Q11 8 7 15 M15 0 Q24 15 15 28 M25 0 Q36 24 25 42 M38 0 Q49 32 38 58 M0 7 Q9 11 15 7 M0 15 Q15 24 28 15 M0 25 Q24 36 42 25'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;width:84px;height:84px;position:absolute;top:-14px}.halloween-cobweb-left{left:-14px}.halloween-cobweb-right{right:-14px;transform:scaleX(-1)}.halloween-bat{will-change:transform;filter:drop-shadow(0 2px 3px #00000059);animation-name:halloween-bat-fly;animation-timing-function:linear;animation-iteration-count:infinite;position:absolute;left:-10%}@keyframes halloween-bat-fly{0%{transform:translate(0)translateY(0)rotate(0)}25%{transform:translate(30vw)translateY(-18px)rotate(-6deg)}50%{transform:translate(60vw)translateY(6px)rotate(4deg)}75%{transform:translate(90vw)translateY(-10px)rotate(-4deg)}to{transform:translate(120vw)translateY(0)rotate(0)}}.halloween-spider{transform-origin:top;flex-direction:column;align-items:center;animation:6s ease-in-out infinite halloween-spider-swing;display:flex;position:absolute;top:0;right:12%}.halloween-spider-thread{background:#f3ead980;width:1px;height:60px}.halloween-spider-body{margin-top:-2px;font-size:20px;line-height:1}@keyframes halloween-spider-swing{0%,to{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}.halloween-witch{filter:drop-shadow(0 2px 3px #00000059);font-size:30px;animation:34s linear -8s infinite halloween-witch-fly;position:absolute;top:6%;left:-12%}@keyframes halloween-witch-fly{0%{transform:translate(0)translateY(0)rotate(-3deg)}50%{transform:translate(60vw)translateY(30px)rotate(3deg)}to{transform:translate(130vw)translateY(0)rotate(-3deg)}}[data-theme=halloween-light] .halloween-cobweb{opacity:.4;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cg fill='none' stroke='%236f5a43' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M0 0 L100 0 M0 0 L0 100 M0 0 L52 52 M0 0 L100 42 M0 0 L42 100'/%3E%3Cpath d='M7 0 Q11 8 7 15 M15 0 Q24 15 15 28 M25 0 Q36 24 25 42 M38 0 Q49 32 38 58 M0 7 Q9 11 15 7 M0 15 Q15 24 28 15 M0 25 Q24 36 42 25'/%3E%3C/g%3E%3C/svg%3E")}[data-theme=halloween-light] .halloween-spider-thread{background:#2a1c1073}[data-theme=halloween-light] .halloween-bat,[data-theme=halloween-light] .halloween-witch{filter:drop-shadow(0 2px 3px #2a1c1040)}.decorations-still,.decorations-still *{animation-play-state:paused!important}.decorations-still [style*="animation-delay: 0s"]{animation-delay:-6s!important}.winter-holiday-decorations{pointer-events:none;z-index:15;position:fixed;inset:0;overflow:hidden}.winter-holiday-holly{opacity:.85;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cg%3E%3Cellipse cx='18' cy='22' rx='24' ry='10' fill='%232e7d32' transform='rotate(-30 18 22)'/%3E%3Cellipse cx='34' cy='10' rx='24' ry='10' fill='%23388e3c' transform='rotate(12 34 10)'/%3E%3Cellipse cx='10' cy='40' rx='22' ry='9' fill='%232e7d32' transform='rotate(-62 10 40)'/%3E%3Ccircle cx='20' cy='19' r='6' fill='%23c62828'/%3E%3Ccircle cx='31' cy='26' r='6' fill='%23e53935'/%3E%3Ccircle cx='12' cy='29' r='5' fill='%23c62828'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;width:76px;height:76px;position:absolute;top:-10px}.winter-holiday-holly-left{left:-10px}.winter-holiday-holly-right{right:-10px;transform:scaleX(-1)}.winter-holiday-snowflake{color:#fff;will-change:transform, opacity;filter:drop-shadow(0 1px 2px #00000040);animation-name:winter-holiday-snow-fall;animation-timing-function:ease-in-out;animation-iteration-count:infinite;position:absolute;top:-8%}@keyframes winter-holiday-snow-fall{0%{opacity:0;transform:translateY(0)translate(0)}8%{opacity:.9}50%{transform:translateY(55vh)translate(14px)}92%{opacity:.9}to{opacity:0;transform:translateY(115vh)translate(-10px)}}.winter-holiday-sleigh{filter:drop-shadow(0 2px 3px #00000059);align-items:center;gap:2px;font-size:22px;animation:32s linear -9s infinite winter-holiday-sleigh-fly;display:inline-flex;position:absolute;top:7%;left:-16%}@keyframes winter-holiday-sleigh-fly{0%{transform:translate(0)translateY(0)rotate(-2deg)}50%{transform:translate(60vw)translateY(24px)rotate(2deg)}to{transform:translate(130vw)translateY(0)rotate(-2deg)}}.spring-bloom-decorations{pointer-events:none;z-index:15;position:fixed;inset:0;overflow:hidden}.spring-bloom-flower{opacity:.9;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cg%3E%3Cpath d='M14 40 Q4 30 14 18' fill='none' stroke='%23639922' stroke-width='4' stroke-linecap='round'/%3E%3Cellipse cx='24' cy='34' rx='6' ry='10' fill='%23639922' transform='rotate(30 24 34)'/%3E%3Cg transform='translate(22 16)'%3E%3Cellipse cx='0' cy='-11' rx='7' ry='11' fill='%23f4a7c3'/%3E%3Cellipse cx='0' cy='11' rx='7' ry='11' fill='%23f4a7c3'/%3E%3Cellipse cx='-11' cy='0' rx='11' ry='7' fill='%23f4a7c3'/%3E%3Cellipse cx='11' cy='0' rx='11' ry='7' fill='%23f4a7c3'/%3E%3Ccircle cx='0' cy='0' r='7' fill='%23f6c945'/%3E%3C/g%3E%3Cg transform='translate(42 30)'%3E%3Cellipse cx='0' cy='-8' rx='5' ry='8' fill='%23e08fb6'/%3E%3Cellipse cx='0' cy='8' rx='5' ry='8' fill='%23e08fb6'/%3E%3Cellipse cx='-8' cy='0' rx='8' ry='5' fill='%23e08fb6'/%3E%3Cellipse cx='8' cy='0' rx='8' ry='5' fill='%23e08fb6'/%3E%3Ccircle cx='0' cy='0' r='5' fill='%23f6c945'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;width:72px;height:72px;position:absolute;top:-10px}.spring-bloom-flower-left{left:-10px}.spring-bloom-flower-right{right:-10px;transform:scaleX(-1)}.spring-bloom-egg{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 78'%3E%3Cellipse cx='30' cy='42' rx='29' ry='35' fill='%23f7b6c2' stroke='%23c94f6d' stroke-width='2'/%3E%3Ccircle cx='19' cy='30' r='4.5' fill='%23ffffff'/%3E%3Ccircle cx='38' cy='24' r='3.5' fill='%23ffffff'/%3E%3Ccircle cx='30' cy='50' r='5' fill='%23ffffff'/%3E%3Ccircle cx='16' cy='55' r='3' fill='%23ffffff'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;animation-name:spring-bloom-egg-float;animation-timing-function:ease-in-out;animation-iteration-count:infinite;display:block;position:absolute}@keyframes spring-bloom-egg-float{0%,to{transform:translateY(0)rotate(-4deg)}50%{transform:translateY(-14px)rotate(4deg)}}.spring-bloom-chick{font-size:24px;animation:2.6s ease-in-out infinite spring-bloom-chick-bob;position:absolute;top:46%;right:6%}@keyframes spring-bloom-chick-bob{0%,to{transform:translateY(0)rotate(-3deg)}50%{transform:translateY(-8px)rotate(3deg)}}.spring-bloom-bunny{font-size:28px;animation:26s linear -6s infinite spring-bloom-bunny-hop-path;position:absolute;bottom:9%;left:-12%}.spring-bloom-bunny-hop{animation:.55s ease-in-out infinite spring-bloom-bunny-hop-bounce;display:inline-block}@keyframes spring-bloom-bunny-hop-path{0%{transform:translate(0)}to{transform:translate(124vw)}}@keyframes spring-bloom-bunny-hop-bounce{0%,to{transform:translateY(0)scaleX(1)}35%{transform:translateY(-16px)scaleX(.94)}65%{transform:translateY(-16px)scaleX(.94)}}.summer-solstice-decorations{pointer-events:none;z-index:15;position:fixed;inset:0;overflow:hidden}.summer-solstice-ivy{opacity:.85;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M2 60 Q22 46 14 26 Q8 8 30 6 Q52 4 46 26 Q40 48 62 40' fill='none' stroke='%233f7d4a' stroke-width='3.5' stroke-linecap='round'/%3E%3Cellipse cx='16' cy='22' rx='9' ry='5.5' fill='%232f6b3a' transform='rotate(35 16 22)'/%3E%3Cellipse cx='32' cy='8' rx='8' ry='5' fill='%233f7d4a' transform='rotate(-10 32 8)'/%3E%3Cellipse cx='44' cy='28' rx='8.5' ry='5' fill='%232f6b3a' transform='rotate(50 44 28)'/%3E%3Cellipse cx='58' cy='38' rx='7' ry='4.2' fill='%233f7d4a' transform='rotate(-20 58 38)'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;width:78px;height:78px;position:absolute;top:-10px}.summer-solstice-ivy-left{left:-10px}.summer-solstice-ivy-right{right:-10px;transform:scaleX(-1)}.summer-solstice-sun{filter:drop-shadow(0 0 6px #e8a52aa6);font-size:28px;animation:4s ease-in-out infinite summer-solstice-sun-glow;position:absolute;top:4px;right:58px}@keyframes summer-solstice-sun-glow{0%,to{opacity:.9;transform:scale(1)}50%{opacity:1;transform:scale(1.12)}}.summer-solstice-stonehenge{opacity:.55;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 100'%3E%3Cg fill='%238a8272'%3E%3Crect x='10' y='40' width='16' height='55'/%3E%3Crect x='44' y='40' width='16' height='55'/%3E%3Crect x='6' y='28' width='58' height='14'/%3E%3Crect x='130' y='20' width='18' height='75'/%3E%3Crect x='172' y='20' width='18' height='75'/%3E%3Crect x='124' y='6' width='72' height='16'/%3E%3Crect x='250' y='45' width='16' height='50'/%3E%3Crect x='284' y='45' width='16' height='50'/%3E%3Crect x='246' y='33' width='58' height='13'/%3E%3Crect x='0' y='92' width='320' height='8'/%3E%3C/g%3E%3C/svg%3E");background-position:bottom;background-repeat:no-repeat;background-size:contain;width:220px;height:64px;animation:10s ease-in-out infinite summer-solstice-stone-shimmer;position:absolute;bottom:78px;left:50%;transform:translate(-50%)}@keyframes summer-solstice-stone-shimmer{0%,to{opacity:.5}50%{opacity:.62}}.summer-solstice-druids{align-items:flex-end;gap:6px;animation:30s linear -10s infinite summer-solstice-druids-walk;display:inline-flex;position:absolute;bottom:82px;left:-8%}@keyframes summer-solstice-druids-walk{0%{transform:translate(0)}to{transform:translate(118vw)}}.summer-solstice-druid-step{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 60'%3E%3Cg fill='%233a3226'%3E%3Cpath d='M20 60 L8 60 Q6 40 12 26 Q16 16 20 14 Q24 16 28 26 Q34 40 32 60 Z'/%3E%3Ccircle cx='20' cy='13' r='8'/%3E%3C/g%3E%3C/svg%3E");background-position:bottom;background-repeat:no-repeat;background-size:contain;width:20px;height:32px;animation:.6s ease-in-out infinite summer-solstice-druid-gait;display:inline-block}.summer-solstice-druid-2{animation-delay:-.3s}@keyframes summer-solstice-druid-gait{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.hanukkah-decorations{pointer-events:none;z-index:15;position:fixed;inset:0;overflow:hidden}.hanukkah-star{opacity:.55;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cg fill='none' stroke='%23c9a24a' stroke-width='4' stroke-linejoin='round'%3E%3Cpath d='M50 8 L86 72 L14 72 Z'/%3E%3Cpath d='M50 92 L14 28 L86 28 Z'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;width:64px;height:64px;position:absolute;top:-8px}.hanukkah-star-left{left:-8px}.hanukkah-star-right{right:-8px}.hanukkah-candles{align-items:flex-end;gap:10px;display:inline-flex;position:absolute;top:4%;left:50%;transform:translate(-50%)}.hanukkah-candle{font-size:20px;animation:1.6s ease-in-out infinite hanukkah-candle-flicker}@keyframes hanukkah-candle-flicker{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}.hanukkah-coin{will-change:transform, opacity;font-size:20px;animation-name:hanukkah-coin-fall;animation-timing-function:ease-in-out;animation-iteration-count:infinite;position:absolute;top:-8%}@keyframes hanukkah-coin-fall{0%{opacity:0;transform:translateY(0)rotate(0)}10%{opacity:.9}50%{transform:translateY(55vh)rotate(180deg)}90%{opacity:.9}to{opacity:0;transform:translateY(115vh)rotate(360deg)}}.new-year-decorations{pointer-events:none;z-index:15;position:fixed;inset:0;overflow:hidden}.new-year-firework{filter:drop-shadow(0 0 6px #e8c65a99);font-size:30px;animation-name:new-year-firework-pop;animation-timing-function:ease-out;animation-iteration-count:infinite;position:absolute}@keyframes new-year-firework-pop{0%,to{opacity:0;transform:scale(.4)}15%{opacity:1;transform:scale(1.1)}35%{opacity:.9;transform:scale(1)}55%,to{opacity:0;transform:scale(.9)}}.new-year-confetti{will-change:transform, opacity;font-size:16px;animation-name:new-year-confetti-fall;animation-timing-function:ease-in-out;animation-iteration-count:infinite;position:absolute;top:-8%}@keyframes new-year-confetti-fall{0%{opacity:0;transform:translateY(0)rotate(0)}10%{opacity:.9}50%{transform:translateY(55vh)translate(12px)rotate(180deg)}90%{opacity:.9}to{opacity:0;transform:translateY(115vh)translate(-10px)rotate(360deg)}}.new-year-clock{font-size:24px;animation:2.4s ease-in-out infinite new-year-clock-pulse;position:absolute;top:6px;right:12px}@keyframes new-year-clock-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.valentines-day-decorations{pointer-events:none;z-index:15;position:fixed;inset:0;overflow:hidden}.valentines-day-rose{opacity:.75;font-size:30px;position:absolute;top:-6px}.valentines-day-rose-left{left:2px;transform:scaleX(-1)}.valentines-day-rose-right{right:2px}.valentines-day-heart{will-change:transform, opacity;animation-name:valentines-day-heart-float;animation-timing-function:ease-in-out;animation-iteration-count:infinite;display:block;position:absolute}@keyframes valentines-day-heart-float{0%,to{transform:translateY(0)rotate(-4deg)}50%{transform:translateY(-14px)rotate(4deg)}}.valentines-day-cupid{filter:drop-shadow(0 2px 3px #00000040);font-size:28px;animation:30s linear -8s infinite valentines-day-cupid-fly;position:absolute;top:10%;left:-12%}@keyframes valentines-day-cupid-fly{0%{transform:translate(0)translateY(0)rotate(-2deg)}50%{transform:translate(60vw)translateY(24px)rotate(2deg)}to{transform:translate(130vw)translateY(0)rotate(-2deg)}}.winter-solstice-decorations{pointer-events:none;z-index:15;position:fixed;inset:0;overflow:hidden}.winter-solstice-aurora{opacity:.35;filter:blur(10px);background:linear-gradient(90deg,#4fd1b8,#7fe0cc,#4f8fd1,#4fd1b8) 0 0/220% 100%;height:90px;animation:12s ease-in-out infinite winter-solstice-aurora-shift;position:absolute;top:0;left:0;right:0}@keyframes winter-solstice-aurora-shift{0%,to{opacity:.3;background-position:0%}50%{opacity:.5;background-position:100%}}.winter-solstice-evergreen{opacity:.8;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cg fill='%231f7a6c'%3E%3Cpolygon points='50,10 20,45 80,45'/%3E%3Cpolygon points='50,30 15,68 85,68'/%3E%3Cpolygon points='50,52 10,95 90,95'/%3E%3C/g%3E%3Crect x='44' y='90' width='12' height='10' fill='%234a3320'/%3E%3C/svg%3E");background-position:bottom;background-repeat:no-repeat;background-size:contain;width:60px;height:60px;position:absolute;bottom:-8px}.winter-solstice-evergreen-left{left:-6px}.winter-solstice-evergreen-right{right:-6px;transform:scaleX(-1)}[data-theme=winter-solstice-light] .winter-solstice-crystal{color:#4fb3a3}.winter-solstice-candle{filter:drop-shadow(0 0 8px #f4c542b3);font-size:26px;animation:2.2s ease-in-out infinite winter-solstice-candle-glow;position:absolute;bottom:80px;left:50%;transform:translate(-50%)}@keyframes winter-solstice-candle-glow{0%,to{opacity:.85;transform:translate(-50%)scale(1)}50%{opacity:1;transform:translate(-50%)scale(1.1)}}.winter-solstice-crystal{color:#cdeee6;will-change:transform, opacity;font-size:14px;animation-name:winter-solstice-crystal-drift;animation-timing-function:ease-in-out;animation-iteration-count:infinite;position:absolute;top:-8%}@keyframes winter-solstice-crystal-drift{0%{opacity:0;transform:translateY(0)translate(0)}10%{opacity:.8}50%{transform:translateY(55vh)translate(10px)}90%{opacity:.8}to{opacity:0;transform:translateY(115vh)translate(-8px)}}.gay-pride-decorations{pointer-events:none;z-index:15;position:fixed;inset:0;overflow:hidden}.gay-pride-arc{opacity:.5;background:conic-gradient(from 180deg at 50% 100%,#e02020 0deg,#f4a100 60deg,#f4d100 120deg,#3a9d3a 180deg,#2f6fed 240deg,#8b3fd1 300deg,#e02020 360deg);border-radius:50%;width:320px;height:160px;animation:6s ease-in-out infinite gay-pride-arc-glow;position:absolute;top:-140px;left:50%;transform:translate(-50%);-webkit-mask:radial-gradient(circle at 50% 100%,#0000 118px,#000 120px);mask:radial-gradient(circle at 50% 100%,#0000 118px,#000 120px)}@keyframes gay-pride-arc-glow{0%,to{opacity:.4}50%{opacity:.6}}.gay-pride-heart{will-change:transform, opacity;font-size:22px;animation-name:gay-pride-heart-float;animation-timing-function:ease-in-out;animation-iteration-count:infinite;display:block;position:absolute}@keyframes gay-pride-heart-float{0%,to{transform:translateY(0)rotate(-4deg)}50%{transform:translateY(-14px)rotate(4deg)}}.world-womens-day-decorations{pointer-events:none;z-index:15;position:fixed;inset:0;overflow:hidden}.world-womens-day-mimosa{opacity:.85;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M14 60 Q6 42 18 26' fill='none' stroke='%236a8f3f' stroke-width='3.5' stroke-linecap='round'/%3E%3Ccircle cx='20' cy='22' r='9' fill='%23f6c945'/%3E%3Ccircle cx='34' cy='12' r='7' fill='%23f6c945'/%3E%3Ccircle cx='38' cy='30' r='7.5' fill='%23f6c945'/%3E%3Ccircle cx='50' cy='16' r='6' fill='%23f6c945'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;width:70px;height:70px;position:absolute;top:-10px}.world-womens-day-mimosa-left{left:-10px}.world-womens-day-mimosa-right{right:-10px;transform:scaleX(-1)}.world-womens-day-venus{color:#6a3f8f;filter:drop-shadow(0 0 5px #6a3f8f80);font-size:24px;animation:3.2s ease-in-out infinite world-womens-day-venus-glow;position:absolute;top:8px;right:90px}@keyframes world-womens-day-venus-glow{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.app-shell{min-height:100vh}.announcement-banner{align-items:center;gap:10px;padding:10px 16px;font-size:14px;display:flex}.announcement-banner-label{flex-shrink:0;font-weight:700}.announcement-banner-message{flex:1}.announcement-banner-dismiss{cursor:pointer;color:inherit;opacity:.7;background:0 0;border:none;flex-shrink:0;padding:0 4px;font-size:18px;line-height:1}.announcement-banner-dismiss:hover{opacity:1}.announcement-banner-info{color:#1c4a7a;background:#dce8f6}.announcement-banner-warning{color:#7a5a12;background:#f3e6c8}.announcement-banner-urgent{color:var(--color-error);background:#f6d9d9}.announcement-banner-preview{border-radius:var(--radius);margin-bottom:20px;padding:14px 16px}.page{max-width:480px;margin:0 auto;padding:24px}.page-wide{max-width:640px}@media (orientation:landscape) and (width>=640px){.page{max-width:640px}.page-wide{max-width:880px}}@media (orientation:landscape) and (width>=960px){.page{max-width:760px}.page-wide{max-width:1100px}}.page-center{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.card{background:var(--color-surface);border-radius:var(--radius);text-align:center;width:100%;max-width:420px;padding:40px 32px;box-shadow:0 1px 3px #00000014}.brand-icon{color:var(--color-primary);margin-bottom:8px;font-size:40px}.brand-icon-image{object-fit:contain;width:56px;height:56px;margin-bottom:8px;display:inline-block}.success-icon{color:#2e7d32;margin-bottom:8px;font-size:40px}h1{margin:8px 0;font-size:24px}.subtitle{color:var(--color-text-muted);margin-bottom:24px;line-height:1.5}.button{border-radius:var(--radius);text-align:center;cursor:pointer;border:none;width:100%;max-width:480px;margin-top:12px;padding:14px 20px;font-size:16px;font-weight:600;text-decoration:none;transition:opacity .15s;display:block}.button:disabled{opacity:.6;cursor:not-allowed}.button-primary{background:var(--color-primary);color:var(--color-on-primary)}.button-primary:hover:not(:disabled){opacity:.92}.button-secondary{color:var(--color-primary);border:1.5px solid var(--color-primary);background:0 0}.button-danger{color:var(--color-error);border:1.5px solid var(--color-error);background:0 0}.page-header{align-items:center;gap:12px;margin-bottom:24px;display:flex}.back-link{color:var(--color-text);font-size:22px;line-height:1;text-decoration:none}.clients-admin-add{margin-left:auto}.form{flex-direction:column;gap:16px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field-label{color:var(--color-text-muted);font-size:13px;font-weight:600}.field-label-row{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.field-char-count{color:var(--color-text-muted);white-space:nowrap;font-size:12px;font-weight:400}.field-char-count-warning{color:#7a5a12;font-weight:600}.field-char-count-limit{color:var(--color-error);font-weight:600}.field-input{border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:8px;max-width:480px;padding:12px 14px;font-size:16px}.field-input:focus{border-color:var(--color-primary);outline:none}.field-input-error{border-color:var(--color-error)}textarea.field-input{resize:vertical;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px}.field-error{color:var(--color-error);font-size:13px}.form-error{color:var(--color-error);margin:0;font-size:14px}.form-success{color:var(--color-success);margin:0;font-size:14px}.client-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.clients-search{width:100%;max-width:480px;margin-bottom:16px;display:block}@media (orientation:landscape) and (width>=640px){.client-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}}.data-table-wrap{-webkit-overflow-scrolling:touch;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);width:100%;margin-bottom:16px;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;min-width:560px;font-size:14px}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--color-border);vertical-align:top;padding:12px 14px}.data-table th{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;background:var(--color-bg);font-size:12px;font-weight:700}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:#1b5e4f0d}.data-table-sort-button{font:inherit;text-transform:uppercase;letter-spacing:.02em;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;margin:0;padding:0;font-size:12px;font-weight:700;display:inline-flex}.data-table-sort-button:hover{color:var(--color-text)}.data-table-sort-arrow{opacity:.8;font-size:10px}.data-table-name{color:var(--color-text);margin:0 0 2px;font-weight:700}.data-table-subtext{color:var(--color-text-muted);margin:0;font-size:13px}.data-table-actions{flex-direction:column;align-items:flex-start;gap:6px;min-width:200px;display:flex}.data-table-actions .client-actions{margin-top:0}.data-table-empty{text-align:center;color:var(--color-text-muted);padding:24px 14px}.data-table-search{width:100%;max-width:480px;margin-bottom:16px;display:block}.alpha-index{flex-wrap:wrap;gap:2px;margin-bottom:16px;display:flex}.alpha-index-letter{width:24px;height:24px;color:var(--color-primary);border-radius:6px;justify-content:center;align-items:center;font-size:12px;font-weight:700;text-decoration:none;display:flex}.alpha-index-letter:hover{background:var(--color-surface)}.alpha-index-letter-disabled{color:var(--color-text-muted);opacity:.4;font-weight:600}.alpha-index-letter-disabled:hover{background:0 0}.client-card{background:var(--color-surface);border-radius:var(--radius);border:1px solid #0000;padding:16px 20px;box-shadow:0 1px 3px #0000000f}.client-card-hue-green{background:#d9f0df;border-color:#a9d9b8}.client-card-hue-amber{background:#fbe7c2;border-color:#edc17c}.client-card-hue-red{background:#f8d9d9;border-color:#eeb0b0}.client-card-hue-green .client-name,.client-card-hue-amber .client-name,.client-card-hue-red .client-name{color:#2c2a26}.client-card-hue-green .client-detail,.client-card-hue-amber .client-detail,.client-card-hue-red .client-detail{color:#2c2a26b8}.client-card-link{color:inherit;cursor:pointer;text-decoration:none;transition:box-shadow .15s;display:block}.client-card-link:hover{box-shadow:0 2px 8px #0000001f}.client-card-linked{outline:2px solid var(--color-accent);outline-offset:2px}.client-name{margin:0 0 4px;font-weight:700}.client-detail{color:var(--color-text-muted);margin:0;font-size:14px}.dashboard-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:32px;display:flex}.dashboard-header h1{margin:0}.eyebrow{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin:0 0 2px;font-size:13px;font-weight:600}.button-inline{flex-shrink:0;width:auto;margin-top:0;padding:10px 16px;display:inline-block;position:relative}.impersonation-banner{background:var(--color-accent);color:var(--color-primary-dark);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;font-size:13px;font-weight:600;display:flex}.impersonation-banner .button{margin-top:0;padding:6px 12px;font-size:13px}.button-badge{background:var(--color-error);color:#fff;text-align:center;border-radius:999px;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;line-height:18px;position:absolute;top:-8px;right:-8px}.section-title{margin:0 0 16px;font-size:16px}.section-subtitle{margin:0 0 4px;font-size:14px;font-weight:600}.settings-test-email{border-top:1px dashed var(--color-border);margin-top:20px;padding-top:20px}.email-preview-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);margin:4px 0 8px;padding:16px 20px}.email-preview-body{background:var(--color-surface);border-radius:8px;padding:16px 20px}.print-preview-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);margin:4px 0 8px;padding:16px 20px}.print-preview-body{background:var(--color-surface);border-radius:8px;padding:16px 20px}.print-preview-line{margin:0 0 4px}.print-preview-line:last-child{margin-bottom:0}.print-preview-map-image{border:1px solid var(--color-border);border-radius:8px;width:100%;max-width:320px;display:block}.dashboard-note{margin-top:24px;margin-bottom:0}.dashboard-section{margin-top:40px}.client-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.submission-pdf-frame{border:1.5px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);width:100%;height:75vh;min-height:480px;margin-top:16px;display:block}.dashboard-nav{flex-wrap:wrap;gap:8px;margin-bottom:32px;display:flex}.dashboard-nav .button-inline{width:auto;margin-top:0}.triage-stats{flex-wrap:wrap;gap:10px;margin-bottom:28px;display:flex}.triage-stat{background:var(--color-surface);border-radius:var(--radius);min-width:84px;color:inherit;flex-direction:column;align-items:center;gap:2px;padding:12px 18px;text-decoration:none;transition:box-shadow .15s;display:flex;box-shadow:0 1px 3px #0000000f}.triage-stat:hover{box-shadow:0 2px 8px #0000001f}.triage-stat-count{font-size:22px;font-weight:700}.triage-stat-active .triage-stat-count{color:var(--color-error)}.triage-stat-label{color:var(--color-text-muted);text-align:center;font-size:12px}.dashboard-tabs{border-bottom:1px solid var(--color-border);gap:4px;margin-bottom:20px;display:flex}.dashboard-tab{appearance:none;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-right:20px;padding:10px 4px;font-size:15px;font-weight:600}.dashboard-tab:hover{color:var(--color-primary)}.dashboard-tab-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.dashboard-tab-panel{margin-bottom:8px}@media (orientation:landscape) and (width>=640px){.dashboard-grid{grid-template-columns:2fr 1fr;align-items:start;gap:32px;display:grid}.dashboard-grid>.dashboard-section{margin-top:0}.dashboard-grid-profile{grid-area:profile}.dashboard-grid-main{grid-area:main;min-width:0}.dashboard-grid-messages{grid-area:messages}.dashboard-grid-notifications{grid-area:notifications}.dashboard-grid-calendar{grid-area:calendar}.dashboard-grid-nudge{grid-area:nudge}.dashboard-grid-next-appt{grid-area:next-appt}.dashboard-grid-therapist{grid-template-areas:"main profile""main notifications""main calendar""main messages"}.dashboard-grid-client{grid-template-areas:"main nudge""main next-appt""main messages""main profile""main notifications""main calendar"}}.triage-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.triage-item{background:var(--color-surface);border-radius:var(--radius);border-left:4px solid var(--color-border);color:inherit;cursor:pointer;padding:14px 16px;text-decoration:none;transition:box-shadow .15s;display:block}.triage-item:hover{box-shadow:0 2px 8px #0000001f}.triage-item-static{cursor:default}.triage-item-static:hover{box-shadow:none}.triage-item-linkarea{color:inherit;cursor:pointer;text-decoration:none;display:block}.triage-item-linkarea:hover .triage-title{text-decoration:underline}.triage-item-actions{border-top:1px dashed var(--color-border);margin-top:10px;padding-top:10px}.triage-reject-input{width:100%;margin-bottom:8px;display:block}.triage-item-urgent{border-left-color:var(--color-error)}.triage-item-attention{border-left-color:#b8860b}.triage-item-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.triage-type{text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);font-size:12px;font-weight:700}.triage-waiting{background:var(--color-border);color:var(--color-text-muted);white-space:nowrap;border-radius:999px;flex-shrink:0;padding:2px 8px;font-size:12px;font-weight:700}.triage-waiting-urgent{color:var(--color-error);background:#f6d9d9}.triage-waiting-attention{color:#8a4a12;background:#f6dcc2}.triage-waiting-now{color:#1b5e4f;background:#d9ede1}.triage-title{margin:0 0 2px;font-weight:700}.triage-title-row{align-items:center;gap:8px;display:flex}.triage-title-row .triage-title{margin:0}.triage-subtitle{color:var(--color-text-muted);margin:0;font-size:14px}.field-row{gap:16px;display:flex}.field-row .field{flex:1}.quick-contact-row{align-items:flex-end}.quick-contact-clear-button{flex-shrink:0}.field-textarea{resize:vertical;max-width:640px;font-family:inherit}.field-checkbox{flex-direction:row;align-items:center;gap:8px}.field-checkbox input{width:16px;height:16px}.addon-editor{background:var(--color-bg);border-radius:8px;flex-direction:column;gap:8px;padding:16px;display:flex}.addon-row{align-items:center;gap:8px;display:flex}.settings-section{border-bottom:1px solid var(--color-border);margin-bottom:40px;padding-bottom:32px}.settings-section:last-child{border-bottom:none}.reminder-suppressed-note{border-radius:var(--radius);background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text-muted);margin:0 0 20px;padding:10px 14px;font-size:14px}.reminder-suppressed-note-clear{background:0 0;border-style:dashed}.provider-card-list{flex-direction:column;gap:12px;margin-bottom:24px;display:flex}.provider-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);overflow:hidden}.provider-card-header{cursor:pointer;text-align:left;width:100%;font:inherit;color:var(--color-text);background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.provider-card-header-right{flex-shrink:0;align-items:center;gap:10px;display:flex}.provider-card-title{font-size:16px;font-weight:600}.provider-card-chevron{color:var(--color-text-muted);font-size:12px;transition:transform .15s;display:inline-block}.provider-card-chevron-open{transform:rotate(90deg)}.provider-card-body{border-top:1px solid var(--color-border);padding:20px}.settings-icon-row{align-items:center;gap:16px;margin-top:12px;display:flex}.settings-icon-preview{object-fit:contain;border:1.5px solid var(--color-border);background:var(--color-bg);border-radius:8px;width:56px;height:56px}.settings-icon-preview-empty{color:var(--color-primary);justify-content:center;align-items:center;font-size:28px;display:flex}.settings-icon-actions{flex-wrap:wrap;gap:8px;display:flex}.settings-file-label{position:relative;overflow:hidden}.settings-file-input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.settings-actions{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.addon-row .field-input{flex:1}.addon-price{flex:none;max-width:110px}.addon-picker-row{padding:4px 0}.variant-row{border-bottom:1px solid var(--color-border);padding-bottom:12px}.variant-row:last-of-type{border-bottom:none;padding-bottom:0}.theme-window-row-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.theme-window-row-header-actions{align-items:center;gap:10px;display:flex}.theme-window-preview-row{align-items:flex-end;margin-bottom:4px}.theme-window-preview-today{flex-shrink:0}.treatment-therapist-only-badge{background:var(--color-border);color:var(--color-text-muted);margin:0 0 0 8px}.treatment-remote-badge{color:#1c4a7a;background:#dce8f6;margin:0 0 0 8px}.addon-picker-row-disabled{opacity:.5}.treatment-card-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.treatment-description{margin-top:8px}.option-description{border-left:2px solid var(--color-border);padding-left:10px}.option-description-addon{margin-left:24px}.addon-list{border-top:1px solid var(--color-border);flex-direction:column;gap:4px;margin:12px 0 0;padding:12px 0 0;list-style:none;display:flex}.addon-list-item{color:var(--color-text-muted);font-size:14px}.password-reveal{text-align:left;max-width:none}.password-value{letter-spacing:.03em;background:var(--color-bg);border:1.5px dashed var(--color-border);word-break:break-all;border-radius:8px;margin:0 0 16px;padding:14px 16px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:20px;font-weight:700}.password-reveal.backup-codes-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.backup-codes-grid .password-value{text-align:center;margin:0;padding:10px 12px;font-size:16px}.status-badge{border-radius:999px;margin:8px 0 0;padding:4px 10px;font-size:12px;font-weight:700;display:inline-block}.status-draft{color:#7a5a12;background:#f3e6c8}.status-confirmed{color:#1b5e4f;background:#d9ede1}.status-closed{background:var(--color-border);color:var(--color-text-muted)}.status-exception{color:#8a4a12;background:#f6dcc2}.status-requested{color:#7a5a12;background:#f3e6c8}.status-pending{color:#1c4a7a;background:#dce8f6}.status-rejected{color:var(--color-error);background:#f6d9d9}.status-cancelled{background:var(--color-border);color:var(--color-text-muted)}.status-suspended{color:var(--color-error);background:#f6d9d9}.status-payment-pending{color:#1c4a7a;background:#dce8f6}.status-payment-paid{color:#1b5e4f;background:#d9ede1}.status-payment-failed,.status-payment-expired{color:var(--color-error);background:#f6d9d9}.payment-provider-picker{flex-wrap:wrap;gap:8px;display:flex}.status-highlight{background:var(--color-accent);color:var(--color-primary-dark)}.status-link{color:#1b4f72;background:#dbe7f3}.status-file{color:#7a5a12;background:#f3e6c8}.status-category{background:var(--color-border);color:var(--color-text-muted)}.status-updated{color:#1e6b3a;background:#d9f0e0}.library-edit-form{border-top:1px solid var(--color-border);margin-top:.75rem;padding-top:.75rem}.library-versions{border-top:1px solid var(--color-border);margin-top:.5rem}.library-versions-toggle{width:100%;color:var(--color-text-muted);font-size:.9rem}.library-version-row .checkbox-row{flex-wrap:wrap;align-items:center}.library-version-row .client-detail{word-break:break-all}.library-restore-confirm{margin:.25rem 0 .75rem}.resource-group{margin-bottom:18px}.resource-group-header{border-bottom:1px solid var(--color-border);align-items:center;gap:8px;margin:0 0 10px;display:flex}.resource-group-toggle{cursor:pointer;min-width:0;font:inherit;color:inherit;text-align:left;background:0 0;border:none;flex:1;justify-content:space-between;align-items:center;gap:10px;margin:0;padding:8px 0;display:flex}.resource-group-title{font-size:14px;font-weight:700}.resource-group-meta{align-items:center;gap:10px;display:flex}.resource-group-count{color:var(--color-text-muted);font-size:12.5px}.checkbox-list{flex-direction:column;gap:8px;margin:0 0 16px;padding:0;list-style:none;display:flex}.checkbox-row{background:var(--color-surface);border-radius:var(--radius);cursor:pointer;align-items:flex-start;gap:10px;padding:12px 16px;display:flex;box-shadow:0 1px 3px #0000000f}.checkbox-row input{flex-shrink:0;width:16px;height:16px;margin-top:3px}.checkbox-row-body{flex:1;min-width:0}.resource-note{color:var(--color-text-muted);margin:8px 0 0;font-size:14px;font-style:italic}.resource-sent-at{color:var(--color-text-muted);margin:0 0 8px;font-size:12px}.resource-removed-note{color:var(--color-text-muted);margin:6px 0 0;font-size:13px}.day-row{cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:0;display:flex}.hours-cal-nav{align-items:center;gap:10px;margin-bottom:14px;display:flex}.hours-cal-nav h2{text-align:center;flex:1;margin:0;font-size:16px}.hours-cal-nav-button{border:1px solid var(--color-border);background:var(--color-surface);width:32px;height:32px;color:var(--color-text);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;font-size:16px;line-height:1;display:flex}.hours-cal-today-button{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;border-radius:999px;height:32px;padding:0 14px;font-size:12.5px;font-weight:700}.hours-cal-chip-row{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.hours-cal-chip{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;border-radius:999px;padding:7px 13px;font-size:12.5px;font-weight:600}.hours-cal-chip:hover{border-color:var(--color-primary);color:var(--color-primary)}.hours-cal-chip-clear{color:var(--color-text-muted)}.hours-cal-weekdays{grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px;display:grid}.hours-cal-weekdays span{text-align:center;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted);font-size:11px;font-weight:700}.hours-cal-grid{-webkit-user-select:none;user-select:none;grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.hours-cal-cell{aspect-ratio:1/.92;background:var(--color-bg);color:var(--color-text-muted);cursor:pointer;font:inherit;border:1.5px solid #0000;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:2px;font-size:13px;display:flex;position:relative}.hours-cal-cell-outside{visibility:hidden;cursor:default;pointer-events:none}.hours-cal-day-num{color:var(--color-text);font-size:13.5px;font-weight:700}.hours-cal-day-hours{font-size:9.5px;font-weight:600;line-height:1}.hours-cal-cell-status-confirmed{background:#d9ede1}.hours-cal-cell-status-confirmed .hours-cal-day-hours{color:#1b5e4f}.hours-cal-cell-status-draft{background:#f3e6c8}.hours-cal-cell-status-draft .hours-cal-day-hours{color:#7a5a12}.hours-cal-cell-status-closed{background:var(--color-border)}.hours-cal-cell-status-closed .hours-cal-day-hours{color:var(--color-text-muted)}.hours-cal-cell-today{box-shadow:0 0 0 1.5px var(--color-primary) inset}.hours-cal-cell-selected{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent)}.hours-cal-cell-previewing{border-color:var(--color-accent);border-style:dashed}.hours-cal-sel-badge{background:var(--color-accent);color:#2b1c0c;border-radius:999px;justify-content:center;align-items:center;width:15px;height:15px;font-size:10px;font-weight:800;line-height:1;display:flex;position:absolute;top:3px;right:3px}.hours-cal-exception-marker{background:#8a4a12;border-radius:999px;width:7px;height:7px;position:absolute;top:4px;left:4px}.hours-cal-legend{border-top:1px solid var(--color-border);flex-wrap:wrap;gap:14px;margin-top:18px;padding-top:16px;display:flex}.hours-cal-legend-item{color:var(--color-text-muted);align-items:center;gap:7px;font-size:12px;display:flex}.hours-cal-legend-dot{border-radius:4px;flex-shrink:0;width:11px;height:11px}.hours-cal-legend-dot-confirmed{background:#1b5e4f}.hours-cal-legend-dot-draft{background:#7a5a12}.hours-cal-legend-dot-closed{background:var(--color-text-muted)}.hours-cal-legend-dot-unset{background:var(--color-border)}.hours-cal-legend-dot-selected{border:2px solid var(--color-accent);background:0 0}.hours-cal-legend-dot-exception{background:#8a4a12;border-radius:999px}.hours-cal-hint{color:var(--color-text-muted);margin-top:14px;font-size:12.5px;line-height:1.5}.hours-cal-bulk-bar{pointer-events:none;z-index:25;justify-content:center;padding:16px;display:flex;position:fixed;bottom:76px;left:0;right:0}.hours-cal-bulk-panel{pointer-events:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:14px;width:100%;max-width:640px;padding:16px 18px;display:flex;box-shadow:0 8px 28px #0000002e}.hours-cal-bulk-summary{flex-direction:column;gap:2px;margin-right:auto;display:flex}.hours-cal-bulk-count{font-size:14.5px;font-weight:700}.hours-cal-bulk-dates{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:240px;font-size:12px;overflow:hidden}.hours-cal-bulk-fields{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.hours-cal-action-toggle{border:1px solid var(--color-border);border-radius:999px;display:flex;overflow:hidden}.hours-cal-action-button{background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;border:none;padding:8px 12px;font-size:12.5px;font-weight:700}.hours-cal-action-button-active{background:var(--color-primary);color:var(--color-on-primary)}.hours-cal-bulk-time{border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);border-radius:8px;width:92px;padding:7px 8px;font-size:13px}.hours-cal-time-sep{color:var(--color-text-muted);font-size:13px}.hours-cal-toast{background:var(--color-primary);color:var(--color-on-primary);z-index:30;white-space:nowrap;text-overflow:ellipsis;border-radius:999px;max-width:calc(100vw - 32px);margin:0;padding:11px 18px;font-size:13px;font-weight:600;position:fixed;top:20px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 6px 20px #00000040}.page-tab-bar-spacer{padding-bottom:76px}.tab-bar{background:var(--color-surface);border-top:1px solid var(--color-border);padding:6px 12px calc(6px + env(safe-area-inset-bottom,0px));z-index:20;position:fixed;bottom:0;left:0;right:0}.tab-bar-inner{justify-content:space-around;gap:4px;max-width:640px;margin:0 auto;display:flex}.tab-bar-item{min-width:0;color:var(--color-text-muted);border-radius:10px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:8px 6px;text-decoration:none;display:flex}.tab-bar-icon-wrap{display:inline-flex;position:relative}.tab-bar-icon{font-size:18px;line-height:1}.tab-bar-badge{background:var(--color-error);color:#fff;text-align:center;border-radius:999px;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:-6px;right:-10px}.tab-bar-label{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:11px;font-weight:600;overflow:hidden}.tab-bar-item-active{color:var(--color-primary);background:var(--color-bg)}@media (orientation:landscape) and (width>=640px){.app-shell:has(>.tab-bar){padding-left:76px}.page-tab-bar-spacer{padding-bottom:0}.tab-bar{border-top:none;border-right:1px solid var(--color-border);width:76px;padding:calc(12px + env(safe-area-inset-top,0px)) 6px 12px calc(6px + env(safe-area-inset-left,0px));inset:0 auto 0 0;overflow-y:auto}.tab-bar-inner{flex-direction:column;justify-content:flex-start;gap:6px;max-width:none;margin:0}.tab-bar-item{flex:none}.tab-bar-label{display:none}.hours-cal-bulk-bar{bottom:16px;left:76px}}@media (orientation:landscape) and (width>=960px){.app-shell:has(>.tab-bar){padding-left:220px}.tab-bar{width:220px;padding-left:calc(12px + env(safe-area-inset-left,0px))}.tab-bar-item{flex-direction:row;justify-content:flex-start;gap:12px;padding:10px 14px}.tab-bar-label{font-size:13px;display:block}.hours-cal-bulk-bar{left:220px}}.view-toggle{background:var(--color-border);border-radius:999px;gap:4px;margin-bottom:20px;padding:4px;display:flex}.view-toggle-button{color:var(--color-text-muted);text-align:center;cursor:pointer;background:0 0;border:none;border-radius:999px;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-size:14px;font-weight:600;text-decoration:none;display:flex}.view-toggle-button-active{background:var(--color-surface);color:var(--color-primary);box-shadow:0 1px 3px #0000001a}.view-toggle-badge{background:var(--color-error);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;display:inline-flex}.timeline-filters{gap:8px;margin-bottom:24px;display:flex}.filter-button{border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;border-radius:999px;padding:8px 14px;font-size:13px;font-weight:600}.filter-button-active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.timeline{margin:0;padding:0;list-style:none}.timeline-date-group{margin-bottom:28px}.timeline-date-group:last-child{margin-bottom:0}.timeline-date-heading{color:var(--color-text-muted);border-bottom:1px solid var(--color-border);margin:0 0 12px;padding-bottom:6px;font-size:14px;font-weight:700}.timeline-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.timeline-item{gap:14px;padding-bottom:16px;display:flex;position:relative}.timeline-item:before{content:"";background:var(--color-border);width:2px;position:absolute;top:16px;bottom:0;left:5px}.timeline-item:last-child:before{display:none}.timeline-marker{background:var(--color-primary);z-index:1;border-radius:50%;flex-shrink:0;width:12px;height:12px;margin-top:4px}.timeline-marker-flagged{background:var(--color-error)}.timeline-item-body{background:var(--color-surface);border-radius:var(--radius);flex:1;min-width:0;padding:14px 18px;box-shadow:0 1px 3px #0000000f}.schedule-day-list .timeline-date-heading{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.02em;background:var(--color-bg);border-bottom:none;border-radius:999px;margin:0 0 10px;padding:5px 12px;font-size:12px;font-weight:700;display:inline-block}.schedule-day-list .timeline-list{gap:8px}.schedule-day-list .timeline-item{padding-bottom:0;display:block}.schedule-day-list .timeline-item:before{display:none}.appt-card{box-shadow:none;color:#2c2a26;border:1px solid #0000;border-radius:10px}.appt-card .timeline-time{color:#2c2a26}.appt-card .client-detail{color:#2c2a26b8}.appt-card .timeline-review-link{text-decoration:underline}.appt-card-header{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.appt-flag-dot{background:var(--color-error);border-radius:50%;flex-shrink:0;width:9px;height:9px;margin-top:3px}.appt-check{color:#2c2a26;background:#ffffff8c;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.appt-card-footer{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.appt-card-footer .status-badge{margin:0}.appt-card-actions{margin-top:10px}.appt-card .field-label{color:#2c2a26}.appt-card .subtitle{color:#2c2a26;margin-bottom:8px}.appt-card .form-error{color:#8f1616}.appt-color-0{background:#f6d3ea;border-color:#e9a9d1}.appt-color-1{background:#fbdcb9;border-color:#f0b979}.appt-color-2{background:#fbeeae;border-color:#edd873}.appt-color-3{background:#bfe7ef;border-color:#86ccdb}.appt-color-4{background:#d9d3f5;border-color:#b3a6ea}.appt-color-5{background:#cdeccd;border-color:#9ad89a}.appt-color-legend{margin-bottom:20px}.day-grid-nav{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.day-grid-nav-center{flex-direction:column;align-items:center;gap:4px;display:flex}.day-grid-date-label{text-align:center;font-size:15px;font-weight:700}.day-grid-today-button{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-primary);cursor:pointer;border-radius:999px;padding:2px 10px;font-size:11px;font-weight:700}.day-grid{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);display:flex;position:relative;overflow:hidden}.day-grid-hours{border-right:1px solid var(--color-border);flex-shrink:0;width:52px}.day-grid-hour-row{border-bottom:1px solid var(--color-border);position:relative}.day-grid-hour-row:last-child{border-bottom:none}.day-grid-hour-label{background:var(--color-surface);color:var(--color-text-muted);padding:0 2px;font-size:11px;font-weight:600;position:absolute;top:-7px;right:8px}.day-grid-events{flex:1;min-width:0;position:relative}.day-grid-line{border-top:1px solid var(--color-border);position:absolute;left:0;right:0}.day-grid-now-line{border-top:2px solid var(--color-error);z-index:2;position:absolute;left:0;right:0}.day-grid-now-line:before{content:"";background:var(--color-error);border-radius:50%;width:8px;height:8px;position:absolute;top:-4px;left:-4px}.day-grid-block{cursor:pointer;padding:6px 8px;transition:box-shadow .15s;position:absolute;overflow:hidden}.day-grid-block:hover{z-index:3;box-shadow:0 2px 8px #00000026}.day-grid-block:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;z-index:3}.day-grid-close-line{border-top:2px dashed var(--color-error);opacity:.55;z-index:0;pointer-events:none;position:absolute;left:0;right:0}.day-grid-block-overtime{box-shadow:inset 0 0 0 1px #a0282873}.day-grid-overtime-shade{pointer-events:none;z-index:0;background:repeating-linear-gradient(135deg,#a0282829 0 6px,#a028280a 6px 12px);position:absolute;bottom:0;left:0;right:0}.day-grid-block>:not(.day-grid-overtime-shade){z-index:1;position:relative}.day-grid-overtime-tag{color:#7a1f1f;white-space:nowrap;background:#ffffffbf;border-radius:999px;margin-top:3px;padding:0 6px;font-size:11px;font-weight:700;line-height:18px;display:inline-block}.day-grid-block-time{font-size:12px;font-weight:700}.day-grid-block-title{text-overflow:ellipsis;white-space:nowrap;margin:3px 0 0;font-size:13px;font-weight:700;overflow:hidden}.day-grid-block-subtitle{color:#2c2a26b8;text-overflow:ellipsis;white-space:nowrap;margin:1px 0 0;font-size:12px;overflow:hidden}.week-grid-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.week-grid{min-width:700px}.week-grid-header{display:flex}.week-grid-header-gutter{flex-shrink:0;width:52px}.week-grid-day-label{flex-direction:column;flex:1;align-items:center;gap:2px;min-width:0;padding:4px 2px 8px;display:flex}.week-grid-weekday{text-transform:uppercase;letter-spacing:.02em;color:var(--color-text-muted);font-size:10px;font-weight:700}.week-grid-daynum{font-size:14px;font-weight:700}.week-grid-day-label-today .week-grid-daynum{background:var(--color-primary);min-width:22px;height:22px;color:var(--color-on-primary);border-radius:999px;justify-content:center;align-items:center;padding:0 2px;display:inline-flex}.week-grid-day-column{border-left:1px solid var(--color-border)}.week-grid-day-column .day-grid-block{padding:4px 5px}.week-grid-day-column .day-grid-block-time{font-size:10px}.week-grid-day-column .day-grid-block-title{margin-top:2px;font-size:11px}.week-grid-day-column .day-grid-block-subtitle{font-size:10px}.week-grid-day-column .appt-check{width:15px;height:15px;font-size:9px}.timeline-item-body-clickable,.client-card-clickable{cursor:pointer;color:inherit;text-decoration:none;transition:box-shadow .15s;display:block}.timeline-item-body-clickable:hover,.client-card-clickable:hover{box-shadow:0 2px 8px #0000001f}.timeline-item-body-clickable:focus-visible,.client-card-clickable:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.timeline-time{color:var(--color-primary);margin:0 0 4px;font-size:14px;font-weight:700}.timeline-review-link{color:var(--color-primary);margin-top:8px;margin-left:8px;font-size:13px;font-weight:600;text-decoration:none;display:inline-block}.timeline-review-link:hover{text-decoration:underline}.calendar-nav{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.calendar-nav-button{border:1.5px solid var(--color-border);background:var(--color-surface);width:36px;height:36px;color:var(--color-text);cursor:pointer;border-radius:8px;font-size:18px;line-height:1}.calendar-month-label{font-size:15px;font-weight:700}.calendar-weekdays{grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:6px;display:grid}.calendar-weekday{text-align:center;color:var(--color-text-muted);text-transform:uppercase;font-size:11px;font-weight:700}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:12px;display:grid}.calendar-cell{aspect-ratio:1;background:var(--color-surface);font:inherit;color:inherit;cursor:pointer;border:1.5px solid #0000;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:4px 2px;display:flex}.calendar-cell-empty{cursor:default;background:0 0;border:none}.calendar-cell-today{border-color:var(--color-primary)}.calendar-cell-selected{background:var(--color-primary);color:var(--color-on-primary)}.calendar-day-number{font-size:13px;font-weight:600}.calendar-day-dots{align-items:center;gap:2px;min-height:6px;display:flex}.calendar-dot{background:var(--color-primary);border-radius:50%;flex-shrink:0;width:6px;height:6px}.calendar-cell-selected .calendar-dot{background:#fff}.calendar-dot-flagged{background:var(--color-error)}.calendar-cell-selected .calendar-dot-flagged{background:#ffd9d9}.calendar-day-extra{color:var(--color-text-muted);font-size:9px;font-weight:700}.calendar-cell-selected .calendar-day-extra{color:#fff}.calendar-selected-panel{margin-top:20px}.chat-thread{flex-direction:column;gap:10px;min-height:240px;max-height:55vh;margin-bottom:12px;padding:4px 4px 12px;display:flex;overflow-y:auto}.chat-empty{text-align:center;margin:auto 0}.chat-bubble-row{justify-content:flex-start;display:flex}.chat-bubble-row-mine{justify-content:flex-end}.chat-bubble{background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius);border-bottom-left-radius:4px;max-width:78%;padding:10px 14px;box-shadow:0 1px 3px #0000000f}.chat-bubble-mine{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary);border-bottom-left-radius:var(--radius);border-bottom-right-radius:4px}.chat-bubble-text{white-space:pre-wrap;word-break:break-word;margin:0;font-size:15px;line-height:1.4}.chat-bubble-time{opacity:.7;margin:4px 0 0;font-size:11px}.chat-receipt{letter-spacing:-2px;opacity:.75;margin-left:5px}.chat-receipt-read{opacity:1;color:var(--color-accent)}.chat-bubble-edited{opacity:.8;font-style:italic}.chat-bubble-edit-trigger{appearance:none;cursor:pointer;color:inherit;opacity:.75;background:0 0;border:none;margin-left:6px;padding:0;font-size:11px;text-decoration:underline}.chat-bubble-edit-trigger:hover{opacity:1}.chat-bubble-edit{flex-direction:column;gap:8px;display:flex}.chat-bubble-edit-actions{gap:8px;display:flex}.chat-typing-indicator{color:var(--color-text-muted);align-items:center;gap:6px;margin:-4px 0 10px;font-size:13px;display:flex}.chat-typing-dots{gap:3px;display:inline-flex}.chat-typing-dots span{background:var(--color-text-muted);opacity:.4;border-radius:50%;width:5px;height:5px;animation:1.1s ease-in-out infinite chat-typing-bounce}.chat-typing-dots span:nth-child(2){animation-delay:.15s}.chat-typing-dots span:nth-child(3){animation-delay:.3s}@keyframes chat-typing-bounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}.chat-composer{align-items:flex-end;gap:10px;display:flex}.chat-composer-input{resize:none;flex:1}.chat-send-button{padding:12px 20px}.form-field-heading{text-transform:uppercase;letter-spacing:.04em;color:var(--color-primary);border-bottom:1px solid var(--color-border);margin:24px 0 4px;padding-bottom:6px;font-size:15px;font-weight:700}.form-field-heading:first-child{margin-top:0}.consent-text{color:var(--color-text-muted);background:var(--color-bg);white-space:pre-wrap;border-radius:8px;margin:0;padding:14px 16px;font-size:13px;font-style:italic;line-height:1.6}.required-mark{color:var(--color-error)}.form-fill-field{margin-bottom:4px}.form-field-help{margin-bottom:0}.form-fill-readonly{white-space:pre-wrap}.form-fill-picker{align-items:flex-end;margin-bottom:20px}.option-chip-row{flex-wrap:wrap;gap:8px;display:flex}.option-chip{border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;border-radius:999px;padding:8px 14px;font-size:13px;font-weight:600}.option-chip-active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.option-chip-removable{background:var(--color-bg)}.option-chip:disabled{opacity:.5;cursor:not-allowed;text-decoration:line-through}.option-chip-current{border-color:var(--color-accent)}.option-chip-buffer{opacity:.75;border-style:dashed}.option-chip-current-dot{background:var(--color-accent);vertical-align:middle;border-radius:50%;width:6px;height:6px;margin-left:5px;display:inline-block}.scale-row{flex-wrap:wrap;gap:6px;display:flex}.scale-button{border:1.5px solid var(--color-border);background:var(--color-surface);width:34px;height:34px;color:var(--color-text);cursor:pointer;border-radius:8px;font-weight:700}.scale-button-active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.scale-button:disabled{cursor:default}.body-diagram{flex-direction:column;gap:10px;display:flex}.body-diagram-palette{flex-wrap:wrap;gap:6px;display:flex}.body-diagram-symbol-button{border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:600}.body-diagram-symbol-button-active{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-bg)}.body-diagram-canvas{background:var(--color-bg);border-radius:var(--radius);border:1.5px solid var(--color-border);width:100%;max-width:320px;position:relative;overflow:hidden}.body-diagram-canvas-editable{cursor:crosshair}.body-diagram-svg{width:100%;height:auto;display:block}.body-diagram-part{fill:none;stroke:var(--color-text-muted);stroke-width:2px}.body-diagram-part-line{stroke:var(--color-text-muted);fill:none;opacity:.55}.body-diagram-figure-label{fill:var(--color-text-muted);font-size:9px;font-weight:700}.body-diagram-marker{color:var(--color-error);cursor:pointer;background:0 0;border:none;padding:0;font-size:16px;line-height:1;position:absolute;transform:translate(-50%,-50%)}.body-diagram-marker:disabled{cursor:default}.body-diagram-hint{color:var(--color-text-muted);margin:0;font-size:12px}.body-diagram-legend{color:var(--color-text-muted);flex-wrap:wrap;gap:4px 14px;margin:0;padding:0;font-size:12px;list-style:none;display:flex}.signature-pad{flex-direction:column;gap:10px;display:flex}.signature-canvas{background:var(--color-surface);border:1.5px dashed var(--color-border);touch-action:none;border-radius:8px;width:100%;max-width:400px;height:140px}.signature-canvas-disabled{opacity:.7}.signature-pad-row{align-items:flex-end;gap:12px;display:flex}.signature-clear-button{flex-shrink:0}.signature-typed-readout{font-style:italic}.builder-field-list{flex-direction:column;gap:12px;margin-bottom:16px;display:flex}.builder-field-row{border-radius:var(--radius);background:var(--color-bg);border:1px solid var(--color-border);flex-direction:column;gap:10px;padding:16px;display:flex}.builder-field-row-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.builder-field-type-tag{text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);font-size:11px;font-weight:700}.builder-field-row-controls{align-items:center;gap:6px;display:flex}.builder-move-button{border:1.5px solid var(--color-border);background:var(--color-surface);cursor:pointer;border-radius:8px;width:30px;height:30px;font-size:14px}.builder-move-button:disabled{opacity:.4;cursor:not-allowed}.builder-palette-label{margin-bottom:8px}.builder-palette{flex-wrap:wrap;gap:8px;display:flex}.theme-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;margin:12px 0 4px;display:grid}.theme-card-wrap{flex-direction:column;gap:6px;display:flex}.theme-card-wrap>.theme-card{flex:1}.theme-preview-button{color:var(--color-primary);font:inherit;cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:2px 4px;font-size:12px;text-decoration:underline}.theme-preview-button:disabled{cursor:default;opacity:.6;text-decoration:none}.theme-preview-bar{z-index:900;border-radius:var(--radius);border:1.5px solid var(--color-primary);background:var(--color-surface);max-width:calc(100vw - 24px);color:var(--color-text);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 14px;padding:8px 14px;font-size:14px;display:flex;position:fixed;top:8px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #00000040}.theme-preview-bar-actions{gap:8px;display:inline-flex}.theme-card{border-radius:var(--radius);border:1.5px solid var(--color-border);background:var(--color-surface);cursor:pointer;text-align:left;font:inherit;color:inherit;flex-direction:column;gap:8px;padding:10px;display:flex}.theme-card:disabled{cursor:not-allowed;opacity:.6}.theme-card-selected{border-color:var(--color-primary);border-width:2px;padding:9px}.theme-swatch{border:1px solid var(--color-border);border-radius:8px;flex-direction:column;height:44px;display:flex;position:relative;overflow:hidden}.theme-swatch-deco{pointer-events:none;gap:3px;font-size:13px;line-height:1;display:flex;position:absolute;bottom:3px;right:6px}.theme-swatch-deco-item{animation-name:theme-swatch-deco-bob;animation-timing-function:ease-in-out;animation-iteration-count:infinite;display:inline-block}@keyframes theme-swatch-deco-bob{0%,to{transform:translateY(0)rotate(-5deg)}50%{transform:translateY(-3px)rotate(5deg)}}.theme-swatch-header{background:var(--color-surface);align-items:center;height:12px;padding:0 6px;display:flex}.theme-swatch-dot{background:var(--color-primary);border-radius:50%;width:5px;height:5px}.theme-swatch-body{background:var(--color-bg);flex:1;align-items:center;padding:5px 6px;display:flex}.theme-swatch-bar{background:var(--color-primary);border-radius:2px;width:55%;height:5px}.theme-card-footer{justify-content:space-between;align-items:center;gap:6px;display:flex}.theme-card-name{font-size:13px;font-weight:600}.theme-card-description{color:var(--color-text-muted);margin:0;font-size:12px}.theme-card-badge{background:var(--color-accent);color:var(--color-primary-dark);border-radius:999px;flex-shrink:0;padding:2px 7px;font-size:10px;font-weight:700}.theme-card-check{color:var(--color-primary);flex-shrink:0;font-weight:700}.help-toc{text-align:left;margin-bottom:32px}.help-toc-list{margin:0;padding-left:20px}.help-toc-list li{margin-bottom:6px}.help-toc-list a{color:var(--color-primary);text-decoration:none}.help-toc-list a:hover{text-decoration:underline}.help-section{text-align:left;border-bottom:1px solid var(--color-border);margin-bottom:32px;padding-bottom:32px}.help-section:last-child{border-bottom:none}.help-paragraph{color:var(--color-text);margin:0 0 14px;line-height:1.6}.help-subheading{color:var(--color-primary);margin:20px 0 8px;font-size:14px}.help-list{color:var(--color-text);margin:0 0 14px;padding-left:22px;line-height:1.6}.help-list li{margin-bottom:6px}.help-note{background:var(--color-bg);border-left:3px solid var(--color-accent);border-radius:0 var(--radius) var(--radius) 0;color:var(--color-text);margin:0 0 14px;padding:12px 16px;font-size:14px;line-height:1.5}.help-screenshot{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);max-width:100%;margin:4px 0 18px;padding:10px;display:inline-block}.help-screenshot img{border-radius:calc(var(--radius) - 4px);max-width:100%;height:auto;display:block}.help-screenshot figcaption{color:var(--color-text-muted);text-align:center;margin-top:8px;font-size:12.5px}.report-card-list{flex-direction:column;gap:12px;display:flex}.report-group-label{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);margin:18px 0 -2px;font-size:12px;font-weight:700}.report-group-label:first-child{margin-top:0}.report-card{flex-direction:column;gap:4px;display:flex}.report-stat-num{font-variant-numeric:tabular-nums;color:var(--color-primary);margin:6px 0 0;font-size:26px;font-weight:700}.report-stat-sub{color:var(--color-text-muted);margin:0 0 8px;font-size:12.5px}.report-plain-list{color:var(--color-text);margin:4px 0 0;padding-left:18px;font-size:13.5px;line-height:1.6}.report-card-title-toggle{cursor:pointer;width:100%;font:inherit;color:inherit;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:10px;margin:0 0 4px;padding:0;display:flex}.report-card-title-toggle .client-name{margin:0}.report-expand-body{border-top:1px solid var(--color-border);margin-top:10px;padding-top:10px}.report-detail-heading{letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted);margin:12px 0 4px;font-size:12px;font-weight:700}.report-detail-heading:first-child{margin-top:0}.report-detail-row-title{justify-content:space-between;align-items:baseline;gap:10px;margin:0;font-weight:600;display:flex}.report-client-list{flex-direction:column;margin:10px 0 0;padding:0;list-style:none;display:flex}.report-client-row{border-top:1px solid var(--color-border);padding:12px 0}.report-client-row:first-child{border-top:none;padding-top:4px}.report-bar-list{flex-direction:column;gap:10px;margin-top:6px;display:flex}.report-bar-row{flex-direction:column;gap:4px;display:flex}.report-bar-labels{justify-content:space-between;gap:8px;font-size:12.5px;display:flex}.report-bar-label{color:var(--color-text);text-transform:capitalize}.report-bar-value{color:var(--color-text-muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}.report-bar-track{background:var(--color-bg);border-radius:4px;height:8px;overflow:hidden}.report-bar-fill{border-radius:4px;height:100%}.report-weekday-grid{grid-template-columns:repeat(7,1fr);align-items:end;gap:6px;height:90px;margin-top:10px;display:grid}.report-weekday-col{flex-direction:column;align-items:center;gap:4px;height:100%;display:flex}.report-weekday-track{flex:1;align-items:flex-end;width:100%;display:flex}.report-weekday-stack{border-radius:3px;flex-direction:column-reverse;width:100%;min-height:3px;display:flex;overflow:hidden}.report-weekday-label{color:var(--color-text-muted);font-size:10.5px}.report-legend-row{flex-wrap:wrap;gap:12px;margin-top:8px;display:flex}.report-legend-chip{color:var(--color-text-muted);align-items:center;gap:5px;font-size:11px;display:flex}.report-legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.print-only{display:none}@media print{.tab-bar,.view-toggle,.no-print{display:none!important}.page-tab-bar-spacer{padding-bottom:0}.app-shell{padding-left:0!important}.print-only{display:block}.report-card,.print-agenda-day{break-inside:avoid}.report-bar-fill,.report-weekday-stack>div{-webkit-print-color-adjust:exact;print-color-adjust:exact}:root,[data-theme]{--color-text:#1c1b18!important;--color-text-muted:#5b5952!important;--color-bg:#fff!important;--color-surface:#fff!important;--color-border:#ccc!important}}.print-header{margin-bottom:16px}.print-header h1{margin:0 0 4px}.print-logo{max-width:220px;max-height:48px;margin-bottom:8px;display:block}.print-location-lines{margin:0 0 12px}.print-agenda-list{margin:12px 0 0;padding:0;list-style:none}.print-agenda-overtime{white-space:nowrap}.print-agenda-list li{border-bottom:1px solid #ccc;padding:8px 0}.print-agenda-day{margin-top:16px}.print-agenda-day h2{margin:0 0 4px;font-size:1rem}.visually-hidden,.visually-hidden-file{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.data-table th.data-table-photo-col,.data-table td.data-table-photo-col{width:40px;padding-top:8px;padding-right:4px}.user-photo-thumb{border:1.5px solid var(--color-border);background:var(--color-bg);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;padding:0;transition:border-color .15s,transform .15s;display:inline-flex;overflow:hidden}.user-photo-thumb:hover,.user-photo-thumb:focus-visible{border-color:var(--color-primary);transform:scale(1.06)}.user-photo-thumb img{object-fit:cover;width:100%;height:100%;display:block}.user-photo-initials{color:var(--color-text-muted);letter-spacing:.02em;font-size:13px;font-weight:700}.photo-dialog-backdrop{z-index:1000;background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.photo-dialog{background:var(--color-surface);width:100%;max-width:440px;max-height:calc(100vh - 32px);color:var(--color-text);border-radius:var(--radius);padding:16px 20px 20px;overflow-y:auto;box-shadow:0 12px 40px #0000004d}.photo-dialog-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.photo-dialog-header h2{overflow-wrap:anywhere;margin:0;font-size:18px}.photo-dialog-close{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:28px;line-height:1}.photo-dialog-close:hover:not(:disabled){color:var(--color-text)}.photo-dialog-image{background:var(--color-bg);border-radius:var(--radius);flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:200px;display:flex;overflow:hidden}.photo-dialog-image img{object-fit:contain;max-width:100%;max-height:60vh;display:block}.photo-dialog-image-loading{filter:blur(2px);object-fit:cover;width:200px;height:200px}.photo-dialog-placeholder{border:1.5px solid var(--color-border);background:var(--color-surface);width:120px;height:120px;color:var(--color-text-muted);border-radius:50%;justify-content:center;align-items:center;font-size:40px;font-weight:700;display:inline-flex}.photo-dialog-meta{margin-top:10px}.photo-dialog-notice{color:var(--color-success);margin:10px 0 0;font-weight:600}.photo-dialog-actions{flex-wrap:wrap;margin-top:14px}.my-photo-row{flex-wrap:wrap;align-items:flex-start;gap:16px;display:flex}.my-photo-preview{object-fit:cover;border:1.5px solid var(--color-border);background:var(--color-bg);border-radius:50%;flex-shrink:0;width:84px;height:84px}.my-photo-preview-placeholder{color:var(--color-text-muted);justify-content:center;align-items:center;font-size:26px;font-weight:700;display:inline-flex}.my-photo-actions{flex:1;min-width:200px}.my-photo-actions .client-actions{margin-top:0}.client-card-heading{align-items:center;gap:8px;margin-bottom:4px;display:flex}.client-card-heading .client-name{margin:0}.photo-avatar{border:1.5px solid var(--color-border);background:var(--color-bg);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.photo-avatar img{object-fit:cover;width:100%;height:100%;display:block}.photo-avatar-initials{color:var(--color-text-muted);font-weight:700}.booking-detail-client-line{align-items:center;gap:8px;display:flex}.chat-header-with-photo{justify-content:flex-start;align-items:center;gap:12px;display:flex}.status-giftcard{color:#8a2d6b;background:#f7e3f0}.client-name .status-badge,.appt-card-footer .status-giftcard{vertical-align:middle;margin:0 0 0 6px}.gift-card-preview{border-radius:12px;width:100%;height:auto;display:block;box-shadow:0 2px 10px #0000001f}.gift-card-preview-large{margin:12px 0}.gift-card-design-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:12px;display:grid}.gift-card-design-option{border:2px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;text-align:left;border-radius:12px;flex-direction:column;gap:6px;padding:6px;display:flex}.gift-card-design-option .gift-card-preview{box-shadow:none}.gift-card-design-option-active{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary)}.gift-card-design-name{flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.gift-card-design-name .status-badge{margin:0;padding:2px 8px;font-size:10px}.gift-card-serial{letter-spacing:.5px;font-family:Courier New,monospace;font-weight:700}.gift-card-banner{border-left:4px solid #8a2d6b;margin-bottom:12px}.gift-card-check-ok{color:var(--color-primary);font-weight:600}.gift-card-unlinked-note{color:#7a5a12;font-weight:600}.gift-card-notice{color:var(--color-primary);font-weight:600}.gift-card-confirm{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.gift-card-buy-form{margin-top:10px}.gift-card-register-filters{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.gift-card-register-filters .field-input{flex:200px;width:auto}.gift-card-register-table td{vertical-align:top}.gift-card-register-table .gift-card-serial,.gift-card-register-table .gift-card-nowrap{white-space:nowrap;font-size:12px}.greeting-card-preview{width:100%;height:auto;margin:12px 0;display:block}.gift-card-switch{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.gift-card-switch-section{margin-bottom:12px}.gift-card-include-greeting{align-items:center;gap:4px;font-size:13px;display:inline-flex}.greeting-artwork-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:12px;display:grid}.greeting-artwork-tile{border:1px solid var(--color-border);background:var(--color-surface);border-radius:10px;padding:8px}.greeting-artwork-tile img,.greeting-artwork-option img{aspect-ratio:421/360;object-fit:cover;border-radius:6px;width:100%;display:block}.greeting-artwork-tile-hidden{opacity:.55}.greeting-artwork-picker{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;display:grid}.greeting-artwork-option{border:2px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;text-align:left;border-radius:10px;flex-direction:column;gap:4px;padding:5px;display:flex}.greeting-artwork-option-active{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary)}.greeting-artwork-design-swatch{aspect-ratio:421/360;color:#5b5952;border:1px solid var(--color-border);border-radius:6px;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.greeting-artwork-name{font-size:12px;font-weight:600}.gift-card-artwork-upload{margin-bottom:8px}.gift-card-preview-metal{margin-top:12px;box-shadow:inset 0 0 0 1px #00000026,0 2px 10px #0003}.metal-tint-picker-wrap{margin:8px 0 2px}.metal-tint-picker{flex-wrap:wrap;gap:8px;margin:0;display:flex}.metal-tint-selected-label{margin:6px 0 0;font-weight:600}.metal-tint-swatch{border:2px solid var(--color-border);cursor:pointer;border-radius:50%;width:28px;height:28px;padding:0;position:relative}.metal-tint-swatch-active{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-surface), 0 0 0 4px var(--color-primary)}.metal-tint-tooltip{background:var(--color-text);color:var(--color-surface);white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;z-index:5;border-radius:4px;padding:3px 7px;font-size:11px;font-weight:600;line-height:1.4;transition:opacity .12s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.metal-tint-swatch:hover .metal-tint-tooltip,.metal-tint-swatch:focus-visible .metal-tint-tooltip{opacity:1;visibility:visible}.metal-tint-swatch-confirmed{vertical-align:middle;cursor:default;margin-right:8px;display:inline-block}.metal-colour-stock-list{flex-direction:column;gap:8px;display:flex}.metal-colour-stock-row{align-items:center;gap:10px;display:flex}.metal-colour-stock-label{min-width:100px;font-weight:600}.metal-colour-stock-row .field-input{width:90px}.gift-card-format-picker .option-chip-row+.subtitle{margin:4px 0 8px;display:block}.gift-card-format-picker .option-chip-row{margin-bottom:6px}.gift-card-format-summary{margin:6px 0}.gift-card-postal-address{white-space:pre-line}.gift-card-price-input{max-width:140px}.gift-card-physical-settings .field{margin-top:10px}.status-badge.fulfilment-to_make{color:#7a5200;background:#fdf1d6}.status-badge.fulfilment-ready,.status-badge.fulfilment-posted{color:#1d5c34;background:#dcf1e3}.status-badge.fulfilment-collected{color:#4a4944;background:#e7e6e1}.calendar-feed-url{width:100%;margin:8px 0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.gift-card-open-label{border:1px dashed;border-radius:999px;padding:1px 8px;font-size:.85em;font-weight:600;display:inline-block}.gift-card-open-note{margin:4px 0 10px}.gift-card-send-to{width:min(260px,100%);margin:4px 0;display:inline-block}.metal-stock-swatch{vertical-align:-2px;border:1px solid #00000040;border-radius:3px;width:14px;height:14px;display:inline-block}.metal-stock-input{width:80px;display:inline-block}.metal-stock-table td{vertical-align:middle}
