.login-page{background:var(--bg-gradient-contact);min-block-size:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl)}.skip-link{position:absolute;inset-block-start:-40px;inset-inline-start:0;background:#fff;color:var(--color-primary);padding:var(--spacing-sm);text-decoration:none;z-index:var(--z-modal)}.skip-link:focus{inset-block-start:0}.visually-hidden{position:absolute;inline-size:1px;block-size:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.login-container{background:#fff;padding:var(--spacing-3xl);border-radius:var(--radius-lg);box-shadow:var(--shadow-medium);max-inline-size:440px;inline-size:100%;border:var(--border-width) solid var(--border-primary)}.login-title{font-family:var(--font-primary);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-primary);text-align:center;margin-block-end:var(--spacing-lg)}.login-subtitle{font-size:var(--font-size-base);color:var(--color-gray);text-align:center;margin-block-end:var(--spacing-2xl);line-height:var(--line-height-relaxed)}.form-group{margin-block-end:var(--spacing-xl)}.form-label{display:block;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-secondary);margin-block-end:var(--spacing-lg)}.form-input{inline-size:100%;padding:var(--spacing-lg);font-size:var(--font-size-base);font-family:var(--font-primary);border:var(--border-width-thin) solid var(--border-primary);border-radius:var(--radius-md);outline:none;transition:border-color var(--transition-speed-normal) var(--transition-ease)}.form-input:focus{border-color:var(--color-primary);outline:var(--border-width-thin) solid var(--color-primary);outline-offset:2px}.submit-btn{inline-size:100%;padding:var(--spacing-lg);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);font-family:var(--font-primary);color:#fff;background:var(--color-primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-speed-normal) var(--transition-ease)}.submit-btn:hover,.submit-btn:focus{background:var(--color-primary-light);transform:translateY(-2px);box-shadow:var(--shadow-medium);outline:var(--border-width-thin) solid var(--color-primary);outline-offset:2px}.submit-btn:disabled{background:var(--color-gray-light);cursor:not-allowed;transform:none}.message{padding:var(--spacing-lg);border-radius:var(--radius-md);margin-block-end:var(--spacing-xl);text-align:center;font-size:var(--font-size-base)}.message.success{background:#d4f7e3;color:var(--color-accent-green);border:var(--border-width-thin) solid var(--color-primary-light)}.message.error{background:#f7d4d4;color:#7a1f1f;border:var(--border-width-thin) solid hsl(0,60%,60%)}.loading{display:none;text-align:center;margin-block-start:var(--spacing-lg);color:var(--color-gray)}.loading.active{display:block}.pwa-status-badge{position:fixed;inset-block-start:20px;inset-inline-end:20px;padding-block:8px;padding-inline:16px;border-radius:20px;font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px;z-index:100;animation:slideInRight .3s ease-out;transition:opacity .3s ease-out}.pwa-status-badge.fade-out{opacity:0}.pwa-status-badge.installed{background:#d4f7e3;color:var(--color-accent-green, hsl(146, 34%, 35%));border:2px solid var(--color-primary-light, hsl(146, 34%, 35%))}.pwa-status-badge.browser{background:#fff9e5;color:#997300;border:2px solid hsl(45,100%,50%)}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.pwa-install-prompt{position:fixed;inset:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .3s ease-out;backdrop-filter:blur(4px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.pwa-prompt-content{background:#fff;border-radius:var(--radius-lg, 24px);padding-block:40px;padding-inline:40px;max-inline-size:500px;inline-size:100%;text-align:center;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease-out;border:3px solid var(--color-primary, hsl(146, 34%, 35%));max-block-size:90vh;overflow-y:auto}@keyframes slideUp{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.pwa-icon{font-size:80px;margin-block-end:20px;animation:bounce 1s infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.pwa-prompt-title{font-family:var(--font-primary);font-size:28px;font-weight:700;color:var(--color-primary, hsl(146, 34%, 35%));margin-block:0 16px}.pwa-prompt-text{font-size:16px;color:var(--color-gray, hsl(0, 0%, 35%));line-height:1.6;margin-block:0 24px}.pwa-install-btn{inline-size:100%;background:var(--color-primary, hsl(146, 34%, 35%));color:#fff;border:none;padding-block:16px;padding-inline:32px;border-radius:var(--radius-md, 16px);font-size:18px;font-weight:700;cursor:pointer;transition:all .2s;margin-block-end:16px;font-family:var(--font-primary)}.pwa-install-btn:hover:not(:disabled){background:var(--color-primary-light, hsl(146, 34%, 30%));transform:translateY(-2px);box-shadow:0 8px 20px #3b7a574d}.pwa-install-btn:focus{outline:3px solid var(--color-primary);outline-offset:2px}.pwa-install-btn:active:not(:disabled){transform:translateY(0)}.pwa-install-btn:disabled{background:var(--color-gray-light, hsl(0, 0%, 80%));cursor:not-allowed;transform:none;opacity:.7}.browser-instructions,.browser-instructions-section,.ios-instructions{background:#fff9e5;border:2px solid hsl(45,100%,70%);border-radius:var(--radius-md, 12px);padding-block:20px;padding-inline:20px;margin-block:20px;text-align:start}.instruction-title{font-weight:700;color:#997300;margin-block:0 12px;font-size:16px}.instruction-list{margin:0;padding-inline-start:20px;color:#806000}.instruction-list li{margin-block:8px;line-height:1.4;font-size:14px}.continue-anyway-btn{background:transparent;color:var(--color-gray, hsl(0, 0%, 50%));border:2px solid hsl(0,0%,80%);padding-block:12px;padding-inline:24px;border-radius:var(--radius-md, 12px);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;inline-size:100%;font-family:var(--font-primary)}.continue-anyway-btn:hover{background:#f2f2f2;border-color:#999}.continue-anyway-btn:focus{outline:3px solid var(--color-primary);outline-offset:2px}.mobile-warning{background:linear-gradient(135deg,#fff9e5,#fff2cc);border:3px solid hsl(45,100%,70%);border-radius:var(--radius-md, 16px);padding-block:24px;padding-inline:24px;margin-block-start:var(--spacing-xl, 24px);animation:slideDown .4s ease-out}@keyframes slideDown{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.warning-icon{font-size:48px;text-align:center;margin-block-end:16px}.warning-title{font-size:18px;font-weight:700;color:#806000;text-align:center;margin-block:0 16px}.warning-steps{margin-block:16px;padding-inline-start:24px;color:#664d00}.warning-steps li{margin-block:10px;line-height:1.5;font-weight:500}.warning-footer{text-align:center;font-size:14px;color:#997300;margin-block:16px 0;font-weight:600}@media screen and (max-width:768px){.login-page{padding:var(--spacing-lg)}.login-container{padding:var(--spacing-xl);border-width:var(--border-width-medium)}.login-title{font-size:var(--font-size-xl)}.login-subtitle{font-size:var(--font-size-sm)}.pwa-status-badge{inset-block-start:10px;inset-inline-end:10px;font-size:12px;padding-block:6px;padding-inline:12px}.pwa-prompt-content{padding-block:30px;padding-inline:24px}.pwa-icon{font-size:64px}.pwa-prompt-title{font-size:24px}.pwa-prompt-text{font-size:14px}.pwa-install-btn{font-size:16px;padding-block:14px;padding-inline:28px}}@media screen and (max-width:480px){.login-page{padding:var(--spacing-md)}.login-container{padding:var(--spacing-lg);border-radius:var(--radius-md)}.login-title{font-size:var(--font-size-lg);margin-block-end:var(--spacing-md)}.login-subtitle{font-size:var(--font-size-sm);margin-block-end:var(--spacing-lg)}.form-input,.submit-btn,.message{padding:var(--spacing-md);font-size:var(--font-size-sm)}.pwa-prompt-content{padding-block:24px;padding-inline:20px}.pwa-icon{font-size:56px}.pwa-prompt-title{font-size:20px}.mobile-warning{padding-block:20px;padding-inline:20px}.warning-icon{font-size:40px}.warning-title{font-size:16px}.warning-steps{font-size:14px;padding-inline-start:20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.pwa-icon{animation:none}}
