
:root{
  --blue:#123f7a;--lightblue:#e5f0fb;--orange:#ff6500;--border:#8aa6c1;
  --page:#f4f4f4;--text:#222;--muted:#68737f
}
*{box-sizing:border-box}
body{margin:0;background:var(--page);font-family:Arial,Helvetica,sans-serif;color:var(--text);font-size:14px}
a{color:#1d4f91;text-decoration:none}a:hover{text-decoration:underline}
.topbar{background:linear-gradient(#194d88,#0b3265);border-bottom:4px solid #f06b18;color:white}
.topbar-inner{width:min(1100px,96%);margin:auto;display:flex;align-items:center;gap:18px;padding:12px 0}
.brand{font-size:30px;font-weight:900;color:white;letter-spacing:-1px;text-shadow:2px 2px #06284f}
.top-search{display:flex;flex:1;max-width:440px}.top-search input{flex:1;padding:8px;border:1px solid #153d67}.top-search button{background:#eee;border:1px solid #777;padding:8px 14px}
nav{margin-left:auto;display:flex;gap:12px;flex-wrap:wrap}nav a{color:white;font-weight:bold}
.page-wrap{width:min(1100px,96%);margin:18px auto;min-height:70vh}
.hero{display:grid;grid-template-columns:1.3fr .7fr;gap:16px}
.panel{background:white;border:1px solid var(--border);margin-bottom:14px}
.panel-title{background:var(--blue);color:white;font-weight:bold;padding:7px 10px;font-size:15px}
.panel-title.orange{background:var(--orange)}
.panel-body{padding:12px}
.welcome h1{font-size:34px;color:#17447d;margin:0 0 10px}
.welcome p{font-size:17px;line-height:1.6}
.cta{display:inline-block;background:var(--orange);color:white;font-weight:bold;padding:10px 18px;border:2px outset #ff9a55}
.grid-2{display:grid;grid-template-columns:300px 1fr;gap:16px}
.profile-card{text-align:center}.avatar{width:170px;height:170px;object-fit:cover;border:1px solid #777;background:#ddd}
.avatar-sm{width:60px;height:60px;object-fit:cover;border:1px solid #777}
.friend-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;text-align:center}
.friend-grid img{width:75px;height:75px;object-fit:cover;border:1px solid #777}
.info-table{width:100%;border-collapse:collapse}.info-table td{padding:6px;border-bottom:1px solid #ddd}.info-table td:first-child{width:35%;font-weight:bold;color:#355b88}
.form-card{max-width:560px;margin:20px auto;background:white;border:1px solid var(--border)}
.form-card h1{margin:0;background:var(--blue);color:white;padding:10px 14px;font-size:20px}
.form-body{padding:18px}.form-row{margin-bottom:13px}.form-row label{display:block;font-weight:bold;margin-bottom:4px}.form-row input,.form-row textarea,.form-row select{width:100%;padding:9px;border:1px solid #999}
button,.button{cursor:pointer;background:#eee;border:2px outset #ddd;padding:7px 12px;color:#111}
.primary{background:#194d88;color:#fff;border-color:#2c67a8}.danger{background:#a51f1f;color:#fff}
.feed-item{display:flex;gap:10px;padding:12px;border-bottom:1px solid #ddd}.feed-content{flex:1}.feed-meta{color:var(--muted);font-size:12px}.feed-text{white-space:pre-wrap;margin:6px 0}
.status-box textarea{width:100%;min-height:80px;padding:10px}.status-box footer{text-align:right;margin-top:8px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.flash{width:min(1100px,96%);margin:10px auto;padding:10px;border:1px solid}.success{background:#e6f7e7;border-color:#68a86a}.error{background:#fde9e9;border-color:#b65d5d}
.badge{background:#ff6500;color:white;border-radius:3px;padding:2px 5px;font-size:11px}
.footer{text-align:center;padding:24px;background:white;border-top:1px solid #ccc;color:#666}
.admin-table{width:100%;border-collapse:collapse;background:white}.admin-table th,.admin-table td{border:1px solid #bbb;padding:8px;text-align:left}.admin-table th{background:#dfeaf6}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat{background:white;border:1px solid var(--border);padding:18px;text-align:center}.stat strong{display:block;font-size:28px;color:var(--blue)}
@media(max-width:760px){.hero,.grid-2,.two-col{grid-template-columns:1fr}.topbar-inner{flex-wrap:wrap}.top-search{order:3;max-width:none;width:100%}.friend-grid{grid-template-columns:repeat(3,1fr)}.stat-grid{grid-template-columns:1fr 1fr}}

.mail-layout{display:grid;grid-template-columns:210px 1fr;gap:16px}.mail-menu a{display:block;padding:9px;border-bottom:1px solid #ccd8e5;font-weight:bold}.message-row{display:grid;grid-template-columns:50px 1fr 170px;gap:10px;padding:10px;border-bottom:1px solid #ddd;align-items:center}.message-row.unread{background:#eef6ff;font-weight:bold}.photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.photo-card{border:1px solid var(--border);padding:8px;text-align:center;background:white}.photo-card img{width:100%;height:170px;object-fit:cover}.comment{display:flex;gap:8px;padding:9px;border-top:1px solid #ddd}.comment-form textarea{width:100%;min-height:65px}.toolbar{display:flex;gap:8px;flex-wrap:wrap}.blog-card{padding:14px;border-bottom:1px solid #ddd}.notification{display:flex;gap:10px;padding:12px;border-bottom:1px solid #ddd}.notification.unread{background:#eef6ff}@media(max-width:760px){.mail-layout{grid-template-columns:1fr}.photo-grid{grid-template-columns:repeat(2,1fr)}.message-row{grid-template-columns:40px 1fr}}
/* Phase 2.1 repaired application layout */
.topbar-inner{position:relative}.account-line{margin-left:auto;color:#fff;font-weight:bold}.account-line a{color:#fff}.nav-strip{background:#eef3fa;border-top:1px solid #7895b6;border-bottom:1px solid #7895b6}.nav-inner{width:min(1100px,96%);margin:auto;display:flex;flex-wrap:wrap}.nav-inner a{padding:9px 12px;border-right:1px solid #9eb1c8;color:#123f7a;font-weight:bold}.nav-inner a:hover{background:#dbe8f7;text-decoration:none}.nav-inner .admin-link{background:#ff6500;color:#fff}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.section-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.section-tabs a{background:#e8f0f9;border:1px solid #9db4cc;padding:8px 12px;font-weight:bold}.section-tabs a.active{background:#123f7a;color:#fff}.content-list{background:#fff;border:1px solid var(--border)}.content-row{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:12px;padding:12px;border-bottom:1px solid #d6dde5;align-items:start}.content-row:last-child{border-bottom:0}.content-row h3{margin:0 0 5px}.content-row .actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.empty-state{padding:28px;text-align:center;color:#667}.admin-shell{display:grid;grid-template-columns:230px minmax(0,1fr);gap:16px}.admin-sidebar{background:#fff;border:1px solid var(--border);align-self:start}.admin-sidebar h3{margin:0;background:#123f7a;color:#fff;padding:10px}.admin-sidebar a{display:block;padding:10px 12px;border-bottom:1px solid #d7e0e9;font-weight:bold}.admin-sidebar a:hover{background:#edf4fb;text-decoration:none}.admin-main{min-width:0}.admin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.admin-card{background:#fff;border:1px solid var(--border);padding:16px}.admin-card strong{font-size:30px;color:#123f7a;display:block}.admin-table-wrap{overflow:auto}.admin-table{min-width:760px}.admin-toolbar{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.admin-toolbar form{display:flex;gap:6px}.admin-toolbar input{padding:8px;border:1px solid #999}.thumb{width:72px;height:72px;object-fit:cover;border:1px solid #888}.mail-layout,.photo-grid,.blog-card,.notification,.message-row{min-width:0}.message-row{grid-template-columns:56px minmax(0,1fr) 150px auto}.message-row form{margin:0}.photo-card h3{word-break:break-word}.notification div,.message-row div{min-width:0}.notification a,.message-row a{word-break:break-word}.panel-body img{max-width:100%}@media(max-width:820px){.admin-shell{grid-template-columns:1fr}.admin-grid{grid-template-columns:1fr 1fr}.account-line{width:100%;margin:0}.message-row{grid-template-columns:48px minmax(0,1fr)}.message-row time,.message-row form{grid-column:2}.content-row{grid-template-columns:50px minmax(0,1fr)}.content-row .actions{grid-column:2;justify-content:flex-start}}@media(max-width:520px){.admin-grid{grid-template-columns:1fr}.photo-grid{grid-template-columns:1fr}.nav-inner a{flex:1 0 33%;text-align:center}.topbar-inner{gap:8px}.brand{font-size:25px}}

/* Phase 2.2 image uploads */
.avatar-upload-box,
.photo-upload-box{
    display:grid;
    grid-template-columns:190px 1fr;
    gap:20px;
    align-items:center;
    padding:16px;
    margin-bottom:18px;
    background:#eef5fc;
    border:1px solid #b8cee3;
}
.avatar-preview{
    width:170px;
    height:170px;
    object-fit:cover;
    border:3px solid white;
    box-shadow:0 0 0 1px #748ba1;
    background:#dbe4ec;
}
.avatar-upload-controls h3,
.photo-upload-box h2{margin-top:0}
.checkbox-row{display:block;margin-top:12px}
.photo-view-page{text-align:center}
.full-photo{
    max-width:100%;
    max-height:75vh;
    object-fit:contain;
    border:1px solid #777;
    background:#eee;
}
.photo-card img{
    display:block;
    width:100%;
    height:190px;
    object-fit:cover;
    background:#ddd;
}
@media(max-width:760px){
    .avatar-upload-box,
    .photo-upload-box{grid-template-columns:1fr}
}

/* Phase 2.3 Profile Designer */
.profile-page{padding:16px;border:1px solid rgba(0,0,0,.15);background-position:top center;overflow:hidden}
.profile-page .profile-html-content img{max-width:100%;height:auto}
.profile-page .profile-html-content{overflow-wrap:anywhere}
.profile-designer-card{max-width:920px}
.designer-tabs{display:flex;gap:7px;flex-wrap:wrap;position:sticky;top:0;z-index:5;padding:10px;margin:-18px -18px 18px;background:#e8f0f8;border-bottom:1px solid #a9bfd4}
.designer-tabs a{padding:8px 10px;background:white;border:1px solid #9eb5ca;font-weight:bold}
.designer-section{scroll-margin-top:75px;padding:16px;margin-bottom:18px;border:1px solid #b8cee3;background:#fafcff}
.designer-section h2{margin-top:0;color:#17447d}
.color-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.color-grid input[type=color]{height:48px}
.designer-save-bar{position:sticky;bottom:0;padding:12px;margin:18px -18px -18px;background:#e8f0f8;border-top:1px solid #a9bfd4}
@media(max-width:760px){.color-grid{grid-template-columns:1fr 1fr}}

.online-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#2ca24d;margin-right:5px}
.top-friend-row{display:grid;grid-template-columns:50px 60px 1fr auto;gap:10px;align-items:center;padding:10px;border-bottom:1px solid #ddd}
@media(max-width:760px){.top-friend-row{grid-template-columns:45px 1fr}.top-friend-row form{grid-column:2}}

.role-badge{display:inline-block;padding:4px 8px;border-radius:4px;font-weight:bold}
.role-member{background:#e4e9ee}.role-moderator{background:#fff0bf;color:#795600}.role-admin{background:#dbe8ff;color:#123f7a}
.role-form,.moderation-links{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.admin-table-wrap{overflow-x:auto}.moderation-photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
@media(max-width:800px){.moderation-photo-grid{grid-template-columns:repeat(2,1fr)}}

/* Phase 2.6.1B Groups Core */
.groups-layout{display:grid;grid-template-columns:250px 1fr;gap:16px}
.groups-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.group-card{border:1px solid #9eb4c8;background:#fff;padding:12px}
.group-card h2{margin:4px 0 8px;font-size:19px}
.group-card-header{min-height:50px}
.group-category{font-weight:bold;color:#6b7680}
.group-description{font-size:15px;line-height:1.6}
.group-search-form{margin-top:15px}
.full-button{display:block;text-align:center}
@media(max-width:760px){
 .groups-layout{grid-template-columns:1fr}
 .groups-grid{grid-template-columns:1fr}
}

/* Phase 2.6.1C Groups discussions and CSS repair */
.group-discussion-row{
    display:grid;
    grid-template-columns:64px 1fr;
    gap:12px;
    padding:14px;
    border-bottom:1px solid #d5dfe9;
    background:#fff;
}
.group-discussion-row h3{margin:4px 0}
.group-post-body{
    margin:18px 0;
    padding:15px;
    line-height:1.65;
    background:#f8fbff;
    border:1px solid #c9d9e8;
}
.group-member-row{
    display:grid;
    grid-template-columns:64px 1fr auto;
    align-items:center;
    gap:12px;
    padding:12px;
    border-bottom:1px solid #d5dfe9;
}
.group-member-row form{
    display:flex;
    gap:6px;
    flex-wrap:wrap;
}
.group-community-links{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
}
@media(max-width:760px){
    .group-member-row{grid-template-columns:56px 1fr}
    .group-member-row form{grid-column:2}
}

/* Phase 2.6.1D Group Images & Invitations */
.group-banner-wrap{
    margin-bottom:16px;
    border:1px solid #7892ad;
    background:#dbe6f0;
}
.group-banner{
    display:block;
    width:100%;
    height:230px;
    object-fit:cover;
}
.group-avatar-wrap{text-align:center;padding:12px 12px 0}
.group-avatar-large{
    width:150px;
    height:150px;
    object-fit:cover;
    border:3px solid white;
    box-shadow:0 0 0 1px #7892ad;
    background:#dbe6f0;
}
.group-card-avatar{
    width:90px;
    height:90px;
    object-fit:cover;
    float:left;
    margin:0 12px 8px 0;
    border:1px solid #7892ad;
}
.group-card::after{content:"";display:block;clear:both}
.group-image-editor{
    display:grid;
    grid-template-columns:220px 1fr;
    gap:18px;
    margin-bottom:20px;
}
.group-image-editor>div{
    padding:14px;
    background:#eef5fc;
    border:1px solid #b8cee3;
}
.group-banner-preview{
    display:block;
    width:100%;
    max-height:190px;
    object-fit:cover;
    margin-bottom:10px;
}
.group-banner-placeholder{
    padding:55px 15px;
    text-align:center;
    background:#dbe6f0;
    border:1px dashed #7892ad;
    margin-bottom:10px;
}
@media(max-width:760px){
    .group-banner{height:150px}
    .group-image-editor{grid-template-columns:1fr}
}

/* Phase 2.6.1E */
.activity-row{display:flex;gap:10px;justify-content:space-between;padding:10px;border-bottom:1px solid #ddd}
.group-stat-line{display:flex;gap:14px;font-weight:bold;color:#45627d}

/* Phase 2.7.1A Events */
.events-layout{display:grid;grid-template-columns:250px 1fr;gap:16px}
.events-grid{display:grid;grid-template-columns:1fr;gap:12px}
.event-card{
    display:grid;
    grid-template-columns:75px 1fr;
    gap:14px;
    border:1px solid #9eb4c8;
    background:#fff;
    padding:14px;
}
.event-date-box{
    width:64px;
    text-align:center;
    border:1px solid #7892ad;
    background:#fff;
}
.event-date-box strong{
    display:block;
    padding:5px;
    background:#123f7a;
    color:#fff;
    text-transform:uppercase;
}
.event-date-box span{
    display:block;
    padding:8px;
    font-size:26px;
    font-weight:bold;
}
.event-card h2{margin:0 0 6px}
.event-stat-line{display:flex;gap:15px;font-weight:bold;color:#45627d}
.event-main-date{
    padding:12px;
    margin-bottom:15px;
    background:#eef5fc;
    border:1px solid #b8cee3;
    font-size:17px;
    font-weight:bold;
}
.event-description{line-height:1.7;margin-bottom:20px}
.rsvp-buttons{display:flex;gap:8px;flex-wrap:wrap}
.event-invite-row{
    display:grid;
    grid-template-columns:75px 1fr auto;
    gap:12px;
    align-items:center;
    padding:12px;
    border-bottom:1px solid #d5dfe9;
}
.event-invite-row form{display:flex;gap:6px}
@media(max-width:760px){
    .events-layout{grid-template-columns:1fr}
    .event-invite-row{grid-template-columns:70px 1fr}
    .event-invite-row form{grid-column:2}
}
