/* Two-factor sign-in step, profile card and administrator panel */
.two-factor-panel{display:grid;gap:12px;width:100%}
.two-factor-panel[hidden],.two-factor-panel [hidden]{display:none!important}
.two-factor-head{display:flex;align-items:center;gap:12px}
.two-factor-head .eyebrow{margin:0 0 4px;color:var(--accent);font-size:10px;letter-spacing:.14em}
.two-factor-head h2{margin:0;font:600 20px/1.2 var(--display)}
.two-factor-head h2:focus{outline:none}
.two-factor-mark,#two-factor-card-title::before{display:inline-block;flex:none;width:42px;height:42px;background:url('/static/icons/wan-studio-atlas.webp?v=20261029-42') no-repeat 66.667% 33.333%/400% 400%;filter:drop-shadow(0 4px 5px var(--palette-030a05aa))}
#two-factor-card-title{display:flex;align-items:center;gap:7px;min-width:0}
#two-factor-card-title::before{content:"";width:30px;height:30px}
.two-factor-intro,.two-factor-steps{margin:0;color:var(--muted);font-size:12px;line-height:1.5}
.two-factor-risk{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
.two-factor-risk li{padding:4px 10px;border:1px solid var(--palette-8a7a4b);border-radius:var(--radius-999px);background:var(--palette-2a2716);color:var(--palette-f1e7a8);font:600 11px var(--display)}
.two-factor-entry,.two-factor-form{display:grid;gap:9px}
.two-factor-entry label:not(.two-factor-remember),.two-factor-field{display:grid;gap:5px;color:var(--soft);font-size:11px}
#two-factor-code,.two-factor-field input{width:100%;min-height:44px;padding:9px 12px;border:1px solid var(--line);border-radius:var(--radius-9px);background:var(--palette-0f1912);color:var(--text);font:600 18px/1.2 var(--display);letter-spacing:.18em;font-variant-numeric:tabular-nums}
.two-factor-field input[type=password]{letter-spacing:normal;font:500 14px var(--font,Arial,sans-serif)}
#two-factor-code:focus-visible,.two-factor-field input:focus-visible{outline:2px solid var(--wan-close-focus);outline-offset:2px;border-color:var(--accent)}
.two-factor-remember{display:flex;align-items:center;gap:8px;color:var(--soft);font-size:12px}
.two-factor-remember input{width:18px;height:18px;accent-color:var(--field-focus)}
.login-card .two-factor-remember input[type=checkbox]{flex:none;min-height:0;margin:0;padding:0;border-radius:var(--radius-4px);background:none;box-shadow:none}
.two-factor-link{justify-self:start;padding:4px 0;border:0;background:none;color:var(--accent);font:600 12px var(--display);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.two-factor-link:focus-visible,.two-factor-actions button:focus-visible,.two-factor-form button:focus-visible,.two-factor-code-actions button:focus-visible,.two-factor-key button:focus-visible{outline:2px solid var(--wan-close-focus);outline-offset:3px}
.two-factor-enroll{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px;padding:12px;border:1px solid var(--palette-4d664c);border-radius:var(--radius-12px);background:var(--palette-121d15)}
.two-factor-enroll img{display:block;width:168px;height:168px;border-radius:var(--radius-10px);background:var(--palette-f5ffe9);image-rendering:pixelated}
.two-factor-key{display:grid;gap:6px;min-width:0}
.two-factor-key span{color:var(--muted);font-size:11px}
.two-factor-key code{display:block;padding:8px 10px;border:1px dashed var(--palette-6f8f63);border-radius:var(--radius-8px);background:var(--palette-0c150f);color:var(--palette-e5ffc4);font:600 13px/1.5 ui-monospace,Consolas,monospace;letter-spacing:.06em;overflow-wrap:anywhere}
.two-factor-key button,.two-factor-code-actions button:not(.primary-button),.two-factor-actions button,.two-factor-form button:not(.primary-button){justify-self:start;min-height:38px;padding:7px 13px;border:1px solid var(--palette-779769);border-radius:var(--radius-9px);background:var(--palette-22352a);color:var(--accent);font:600 12px var(--display);cursor:pointer}
.two-factor-codes{display:grid;gap:9px;padding:12px;border:1px solid var(--palette-8fc276);border-radius:var(--radius-12px);background:var(--palette-132117)}
.two-factor-codes strong{font:600 14px var(--display)}
.two-factor-codes p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}
.two-factor-codes ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px;margin:0;padding:10px 12px 10px 30px;border-radius:var(--radius-9px);background:var(--palette-0c150f);color:var(--palette-e5ffc4);font:600 14px/1.6 ui-monospace,Consolas,monospace}
.two-factor-code-actions,.two-factor-actions{display:flex;flex-wrap:wrap;gap:8px}
.two-factor-status{padding:3px 10px;border:1px solid var(--palette-5b7453);border-radius:var(--radius-999px);font:600 11px var(--display)}
.two-factor-status.is-on{border-color:var(--palette-8fc276);background:var(--palette-22402a);color:var(--palette-d8ffb1)}
.two-factor-status.is-required{border-color:var(--palette-c79a62);background:var(--palette-3a2c1c);color:var(--palette-ffd9a8)}
.two-factor-status.is-off{color:var(--muted)}
.two-factor-actions .two-factor-danger,.two-factor-form .two-factor-danger{border-color:var(--palette-bf816e);background:var(--palette-3b2a22);color:var(--palette-ffd1bc)}
.two-factor-feedback{margin:0;color:var(--palette-ffb6aa);font-size:12px}
.two-factor-feedback:empty{display:none}
.two-factor-flow{display:grid;gap:10px}
.two-factor-flow:empty{display:none}
.login-risk-heading{margin:12px 0 6px;color:var(--soft);font:600 11px var(--display);letter-spacing:.04em}
.login-risk-list{display:grid;gap:8px}
.login-risk-event{display:grid;gap:8px;padding:10px 12px;border:1px solid var(--line2);border-radius:var(--radius-10px);background:var(--palette-131d16)}
.login-risk-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 10px}
.login-risk-head strong{font:600 12px var(--display)}
.login-risk-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 14px}
.login-risk-facts>div{grid-template-columns:1fr;gap:2px}
.login-risk-facts dd{text-align:left}
.login-risk-facts dd.formatted-date,.login-risk-facts time{justify-content:flex-start}
.login-risk-more{justify-self:start;margin-top:8px;min-height:34px;padding:6px 12px;border:1px solid var(--palette-779769);border-radius:var(--radius-9px);background:var(--palette-22352a);color:var(--accent);font:600 11px var(--display);cursor:pointer}
.login-risk-more:focus-visible{outline:2px solid var(--wan-close-focus);outline-offset:3px}
@media(max-width:590px){.login-risk-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:590px){.two-factor-enroll{grid-template-columns:1fr;justify-items:center;text-align:center}.two-factor-key{justify-items:center}.two-factor-key button,.two-factor-actions button,.two-factor-form button,.two-factor-code-actions button{width:100%;justify-self:stretch}.two-factor-codes ol{grid-template-columns:1fr}}
/* Maintenance editor and version switcher keep a compact single column on narrow phones */
@media(max-width:360px){.two-factor-head h2{font-size:18px}.two-factor-enroll img{width:150px;height:150px}}
/* Device data cross-checks: one row per check, the result colour mirrors the verdict. */
.device-authenticity-list{display:grid;gap:0;margin:6px 0 8px;padding:3px 12px;border:1px solid var(--palette-4c6b4d80);border-radius:var(--radius-12px);background:var(--palette-0c1d155c)}
.device-authenticity-list>div{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:baseline;gap:6px 12px;min-width:0;padding:9px 0}
.device-authenticity-list>div+div{border-top:1px solid var(--palette-4c6b4d52)}
.device-authenticity-list dt{margin:0;color:var(--palette-afc5a7);font:500 11px/1.5 var(--display)}
.device-authenticity-list dd{display:grid;gap:2px;min-width:0;margin:0;overflow-wrap:break-word}
.device-authenticity-list dd strong{color:var(--text);font:500 var(--card-value-size)/1.5 var(--display)}
.device-authenticity-list dd small{color:var(--muted);font:500 11px/1.45 var(--display)}
.device-authenticity-list .is-pass dd strong{color:var(--palette-c8f59a)}
.device-authenticity-list .is-fail dd strong{color:var(--palette-ffb4a2)}
.device-authenticity-list .is-unknown dd strong{color:var(--muted);font-weight:400}
.device-authenticity-note{margin:0 0 6px;color:var(--muted);font-size:11px;line-height:1.45}
@media(max-width:420px){.device-authenticity-list>div{grid-template-columns:1fr;gap:2px}}
/* Text wrapping. Words move whole to the next line; a word longer than its line breaks with a
   hyphen (lang="ru"), and only identifiers such as seeds and codes may break anywhere. */
body{overflow-wrap:break-word;hyphenate-limit-chars:8 4 4}
/* v48: no syllable hyphenation in the interface; text wraps only between words. */
p,li,dd,small,.field-hint,.help-dialog-body,.video-description,.setting-descriptor,.device-fact strong,.data-details dt,.guest-visit-summary dt,.setting-metadata dt,.guest-history-metrics dt,.summary-card-heading>span{hyphens:manual;-webkit-hyphens:manual}
p,li,dd,.field-hint,.help-dialog-body p,.video-description{text-wrap:pretty}
h1,h2,h3,h4,.eyebrow{text-wrap:balance;hyphens:manual}
button,.button,summary,label,input,select,textarea,code,kbd,time,.formatted-date,.guest-badge,.guest-signal,.media-requests-count{hyphens:manual;-webkit-hyphens:manual}
/* Label/value lists stack once their card is too narrow for two readable columns. */
.data-details{container-type:inline-size}
@container (max-width:300px){.data-details>div{grid-template-columns:minmax(0,1fr);gap:1px}.data-details dd{text-align:left}.data-details time,.data-details .formatted-date{justify-content:flex-start}}
.user-gallery-facts .user-gallery-summary{grid-column:1/-1}
/* A setting's name column is never narrower than its longest word. */
.setting-descriptor{grid-template-columns:minmax(min-content,1fr) minmax(0,1fr)}
@media(max-width:590px){.setting-descriptor{grid-template-columns:1fr}}
/* Two-factor card: the same heading, status chip and button system as the device card. */
#two-factor-card .profile-card-head{align-items:center;flex-wrap:wrap;row-gap:10px}
.two-factor-card-heading{display:flex;align-items:center;gap:8px;flex:1 1 230px;min-width:0}
.two-factor-card-heading h3{margin:0;text-wrap:balance}
#two-factor-card .two-factor-status{display:inline-flex;align-items:center;gap:7px;flex:none;min-height:30px;padding:4px 12px;white-space:nowrap;font:650 12px/1.2 var(--display)}
#two-factor-card .two-factor-status::before{content:"";flex:none;width:8px;height:8px;border-radius:var(--radius-circle);background:currentColor;box-shadow:0 0 0 3px var(--palette-ffffff12)}
#two-factor-card .two-factor-status.is-off{border-color:var(--palette-5b7453);background:var(--palette-132018);color:var(--palette-b9cbb3)}
#two-factor-card .profile-device-guide{margin:12px 0 14px}
.two-factor-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:8px}
.two-factor-actions button,.two-factor-form button,.two-factor-code-actions button,.two-factor-key button{justify-self:stretch;width:100%;min-height:44px;padding:10px 16px;text-align:center;font:650 13px/1.25 var(--display)}
.two-factor-actions .primary-button,.two-factor-form .primary-button,.two-factor-code-actions .primary-button{justify-content:center;min-width:0;border:1px solid var(--accent);border-radius:var(--radius-9px);background:var(--accent);color:var(--palette-152015);box-shadow:0 8px 22px var(--palette-b8ff6a1f)}
.two-factor-actions .primary-button:hover:not(:disabled),.two-factor-form .primary-button:hover:not(:disabled),.two-factor-code-actions .primary-button:hover:not(:disabled){background:var(--palette-ebffb7)}
.two-factor-actions button:not(.primary-button):not(.two-factor-danger):hover,.two-factor-form button:not(.primary-button):not(.two-factor-danger):hover{border-color:var(--accent);background:var(--palette-2a4233)}
@media(max-width:590px){.two-factor-actions{grid-template-columns:minmax(0,1fr)}}#two-factor-card .data-details{margin:2px 0 16px}
#two-factor-card .two-factor-actions .two-factor-danger{grid-column:1/-1;background:var(--palette-transparent);box-shadow:none}
#two-factor-card .two-factor-actions .two-factor-danger:hover{background:var(--palette-3b2a22)}
.setting-descriptor-group .setting-descriptor{grid-template-columns:minmax(min-content,1fr) minmax(0,max-content)}
.setting-descriptor-group .setting-descriptor-value{white-space:normal;text-align:center}
@media(max-width:360px){.setting-descriptor-group .setting-descriptor{grid-template-columns:minmax(min-content,1fr) minmax(0,.85fr)}}
/* The search uses the shared form fields, including keyboard focus and mobile sizing. */
.feature-search{display:grid;gap:8px;margin:14px 0;min-width:0}
.feature-search>label{display:grid;gap:7px;color:var(--soft);font-size:12px;min-width:0}
.feature-search input{width:100%;min-width:0}
.feature-search-count{margin:0;color:var(--soft);font-size:12px}
.feature-search-empty{padding:16px;border:1px solid var(--line);border-radius:var(--radius-14px);background:var(--palette-14231a)}
.feature-search-empty p{margin:0 0 10px}
/* One deliberate text emphasis for facts and search matches; native mark text is read once by assistive technology. */
:is(.value-emphasis,.feature-search-highlight){background:var(--palette-344827);color:var(--palette-e4ffb7);border-radius:var(--radius-3px);padding:.08em .18em;margin-inline:-.18em;font:inherit;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.feature-search-context{display:block;color:var(--soft);overflow-wrap:break-word;font-size:11px;line-height:1.4}
/* Compact, labelled evidence. Levels always have text as well as colour. */
/* v48 assessment row: label with its inline «?» above one full-width toggle (the shared card disclosure with the 3D
   chevron, cards.css) that shows the graded value: reported value, then level chip with meter. */
:root{--card-inset:12px;--card-fact-gap:4px;--card-row-gap:12px;--card-chip-gap:6px;--card-label-size:11px;--card-value-size:12px}
.evidence-block{min-width:0}
.evidence-block.is-empty{color:var(--muted);font:400 var(--card-value-size)/1.5 var(--display)}
.evidence-value{min-width:0;color:var(--palette-e2eedc);font:600 var(--card-value-size)/1.5 var(--display);overflow-wrap:break-word;text-align:left}
.fact-label{display:block!important;min-width:0;line-height:1.6!important}
.fact-label-tail{display:inline-block;white-space:nowrap}
.fact-label .help-trigger{display:inline-flex;vertical-align:middle;align-items:center;justify-content:center;box-sizing:border-box;width:27px;height:27px;margin:0 0 0 6px;text-transform:none;letter-spacing:0}
.device-fact.is-assessment{grid-column:1/-1;gap:var(--card-fact-gap)}
.data-details>div.is-assessment{grid-template-columns:minmax(0,1fr);gap:var(--card-fact-gap)}
/* Leave the shared 44px help hit area clear of the next control on phones. */
@media(max-width:640px){.device-fact.is-assessment,.data-details>div.is-assessment{gap:10px}}
.data-details>div.is-assessment>dd{text-align:left}
.is-empty-assessment{min-height:44px;align-content:center;row-gap:0!important}
.device-fact.is-empty-assessment>.fact-label,.data-details>div.is-empty-assessment>.fact-label{color:var(--muted);font:400 var(--card-value-size)/1.5 var(--display)}
.is-empty-assessment>[hidden]{display:none!important}
.authenticity-summary>.data-details{padding:var(--card-inset);border:1px solid var(--palette-4c6b4d80);border-radius:var(--radius-12px);background:var(--palette-0c1d155c)}
.evidence-chip{display:inline-flex;align-items:center;gap:var(--card-chip-gap);box-sizing:border-box;min-height:28px;padding:4px 8px;border:1px solid var(--palette-708b6555);border-radius:var(--radius-9px);background:var(--palette-24342c);color:var(--palette-b9c8b6);font:500 11px/18px var(--display);max-width:100%;min-width:0;text-align:left}
.evidence-chip>span:first-child{min-width:0;overflow-wrap:break-word;color:inherit}
.evidence-chip[data-tone=emerald]{background:var(--palette-164631);color:var(--palette-cef5da);border-color:var(--palette-69c48c77)}.evidence-chip[data-tone=lime]{background:var(--palette-344827);color:var(--palette-e4ffb7);border-color:var(--palette-aacb6977)}.evidence-chip[data-tone=amber]{background:var(--palette-473b24);color:var(--palette-ffe2a9);border-color:var(--palette-ceaa6377)}
.evidence-meter{display:inline-block;width:30px;height:5px;flex:0 0 30px;overflow:hidden;border-radius:var(--radius-99px);background:var(--palette-020e0a88)}.evidence-meter>i{display:block;height:100%;background:currentColor;border-radius:inherit}
.evidence-facts{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:var(--card-row-gap)!important;margin:0!important;min-width:0}
.evidence-facts>div,.evidence-source>div{grid-template-columns:minmax(0,1fr);gap:var(--card-fact-gap);min-width:0}
.evidence-facts dt,.evidence-source dt{font:500 var(--card-label-size)/1.5 var(--display)!important;color:var(--palette-acc1a5);text-align:left}
.evidence-facts dd,.evidence-source dd{font:500 var(--card-value-size)/1.5 var(--display)!important;text-align:left;margin:0!important;min-width:0;overflow-wrap:break-word}
.evidence-facts time{justify-content:flex-start}
.evidence-sources{display:grid;gap:var(--card-row-gap);min-width:0}
.evidence-source{display:grid!important;gap:var(--card-row-gap)!important;grid-template-columns:minmax(0,1fr)!important;min-width:0;max-width:100%;margin:0!important;padding:var(--card-inset);border:1px solid var(--palette-6c8c5655);border-radius:var(--radius-9px);background:var(--palette-173625aa)}
.identity-stepper,.evidence-chips{display:flex;align-items:stretch;flex-wrap:wrap;gap:var(--card-chip-gap);min-width:0}
.identity-stepper>span,.evidence-counter,.evidence-type-chip{display:inline-flex;align-items:center;box-sizing:border-box;min-height:28px;padding:4px 8px;border:1px solid var(--palette-5b755255);border-radius:var(--radius-8px);color:var(--palette-b9c8b6);background:var(--palette-172a20);font:500 11px/18px var(--display);overflow-wrap:break-word}
.identity-stepper>span[data-reached=true]{background:var(--palette-2f4828);color:var(--palette-dcffb9);border-color:var(--palette-9cc36c77)}
/* Missing facts never acquire the weight or colour of observed data. */
.device-fact-value.is-empty-value,.data-details dd.is-empty-value,.evidence-block.is-empty-value,.evidence-chip.is-empty-value,.device-authenticity-list dd strong.is-empty-value,.evidence-sources .is-empty-value{color:var(--muted);font-weight:400!important}
.authenticity-summary{min-width:0;font-weight:500}.device-fact-value{min-width:0;max-width:100%}.device-comparison{min-width:0}.device-comparison-row{padding:9px 0;border-top:1px solid var(--palette-6c8a5344);min-width:0}.device-comparison-row[data-result=fail]{border-left:2px solid var(--palette-dbbd73);padding-left:8px}
.comparison-facts{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr))!important;gap:8px!important;margin:0!important;min-width:0}.comparison-facts dt{font-size:var(--card-label-size)!important}.comparison-facts dd{font-size:var(--card-value-size)!important;text-align:left;margin:0;overflow-wrap:break-word}.comparison-facts>div{grid-template-columns:minmax(0,1fr);gap:var(--card-fact-gap);min-width:0}.comparison-facts>div:first-child{grid-column:1/-1}
.device-event-timeline{min-width:0}.device-event-timeline>.evidence-chips{margin:12px 0}.device-event-timeline button{padding:7px 10px;border:1px solid var(--palette-72995888);border-radius:var(--radius-999px);background:var(--palette-1c3e2b);color:var(--palette-d4edc4);font-size:11px}.device-event-timeline button[aria-pressed=true]{background:var(--palette-bce87a);color:var(--palette-122514)}
.device-event-row{border-left:2px solid var(--palette-6a986155);padding:8px 10px;margin:8px 0;border-radius:var(--radius-square) var(--radius-10px) var(--radius-10px) var(--radius-square);background:var(--palette-14302077);min-width:0}.event-facts{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;margin:0!important}.event-facts>div{grid-template-columns:minmax(0,1fr);gap:var(--card-fact-gap)}.event-facts dt{font-size:var(--card-label-size)!important}.event-facts dd{font-size:var(--card-value-size)!important;text-align:left;margin:0;overflow-wrap:break-word}.device-event-list h5{margin:14px 0 6px;color:var(--palette-c9dfba);font-size:12px}
@media(max-width:700px){.event-facts{grid-template-columns:minmax(0,1fr)!important}}
.comparison-facts time,.comparison-facts .formatted-date,.event-facts time,.event-facts .formatted-date{justify-content:flex-start}
/* v48: the comparison grid follows its own width (cards are narrow inside panels at any viewport). */
.device-comparison{container-type:inline-size}
@container (max-width:640px){.comparison-facts{grid-template-columns:repeat(2,minmax(0,1fr))!important}.comparison-facts>div:first-child{grid-column:1/-1}}
@container (max-width:420px){.comparison-facts{grid-template-columns:minmax(0,1fr)!important}}
/* v48 authenticator links: each app name opens the store for this device (new tab); the line below offers the other
   stores. Lime glass chips, visible focus, 44 px rows on phones. The one-tap otpauth action is a primary button. */
.authenticator-apps{display:grid;gap:6px;margin:0;padding:0;list-style:none;min-width:0}
.authenticator-apps>li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;min-width:0;padding:6px 10px;border:1px solid var(--palette-4d664c);border-radius:var(--radius-12px);background:var(--palette-121d15)}
.authenticator-name{display:inline-flex;align-items:center;min-height:32px;color:var(--accent);font:650 13px/1.3 var(--display);text-decoration:underline;text-decoration-color:var(--palette-779769);text-underline-offset:3px;overflow-wrap:break-word}
.authenticator-stores{display:flex;flex-wrap:wrap;gap:4px 6px;min-width:0}
.authenticator-store{display:inline-flex;align-items:center;min-height:28px;padding:2px 9px;border:1px solid var(--palette-779769);border-radius:var(--radius-9px);background:var(--palette-22352a);color:var(--palette-e5ffc4);font:600 11px/1.3 var(--display);text-decoration:none}
.authenticator-name:hover,.authenticator-store:hover{color:var(--palette-e5ffc4);border-color:var(--accent)}
.authenticator-name:focus-visible,.authenticator-store:focus-visible,.otpauth-open:focus-visible{outline:2px solid var(--wan-close-focus);outline-offset:3px}
.two-factor-apps{min-width:0}.help-text>.authenticator-apps{display:grid;margin-top:6px}
.two-factor-enroll .otpauth-open{grid-column:1/-1;justify-self:stretch;display:flex;align-items:center;justify-content:center;min-height:44px;text-align:center;text-decoration:none}
.two-factor-open:empty{display:none}.two-factor-open{grid-column:1/-1;display:grid}
@media(max-width:640px){.authenticator-apps>li{padding:4px 10px}.authenticator-name,.authenticator-store{min-height:44px}.authenticator-store{padding-inline:12px}}
