/* Source-governed BRAND-SYS-001 / BRAND-TYPE-001 / BRAND-PATTERN-002.
   Inter binary remains unregistered; fallback is disclosed, not visual acceptance. */
.portal{--navy:#0B3F63;--blue:#1D6FA3;--border:#DDE7ED;--muted:#5E6B74;background:#F5F9FC;color:var(--navy);font:400 15px/22px Inter,system-ui,sans-serif;margin:0}
.portal *{box-sizing:border-box}.portal h1{font-size:24px;line-height:30px;font-weight:700}.portal h2{font-size:20px;line-height:26px}.portal h3,.portal .card h2{font-size:16px;line-height:22px;font-weight:600}
.portal header{background:white;color:var(--navy);border-bottom:1px solid var(--border);padding:14px 24px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}.portal header img{width:105px;height:auto}.portal header a{display:flex;align-items:center;gap:12px;text-decoration:none}.portal main{max-width:1120px;margin:auto;padding:20px}.portal footer{padding:24px;text-align:center;color:var(--muted)}
.portal button,.portal input,.portal select{font:inherit}.portal button{background:var(--blue);border:1px solid var(--blue);border-radius:10px;color:white;min-height:44px;padding:10px 16px;font-weight:600}.portal button:disabled{opacity:.6}.portal input:not([type=checkbox]),.portal select{min-height:44px;max-width:100%;border:1px solid var(--border);border-radius:8px;padding:9px;background:white;color:var(--navy)}.portal label{font-size:12px;line-height:16px;font-weight:600;display:block;margin:10px 0}.portal label input:not([type=checkbox]),.portal label select{display:block;width:100%;margin-top:6px}
.portal a{color:var(--blue)}.portal :focus-visible{outline:3px solid #3E7F82;outline-offset:3px}.portal .card,.portal fieldset,.portal .state{background:white;border:1px solid var(--border);border-radius:16px;padding:20px;box-shadow:0 3px 12px #0b3f6308;min-width:0}.portal .card{display:block}.portal a.card{display:flex;flex-direction:column;gap:8px;text-decoration:none}.portal .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:16px;margin:20px 0}.portal small{font-size:13px;line-height:18px;color:var(--muted)}.portal .eyebrow{text-transform:uppercase;font-size:11px;line-height:14px;font-weight:700;letter-spacing:.08em;color:#3E7F82}.portal .qualification{background:#F7F2D5;color:#6F6A3A;text-align:center;padding:8px 16px;font-size:13px}.portal .intro{background:#E9F4FA url('/assets/brand/sage-home-organic-background-approved.png') center/cover;border-radius:18px;position:relative;min-height:195px;padding:30px 180px 30px 24px}.portal .intro::after{content:'';position:absolute;right:24px;bottom:12px;width:140px;height:175px;background:url('/assets/brand/sage-char-001-approved.png') center/contain no-repeat}.portal .home-ribbon{display:block;width:100%;max-height:90px;object-fit:contain;margin:0 0 20px}.portal .intro h1{font-size:32px;line-height:38px}
.portal nav,.portal .actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.portal nav a{padding:10px;border-radius:10px}.portal .room-context{display:grid;grid-template-columns:1fr 1fr;gap:10px}.portal dt{text-transform:capitalize;font-weight:600}.portal dd{margin:2px 0 12px;overflow-wrap:anywhere}.portal .room-card{border-top:4px solid #6FA8A3}.portal .upload-panel{margin-top:28px;border-top:4px solid #91AE93;max-width:720px}.portal .upload-status{overflow-wrap:anywhere}.portal progress{width:100%;margin-top:12px}.portal #scanner-video{max-width:100%;max-height:320px}.portal #disable{background:#B23A3A;border-color:#B23A3A}.portal #confirmation{background:#F0ECF8;border:2px solid #A99BCD}.portal #message{color:var(--navy)}.portal .submission{overflow-wrap:anywhere}.portal .submission small{display:block}.portal #incoming{margin-top:30px}
.portal #room-search{max-width:650px}.portal .scan-file{padding:10px;border:1px solid var(--border);border-radius:10px;background:white}
@media(max-width:600px){.portal main{padding:14px}.portal header{padding:12px}.portal .intro{padding:20px 100px 20px 18px;min-height:180px}.portal .intro::after{width:85px;height:130px;right:8px}.portal .intro h1{font-size:24px;line-height:30px}.portal .room-context{grid-template-columns:1fr}.portal .permission-list{grid-template-columns:1fr}.portal .card{padding:16px}}

.portal header span{display:inline!important}.portal .room-snapshot{display:block;width:100%;height:auto;border-radius:10px;margin:8px 0 14px}.portal .snapshot-empty{font-size:13px;color:#5E6B74}.portal .home-ribbon{max-height:none;height:auto;width:100%}
