/* Public content states */
.public-loading,.public-empty{display:flex;min-height:190px;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:32px;color:var(--muted-foreground);text-align:center}
.public-empty h1,.public-empty h2,.public-empty h3{margin:0;color:var(--foreground);font-family:var(--font-display);font-size:21px}
.public-empty p{max-width:55ch;margin:0}.public-empty svg{color:var(--primary)}

/* Homepage: the first D1 announcement is featured and the next ones are compact rows. */
.home-news-loading,.home-news-empty{min-height:360px}
.home-news-featured{padding:20px}
.home-news-cover{display:block;overflow:hidden;border:1px solid var(--border);border-radius:7px;background:var(--background);aspect-ratio:2.65/1}
.home-news-cover img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease,opacity .2s}
.home-news-cover:hover img{transform:scale(1.018);opacity:.92}
.home-news-kicker{display:block;margin-top:17px;color:var(--primary);font-family:var(--font-mono);font-size:9px;font-weight:700;letter-spacing:.14em}
.home-news-featured>h3{margin-top:7px;font-family:var(--font-display);font-size:clamp(19px,2.2vw,23px);font-weight:650;line-height:1.28}
.home-news-featured>h3 a{transition:color .15s}.home-news-featured>h3 a:hover{color:var(--violet-soft)}
.home-news-meta{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:8px;color:var(--muted-foreground);font-size:12px}
.home-news-meta strong{color:color-mix(in oklab,var(--foreground) 85%,var(--muted-foreground));font-weight:500}
.home-news-summary{display:-webkit-box;overflow:hidden;margin-top:13px;color:color-mix(in oklab,var(--foreground) 84%,var(--muted-foreground));font-size:14px;line-height:1.65;-webkit-box-orient:vertical;-webkit-line-clamp:3}
.home-news-read{display:inline-flex;height:30px;align-items:center;gap:7px;margin-top:16px;padding:0 11px;border:1px solid var(--input);border-radius:6px;background:color-mix(in oklab,var(--input) 32%,transparent);box-shadow:0 1px 2px #0006;color:var(--foreground);font-size:12px;font-weight:500;transition:background .15s,border-color .15s}
.home-news-read:hover{border-color:color-mix(in oklab,var(--primary) 40%,var(--input));background:color-mix(in oklab,var(--input) 60%,transparent)}
.home-news-row{display:grid;grid-template-columns:112px minmax(0,1fr) 20px;align-items:center;gap:16px;padding:15px 20px;border-top:1px solid var(--border);transition:background .15s}
.home-news-row time{color:var(--muted-foreground);font-size:12px;white-space:nowrap}
.home-news-row h3{font-family:var(--font-display);font-size:14px;font-weight:600;line-height:1.35;transition:color .15s}
.home-news-row>svg{color:var(--muted-foreground);opacity:0;transform:translateX(-4px);transition:opacity .15s,transform .15s}
.home-news-row:hover{background:var(--secondary)}.home-news-row:hover h3{color:var(--violet-soft)}.home-news-row:hover>svg{opacity:1;transform:none}

/* Notícias index */
.announcement-list{display:flex;flex-direction:column}
.announcement-row{display:grid;grid-template-columns:132px minmax(0,1fr) 24px;align-items:center;gap:18px;padding:19px 20px;border-bottom:1px solid var(--border);transition:background .15s}
.announcement-row:last-child{border-bottom:0}.announcement-row:hover{background:var(--secondary)}
.announcement-thumb{display:block;width:132px;height:86px;border:1px solid var(--border);border-radius:6px;background:var(--background);object-fit:cover}
.announcement-copy{display:flex;min-width:0;flex-direction:column;gap:5px}
.announcement-row-label{color:var(--primary);font-family:var(--font-mono);font-size:8px;font-weight:700;letter-spacing:.13em}
.announcement-copy strong{color:var(--foreground);font-family:var(--font-display);font-size:17px;line-height:1.3}
.announcement-copy>span:not(.announcement-row-label):not(.announcement-byline){display:-webkit-box;overflow:hidden;color:var(--muted-foreground);font-size:13px;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.announcement-byline{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px;color:var(--muted-foreground);font-size:11px}
.announcement-byline time{font-family:var(--font-mono)}
.announcement-arrow{color:var(--muted-foreground);transition:color .15s,transform .15s}.announcement-row:hover .announcement-arrow{color:var(--primary);transform:translateX(3px)}

/* Equipe: compact role groups and Minecraft face cards. */
.staff-role{border-color:color-mix(in oklab,var(--role-color) 18%,var(--border));background:color-mix(in oklab,var(--card) 88%,transparent)}
.staff-role-header{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid color-mix(in oklab,var(--role-color) 15%,var(--border));background:repeating-linear-gradient(-48deg,transparent 0,transparent 9px,color-mix(in oklab,var(--role-color) 3%,transparent) 9px,color-mix(in oklab,var(--role-color) 3%,transparent) 11px)}
.staff-role-header h2{color:var(--role-color);font-family:var(--font-display);font-size:13px;font-weight:650}.staff-role-header>span:last-child{margin-left:auto;color:var(--muted-foreground);font-family:var(--font-mono);font-size:10px}
.staff-candle{position:relative;width:7px;height:14px;border-radius:1px;background:var(--role-color);opacity:.9}.staff-candle:before{position:absolute;top:-6px;left:1px;width:5px;height:7px;border-radius:60% 40% 60% 40%;background:var(--role-color);content:"";transform:rotate(35deg)}
.staff-grid{display:grid;gap:10px;padding:14px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.staff-card{display:flex;min-width:0;min-height:54px;align-items:center;gap:11px;padding:9px 12px;border:1px solid #ffffff0d;border-radius:6px;background:#0c0c10a8;transition:border-color .15s,background .15s}
.staff-card:hover{border-color:color-mix(in oklab,var(--role-color) 38%,transparent);background:#121218}
.staff-avatar{position:relative;display:grid;width:34px;height:34px;flex-shrink:0;place-items:center;overflow:hidden;border-radius:4px;background:var(--secondary);color:var(--role-color);font-family:var(--font-display);font-size:16px;font-weight:800}
.staff-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;image-rendering:pixelated}
.staff-card h3{overflow:hidden;color:#d1d1d7;font-size:12px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}

/* Dynamic announcement detail */
.announcement-breadcrumb{display:flex;align-items:center;gap:10px;margin-bottom:20px;color:var(--muted-foreground);font-size:12px}.announcement-breadcrumb a:hover{color:var(--foreground)}
.detail-heading{max-width:900px;padding:12px 0 22px}
.announcement-label{color:var(--primary);font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.13em}
.detail-heading h1{max-width:30ch;margin-top:12px;font-family:var(--font-display);font-size:clamp(1.85rem,4vw,2.75rem);font-weight:750;line-height:1.13;letter-spacing:-.025em;text-wrap:balance}
.detail-heading>p{max-width:70ch;margin-top:14px;color:var(--muted-foreground);font-size:15px;line-height:1.65}
.detail-byline{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:17px;color:var(--muted-foreground);font-size:12px}.detail-byline strong{color:var(--foreground);font-weight:500}.detail-byline time{font-family:var(--font-mono);font-size:11px}
.detail-cover{overflow:hidden;margin:0 0 22px;border:1px solid var(--border);border-radius:9px;background:var(--card);aspect-ratio:2.8/1}
.detail-cover img{display:block;width:100%;height:100%;object-fit:cover}
.detail-grid{display:grid;grid-template-columns:210px minmax(0,1fr);align-items:start;gap:20px}
.detail-sidebar{position:sticky;top:90px;display:flex;flex-direction:column;gap:12px}
.author-card{display:flex;flex-direction:column;align-items:center;padding:20px 16px;border:1px solid var(--border);border-top:2px solid var(--violet-soft);border-radius:8px;background:color-mix(in oklab,var(--card) 94%,transparent);text-align:center}
.author-card-label{align-self:stretch;padding-bottom:13px;border-bottom:1px solid var(--border);color:var(--muted-foreground);font-family:var(--font-mono);font-size:8px;font-weight:700;letter-spacing:.12em;text-align:left}
.author-avatar{display:grid;width:66px;height:66px;place-items:center;margin-top:19px;border:2px solid color-mix(in oklab,var(--violet-soft) 70%,transparent);border-radius:8px;background:color-mix(in oklab,var(--violet-soft) 12%,var(--card));box-shadow:0 10px 25px -18px var(--violet-soft);color:var(--violet-soft);font-family:var(--font-display);font-size:22px;font-weight:800}
.author-card h2{margin-top:11px;font-family:var(--font-display);font-size:15px;font-weight:600;overflow-wrap:anywhere}
.author-role{margin-top:6px;padding:3px 7px;border:1px solid color-mix(in oklab,var(--violet-soft) 24%,transparent);border-radius:4px;background:color-mix(in oklab,var(--violet-soft) 8%,transparent);color:var(--violet-soft);font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:.07em}
.author-card dl{display:flex;width:100%;flex-direction:column;gap:10px;margin:18px 0 0;padding-top:14px;border-top:1px solid var(--border);text-align:left}
.author-card dl>div{display:flex;flex-direction:column;gap:3px}.author-card dt{color:var(--muted-foreground);font-size:9px;text-transform:uppercase;letter-spacing:.06em}.author-card dd{margin:0;color:var(--foreground);font-size:11px}
.detail-back{padding:8px 4px;color:var(--muted-foreground);font-size:11px;text-align:center}.detail-back:hover{color:var(--foreground)}
.announcement-detail{min-width:0;overflow:hidden;border:1px solid var(--border);border-radius:8px;background:color-mix(in oklab,var(--card) 94%,transparent)}
#announcement-rich-content{padding:30px 34px}
.announcement-rich{color:color-mix(in oklab,var(--foreground) 90%,var(--muted-foreground));font-size:14px;line-height:1.8;overflow-wrap:anywhere}
.announcement-rich>*:first-child{margin-top:0}.announcement-rich>*:last-child{margin-bottom:0}
.announcement-rich h2,.announcement-rich h3,.announcement-rich h4{scroll-margin-top:95px;color:var(--foreground);font-family:var(--font-display);line-height:1.3;text-wrap:balance}
.announcement-rich h2{margin:34px 0 14px;font-size:24px;font-weight:700;letter-spacing:-.015em}.announcement-rich h3{margin:29px 0 12px;font-size:19px;font-weight:650}.announcement-rich h4{margin:24px 0 10px;font-size:16px;font-weight:650}
.announcement-rich p{margin:0 0 18px}.announcement-rich strong{color:var(--foreground);font-weight:650}.announcement-rich em{color:color-mix(in oklab,var(--foreground) 85%,var(--violet-soft))}
.announcement-rich a{color:var(--violet-soft);text-decoration:underline;text-decoration-color:color-mix(in oklab,var(--violet-soft) 40%,transparent);text-underline-offset:3px}.announcement-rich a:hover{text-decoration-color:currentColor}
.announcement-rich ul,.announcement-rich ol{display:flex;flex-direction:column;gap:8px;margin:0 0 22px;padding-left:24px}.announcement-rich ul{list-style:disc}.announcement-rich ol{list-style:decimal}.announcement-rich li{padding-left:4px;list-style:inherit}.announcement-rich li::marker{color:var(--primary);font-family:var(--font-mono);font-size:12px}
.announcement-rich code{padding:2px 5px;border:1px solid var(--border);border-radius:4px;background:var(--background);color:var(--violet-soft);font-family:var(--font-mono);font-size:.88em}
.announcement-rich pre{overflow:auto;margin:0 0 22px;padding:17px;border:1px solid var(--border);border-radius:6px;background:var(--background);line-height:1.6}.announcement-rich pre code{padding:0;border:0;background:none;color:var(--foreground);font-size:12px}
.announcement-rich hr{height:1px;margin:28px 0;border:0;background:var(--border)}
.rich-quote{margin:0 0 23px;padding:14px 18px;border-left:3px solid var(--violet-soft);border-radius:0 6px 6px 0;background:color-mix(in oklab,var(--violet-soft) 5%,transparent);color:var(--muted-foreground);font-style:italic}.rich-quote p:last-child{margin-bottom:0}
.rich-callout{display:grid;grid-template-columns:minmax(90px,auto) minmax(0,1fr);gap:16px;margin:0 0 23px;padding:16px 18px;border:1px solid color-mix(in oklab,var(--callout-color) 24%,var(--border));border-left:3px solid var(--callout-color);border-radius:6px;background:color-mix(in oklab,var(--callout-color) 6%,var(--card));--callout-color:var(--primary)}
.rich-callout.warning{--callout-color:#e5a84b}.rich-callout.success{--callout-color:#55bd83}.rich-callout.important{--callout-color:var(--violet-soft)}
.rich-callout-title{align-self:start;color:var(--callout-color);font-family:var(--font-display);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.rich-callout-body p{margin-bottom:10px;font-size:13px}.rich-callout-body p:last-child{margin-bottom:0}.rich-callout-body>*:first-child{margin-top:0}
.rich-image{margin:25px 0}.rich-image img{display:block;width:100%;height:auto;max-height:520px;border:1px solid var(--border);border-radius:7px;background:var(--background);object-fit:cover}.rich-image figcaption{margin-top:9px;color:var(--muted-foreground);font-size:11px;line-height:1.5;text-align:center}.rich-image-error{padding:16px;border:1px dashed var(--border);border-radius:6px;color:var(--muted-foreground);font-size:12px;text-align:center}
.announcement-detail-footer{padding:17px 30px;border-top:1px solid var(--border);color:var(--muted-foreground);font-family:var(--font-mono);font-size:9px;letter-spacing:.05em;text-align:center}

@media(max-width:900px){.staff-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid{grid-template-columns:180px minmax(0,1fr);gap:15px}#announcement-rich-content{padding:25px}.rich-callout{grid-template-columns:1fr;gap:7px}}
@media(max-width:700px){.detail-grid{display:flex;flex-direction:column}.detail-sidebar{position:static;width:100%}.author-card{display:grid;grid-template-columns:54px minmax(0,1fr);column-gap:13px;align-items:center;text-align:left}.author-card-label{grid-column:1/-1}.author-avatar{grid-row:2/4;width:50px;height:50px;margin-top:15px;font-size:17px}.author-card h2{align-self:end;margin-top:15px}.author-role{justify-self:start;align-self:start}.author-card dl{grid-column:1/-1}.detail-back{display:none}.detail-cover{aspect-ratio:2/1}.home-news-row{grid-template-columns:100px minmax(0,1fr)}.home-news-row>svg{display:none}}
@media(max-width:560px){.home-news-featured{padding:15px}.home-news-cover{aspect-ratio:1.8/1}.home-news-row{grid-template-columns:1fr;gap:5px;padding:14px 15px}.home-news-row time{font-size:10px}.announcement-row{grid-template-columns:88px minmax(0,1fr);gap:12px;padding:15px}.announcement-thumb{width:88px;height:82px}.announcement-arrow{display:none}.announcement-copy strong{font-size:14px}.announcement-copy>span:not(.announcement-row-label):not(.announcement-byline){font-size:11px;-webkit-line-clamp:2}.announcement-byline{font-size:9px}.staff-grid{grid-template-columns:1fr}.detail-heading{padding-top:5px}.detail-heading h1{font-size:1.85rem}.detail-heading>p{font-size:13px}#announcement-rich-content{padding:22px 19px}.announcement-rich{font-size:13px}.announcement-rich h2{font-size:21px}.announcement-rich h3{font-size:17px}.announcement-detail-footer{padding:15px 18px;font-size:8px}.rich-callout{padding:14px}.announcement-breadcrumb{margin-bottom:12px}}

/* Live server punishments: no bundled/example records. */
.punishment-hero{background:linear-gradient(110deg,color-mix(in oklab,var(--card) 90%,transparent),color-mix(in oklab,var(--card) 58%,transparent))}
.punishment-kicker{color:var(--primary);font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.13em}
.punishment-hero h1{margin-top:9px;font-family:var(--font-display);font-size:clamp(1.8rem,3.4vw,2.35rem);font-weight:750;line-height:1.1;letter-spacing:-.025em}
.punishment-hero p{max-width:65ch;margin-top:11px;color:var(--muted-foreground);font-size:14px;line-height:1.6}
.punishment-source{display:flex;align-items:center;gap:8px;margin-bottom:15px;color:var(--muted-foreground);font-size:11px}.punishment-source>span{width:7px;height:7px;border-radius:50%;background:var(--sage);box-shadow:0 0 0 3px color-mix(in oklab,var(--sage) 10%,transparent)}
.punishment-controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.punishment-controls>input{min-height:43px;min-width:220px;flex:1;padding:0 14px;border:1px solid var(--line-strong);border-radius:7px;outline:0;background:var(--card);color:var(--foreground);font-size:13px}.punishment-controls>input:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in oklab,var(--primary) 12%,transparent)}
.punishment-filters{display:flex;overflow:hidden;border:1px solid var(--line-strong);border-radius:7px;background:var(--card)}.punishment-filters button{display:inline-flex;min-height:41px;align-items:center;gap:7px;padding:0 13px;border-right:1px solid var(--line-strong);color:var(--muted-foreground);font-size:12px;transition:background .15s,color .15s}.punishment-filters button:last-child{border-right:0}.punishment-filters button:hover{color:var(--foreground)}.punishment-filters button[aria-pressed=true]{background:var(--secondary);color:var(--foreground)}.punishment-filters button span{font-family:var(--font-mono);font-size:10px}
.punishment-table-heading,.punishment-row{display:grid;grid-template-columns:minmax(0,1.2fr) 84px minmax(0,1.8fr) 128px 112px;align-items:center;gap:16px;padding:11px 16px}.punishment-table-heading{border-bottom:1px solid var(--border);background:color-mix(in oklab,var(--background) 60%,transparent);color:var(--muted-foreground);font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase}
.punishment-row{padding-top:13px;padding-bottom:13px;border-bottom:1px solid var(--border);transition:background .15s}.punishment-row:last-child{border-bottom:0}.punishment-row:hover{background:var(--secondary)}
.punishment-player{display:flex;min-width:0;align-items:center;gap:11px}.punishment-avatar{position:relative;display:grid;width:34px;height:34px;flex-shrink:0;place-items:center;overflow:hidden;border:1px solid var(--line-strong);border-radius:4px;background:var(--secondary);color:var(--muted-foreground);font-family:var(--font-display);font-size:13px;font-weight:700}.punishment-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;image-rendering:pixelated}.punishment-player>span{min-width:0}.punishment-player strong{display:block;overflow:hidden;font-size:13px;font-weight:550;text-overflow:ellipsis;white-space:nowrap}.punishment-player time{display:block;margin-top:3px;color:var(--muted-foreground);font-family:var(--font-mono);font-size:10px}
.punishment-badge{display:inline-flex;align-items:center;justify-content:center;width:max-content;padding:3px 8px;border:1px solid;border-radius:4px;font-family:var(--font-mono);font-size:9px;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap}.punishment-type{color:var(--clay);border-color:color-mix(in oklab,var(--clay) 50%,transparent);background:color-mix(in oklab,var(--clay) 9%,transparent)}.punishment-status-active{color:var(--violet-soft);border-color:color-mix(in oklab,var(--violet-soft) 50%,transparent);background:color-mix(in oklab,var(--violet-soft) 9%,transparent)}.punishment-status-expired{color:var(--muted-foreground);border-color:color-mix(in oklab,var(--muted-foreground) 40%,transparent);background:color-mix(in oklab,var(--muted-foreground) 7%,transparent)}.punishment-status-revoked{color:var(--sage);border-color:color-mix(in oklab,var(--sage) 50%,transparent);background:color-mix(in oklab,var(--sage) 9%,transparent)}
.punishment-reason{overflow:hidden;color:var(--muted-foreground);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.punishment-duration{font-family:var(--font-mono);font-size:11px}.punishment-privacy{margin-top:13px;color:var(--muted-foreground);font-size:10px;line-height:1.6}
@media(max-width:1023px){.punishment-table-heading{display:none}.punishment-row{grid-template-columns:minmax(0,1fr) auto;gap:9px 14px}.punishment-reason{grid-column:1/-1;white-space:normal}.punishment-row>.punishment-duration{font-size:10px}.punishment-row>.punishment-status{justify-self:end}}
@media(max-width:620px){.punishment-site-header>div{gap:12px;padding-right:16px;padding-left:16px}.punishment-site-header>div>a span{display:none}.punishment-site-header nav{gap:0;margin-left:auto}.punishment-site-header nav a{padding:6px 7px;font-size:11px}.punishment-controls{align-items:stretch;flex-direction:column}.punishment-controls>input{width:100%;min-width:0}.punishment-filters{width:100%}.punishment-filters button{flex:1;justify-content:center;padding:0 8px;font-size:11px}.punishment-source{align-items:flex-start;font-size:10px}.punishment-source>span{margin-top:4px;flex-shrink:0}.punishment-hero{padding-top:4px;padding-bottom:4px}}

/* Discord invite card (home sidebar) */
.discord-card{padding:20px;border:1px solid rgba(255,255,255,.09);border-radius:14px;background:linear-gradient(160deg,#1c1d23 0%,#101116 100%);box-shadow:0 20px 45px -26px rgba(0,0,0,.9)}
.discord-card-head{display:flex;align-items:center;gap:10px}
.discord-card-logo{display:grid;width:30px;height:30px;flex-shrink:0;place-items:center;border-radius:9px;background:#5865f2;color:#fff}
.discord-card-logo svg{width:19px;height:19px}
.discord-card-title{margin:0;min-width:0;overflow:hidden;color:var(--foreground);font-family:var(--font-display);font-size:17px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}
.discord-card-tag{margin-left:auto;padding:3px 7px;border:1px solid rgba(88,101,242,.4);border-radius:4px;background:rgba(88,101,242,.12);color:#a9b1ff;font-family:var(--font-mono),ui-monospace,monospace;font-size:9px;font-weight:700;letter-spacing:.08em}
.discord-card-copy{margin:15px 0 0;color:var(--muted-foreground);font-size:13.5px;line-height:1.62}
.discord-card-copy strong{color:var(--foreground);font-weight:600}
.discord-card-members{display:flex;align-items:center;gap:11px;margin-top:15px}
.discord-avatars{display:flex;align-items:center;padding-left:8px}
.discord-avatars img,.discord-avatars-more{width:30px;height:30px;margin-left:-8px;border:2px solid #17181e;border-radius:50%;object-fit:cover;image-rendering:pixelated}
.discord-avatars-more{display:grid;place-items:center;background:#5865f2;color:#fff}
.discord-avatars-more svg{width:16px;height:16px}
.discord-card-others{color:var(--muted-foreground);font-size:12.5px}
.discord-card-button{display:flex;height:42px;align-items:center;justify-content:center;gap:9px;margin-top:18px;border-radius:9px;background:#5865f2;color:#fff;font-size:14px;font-weight:700;text-decoration:none;transition:background .15s,transform .15s}
.discord-card-button:hover{background:#4752c4;transform:translateY(-1px)}
.discord-card-button svg{width:18px;height:18px}
@media(max-width:560px){.discord-card{padding:16px}}
