/* Extend the existing site tokens. Background, navigation and typography remain site-owned. */
.ui-page [hidden]{display:none!important}
.ui-page>main{padding-bottom:26px}
.ui-page h1{font-size:22px;font-weight:800;line-height:1.4;margin:0;color:var(--text)}
.ui-page h2{font-size:15px;font-weight:750;line-height:1.5;margin:0;color:var(--text)}
.ui-page h3{font-size:15px;font-weight:750;line-height:1.5;margin:0}
.ui-page p{margin:0}
.ui-page button,.ui-page input,.ui-page select,.ui-page textarea{font-family:inherit}
.ui-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:9px 15px;border-radius:12px;border:1px solid var(--border);background:rgba(255,255,255,.85);color:var(--text);font-size:13px;line-height:20px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s}
.ui-button:hover{background:#fff;border-color:rgba(17,24,39,.2)}
.ui-primary{background:rgba(16,185,129,.12);border-color:rgba(16,185,129,.22);color:#087f61}
.ui-primary:hover{background:rgba(16,185,129,.2);border-color:rgba(16,185,129,.35)}
.ui-button:disabled{opacity:.5;cursor:wait}
.ui-text-button{border:0;background:none;padding:0;font:inherit;font-size:12px;color:#528075;cursor:pointer}
.ui-text-button:hover{text-decoration:underline}
.ui-danger{color:#b91c1c!important}
.ui-page :is(input,select,textarea):focus{border-color:rgba(16,185,129,.5);box-shadow:0 0 0 3px rgba(16,185,129,.08);outline:none}
.ui-page :is(a,button):focus-visible{outline:2px solid var(--brand);outline-offset:3px}
.ui-page input:not([type=hidden]):not([type=checkbox]),.ui-page select,.ui-page textarea{width:100%;min-width:0;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.95);color:var(--text);padding:11px 13px;font-size:13px;line-height:1.5}
.ui-page textarea{resize:vertical;min-height:120px}
.ui-page input::placeholder,.ui-page textarea::placeholder{color:#9ca3af}
.ui-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ui-muted{font-size:12px;font-weight:400;color:var(--muted)}
.ui-heading{margin:0 0 24px}
.ui-section-heading{display:flex;align-items:center;justify-content:space-between;padding-bottom:14px;border-bottom:1px solid var(--border)}
.ui-section-heading h2 span,.profile-servers h2 span{margin-left:7px;font-size:12px;font-weight:500;color:var(--muted)}
.ui-meta{display:flex;align-items:center;gap:7px 14px;flex-wrap:wrap;font-size:12px;line-height:1.6;color:var(--muted)}
.ui-meta a:hover{color:#059669}
.ui-empty{padding:46px 16px;text-align:center;color:#9ca3af;font-size:13px}
.ui-empty-inline{font-size:12px;color:#9ca3af}
.ui-error{font-size:12px;color:#b91c1c;margin-top:10px!important}
.ui-error:empty{display:none}
.ui-form{display:grid;gap:22px}
.ui-field{display:grid;gap:9px;min-width:0}
.ui-field>label{font-size:13px;font-weight:600}
.ui-field>label>.ui-muted{margin-left:7px}
.ui-form-actions{display:flex;align-items:center;gap:10px}
.ui-narrow{max-width:760px;margin:24px auto 0;padding:24px;background:rgba(255,255,255,.85);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}
.ui-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-size:12px;color:var(--muted);margin-bottom:20px}
.ui-pagination{margin-top:18px}
/* Profile: identity first, then a compact server list beside the posts. */
.profile-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:18px;margin-top:24px;align-items:start}
.profile-summary{grid-column:1/-1;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:26px;background:rgba(255,255,255,.85);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}
.profile-identity{min-width:0}
.profile-identity h1{overflow-wrap:anywhere;margin-bottom:10px}
.profile-role{color:#059669}
.profile-identity .profile-bio{margin-top:16px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.8}
.profile-servers,.profile-main{min-width:0;background:rgba(255,255,255,.85);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}
.profile-servers h2{margin-bottom:13px}
.profile-servers>a{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding:12px 0;font-size:13px;line-height:1.5;border-bottom:1px solid rgba(17,24,39,.06)}
.profile-servers>a:last-child{border-bottom:0;padding-bottom:0}
.profile-servers>a>span{overflow-wrap:anywhere}
.profile-servers small{font-size:11px;color:var(--muted);white-space:nowrap}
.profile-post{padding:18px 0;border-bottom:1px solid rgba(17,24,39,.06)}
.profile-post:last-child{border-bottom:0;padding-bottom:0}
.profile-post h3{margin-bottom:8px;overflow-wrap:anywhere}
.profile-post a:hover{color:#059669}
/* Chat: the same translucent panel and input family as server chat. */
.chat-room{display:flex;flex-direction:column;height:calc(100dvh - 120px);max-height:820px;min-height:380px;margin:24px auto 0;padding:22px;background:rgba(255,255,255,.85);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}
.chat-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-bottom:18px;flex-shrink:0}
.chat-status{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted)}
.chat-status:before{content:'';width:6px;height:6px;border-radius:50%;background:#c1c7c4}
.chat-status[data-state=connected]:before{background:var(--brand)}
.chat-status[data-state=error]:before{background:var(--warn)}
.chat-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;border:1px solid rgba(17,24,39,.06);border-radius:12px;background:rgba(17,24,39,.025);padding:10px 16px 18px;scrollbar-gutter:stable}
.chat-history{text-align:center}
.chat-history:has(button:not([hidden])){padding:8px 0}
.chat-day{display:flex;align-items:center;gap:14px;color:#9ca3af;font-size:11px;margin:12px 0}
.chat-day:before,.chat-day:after{content:'';height:1px;background:rgba(17,24,39,.06);flex:1}
.chat-message{padding:12px 14px;margin:8px 0;border-radius:12px;background:rgba(255,255,255,.8);border:1px solid rgba(17,24,39,.045)}
.chat-message.is-own{background:rgba(16,185,129,.07);border-color:rgba(16,185,129,.1)}
.chat-message-meta{display:flex;align-items:center;gap:10px;font-size:12px}
.chat-message-meta>a{font-weight:700;overflow-wrap:anywhere}
.chat-message-meta time{font-size:11px;color:#9ca3af}
.chat-role{font-size:10px;color:#059669}
.chat-message-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.8;margin-top:6px}
.chat-message.is-deleted .chat-message-text{color:#9ca3af;font-size:12px}
.chat-compose{display:flex;gap:10px;align-items:flex-end;padding-top:14px;flex-shrink:0}
.ui-page .chat-compose textarea{height:42px;min-height:42px;max-height:130px;resize:none}
.chat-compose .ui-button{height:42px;min-width:76px;flex-shrink:0}
.chat-count{font-size:11px;white-space:nowrap;color:var(--muted);padding-bottom:12px}
.chat-guest{display:flex;justify-content:center;align-items:center;gap:20px;padding-top:16px}
.chat-moderation{position:relative;margin-left:auto}
.chat-moderation>summary{list-style:none;cursor:pointer;color:#9ca3af;padding:0 5px;font-size:18px}
.chat-moderation>summary::-webkit-details-marker{display:none}
.chat-moderation-menu{position:absolute;right:0;top:24px;z-index:5;border:1px solid var(--border);border-radius:12px;background:#fff;padding:6px;min-width:132px;box-shadow:var(--shadow)}
.chat-moderation-menu button{display:block;width:100%;padding:8px;text-align:left;white-space:nowrap}
.chat-messages .ui-empty{padding-top:16vh}
/* Key: one focused self-service surface, not an admin dashboard. */
.key-layout{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:32px;max-width:920px;margin:28px auto 0;padding:28px;background:rgba(255,255,255,.85);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}
.key-main{min-width:0}
.key-fields{display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:12px}
.key-requirements{padding:18px;border:1px solid rgba(59,130,246,.1);border-radius:12px;background:rgba(59,130,246,.035);align-self:start;margin-top:55px}
.key-requirements h2{font-size:13px;margin-bottom:12px}
.key-requirements p{font-size:12px;line-height:1.8;color:var(--muted);margin-bottom:12px}
.key-requirements p:last-child{margin:0}
.key-output{background:rgba(16,185,129,.06);border:1px solid rgba(16,185,129,.15);border-radius:12px;padding:16px;margin-bottom:22px}
.key-output h2{font-size:14px;color:#059669;margin-bottom:12px}
.key-copy-row{display:flex;gap:8px}
.ui-page .key-copy-row input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;min-width:0}
.key-output p{font-size:12px;color:var(--muted);line-height:1.8;margin:12px 0 8px}
/* Forum: full-width search and category controls above a single topic panel. */
.forum-layout{display:flex;flex-direction:column;background:rgba(255,255,255,.85);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}
.forum-sections{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:20px}
.forum-sections>a{display:flex;align-items:center;gap:9px;padding:8px 12px;font-size:13px;color:var(--muted);border:1px solid transparent;border-radius:10px}
.forum-sections>a.selected{background:rgba(16,185,129,.08);border-color:rgba(16,185,129,.14);color:#059669;font-weight:650}
.forum-sections>a:hover{background:rgba(17,24,39,.025)}
.forum-sections small{font-size:11px;opacity:.7}
.forum-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}
.forum-find{display:flex;gap:8px;max-width:420px;flex:1}
.ui-page .forum-find input{height:38px;padding:8px 12px}
.forum-find button{width:38px;height:38px;padding:0;min-width:38px}
.forum-bind-note{max-width:270px;font-size:12px}
.forum-list-labels,.forum-topic{display:grid;grid-template-columns:minmax(0,1fr) 65px 65px;column-gap:18px;align-items:center}
.forum-list-labels{padding:10px 14px;background:rgba(17,24,39,.025);border-radius:10px;font-size:11px;color:var(--muted)}
.forum-list-labels>span:not(:first-child){text-align:center}
.forum-topic{padding:20px 14px;border-bottom:1px solid rgba(17,24,39,.065)}
.forum-topic:last-child{border-bottom:0}
.forum-topic-main{min-width:0}
.forum-topic h2{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;font-size:15px;line-height:1.55;overflow-wrap:anywhere}
.forum-topic h2>a:hover{color:#059669}
.forum-excerpt{font-size:12px;color:var(--muted);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden;overflow-wrap:anywhere;margin:7px 0!important;line-height:1.65}
.forum-topic .ui-meta{font-size:11px;gap:5px 13px;margin-top:8px}
.forum-topic .ui-text-button{font-size:11px}
.topic-state{color:#059669;font-size:10px;white-space:nowrap}
.topic-state.muted{color:#9ca3af}
.forum-count{text-align:center;font-size:12px;color:var(--muted)}
.forum-count strong{font-size:14px;font-weight:650;color:#5d6978}
.forum-count>span{display:none}
/* Reading and writing share the existing rounded surface. */
.topic-layout{max-width:900px;margin:24px auto 0;background:rgba(255,255,255,.85);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:26px}
.topic-header{padding-bottom:20px;border-bottom:1px solid var(--border)}
.topic-header h1{overflow-wrap:anywhere;margin-bottom:12px}
.topic-body{font-size:14px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;padding:24px 0}
.topic-image{display:block;max-width:100%;max-height:700px;object-fit:contain;border-radius:12px;margin-bottom:20px}
.topic-actions{display:flex;gap:18px;align-items:center;padding-bottom:20px}
.topic-replies{padding-top:12px}
.topic-reply{padding:18px 0;border-bottom:1px solid rgba(17,24,39,.06)}
.topic-reply .topic-body{padding:10px 0 0;font-size:13px}
.reply-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}
.reply-actions{display:flex;gap:12px;flex-shrink:0}
.reply-compose{padding-top:22px;display:grid;gap:12px}
.reply-compose .ui-button{justify-self:start}
.ui-page .topic-editor textarea{min-height:280px}
.topic-editor .ui-field:first-of-type{max-width:240px}
.ui-page .topic-editor input[type=file]{border:0;background:transparent;padding:0;font-size:12px}
.topic-editor input[type=file]::file-selector-button{border:1px solid var(--border);background:rgba(255,255,255,.85);border-radius:10px;padding:9px 12px;margin-right:12px;font:inherit;cursor:pointer}
@media(max-width:800px){.profile-layout{grid-template-columns:210px minmax(0,1fr);gap:14px}.key-layout{grid-template-columns:minmax(0,1fr) 210px;gap:22px;padding:22px}.key-fields{grid-template-columns:minmax(0,1fr) 88px}.forum-list-labels,.forum-topic{grid-template-columns:minmax(0,1fr) 46px 46px;gap:12px}}
@media(max-width:600px){.ui-page h1{font-size:20px}.profile-layout{display:flex;flex-direction:column;margin-top:18px;gap:14px}.profile-summary,.profile-servers,.profile-main{width:100%;padding:18px}.profile-summary{gap:12px;flex-wrap:wrap}.profile-identity h1{font-size:21px}.profile-summary>.ui-button{font-size:12px;min-height:34px;padding:6px 12px}.profile-servers>a{padding:10px 0}.ui-meta{font-size:11px}.chat-room{padding:14px;margin-top:16px;height:calc(100dvh - 106px);min-height:360px;border-radius:14px}.chat-heading{padding:2px 2px 14px}.chat-status{font-size:11px}.chat-scroll{padding:6px 8px 12px}.chat-message{padding:10px;margin:7px 0}.chat-role{display:none}.chat-compose{gap:8px;padding-top:12px}.chat-compose .ui-button{min-width:58px;padding:8px 12px}.ui-page .chat-compose textarea{font-size:16px;padding:9px 10px}.chat-count{display:none}.key-layout{display:flex;flex-direction:column;padding:20px;margin-top:18px;gap:22px}.key-requirements{margin-top:0;padding:14px}.key-fields{grid-template-columns:minmax(0,1fr) 85px;gap:10px}.key-output{padding:13px}.key-copy-row .ui-button{padding:8px 12px}.ui-narrow,.topic-layout{padding:18px;margin-top:18px}.ui-heading{margin-bottom:22px}.ui-page .ui-field input,.ui-page .ui-field textarea,.ui-page .ui-field select{font-size:16px}.forum-layout{padding:14px}.forum-sections{flex-wrap:nowrap;overflow-x:auto;gap:4px;white-space:nowrap;padding-bottom:6px;margin-bottom:14px}.forum-sections>a{padding:7px 9px;font-size:12px;gap:5px}.forum-toolbar{gap:10px;flex-wrap:wrap}.forum-find{max-width:none;min-width:0}.forum-toolbar>.ui-button{padding:8px 12px}.forum-bind-note{max-width:none;flex-basis:100%}.ui-page .forum-find input{font-size:16px}.forum-list-labels{display:none}.forum-topic{padding:17px 2px;grid-template-columns:minmax(0,1fr) 34px;gap:10px}.forum-topic>.forum-count:last-child{display:none}.forum-count>span{display:block;font-size:10px;margin-top:2px;color:#9ca3af}.forum-topics{border-top:1px solid var(--border)}.forum-topic h2{font-size:14px}.topic-header h1{font-size:20px;line-height:1.6}.reply-heading{align-items:flex-start}.reply-actions{gap:10px}.reply-actions button{font-size:11px}.topic-body{padding:20px 0}.ui-page .topic-editor textarea{min-height:240px}}
@media(prefers-reduced-motion:reduce){.ui-button{transition:none}}
