:root{font-family:Inter,"Segoe UI",system-ui,sans-serif;color:#ededed;background:#0a0a0a;font-synthesis:none;color-scheme:dark;font-size:14px;--bg:#0a0a0a;--surface:#111;--border:#292929;--muted:#a1a1a1;--green:#70d5a1}
*{box-sizing:border-box}
body{margin:0}
a{color:inherit}
button,input,select,textarea{font:inherit}
button{cursor:pointer;white-space:nowrap;font-size:12px;font-weight:500;padding:9px 13px;display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:36px;border:1px solid #383838;border-radius:6px;color:#ededed;background:#171717;transition:background .15s,border-color .15s}
button:hover{background:#242424;border-color:#555}
button:disabled{opacity:.4;cursor:default}
.primary{color:#0a0a0a;background:#ededed;border-color:#ededed;font-weight:600}
.primary:hover{background:#ccc;border-color:#ccc}
.quiet{background:transparent;border-color:transparent;color:var(--muted)}
.quiet:hover{color:#ededed;background:#1c1c1c;border-color:transparent}
.danger{color:#ffb2b2;background:#3a1717;border-color:#742c2c}
.danger:hover{background:#522020;border-color:#a33d3d}
input,select,textarea{color:#ededed;background:#0a0a0a;border:1px solid #383838;border-radius:6px;padding:10px 12px;min-width:0;width:100%;font-size:13px;min-height:38px}
input::placeholder,textarea::placeholder{color:#737373}
select{padding-right:30px}
textarea{resize:vertical}
label{display:grid;gap:8px;font-size:12px;color:#c3c3c3;margin:14px 0}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid #ededed;outline-offset:4px}
h1,h2,h3,p{overflow-wrap:anywhere}
h1{font-size:30px;letter-spacing:-1.1px;font-weight:600;line-height:1.25;margin:8px 0}
h2{font-size:15px;letter-spacing:-.3px;font-weight:600;margin:0}
h3{font-size:13px;font-weight:600}
p{line-height:1.65}
.muted{color:var(--muted);font-size:13px;line-height:1.7}
.small{font-size:11px}
.eyebrow{color:#898989;font-size:10px;font-weight:600;letter-spacing:1.6px;margin:0 0 8px}
.topbar{height:68px;background:#0a0a0a;border-bottom:1px solid var(--border)}
.topbar-inner{height:100%;max-width:1408px;padding:0 40px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:20px;letter-spacing:-.8px;font-weight:700}
.brand-mark{font-size:19px;display:grid;place-items:center;width:27px;height:30px;color:#0a0a0a;background:#ededed;clip-path:polygon(0 0,100% 0,100% 72%,50% 100%,0 72%)}
.slash{color:#454545;font-size:27px;font-weight:300;margin:0 8px}
.brand-project{font-size:14px;font-weight:500;letter-spacing:-.2px}
.private-label{display:flex;align-items:center;gap:8px;font-size:11px;color:#a1a1a1}
.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);flex-shrink:0}
.actions{display:flex;align-items:center;gap:12px}
.start{justify-content:flex-start}
.skip-link{position:fixed;top:12px;transform:translateY(-200%);left:16px;z-index:5;padding:12px;background:#ededed;color:#111}
.skip-link:focus{transform:translateY(0)}
main{max-width:1408px;margin:auto;padding:0 40px 30px}
#notice{font-size:12px;color:#ffcd94;overflow-wrap:anywhere;margin:0}
#notice:not(:empty){padding:13px 16px;border:1px solid #6e4522;border-radius:6px;background:#261a10;margin-top:20px}
#workspace:focus{outline:none}
.page-title{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:36px 0 28px}
.page-title .muted{margin:7px 0 0;font-size:12px}
.guild-picker{margin:0;min-width:220px}
.guild-picker span{font-size:10px;color:#8c8c8c}
.page-title>.actions{align-items:flex-end}
.page-title #refresh{margin-bottom:1px}
.tabs{display:flex;align-items:center;gap:24px;overflow:auto;border-bottom:1px solid var(--border);margin-bottom:28px;scrollbar-width:thin}
.tabs button{position:relative;border:0;border-radius:0;background:transparent;color:#949494;padding:13px 0 16px;gap:7px;font-size:12px;min-height:48px}
.tabs button:hover{color:#ededed}
.tabs button.active{color:#ededed}
.tabs button.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:#ededed}
.tabs svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:24px;min-width:0}
.section-intro,.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
.section-intro{margin-bottom:20px}
.section-intro h2{font-size:20px;letter-spacing:-.5px}
.section-intro p{margin:5px 0 0}
.section-heading{margin-bottom:18px}
.section-heading p{margin:7px 0 0}
.badge{font-size:10px;font-weight:500;line-height:1.5;padding:4px 9px;color:#bbb;background:#1b1b1b;border:1px solid #333;border-radius:5px;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.badge.online{color:#8cdbaf;background:#112a1d;border-color:#235038}
.badge.offline{color:#999}
.badge.warning{color:#efc382;background:#2c2112;border-color:#60451e}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}
.stats .card{padding:20px}
.stat-label{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}
.stat-label p{font-size:12px;color:#b4b4b4;margin:0}
.stat-label img{object-fit:contain;image-rendering:pixelated;opacity:.9}
.stats strong{font-weight:550;font-size:29px;letter-spacing:-.9px;display:block;line-height:1.3;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.stats .date-value{font-size:18px;letter-spacing:-.3px;line-height:1.55}
.stats small{font-size:10px;color:#888;display:block;margin-top:10px;line-height:1.7}
.overview-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);gap:24px;margin-bottom:24px}
.lower-grid{grid-template-columns:1fr 1fr}
.activity-chart{height:auto;aspect-ratio:600/180;width:100%;margin-top:20px}
.activity-chart svg{display:block;width:100%;height:100%;overflow:visible}
.chart-grid{stroke:#252525;stroke-width:1;stroke-dasharray:3 5}
.chart-bar{fill:#e5e5e5}
.chart-bar:last-of-type{fill:#9cddbb}
.chart-text{fill:#858585;font:10px Inter,"Segoe UI",sans-serif}
.chart-legend{display:flex;justify-content:space-between;color:#777;font-size:10px;margin-top:18px}
.chart-legend>span{display:flex;align-items:center;gap:7px}
.legend-dot{width:6px;height:6px;background:#ddd;border-radius:50%;display:inline-block}
.castle-preview{position:relative;display:flex;flex-direction:column;align-items:stretch;overflow:hidden;background:radial-gradient(ellipse at 50% 60%,#20251e 0%,#111 67%)}
.castle-preview .section-heading{margin-bottom:0}
.castle-art{height:156px;display:flex;align-items:center;justify-content:center;position:relative;isolation:isolate}
.castle-art:before{content:"";position:absolute;width:150px;height:80px;bottom:16px;border:1px solid #30372d;border-radius:50%;transform:rotateX(55deg);background:radial-gradient(ellipse,#2b3522,transparent);z-index:-1}
.castle-art .sprite{transform:scale(1.75);transform-origin:center}
.castle-preview p{margin:0 0 12px;text-align:center;font-size:11px}
.castle-preview>.quiet{align-self:center}
.sprite{display:inline-block;width:64px;height:64px;image-rendering:pixelated;background-repeat:no-repeat;background-size:384px 64px;flex-shrink:0}
.sprite-castle{background-image:url('/assets/castle.png')}
.sprite-vault{background-image:url('/assets/vault.png')}
.sprite-collector{background-image:url('/assets/collector.png')}
.sprite-codex{background-image:url('/assets/codex.png')}
.sprite-heart{background-image:url('/assets/heart.png')}
.sprite-training{background-image:url('/assets/training.png')}
.sprite-trinket{background-image:url('/assets/trinket.png')}
.sprite.sprite-ziggurat{background-image:url('/assets/ziggurat.png');background-size:48px 48px;background-position:center}
.sprite.sprite-mirror{background-image:url('/assets/mirror.png');background-size:64px 64px;background-position:center}
.level-0{background-position:0 0}
.level-1{background-position:-64px 0}
.level-2{background-position:-128px 0}
.level-3{background-position:-192px 0}
.level-4{background-position:-256px 0}
.level-5{background-position:-320px 0}
.vocations{display:grid;gap:18px;margin:25px 0}
.vocation-row .row-label{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;font-size:12px}
.with-icon{display:flex;align-items:center;gap:14px;min-width:0}
.vocation-row img,.member-cell img{image-rendering:pixelated;width:18px;height:18px;object-fit:contain}
.row-label .with-icon{gap:9px}
.row-label>span:last-child{color:#969696;font-variant-numeric:tabular-nums}
meter{display:block;width:100%;height:5px;border:none;background:#292929;border-radius:5px}
meter::-webkit-meter-bar{background:#292929;border:none;height:5px}
meter::-webkit-meter-optimum-value{background:#a1a1a1;border-radius:5px}
meter::-moz-meter-bar{background:#a1a1a1;border-radius:5px}
.recent-row{display:flex;align-items:center;gap:12px;border-bottom:1px solid #242424;padding:14px 0;font-size:12px}
.recent-row:last-child{border:0}
.recent-row .status-dot{background:#777}
.recent-row p{margin:0}
.recent-row small{display:block;color:#858585;font-size:10px;margin-top:4px}
.recent-row>span:last-child{margin-left:auto;color:#8b8b8b;font-size:11px;white-space:nowrap}
.gb-callout{display:flex;align-items:center;justify-content:space-between;gap:24px}
.gb-callout .muted{margin:5px 0 0;font-size:12px}
.icon-tile{width:46px;height:46px;display:grid;place-items:center;background:#1c1c1c;border:1px solid #343434;border-radius:8px;flex-shrink:0}
.icon-tile img{image-rendering:pixelated;object-fit:contain}
.table-wrap{overflow:auto;max-width:100%;scrollbar-width:thin}
table{min-width:680px;width:100%;border-collapse:collapse;text-align:left;font-size:12px}
th{font-size:10px;letter-spacing:.4px;color:#888;font-weight:500;padding:14px 12px;border-top:1px solid #292929;border-bottom:1px solid #292929;white-space:nowrap;background:#141414}
td{padding:16px 12px;border-bottom:1px solid #252525;max-width:320px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover{background:#151515}
td button{min-height:30px;padding:6px 10px;font-size:11px}
.member-cell{display:flex;align-items:center;gap:10px;font-weight:500}
.member-cell .member-icon{display:grid;place-items:center;width:30px;height:30px;border:1px solid #333;border-radius:6px;background:#1c1c1c;flex-shrink:0}
.inactive{color:#777}
.data-card .section-heading{margin-bottom:20px}
.pagination{display:flex;justify-content:flex-end;align-items:center;gap:16px;padding-top:18px;font-size:12px;color:#999}
.inline-form{display:flex;align-items:end;gap:14px;flex-wrap:wrap}
.inline-form label{flex:1;min-width:150px}
.inline-form button{margin-bottom:14px}
details{margin-bottom:20px}
summary{cursor:pointer;font-size:13px;font-weight:500;line-height:1.7}
details[open]>summary{padding-bottom:12px}
details>summary::marker{color:#777}
.gb-forms{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}
.gb-forms details{margin:0 0 24px}
.gb-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.gb-section{margin-top:24px}
.gb-summary{font-size:14px;line-height:1.8;padding:16px;background:#1a1a1a;border:1px solid #333;border-radius:6px;color:#ededed}
#gb-accounts table{min-width:1080px}
#gb-panel th,#gb-panel td{vertical-align:top}
#gb-panel .inline-form{margin:12px 0}
.buildings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.building-card .building-art{height:128px;display:grid;place-items:center;border-bottom:1px solid #252525;margin:-8px 0 20px;background:radial-gradient(ellipse at 50% 70%,#24281e,transparent 60%)}
.building-art .sprite{transform:scale(1.4)}
.building-card .section-heading{gap:10px}
.building-card dl{display:grid;gap:12px;margin:18px 0 0}
.building-card dl>div{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:11px}
.building-card dt{color:#8f8f8f}
.building-card dd{margin:0;text-align:right}
.building-card .building-key{color:#666;font-family:monospace;font-size:10px;margin:16px 0 0}
.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:24px 0}
.detail-grid dt{font-size:11px;color:#888;margin-bottom:8px}
.detail-grid dd{font-size:13px;margin:0;overflow-wrap:anywhere}
.settings-card,.danger-zone{margin-top:24px}
.settings-card .section-heading,.danger-zone .section-heading{margin-bottom:0}
.danger-zone{border-color:#5c2626}
.danger-zone h2{color:#ffb2b2}
.danger-zone>p{border-top:1px solid #392121;padding-top:16px;margin-bottom:0}
.key-result{margin-top:24px;border-top:1px solid #333;padding-top:16px}
.key-result input,.connection-fields input{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}
.pairing-card{margin:24px 0;border-color:#505050}
.connection-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}
#connections-panel>.data-card{margin-top:24px}
.empty-state{text-align:center;padding:55px 24px}
.empty-state h2{font-size:22px;letter-spacing:-.5px}
.empty-art{display:grid;place-items:center;height:100px;margin-bottom:20px}
.empty-art .sprite{transform:scale(1.6)}
.empty-state .primary{margin-top:12px}
.login{max-width:430px;margin:8vh auto;padding:36px}
.login h1{font-size:35px;letter-spacing:-1.3px;line-height:1.2;margin:12px 0}
.login>.muted{margin-bottom:28px}
.login-art{height:86px;display:flex;align-items:center;margin-bottom:24px}
.login-art .sprite{transform:scale(1.4);transform-origin:left center}
.login .primary{width:100%;margin-top:8px;justify-content:space-between}
.login-foot{color:#6f6f6f;font-size:10px;margin:24px 0 0}
.footnote{display:flex;justify-content:space-between;gap:20px;color:#666;font-size:10px;border-top:1px solid #242424;margin-top:36px;padding-top:24px;line-height:1.7}
.footer-brand{font-size:12px;font-weight:550;color:#8c8c8c;white-space:nowrap}
dialog{color:#ededed;background:#111;border:1px solid #393939;border-radius:12px;padding:28px;width:min(460px,calc(100% - 32px));max-height:calc(100% - 40px);overflow:auto;box-shadow:0 20px 90px #0009}
dialog::backdrop{background:#000b;backdrop-filter:blur(4px)}
dialog h2{font-size:22px;letter-spacing:-.5px;margin:16px 0}
dialog label{display:block;line-height:1.7}
dialog label strong{font-weight:650;color:#ededed}
.danger-icon{display:grid;place-items:center;color:#ff9494;border:1px solid #763737;background:#341b1b;border-radius:50%;width:34px;height:34px;font-size:20px}
.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}
.form-error{color:#ff9494;font-size:12px;margin:10px 0 0;min-height:18px}
[hidden]{display:none!important}
@media(min-width:1400px){.tabs{gap:30px}
}
@media(max-width:1100px){.tabs{gap:20px}
.stats{grid-template-columns:repeat(2,minmax(0,1fr))}
.buildings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){.topbar-inner{padding:0 24px}
main{padding:0 24px 24px}
.page-title{align-items:flex-start;flex-direction:column;gap:20px}
.page-title>.actions{width:100%}
.guild-picker{flex:1}
.overview-grid,.lower-grid,.gb-forms{grid-template-columns:1fr}
.gb-fields{grid-template-columns:1fr 1fr}
.castle-art{height:170px}
.section-heading{align-items:flex-start;flex-wrap:wrap}
.connection-fields{grid-template-columns:1fr;gap:0}
.gb-callout{align-items:flex-start;flex-direction:column}
.detail-grid{grid-template-columns:1fr}
.buildings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.section-intro{align-items:flex-start}
.private-label{display:none}
}
@media(max-width:560px){.chart-text{font-size:17px}
.topbar{height:60px}
.topbar-inner{padding:0 18px}
.brand{gap:9px;font-size:18px}
.slash{margin:0 3px}
.brand-project{font-size:12px}
main{padding:0 16px 24px}
.page-title{padding-top:26px}
.page-title h1{font-size:27px}
.guild-picker{min-width:0}
.page-title>.actions{gap:8px}
.page-title #refresh{font-size:11px;padding:9px}
.tabs{margin-bottom:24px;gap:22px}
.tabs button{padding-top:10px;font-size:11px}
.card{padding:20px}
.stats{gap:12px}
.stats .card{padding:16px}
.stats strong{font-size:22px}
.stats .date-value{font-size:14px}
.stat-label p{font-size:11px}
.stats small{font-size:9px}
.stat-label{gap:8px;margin-bottom:14px}
.stats .stat-label img{max-width:18px;max-height:18px}
.overview-grid,.lower-grid{gap:20px;margin-bottom:20px}
.section-intro h2{font-size:18px}
.section-intro>.badge{font-size:9px}
.section-intro .muted{font-size:12px}
.section-heading{gap:12px}
.section-heading h2{font-size:14px}
.buildings-grid{grid-template-columns:1fr;gap:16px}
.gb-fields{grid-template-columns:1fr;gap:0}
.gb-summary{padding:12px;font-size:12px}
.gb-forms{gap:0}
.footnote{flex-direction:column;gap:8px}
.login{padding:28px;margin:35px auto}
.login h1{font-size:32px}
.with-icon{gap:12px}
.icon-tile{width:38px;height:38px}
.dialog-actions{flex-direction:column-reverse}
.dialog-actions button{width:100%}
dialog{padding:24px}
.danger-zone .section-heading>button{width:100%}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}
}

.member-contacts{display:grid;gap:6px;min-width:150px;font-size:12px}
#person-dialog{width:min(640px,calc(100vw - 32px));max-height:90dvh;overflow:auto}
#person-dialog fieldset{border:1px solid var(--border);border-radius:8px;padding:16px;margin:8px 0 16px;min-width:0}
#person-dialog legend{font-size:12px;padding:0 6px;color:#bdbdbd}
#person-members{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-height:260px;overflow:auto}
.person-member{display:flex;align-items:center;gap:10px;margin:0;padding:10px;border:1px solid #2a2a2a;border-radius:6px;cursor:pointer;font-size:12px;min-width:0}
.person-member:has(input:checked){border-color:#4d7960;background:#112219}
.person-member input{width:16px;height:16px;flex-shrink:0;margin:0;accent-color:#88d6a9}
.person-member span{overflow-wrap:anywhere}
.person-member small{display:block;color:#989898;font-size:10px;margin-top:3px}
.gb-summary-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0}
.gb-summary-card{display:flex;align-items:flex-start;flex-direction:column;padding:16px;gap:14px;min-width:0;text-align:left;white-space:normal}
.gb-card-label{font-size:11px;font-weight:500}
.gb-card-count{font-size:28px;line-height:1;font-weight:650;font-variant-numeric:tabular-nums}
.tone-danger{color:#ff9c9c;background:#2b1518;border-color:#623038}
.tone-warning{color:#f3d18e;background:#2b2314;border-color:#61502c}
.tone-success{color:#98e4b5;background:#11251a;border-color:#2e563e}
.tone-muted{color:#aaa;background:#1b1b1b;border-color:#3a3a3a}
.gb-summary-card:hover{filter:brightness(1.18)}
.gb-status{display:inline-flex;align-items:center;gap:7px;border-width:1px;border-style:solid;border-radius:20px;padding:5px 9px;font-size:10px;font-weight:600;white-space:nowrap}
.gb-status:before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0}
.gold-positive,.text-success{color:#98e4b5}
.gold-negative,.text-danger{color:#ff9c9c}
.text-warning{color:#f3d18e}
.gold-neutral,.text-muted{color:#999}
.gold-positive,.gold-negative{font-weight:650}
.gb-account-name{font-weight:600;display:block}
.gb-account-name small,.gb-due small{display:block;font-size:10px;font-weight:400;color:#aaa;margin-top:5px}
.gb-account-row.is-danger{background:#1a1012}
.gb-account-row.is-warning{background:#19170f}
.gb-account-row.is-success{background:#0f1712}
.gb-account-row.is-muted{color:#aaa}
.gb-account-row td:first-child{border-left:3px solid transparent}
.gb-account-row.is-danger td:first-child{border-left-color:#d96565}
.gb-account-row.is-warning td:first-child{border-left-color:#d7b163}
.gb-account-row.is-success td:first-child{border-left-color:#65ad7f}
.gb-account-row.is-muted td:first-child{border-left-color:#555}
@media(max-width:700px){
.gb-summary-cards{grid-template-columns:1fr 1fr;gap:10px}
#gb-accounts table,#gb-accounts tbody{display:block;min-width:0}
#gb-accounts thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
#gb-accounts .gb-account-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border:1px solid #303030;border-left-width:3px;border-radius:8px;margin-top:12px;padding:12px;gap:10px}
#gb-accounts .is-danger{border-left-color:#d96565}
#gb-accounts .is-warning{border-left-color:#d7b163}
#gb-accounts .is-success{border-left-color:#65ad7f}
#gb-accounts td{display:block;border:0;padding:5px;max-width:none;min-width:0}
#gb-accounts td:before{content:attr(data-label);display:block;font-size:8px;letter-spacing:.4px;color:#aaa;margin-bottom:6px}
#gb-accounts td:first-child{grid-column:1/-1;border-left:0;font-size:14px}
#gb-accounts td:first-child:before,#gb-accounts td:last-child:before{display:none}
#gb-accounts td:last-child{align-self:end;text-align:right}
#person-members{grid-template-columns:1fr}
}

.gb-summary-card[aria-pressed=true]{outline:2px solid currentColor;outline-offset:2px}
.member-contacts a{text-decoration:underline;text-underline-offset:3px}
