:root{--ui-primary:#c41e3a;--ui-primary-dark:#a51c30;--ui-primary-light:#fff5f5;--occasion-primary:#c41e3a;--occasion-primary-dark:#a51c30;--occasion-secondary:#1a472a;--occasion-secondary-light:#2d5a3f;--occasion-font:"Caveat", cursive;--page-bg-from:#1a472a;--page-bg-to:#2d5a3f;--bg-gradient:linear-gradient(135deg, var(--page-bg-from) 0%, var(--page-bg-to) 100%);--text-primary:#333;--text-light:#666;--text-white:#fff;--border-light:#e8e8e8;--border-medium:#ddd;--shadow-dark:#0000004d;--bg-surface:#fff;--bg-neutral:#f5f5f5;--bg-neutral-dark:#e0e0e0;--text-muted:#999;--paper-color:#fffbf7;--font-display:var(--occasion-font);--font-body:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-handwritten:"Patrick Hand", cursive;--font-logo:"Caveat", cursive;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;--space-8:40px;--space-9:48px;--space-10:64px;--text-xs:11px;--text-sm:13px;--text-base:14px;--text-md:16px;--text-lg:18px;--text-xl:22px;--text-2xl:26px;--text-3xl:32px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-full:50px;--shadow-sm:0 2px 8px #00000014;--shadow-md:0 4px 16px #0000001f;--shadow-lg:0 8px 30px #00000026;--shadow-xl:0 20px 60px #0000004d;--duration-fast:.15s;--duration-normal:.3s;--duration-slow:.5s;--ease-default:cubic-bezier(.4, 0, .2, 1);--ease-bounce:cubic-bezier(.34, 1.56, .64, 1);--touch-min:44px;--christmas-green:var(--occasion-secondary);--christmas-green-light:var(--occasion-secondary-light);--christmas-red:var(--occasion-primary);--christmas-red-dark:var(--occasion-primary-dark)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}@media (width>=768px){*{scrollbar-width:none;-ms-overflow-style:none}::-webkit-scrollbar{display:none}}html{height:100%}body{font-family:var(--font-body);min-height:100%;min-height:-webkit-fill-available;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);position:relative}.bg-themed,.bg-christmas{background:var(--bg-gradient)}:focus{outline:none}:focus-visible{outline:2px solid var(--ui-primary,#c41e3a);outline-offset:2px;border-radius:4px}.btn{width:100%;padding:var(--space-4);border-radius:var(--radius-md);font-size:var(--text-md);cursor:pointer;transition:all var(--duration-normal) var(--ease-default);-webkit-tap-highlight-color:transparent;min-height:var(--touch-min);border:none;font-family:inherit;font-weight:600;display:block}.btn:active{transform:scale(.98)}.btn:focus-visible{outline-offset:2px;outline:2px solid #fff}.btn-primary{background:linear-gradient(135deg, var(--ui-primary) 0%, var(--ui-primary-dark) 100%);color:#fff;box-shadow:0 4px 16px #c41e3a59}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.auth-slot{position:relative}.auth-signin-btn{padding:var(--space-2) var(--space-4);color:#fff;font-size:var(--text-sm);cursor:pointer;-webkit-backdrop-filter:blur(8px);transition:all var(--duration-fast);min-height:var(--touch-min);background:#ffffff1a;border:1.5px solid #ffffff4d;border-radius:20px;align-items:center;font-family:inherit;font-weight:500;display:inline-flex}.auth-signin-btn:hover{background:#fff3;border-color:#ffffff80}button.auth-user,.auth-user{align-items:center;gap:var(--space-2);cursor:pointer;border-radius:var(--radius-xl);transition:all var(--duration-fast);min-height:var(--touch-min);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:inherit;text-align:left;background:#ffffff14;border:1.5px solid #fff3;padding:6px 12px 6px 6px;display:flex}.auth-user:hover{background:#ffffff26;border-color:#ffffff59}.auth-chevron{color:#ffffff80;transition:transform var(--duration-fast);margin-left:2px}.auth-avatar{object-fit:cover;border:2px solid #ffffff4d;border-radius:50%;width:32px;height:32px}.auth-avatar.auth-initial{background:var(--ui-primary,#c41e3a);color:#fff;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:var(--text-base);justify-content:center;align-items:center;font-weight:600;display:flex}.auth-name{color:#fff;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:var(--text-sm);font-weight:500}.auth-dropdown{margin-top:var(--space-2);background:var(--bg-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:1000;min-width:160px;padding:6px;display:none;position:absolute;top:100%;right:0}.auth-dropdown.show{display:block}.auth-dropdown-item{width:100%;color:var(--text-primary);font-size:var(--text-base);text-align:left;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast);min-height:var(--touch-min);background:0 0;border:none;padding:10px 14px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;text-decoration:none;display:block}.auth-dropdown-item:hover{background:var(--bg-neutral)}.auth-slot--light .auth-signin-btn{color:var(--text-primary);-webkit-backdrop-filter:none;backdrop-filter:none;background:#0000000f;border-color:#00000026}.auth-slot--light .auth-signin-btn:hover{background:#0000001a;border-color:#00000040}.auth-slot--light .auth-user{background:#0000000a;border-color:#0000001f}.auth-slot--light .auth-user:hover{background:#00000014;border-color:#0003}.auth-slot--light .auth-name{color:var(--text-primary)}.auth-slot--light .auth-chevron{color:#0006}.auth-slot--light .auth-avatar{border-color:#00000026}.loading-spinner{border:3px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:40px;height:40px;margin-bottom:16px;animation:1s linear infinite spin}.loading-spinner--dark{border-color:#0000001a;border-top-color:var(--ui-primary,#c41e3a)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.logo{font-family:var(--font-logo);letter-spacing:normal;color:#fffc;font-size:42px;font-weight:700;text-decoration:none;transition:color .2s}a.logo:hover{color:#fff}.hidden{display:none!important}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=359px){:root{--text-xs:10px;--text-sm:12px;--text-base:13px;--text-md:15px}}@media (width>=768px){:root{--text-lg:20px;--text-xl:24px;--text-2xl:28px;--text-3xl:36px}}
