/* Production-only additions. The prototype stylesheets stay verbatim; this
   file only styles elements the prototype did not have (real sign-in steps,
   held-contact choices, install/notification cards, repair space). */

/* Nothing of the repair shows until the session is known. */
html.rrn-booting .consumer-header,html.rrn-booting .repair-home,html.rrn-booting .consumer-dock,
html.rrn-signed-out .consumer-header,html.rrn-signed-out .repair-home,html.rrn-signed-out .consumer-dock{visibility:hidden}

/* Each sign-in step arrives the way the registration card does. */
.consumer-access .access-card.access-card-step{animation:rrn-entry-arrive .45s cubic-bezier(.2,.8,.2,1) both}
.consumer-access .access-card h1:focus{outline:0}
.consumer-access .access-card .primary{justify-content:space-between;width:min(100%,340px);min-height:56px;margin:28px auto 0;border-radius:16px;background:#1cc478;color:#0c2448;font:750 15px RedHat,sans-serif;padding:0 22px}
.consumer-access .access-card .primary:hover{background:#45d394}
.consumer-access .access-step-error{position:static;margin:14px auto 0;font:600 12px/1.5 RedHat,sans-serif;color:#ffb5a8}
.consumer-access .access-step-error:empty{display:none}
.consumer-access .access-help-secondary{display:block;margin:2px auto 0;color:#8da4bf}

/* Where should we send your code? */
.access-contacts{display:grid;gap:10px;width:min(100%,340px);margin:30px auto 0}
.access-contact{display:flex;align-items:center;gap:14px;width:100%;min-height:68px;padding:12px 18px 12px 14px;border:1px solid #ffffff1f;border-radius:16px;background:#17345b;color:#f6f3ee;text-align:left;transition:background .2s,border-color .2s,transform .2s}
.access-contact:hover:not(:disabled){background:#1d3d68;border-color:#1cc47866;transform:translateY(-1px)}
.access-contact:disabled{opacity:.6;cursor:progress}
.access-contact-icon{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:12px;background:#1cc4781f;color:#1cc478}
.access-contact-icon .icon{width:18px;height:18px}
.access-contact-copy{flex:1;min-width:0}
.access-contact-copy strong{display:block;font:650 15px/1.3 RedHat,sans-serif;letter-spacing:.3px;overflow-wrap:anywhere}
.access-contact-copy small{display:block;margin-top:3px;font:400 11px/1.4 Raleway,sans-serif;color:#afc4db}
.access-contact-arrow{font-size:20px;color:#1cc478}

/* Enter your 6-digit code */
.consumer-access .access-code-form{display:grid;justify-items:center;margin-top:30px}
.consumer-access .access-code-form>label{position:static;width:auto;height:auto;overflow:visible;clip-path:none;white-space:normal;font:650 13px/1.4 RedHat,sans-serif;text-transform:none;letter-spacing:0;color:#f6f3ee;margin:0 0 12px}
.consumer-access .access-code-input{width:min(100%,280px);height:72px;padding:0 10px 0 22px;border:3px solid #09182c;border-radius:14px;background:#f6f3ee;color:#0c2448;text-align:center;font:750 34px/1 ui-monospace,'Segoe UI Mono',Consolas,monospace;letter-spacing:12px;box-shadow:0 0 0 1px #7690ae44,0 16px 30px #0002}
.consumer-access .access-code-input:focus{outline:0;box-shadow:0 0 0 3px #1cc478,0 18px 35px #0003}
.consumer-access .access-code-input.is-invalid{border-color:#ff9689;box-shadow:0 0 0 2px #ff96894d,0 0 18px #ff968926}
.consumer-access .access-code-status{margin:12px auto 0;font:600 12px/1.5 RedHat,sans-serif;color:#1cc478}
.consumer-access .access-code-status:empty{display:none}
.consumer-access .access-card .access-remember{display:flex;align-items:center;justify-content:center;gap:10px;margin:20px 0 0;font:500 13px/1.4 Raleway,sans-serif;text-transform:none;letter-spacing:0;color:#d4e0ec;cursor:pointer}
.consumer-access .access-remember input{width:20px;height:20px;padding:0;flex:none;accent-color:#1cc478}
.consumer-access .access-code-form .access-continue{margin-top:22px}

/* Chat send failures sit at the foot of the thread. */
.chat-error{position:static;margin:10px 0 0;text-align:center;font-size:12px;color:#a3361e}
.chat-error:empty{display:none}

/* Two conversations: the Messages list, a back arrow, what each chat is for,
   and a note when a topic is sent to the other chat. */
.chat-back-button{display:grid;place-items:center;flex:none;width:36px;height:36px;margin:0 -4px 0 -10px;border-radius:50%;color:#0c2448;transition:background .2s}
.chat-back-button:hover{background:#f6f3ee}
.chat-back-button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.chat-purpose{flex:none;padding:10px 20px;background:#fff;border-bottom:1px solid #edf0f2}
.chat-purpose p{margin:0;font-size:12px;line-height:1.55;color:#5f6c76}
.chat-purpose .chat-switch-team{margin:0;padding:0;font-size:12px}
.consumer-experience .chat-context{border-bottom:0}
.chat-chooser{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:18px 16px 24px;background:#f6f3ee}
.chat-choices{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.chat-choice{display:flex;align-items:center;gap:13px;width:100%;padding:15px 14px 15px 14px;border:1px solid #e1e3e4;border-radius:18px;background:#fff;color:#0c2448;text-align:left;box-shadow:0 1px 2px #0c24480b;transition:border-color .2s,box-shadow .2s}
.chat-choice:hover{border-color:#1cc478;box-shadow:0 0 0 3px #1cc4781f}
.chat-choice.has-unread{border-color:#b5d9c9}
.chat-choice .chat-team-avatar{flex:none;align-self:flex-start;width:44px;height:44px}
.chat-choice-copy{flex:1;min-width:0;display:flex;flex-direction:column}
.chat-choice-name{font-size:12px;line-height:1.35;color:#6f7987}
.chat-choice-name strong{font:700 16px/1.3 RedHat,sans-serif;color:#0c2448}
.chat-choice-detail{font-size:11px;line-height:1.4;color:#6f7987}
.chat-choice-purpose{margin-top:6px;font-size:12px;line-height:1.45;color:#21364e}
.chat-choice-preview{min-height:18px;margin-top:6px;padding-top:6px;border-top:1px solid #f0eeea;font-size:12px;line-height:1.45;color:#6f7987;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-choice.has-unread .chat-choice-preview{color:#0c2448;font-weight:650}
.chat-choice-count{flex:none;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:#1cc478;color:#0c2448;font:750 11px/22px RedHat,sans-serif;text-align:center}
.chat-choice-chevron{flex:none;width:16px;height:16px;fill:none;stroke:#8a94a1;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.chat-route-note{flex:none;margin:0;padding:9px 20px;background:#edf8f2;border-top:1px solid #d5eee0;color:#08734a;font:650 12px/1.4 RedHat,sans-serif}
.chat-route-note:empty{padding:0;border:0}
@media(min-width:900px){
  .chat-purpose{padding:11px 22px}
  .chat-chooser{padding:20px 20px 26px}
  .chat-route-note{padding:9px 22px}
}

/* Business name under the technician's first name; no contact details. */
.repairer-business{display:block;margin-top:2px;font-size:10px;line-height:1.4;color:#6f6a58}

/* Update preferences pick from contacts already held for the repair. */
.preference-destination-label{display:block;font-size:11px;margin-bottom:7px;color:#5f6c76}
.preference-choice{display:flex;align-items:center;gap:12px;padding:11px 14px;border:1px solid var(--line);border-radius:10px;margin-top:7px;cursor:pointer;font-size:14px}
.preference-choice:has(input:checked){border-color:#0c2448;background:var(--warm)}
.preference-choice input{width:18px;height:18px;padding:0;flex:none;accent-color:#0c2448}

/* Room to work, in the address sheet. */
.repair-space{margin-top:26px;padding-top:4px;border-top:1px solid var(--line)}
.repair-space .repair-space-heading{margin-top:20px}
.repair-space textarea{margin-top:10px}

/* Install and notification nudges share the essentials card language. */
.home-prompts{display:grid;gap:16px}
.prompt-card{padding:20px 22px}
.prompt-card .section-label{padding-bottom:10px}
.prompt-body{display:flex;align-items:flex-start;gap:13px}
.prompt-body>p{flex:1;min-width:0}
.prompt-body strong{display:block;font-size:13px;font-weight:650;line-height:1.4}
.prompt-body p span{display:block;margin-top:4px;font-size:11px;line-height:1.55;color:#6f6a58}
.prompt-actions{display:flex;align-items:center;gap:12px;margin-top:16px}
.prompt-actions .primary{flex:1;min-height:44px;font-size:12px}
.prompt-actions .primary:disabled{opacity:.7;cursor:progress}
.prompt-dismiss{flex:none;padding:10px 6px;font-size:12px;color:#5f6c76;text-decoration:underline;text-decoration-color:#c9c5bc;text-underline-offset:4px}
.prompt-card .preference-success{margin-top:0}
@media(min-width:900px){
  .consumer-experience .home-aside:has(>.home-prompts:not([hidden])){grid-template-rows:auto minmax(min-content,1fr) auto}
  .consumer-experience .prompt-card{padding:18px 20px}
  .consumer-experience .prompt-card .section-label>span{display:none}
  .consumer-experience .prompt-card .section-label h2{font-size:17px}
  .consumer-experience .prompt-actions{margin-top:12px}
}
@media(prefers-reduced-motion:reduce){.consumer-access .access-card.access-card-step{animation:none}}
.motion-paused .access-card.access-card-step{animation:none}
