/* ELSS contractor portal + application (mobile-first, scoped to .elss-portal). */
.elss-portal { --elss-ink:#1d2327; --elss-muted:#5c6670; --elss-line:#d7dce0; --elss-brand:#1f5fa8; --elss-ok:#1a6b2f; --elss-err:#a3261f; max-width:760px; margin:0 auto; color:var(--elss-ink); font-size:16px; line-height:1.5; }
.elss-portal *, .elss-portal *::before, .elss-portal *::after { box-sizing:border-box; }
.elss-portal .elss-card { background:#fff; border:1px solid var(--elss-line); border-radius:10px; padding:16px; margin:0 0 16px; }
.elss-portal h2 { font-size:1.35rem; margin:0 0 8px; }
.elss-portal h3 { font-size:1.1rem; margin:0 0 10px; }
.elss-portal .elss-muted { color:var(--elss-muted); font-size:.92rem; }
.elss-portal .elss-field { margin:0 0 14px; }
.elss-portal .elss-field label, .elss-portal .elss-yesno legend { display:block; font-weight:600; margin-bottom:4px; }
.elss-portal input[type=text], .elss-portal input[type=email], .elss-portal input[type=tel], .elss-portal input[type=password], .elss-portal input[type=number], .elss-portal input[type=date], .elss-portal input[type=file], .elss-portal textarea, .elss-portal select { width:100%; min-height:44px; padding:10px 12px; font-size:16px; border:1px solid #8c959f; border-radius:8px; background:#fff; }
.elss-portal .elss-short { max-width:140px; }
.elss-portal .elss-row { display:flex; flex-wrap:wrap; gap:12px; }
.elss-portal .elss-row .elss-field { flex:1 1 140px; }
.elss-portal .elss-yesno { border:0; padding:0; }
.elss-portal .elss-yesno label { display:inline-flex; align-items:center; gap:6px; margin-right:18px; min-height:44px; font-weight:400; }
.elss-portal .elss-check label { display:flex; gap:10px; align-items:flex-start; }
.elss-portal .elss-check input { width:22px; height:22px; margin-top:2px; flex:0 0 auto; }
.elss-portal .elss-btn { display:inline-block; min-height:44px; padding:10px 18px; border-radius:8px; border:1px solid var(--elss-brand); color:var(--elss-brand); background:#fff; font-size:16px; font-weight:600; text-decoration:none; cursor:pointer; }
.elss-portal .elss-btn-primary { background:var(--elss-brand); color:#fff; }
.elss-portal .elss-btn[disabled] { opacity:.5; cursor:not-allowed; }
.elss-portal .elss-banner { padding:12px 14px; border-radius:8px; margin:0 0 16px; }
.elss-portal .elss-banner ul { margin:0; padding-left:18px; }
.elss-portal .elss-banner-warn { background:#fff4d6; border:1px solid #e0b43a; }
.elss-portal .elss-banner-error { background:#fbe9e7; border:1px solid var(--elss-err); color:var(--elss-err); }
.elss-portal .elss-banner-ok { background:#e8f5ec; border:1px solid var(--elss-ok); color:var(--elss-ok); }
.elss-portal .elss-hp { position:absolute !important; left:-10000px !important; width:1px; height:1px; overflow:hidden; }
.elss-portal .elss-head { margin-bottom:8px; }
.elss-portal .elss-pill { display:inline-block; padding:2px 10px; border-radius:999px; background:#e9eef3; font-size:.85rem; font-weight:600; }
.elss-portal .elss-st-approved { background:#e8f5ec; color:var(--elss-ok); }
.elss-portal .elss-st-suspended, .elss-portal .elss-st-rejected { background:#fbe9e7; color:var(--elss-err); }
.elss-portal .elss-st-draft, .elss-portal .elss-st-changes_requested { background:#fff4d6; color:#7a5200; }
.elss-portal .elss-tabs { display:flex; gap:6px; overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:6px; margin-bottom:12px; }
.elss-portal .elss-tabs a { flex:0 0 auto; padding:10px 14px; border-radius:999px; border:1px solid var(--elss-line); text-decoration:none; color:var(--elss-ink); white-space:nowrap; min-height:44px; }
.elss-portal .elss-tabs a.is-active { background:var(--elss-brand); border-color:var(--elss-brand); color:#fff; }
.elss-portal .elss-checklist, .elss-portal .elss-list { list-style:none; margin:0 0 12px; padding:0; }
.elss-portal .elss-checklist li, .elss-portal .elss-list li { padding:10px 0; border-bottom:1px solid var(--elss-line); }
.elss-portal .elss-checklist .is-done .elss-mark { color:var(--elss-ok); font-weight:700; }
.elss-portal .elss-list .is-unread { font-weight:600; }
.elss-portal .elss-agreement { max-height:320px; overflow:auto; border:1px solid var(--elss-line); border-radius:8px; padding:12px; background:#fafbfc; margin-bottom:12px; font-size:.95rem; }
.elss-portal .elss-ok { color:var(--elss-ok); font-weight:600; }
.elss-portal .elss-reason { margin:8px 0; padding:8px 12px; border-left:4px solid #e0b43a; background:#fffbef; }
.elss-portal details summary { cursor:pointer; min-height:44px; padding:10px 0; font-weight:600; color:var(--elss-brand); }
.elss-portal :focus-visible { outline:3px solid var(--elss-brand); outline-offset:2px; }
.elss-portal .screen-reader-text { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
@media (min-width: 640px) { .elss-portal .elss-card { padding:20px 24px; } }
