*{box-sizing:border-box}
:root{--lime:#b7ef35;--green:#3d8b2d;--deep:#24611c;--ink:#172116;--muted:#667064;--line:#d8e1d4;--card:#fff;--bg:#f5f8f3;--shadow:0 2px 8px #19320d18}
.dark{--ink:#e9f0e7;--muted:#aeb9aa;--line:#334231;--card:#1d251b;--bg:#111610;--shadow:0 2px 8px #0008}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 Arial,Helvetica,sans-serif}
a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}
.wrap{width:min(1160px,calc(100% - 28px));margin:auto}
.top{background:var(--card);border-bottom:4px solid var(--lime);box-shadow:var(--shadow);position:sticky;top:0;z-index:5}
.nav{min-height:66px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{font-weight:900;font-size:23px;color:var(--deep);white-space:nowrap}.dark .brand{color:var(--lime)}
.brand-mark{display:inline-flex;width:31px;height:31px;border-radius:9px;background:var(--lime);align-items:center;justify-content:center;margin-right:7px;color:#17300f}
nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap}nav a{padding:8px 8px;color:var(--ink);font-weight:600}
.button,button{border:0;border-radius:6px;background:var(--green);color:white;padding:10px 15px;cursor:pointer;font-weight:700}
.button:hover,button:hover{background:var(--deep);text-decoration:none}.link-button{background:none!important;color:var(--green);padding:0;border:0;font:inherit;font-weight:600}.link-button:hover{text-decoration:underline}.button.secondary{background:#74806f}.button.danger{background:#b33131}.button.small{padding:6px 10px}.theme{background:transparent;color:var(--ink);font-size:18px;padding:5px}
.main{min-height:calc(100vh - 125px);padding:26px 0 45px}
.panel,.card{background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}
.panel{padding:22px;margin-bottom:18px}.card{padding:16px}
.hero{border-left:6px solid var(--lime);padding:30px;margin-bottom:20px}.hero h1{margin-top:0}
.grid{display:grid;gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.forum-row,.thread-row{display:grid;grid-template-columns:1fr auto;gap:15px;padding:16px;border-top:1px solid var(--line)}.forum-row:first-child,.thread-row:first-child{border-top:0}
.forum-row h3,.thread-row h3{margin:0 0 3px}.muted{color:var(--muted)}.smalltext{font-size:13px}
form{display:grid;gap:12px}label{font-weight:700}input,textarea,select{width:100%;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:6px;padding:10px;font:inherit}textarea{min-height:130px;resize:vertical}
input[type=color]{height:44px;padding:3px;max-width:100px}.color-pick{display:flex;gap:10px;align-items:center}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.error,.success,.notice{padding:11px 13px;border-radius:6px;margin-bottom:14px}.error{background:#ffdede;color:#8b1717}.success{background:#ddf6d7;color:#23611b}.notice{background:#eff7dc;color:#41611d}
.badge{background:var(--lime);color:#17300f;border-radius:12px;padding:1px 6px;font-size:11px}
.avatar-mini{width:36px;height:36px;font-size:14px}
.avatar{width:80px;height:80px;border-radius:50%;object-fit:cover;background:var(--lime);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:26px;color:var(--deep);overflow:hidden;flex:0 0 auto}.avatar img{width:100%;height:100%;object-fit:cover}
.profile-head{display:flex;gap:18px;align-items:center}.online{display:inline-block;width:9px;height:9px;border-radius:50%;background:#57bd35;margin-right:5px}.offline{background:#929a91}
.post{padding:20px;border-top:1px solid var(--line);display:grid;grid-template-columns:150px 1fr;gap:20px}.post:first-child{border-top:0}.post-user{text-align:center}.post-body{min-width:0}.post-body img{max-width:100%}.post-body p:first-child{margin-top:0}
.post-media{display:block;max-width:min(720px,100%);max-height:650px;width:auto;height:auto;border-radius:8px;margin:14px 0;border:1px solid var(--line);object-fit:contain}
.media-preview{display:flex;gap:10px;flex-wrap:wrap}.media-preview img{max-width:180px;max-height:140px;border-radius:6px}
.message{padding:12px;border-radius:7px;background:var(--bg);margin:8px 0;max-width:80%}.message.mine{margin-left:auto;background:#dff4c8}.dark .message.mine{background:#304b28}
.chat{max-height:520px;overflow:auto;padding:12px}.tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);margin-bottom:15px}.tabs a{padding:9px 12px}
.table{width:100%;border-collapse:collapse}.table th,.table td{padding:10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.profile-shell{background:var(--profile-bg,var(--bg));color:var(--profile-text,var(--ink));border:4px solid var(--profile-accent,var(--lime));border-radius:12px;overflow:hidden;min-height:450px;background-size:cover;background-position:center}
.profile-banner{padding:28px;background:linear-gradient(180deg,#0008,transparent);color:#fff;display:flex;gap:18px;align-items:center}.profile-banner h1{margin:0;color:#fff;text-shadow:0 1px 3px #000}
.profile-content{padding:20px;display:grid;grid-template-columns:2fr 1fr;gap:16px}
.profile-box{background:var(--profile-card,#fff);border:2px solid var(--profile-accent,var(--lime));border-radius:10px;padding:16px;box-shadow:0 2px 8px #0002}
.profile-meta{display:flex;gap:10px;flex-wrap:wrap}.profile-meta span{padding:5px 9px;border-radius:15px;background:var(--profile-accent,var(--lime));color:#17300f;font-size:13px;font-weight:700}
.move-buttons{display:flex;gap:5px}.move-buttons form{display:inline}
footer{border-top:1px solid var(--line);padding:22px 0;color:var(--muted)}
@media(max-width:700px){.nav{align-items:flex-start;padding:12px 0;flex-direction:column}.nav nav{width:100%}.grid.two,.grid.three,.profile-content{grid-template-columns:1fr}.post{grid-template-columns:1fr}.post-user{text-align:left;display:flex;gap:10px;align-items:center}.message{max-width:95%}}

.announcement + .announcement{margin-top:12px}.profile-gallery{grid-column:1/-1}.profile-gallery .post-media{max-width:220px;max-height:220px}

/* Layout and editor polish */
html,body{min-height:100%;background:var(--bg);color:var(--ink)}
.actions form{display:inline-flex;gap:0;margin:0;align-items:center}
.actions .button{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}
.hero{padding-bottom:24px}
.media-uploader{display:grid;gap:8px}
.media-drop{border:2px dashed var(--line);border-radius:9px;padding:14px;text-align:center;background:var(--bg);cursor:pointer;transition:.15s ease}
.media-drop:hover,.media-drop.dragging{border-color:var(--green);background:var(--card)}
.media-drop strong,.media-drop span{display:block}.media-drop span{font-size:13px;color:var(--muted);margin-top:3px}
.media-file-input{display:block!important;width:100%;padding:8px!important}
.media-selected{display:flex;gap:8px;flex-wrap:wrap}.media-selected img{width:90px;height:70px;object-fit:cover;border-radius:6px;border:1px solid var(--line)}
@media(max-width:700px){.actions form{width:auto}.actions .button{width:auto}.media-drop{padding:12px}}

.profile-shell{background-position:center;overflow:hidden}.profile-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.profile-result{display:flex;gap:12px;align-items:center;color:var(--ink)}.profile-result:hover{text-decoration:none;border-color:var(--green)}.profile-search{display:flex;gap:8px}.profile-search input{flex:1}.gallery-manager{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin:12px 0}.gallery-item{border:1px solid var(--line);border-radius:8px;padding:8px;background:var(--bg);overflow:hidden}.gallery-item img{display:block;width:100%;height:120px;object-fit:contain;background:#0001;border-radius:5px;margin-bottom:7px}.gallery-item label{font-size:12px}.gallery-item select{padding:6px;font-size:12px}.gallery-delete-form{margin-top:10px}.gallery-check{display:block;font-weight:400;padding:5px}.media-frame{max-width:100%;overflow:hidden;margin:14px 0;border-radius:8px}.media-frame .post-media{margin:0;max-width:100%;width:100%;height:auto}.media-fit-contain .post-media{object-fit:contain}.media-fit-cover .post-media{object-fit:cover}.media-fit-fill .post-media{object-fit:fill}.media-small{max-width:220px}.media-medium{max-width:520px}.media-large{max-width:760px}.media-full{max-width:100%}.message .media-frame{max-width:min(520px,100%)}.message .post-media{max-height:360px}.check{display:flex;align-items:center;gap:8px}.check input{width:auto}

.embed-frame{position:relative;width:100%;max-width:760px;aspect-ratio:16/9;margin:14px 0;border-radius:8px;overflow:hidden;background:#000}.embed-frame iframe{width:100%;height:100%;border:0}.audio-frame{max-width:650px;margin:12px 0}.audio-frame audio{width:100%}.video-frame{max-width:760px;margin:12px 0;overflow:hidden;border-radius:8px}.video-frame video{display:block;width:100%;max-height:600px;background:#000}.vote-box{display:flex;gap:8px;align-items:center}.vote-score{min-width:60px;text-align:center;font-weight:800}.profile-editor{display:grid;gap:18px}.editor-section{padding:18px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}.editor-section h2{margin-top:0}.editor-actions{position:sticky;bottom:12px;z-index:3;padding:10px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--card) 94%,transparent);backdrop-filter:blur(8px)}

.profile-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.gallery-display{width:100%;aspect-ratio:4/3;overflow:hidden;border-radius:8px;background:#0001;display:flex;align-items:center;justify-content:center}.gallery-display img{width:100%;height:100%;max-width:none;max-height:none;margin:0;border:0}.gallery-display .fit-contain{object-fit:contain}.gallery-display .fit-cover{object-fit:cover}.gallery-display .fit-fill{object-fit:fill}.gallery-small{max-width:220px}.gallery-large{grid-column:span 2}.gallery-full{grid-column:1/-1}@media(max-width:700px){.gallery-large{grid-column:auto}.gallery-full{grid-column:1/-1}}

input[type=checkbox],input[type=radio]{width:auto!important;accent-color:var(--green);margin:0}.gallery-check{display:flex;align-items:center;gap:7px}.gallery-check input{flex:0 0 auto}.profile-gallery-grid{width:100%;overflow:hidden}.profile-gallery-grid .gallery-display{min-width:0}.profile-gallery-grid img{max-width:100%;max-height:100%}
