*{box-sizing:border-box}body{margin:0;font-family:system-ui,sans-serif;color:#111;background:#fff;line-height:1.5}main{max-width:480px;margin:0 auto;padding:24px 16px}label{display:block;margin-top:12px;font-weight:600}textarea{display:block;font:inherit}input,textarea{width:100%;margin-bottom:12px;padding:10px;border:1px solid #666;border-radius:6px}button,input{min-height:44px;font-size:1rem}button{padding:12px 20px;color:#fff;background:#154c39;border:1px solid #154c39;border-radius:8px;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid #0b57d0;outline-offset:3px}.checkbox-label{display:flex;align-items:flex-start;gap:12px;min-height:44px;margin:12px 0;font-weight:400;cursor:pointer}.checkbox-label input[type=checkbox]{flex:none;width:24px;min-height:24px;height:24px;margin:2px 0 0;padding:0}.visitor-type{margin:24px 0 0;padding:0;border:0}.visitor-type legend{padding:0;font-weight:600}.visitor-type-choice{display:flex;align-items:center;gap:12px;min-height:48px;margin-top:8px;padding:8px 12px;font-weight:400;border:1px solid #666;border-radius:8px;cursor:pointer}.visitor-type-choice input[type=radio]{flex:none;width:24px;min-height:24px;height:24px;margin:0;padding:0}.help-page h2{margin-top:32px;page-break-after:avoid;break-after:avoid}.help-page section{page-break-inside:avoid;break-inside:avoid}@media print{.no-print{display:none!important}body{font-size:12pt}main{max-width:none;padding:0}a{color:inherit;text-decoration:none}}.ring-button{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:88px;margin-top:24px;font-size:1.5rem;font-weight:700;letter-spacing:.5px;border-radius:24px;box-shadow:0 14px 30px #154c3940;transition:transform .15s,background .2s}.ring-button svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.ring-button:hover:not(:disabled){background:#0b3929}.ring-button:active:not(:disabled){transform:scale(.98)}.auth-page{display:flex;flex-direction:column;gap:28px;max-width:none;min-height:100vh;padding:32px 16px 40px;background:#f6f8f4}.auth-brand,.auth-page{align-items:center;color:#182c24}.auth-brand{display:inline-flex;gap:8px;font-size:1.9375rem;font-weight:650;letter-spacing:-1.5px;line-height:1;text-decoration:none}.auth-brand-mark{display:grid;place-items:center;width:36px;height:38px;color:#fff;background:#154c39;border-radius:12px}.auth-brand-mark svg,.auth-check svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.auth-brand-dot{margin-left:-8px;color:#154c39}.auth-card{width:100%;max-width:460px;padding:36px 32px;background:#fff;border:1px solid #dde3dc;border-radius:24px;box-shadow:0 12px 35px #21381510}.auth-check{display:grid;place-items:center;width:56px;height:56px;margin-bottom:20px;color:#154c39;background:#eaf1e4;border-radius:50%}.auth-eyebrow{margin:0 0 14px;font-size:.75rem;font-weight:700;letter-spacing:1.7px;color:#154c39}.auth-card h1{margin:0;font-size:clamp(1.9rem,6vw,2.5rem);font-weight:500;line-height:1.1;letter-spacing:-1.4px}.auth-intro{margin:14px 0 0;color:#56655e;line-height:1.6}.auth-hint{margin:18px 0 0;color:#56655e;font-size:.9375rem}.auth-form{margin-top:28px}.auth-field{margin-bottom:18px}.auth-field label{margin:0 0 8px;font-size:.875rem;font-weight:600}.auth-field input{min-height:52px;margin:0;padding:12px 14px;background:#fff;border:1px solid #8a968f;border-radius:12px}.auth-field small{display:block;margin-top:6px;font-size:.8125rem;color:#56655e}.auth-submit{width:100%;min-height:54px;margin-top:6px;font-size:.9375rem;font-weight:600;border-radius:12px;transition:background .2s}.auth-submit:hover:not(:disabled){background:#0b3929}.auth-primary{display:flex;align-items:center;justify-content:center;width:100%;min-height:54px;margin-top:22px;font-size:.9375rem;font-weight:600;color:#fff;text-decoration:none;background:#154c39;border-radius:12px;transition:background .2s}.auth-primary:hover{background:#0b3929}.auth-card .auth-error form{margin-top:12px}.auth-secondary{display:flex;align-items:center;justify-content:center;width:100%;min-height:54px;margin-top:14px;font-size:.9375rem;font-weight:600;color:#182c24;text-decoration:none;background:#fff;border:1px solid #8a968f;border-radius:12px}.auth-secondary:hover{border-color:#154c39}.auth-error{margin:16px 0 0;padding:12px 14px;font-size:.9375rem;color:#8a1c1c;background:#fdf0ef;border:1px solid #e8b9b6;border-radius:12px}.auth-alt{margin:20px 0 0;font-size:.9375rem;text-align:center;color:#56655e}.auth-alt a{font-weight:600;color:#154c39;text-decoration:underline;text-underline-offset:4px}.auth-page footer{max-width:460px;text-align:center;font-size:.8125rem;color:#56655e}.auth-page footer a{color:#154c39;text-decoration:underline;text-underline-offset:3px}@media (max-width:480px){.auth-card{padding:28px 22px}}.password-input{position:relative}.password-input input{padding-right:52px}.password-input input::-ms-clear,.password-input input::-ms-reveal{display:none}.password-toggle{position:absolute;top:50%;right:4px;display:grid;place-items:center;width:44px;min-height:44px;height:44px;padding:0;color:#56655e;background:transparent;border:0;border-radius:10px;transform:translateY(-50%)}.password-toggle:hover{color:#154c39;background:#f1f4ed}.password-toggle svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.app-shell{min-height:100vh;color:#182c24;background:#fff}.app-header{display:flex;align-items:center;max-width:560px;margin:0 auto;padding:calc(20px + env(safe-area-inset-top)) 20px 4px}.app-brand{font-size:1.9375rem;font-weight:650;letter-spacing:-1.5px;line-height:1;color:#182c24;text-decoration:none}.app-brand-dot{color:#154c39}.app-shell main{max-width:560px;padding:8px 20px calc(110px + env(safe-area-inset-bottom))}.app-eyebrow{margin:18px 0 6px;font-size:.8125rem;font-weight:600;letter-spacing:.8px;color:#56655e}.app-shell h1{margin:0;font-size:clamp(2rem,8vw,2.6rem);font-weight:500;line-height:1.08;letter-spacing:-1.6px}.app-sub{margin:8px 0 0;color:#56655e}.app-shell h2{margin:30px 0 12px;font-size:1.25rem;font-weight:600;letter-spacing:-.3px}.app-shell h3{margin:20px 0 8px;font-size:1.0625rem;font-weight:600}.app-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.app-links a,.app-section-head a{font-size:.9375rem;font-weight:600;color:#154c39;text-decoration:underline;text-underline-offset:4px}.app-links{margin:28px 0 0}.app-empty{margin:0;color:#56655e}.door-cards,.door-list,.visit-list{display:grid;grid-gap:12px;gap:12px;margin:0;padding:0;list-style:none}.app-shell main>section:not([aria-labelledby]):not([aria-label]),.door-card,.door-item,.ring-banner,.visit-item{background:#fff;border:1px solid #dde3dc;border-radius:20px}.door-card,.visit-item{display:flex;align-items:center;gap:14px;padding:14px 16px;color:inherit;text-decoration:none}a.door-card:hover{border-color:#154c39}.door-card-icon{display:grid;flex:none;place-items:center;width:44px;height:44px;color:#154c39;background:#f3f5ee;border-radius:14px}.door-card-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.door-card-text{display:flex;flex:1 1;flex-direction:column;min-width:0}.door-card-text strong{font-weight:600;overflow-wrap:anywhere}.door-card-text small{font-size:.875rem;color:#56655e}.chip{flex:none;padding:4px 12px;font-size:.8125rem;font-weight:600;color:#154c39;background:#eaf1e4;border-radius:999px}.chip-muted{color:#56655e;background:#eef0ec}.ring-banner{margin-top:20px;padding:4px 18px 14px;background:#eaf1e4;border-color:#c3d8b8}.ring-banner h2{margin-top:14px}.ring-banner ul{margin:0;padding-left:20px}.ring-banner a{font-weight:600;color:#154c39}.app-shell main>section:not([aria-labelledby]):not([aria-label]){margin-top:18px;padding:4px 18px 18px}.app-shell main>section:not([aria-labelledby]):not([aria-label]) h2{margin-top:16px}.door-item{padding:16px}.door-item-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.door-item-head strong{font-size:1.125rem;font-weight:600;overflow-wrap:anywhere}.door-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.door-link-box{margin:0 0 16px;padding:14px 16px;background:#f6f8f4;border:1px solid #dde3dc;border-radius:20px;overflow-wrap:anywhere}.door-create{padding:4px 0 0}.app-shell label{margin-top:14px;font-size:.9375rem}.app-shell input:not([type=checkbox]):not([type=radio]),.app-shell select,.app-shell textarea{min-height:48px;margin-top:6px;padding:10px 14px;background:#fff;border:1px solid #8a968f;border-radius:12px}.app-shell main button{min-height:44px;padding:10px 18px;font-size:.9375rem;font-weight:600;color:#182c24;background:#fff;border:1px solid #8a968f;border-radius:12px}.app-shell main button:hover:not(:disabled){border-color:#154c39}.app-shell main button[type=submit]{color:#fff;background:#154c39;border-color:#154c39}.app-shell main button[type=submit]:hover:not(:disabled){background:#0b3929}.app-shell main button.danger{color:#8a1c1c;border-color:#d9aaa6}.app-shell main details{margin-top:12px;padding:10px 14px;border:1px solid #dde3dc;border-radius:14px}.app-shell main summary{padding:6px 0;font-weight:600;cursor:pointer}.app-shell main p[role=alert]{margin:12px 0 0;padding:10px 14px;color:#8a1c1c;background:#fdf0ef;border:1px solid #e8b9b6;border-radius:12px}.app-shell main p[role=status]{margin:12px 0 0;color:#154c39;font-weight:600}.app-shell main ul{padding-left:20px}.app-shell main .door-cards,.app-shell main .door-list,.app-shell main .visit-list{padding-left:0}.app-signout{margin-top:24px}.app-signout button{width:100%}.app-shell footer{margin-top:28px;font-size:.8125rem;color:#56655e}.app-shell footer a{color:#154c39;text-decoration:underline;text-underline-offset:3px}.ack-actions{display:grid;grid-gap:10px;gap:10px;margin-top:4px}.app-shell main .ack-actions button{min-height:60px;padding:12px 18px;font-size:1.125rem;color:#fff;background:#154c39;border-color:#154c39;border-radius:16px;transition:transform .15s,background .2s}.app-shell main .ack-actions button:hover:not(:disabled){background:#0b3929}.app-shell main .ack-actions button:active:not(:disabled){transform:scale(.985)}.app-shell main .ack-actions button:nth-child(n+3){color:#182c24;background:#fff;border-color:#c3cdc6}.app-shell main .ack-actions button:nth-child(n+3):hover:not(:disabled){background:#f6f8f4;border-color:#154c39}.ack-done{display:flex;align-items:center;gap:12px}.app-tabbar{position:fixed;right:0;bottom:0;left:0;z-index:10;display:grid;grid-template-columns:repeat(3,1fr);max-width:560px;margin:0 auto;padding-bottom:env(safe-area-inset-bottom);background:rgba(255,255,255,.96);border-top:1px solid #dde3dc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.app-tab{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:64px;font-size:.75rem;font-weight:600;color:#56655e;text-decoration:none}.app-tab svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.app-tab[aria-current=page]{color:#154c39}.app-tab[aria-current=page]:before{position:absolute;top:-1px;width:44px;height:3px;content:"";background:#154c39;border-radius:0 0 3px 3px}.app-shell main a:not(.door-card){color:#154c39;text-underline-offset:3px}.app-shell main>section[aria-label]{margin-top:22px}.app-splash{position:fixed;inset:0;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;background:#fff;animation:splash-out .35s ease 1.45s forwards}.app-splash-disc{display:grid;place-items:center;width:84px;height:84px;color:#fff;background:#154c39;border-radius:26px;box-shadow:0 0 0 0 rgba(21,76,57,.28);animation:splash-in .45s cubic-bezier(.2,.8,.2,1) both,splash-pulse .7s ease-out .45s 2}.app-splash-disc svg{width:44px;height:44px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.app-splash-bell{transform-box:fill-box;transform-origin:50% 0;animation:splash-ring .5s ease-in-out .4s 2 both}.app-splash-wave{animation:splash-wave .5s ease-in-out .4s 2 both}.app-splash-brand{font-size:1.9375rem;font-weight:650;letter-spacing:-1.5px;line-height:1;color:#182c24;animation:splash-rise .5s ease-out .25s both}@keyframes splash-out{to{opacity:0;visibility:hidden;pointer-events:none}}@keyframes splash-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes splash-pulse{to{box-shadow:0 0 0 26px rgba(21,76,57,0)}}@keyframes splash-ring{0%,to{transform:rotate(0)}20%{transform:rotate(14deg)}40%{transform:rotate(-12deg)}60%{transform:rotate(8deg)}80%{transform:rotate(-5deg)}}@keyframes splash-wave{0%,to{opacity:0}30%,70%{opacity:1}}@keyframes splash-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.app-splash,.app-splash-bell,.app-splash-brand,.app-splash-disc,.app-splash-wave{animation:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (prefers-reduced-motion:reduce){.app-splash{animation:splash-out .01s linear 1.2s forwards}}.door-quota{display:inline-block;margin:18px 0 16px;padding:4px 12px;font-size:.8125rem;font-weight:600;color:#154c39;background:#eaf1e4;border-radius:999px}.door-item{display:grid;grid-gap:12px;gap:12px}.door-item-head{gap:14px}.door-item-head .door-card-text strong{font-size:1.0625rem}.door-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;margin:0}.door-item details,.door-panel{margin:0;padding:4px 14px;background:#f6f8f4;border:1px solid #dde3dc;border-radius:14px}.app-shell main summary{display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none}.app-shell main summary::-webkit-details-marker{display:none}.app-shell main summary:after{font-size:1.25rem;line-height:1;color:#56655e;content:"›";transition:transform .2s}.app-shell main details[open]>summary:after{transform:rotate(90deg)}.door-panel{margin-top:0}.door-danger{display:grid;grid-gap:2px;gap:2px;padding-top:8px;border-top:1px solid #dde3dc}.app-shell main .door-danger button{justify-content:flex-start;min-height:44px;padding:8px 4px;color:#8a1c1c;text-align:left;background:transparent;border:0}.door-create,.door-upgrade{margin-top:24px;padding:4px 18px 20px;background:#fff;border:1px solid #dde3dc;border-radius:20px}.door-create h2,.door-upgrade h2{margin-top:16px}.door-create button[type=submit]{width:100%;margin-top:18px}.door-upgrade{background:#f6f8f4}.door-upgrade p{margin:0 0 14px;color:#56655e}.app-shell main .door-upgrade a{display:inline-flex;align-items:center;min-height:44px;padding:10px 18px;font-weight:600;color:#fff;text-decoration:none;background:#154c39;border-radius:12px}.door-link-box img{display:block;margin-top:8px;background:#fff;border-radius:12px}.skeleton{background:linear-gradient(90deg,#eef0ec 25%,#f6f8f4 50%,#eef0ec 75%);background-size:200% 100%;border-radius:12px;animation:skeleton-shimmer 1.2s ease-in-out infinite}.skeleton-eyebrow{width:96px;height:14px;margin:24px 0 10px}.skeleton-title{width:70%;height:40px;margin-bottom:12px}.skeleton-text{width:55%;height:18px;margin-bottom:28px}.skeleton-card{height:76px;margin-bottom:12px;border-radius:20px}.skeleton-card-short{height:56px}@keyframes skeleton-shimmer{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.profile-card{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:20px;padding:18px;color:#fff;background:linear-gradient(135deg,#154c39,#1f6a50);border-radius:24px}.profile-avatar{display:grid;flex:none;place-items:center;width:52px;height:52px;font-size:1.375rem;font-weight:700;color:#154c39;background:#d9edb0;border-radius:50%}.profile-text{display:flex;flex:1 1;flex-direction:column;min-width:0}.profile-text strong{font-size:1.125rem;font-weight:600;overflow-wrap:anywhere}.profile-text small{color:rgba(255,255,255,.82);overflow-wrap:anywhere}.profile-plan{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;font-size:.8125rem;font-weight:600;color:#154c39;background:#d9edb0;border-radius:999px}.profile-plan svg{width:15px;height:15px;fill:currentColor;stroke:currentColor;stroke-width:1.2;stroke-linejoin:round}.app-shell main a.profile-upgrade{display:inline-flex;align-items:center;gap:8px;margin-top:10px;font-size:.9375rem;font-weight:600}.profile-upgrade svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.set-group{margin-top:8px}.app-shell main h2.set-group-title{margin:28px 0 10px;font-size:1.0625rem;font-weight:600}.app-shell main h3.set-subtitle{margin:18px 0 8px;font-size:.9375rem;color:#56655e}.set-card{margin:0;padding:0;list-style:none;background:#fff;border:1px solid #dde3dc;border-radius:20px;overflow:hidden}.set-row{display:flex;align-items:center;gap:14px;padding:14px 16px;color:inherit;text-decoration:none}.set-card>.set-row+.set-row,.set-card>li+li{border-top:1px solid #eef0ec}.set-row-wrap{flex-wrap:wrap}.set-row-text{display:flex;flex:1 1;flex-direction:column;min-width:0}.set-row-text strong{font-weight:600}.set-row-text small{font-size:.875rem;line-height:1.4;color:#56655e}.set-badge{display:grid;flex:none;place-items:center;width:42px;height:42px;border-radius:14px}.set-badge svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.set-badge-green{color:#154c39;background:#e3f0d8}.set-badge-amber{color:#8a5a00;background:#fdf0d2}.set-badge-blue{color:#1d4f8c;background:#e1ecfa}.set-badge-red{color:#9b1c1c;background:#fbe4e2}.set-badge-gray{color:#45544c;background:#eef0ec}.set-link:hover{background:#f6f8f4}.set-chevron{display:grid;place-items:center;color:#8a968f}.set-chevron svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.set-row-form{flex-direction:column;align-items:stretch;gap:12px}.set-row-line{display:flex;align-items:center;gap:14px}.set-row-line label{margin:0}.set-inline{display:flex;gap:10px}.set-inline input{flex:1 1;min-width:0;margin:0}.set-times{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}.set-times label{margin:0}.set-times input{width:auto;margin:0}.set-note{margin:10px 4px 0;font-size:.875rem;line-height:1.5;color:#56655e}.set-hint{display:flex;flex-basis:100%;align-items:flex-start;gap:8px;margin:0;padding:10px 12px;font-size:.875rem;line-height:1.45;color:#6b4a00;background:#fdf3dc;border-radius:12px}.set-hint svg{flex:none;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.set-devices{display:block}.app-shell main button.toggle{position:relative;flex:none;width:52px;min-height:32px;height:32px;padding:0;background:#c9d1cb;border:0;border-radius:999px;transition:background .2s}.app-shell main button.toggle[aria-checked=true]{background:#154c39}.toggle-thumb{position:absolute;top:3px;left:3px;width:26px;height:26px;background:#fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .2s}.toggle[aria-checked=true] .toggle-thumb{transform:translateX(20px)}.app-shell main button.toggle:disabled{opacity:.5}@media (prefers-reduced-motion:reduce){.toggle,.toggle-thumb{transition:none}}.app-shell main .set-row button{flex:none;min-height:40px;padding:8px 14px}.app-shell main button.primary{color:#fff;background:#154c39;border-color:#154c39}.app-shell main button.primary:hover:not(:disabled){background:#0b3929}.app-shell main .set-row button.danger{border-color:#d9aaa6}.app-signout button.signout-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:52px;color:#182c24;background:#fff;border:1px solid #8a968f}.signout-button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.app-shell main details.danger-details{margin-top:16px;padding:0;background:#fff;border:1px solid #efc7c3;border-radius:20px}.danger-details>summary{display:flex;align-items:center;gap:14px;padding:14px 16px}.danger-details[open]>summary{border-bottom:1px solid #f3dcd9}.danger-zone{padding:4px 16px 18px}.danger-zone p{color:#56655e}.app-shell main .danger-zone>button{width:100%;margin-top:12px;color:#fff;background:#9b1c1c;border-color:#9b1c1c}.app-shell main .danger-zone>button:disabled{opacity:.45}.profile-text{flex:1 1 180px}.profile-text small{overflow-wrap:break-word}.danger-details .set-row-text small{font-weight:400}.legal-notice{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px;padding:12px 14px;color:#6b4a00;background:#fdf3dc;border-radius:16px}.legal-notice svg{flex:none;width:22px;height:22px;margin-top:2px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.legal-notice p{margin:0}.legal-notice small{font-size:.875rem;line-height:1.5}.app-shell main details.danger-details>summary{padding:14px 16px}.notif-alert{display:flex;align-items:flex-start;gap:14px;margin-top:14px;padding:16px;color:#5a3d00;background:#fdf0d2;border:1px solid #efd08a;border-radius:20px}.notif-alert-blocked,.notif-alert-unsupported{color:#7a1616;background:#fdeceb;border-color:#eab5b1}.notif-alert-icon{display:grid;flex:none;place-items:center;width:44px;height:44px;color:#fff;background:#c47f00;border-radius:14px}.notif-alert-blocked .notif-alert-icon,.notif-alert-unsupported .notif-alert-icon{background:#b42318}.notif-alert-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;transform-origin:50% 0;animation:notif-bell 2.4s ease-in-out infinite}@keyframes notif-bell{0%,60%,to{transform:rotate(0)}68%{transform:rotate(14deg)}76%{transform:rotate(-12deg)}84%{transform:rotate(8deg)}92%{transform:rotate(-4deg)}}@media (prefers-reduced-motion:reduce){.notif-alert-icon svg{animation:none}}.notif-alert-body{flex:1 1;min-width:0}.app-shell main .notif-alert-body h2{margin:0 0 4px;font-size:1.125rem}.notif-alert-body p{margin:0 0 12px;font-size:.9375rem;line-height:1.5}.app-shell main .notif-alert-body a{color:inherit;font-weight:600}.app-shell main .notif-alert-body button{width:100%}.app-shell main .notif-alert-body p[role=alert]{margin-top:10px}.escalation-list{display:grid;grid-gap:0;gap:0;margin:12px 0 4px;padding:0;list-style:none}.escalation-row{position:relative;display:flex;align-items:center;gap:12px;padding:10px 0}.escalation-row+.escalation-row:before{position:absolute;top:-12px;left:17px;width:2px;height:24px;content:"";background:#cfd8cf}.escalation-avatar{display:grid;flex:none;place-items:center;width:36px;height:36px;font-size:.9375rem;font-weight:700;color:#154c39;background:#e3f0d8;border-radius:50%}.escalation-avatar-owner{color:#fff;background:#154c39}.escalation-label{margin:0;font-size:.875rem;font-weight:400;color:#56655e}.app-shell main .escalation-row select{flex:none;width:auto;min-height:44px;margin:0;padding:8px 12px;font-size:.9375rem;font-weight:600}.door-locked{display:flex;align-items:center;gap:12px;padding:12px 14px;background:#f6f8f4}.door-locked-icon{display:grid;flex:none;place-items:center;width:36px;height:36px;color:#56655e;background:#eef0ec;border-radius:12px}.door-locked-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.guide-page{display:flex;flex-direction:column;align-items:center;gap:20px;max-width:none;min-height:100vh;padding:24px 16px 48px;color:#182c24;background:#f6f8f4;font-size:1.25rem;line-height:1.55}.guide{width:100%;max-width:560px}.guide-title{margin:8px 0 18px;font-size:clamp(1.9rem,7vw,2.4rem);font-weight:600;line-height:1.15;letter-spacing:-.8px}.guide-title:focus{outline:none}.guide-loading{font-size:1.25rem;color:#56655e}.guide-device{padding:14px 18px;margin-bottom:16px;font-size:1.0625rem;background:#fff;border:1px solid #dde3dc;border-radius:20px}.guide-device p{margin:0}.guide .guide-link-button{min-height:44px;padding:6px 0;font-size:1.0625rem;font-weight:600;color:#154c39;text-decoration:underline;text-underline-offset:4px;background:none;border:0}.guide-choices{display:grid;grid-gap:10px;gap:10px;margin-top:10px}.guide .guide-choice{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;padding:12px 16px;font-size:1.1875rem;font-weight:600;color:#182c24;text-align:left;background:#fff;border:2px solid #8a968f;border-radius:16px}.guide .guide-choice-active{background:#eaf1e4;border-color:#154c39}.guide-choice svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.guide-browser p{margin:8px 0 4px;font-weight:600}.guide-browser{display:grid;grid-gap:10px;gap:10px}.guide-notice{display:flex;align-items:flex-start;gap:12px;margin:0 0 16px;padding:14px 16px;font-size:1.0625rem;line-height:1.5;border-radius:16px}.guide-notice svg{flex:none;width:24px;height:24px;margin-top:1px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.guide-notice-info{color:#154c39;background:#eaf1e4}.guide-notice-warning{color:#6b4a00;background:#fdf0d2;border:1px solid #efd08a}.guide-native{margin-bottom:16px;padding:18px;text-align:center;background:#fff;border:2px solid #154c39;border-radius:20px}.guide-native p{margin:0 0 12px}.guide-native .guide-native-or{margin:12px 0 0;font-size:1.0625rem;color:#56655e}.guide-done,.guide-step{padding:20px 18px 22px;background:#fff;border:1px solid #dde3dc;border-radius:24px;box-shadow:0 12px 35px #21381510}.guide-progress{margin:0 0 8px;font-size:1.0625rem;font-weight:700;letter-spacing:.4px;color:#154c39}.guide-dots{display:flex;gap:8px;margin-bottom:16px}.guide-dot{flex:1 1;height:8px;background:#dde3dc;border-radius:4px}.guide-dot-on{background:#154c39}.guide-scene{display:block;width:100%;max-width:420px;height:auto;margin:0 auto 14px;background:#eef2ec;border-radius:18px}.guide-scene .scene-pulse{transform-box:fill-box;transform-origin:center;animation:scene-pulse 1.4s ease-out infinite}@keyframes scene-pulse{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.55)}}@media (prefers-reduced-motion:reduce){.guide-scene .scene-pulse{animation:none;opacity:0}}.guide-done h2,.guide-step h2{margin:4px 0 8px;font-size:1.75rem;font-weight:600;line-height:1.2;letter-spacing:-.5px}.guide-done p,.guide-text{margin:0 0 14px}.guide-action{margin-bottom:14px}.guide-action p{margin:10px 0 0;font-size:1.0625rem}.guide-help{margin-bottom:16px;padding:4px 16px;font-size:1.0625rem;background:#f6f8f4;border:1px solid #dde3dc;border-radius:14px}.guide-help summary{min-height:48px;padding:10px 0;font-weight:600;color:#154c39;cursor:pointer}.guide-help p{margin:0 0 12px}.guide-nav{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.guide .guide-primary,.guide .guide-secondary{display:flex;align-items:center;justify-content:center;min-height:64px;padding:12px 18px;font-size:1.25rem;font-weight:700;text-align:center;text-decoration:none;border-radius:16px}.guide .guide-primary{color:#fff;background:#154c39;border:2px solid #154c39}.guide .guide-primary:hover{background:#0b3929}.guide .guide-secondary{color:#182c24;background:#fff;border:2px solid #8a968f}.guide .guide-secondary:disabled{opacity:.4}.guide-action .guide-primary,.guide-native .guide-primary{width:100%}.guide-done{text-align:center}.guide-check{display:grid;place-items:center;width:72px;height:72px;margin:0 auto 12px;color:#154c39;background:#d9edb0;border-radius:50%}.guide-footer{margin-top:24px;font-size:1.0625rem;color:#56655e}.guide-footer p{margin:0 0 10px}.guide-footer a{color:#154c39;font-weight:600;text-decoration:underline;text-underline-offset:4px}.guide-page footer nav{font-size:.875rem}.install-card{display:flex;align-items:flex-start;gap:14px;margin-top:14px;padding:16px;background:#fff;border:2px solid #154c39;border-radius:20px}.install-card-icon{display:grid;flex:none;place-items:center;width:44px;height:44px;color:#fff;background:#154c39;border-radius:14px}.install-card-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.install-card-body{flex:1 1;min-width:0}.app-shell main .install-card-body h2{margin:0 0 4px;font-size:1.125rem}.install-card-body p{margin:0 0 12px;font-size:.9375rem;line-height:1.5;color:#56655e}.install-card-actions{display:grid;grid-gap:8px;gap:8px}.app-shell main a.install-card-primary{display:flex;align-items:center;justify-content:center;min-height:52px;padding:10px 16px;font-size:1rem;font-weight:700;color:#fff;text-decoration:none;background:#154c39;border-radius:12px}.app-shell main button.install-card-later{min-height:44px;font-weight:500;color:#56655e;background:transparent;border-color:transparent}.app-shell main .notif-alert-body a.notif-alert-guide{display:flex;align-items:center;justify-content:center;min-height:52px;padding:10px 16px;font-weight:700;color:#fff;text-decoration:none;background:#154c39;border-radius:12px}.guide-done .guide-nav{grid-template-columns:1fr}.guide-page footer a{color:#154c39;text-decoration:underline;text-underline-offset:3px}.guide-page footer{text-align:center;color:#56655e}.app-shell main a.back-link{display:inline-flex;align-items:center;gap:6px;min-height:44px;margin-top:8px;color:#182c24;text-decoration:none}.back-link svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.door-detail-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 16px}.door-detail-head h1{font-size:clamp(1.75rem,7vw,2.2rem);overflow-wrap:anywhere}.qr-card{display:grid;grid-gap:12px;gap:12px;padding:18px;background:#f3f5ee;border:1px solid #dde3dc;border-radius:24px}.qr-frame{display:grid;justify-items:center;grid-gap:8px;gap:8px;padding:18px 16px 16px;background:#fff;border-radius:18px}.qr-brand{margin:0;font-size:1.5rem;font-weight:700;letter-spacing:-.5px;color:#182c24}.qr-frame img{display:block;width:min(100%,220px);height:auto}.qr-caption{margin:0;font-weight:600}.app-shell main a.button-link{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:10px 18px;font-weight:600;color:#182c24;text-decoration:none;background:#fff;border:1px solid #dde3dc;border-radius:14px}.app-shell main a.button-link.primary{color:#fff;background:#154c39;border-color:#154c39}.button-link svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.qr-missing p{margin:0 0 10px}.app-shell main .set-card>.door-row,.door-row{margin:0;padding:0;border:0;border-radius:0}.app-shell main .set-card>.door-row{border-top:1px solid #eef0ec}.app-shell main .set-card>.door-row:first-child{border-top:0}.door-row>summary:after{content:none}.door-row[open]>summary .set-chevron{transform:rotate(90deg)}.door-row-body{padding:0 16px 16px}.app-shell main .set-card>.door-action-row+.door-action-row,.app-shell main .set-card>.door-row+.set-row,.app-shell main .set-card>.set-row+.door-row{border-top:1px solid #eef0ec}.app-shell main button.door-action-row{display:flex;align-items:center;gap:14px;width:100%;min-height:0;padding:14px 16px;text-align:left;background:transparent;border:0;border-radius:0}.app-shell main .set-card>.door-row+button.door-action-row,.app-shell main button.door-action-row+button.door-action-row{border-top:1px solid #eef0ec}.app-shell main button.door-action-row.is-danger strong{color:#8a1c1c}.door-detail-danger{margin-top:16px}.custom-responses{display:grid;grid-gap:12px;gap:12px}.custom-responses-help{margin:0;font-size:.875rem;color:#56655e}.custom-response-field{display:grid;grid-gap:4px;gap:4px}.custom-response-field label{font-size:.875rem;font-weight:600}.app-shell main .set-row button.toggle{width:52px;height:32px;min-height:32px;padding:0}.app-shell main summary.set-row{padding:14px 16px}.app-shell main details.door-row>summary:after{content:none}.dialog-backdrop{position:fixed;inset:0;z-index:50;display:grid;align-items:end;justify-items:center;padding:16px 16px calc(16px + env(safe-area-inset-bottom));background:rgba(24,44,36,.55)}.dialog{display:grid;grid-gap:12px;gap:12px;width:min(100%,420px);padding:24px 20px 20px;background:#fff;border-radius:24px;box-shadow:0 12px 40px rgba(0,0,0,.25)}.app-shell main .dialog h2{margin:0;font-size:1.375rem;font-weight:600;color:#182c24}.dialog p{margin:0;line-height:1.5;color:#3a4a43}.dialog-actions{display:grid;grid-gap:10px;gap:10px;margin-top:8px}.app-shell main .dialog-actions button{min-height:52px;font-size:1rem;border-radius:14px}.app-shell main .dialog-actions button.dialog-confirm{color:#fff;background:#154c39;border-color:#154c39}.app-shell main .dialog-actions button.dialog-confirm.is-danger{background:#8a1c1c;border-color:#8a1c1c}@media (min-width:560px){.dialog-backdrop{align-items:center}}.app-shell main button.door-action-row{font:inherit;font-weight:400;color:inherit}.app-shell main button.door-action-row .set-row-text strong{font-weight:600}.app-shell main button.door-action-row .set-row-text small{font-weight:400}.app-empty+.add-door-button,.door-cards+.add-door-button{margin-top:16px}.app-shell main button.add-door-button{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:60px;margin-top:16px;font-size:1.0625rem;color:#154c39;background:#fff;border:1.5px dashed #8fb3a1;border-radius:20px}.app-shell main button.add-door-button:hover:not(:disabled){background:#f3f8f2;border-color:#154c39}.add-door-plus{display:grid;place-items:center;width:32px;height:32px;color:#fff;background:#154c39;border-radius:50%}.add-button svg,.add-door-plus svg,.icon-button svg,.time-step svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.dialog-form{display:grid;grid-gap:16px;gap:16px}.field-hint{margin:4px 0 0;font-size:.875rem;line-height:1.4;color:#56655e}.field-with-action{display:flex;align-items:center;gap:8px}.field-with-action input{flex:1 1;min-width:0}.app-shell main button.icon-button{display:grid;flex:none;place-items:center;width:44px;min-height:44px;padding:0;color:#56655e;background:transparent;border:0;border-radius:12px}.app-shell main button.icon-button:hover:not(:disabled){color:#8a1c1c;background:#f6e9e8}.app-shell main button.add-button{display:inline-flex;align-items:center;align-self:start;gap:8px;min-height:44px;padding:8px 14px;color:#154c39;background:#eaf1e4;border:0;border-radius:999px}.app-shell main button.link-button{min-height:0;padding:2px 0;font-size:.875rem;font-weight:600;color:#154c39;text-align:left;text-decoration:underline;text-underline-offset:3px;background:transparent;border:0}.app-shell main .set-row .set-row-text button.link-button{min-height:32px;padding:2px 0;background:transparent;border:0}.quiet-presets{display:flex;flex-wrap:wrap;gap:8px}.app-shell main button.preset-chip{min-height:40px;padding:6px 14px;font-size:.9375rem;background:#f3f5ee;border:1.5px solid transparent;border-radius:999px}.app-shell main button.preset-chip[aria-pressed=true]{color:#fff;background:#154c39;border-color:#154c39}.time-range{display:flex;align-items:center;justify-content:center;gap:8px}.time-arrow{margin-top:22px;color:#8a968f}.guide-check svg,.time-arrow svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}.guide-check svg{width:36px;height:36px;stroke-width:2.4}.time-arrow svg{width:24px;height:24px;stroke-width:2}.time-stepper{display:grid;justify-items:center;grid-gap:4px;gap:4px;min-width:0}.time-label{font-size:.875rem;font-weight:600;color:#56655e}.time-fields{display:flex;align-items:center;gap:2px}.time-column{clear:left;display:grid;justify-items:center;grid-gap:2px;gap:2px}.time-column output{display:grid;place-items:center;width:48px;height:52px;font-size:1.75rem;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:#182c24;background:#f3f5ee;border-radius:16px}.time-colon{margin-top:0;font-size:1.75rem;font-weight:600;color:#56655e}.app-shell main button.time-step{display:grid;place-items:center;width:48px;min-height:40px;height:40px;padding:0;color:#154c39;background:transparent;border:0;border-radius:12px}.app-shell main button.time-step:active,.app-shell main button.time-step:hover:not(:disabled){background:#eaf1e4}.situation{margin-top:20px;padding:20px;border:2px solid transparent;border-radius:24px}.app-shell main .situation h2{margin:0 0 6px;font-size:1.5rem;font-weight:600}.situation-detail{margin:0;font-size:1.125rem}.situation-counter{margin:12px 0 0;font-size:1.0625rem;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.situation-waiting{color:#4a3200;background:#fff4dc;border-color:#e3b44b}.situation-claimed{color:#17324f;background:#e6f0fa;border-color:#7aa6d6}.situation-answered{color:#0f3d2e;background:#eaf1e4;border-color:#154c39}.situation-expired{color:#2f3d37;background:#eef0ec;border-color:#8a968f}.situation-block{margin-top:22px}.app-shell main .situation-block h2{margin:0 0 8px;font-size:1.0625rem;font-weight:600}.situation-block p{margin:4px 0}.situation-events{display:grid;grid-gap:8px;gap:8px;margin:0;padding-left:18px}.visitor-relay{margin:12px 0 0;padding:14px 16px;font-weight:600;color:#17324f;background:#e6f0fa;border:2px solid #7aa6d6;border-radius:16px}.caregiver-actions{display:grid;grid-gap:14px;gap:14px}.app-shell main .caregiver-actions button{min-height:56px;font-size:1.0625rem}.app-shell main .caregiver-actions button.action-primary{color:#fff;background:#154c39;border-color:#154c39}.app-shell main .caregiver-actions button.action-quiet{color:#3a4a43;background:#fff}.eta-label{margin:0 0 8px;font-weight:600}.eta-choices{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:8px;gap:8px}.app-shell main .caregiver-actions .eta-choice{padding:8px 4px}@media (max-width:380px){.eta-choices{grid-template-columns:repeat(3,minmax(0,1fr))}}.resident-relay{margin-top:16px}.app-shell main .resident-relay h2{margin:0 0 8px;font-size:1.0625rem;font-weight:600}.relay-claimed{margin:0 0 10px;padding:14px 16px;color:#17324f;background:#e6f0fa;border:2px solid #7aa6d6;border-radius:16px}.relay-advice{display:grid;grid-gap:10px;gap:10px;margin:0 0 10px;padding:0;list-style:none}.relay-advice li{padding:16px;font-size:1.25rem;color:#4a3200;background:#fff4dc;border:2px solid #e3b44b;border-radius:16px}.choice-group{display:grid;grid-gap:8px;gap:8px}.choice-hint{margin:0;font-size:.9375rem;color:#3a4a43}.choice-list{display:grid;grid-gap:8px;gap:8px}.app-shell main .caregiver-actions button.choice{justify-content:flex-start;padding:12px 16px;text-align:left}.contact-links{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.app-shell main a.contact-link{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:10px 14px;font-size:1.0625rem;font-weight:600;color:#154c39;text-align:center;text-decoration:none;background:#fff;border:2px solid #154c39;border-radius:12px}.relatives-alerts{margin-top:20px;padding:4px 18px 16px;color:#4a3200;background:#fff4dc;border:2px solid #e3b44b;border-radius:20px}.app-shell main .relatives-alerts h2{margin:14px 0 8px;font-size:1.0625rem;font-weight:600}.relatives-alerts ul{display:grid;grid-gap:12px;gap:12px;margin:0;padding:0;list-style:none}.relatives-alerts li{display:grid;grid-gap:2px;gap:2px}.relatives-alerts li strong{font-size:1.0625rem}.relatives-alerts li small{color:#5a4210}.invite-result{display:grid;grid-gap:10px;gap:10px;margin-top:12px}.invite-sent{display:grid;grid-gap:2px;gap:2px;margin:0;padding:12px 14px;background:#eef6ee;border:1px solid #cfe3d0;border-radius:14px}.invite-sent small,.invite-share small{color:#56655e}.invite-share-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}.welcome-card{display:flex;align-items:center;gap:14px;margin-top:18px;padding:14px 16px;background:#eaf1e4;border:1px solid #cfe3d0;border-radius:20px}.welcome-card .door-card-icon{color:#fff;background:#154c39;border-radius:50%}.door-cards>li.door-card{list-style:none}@keyframes ob-fade{0%{opacity:0}to{opacity:1}}@keyframes ob-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes ob-card-in{0%{opacity:0;transform:translateY(36px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes ob-slide-forward{0%{opacity:0;transform:translateX(44px)}to{opacity:1;transform:translateX(0)}}@keyframes ob-slide-back{0%{opacity:0;transform:translateX(-44px)}to{opacity:1;transform:translateX(0)}}@keyframes ob-pop{0%{opacity:0;transform:scale(.5)}70%{opacity:1;transform:scale(1.08)}to{transform:scale(1)}}@keyframes ob-ripple{0%{opacity:.45;transform:scale(.8)}to{opacity:0;transform:scale(1.7)}}@keyframes ob-draw{to{stroke-dashoffset:0}}@keyframes ob-out{to{opacity:0;transform:scale(1.03)}}.ob-overlay{position:fixed;inset:0;z-index:40;overflow-y:auto;overscroll-behavior:contain;background:linear-gradient(180deg,#f6f8f4,#e6efe2);animation:ob-fade .35s ease-out both}.ob-overlay.ob-leaving{animation:ob-out .35s ease-in forwards}.ob-card{display:flex;flex-direction:column;width:100%;max-width:460px;min-height:100vh;min-height:100dvh;margin:0 auto;padding:calc(20px + env(safe-area-inset-top)) calc(24px + env(safe-area-inset-right)) 0 calc(24px + env(safe-area-inset-left));animation:ob-card-in .5s cubic-bezier(.2,.8,.2,1) both}.ob-progress{display:flex;gap:8px;justify-content:center;margin-bottom:8px}.ob-dot{width:8px;height:8px;background:#c3d1c6;border-radius:999px;transition:width .35s cubic-bezier(.2,.8,.2,1),background .3s}.ob-dot-done{background:#6f9a82}.ob-dot-active{width:28px;background:#154c39}.ob-step{display:flex;flex:1 1;flex-direction:column;justify-content:center;padding:12px 0 20px}.ob-step-forward{animation:ob-slide-forward .45s cubic-bezier(.2,.8,.2,1) both}.ob-step-back{animation:ob-slide-back .45s cubic-bezier(.2,.8,.2,1) both}.ob-stagger>*{animation:ob-rise .55s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i, 0) * 70ms)}.ob-page h1,.ob-step h2{margin:22px 0 0;font-size:clamp(1.75rem,7vw,2.25rem);font-weight:500;line-height:1.12;letter-spacing:-1.2px;outline:none}.ob-step p{margin:14px 0 0;font-size:1.0625rem;line-height:1.55;color:#44554d}.ob-hero{place-items:center;width:104px;height:104px}.ob-hero,.ob-hero-disc{position:relative;display:grid}.ob-hero-disc{place-items:center;width:84px;height:84px;color:#fff;background:#154c39;border-radius:50%;box-shadow:0 14px 30px #154c3940;animation:ob-pop .7s cubic-bezier(.2,.8,.2,1) both}.ob-hero-disc svg{width:38px;height:38px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.ob-hero-ring{position:absolute;inset:8px;border:2px solid #154c39;border-radius:50%;opacity:0;animation:ob-ripple 2.4s ease-out .5s infinite}.ob-hero-ring-2{animation-delay:1.3s}.ob-check{stroke-dasharray:24;stroke-dashoffset:24;animation:ob-draw .5s ease-out .25s forwards}.app-shell main .ob-field input{min-height:60px;margin:22px 0 0;padding:14px 16px;font-size:1.25rem;background:#fff;border:2px solid #8a968f;border-radius:16px}.app-shell main .ob-field input:focus{border-color:#154c39}.ob-actions{display:grid;grid-gap:10px;gap:10px;margin-top:22px}.ob-card>.ob-actions{position:-webkit-sticky;position:sticky;bottom:0;margin-top:0;padding:14px 0 calc(16px + env(safe-area-inset-bottom));background:linear-gradient(180deg,transparent,#e9f0e5 22%)}.ob-step>.ob-stagger .ob-actions,.ob-step>form .ob-actions{padding-bottom:calc(16px + env(safe-area-inset-bottom))}.ob-actions-inline{margin-top:18px}.app-shell main .ob-back,.app-shell main .ob-next,.app-shell main .ob-secondary{display:flex;align-items:center;justify-content:center;width:100%;min-height:58px;font-size:1.0625rem;font-weight:600;text-align:center;text-decoration:none;border-radius:16px;cursor:pointer;transition:transform .15s,background .2s}.app-shell main .ob-next{color:#fff;background:#154c39;border:1px solid #154c39}.app-shell main .ob-next:hover:not(:disabled){background:#0b3929}.app-shell main .ob-next:active,.app-shell main .ob-secondary:active{transform:scale(.98)}.app-shell main .ob-secondary{color:#154c39;background:#fff;border:2px solid #154c39}.app-shell main .ob-back{color:#44554d;background:transparent;border:0}.app-shell main a.ob-next.ob-next{color:#fff}.app-shell main a.ob-secondary.ob-secondary{color:#154c39}.app-shell main a.ob-back.ob-back{color:#44554d}.app-shell main .ob-error{color:#8a1c1c}.app-shell main .ob-checklist,.app-shell main .ob-features,.app-shell main .ob-flow{padding-left:0}.ob-features,.ob-flow{display:grid;grid-gap:12px;gap:12px;margin:18px 0 0;padding:0;list-style:none}.ob-features li,.ob-flow li{display:flex;align-items:center;gap:14px;padding:12px 14px;background:#fff;border:1px solid #dde3dc;border-radius:18px}.ob-features li>span:last-child,.ob-flow li>span:last-child{display:flex;flex-direction:column}.ob-features strong,.ob-flow strong{font-weight:600}.ob-features small,.ob-flow small{font-size:.9375rem;line-height:1.4;color:#56655e}.ob-feature-icon{display:grid;flex:none;place-items:center;width:44px;height:44px;color:#154c39;background:#eaf1e4;border-radius:14px}.ob-feature-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.ob-page{padding-bottom:40px}.ob-page-hero{display:flex;flex-direction:column;align-items:flex-start}.ob-page h1{margin-top:6px}.ob-checklist{display:grid;grid-gap:8px;gap:8px;margin:0;padding:0;list-style:none}.ob-checklist li{position:relative;padding:10px 14px 10px 42px;background:#fff;border:1px solid #dde3dc;border-radius:14px}.ob-mark{position:absolute;top:50%;left:12px;display:grid;place-items:center;width:22px;height:22px;color:#fff;background:#154c39;border-radius:50%;transform:translateY(-50%)}.ob-no .ob-mark{background:#8a1c1c}.ob-mark svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.ob-page-actions{display:grid;grid-gap:8px;gap:8px;margin-top:16px}@media (max-height:740px){.ob-hero{width:84px;height:84px}.ob-hero-disc{width:66px;height:66px}.ob-step h2{margin-top:14px;font-size:1.625rem}.ob-step p{margin-top:10px;font-size:1rem}.ob-features,.ob-flow{gap:8px;margin-top:12px}.ob-features li,.ob-flow li{padding:8px 12px}.ob-features small,.ob-flow small{font-size:.875rem;line-height:1.3}.ob-feature-icon{width:38px;height:38px}.app-shell main .ob-back,.app-shell main .ob-next,.app-shell main .ob-secondary{min-height:52px}}@media (prefers-reduced-motion:reduce){.ob-card,.ob-check,.ob-hero-disc,.ob-hero-ring,.ob-overlay,.ob-stagger>*,.ob-step-back,.ob-step-forward{animation:none}.ob-hero-ring{display:none}.ob-check{stroke-dashoffset:0}.ob-dot{transition:none}}.visitor-page{display:flex;flex-direction:column;align-items:center;gap:24px;max-width:none;min-height:100vh;min-height:100dvh;padding:calc(28px + env(safe-area-inset-top)) 16px calc(28px + env(safe-area-inset-bottom));color:#182c24;background:#f6f8f4}.visitor-brand{margin:0}.visitor-card{width:100%;max-width:460px;padding:32px 24px;background:#fff;border:1px solid #dde3dc;border-radius:24px;box-shadow:0 12px 35px #21381510;animation:ob-rise .5s cubic-bezier(.2,.8,.2,1) both}.visitor-card h1{margin:0;font-size:clamp(1.9rem,6vw,2.5rem);font-weight:500;line-height:1.1;letter-spacing:-1.4px}.visitor-message{margin:12px 0 0;font-size:1.0625rem;line-height:1.55;color:#44554d}.visitor-foot{width:100%;max-width:460px;text-align:center;font-size:.8125rem;color:#56655e}.visitor-foot a{color:#154c39;text-decoration:underline;text-underline-offset:3px}.visitor-stage{min-height:23rem}.visitor-phase{animation:ob-rise .45s cubic-bezier(.2,.8,.2,1) both}.visitor-center{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:23rem;text-align:center}.visitor-big{margin:18px 0 0;font-size:1.375rem;font-weight:600;line-height:1.35;color:#182c24}.visitor-center .visitor-relay{width:100%;margin-top:18px}.visitor-hero-still .ob-hero-ring{display:none}.visitor-page .visitor-type{margin:22px 0 0}.visitor-page .visitor-type legend{font-size:.9375rem;color:#44554d}.visitor-page .visitor-type-choice{margin-top:8px;border:1px solid #b8c4bb;border-radius:14px;transition:border-color .2s,background .2s}.visitor-page .visitor-type-choice:has(input:checked){background:#eaf1e4;border-color:#154c39}.visitor-page .visitor-type-choice input[type=radio]{accent-color:#154c39}.visitor-page .visitor-relay{margin:12px 0 0;padding:14px 16px;font-weight:600;color:#182c24;background:#eaf1e4;border:2px solid #154c39;border-radius:16px}.visitor-page .auth-error{margin:22px 0 0}@media (prefers-reduced-motion:reduce){.visitor-card,.visitor-phase{animation:none}.ring-button{transition:none}}.ring-screen .ring-hero{display:flex;align-items:center;gap:16px;margin-top:18px;padding:18px;background:#fff;border:1px solid #dde3dc;border-radius:22px;box-shadow:0 10px 28px #21381510;animation:ob-rise .45s cubic-bezier(.2,.8,.2,1) both}.ring-hero-disc{position:relative;display:grid;flex:none;place-items:center;width:56px;height:56px;color:#fff;background:#154c39;border-radius:50%}.relay-icon svg,.ring-hero-disc svg,.situation-icon svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.ring-hero-pulse{position:absolute;inset:0;border:2px solid #154c39;border-radius:50%;animation:ob-ripple 2.2s ease-out infinite}.ring-hero-acknowledged .ring-hero-disc{background:#154c39}.ring-hero-expired .ring-hero-disc{color:#44554d;background:#e8ece6}.ring-hero-text{display:flex;flex-direction:column;min-width:0}.ring-hero-text strong{font-size:1.1875rem;font-weight:600;line-height:1.25}.ring-hero-text small{margin-top:2px;font-size:.9375rem;color:#56655e}.ring-answer{margin-top:8px}.app-shell main .ring-answer h2{margin:24px 0 12px}.relay-icon,.situation-icon{display:inline-grid;flex:none;place-items:center;width:40px;height:40px;color:#154c39;background:#eaf1e4;border-radius:50%}.situation-icon{margin-right:10px;vertical-align:middle}.relay-icon svg,.situation-icon svg{width:20px;height:20px}.app-shell main .resident-relay h2{margin:24px 0 12px}.app-shell main p.ack-done,.app-shell main p.relay-claimed{margin:0 0 10px;font-weight:500;color:#182c24}.ack-done .relay-icon,.relay-claimed .relay-icon{background:#fff}.app-shell main .relay-advice,.app-shell main .resident-relay .situation-events{padding-left:0}.ack-done,.relay-claimed{margin:0 0 10px;background:#eaf1e4;border:1px solid #cfe3d0;border-radius:18px}.ack-done,.relay-advice li,.relay-claimed{display:flex;align-items:center;gap:12px;padding:14px 16px;color:#182c24}.relay-advice li{font-size:1.1875rem;font-weight:600;background:#fff;border:1px solid #dde3dc;border-left:4px solid #154c39;border-radius:18px}.resident-relay .situation-events{padding:0;list-style:none}.resident-relay .situation-events li{padding:10px 14px;color:#44554d;background:#f6f8f4;border-radius:14px}.situation{border-width:1px;border-radius:22px}@media (prefers-reduced-motion:reduce){.ring-hero-pulse,.ring-screen .ring-hero{animation:none}.ring-hero-pulse{display:none}}.recipient-modes{display:grid;grid-gap:10px;gap:10px;margin-top:12px;padding:14px;background:#f6f8f4;border:1px solid #dde3dc;border-radius:16px}.recipient-mode-row{display:grid;grid-gap:6px;gap:6px}.app-shell main .recipient-mode-row label{margin:0;font-size:.875rem;font-weight:600}.app-shell main .recipient-mode-row select{min-height:48px;padding:8px 12px;font-size:1rem;background:#fff;border:1px solid #8a968f;border-radius:12px}.recipient-modes small{font-size:.8125rem;line-height:1.4;color:#56655e}.recipient-digest-request{padding:12px 14px;background:#eaf1e4;border:1px solid #cfe3d0;border-radius:14px}.recipient-digest-request p{margin:0 0 10px}.recipient-digest-actions{display:flex;gap:10px}.app-shell main .recipient-digest-actions button{flex:1 1;min-height:48px;border-radius:12px}.app-shell main .recipient-digest-actions button:first-child:not(:disabled){color:#fff;background:#154c39;border-color:#154c39}.ring-expectation{display:flex;align-items:center;gap:12px;margin:12px 0 0;padding:12px 14px;border-radius:18px}.ring-expectation-expected{color:#182c24;background:#eaf1e4;border:1px solid #cfe3d0}.ring-expectation-unexpected{color:#4a3200;background:#fff4dc;border:1px solid #e3b44b}.ring-expectation-unexpected .relay-icon{color:#4a3200;background:#fff}.ring-expectation .relay-icon{background:#fff}.expected-visit-list{display:grid;grid-gap:8px;gap:8px;margin:12px 0 0;padding:0;list-style:none}.app-shell main .expected-visit-list{padding-left:0}.expected-visit-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:#fff;border:1px solid #dde3dc;border-radius:14px}.expected-visit-text{display:flex;flex-direction:column;min-width:0}.expected-visit-text small{font-size:.875rem;color:#56655e}.expected-visit-form{display:grid;grid-gap:4px;gap:4px;margin-top:16px;padding:14px;background:#f6f8f4;border:1px solid #dde3dc;border-radius:16px}.app-shell main .expected-visit-form h3{margin:0 0 4px}.app-shell main .expected-visit-form input,.app-shell main .expected-visit-form select{min-height:48px;margin-bottom:8px;background:#fff;border:1px solid #8a968f;border-radius:12px}.weekday-picker{margin:8px 0 0;padding:0;border:0}.weekday-picker legend{padding:0;font-weight:600}.weekday-chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.app-shell main .weekday-chip{min-width:46px;min-height:46px;padding:6px 10px;font-size:.875rem;color:#182c24;background:#fff;border:1px solid #8a968f;border-radius:12px}.app-shell main .weekday-chip-on{color:#fff;background:#154c39;border-color:#154c39}.expected-visit-times{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.accompanied-visits-body{padding:0 14px 14px}