*,:before,:after{box-sizing:border-box}html,body{color:#f2f2f2;background:#090909;min-height:100%;margin:0;padding:0;font-family:Segoe UI,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.45}a{color:#f2cf66;text-decoration:none;transition:all .2s ease-out}a:hover{color:#d4af37}.app-shell,.layout{min-height:100vh}.page{max-width:1200px;margin:0 auto}.page-title{color:#f2f2f2;margin:0 0 .35rem;font-size:1.35rem;font-weight:600}.page-subtitle{color:#999;margin:0;font-size:.9286rem}.card{background:#161616;border:1px solid #2a2a2a;margin-top:1rem;padding:.9rem 1rem;box-shadow:0 0 24px #8c762c0f}.btn,.menu-btn,.logout-btn{color:#f2cf66;cursor:pointer;font:inherit;background:linear-gradient(#d4af372e,#d4af370d);border:1px solid #8c762c;justify-content:center;align-items:center;gap:.4rem;padding:.4rem .75rem;font-size:.9286rem;transition:all .2s ease-out;display:inline-flex}.btn:hover,.menu-btn:hover,.logout-btn:hover{background:linear-gradient(#d4af3747,#d4af371a);border-color:#d4af37}.btn.ghost,.menu-btn,.logout-btn{color:#999;background:0 0;border-color:#2a2a2a}.btn.ghost:hover,.menu-btn:hover,.logout-btn:hover{color:#f2f2f2;border-color:#8c762c}.btn.danger,.danger.menu-btn,.danger.logout-btn{color:#bd8282;background:linear-gradient(#a85a5a38,#a85a5a14);border-color:#a85a5a}.btn.danger:hover,.danger.menu-btn:hover,.danger.logout-btn:hover{background:linear-gradient(#a85a5a52,#a85a5a1f);border-color:#b67575}.btn.disabled,.disabled.menu-btn,.disabled.logout-btn,.btn[disabled],[disabled].menu-btn,[disabled].logout-btn{opacity:.45;pointer-events:none}.badge{color:#f2cf66;letter-spacing:.04em;text-transform:uppercase;border:1px solid #8c762c;padding:.1rem .4rem;font-size:.7143rem;display:inline-block}.layout{background:radial-gradient(at 0 0,#141414 0%,#090909 50%);grid-template-columns:220px 1fr;display:grid}.sidebar{z-index:30;background:#111;border-right:1px solid #2a2a2a;flex-direction:column;height:100vh;padding:.85rem .7rem;display:flex;position:sticky;top:0}.sidebar-brand{border-bottom:1px solid #2a2a2a;margin-bottom:.7rem;padding:.15rem .4rem .85rem}.brand-mark{letter-spacing:.12em;color:#f2cf66;text-shadow:0 0 18px #d4af3740;font-size:1.2rem;font-weight:700;display:block}.brand-sub{color:#999;font-size:.7857rem}.sidebar-nav{flex-direction:column;flex:1;gap:.15rem;display:flex;overflow:auto}.nav-section{color:#8c762c;letter-spacing:.08em;text-transform:uppercase;margin:.65rem .4rem .25rem;font-size:.6429rem}.nav-link{color:#999;border:1px solid #0000;align-items:center;gap:.5rem;padding:.4rem .55rem;font-size:.9286rem;display:flex}.nav-link svg{opacity:.85;flex-shrink:0}.nav-link.router-link-active{color:#f2cf66;background:#d4af3714;border-color:#8c762c80}.nav-link.router-link-active svg{opacity:1}.nav-link:hover{color:#f2f2f2}.sidebar-user{border-top:1px solid #2a2a2a;grid-template-columns:auto 1fr;align-items:center;gap:.4rem .55rem;margin-top:auto;padding-top:.7rem;display:grid}.user-avatar{object-fit:cover;border:1px solid #8c762c;width:30px;height:30px}.user-avatar.placeholder{color:#f2cf66;background:#161616;place-items:center;display:grid}.user-meta{min-width:0}.user-name{white-space:nowrap;text-overflow:ellipsis;font-size:.8571rem;overflow:hidden}.user-role{color:#999;font-size:.7143rem}.logout-btn{grid-column:1/-1;width:100%}.main{min-width:0}.topbar{background:#111111e6;border-bottom:1px solid #2a2a2a;justify-content:space-between;align-items:center;padding:.6rem .85rem;display:none}.content{padding:1.1rem 1.1rem 1.75rem}.backdrop{display:none}.top-profile{color:#999;align-items:center;gap:.4rem;display:inline-flex}.topbar-right{align-items:center;gap:.75rem;display:flex}.locale-switch{border:1px solid #2a2a2a;display:inline-flex}.locale-btn{color:#999;cursor:pointer;font:inherit;letter-spacing:.06em;background:0 0;border:0;padding:.35rem .55rem;font-size:.75rem}.locale-btn.active{color:#f2cf66;background:#d4af371f}.locale-btn:hover{color:#f2f2f2}.sidebar-user .locale-switch{grid-column:1/-1;width:100%}.sidebar-user .locale-switch .locale-btn{flex:1}.login-page,.pending-page{box-sizing:border-box;background:radial-gradient(circle at 20% 20%,#8c762c26,#0000 40%),radial-gradient(circle at 80% 0,#d4af3714,#0000 35%),#090909;place-items:center;height:100dvh;min-height:100vh;padding:1.25rem 1rem;display:grid;overflow:hidden}.teamspeak-steps{color:#999;margin:1rem 0 0;padding-left:1.25rem;line-height:1.5}.teamspeak-steps li+li{margin-top:.35rem}.dev-list{flex-direction:column;gap:.5rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.dev-list a{color:#f2f2f2;border:1px solid #2a2a2a;justify-content:space-between;gap:1rem;padding:.6rem .75rem;display:flex}.dev-list a:hover{border-color:#8c762c}.role-user-row{border:1px solid #2a2a2a;flex-direction:column;gap:.65rem;padding:.85rem .75rem;display:flex}.role-user-meta{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.role-user-controls{flex-wrap:wrap;gap:.75rem 1rem;display:flex}.role-check{color:#999;cursor:pointer;align-items:center;gap:.4rem;font-size:.85rem;display:inline-flex}.role-check input{accent-color:#d4af37}.admin-users-tabs{border-bottom:1px solid #2a2a2a;gap:.25rem;margin-bottom:.75rem;padding-bottom:.45rem;display:flex}.admin-users-tab{color:#999;cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;align-items:center;gap:.35rem;padding:.3rem .55rem;font-size:.8571rem;transition:all .2s ease-out;display:inline-flex}.admin-users-tab:hover{color:#f2f2f2}.admin-users-tab.active{color:#f2cf66;background:#d4af3714;border-color:#8c762c8c}.tab-count{color:#f2cf66;border:1px solid #8c762c;justify-content:center;min-width:1.35rem;padding:.05rem .35rem;font-size:.75rem;display:inline-flex}.tab-count.muted{color:#999;border-color:#2a2a2a}.character-admin-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.character-admin-row{background:#09090959;border:1px solid #2a2a2a;align-items:flex-start;gap:.55rem;padding:.6rem .65rem;display:flex}.character-admin-main{flex-direction:column;flex:1;gap:.55rem;min-width:0;display:flex}.character-admin-identity{flex-wrap:wrap;align-items:center;gap:.35rem .5rem;display:flex}.discord-link{color:#f2cf66;align-items:center;gap:.25rem;font-size:.8571rem;display:inline-flex}.discord-missing{color:#999;font-size:.7857rem}.character-admin-fields{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.5rem;display:grid}.field-label{color:#999;letter-spacing:.04em;text-transform:uppercase;margin-bottom:.2rem;font-size:.7143rem;display:block}.form-grid .field-label{letter-spacing:normal;text-transform:none;font-size:.8571rem}.character-admin-actions{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.35rem;display:flex}.character-confirm-btn{white-space:nowrap}.character-delete-btn{color:#a85a5a;flex-shrink:0;width:32px;height:32px;padding:0}.character-delete-btn:hover:not(:disabled){color:#b67575;border-color:#a85a5a}.status-pending{color:#f2cf66;border-color:#d4af3773}.confirm-modal-backdrop{z-index:50;background:#0000009e;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.confirm-modal{background:#161616;border:1px solid #2a2a2a;width:min(420px,100%);padding:1rem 1.1rem;box-shadow:0 0 28px #8c762c1f}.confirm-modal-title{color:#f2f2f2;margin:0 0 .5rem;font-size:1.05rem;font-weight:600}.confirm-modal-text{color:#f2f2f2;margin:0}.confirm-modal-hint{color:#999;margin:.55rem 0 0;font-size:.8571rem}.confirm-modal-actions{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.login-select{width:100%;display:block}.ui-select{width:100%;position:relative}.ui-select-trigger{color:#f2f2f2;width:100%;min-height:2.15rem;font:inherit;text-align:left;cursor:pointer;background:linear-gradient(#d4af370f,#0000 70%),#090909;border:1px solid #2a2a2a;justify-content:space-between;align-items:center;gap:.5rem;padding:.35rem .55rem;font-size:.9286rem;transition:all .2s ease-out;display:flex}.ui-select-trigger:hover:not(:disabled){border-color:#8c762c}.ui-select-trigger:focus-visible{border-color:#d4af37;outline:none;box-shadow:0 0 0 1px #d4af3740}.ui-select.open .ui-select-trigger{border-color:#8c762c;box-shadow:0 0 0 1px #8c762c33}.ui-select-trigger:disabled{opacity:.45;cursor:not-allowed}.ui-select-value{flex-wrap:wrap;flex:1;align-items:center;gap:.3rem .45rem;min-width:0;display:flex}.ui-select-value.placeholder{color:#999}.ui-select-label{color:#f2f2f2;font-weight:600}.ui-select-meta{color:#999;font-size:.8571rem}.ui-select-chevron{color:#8c762c;flex-shrink:0;transition:all .2s ease-out;display:inline-flex}.ui-select.open .ui-select-chevron{color:#f2cf66;transform:rotate(180deg)}.ui-select-menu{z-index:20;background:#161616;border:1px solid #2a2a2a;max-height:min(260px,45vh);margin:0;padding:.25rem;list-style:none;position:absolute;inset:calc(100% + .25rem) 0 auto;overflow:auto;box-shadow:0 12px 28px #00000073,0 0 24px #8c762c14}.ui-select.drop-up .ui-select-menu{top:auto;bottom:calc(100% + .25rem);box-shadow:0 -12px 28px #00000073,0 0 24px #8c762c14}.ui-select-option{color:#f2f2f2;cursor:pointer;border:1px solid #0000;justify-content:space-between;align-items:center;gap:.5rem;padding:.4rem .5rem;transition:all .2s ease-out;display:flex}.ui-select-option:hover,.ui-select-option.focused{background:#d4af3714;border-color:#8c762c8c}.ui-select-option.active{background:#d4af371f;border-color:#8c762c}.ui-select-option-main{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.game-class-icon{object-fit:none;width:13px;height:13px;image-rendering:pixelated;flex-shrink:0}.dev-login-fab{z-index:40;flex-direction:column;align-items:flex-end;gap:.6rem;display:flex;position:fixed;bottom:1.25rem;right:1.25rem}.dev-login-btn{color:#f2cf66;cursor:pointer;width:48px;height:48px;font:inherit;background:#161616;border:1px solid #8c762c;justify-content:center;align-items:center;display:inline-flex}.dev-login-menu{background:#161616;border:1px solid #2a2a2a;width:min(320px,100vw - 2rem);max-height:min(50vh,360px);padding:.85rem;overflow:auto;box-shadow:0 0 24px #8c762c1f}.form-grid select{color:#f2f2f2;width:100%;font:inherit;background:#090909;border:1px solid #2a2a2a;padding:.4rem .55rem}.form-grid{gap:.7rem;margin-top:.7rem;display:grid}.form-grid label{color:#999;gap:.25rem;font-size:.8571rem;display:grid}.form-grid input,.form-grid textarea{color:#f2f2f2;width:100%;font:inherit;background:#090909;border:1px solid #2a2a2a;padding:.4rem .55rem}.stats-row{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.7rem;margin-top:1rem;display:grid}.stat-card{background:#161616;border:1px solid #2a2a2a;padding:.7rem .8rem}.stat-label{color:#999;font-size:.7857rem}.stat-value{color:#f2cf66;margin-top:.25rem;font-size:1.15rem}.stat-value.stat-value-text{font-size:1rem}.roster-card{margin-top:1rem}.dashboard-split{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);align-items:start;gap:1rem;display:grid}.dashboard-split .roster-card{height:100%;margin-top:1rem}.activity-empty{background:#09090940;border:1px dashed #2a2a2a;align-items:center;min-height:8rem;padding:.75rem;display:flex}.activity-next-name{color:#f2cf66;font-size:1.05rem;font-weight:600}.activity-next-meta{color:#999;margin-top:.35rem;font-size:.8571rem}.roster-head{margin-bottom:.85rem}.roster-title{margin:0 0 .25rem;font-size:1rem;font-weight:600}.roster-subtitle{color:#999;margin:0;font-size:.8571rem}.roster-muted{color:#999;margin:0}.roster-error{color:#ba7b7b;margin:0}.roster-summary{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.55rem;display:grid}.roster-metric{background:#09090959;border:1px solid #2a2a2a;padding:.65rem .7rem}.roster-metric-value{color:#f2cf66;font-size:1.35rem;font-weight:600;line-height:1.1}.roster-metric-label{color:#999;margin-top:.25rem;font-size:.75rem}.roster-bars{flex-direction:column;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.roster-bar-row{grid-template-columns:minmax(110px,160px) 1fr auto;align-items:center;gap:.55rem;display:grid}.roster-bar-label{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:.35rem;min-width:0;font-size:.8571rem;display:inline-flex;overflow:hidden}.roster-bar-track{background:#09090980;border:1px solid #2a2a2a;height:.45rem;overflow:hidden}.roster-bar-fill{background:linear-gradient(90deg,#d4af378c,#f2cf66d9);height:100%}.roster-bar-meta{font-variant-numeric:tabular-nums;grid-template-columns:3ch 4ch;place-items:baseline end;gap:.45rem;display:grid}.roster-bar-count{color:#f2cf66;text-align:right;font-size:.8571rem;font-weight:600}.roster-bar-percent{color:#999;text-align:right;font-size:.75rem}@media (width<=900px){.dashboard-split{grid-template-columns:1fr}.roster-bar-row{grid-template-columns:minmax(100px,1fr) 1.2fr auto}.layout{grid-template-columns:1fr}.sidebar{width:min(280px,86vw);transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-105%)}.layout.sidebar-open .sidebar{transform:translate(0)}.layout.sidebar-open .backdrop{z-index:20;background:#0000008c;display:block;position:fixed;inset:0}.topbar{display:flex}}
