:root{--portal-pine:#102218;--portal-deep:#07100b;--portal-leaf:#9fbe62;--portal-lime:#c5df77;--portal-gold:#d6a84d;--portal-paper:#f4ead0;--portal-ink:#172019;--portal-line:#cbbd99;--portal-muted:#697267}
.portal-body{min-height:100vh;background:radial-gradient(circle at 12% 10%,rgba(159,190,98,.16),transparent 28rem),linear-gradient(180deg,#f3ead3,#e6d9b8);color:var(--portal-ink);font-family:"Nunito",system-ui,sans-serif}
.portal-topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px clamp(16px,4vw,50px);background:rgba(7,16,11,.94);backdrop-filter:blur(16px);border-bottom:1px solid rgba(240,204,120,.22)}
.portal-brand{display:flex;align-items:center;gap:11px;color:#fff;text-decoration:none}.portal-brand img{width:48px;height:48px;object-fit:contain}.portal-brand span{display:flex;flex-direction:column;line-height:1}.portal-brand b{font-family:"Fredoka";letter-spacing:.05em}.portal-brand small{margin-top:5px;color:#aebb9d;font-size:.58rem;letter-spacing:.14em;font-weight:900}
.portal-main{width:min(1240px,calc(100% - 32px));margin:auto;padding:58px 0 90px}.hidden{display:none!important}
.portal-auth-wrap{min-height:calc(100vh - 180px);display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:center}.portal-intro h1,.portal-welcome h1{font-family:"Fredoka";font-size:clamp(3.5rem,7vw,7rem);line-height:.91;letter-spacing:-.045em;margin:8px 0 22px}.portal-intro h1 em{font-style:normal;color:#42603a}.portal-intro>p{max-width:720px;color:#5e665d;font-size:1.05rem}.portal-roadmap{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}.portal-roadmap span{padding:8px 11px;background:#dfe8c8;border:1px solid #b8c69c;border-radius:6px;font-size:.76rem;font-weight:900;color:#405038}
.portal-auth-card,.portal-panel,.portal-profile-card,.portal-welcome,.portal-stats-grid article{background:rgba(255,253,245,.82);border:1px solid #cabb93;border-radius:12px;box-shadow:0 22px 55px rgba(40,45,34,.12)}.portal-auth-card{padding:24px}.portal-auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:22px}.portal-auth-tabs button{border:1px solid #cbbd99;background:#eee3c8;border-radius:7px;padding:11px;font-weight:900;color:#445044;cursor:pointer}.portal-auth-tabs button.active{background:#173424;color:#fff;border-color:#355f41}.portal-form{display:grid;gap:14px}.portal-form label{display:grid;gap:6px;font-size:.75rem;font-weight:1000;letter-spacing:.03em}.portal-form input{width:100%;padding:13px 14px;border:1px solid #bcae87;border-radius:7px;background:#fffdf5;color:#172019;outline:none}.portal-form input:focus{border-color:#6f934b;box-shadow:0 0 0 3px rgba(111,147,75,.14)}.portal-fineprint{color:#72786e;font-size:.72rem}.portal-message{min-height:22px;margin:12px 0 0;font-size:.8rem;font-weight:900}.portal-message.error{color:#a7493f}.portal-message.success{color:#3f6d42}
.portal-dashboard{display:grid;grid-template-columns:280px 1fr;gap:18px;align-items:start}.portal-profile-card{position:sticky;top:90px;padding:20px;display:grid;gap:15px}.portal-avatar-shell{aspect-ratio:1;border-radius:10px;overflow:hidden;background:#173424;border:1px solid #456149;display:grid;place-items:center}.portal-avatar,.portal-avatar-fallback{width:100%;height:100%;object-fit:cover}.portal-avatar-fallback{display:grid;place-items:center;color:#c5df77;font-size:5rem;font-family:"Fredoka"}.portal-profile-card small{font-size:.58rem;font-weight:1000;letter-spacing:.14em;color:#778073}.portal-profile-card h2{font-family:"Fredoka";font-size:2rem;margin:2px 0 0}.portal-profile-card p{margin:0;color:#697267}.portal-link-state{display:flex;align-items:center;gap:8px;padding:10px;border-radius:7px;background:#efe6cf;border:1px solid #d4c6a3}.status-dot{width:9px;height:9px;border-radius:50%;background:#c66d5d}.portal-link-state.linked .status-dot{background:#78a754;box-shadow:0 0 0 4px rgba(120,167,84,.13)}
.portal-content{display:grid;gap:16px}.portal-welcome{padding:28px;display:flex;align-items:center;justify-content:space-between;gap:20px}.portal-welcome h1{font-size:clamp(2.4rem,5vw,4.8rem);margin-bottom:10px}.portal-welcome p{max-width:760px;margin:0;color:#697267}.portal-panel{padding:22px}.portal-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.portal-panel-heading small,.portal-coming small{display:block;color:#6f7b69;font-size:.57rem;letter-spacing:.14em;font-weight:1000}.portal-panel-heading h3,.portal-coming h3{font-family:"Fredoka";font-size:1.45rem;margin:2px 0}.portal-panel-heading>span{min-width:34px;text-align:center;padding:5px 8px;border-radius:5px;background:#e2e9d1;color:#4a5e3f;font-size:.67rem;font-weight:1000}
.portal-link-code{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 15px;background:#102218;border:1px solid #35563f;border-radius:8px}.portal-link-code code{font-size:clamp(1.4rem,4vw,2.4rem);font-weight:1000;letter-spacing:.08em;color:#f0cc78;background:none}.portal-link-code button{border:1px solid rgba(197,223,119,.35);background:rgba(197,223,119,.1);color:#c5df77;padding:8px 12px;border-radius:6px;font-weight:1000;cursor:pointer}.portal-command{margin-top:10px;padding:11px 13px;background:#eee5d0;border:1px dashed #bda97f;border-radius:7px}.portal-command code{font-weight:900}.portal-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.portal-stats-grid article{padding:18px}.portal-stats-grid span{display:block;color:#7a8375;font-size:.57rem;font-weight:1000;letter-spacing:.13em}.portal-stats-grid strong{display:block;font-family:"Fredoka";font-size:2rem;margin:6px 0}.portal-stats-grid small{color:#7b8178}.portal-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.portal-empty{min-height:190px;display:grid;place-items:center;align-content:center;text-align:center;padding:22px;border:1px dashed #c9bb96;border-radius:8px;background:#f2ead7}.portal-empty span{font-size:2rem}.portal-empty p{max-width:390px;color:#747b71;font-size:.82rem;margin:4px 0 0}.portal-coming{display:flex;justify-content:space-between;align-items:center;gap:22px}.portal-feature-chips{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}.portal-feature-chips span{padding:7px 10px;border-radius:5px;background:#e4ead5;border:1px solid #c5cead;font-size:.72rem;font-weight:900}.portal-toast{position:fixed;right:18px;bottom:18px;z-index:100;transform:translateY(20px);opacity:0;pointer-events:none;padding:11px 14px;border-radius:7px;background:#102218;color:#fff;box-shadow:0 18px 44px #0005;transition:.18s}.portal-toast.show{transform:none;opacity:1}
@media(max-width:900px){.portal-auth-wrap{grid-template-columns:1fr;gap:30px}.portal-dashboard{grid-template-columns:1fr}.portal-profile-card{position:relative;top:auto;grid-template-columns:100px 1fr;align-items:center}.portal-avatar-shell{grid-row:span 2}.portal-profile-card>.button,.portal-link-state{grid-column:1/-1}.portal-stats-grid{grid-template-columns:1fr 1fr}.portal-grid-2{grid-template-columns:1fr}.portal-welcome{align-items:flex-start;flex-direction:column}.portal-coming{align-items:flex-start;flex-direction:column}.portal-feature-chips{justify-content:flex-start}}
@media(max-width:560px){.portal-main{width:min(100% - 20px,1240px);padding-top:28px}.portal-topbar{padding:10px 12px}.portal-topbar>.button{padding:9px 11px;font-size:.7rem}.portal-brand small{display:none}.portal-auth-card,.portal-panel,.portal-profile-card,.portal-welcome{border-radius:9px}.portal-stats-grid{grid-template-columns:1fr 1fr}.portal-stats-grid strong{font-size:1.55rem}.portal-profile-card{grid-template-columns:82px 1fr}.portal-intro h1{font-size:3.4rem}}

/* Realty + synced property additions */
.property-card,.listing-card{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:14px;border:1px solid rgba(64,83,43,.18);border-radius:14px;background:rgba(255,255,255,.5)}
.property-card div,.listing-card>div:first-child{display:flex;flex-direction:column;gap:4px}.property-card em{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#6d7d49}.realty-list-btn,.listing-actions button{border:1px solid #9db36a;background:#f7f1d6;border-radius:999px;padding:8px 12px;font-weight:800;cursor:pointer}.listing-actions{display:flex;gap:6px;flex-wrap:wrap}.listing-card img{width:86px;height:58px;object-fit:cover;border-radius:9px;margin-top:6px}.realty-dialog{width:min(760px,calc(100vw - 24px));border:1px solid #b7a36e;border-radius:18px;padding:0;background:#f7f0d4;color:#182217;box-shadow:0 24px 70px #0007}.realty-dialog::backdrop{background:#08110bcc;backdrop-filter:blur(5px)}.realty-dialog form{padding:22px;display:grid;gap:14px}.realty-dialog-head{display:flex;justify-content:space-between;align-items:start}.realty-dialog-head h3{margin:3px 0 0;font-size:28px}.realty-dialog-head button{border:0;background:transparent;font-size:28px;cursor:pointer}.realty-dialog label{display:grid;gap:6px;font-weight:800}.realty-dialog input,.realty-dialog textarea,.realty-dialog select{width:100%;box-sizing:border-box;border:1px solid #c6b98f;border-radius:10px;padding:11px;background:#fffdf3;font:inherit}.realty-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.realty-property-name{margin:0;padding:10px;border-radius:10px;background:#e8edc9}.photo-preview{display:grid;grid-template-columns:repeat(6,1fr);gap:7px}.photo-preview img{width:100%;aspect-ratio:1.3;object-fit:cover;border-radius:8px}@media(max-width:720px){.realty-row{grid-template-columns:1fr}.property-card,.listing-card{align-items:flex-start;flex-direction:column}.photo-preview{grid-template-columns:repeat(3,1fr)}}

/* My Bills + finance dashboard — 1.2.0 */
.finance-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.finance-summary-card{padding:17px 18px;background:rgba(255,253,245,.86);border:1px solid #cabb93;border-radius:12px;box-shadow:0 16px 38px rgba(40,45,34,.09)}.finance-summary-card span{display:block;color:#747e70;font-size:.56rem;font-weight:1000;letter-spacing:.13em}.finance-summary-card strong{display:block;font-family:"Fredoka";font-size:1.75rem;margin:5px 0 2px}.finance-summary-card small{color:#7a8078}.finance-summary-card.attention.has-overdue{border-color:#c87668;background:#fff0e9}.finance-summary-card.attention.has-overdue strong{color:#9e4439}.bills-panel{overflow:hidden}.bills-heading p{margin:4px 0 0;color:#70786d;font-size:.78rem}.bill-heading-meta{display:grid;place-items:center;min-width:58px}.bill-heading-meta>span{font-family:"Fredoka";font-size:1.35rem}.bill-heading-meta small{font-size:.5rem;letter-spacing:.12em;color:#7d8478}.bill-overview{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:8px 0 16px}.bill-overview>div{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"icon label" "icon value";column-gap:10px;align-items:center;padding:12px;background:#edf0dd;border:1px solid #ccd3b1;border-radius:10px}.bill-overview>div>span{grid-area:icon;font-size:1.35rem}.bill-overview small{grid-area:label;color:#697465;font-size:.5rem;font-weight:1000;letter-spacing:.09em}.bill-overview strong{grid-area:value;font-family:"Fredoka";font-size:1.1rem}.bill-list{display:grid;gap:9px}.bill-card{display:grid;grid-template-columns:46px 1fr auto;gap:12px;align-items:center;padding:13px 14px;border:1px solid #d2c7a6;border-radius:12px;background:rgba(255,255,255,.55)}.bill-card.danger{border-color:#d59a8f;background:#fff2ed}.bill-card.warning{border-color:#d7b45c;background:#fff8df}.bill-card.recurring{border-color:#b7c69a;background:#f3f6e9}.bill-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:10px;background:#ebe3cc;font-size:1.25rem}.bill-title{display:flex;align-items:center;gap:7px}.bill-title>strong{font-family:"Fredoka";font-size:1rem}.bill-main h4{margin:2px 0 1px;font-size:.9rem}.bill-main p{margin:0;color:#555f55;font-size:.75rem}.bill-main>small{display:block;color:#80867d;font-size:.66rem;margin-top:2px}.bill-status{padding:3px 6px;border-radius:999px;font-size:.48rem;font-weight:1000;letter-spacing:.08em;background:#e7ecd8;color:#50643f}.bill-status.danger{background:#f3c6bd;color:#8a392f}.bill-status.warning{background:#f2dc9f;color:#70551e}.bill-status.recurring{background:#dce8ca;color:#48633b}.bill-amount{text-align:right}.bill-amount strong{display:block;font-family:"Fredoka";font-size:1.3rem}.bill-amount small{color:#797f76;font-size:.64rem}.finance-detail-grid{align-items:stretch}.finance-timeline,.financial-profile{display:grid;gap:9px}.timeline-row{display:grid;grid-template-columns:12px 1fr;gap:10px;position:relative}.timeline-row:not(:last-child)::after{content:"";position:absolute;left:5px;top:18px;bottom:-10px;width:2px;background:#d5d7bf}.timeline-dot{width:10px;height:10px;border-radius:50%;background:#86a857;margin-top:5px;box-shadow:0 0 0 3px #edf0dd}.timeline-row.danger .timeline-dot{background:#b75d4f;box-shadow:0 0 0 3px #f5d8d1}.timeline-row strong,.timeline-row small,.timeline-row em{display:block}.timeline-row strong{font-size:.8rem}.timeline-row small{color:#747b71;font-size:.68rem}.timeline-row em{color:#788d51;font-size:.64rem;font-style:normal;font-weight:900}.timeline-row.danger em{color:#a24b40}.finance-empty-line{padding:18px;border:1px dashed #c9bb96;border-radius:9px;background:#f2ead7;color:#747b71;font-size:.78rem}.financial-profile{grid-template-columns:1fr 1fr}.financial-profile>div{padding:10px 11px;border:1px solid #d7cfb5;border-radius:9px;background:#f6f0df}.financial-profile span{display:block;color:#788075;font-size:.5rem;font-weight:1000;letter-spacing:.08em;text-transform:uppercase}.financial-profile strong{display:block;margin-top:3px;font-size:.84rem}.enriched-property{align-items:flex-start}.property-copy{min-width:0}.property-title-row{display:flex!important;flex-direction:row!important;align-items:center;gap:7px!important}.property-detail-chips{display:flex!important;flex-direction:row!important;flex-wrap:wrap;gap:5px!important;margin-top:4px}.property-detail-chips span{font-size:.61rem;padding:4px 6px;border-radius:6px;background:#edf0dd;border:1px solid #d1d7bb;color:#596558}.property-card em{padding:2px 5px;border-radius:999px;background:#e6ead5}.portal-content{min-width:0}
@media(max-width:1000px){.finance-summary-grid,.bill-overview{grid-template-columns:1fr 1fr}.financial-profile{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.finance-summary-grid,.bill-overview,.financial-profile{grid-template-columns:1fr 1fr}.bill-card{grid-template-columns:38px 1fr}.bill-icon{width:36px;height:36px}.bill-amount{grid-column:2;text-align:left}.finance-summary-card strong{font-size:1.45rem}}
@media(max-width:430px){.finance-summary-grid,.bill-overview,.financial-profile{grid-template-columns:1fr}.bill-card{grid-template-columns:1fr}.bill-icon{display:none}.bill-amount{grid-column:1}}

/* Citizen Portal batch — 1.3.0 */
.secondary-stats-grid article{background:linear-gradient(180deg,rgba(255,255,255,.78),rgba(241,239,218,.82))}.online-text{color:#4d7d35!important}.notification-panel{overflow:hidden}.notification-panel .portal-panel-heading p{margin:4px 0 0;color:#70786d;font-size:.78rem}.notification-list{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.notice-card{display:grid;grid-template-columns:36px 1fr;gap:10px;align-items:start;padding:12px;border:1px solid #d4c9a7;border-radius:11px;background:#f7f1df}.notice-card>span{font-size:1.25rem}.notice-card strong{display:block;font-family:"Fredoka";font-size:.9rem}.notice-card p{margin:2px 0 0;color:#697267;font-size:.72rem;line-height:1.4}.notice-card.danger{border-color:#d59a8f;background:#fff0eb}.notice-card.warning{border-color:#d5b55e;background:#fff8df}.notice-card.good{border-color:#a8bd7c;background:#eef5df}.notice-card.info{border-color:#a8b7bd;background:#eef2f1}.detail-data-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.detail-data-grid>div{padding:10px 11px;border:1px solid #d7cfb5;border-radius:9px;background:#f6f0df;min-width:0}.detail-data-grid span{display:block;color:#788075;font-size:.49rem;font-weight:1000;letter-spacing:.08em;text-transform:uppercase}.detail-data-grid strong{display:block;margin-top:3px;font-size:.8rem;overflow-wrap:anywhere}.skill-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.skill-card{padding:11px;border:1px solid #d1d8b9;border-radius:10px;background:#f2f5e7}.skill-card>div:first-child{display:flex;justify-content:space-between;gap:10px;align-items:center}.skill-card span{font-size:.67rem;font-weight:900;color:#66705f}.skill-card strong{font-family:"Fredoka";font-size:1.1rem}.skill-bar{height:6px;margin-top:7px;border-radius:999px;background:#dce2cc;overflow:hidden}.skill-bar i{display:block;height:100%;border-radius:999px;background:#86a857}.forecast-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.forecast-grid>div{padding:13px;border:1px solid #d7cfb5;border-radius:10px;background:#f6f0df}.forecast-grid span,.forecast-grid strong,.forecast-grid small{display:block}.forecast-grid span{color:#788075;font-size:.52rem;font-weight:1000;letter-spacing:.08em;text-transform:uppercase}.forecast-grid strong{font-family:"Fredoka";font-size:1.25rem;margin:3px 0}.forecast-grid small{color:#747b71;font-size:.67rem}.achievement-grid{display:grid;gap:7px}.achievement-card{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;padding:9px 10px;border:1px solid #d5ccb0;border-radius:9px;background:#f5efde}.achievement-card>span{font-size:1.1rem}.achievement-card strong,.achievement-card small{display:block}.achievement-card strong{font-size:.76rem}.achievement-card small{font-size:.62rem;color:#7c8278}.achievement-card b{font-family:"Fredoka";font-size:1rem}.achievement-card.earned{background:#edf4df;border-color:#b9ca92}.achievement-card.locked{opacity:.55;filter:saturate(.6)}.history-list{display:grid;gap:8px}.history-row{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid #d7cfb5;border-radius:10px;background:#f6f0df}.history-row>span{font-size:1.15rem}.history-row strong,.history-row p,.history-row small{display:block}.history-row strong{font-size:.8rem}.history-row p{margin:1px 0;color:#6f776e;font-size:.68rem}.history-row small{color:#8a8f87;font-size:.59rem}.history-row>b{font-family:"Fredoka";font-size:.86rem}.history-row>b.positive{color:#557c3f}.history-row>b.negative{color:#a54d43}
@media(max-width:1050px){.skill-grid{grid-template-columns:repeat(3,1fr)}.notification-list{grid-template-columns:1fr}}
@media(max-width:720px){.skill-grid{grid-template-columns:1fr 1fr}.detail-data-grid,.forecast-grid{grid-template-columns:1fr 1fr}.history-row{grid-template-columns:28px 1fr}.history-row>b{grid-column:2}}
@media(max-width:430px){.skill-grid,.detail-data-grid,.forecast-grid{grid-template-columns:1fr}.notification-list{grid-template-columns:1fr}}


/* Oathwood Community 1.3.1 — website-only social layer */
.community-hub{overflow:hidden}.community-heading{align-items:flex-start}.community-badges{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.community-badges span,.unread-pill{padding:6px 10px;border-radius:999px;background:rgba(122,168,74,.13);border:1px solid rgba(122,168,74,.25);font-size:.78rem;font-weight:900}.community-badges #communityUnreadBadge,.unread-pill{background:#f1d78b;color:#352711}.community-tabs{display:flex;gap:7px;flex-wrap:wrap;padding:10px;border-radius:16px;background:rgba(9,31,18,.055);margin:18px 0}.community-tabs button{border:0;background:transparent;padding:10px 13px;border-radius:12px;font:800 .88rem Nunito,sans-serif;color:inherit;cursor:pointer}.community-tabs button.active{background:#173d26;color:#fff;box-shadow:0 5px 15px rgba(10,30,18,.14)}.community-tabs b{margin-left:5px;color:#efcb68}.community-toolbar{display:flex;align-items:end;justify-content:space-between;gap:15px;margin-bottom:15px}.community-toolbar>div{display:grid;gap:3px}.community-toolbar small{opacity:.67}.community-search{display:grid;gap:5px;flex:1;max-width:520px;font-weight:900}.community-search input,.social-profile-form input,.social-profile-form textarea,.social-profile-form select,.community-composer textarea,.message-compose textarea,.post-comments input{width:100%;box-sizing:border-box;border:1px solid rgba(18,54,31,.16);border-radius:12px;background:rgba(255,255,255,.75);padding:11px 12px;font:700 .92rem Nunito,sans-serif;color:#18331f;outline:none}.community-search input:focus,.social-profile-form input:focus,.social-profile-form textarea:focus,.community-composer textarea:focus,.message-compose textarea:focus{border-color:#78a748;box-shadow:0 0 0 3px rgba(120,167,72,.12)}
.member-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.member-card{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:14px;border:1px solid rgba(18,54,31,.1);border-radius:17px;background:rgba(255,255,255,.54);cursor:pointer;transition:.18s ease}.member-card:hover{transform:translateY(-2px);border-color:rgba(113,153,63,.4);box-shadow:0 8px 22px rgba(15,44,25,.08)}.member-avatar{width:52px;height:52px;border-radius:14px;background:#d8e7c5;display:grid;place-items:center;position:relative;overflow:visible;font-weight:1000}.member-avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit;image-rendering:auto}.member-avatar.large{width:82px;height:82px;border-radius:20px}.member-avatar.mini{width:40px;height:40px;border-radius:11px}.presence{position:absolute;right:-2px;bottom:-2px;width:11px;height:11px;border:3px solid #fff;border-radius:50%;background:#8b968e}.presence.online{background:#62bd55}.member-card-copy{min-width:0}.member-card-copy>div:first-child{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.member-card-copy strong{font-size:1.02rem}.member-card-copy em{font-size:.72rem;padding:3px 7px;border-radius:999px;background:rgba(239,203,104,.22);font-style:normal;font-weight:900}.member-card-copy small{display:block;opacity:.65}.member-card-copy p{margin:6px 0 0;font-size:.83rem}.member-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.member-tags span{padding:3px 7px;border-radius:999px;background:rgba(34,91,49,.08);font-size:.69rem;font-weight:900}.member-card>button{border:0;border-radius:10px;background:#173d26;color:#fff;padding:8px 10px;font-weight:900;cursor:pointer}
.community-composer{padding:15px;border-radius:16px;background:linear-gradient(135deg,rgba(239,203,104,.15),rgba(116,165,70,.11));border:1px solid rgba(71,105,48,.13);margin-bottom:16px}.composer-head{display:grid;gap:2px;margin-bottom:9px}.composer-head small{opacity:.66}.composer-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:9px}.share-attachment,.post-attachment{display:flex;gap:11px;align-items:center;margin-top:9px;padding:11px;border-radius:13px;background:rgba(255,255,255,.65);border:1px solid rgba(29,69,40,.12)}.share-attachment>span,.post-attachment>span{font-size:1.7rem}.share-attachment div,.post-attachment div{display:grid;gap:1px}.share-attachment small,.post-attachment small{font-size:.64rem;font-weight:1000;letter-spacing:.08em}.share-attachment p,.post-attachment p{margin:0;font-size:.8rem;opacity:.7}.post-attachment img{width:76px;height:58px;object-fit:cover;border-radius:10px}.community-feed{display:grid;gap:12px}.community-post{padding:15px;border-radius:17px;border:1px solid rgba(18,54,31,.1);background:rgba(255,255,255,.55)}.community-post header{display:flex;gap:10px;align-items:center}.community-post header>div:nth-child(2){display:grid;flex:1}.community-post header strong{cursor:pointer}.community-post header small{opacity:.58}.post-delete{border:0;background:transparent;font-size:1.3rem;cursor:pointer;opacity:.55}.post-text{white-space:pre-wrap;margin:13px 0;line-height:1.55}.community-post footer{display:flex;gap:7px;margin-top:12px}.community-post footer button,.post-comments button,.friend-row button,.listing-actions button,.share-community-btn{border:1px solid rgba(24,62,35,.13);background:rgba(255,255,255,.64);border-radius:9px;padding:6px 9px;font-weight:900;cursor:pointer}.community-post footer button.liked{background:#e8d783}.post-comments{display:grid;gap:7px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(20,55,30,.08)}.post-comments>div{display:flex;gap:7px;font-size:.82rem}.post-comments form{display:flex;gap:6px}.post-comments form input{flex:1;padding:8px 9px}.community-split{display:grid;grid-template-columns:1fr 1fr;gap:20px}.community-split h4{margin:0 0 9px}.friend-list{display:grid;gap:8px}.friend-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:8px;padding:9px;border-radius:13px;background:rgba(255,255,255,.5);border:1px solid rgba(20,55,30,.08)}.friend-row div:nth-child(2){display:grid}.friend-row small{opacity:.6}.social-profile-form{display:grid;gap:12px}.social-profile-intro h4{margin:3px 0}.social-profile-intro p{margin:0;opacity:.66}.social-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.social-profile-form label{display:grid;gap:5px;font-weight:900}.toggle-label{display:flex!important;align-items:center;gap:7px;padding-top:24px}.toggle-label input{width:auto!important}.property-web-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.share-community-btn{white-space:nowrap}
.social-dialog{max-width:600px;width:min(92vw,600px)}.member-dialog-body{padding:4px}.member-profile-hero{display:flex;gap:14px;align-items:center}.member-profile-hero>div:nth-child(2){display:grid;gap:3px}.member-profile-hero strong{font-size:1.15rem}.member-profile-hero small{opacity:.67}.member-profile-hero p{margin:4px 0}.member-bio{line-height:1.55;padding:12px;border-radius:13px;background:rgba(23,61,38,.06)}.member-stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.member-stat-row span{padding:10px;border-radius:12px;background:rgba(255,255,255,.58);display:grid;text-align:center}.member-stat-row b{font-size:.95rem}.member-stat-row span{font-size:.68rem;font-weight:900}.member-dialog-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:16px}.danger-lite{color:#823832!important}.message-dialog{max-width:680px;width:min(94vw,680px)}.message-shell{display:grid;grid-template-rows:auto minmax(250px,55vh) auto}.message-thread{overflow:auto;padding:12px;display:flex;flex-direction:column;gap:8px;background:rgba(20,55,30,.04);border-radius:14px}.chat-bubble{max-width:78%;padding:9px 11px;border-radius:14px}.chat-bubble p{margin:0;white-space:pre-wrap}.chat-bubble small{display:block;margin-top:4px;font-size:.64rem;opacity:.56}.chat-bubble.mine{align-self:flex-end;background:#dcebbd}.chat-bubble.theirs{align-self:flex-start;background:#fff;border:1px solid rgba(22,57,32,.08)}.message-compose{display:grid;grid-template-columns:1fr auto;gap:8px;padding-top:10px}.conversation-list{display:grid;gap:8px}.conversation-row{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;padding:10px;border-radius:13px;border:1px solid rgba(21,57,32,.09);background:rgba(255,255,255,.5);cursor:pointer}.conversation-row>div:nth-child(2){min-width:0}.conversation-row p{margin:2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conversation-row small{opacity:.55}.unread-pill{padding:2px 6px;font-size:.65rem}
@media(max-width:760px){.community-toolbar{align-items:stretch;flex-direction:column}.community-search{max-width:none}.member-grid{grid-template-columns:1fr}.community-split{grid-template-columns:1fr}.community-tabs{overflow-x:auto;flex-wrap:nowrap}.community-tabs button{white-space:nowrap}.member-stat-row{grid-template-columns:1fr}.message-compose{grid-template-columns:1fr}.member-card{grid-template-columns:auto 1fr}.member-card>button{grid-column:1/-1}.property-web-actions{justify-content:flex-start}}

.image-compress-help{display:block;margin-top:6px;font-size:.78rem;opacity:.82}.image-compress-help a{font-weight:800;text-decoration:underline;text-underline-offset:2px}


/* REALTY LISTING EDITOR */
.listing-photo-edit{position:relative;display:inline-block}.listing-photo-edit img{display:block;width:100%;height:100%;object-fit:cover}.listing-photo-edit button{position:absolute;right:4px;top:4px;width:27px;height:27px;border:0;border-radius:50%;background:#7f332d;color:#fff;font-weight:1000;cursor:pointer}.listing-actions button.primary{background:#173424;color:#fff;border-color:#173424}


/* ==========================================================================
   MY OATHWOOD — GLOOMY SCREENSHOT BACKGROUND
   Added 2026-08-28.
   The screenshot is kept on its own fixed layer so the page content itself
   never becomes transparent. Adjust only the opacity/filter values below if
   you ever want the scene lighter or darker.
   ========================================================================== */

.portal-body{
  position:relative;
  isolation:isolate;
  background:#09110c;
}

/* Background screenshot layer */
.portal-body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-2;
  pointer-events:none;
  opacity:.34;
  background-image:url("assets/oathwood-community-collage.png");
  background-repeat:no-repeat;
  background-position:center center;
  background-size:cover;
  filter:brightness(.58) saturate(.72) contrast(1.06);
  transform:translateZ(0);
}

/* Gloomy pine vignette over the screenshot */
.portal-body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    radial-gradient(circle at 50% 32%,rgba(18,43,27,.08) 0,rgba(4,12,8,.48) 72%,rgba(2,7,5,.72) 100%),
    linear-gradient(180deg,rgba(5,14,9,.30),rgba(7,17,11,.58));
}

/* Keep the logged-out welcome readable against the darker scene */
.portal-intro{
  color:#f7f0dc;
  text-shadow:0 2px 18px rgba(0,0,0,.36);
}
.portal-intro h1{
  color:#fff8e7;
}
.portal-intro h1 em{
  color:#c5df77;
}
.portal-intro>p{
  color:#d9e1d5;
}
.portal-roadmap span{
  color:#eff5e9;
  background:rgba(17,43,29,.76);
  border-color:rgba(197,223,119,.28);
  box-shadow:0 8px 24px rgba(0,0,0,.16);
  backdrop-filter:blur(7px);
}

/* Slightly strengthen the parchment surfaces so stats/social/realty stay clear */
.portal-auth-card,
.portal-panel,
.portal-profile-card,
.portal-welcome,
.portal-stats-grid article{
  background:rgba(255,253,245,.91);
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
  box-shadow:0 22px 55px rgba(0,0,0,.24);
}

/* Preserve the image composition on smaller screens */
@media(max-width:720px){
  .portal-body::before{
    background-position:52% center;
    opacity:.30;
    filter:brightness(.54) saturate(.70) contrast(1.05);
  }
  .portal-body::after{
    background:
      radial-gradient(circle at 50% 25%,rgba(18,43,27,.05) 0,rgba(4,12,8,.52) 72%,rgba(2,7,5,.76) 100%),
      linear-gradient(180deg,rgba(5,14,9,.34),rgba(7,17,11,.62));
  }
}

.portal-header-links{display:flex;align-items:center;gap:10px}.portal-header-links>a:first-child{color:#f3d36c;font-weight:900;text-decoration:none}@media(max-width:640px){.portal-header-links{gap:6px}.portal-header-links>a:first-child{font-size:.82rem}}


/* My Oathwood — single navigation control */
.portal-topbar{
  display:grid;
  grid-template-columns:minmax(210px,1fr) minmax(260px,420px) minmax(180px,1fr);
  align-items:center;
  gap:14px;
}
.myo-header-menu{
  width:100%;
  justify-self:center;
}
.myo-header-menu .social2-nav{
  margin:0;
  padding:0;
  border:0;
  background:transparent;
}
.myo-header-menu .s2-section-picker{
  width:100%;
  max-width:none;
  margin:0;
  color:#f2ead6;
  font-size:.57rem;
  font-weight:1000;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.myo-header-menu .s2-section-picker select{
  width:100%;
  min-height:42px;
  margin-top:4px;
  padding:8px 36px 8px 12px;
  border:1px solid rgba(239,203,104,.35);
  border-radius:12px;
  background:#fff9e9;
  color:#26372a;
  font:900 .78rem "Nunito",system-ui,sans-serif;
  box-shadow:0 7px 20px rgba(0,0,0,.12);
  cursor:pointer;
}
.portal-topbar>.button{justify-self:end}

@media(max-width:820px){
  .portal-topbar{
    grid-template-columns:1fr auto;
    gap:9px;
  }
  .myo-header-menu{
    grid-column:1/-1;
    grid-row:2;
  }
}
@media(max-width:560px){
  .portal-topbar>.button{font-size:.65rem;padding:8px 9px}
  .myo-header-menu .s2-section-picker{font-size:.52rem}
}

/* Device QOL: prevent mobile browser focus-zoom and horizontal enlargement in My Oathwood. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.portal-body{max-width:100vw;overflow-x:hidden}
.portal-main,.portal-dashboard,.portal-content,.social2-shell,.s2-pane,.s2-feed-layout,.s2-feed-main{min-width:0;max-width:100%}
@media(max-width:820px){
  .portal-body input,.portal-body select,.portal-body textarea,.portal-body button{font-size:16px}
  .myo-header-menu .s2-section-picker select{font-size:16px;min-height:46px}
  .realty-dialog{width:min(96vw,760px);max-width:96vw}
  .realty-row{grid-template-columns:1fr!important}
  .portal-main{width:min(100% - 14px,1240px)}
}
.listing-game-price-note,.ow-realty-game-price-note,.realty-game-price-note{padding:11px 12px;border:1px solid #d5bd72;border-radius:12px;background:#fff7d7;color:#56461f}
.listing-game-price-note strong,.ow-realty-game-price-note strong{display:block;margin-bottom:3px}
.listing-game-price-note p,.ow-realty-game-price-note p{margin:3px 0 0;font-size:.76rem;line-height:1.45}


/* 2.6.2 phone shell containment */
@media(max-width:760px){
  html,body.portal-body{width:100%;max-width:100%;min-width:0;overflow-x:clip}
  .portal-main{width:calc(100% - 16px)!important;max-width:calc(100% - 16px)!important;margin-inline:auto}
  .portal-topbar{width:100%;max-width:100%;min-width:0}
  .portal-topbar>*{min-width:0}
  .portal-brand{min-width:0}
  .portal-brand span{min-width:0}
  .portal-brand b{white-space:normal}
  .portal-profile-card,.portal-welcome,.portal-panel{width:100%;max-width:100%;min-width:0}
}


/* 2.6.4 — action feedback should be impossible to miss */
.portal-toast{
  position:fixed!important;
  left:50%!important;
  right:auto!important;
  bottom:28px!important;
  transform:translateX(-50%)!important;
  z-index:2147482500!important;
  max-width:min(92vw,520px)!important;
  padding:13px 18px!important;
  border-radius:999px!important;
  font-weight:1000!important;
  text-align:center!important;
  box-shadow:0 18px 55px rgba(0,0,0,.3)!important;
}
.ow-action-busy{opacity:.82!important;cursor:wait!important;pointer-events:none}
.ow-action-success{background:#e6f0d4!important;color:#23462d!important;border-color:#8cac62!important}
.ow-mini-spinner{display:inline-block;width:.9em;height:.9em;margin-right:.35em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-.12em;animation:owMiniSpin .7s linear infinite}
@keyframes owMiniSpin{to{transform:rotate(360deg)}}


/* 2.7.4 — Realty mobile card containment fix */
@media(max-width:760px){
  .portal-panel{overflow:hidden}
  .property-card,.listing-card{width:100%;max-width:100%;min-width:0;box-sizing:border-box;overflow:hidden}
  .property-card>div,.listing-card>div,.property-copy{width:100%;max-width:100%;min-width:0}
  .property-card strong,.listing-card strong,.property-card p,.listing-card p,.property-card small,.listing-card small,.property-card em,.listing-card em{max-width:100%;overflow-wrap:anywhere;word-break:break-word}
  .property-title-row{width:100%;max-width:100%;min-width:0;flex-wrap:wrap}
  .property-detail-chips{width:100%;max-width:100%;min-width:0}
  .property-web-actions,.listing-actions{width:100%;max-width:100%;min-width:0;justify-content:flex-start}
  .property-web-actions button,.property-web-actions a,.listing-actions button,.realty-list-btn{max-width:100%;white-space:normal}
  .listing-card img{max-width:100%}
}
