h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}

/* ========================================================================== */
/* ArchEx Operations 1.2.3 - global visual fallback                           */
/* Mirrors component styles so Visual Studio cannot serve an unstyled page.   */
/* ========================================================================== */
.archex-layout {
    display:block;
    min-height: 100vh;
    background: #0d0f0e;
}


.archex-main {
    min-width: 0;
    min-height: 100vh;
    overflow-x: hidden;
    background: #f5f1eb;
}

#blazor-error-ui {
    display: none;
    position: fixed;
    right: 20px;
    bottom: 20px;
    left: 20px;
    z-index: 1000;
    padding: 16px 20px;
    border-radius: 10px;
    background: #fff3cd;
    color: #4b3c00;
    box-shadow: 0 12px 35px rgba(0, 0, 0, 0.2);
}

#blazor-error-ui .dismiss {
    position: absolute;
    right: 14px;
    cursor: pointer;
}

@media (max-width: 850px) {
    .archex-main { min-height: 100dvh; }
}



.ops-shell {
    min-height: 100vh;
    background: #0d0f0e;
    color: #f4efe7;
    font-family: Inter, "Segoe UI", Arial, sans-serif;
}

.ops-hero {
    position: relative;
    min-height: 320px;
    height: 34vh;
    max-height: 380px;
    overflow: hidden;
    border-bottom: 1px solid rgba(255,255,255,.08);
}

.hero-art, .hero-shade { position: absolute; inset: 0; }

.hero-art {
    background-image: url('/images/operations/operations-hero.svg');
    background-position: center 48%;
    background-size: cover;
    transform: scale(1.02);
}

.hero-shade {
    background:
        linear-gradient(90deg, rgba(10,12,11,.94) 0%, rgba(10,12,11,.66) 43%, rgba(10,12,11,.20) 74%),
        linear-gradient(0deg, #0d0f0e 0%, rgba(13,15,14,.08) 46%, rgba(13,15,14,.15) 100%);
}

.hero-topbar, .hero-copy, .hero-pulse, .hero-wisdom { position: relative; z-index: 2; }

.hero-topbar {
    display: flex;
    justify-content: space-between;
    padding: 20px 30px;
}

.hero-kicker {
    color: rgba(255,255,255,.68);
    font-size: .61rem;
    font-weight: 850;
    letter-spacing: .24em;
}

.hero-actions { display: flex; gap: 8px; }

.hero-actions button {
    width: 34px;
    height: 34px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 50%;
    background: rgba(10,12,11,.32);
    color: white;
    font-size: 1rem;
    cursor: pointer;
    backdrop-filter: blur(12px);
}

.hero-copy {
    max-width: 760px;
    padding: 28px 30px 36px;
}

.hero-overline {
    margin: 0 0 10px;
    color: #e66c2c;
    font-size: .63rem;
    font-weight: 850;
    letter-spacing: .22em;
}

.hero-copy h1 {
    max-width: 760px;
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3.4rem, 6vw, 6.1rem);
    font-weight: 400;
    line-height: .93;
    letter-spacing: -.055em;
}

.hero-statement {
    margin: 17px 0 0;
    color: rgba(255,255,255,.78);
    font-size: .88rem;
    letter-spacing: .02em;
}

.hero-statement strong { color: #fff; font-weight: 700; }

.hero-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 12px;
    color: rgba(255,255,255,.53);
    font-size: .67rem;
    text-transform: uppercase;
    letter-spacing: .1em;
}

.meta-dot {
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: #e66c2c;
}

.hero-wisdom {
    position: absolute;
    right: 30px;
    bottom: 58px;
    width: min(32vw, 390px);
    padding: 16px 18px;
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 14px;
    background: rgba(11,13,12,.48);
    backdrop-filter: blur(16px);
}

.hero-wisdom span {
    color: #e66c2c;
    font-size: .66rem;
    font-weight: 850;
    letter-spacing: .16em;
}

.hero-wisdom p {
    margin: 8px 0 0;
    color: rgba(255,255,255,.86);
    font-family: Georgia, "Times New Roman", serif;
    font-size: .96rem;
    line-height: 1.35;
}

.hero-pulse {
    position: absolute;
    right: 30px;
    bottom: 24px;
    display: flex;
    align-items: center;
    gap: 8px;
    color: rgba(255,255,255,.65);
    font-size: .62rem;
    text-transform: uppercase;
    letter-spacing: .12em;
}

.pulse-dot, .live-badge i, .project-live i {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #e66c2c;
    box-shadow: 0 0 0 4px rgba(230,108,44,.12);
}

.ops-content { padding: 23px 30px 28px; }

.section-heading, .panel-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
}

.section-heading { margin-bottom: 13px; }

.section-heading p, .panel-heading p {
    margin: 0 0 4px;
    color: #e66c2c;
    font-size: .56rem;
    font-weight: 850;
    letter-spacing: .2em;
}

.section-heading h2, .panel-heading h2 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.5rem, 2.15vw, 2.08rem);
    font-weight: 400;
    letter-spacing: -.035em;
}

.text-action {
    border: 0;
    background: transparent;
    color: rgba(255,255,255,.62);
    font: inherit;
    font-size: .68rem;
    cursor: pointer;
}

.text-action:hover { color: #fff; }

.project-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 11px;
}

.project-card {
    position: relative;
    min-height: 185px;
    height: 18.5vh;
    max-height: 220px;
    overflow: hidden;
    padding: 0;
    border: 1px solid rgba(255,255,255,.11);
    border-radius: 15px;
    background-position: center;
    background-size: cover;
    color: white;
    text-align: left;
    cursor: pointer;
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.project-card:hover {
    transform: translateY(-3px);
    border-color: rgba(230,108,44,.7);
    box-shadow: 0 18px 40px rgba(0,0,0,.3);
}

.project-card-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(5,7,6,.12), rgba(5,7,6,.22) 34%, rgba(5,7,6,.94));
}

.project-status, .project-live {
    position: absolute;
    z-index: 2;
    top: 11px;
    font-size: .49rem;
    font-weight: 850;
    letter-spacing: .09em;
}

.project-status {
    left: 11px;
    padding: 6px 7px;
    border-radius: 6px;
    background: rgba(230,108,44,.94);
}

.status-review { background: rgba(76,126,82,.94); }
.status-report { background: rgba(92,112,139,.94); }
.status-hold { background: rgba(132,93,54,.94); }
.status-plan { background: rgba(84,92,91,.94); }

.project-live {
    right: 11px;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 5px 7px;
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 999px;
    background: rgba(10,12,11,.42);
    backdrop-filter: blur(10px);
}

.project-live i { width: 5px; height: 5px; box-shadow: none; }

.project-card-copy {
    position: absolute;
    z-index: 2;
    right: 14px;
    bottom: 13px;
    left: 14px;
}

.project-card-copy p {
    margin: 0 0 5px;
    color: rgba(255,255,255,.62);
    font-size: .52rem;
    font-weight: 750;
    letter-spacing: .14em;
}

.project-card-copy h3 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.15rem, 1.5vw, 1.65rem);
    font-weight: 400;
    line-height: 1;
    letter-spacing: -.035em;
}

.project-detail-row {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    margin-top: 10px;
    padding-top: 8px;
    border-top: 1px solid rgba(255,255,255,.14);
    color: rgba(255,255,255,.6);
    font-size: .56rem;
}

.project-card-empty { background-image: url('/images/operations/project-default.svg'); }

.lower-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(300px, .72fr);
    gap: 13px;
    margin-top: 18px;
}

.activity-panel, .today-panel {
    min-height: 210px;
    padding: 17px 20px;
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 16px;
    background: #121513;
}

.live-badge {
    display: flex;
    align-items: center;
    gap: 7px;
    color: rgba(255,255,255,.53);
    font-size: .57rem;
    text-transform: uppercase;
    letter-spacing: .1em;
}

.activity-stream { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); column-gap: 20px; margin-top: 14px; }

.activity-stream article {
    display: grid;
    grid-template-columns: 42px 28px minmax(0,1fr);
    gap: 9px;
    align-items: start;
    padding: 11px 0;
    border-top: 1px solid rgba(255,255,255,.07);
}

.activity-stream time { padding-top: 6px; color: rgba(255,255,255,.42); font-size: .59rem; }

.activity-mark {
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border: 1px solid rgba(230,108,44,.34);
    border-radius: 50%;
    color: #e66c2c;
    font-size: .5rem;
    font-weight: 800;
}

.activity-stream div, .focus-list div { display: flex; min-width: 0; flex-direction: column; }
.activity-stream strong, .focus-list strong { font-size: .82rem; font-weight: 700; }
.activity-stream small, .focus-list small { margin-top: 4px; color: rgba(255,255,255,.57); font-size: .68rem; line-height: 1.35; }
.compact { align-items: center; }

.focus-count {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #e66c2c;
    color: #fff;
    font-size: .68rem;
    font-weight: 850;
}

.focus-list { display: grid; margin-top: 12px; }

.focus-list button {
    display: grid;
    grid-template-columns: 28px minmax(0,1fr) 18px;
    gap: 9px;
    align-items: center;
    padding: 9px 0;
    border: 0;
    border-top: 1px solid rgba(255,255,255,.08);
    background: transparent;
    color: #fff;
    text-align: left;
    cursor: pointer;
}

.focus-list > button > span { color: #e66c2c; font-size: .55rem; font-weight: 800; }
.focus-list b { color: rgba(255,255,255,.34); font-weight: 400; }

.quiet-note {
    margin-top: 10px;
    padding: 10px 12px;
    border-radius: 10px;
    background: #0d0f0e;
}

.quiet-note span { color: #e66c2c; font-size: .62rem; font-weight: 850; letter-spacing: .15em; }
.quiet-note p { margin: 7px 0 0; color: rgba(255,255,255,.82); font-family: Georgia, "Times New Roman", serif; font-size: 1rem; line-height: 1.35; }
.loading-state { padding: 60px 20px; color: rgba(255,255,255,.55); text-align: center; }

@media (min-width: 1100px) and (min-height: 850px) {
    .ops-shell { height: 100vh; overflow: hidden; }
}

@media (max-width: 1250px) {
    .hero-wisdom { width: 300px; }
    .project-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .project-card { height: 190px; }
    .ops-shell { height: auto; overflow: visible; }
}

@media (max-width: 900px) {
    .lower-grid { grid-template-columns: 1fr; }
    .activity-stream { grid-template-columns: 1fr; }
    .ops-hero { height: auto; min-height: 430px; }
    .hero-wisdom { display: none; }
}

@media (max-width: 680px) {
    .hero-topbar, .hero-copy, .ops-content { padding-left: 18px; padding-right: 18px; }
    .hero-copy { padding-top: 42px; }
    .hero-copy h1 { font-size: 3.4rem; }
    .hero-pulse { right: 18px; }
    .project-grid { grid-template-columns: 1fr; }
    .project-card { min-height: 220px; height: auto; }
    .section-heading { align-items: flex-start; flex-direction: column; }
}


/* ArchEx 2.1.0 Communications Centre */
.comm-list-page,.template-page,.project-correspondence-page{display:grid;gap:1.1rem}.comm-list-page header h1,.template-page header h1,.project-correspondence-page header h1{margin:.15rem 0}.comm-list-page header p,.template-page header p,.project-correspondence-page header p{color:#667066}.comm-list-page .eyebrow,.template-page .eyebrow,.project-correspondence-page .eyebrow{margin:0;font-size:.72rem;font-weight:850;letter-spacing:.08em;color:#687168}.comm-list-page .toolbar{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;gap:.8rem;align-items:center;padding:.8rem;border:1px solid #d9ddd6;border-radius:12px;background:#f7f7f4}.comm-list-page .toolbar input[type=search]{min-height:38px;padding:.65rem .75rem;border:1px solid #c9cdc6;border-radius:8px;background:#fff}.template-grid,.project-correspondence-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.template-grid article,.project-correspondence-grid article{padding:1rem;border:1px solid #d9ddd6;border-radius:14px;background:#fff}.template-grid span,.project-correspondence-grid span{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#687168}.template-grid h2,.project-correspondence-grid h2{margin:.4rem 0;font-size:1.05rem}.template-grid strong,.template-grid p,.project-correspondence-grid strong,.project-correspondence-grid small{display:block;color:#626b62}.template-grid button,.project-correspondence-grid button{margin-top:.8rem;min-height:38px;padding:.55rem .8rem;border:1px solid #c9cdc6;border-radius:8px;background:#fff;font-weight:700}.template-grid button:disabled{opacity:.55}.empty-list{text-align:center;padding:2.5rem 1rem;border:1px dashed #cfd4cc;border-radius:14px;background:#f7f7f4}@media(max-width:900px){.template-grid,.project-correspondence-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.comm-list-page .toolbar{grid-template-columns:1fr}.template-grid,.project-correspondence-grid{grid-template-columns:1fr}}

.error-diagnostics {
    display: grid;
    grid-template-columns: minmax(110px, 160px) minmax(0, 1fr);
    gap: 0.75rem 1rem;
    margin: 1.5rem 0;
}

.error-diagnostics dt {
    font-weight: 700;
}

.error-diagnostics dd {
    margin: 0;
    overflow-wrap: anywhere;
}

/* ArchEx desktop shell link-state fallback.
   NavLink renders anchors across a component boundary, so these global shell-scoped
   selectors ensure browser and Bootstrap visited-link colours cannot leak through. */
.desktop-shell .brand-link,
.desktop-shell .brand-link:link,
.desktop-shell .brand-link:visited,
.desktop-shell .top-link,
.desktop-shell .top-link:link,
.desktop-shell .top-link:visited,
.desktop-shell .menu-panel a,
.desktop-shell .menu-panel a:link,
.desktop-shell .menu-panel a:visited,
.desktop-shell .user-panel a,
.desktop-shell .user-panel a:link,
.desktop-shell .user-panel a:visited,
.desktop-shell .sign-in-link,
.desktop-shell .sign-in-link:link,
.desktop-shell .sign-in-link:visited {
    color: var(--archex-cream);
    text-decoration: none;
}

.desktop-shell .brand-link {
    display: inline-flex;
    flex-direction: column;
}

.desktop-shell .top-link {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 76px;
    padding: 0 clamp(15px, 1.15vw, 20px);
    font-size: 1.08rem;
    font-weight: 650;
    line-height: 1;
    white-space: nowrap;
}

.desktop-shell .top-link::after {
    position: absolute;
    right: 12px;
    bottom: 0;
    left: 12px;
    height: 3px;
    border-radius: 3px 3px 0 0;
    background: transparent;
    content: "";
}

.desktop-shell .top-link:hover,
.desktop-shell .top-link:focus-visible,
.desktop-shell .top-link.active,
.desktop-shell .menu-panel a:hover,
.desktop-shell .menu-panel a:focus-visible,
.desktop-shell .menu-panel a.active,
.desktop-shell .user-panel a:hover,
.desktop-shell .user-panel a:focus-visible,
.desktop-shell .user-panel a.active,
.desktop-shell .sign-in-link:hover,
.desktop-shell .sign-in-link:focus-visible {
    color: var(--archex-ochre);
    text-decoration: none;
}

.desktop-shell .top-link.active::after {
    background: var(--archex-ochre);
}

.desktop-shell .menu-panel a,
.desktop-shell .user-panel a {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 46px;
    padding: 12px 16px;
    border-radius: 8px;
    font-size: .96rem;
    line-height: 1.35;
}

.desktop-shell .menu-panel a:hover,
.desktop-shell .menu-panel a:focus-visible,
.desktop-shell .menu-panel a.active,
.desktop-shell .user-panel a:hover,
.desktop-shell .user-panel a:focus-visible,
.desktop-shell .user-panel a.active {
    background: color-mix(in srgb, var(--archex-ochre) 22%, transparent);
}

@media (max-width: 1320px) {
    .desktop-shell .top-link {
        min-height: 76px;
        padding: 0 13px;
        font-size: 1rem;
    }
}

@media (max-width: 1000px) {
    .desktop-shell .top-link {
        min-height: 46px;
    }
}


/* Phone field-record editor uses its own compact application chrome. */
@media (max-width: 700px) {
  .archex-layout:has(.field-page-editor) .archex-header {
    display: none;
  }

  .archex-layout:has(.field-page-editor) .archex-main {
    min-height: 100dvh;
  }
}
