:root{color-scheme:dark;--bg:#141b1a;--panel:#1b2421;--border:#344039;--cream:#f3ebd2;--muted:#a1afa3;--green:#bdd988;--gold:#e7bb72}
.xp-ranges{display:flex;flex-wrap:wrap;gap:7px;margin:6px 0 15px}.xp-ranges button{padding:7px 13px;background:#141d18;border:1px solid var(--border);color:var(--muted);font-size:12px}.xp-ranges button[aria-pressed=true]{color:#1b2519;background:var(--green);border-color:var(--green)}.xp-chart-wrap{width:100%;overflow:hidden}#xp-chart{display:block;width:100%;height:auto;min-height:180px}.xp-gridline{stroke:var(--border);stroke-width:1}.xp-axis{fill:var(--muted);font:11px "Segoe UI",sans-serif}.xp-line{stroke-linejoin:round;stroke-linecap:round}.xp-legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;padding:0;list-style:none;margin:15px 0}.xp-rank{background:#141d18;border:1px solid var(--border);border-radius:8px;padding:12px;display:grid;grid-template-columns:10px 1fr;gap:3px 8px;align-items:center;font-size:12px}.xp-swatch{display:block;width:9px;height:9px;border-radius:50%}.xp-rank b,.xp-rank small{grid-column:2}.xp-rank b{font-size:18px;color:var(--cream);font-weight:500}.xp-rank small{font-size:10px;color:var(--muted)}
.clan-logo{display:block;width:155px;height:auto;margin:-14px auto 0}.bank-toolbar{display:flex;justify-content:space-between;background:#3e3529;border:2px solid #73604a;border-bottom:0;border-radius:8px 8px 0 0;padding:10px 16px;color:#edcf8b;font:14px Georgia,serif}.bank-vault{background:#463c2d;border:2px solid #73604a;border-radius:0 0 8px 8px;padding:12px 16px;max-height:550px;overflow:auto;box-shadow:inset 0 0 22px #0005}.bank-owner+.bank-owner{border-top:1px solid #76634b;margin-top:18px;padding-top:12px}.bank-owner-heading{display:flex;justify-content:space-between;gap:12px;margin:0 0 12px;color:#f1d89d;font-size:12px}.bank-owner-heading span{font-size:10px;color:#c3b292}.bank-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:7px;align-items:start}.bank-slot{position:relative;display:flex;align-items:center;justify-content:center;height:56px;padding:0;min-width:0;background:#342e2455;border:1px solid #73604455;border-radius:3px;overflow:visible;color:#ffff00}.bank-slot:hover,.bank-slot:focus-visible{background:#61513a;outline:1px solid #d5b67c;filter:none;z-index:3}.item-sprite{width:36px;height:32px;object-fit:contain;image-rendering:pixelated;pointer-events:none}.stack-quantity{position:absolute;top:1px;left:3px;color:#ffff00;font:12px/1.2 Consolas,monospace;text-shadow:1px 1px #000,-1px -1px #000;pointer-events:none}.stack-quantity.thousands{color:white}.stack-quantity.millions{color:#00ff80}.item-tooltip{display:none;position:absolute;bottom:calc(100% + 5px);left:0;white-space:pre-line;text-align:left;width:max-content;max-width:210px;padding:7px 10px;background:#17140ff5;color:#ffdf91;border:1px solid #aa9564;border-radius:3px;font-size:11px;font-weight:400;pointer-events:none;box-shadow:0 4px 10px #0005}.bank-slot:hover .item-tooltip,.bank-slot:focus-visible .item-tooltip{display:block}.icon-missing{font-size:8px;line-height:1.2;color:#d0c4aa;padding:5px;font-weight:400}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--cream);font:14px/1.6 "Segoe UI",sans-serif}button,input,select{font:inherit}button,a,input,select{outline-offset:4px}button{cursor:pointer;background:var(--green);border:0;border-radius:8px;padding:12px 19px;font-weight:650;color:#1b2519}button:hover{filter:brightness(1.09)}button:disabled{opacity:.6;cursor:wait}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.rail{width:230px;position:fixed;inset:0 auto 0 0;background:#111815;border-right:1px solid var(--border);padding:36px 26px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:14px;font-size:23px;font-weight:850;line-height:1.05;letter-spacing:2px}.brand-small{display:block;font-size:12px;letter-spacing:3.2px;margin-top:8px}.bowl{display:block;width:45px;height:24px;border-radius:3px 3px 28px 28px;background:var(--cream);position:relative;transform:rotate(-8deg)}.bowl:before{content:"";position:absolute;left:2px;right:2px;top:-7px;height:10px;border-radius:50%;background:var(--gold)}.rail-label{font-size:10px;letter-spacing:2px;color:var(--muted);margin:65px 0 20px}nav{display:grid;gap:9px}nav a{font-size:11px;padding:11px 9px;border-radius:7px;color:var(--muted);white-space:nowrap}nav a span{font-size:13px;margin-left:12px}nav a:hover,nav a.active{background:#243021;color:var(--green)}.rail-foot{margin-top:auto;color:var(--muted);font-size:9px;letter-spacing:1px}.rail-foot small{font-size:10px;letter-spacing:0}.lock-dot{display:inline-block;width:6px;height:6px;background:var(--green);border-radius:50%;margin-right:5px}main{margin-left:230px;padding:0 40px 30px;max-width:1800px}.topbar{height:80px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:2px;color:var(--muted)}.slash{padding:0 12px;color:#61705d}.quiet{background:transparent;color:var(--green);border:1px solid var(--border);font-size:12px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:var(--green)}h1{font-family:Georgia,serif;font-size:clamp(36px,4vw,60px);font-weight:400;line-height:1.12;margin:13px 0 14px;letter-spacing:-1.6px}h2{font-family:Georgia,serif;font-size:25px;font-weight:400;line-height:1.2;margin:7px 0 18px}.subtitle,.muted{color:var(--muted)}.subtitle{margin:0}.section-top{display:flex;justify-content:space-between;align-items:center;padding:35px 0 28px}.pill,.tag{border:1px solid #536445;background:#25321f;color:var(--green);padding:7px 12px;border-radius:30px;font-size:10px;white-space:nowrap}.tag{color:var(--gold);background:transparent;border-color:var(--border);font-size:9px;letter-spacing:1px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:30px}.metrics article{background:var(--panel);border:1px solid var(--border);padding:20px;border-radius:10px}.metrics article>span{display:block;color:var(--muted);font-size:9px;letter-spacing:1.7px}.metrics strong{display:block;font:36px Georgia,serif;padding:9px 0;color:var(--cream)}.metrics small{font-size:11px;color:var(--muted)}.heading-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.heading-row>.muted{font-size:11px}.member-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:13px;margin-bottom:30px}.member{border:1px solid var(--border);border-radius:10px;background:linear-gradient(145deg,#273225,#1b2421 65%);padding:20px;min-width:0}.avatar{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;background:#3e4d32;color:var(--green);font:24px Georgia,serif}.member h3{margin:13px 0 0;font-size:14px}.member .presence{color:var(--muted);font-size:10px}.member .presence.online{color:var(--green)}.member-total{display:flex;justify-content:space-between;align-items:baseline;margin:15px 0 8px;padding-top:10px;border-top:1px solid var(--border);font-size:11px;color:var(--muted)}.member-total b{color:var(--gold);font-size:18px;font-weight:500}.skills{display:grid;grid-template-columns:1fr 1fr;gap:3px 12px;font-size:10px;color:var(--muted)}.skills b{color:var(--cream);float:right}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:25px;margin-bottom:24px}.card .heading-row h2{margin-bottom:13px}.filters{display:flex;gap:15px;margin-top:9px}label{display:block;color:var(--muted);font-size:11px}input,select{display:block;background:#141d18;border:1px solid #465443;border-radius:7px;color:var(--cream);padding:11px 12px;width:100%;margin-top:5px}select{cursor:pointer}.filters select{min-width:180px}.search{flex:1}.table-wrap{overflow:auto;max-height:440px}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px;white-space:nowrap}th{position:sticky;top:0;background:#1e2a21;color:var(--muted);font-size:9px;letter-spacing:1px;text-transform:uppercase;padding:11px}td{padding:13px 11px;border-bottom:1px solid #2e3a32}td:first-child{color:var(--cream)}td:nth-child(2){color:var(--gold);font-variant-numeric:tabular-nums}td:nth-child(n+3){color:var(--muted)}.bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.bottom-grid .card{min-width:0}.coordinate-map{height:220px;border-radius:9px;border:1px solid #40513c;position:relative;overflow:hidden;background:radial-gradient(ellipse at 70% 35%,#41523a70,transparent 65%),repeating-linear-gradient(0deg,transparent,transparent 31px,#5d74551c 32px),repeating-linear-gradient(90deg,transparent,transparent 31px,#5d74551c 32px),#202d25}.map-label{position:absolute;top:12px;left:14px;font-size:8px;letter-spacing:2px;color:var(--muted)}.map-compass{position:absolute;right:13px;top:10px;font:18px Georgia,serif;color:var(--gold)}.map-pin{position:absolute;transform:translate(-50%,-50%);border:1px solid var(--green);background:#243021;color:var(--cream);padding:3px 7px;border-radius:5px;font-size:9px;white-space:nowrap}.location-row{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--border);padding:10px 0;font-size:11px}.location-row span{color:var(--muted);text-align:right}.fine{color:var(--muted);font-size:11px}.feed{max-height:480px;overflow:auto}.feed-item{display:flex;gap:12px;padding:15px 0;border-bottom:1px solid var(--border)}.feed-icon{width:31px;height:31px;background:#343e2c;border-radius:8px;color:var(--gold);display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:800;flex-shrink:0}.feed-text{min-width:0;overflow-wrap:anywhere;font-size:12px}.feed-text small{display:block;color:var(--muted);margin-top:4px;font-size:10px}#activity-filter{width:auto;max-width:130px;font-size:11px}footer{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;padding:10px 0}footer span{font-size:8px;letter-spacing:1px}.login-card{max-width:720px;margin:70px auto;border:1px solid var(--border);border-radius:16px;background:linear-gradient(130deg,#283423,#1b2421);padding:45px}.login-card p{color:var(--muted)}.login-card form{margin:28px 0 15px}.login-row{display:flex;align-items:end;gap:10px}.login-row input{min-width:0;flex:1}.login-row button{white-space:nowrap}.error{background:#412723;color:#ffcfb7;border:1px solid #895445;padding:12px 18px;border-radius:8px}.empty{color:var(--muted);text-align:center;padding:20px}.demo-banner{border:1px dashed var(--gold);border-radius:8px;color:var(--gold);padding:11px 16px;margin-bottom:18px;font-size:12px}
.bank-grid{max-width:497px}.bank-slot:focus .item-tooltip{display:block}
@media(min-width:1500px){main{padding-left:60px;padding-right:60px}}
@media(max-width:1100px){.rail{width:190px;padding:28px 18px}main{margin-left:190px;padding:0 24px 24px}.metrics{grid-template-columns:repeat(2,1fr)}.bottom-grid{grid-template-columns:1fr}.section-top{gap:15px}.member-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.rail{position:static;width:auto;padding:20px;border-right:0;border-bottom:1px solid var(--border)}.brand{font-size:19px}.rail-label,.rail-foot{display:none}nav{display:flex;overflow:auto;margin-top:18px;gap:3px}nav a{padding:6px;font-size:0}nav a span{font-size:11px;margin:0}main{margin:0;padding:0 16px 20px}.topbar{height:60px;font-size:8px;letter-spacing:1px}.section-top{display:block}.pill{display:inline-block;margin-top:20px}.metrics{gap:9px}.metrics article{padding:13px}.metrics strong{font-size:28px}.metrics small{font-size:10px}.card{padding:17px}.filters{flex-direction:column}.heading-row>.muted{display:none}.member-grid{gap:9px}.member{padding:15px}.skills{grid-template-columns:1fr}.login-card{margin:25px auto;padding:24px}.login-row{display:block}.login-row button{margin-top:12px;width:100%}footer{display:block}footer span{display:block;margin-top:10px}}

/* Settings editor */
#settings fieldset{border:1px solid var(--border);border-radius:10px;padding:16px 18px 18px;margin:0 0 18px}
#settings legend{color:var(--gold);font-size:11px;letter-spacing:1.6px;text-transform:uppercase;padding:0 8px}
#settings fieldset>.fine{margin:0 0 12px}
.settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px 18px}
.setting small{display:block;color:var(--muted);font-size:10px;margin-top:5px;opacity:.85}
.setting textarea{display:block;width:100%;margin-top:5px;font:inherit;background:#141d18;border:1px solid #465443;border-radius:7px;color:var(--cream);padding:11px 12px;resize:vertical}
.setting input[type=color]{height:42px;padding:4px;cursor:pointer}
.setting.check{display:flex;align-items:center;gap:10px;align-self:end;padding-bottom:12px;font-size:12px;color:var(--cream)}
.setting.check input{width:18px;height:18px;margin:0;accent-color:var(--green)}
.logo-setting{grid-column:1/-1}
.logo-row{display:flex;align-items:center;gap:14px;margin-top:6px;flex-wrap:wrap}
.logo-row img{width:72px;height:72px;object-fit:contain;border-radius:50%;background:#141d18;border:1px solid var(--border)}
.logo-row input[type=file]{width:auto;flex:1;min-width:200px;margin:0}
.settings-preview{border:1px solid var(--border);border-radius:10px;padding:16px 18px 18px;margin-bottom:18px}
.settings-preview label{max-width:260px;margin:10px 0 14px}
.discord-embed{background:#2b2d31;border-left:4px solid var(--gold);border-radius:4px;padding:12px 16px;max-width:520px;color:#dbdee1;font-family:"gg sans","Noto Sans",Helvetica,Arial,sans-serif;font-size:14px}
.embed-author,.embed-footer{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#f2f3f5}
.embed-author img,.embed-footer img{width:22px;height:22px;border-radius:50%;object-fit:contain}
.embed-footer{font-size:12px;font-weight:400;color:#b5bac1;margin-top:10px}
.embed-footer img{width:18px;height:18px}
.embed-title{color:#00a8fc;font-weight:700;margin:8px 0 4px}
.embed-body{white-space:pre-line;line-height:1.4}
.settings-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
#settings-status{font-size:12px;color:var(--green)}
#settings-status.error-text{color:#ffb39a}.settings-page .section-top{margin-bottom:24px}

/* Shared dashboard surfaces stay aligned with the editable clan palette. */
body{background:radial-gradient(ellipse at 70% 0,color-mix(in srgb,var(--green) 3%,transparent),transparent 650px),var(--bg);-webkit-font-smoothing:antialiased}
.rail{background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 95%,var(--green)),var(--bg));border-color:color-mix(in srgb,var(--border) 65%,transparent)}
.rail nav a{padding:12px;border:1px solid transparent;transition:background .15s,color .15s}
.rail nav a.active{background:color-mix(in srgb,var(--green) 7%,var(--bg));border-color:color-mix(in srgb,var(--green) 15%,transparent);box-shadow:inset 2px 0 var(--green)}
.topbar{border-color:color-mix(in srgb,var(--border) 65%,transparent)}
.section-top{padding-top:42px;padding-bottom:32px}
.section-top h1{font-size:clamp(34px,3.8vw,54px);letter-spacing:-1.6px}
.subtitle{font-size:13px;line-height:1.7}
.metrics{gap:16px;margin-bottom:0}
.metrics article{background:linear-gradient(145deg,color-mix(in srgb,var(--green) 3%,var(--panel)),var(--panel));border-color:color-mix(in srgb,var(--border) 75%,transparent);border-radius:14px;padding:22px;box-shadow:0 6px 20px #0001}
.metrics article>span{font-size:9px;letter-spacing:1.3px}
.metrics strong{font:500 33px/1.3 "Segoe UI",sans-serif;letter-spacing:-1.5px;font-variant-numeric:tabular-nums;padding:12px 0 8px}
.metrics article:first-child strong{color:var(--green)}
.metrics small{font-size:10px}
.card{border-color:color-mix(in srgb,var(--border) 78%,transparent);border-radius:16px;padding:28px;box-shadow:0 8px 28px #0001}
button,input,select{transition:border-color .15s,background .15s,box-shadow .15s}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--green)}
.quiet:hover{background:color-mix(in srgb,var(--green) 6%,var(--panel));border-color:color-mix(in srgb,var(--green) 35%,var(--border))}
.pill{background:color-mix(in srgb,var(--green) 7%,var(--panel));border-color:color-mix(in srgb,var(--green) 25%,transparent)}
@media(max-width:650px){.rail{padding:18px 20px}.rail nav a{padding:8px 10px}.section-top{padding-top:28px}.metrics{gap:10px}.metrics article{padding:16px}.metrics strong{font-size:28px}.card{padding:20px}.metrics small{font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}button,input,select,.rail nav a{transition:none}}
.map-icon-row img{width:48px;height:48px;border-radius:8px;image-rendering:pixelated}
.map-icon-dot{display:block;width:16px;height:16px;margin:16px;border:1px solid #000;border-radius:50%;background:#00ffff}
.bank-item-tooltip{position:fixed;z-index:1000;width:max-content;max-width:min(280px,calc(100vw - 16px));padding:9px 12px;border:1px solid #aa9564;border-radius:5px;background:#17140ff5;color:#ffdf91;white-space:pre-line;overflow-wrap:anywhere;font-size:11px;line-height:1.6;box-shadow:0 6px 20px #0005;pointer-events:none}
.topbar-actions{display:flex;gap:8px;align-items:center}
.bank-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0 8px}
.bank-values>div{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:14px 16px}
.bank-values span,.bank-xp-heading{display:block;color:var(--muted);font-size:9px;letter-spacing:1.4px}
.bank-values strong{display:block;color:var(--gold);font-size:18px;margin-top:5px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.bank-xp-heading{margin-top:20px}.bank-xp{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.bank-xp-chip{display:flex;align-items:center;gap:8px;padding:7px 10px;background:var(--bg);border:1px solid var(--border);border-radius:7px;color:var(--green);font-size:12px}
.bank-xp-chip.none{color:var(--muted,#8a8a8a);opacity:.65}
.bank-owner-values{color:#d7c499;font-size:10px;margin:0 0 12px}.bank-owner-heading{flex-wrap:wrap}
.member-access{margin-bottom:20px}.member-access h2{margin:8px 0}
.member-token-create-row,.member-token-row,.member-token-actions{display:flex;gap:10px;align-items:center}
.member-token-create-row{margin-top:8px;flex-wrap:wrap}.member-token-create-row input{min-width:0;flex:1}
.member-token-row{justify-content:space-between;padding:14px 0;border-top:1px solid var(--border);flex-wrap:wrap}
.member-token-details{display:flex;flex-direction:column;gap:5px}.member-token-details small{color:var(--muted);font-size:10px}
.member-token-actions{flex-wrap:wrap}.member-token-actions button{font-size:11px}
.member-permissions{display:flex;flex-wrap:wrap;gap:12px;width:100%;margin:8px 0 0;padding:12px;border:1px solid var(--border);border-radius:8px}
.member-permissions legend{font-size:11px;color:var(--muted);padding:0 6px}
.member-permissions label{display:flex;align-items:center;gap:6px;font-size:12px}
#member-token-result{padding:16px;margin:14px 0;border:1px solid var(--gold);border-radius:8px}
#member-token-key{display:block;width:100%;margin-top:8px;resize:vertical;overflow-wrap:anywhere;font-family:monospace}
.error-text{color:#ffb4a9}
@media(max-width:420px){.topbar-actions button{padding:9px;font-size:10px}.bank-values{grid-template-columns:1fr}}
.bank-tab-heading{grid-column:1/-1;color:#ff981f;font-size:11px;font-weight:700;letter-spacing:.04em;background:transparent;border:0;border-bottom:1px solid #76634b;border-radius:0;text-align:left;padding:6px 2px 3px}.bank-tab-heading:first-child{padding-top:0}
.bank-tab[aria-expanded="false"]{outline:1px dashed #ff981f;outline-offset:-4px}
.bank-tabs{display:flex;flex-wrap:wrap;align-items:flex-end;gap:3px;max-width:497px;margin:0 0 10px;padding:4px 4px 0;background:#2b241b;border-bottom:3px solid #5c4d38;border-radius:4px 4px 0 0}.bank-tab{position:relative;display:flex;align-items:center;justify-content:center;width:44px;height:38px;padding:0;margin-bottom:-3px;background:linear-gradient(#4a3f30,#3a3126);border:1px solid #0d0b08;border-bottom:3px solid #5c4d38;border-radius:5px 5px 0 0;box-shadow:inset 1px 1px #6e5d45,inset -1px 0 #261f17;color:#ff981f;cursor:pointer}.bank-tab:hover,.bank-tab:focus-visible{background:linear-gradient(#5a4c39,#463b2d);outline:none}.bank-tab[aria-selected="true"]{height:42px;background:#5c4d38;border-bottom-color:#5c4d38;box-shadow:inset 1px 1px #8a7556;z-index:1}.bank-tab .item-sprite{width:36px;height:32px}.bank-tab-label{font:bold 20px Georgia,serif;text-shadow:1px 1px #000}
