@charset "UTF-8";.permission-denied{padding:var(--space-xl);text-align:center;max-width:400px;margin:var(--space-xl) auto}.permission-denied h2{font-size:1.25rem;margin-bottom:var(--space-sm);color:var(--text-primary)}.permission-denied p{color:var(--text-secondary);margin:0}.layout{display:flex;min-height:100vh}.sidebar{width:260px;background:var(--bg-secondary);display:flex;flex-direction:column;flex-shrink:0}.sidebar__logo{padding:var(--space-lg);display:flex;align-items:center;gap:var(--space-sm);border-bottom:1px solid var(--border-subtle)}.sidebar .logo-icon{width:36px;height:36px;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;color:var(--bg-primary)}.sidebar .logo-text{font-weight:700;font-size:1.25rem;letter-spacing:-.02em}.sidebar__nav{flex:1;padding:var(--space-md);overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-md)}.sidebar__footer{padding:var(--space-md);border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:var(--space-md)}.sidebar__user{display:flex;align-items:center;gap:var(--space-sm)}.sidebar__user-link{text-decoration:none;color:inherit;border-radius:var(--radius-md);padding:var(--space-xs) 0}.sidebar__user-link:hover{color:var(--accent-primary)}.nav-section__header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-sm) var(--space-md);font-size:.6875rem;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;background:none;cursor:pointer}.nav-section__header:hover{color:var(--text-secondary)}.nav-section__chevron{transition:transform var(--transition-fast)}.nav-section__chevron--collapsed{transform:rotate(-90deg)}.nav-section__items{display:flex;flex-direction:column;gap:var(--space-xs)}.user-avatar{width:32px;height:32px;border-radius:50%;background:var(--accent-primary-muted);color:var(--accent-primary);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem}.user-email{font-size:.75rem;color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:140px}.logout-btn{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);font-size:.8125rem;color:var(--text-tertiary);border-radius:var(--radius-md);transition:all var(--transition-fast)}.logout-btn:hover{color:var(--error);background:var(--error-muted)}.nav-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);color:var(--text-secondary);font-size:.9375rem;font-weight:500;transition:all var(--transition-fast)}.nav-item:hover{color:var(--text-primary);background:var(--bg-tertiary)}.nav-item--active{color:var(--accent-primary);background:var(--accent-primary-muted)}.nav-item--active:hover{background:#00d4aa33}.main{flex:1;overflow-y:auto;display:flex;flex-direction:column;background:var(--bg-secondary)}.main__content{flex:1;padding:var(--space-xl);overflow-y:auto;background:var(--bg-primary);border-radius:3.5rem 0 0 3.5rem;padding-top:100px}.main__content.main__content--animated{animation:page-fade-in .2s ease}@keyframes page-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.layout-totp-reminder{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:#0009;padding:var(--space-lg)}.layout-totp-reminder__card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:420px;width:100%;padding:var(--space-xl)}.layout-totp-reminder__title{display:flex;align-items:center;gap:var(--space-sm);margin:0 0 var(--space-md);font-size:1.125rem;color:var(--text-primary)}.layout-totp-reminder__text{margin:0 0 var(--space-lg);font-size:.9375rem;color:var(--text-secondary);line-height:1.5}.layout-totp-reminder__actions{display:flex;gap:var(--space-sm);flex-wrap:wrap}.layout-totp-reminder__btn{padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;border:1px solid var(--border-subtle);background:var(--bg-elevated);color:var(--text-primary);text-decoration:none}.layout-totp-reminder__btn:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.layout-totp-reminder__btn--primary{background:var(--accent-primary);color:var(--bg-primary);border-color:var(--accent-primary)}.layout-totp-reminder__btn--primary:hover{background:var(--accent-primary-hover);color:var(--bg-primary)}.spotlight-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:flex-start;justify-content:center;padding:15vh 24px 24px;background:#0009;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);animation:spotlight-bg .25s ease-out}@keyframes spotlight-bg{0%{opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}to{opacity:1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}}.spotlight{width:100%;max-width:560px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg),0 0 0 1px #ffffff0d;overflow:hidden;animation:spotlight-in .3s cubic-bezier(.34,1.56,.64,1)}@keyframes spotlight-in{0%{opacity:0;transform:scale(.95) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.spotlight__input-wrap{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-lg);border-bottom:1px solid var(--border-subtle)}.spotlight__search-icon{color:var(--text-tertiary);flex-shrink:0}.spotlight__input{flex:1;min-width:0;background:none;border:none;color:var(--text-primary);font-size:1.125rem;font-weight:500}.spotlight__input::placeholder{color:var(--text-tertiary)}.spotlight__input:focus{outline:none}.spotlight__kbd{font-size:.6875rem;padding:2px 6px;background:var(--bg-tertiary);border-radius:var(--radius-sm);color:var(--text-muted)}.spotlight__results{max-height:320px;overflow-y:auto;padding:var(--space-sm)}.spotlight__empty{padding:var(--space-xl);text-align:center;color:var(--text-tertiary);font-size:.9375rem}.spotlight__item{display:flex;align-items:center;gap:var(--space-md);width:100%;padding:var(--space-sm) var(--space-md);border:none;border-radius:var(--radius-md);background:none;color:var(--text-primary);font-size:.9375rem;text-align:left;cursor:pointer;transition:background var(--transition-fast)}.spotlight__item--selected{background:var(--accent-primary-muted);color:var(--accent-primary)}.spotlight__item--current .spotlight__item-label{font-weight:600}.spotlight__item-icon{display:flex;color:var(--text-tertiary)}.spotlight__item--selected .spotlight__item-icon{color:var(--accent-primary)}.spotlight__item-label{flex:1}.spotlight__item-badge{font-size:.6875rem;padding:2px 6px;background:var(--bg-tertiary);border-radius:var(--radius-sm);color:var(--text-tertiary)}.spotlight__item-arrow{opacity:0;transition:opacity var(--transition-fast)}.spotlight__item:hover .spotlight__item-arrow,.spotlight__item--selected .spotlight__item-arrow{opacity:1}.spotlight__footer{display:flex;flex-wrap:wrap;gap:var(--space-lg);padding:var(--space-sm) var(--space-lg);border-top:1px solid var(--border-subtle);font-size:.75rem;color:var(--text-muted)}.spotlight__footer kbd{font-size:.6875rem;padding:2px 4px;background:var(--bg-tertiary);border-radius:4px;margin:0 2px}.context-menu-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9998;background:transparent}.context-menu{position:fixed;min-width:200px;max-width:320px;padding:var(--space-xs);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);list-style:none;margin:0;animation:context-menu-in .2s ease-out;z-index:9999}@keyframes context-menu-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.context-menu__item{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);border:none;border-radius:var(--radius-sm);background:none;color:var(--text-primary);font-size:.875rem;cursor:pointer;text-align:left;transition:background var(--transition-fast)}.context-menu__item:hover:not(:disabled){background:var(--bg-tertiary)}.context-menu__item:disabled{opacity:.5;cursor:not-allowed}.context-menu__icon{display:flex;color:var(--text-tertiary)}.context-menu__shortcut{margin-left:auto;font-size:.75rem;color:var(--text-muted)}.context-menu__sep{height:1px;background:var(--border-subtle);margin:var(--space-xs) 0;list-style:none}.login-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-xl);background:var(--bg-primary)}.login-card{width:100%;max-width:400px;padding:var(--space-2xl);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}.login-card__logo{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.login-card .logo-icon{width:48px;height:48px;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:24px;color:var(--bg-primary)}.login-card .logo-text{font-weight:700;font-size:1.5rem;letter-spacing:-.02em}.login-card__tagline{font-size:.9375rem;color:var(--text-secondary);margin-bottom:var(--space-xl)}.login-card__demo{margin-top:var(--space-lg);font-size:.75rem;color:var(--text-tertiary);text-align:center}.login-card__demo code{background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm)}.login-error{font-size:.875rem;color:var(--error);margin-bottom:var(--space-md)}.login-form{display:flex;flex-direction:column;gap:var(--space-lg)}.input-group{display:flex;flex-direction:column;gap:var(--space-sm)}.input-group label{font-size:.875rem;font-weight:500;color:var(--text-secondary)}.input-group input{padding:var(--space-md) var(--space-lg);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:.9375rem;transition:border-color var(--transition-fast)}.input-group input::placeholder{color:var(--text-tertiary)}.input-group input:focus{outline:none;border-color:var(--accent-primary)}.btn-primary{padding:var(--space-md) var(--space-lg);background:var(--accent-primary);color:var(--bg-primary);font-weight:600;font-size:.9375rem;border-radius:var(--radius-md);transition:all var(--transition-fast)}.btn-primary:hover:not(:disabled){background:var(--accent-primary-hover);transform:translateY(-1px)}.btn-primary:disabled{opacity:.7;cursor:not-allowed}.login-back{margin-top:var(--space-md);background:none;border:none;color:var(--text-tertiary);font-size:.875rem;cursor:pointer;padding:0}.login-back:hover{color:var(--accent-primary)}@keyframes jasper-float{0%,to{transform:translateY(0) rotate(0)}30%{transform:translateY(-8px) rotate(-1deg)}70%{transform:translateY(-5px) rotate(1deg)}}@keyframes jasper-body-wobble{0%,to{transform:scaleX(1) scaleY(1)}25%{transform:scaleX(1.018) scaleY(.984)}75%{transform:scaleX(.984) scaleY(1.018)}}@keyframes jasper-blink{0%,88%,to{transform:scaleY(1)}92%{transform:scaleY(.08)}}@keyframes jasper-quiver{0%,to{transform:translate(0)}20%{transform:translate(-2.5px) rotate(-1deg)}40%{transform:translate(2.5px) rotate(1deg)}60%{transform:translate(-1px)}80%{transform:translate(1px)}}@keyframes jasper-surprised-pop{0%{transform:scale(1)}15%{transform:scale(1.1) translateY(-5px)}35%{transform:scale(.96) translateY(0)}55%{transform:scale(1.04) translateY(-2px)}80%{transform:scale(.99)}to{transform:scale(1)}}@keyframes jasper-thinker-sway{0%,to{transform:translateY(0) rotate(0)}30%{transform:translateY(-6px) rotate(-2deg)}65%{transform:translateY(-3px) rotate(1.5deg)}}@keyframes o1{0%,to{transform:translate(0) scale(1);opacity:.7}50%{transform:translate(-4px,-7px) scale(1.1);opacity:.95}}@keyframes o2{0%,to{transform:translate(0);opacity:.6}50%{transform:translate(5px,-5px);opacity:.85}}@keyframes o3{0%,to{transform:translate(0) scale(1);opacity:.5}50%{transform:translate(3px,6px) scale(.9);opacity:.75}}@keyframes o4{0%,to{transform:translate(0);opacity:.4}50%{transform:translate(-6px,3px);opacity:.65}}@keyframes o5{0%,to{transform:translate(0) scale(1);opacity:.5}50%{transform:translate(2px,-6px) scale(1.15);opacity:.75}}@keyframes sparkle{0%,to{opacity:.8;transform:scale(1)}50%{opacity:.15;transform:scale(.4)}}@keyframes arc-l{0%,to{opacity:.7}50%{opacity:.3;transform:rotate(-12deg);transform-origin:20px 48px}}@keyframes arc-r{0%,to{opacity:.7}50%{opacity:.3;transform:rotate(12deg);transform-origin:84px 50px}}@keyframes mouth-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.jasper-logo{display:inline-block;position:relative;filter:drop-shadow(0 8px 28px rgba(130,165,240,.28)) drop-shadow(0 2px 8px rgba(155,185,255,.18));transition:filter .35s ease}.jasper-logo:hover{filter:drop-shadow(0 14px 36px rgba(110,150,240,.42)) drop-shadow(0 4px 12px rgba(140,175,255,.3))}.jasper-logo--content{animation:jasper-float 5.2s ease-in-out infinite}.jasper-logo--surprised{animation:jasper-surprised-pop .75s cubic-bezier(.34,1.56,.64,1) both,jasper-float 4.4s ease-in-out .75s infinite}.jasper-logo--thinker{animation:jasper-thinker-sway 6.5s ease-in-out infinite}.jasper-logo--angry{animation:jasper-quiver .55s ease-in-out 3,jasper-float 3.2s ease-in-out 1.65s infinite}.jasper-body{transform-origin:52px 75px;animation:jasper-body-wobble 6s ease-in-out infinite}.jasper-logo--angry .jasper-body{animation-duration:2s}.jasper-logo--thinker .jasper-body{animation-duration:9s}.jasper-eye-l,.jasper-eye-r{transform-origin:center;animation:jasper-blink 4s ease-in-out infinite}.jasper-logo--surprised .jasper-eye-l,.jasper-logo--surprised .jasper-eye-r{animation-duration:6s}.jasper-logo--angry .jasper-eye-l,.jasper-logo--angry .jasper-eye-r{animation-duration:2.5s}.jasper-logo--thinker .jasper-eye-l,.jasper-logo--thinker .jasper-eye-r{animation:none}.jasper-eye-r{animation-delay:.06s}.jasper-logo--surprised .jasper-mouth{animation:mouth-pulse 1.4s ease-in-out infinite}.o1{animation:o1 4.2s ease-in-out infinite}.o2{animation:o2 5.1s ease-in-out infinite .3s}.o3{animation:o3 4.7s ease-in-out infinite .7s}.o4{animation:o4 6s ease-in-out infinite 1.1s}.o5{animation:o5 5.5s ease-in-out infinite .5s}.al{animation:arc-l 5s ease-in-out infinite}.ar{animation:arc-r 5s ease-in-out infinite .8s}.sa{animation:sparkle 3s ease-in-out infinite 0s}.sb{animation:sparkle 2.7s ease-in-out infinite .6s}.sc{animation:sparkle 3.5s ease-in-out infinite 1.2s}.sd{animation:sparkle 2.5s ease-in-out infinite .9s}.jasper-page{position:relative;min-height:calc(100vh - var(--space-xl) * 2);display:flex;align-items:center;justify-content:center;padding:var(--space-xl)}.jasper-page__thoughts{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}.jasper-page__thought{pointer-events:auto;position:absolute;transform:translate(-50%,-50%);padding:var(--space-sm) var(--space-md);font-size:.8125rem;font-family:var(--font-sans);color:var(--text-secondary);background:#ffffff0f;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-full);cursor:pointer;white-space:nowrap;opacity:.5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:opacity var(--transition-normal),transform var(--transition-fast),background var(--transition-normal),color var(--transition-normal);animation:jasper-thought-in .5s ease-out}.jasper-page__thought:hover{opacity:.85;background:var(--accent-primary-muted);color:var(--accent-primary);border-color:#00d4aa40;transform:translate(-50%,-50%) scale(1.03)}.jasper-page__thought:active{opacity:.7}@keyframes jasper-thought-in{0%{opacity:0;transform:translate(-50%,-50%) scale(.92)}to{opacity:.5;transform:translate(-50%,-50%) scale(1)}}.jasper-page__center{position:relative;z-index:1;width:100%;max-width:560px;text-align:center}.jasper-page__title{font-size:2.5rem;font-weight:700;letter-spacing:-.03em;margin:var(--space-lg) 0 var(--space-sm);background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.jasper-page__tagline{font-size:.9375rem;color:var(--text-secondary);line-height:1.5;margin-bottom:var(--space-2xl);max-width:420px;margin-left:auto;margin-right:auto}.jasper-page__prompt{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);margin-bottom:var(--space-2xl);transition:border-color .2s ease,box-shadow .2s ease}.jasper-page__prompt:focus-within{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-muted)}.jasper-page__prompt-icon{color:var(--text-tertiary);flex-shrink:0}.jasper-page__prompt-input{flex:1;min-width:0;background:none;border:none;color:var(--text-primary);font-size:.9375rem}.jasper-page__prompt-input::placeholder{color:var(--text-tertiary)}.jasper-page__prompt-input:focus{outline:none}.jasper-page__prompt-submit{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md);background:var(--accent-primary-muted);color:var(--accent-primary);transition:background .2s ease,transform .2s ease}.jasper-page__prompt-submit:hover{background:#00d4aa4d;transform:scale(1.05)}.jasper-page__quick-label{font-size:.75rem;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;display:block;margin-bottom:var(--space-md)}.jasper-page__quick-grid{display:flex;flex-wrap:wrap;gap:var(--space-sm);justify-content:center}.jasper-page__quick-card{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-secondary);font-size:.875rem;text-decoration:none;transition:all .2s ease}.jasper-page__quick-card:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:var(--accent-primary-muted)}.dashboard{max-width:1200px;margin:0 auto}.balance-card{background:linear-gradient(135deg,var(--bg-card) 0%,var(--bg-tertiary) 100%);border-radius:var(--radius-lg);padding:var(--space-xl);margin-bottom:var(--space-xl)}.balance-card__label{font-size:.875rem;color:var(--text-secondary);margin-bottom:var(--space-sm)}.balance-card__amount{font-size:2rem;font-weight:700;letter-spacing:-.03em;margin-bottom:var(--space-md)}.balance-card__meta{display:flex;gap:var(--space-lg);font-size:.875rem}.balance-card .balance-meta{display:flex;align-items:center;gap:var(--space-sm);color:var(--text-secondary)}.balance-card .balance-meta--ok{color:var(--success)}.balance-card .balance-meta--out{color:var(--text-tertiary)}.card-hover{transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.card-hover:hover{transform:translateY(-2px);box-shadow:var(--shadow-glow)}.dashboard-row{display:flex;flex-wrap:wrap;gap:var(--space-md);margin-bottom:var(--space-xl)}.dashboard-row--kpis{align-items:stretch}.dashboard-row--charts{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-lg)}@media (max-width: 900px){.dashboard-row--charts{grid-template-columns:1fr}}.dashboard-chart-card--stat{display:flex;flex-direction:column}.dashboard-chart-card--stat .dashboard-chart-stat{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-lg)}.dashboard-chart-card--stat .dashboard-chart-stat__value{font-size:2.5rem;font-weight:700;color:var(--accent-secondary);letter-spacing:-.02em}.dashboard-chart-card--stat .dashboard-chart-stat__label{font-size:.875rem;color:var(--text-tertiary);margin-top:var(--space-xs)}.dashboard-chart-wrap--line .recharts-cartesian-grid-horizontal line{stroke:var(--border-subtle)}.dashboard-kpi{padding:var(--space-lg);background:var(--bg-card);border-radius:var(--radius-lg);transition:border-color var(--transition-fast),transform var(--transition-normal),box-shadow var(--transition-normal)}.dashboard-kpi--cluster{flex:1;margin-bottom:var(--space-xl)}.dashboard-kpi--link{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--space-md);min-width:140px;flex:1;max-width:180px;text-decoration:none;color:inherit}.dashboard-kpi--link:hover{border-color:var(--accent-primary);transform:translateY(-2px);box-shadow:var(--shadow-glow)}.dashboard-kpi__icon{width:64px;height:64px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);flex-shrink:0}.dashboard-kpi__content{flex:1;min-width:0}.dashboard-kpi__label{font-size:1rem;color:var(--text-tertiary);display:block;margin-top:2px}.dashboard-kpi__value{font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.dashboard-kpi__value--small{font-size:1.25rem}.dashboard-kpi__meta{display:flex;flex-wrap:wrap;gap:var(--space-md);margin-top:var(--space-sm);font-size:.8125rem}.dashboard-kpi__arrow{color:var(--text-tertiary);flex-shrink:0}.dashboard-kpi-meta{display:flex;align-items:center;gap:var(--space-xs);color:var(--text-secondary)}.dashboard-kpi-meta--ok{color:var(--success)}.dashboard-kpi-meta--out{color:var(--text-tertiary)}.dashboard-chart-card{overflow:hidden}.dashboard-chart-card__title{font-size:.9375rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--border-subtle)}.dashboard-chart-wrap{margin:0 -var(--space-sm)}.dashboard-chart-wrap--area .recharts-cartesian-grid-horizontal line,.dashboard-chart-wrap--bar .recharts-cartesian-grid-horizontal line{stroke:var(--border-subtle)}.dashboard-chart-tooltip{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-size:.8125rem;box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:2px}.dashboard-chart-tooltip__label{font-weight:600;color:var(--text-primary);margin-bottom:2px}.dashboard__recent{list-style:none;padding:0;margin:0}.dashboard__recent li{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) 0;border-bottom:1px solid var(--border-subtle);font-size:.9375rem}.dashboard__recent a{color:var(--accent-primary);text-decoration:none}.dashboard__recent a:hover{text-decoration:underline}.dashboard__recent-date{font-size:.8125rem;color:var(--text-tertiary)}.dashboard__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-lg);margin-bottom:var(--space-xl)}.quick-card{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-md);padding:var(--space-lg);background:var(--bg-card);border-radius:var(--radius-lg);color:inherit;text-decoration:none}.quick-card .quick-card__icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--accent-primary-muted);color:var(--accent-primary);border-radius:var(--radius-md)}.quick-card .quick-card__label{font-weight:500;font-size:.9375rem;flex:1}.quick-card .quick-card__value{font-size:.8125rem;color:var(--text-tertiary)}.quick-card .quick-card__arrow{color:var(--text-tertiary)}.card{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:var(--space-lg)}.config-page{max-width:720px;margin:0 auto}.page-header .subtitle code{background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm)}.config-categories{display:flex;flex-direction:column;gap:var(--space-md)}.config-category-card{display:flex;align-items:flex-start;gap:var(--space-lg);padding:var(--space-lg);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);color:inherit;text-decoration:none;transition:background var(--transition-fast)}.config-category-card:hover{background:var(--bg-card-hover)}.config-category-card__icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--accent-primary-muted);color:var(--accent-primary);border-radius:var(--radius-md);flex-shrink:0}.config-category-card__body{flex:1;min-width:0}.config-category-card__body h2{font-size:1rem;font-weight:600;margin-bottom:var(--space-xs)}.config-category-card__body p{font-size:.875rem;color:var(--text-secondary);margin-bottom:var(--space-sm)}.config-category-card__keys{font-size:.75rem;color:var(--text-tertiary)}.config-category-page{max-width:720px;margin:0 auto}.page-header .subtitle{font-size:.9375rem;color:var(--text-secondary);margin-bottom:var(--space-sm)}.page-header__hint{display:flex;align-items:flex-start;gap:var(--space-sm);font-size:.8125rem;color:var(--text-tertiary);background:var(--bg-tertiary);padding:var(--space-md);border-radius:var(--radius-md);margin-top:var(--space-md)}.page-header__hint code{background:var(--bg-primary);padding:2px 6px;border-radius:var(--radius-sm)}.settings-section{margin-bottom:var(--space-xl)}.settings-section__title{display:flex;align-items:center;gap:var(--space-sm);font-size:1.125rem;font-weight:600;margin-bottom:var(--space-xs)}.settings-section__desc{font-size:.875rem;color:var(--text-tertiary);margin-bottom:var(--space-md)}.settings-section--add{margin-top:var(--space-lg)}.settings-list{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}.settings-item{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-lg);padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-subtle)}.settings-item:last-child{border-bottom:none}.settings-item__main{flex:1;min-width:0}.settings-item__label{display:block;font-weight:500;font-size:.9375rem;margin-bottom:2px}.settings-item__desc{display:block;font-size:.8125rem;color:var(--text-tertiary);margin-bottom:var(--space-xs)}.settings-item__key{font-size:.75rem;color:var(--text-muted);background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm)}.settings-item__field{flex-shrink:0;display:flex;align-items:center;gap:var(--space-sm)}.settings-item__field input[type=text],.settings-item__field input[type=number]{width:220px;padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:.875rem}.settings-item__field input[type=text]:focus,.settings-item__field input[type=number]:focus{outline:none;border-color:var(--accent-primary)}.settings-item__field .saving{font-size:.75rem;color:var(--text-tertiary)}.settings-item--other .settings-item__main .settings-item__key{font-size:.8125rem}.config-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-lg)}.config-modal{width:100%;max-width:480px;max-height:90vh;overflow:auto}.config-modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg);border-bottom:1px solid var(--border-subtle)}.config-modal__header h3{margin:0;font-size:1.125rem}.config-modal__close{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:var(--space-xs)}.config-modal__close:hover{color:var(--text-primary)}.config-modal__body{padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-lg)}.config-modal__group label{display:block;font-size:.875rem;font-weight:500;margin-bottom:var(--space-xs)}.config-modal__group select,.config-modal__group input{width:100%;padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:.875rem}.config-modal__prefix{display:block;font-size:.75rem;color:var(--text-tertiary);margin-top:var(--space-xs)}.config-modal__footer{display:flex;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-lg);border-top:1px solid var(--border-subtle)}.data-table-container{width:100%}.data-table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-md);flex-wrap:wrap}.data-table-search{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);min-width:200px}.data-table-search:focus-within{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-primary-muted)}.data-table-search svg{color:var(--text-tertiary);flex-shrink:0}.data-table-search__input{flex:1;min-width:0;background:none;border:none;color:var(--text-primary);font-size:.875rem}.data-table-search__input::placeholder{color:var(--text-tertiary)}.data-table-search__input:focus{outline:none}.data-table-bulk-actions{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.data-table-bulk-count{font-size:.8125rem;color:var(--text-secondary);margin-right:var(--space-xs)}.data-table--custom{width:100%;border-collapse:collapse;font-size:.875rem}.data-table--custom .data-table__th,.data-table--custom .data-table__td{padding:var(--space-sm) var(--space-md);text-align:left;border-bottom:1px solid var(--border-subtle);vertical-align:middle}.data-table--custom .data-table__th{color:var(--text-tertiary);font-weight:500;white-space:nowrap;background:var(--bg-tertiary)}.data-table--custom .data-table__th-inner{display:flex;align-items:center;gap:var(--space-xs)}.data-table--custom .data-table__drag-handle{cursor:grab;color:var(--text-muted);display:flex}.data-table--custom .data-table__drag-handle:hover{color:var(--text-secondary)}.data-table--custom .data-table__sort{display:inline-flex;align-items:center;gap:var(--space-xs);background:none;border:none;color:inherit;font:inherit;cursor:pointer;padding:0}.data-table--custom .data-table__sort:hover:not(:disabled){color:var(--text-primary)}.data-table--custom .data-table__sort:disabled{cursor:default}.data-table--custom .data-table__sort--active{color:var(--accent-primary)}.data-table--custom .data-table__sort svg{flex-shrink:0}.data-table--custom .data-table__th--checkbox,.data-table--custom .data-table__td--checkbox{width:40px;padding-right:0}.data-table--custom .data-table__th--actions,.data-table--custom .data-table__td--actions{width:48px;text-align:right}.data-table--custom .data-table__check{background:none;border:none;padding:0;cursor:pointer;color:var(--text-tertiary);display:flex;align-items:center;justify-content:center}.data-table--custom .data-table__check:hover{color:var(--accent-primary)}.data-table--custom .data-table__row{transition:background var(--transition-fast)}.data-table--custom .data-table__row--clickable{cursor:pointer}.data-table--custom .data-table__row:hover td{background:var(--bg-tertiary)}.data-table--custom .data-table__row--selected td{background:var(--accent-primary-muted)}.data-table--custom .data-table__row--selected:hover td{background:#00d4aa33}.data-table--custom .data-table__loading,.data-table--custom .data-table__empty{text-align:center;padding:var(--space-xl)!important;color:var(--text-secondary)}.data-table__body--loading .data-table__row--skeleton td{padding:var(--space-md);vertical-align:middle}.data-table__shimmer{display:inline-block;height:14px;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--bg-tertiary) 0%,var(--bg-elevated) 50%,var(--bg-tertiary) 100%);background-size:200% 100%;animation:data-table-shimmer 1.2s ease-in-out infinite;max-width:100%;min-width:40px}.data-table__row--skeleton .data-table__td{border-bottom-color:var(--border-subtle)}@keyframes data-table-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.data-table--custom code{font-size:.8125rem;background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm)}.data-table-pagination{margin-top:var(--space-md);display:flex;justify-content:flex-end;align-items:center;gap:var(--space-sm)}.data-page{max-width:960px;margin:0 auto}.guide-list{list-style:none;padding:0;margin:0}.guide-list__item{padding:var(--space-md);border-bottom:1px solid var(--border-subtle)}.guide-list__head{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.guide-list__title{font-weight:600;flex:1;min-width:0}.guide-list__order{font-size:.75rem;color:var(--text-tertiary)}.guide-list__delete{padding:var(--space-xs)}.guide-list__content{font-size:.875rem;color:var(--text-secondary);margin:var(--space-xs) 0 0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--space-lg);background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-xl);max-width:480px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.guide-modal{max-width:520px}.page-header .subtitle{font-size:.9375rem;color:var(--text-secondary)}.page-header__filter{margin-top:var(--space-md);display:flex;align-items:center;gap:var(--space-sm)}.page-header__filter label{font-size:.875rem;color:var(--text-secondary)}.page-header__filter input{padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);width:120px}.card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:var(--space-lg)}.card h2{font-size:1rem;font-weight:600;margin-bottom:var(--space-md)}.table-wrap{overflow-x:auto}.data-table th{color:var(--text-tertiary);font-weight:500}.data-table tr:hover td{background:var(--bg-tertiary)}.data-table code{font-size:.8125rem;background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm)}.pagination{margin-top:var(--space-md);display:flex;gap:var(--space-sm)}.btn{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;display:inline-flex;align-items:center;gap:var(--space-sm);cursor:pointer;border:none;transition:all var(--transition-fast)}.btn-primary{background:var(--accent-primary);color:var(--bg-primary)}.btn-primary:hover:not(:disabled){background:var(--accent-primary-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-ghost{background:var(--bg-tertiary);color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--bg-elevated);color:var(--text-primary)}.btn-ghost:disabled{opacity:.5;cursor:not-allowed}.detail-page{max-width:1200px;margin:0 auto}.detail-header{margin-bottom:var(--space-xl)}.detail-hero{display:flex;align-items:center;gap:var(--space-xl);padding:var(--space-xl);background:linear-gradient(135deg,var(--bg-card) 0%,var(--bg-tertiary) 100%);border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.detail-hero__avatar{width:80px;height:80px;border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:var(--bg-primary);display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;flex-shrink:0;overflow:hidden}.detail-hero__avatar--skin{background:var(--bg-tertiary)}.detail-hero__avatar--skin img{width:100%;height:100%;object-fit:cover}.detail-hero__info{flex:1;min-width:0}.detail-hero__info-header{display:flex;align-items:center;gap:var(--space-sm)}.detail-hero__info h1{font-size:1.75rem;font-weight:700;margin:0 0 var(--space-xs);letter-spacing:-.02em}.detail-hero__uuid{font-size:.8125rem;color:var(--text-tertiary);margin:0 0 var(--space-sm)}.detail-hero__uuid code{font-size:.75rem;background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm)}.detail-hero__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm)}.detail-hero__date{font-size:.8125rem;color:var(--text-secondary)}.detail-hero__subtitle{font-size:.8125rem;color:var(--text-tertiary);margin:0 0 var(--space-sm)}.detail-hero__subtitle code{font-size:.75rem;background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm)}.detail-hero__avatar--icon{background:var(--accent-primary-muted);color:var(--accent-primary)}.detail-hero__avatar--ban{background:var(--error-muted);color:var(--error)}.detail-hero__avatar--mute{background:var(--warning);color:var(--bg-primary)}.detail-badge{display:inline-block;padding:2px 8px;font-size:.75rem;font-weight:500;background:var(--bg-elevated);border-radius:var(--radius-sm);color:var(--text-secondary)}.detail-badge--ban{background:var(--error-muted);color:var(--error)}.detail-badge--mute{background:var(--warning);color:var(--bg-primary)}.detail-badge--kick{background:var(--info);color:var(--bg-primary)}.detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-lg)}.detail-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-lg)}.detail-card--wide{grid-column:1/-1}.detail-card h2{display:flex;align-items:center;gap:var(--space-sm);font-size:1rem;font-weight:600;margin:0 0 var(--space-md);color:var(--text-primary)}.detail-card h3{font-size:.8125rem;font-weight:600;color:var(--text-tertiary);margin:0 0 var(--space-xs);display:flex;align-items:center;gap:var(--space-xs)}.detail-list--compact{display:grid;grid-template-columns:auto 1fr;gap:var(--space-xs) var(--space-lg)}.detail-list--compact dt{color:var(--text-tertiary);font-size:.8125rem}.detail-list--compact dd{margin:0;font-size:.9375rem}.detail-list--compact code{font-size:.75rem}.detail-stats-row{display:flex;flex-wrap:wrap;gap:var(--space-lg);margin-bottom:var(--space-sm)}.detail-stat{text-align:center;padding:var(--space-md) 0}.detail-stat__value{display:block;font-size:1.5rem;font-weight:700;color:var(--accent-primary)}.detail-stat__label{font-size:.75rem;color:var(--text-tertiary)}.detail-link{font-size:.875rem;color:var(--accent-primary);text-decoration:none}.detail-link:hover{text-decoration:underline}.detail-empty{font-size:.875rem;color:var(--text-tertiary);margin:0}.detail-list-mini{list-style:none;padding:0;margin:0}.detail-list-mini li{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap;padding:var(--space-xs) 0;border-bottom:1px solid var(--border-subtle);font-size:.875rem}.detail-list-mini__reason{color:var(--text-secondary);flex:1;min-width:0}.detail-list-mini__date{font-size:.75rem;color:var(--text-muted)}.detail-tags{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.detail-more{font-size:.75rem;color:var(--text-muted);margin-top:var(--space-sm)}.detail-others{display:grid;gap:var(--space-lg)}.detail-code{font-size:.75rem;background:var(--bg-tertiary);padding:var(--space-sm);border-radius:var(--radius-sm);overflow-x:auto;margin:0}.detail-chart-wrap{margin-top:var(--space-md);min-height:180px}.detail-guilds{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-md)}.detail-guild-card{display:block;padding:var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);text-decoration:none;color:inherit;transition:border-color var(--transition-fast),background var(--transition-fast)}.detail-guild-card:hover{border-color:var(--accent-primary);background:var(--bg-elevated)}.detail-guild-card__header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.detail-guild-card__name{font-weight:600;font-size:.9375rem}.detail-guild-card__tag{font-size:.75rem;color:var(--text-tertiary);background:var(--bg-elevated);padding:2px 6px;border-radius:var(--radius-sm)}.detail-guild-card__meta{display:grid;grid-template-columns:auto 1fr;gap:var(--space-xs) var(--space-sm);font-size:.8125rem}.detail-guild-card__meta dt{color:var(--text-tertiary)}.detail-guild-card__meta dd{margin:0}.detail-skeleton .detail-skeleton__hero{height:140px;background:var(--bg-tertiary);border-radius:var(--radius-lg);margin-bottom:var(--space-lg);animation:detail-shimmer 1.2s ease-in-out infinite}.detail-skeleton .detail-skeleton__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-lg)}.detail-skeleton .detail-skeleton__card{height:160px;background:var(--bg-tertiary);border-radius:var(--radius-lg);animation:detail-shimmer 1.2s ease-in-out infinite;animation-delay:.1s}@keyframes detail-shimmer{0%,to{opacity:.6}50%{opacity:1}}.detail-report-reason{white-space:pre-wrap;margin-bottom:var(--space-md);color:var(--text-primary);line-height:1.5}.detail-report-notes{width:100%;margin-bottom:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:.875rem;resize:vertical}.detail-report-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.detail-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:var(--space-md)}.detail-stat-mini{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);padding:var(--space-sm);background:var(--bg-tertiary);border-radius:var(--radius-md);color:var(--text-secondary)}.detail-stat-mini__value{font-size:1.25rem;font-weight:700;color:var(--accent-primary)}.detail-stat-mini__label{font-size:.75rem}.detail-island-card .detail-island-card__hint{font-size:.8125rem;color:var(--text-tertiary);margin-bottom:var(--space-md)}.detail-sessions-toolbar,.detail-logs-toolbar{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.detail-sessions-toolbar select,.detail-logs-toolbar select{padding:var(--space-xs) var(--space-sm);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.875rem}.detail-session-row{width:100%;text-align:left;padding:var(--space-sm);border-radius:var(--radius-sm)}.detail-session-row:hover{background:var(--bg-tertiary)}.detail-list-mini__item--selected .detail-session-row{background:var(--accent-primary-muted);color:var(--accent-primary)}.detail-session-logs{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border-subtle)}.detail-session-logs h3{font-size:.9375rem;margin-bottom:var(--space-sm)}.detail-badge--role{display:inline-flex;align-items:center;gap:4px;padding-right:4px}.detail-badge-scope{font-size:.7em;opacity:.9;margin-left:2px}.detail-badge-scope:before{content:" · "}.detail-badge-remove{display:inline-flex;align-items:center;justify-content:center;padding:2px;margin-left:2px;background:transparent;border:none;border-radius:var(--radius-sm);color:inherit;cursor:pointer;opacity:.85}.detail-badge-remove:hover{opacity:1;background:var(--bg-tertiary)}.detail-badge-remove:disabled{opacity:.5;cursor:not-allowed}.detail-roles-add{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border-subtle)}.detail-roles-add-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-md)}.detail-roles-label{display:flex;flex-direction:column;gap:var(--space-xs);font-size:.8125rem;color:var(--text-secondary)}.detail-roles-label span{font-weight:500}.detail-roles-select{min-width:200px;padding:var(--space-xs) var(--space-sm);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.875rem}.detail-economy-hint{font-size:.8125rem;color:var(--text-tertiary);margin:0 0 var(--space-sm)}.detail-economy-edit{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border-subtle);display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-md)}.detail-economy-edit__inputs{display:flex;flex-wrap:wrap;gap:var(--space-md)}.detail-economy-edit__inputs label{display:flex;flex-direction:column;gap:var(--space-xs);font-size:.8125rem;color:var(--text-secondary)}.detail-economy-edit__inputs label input{width:120px;padding:var(--space-xs) var(--space-sm);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-primary)}.minecraft-preview{font-size:.9375rem;line-height:1.5;word-break:break-word;min-height:1.5em}.minecraft-preview--font{font-family:VT323,Minecraft,monospace;font-size:1rem;letter-spacing:.02em}.minecraft-preview__segment{white-space:pre-wrap}.render-input{margin-bottom:var(--space-md)}.render-input--inline{display:inline-flex;align-items:center;gap:var(--space-md);margin-bottom:0}.render-input__label{display:block;font-size:.875rem;font-weight:500;color:var(--text-secondary);margin-bottom:var(--space-xs)}.render-input__row{display:flex;align-items:center;gap:var(--space-sm);position:relative}.render-input__field{flex:1;min-width:0;padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:.9375rem;font-family:inherit;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.render-input__field:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-primary-muted)}.render-input__field--area{min-height:80px;resize:vertical}.render-input__color-preview{width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);flex-shrink:0}.render-input__preview{margin-top:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.render-input__preview-label{display:block;font-size:.6875rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);margin-bottom:var(--space-xs)}.render-input__preview--right{margin-top:0;margin-left:var(--space-md);flex:1;min-width:120px}.wizard{max-width:720px}.wizard__steps{display:flex;gap:var(--space-sm);margin-bottom:var(--space-lg);padding:0;list-style:none}.wizard__step{display:flex;align-items:center;gap:var(--space-sm);font-size:.875rem;color:var(--text-tertiary)}.wizard__step.wizard__step--current{color:var(--accent-primary);font-weight:600}.wizard__step.wizard__step--done{color:var(--success)}.wizard__step-num{width:24px;height:24px;border-radius:50%;background:var(--bg-tertiary);color:inherit;display:flex;align-items:center;justify-content:center;font-size:.75rem}.wizard__step--current .wizard__step-num{background:var(--accent-primary-muted);color:var(--accent-primary)}.wizard__step--done .wizard__step-num{background:var(--success-muted);color:var(--success)}.wizard__step-label{white-space:nowrap}.wizard__content{padding:var(--space-xl)}.wizard__form{display:flex;flex-direction:column;gap:var(--space-lg);margin-bottom:var(--space-xl)}.wizard__actions{display:flex;justify-content:space-between;margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid var(--border-subtle)}.form-group label{display:block;font-size:.875rem;font-weight:500;margin-bottom:var(--space-xs);color:var(--text-secondary)}.form-group input,.form-group textarea,.form-group select{width:100%;max-width:320px;padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:.9375rem;font-family:inherit}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-primary-muted)}.wizard__permissions-hint{font-size:.875rem;color:var(--text-secondary);margin-bottom:var(--space-md)}.permissions-grid{display:flex;flex-wrap:wrap;gap:var(--space-sm);max-height:320px;overflow-y:auto;padding:var(--space-xs)}.permission-chip{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:.8125rem;cursor:pointer;transition:all var(--transition-fast)}.permission-chip input{margin:0}.permission-chip:hover{border-color:var(--accent-primary);background:var(--accent-primary-muted)}.permission-chip input:checked+span{color:var(--accent-primary)}.wizard__confirm .detail-list{margin-bottom:var(--space-md)}.color-preview{display:inline-block;width:14px;height:14px;border-radius:4px;vertical-align:middle;margin-right:var(--space-xs)}.permissions-preview{font-size:.875rem;color:var(--text-secondary);margin:0;padding-left:var(--space-lg)}.permissions-preview li{margin-bottom:var(--space-xs)}.permissions-preview code{font-size:.8125rem}.page-header__row{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-md);flex-wrap:wrap}.page-header__filters--multi{display:flex;flex-wrap:wrap;gap:var(--space-md);margin-top:var(--space-md)}.filter-group label{display:block;font-size:.75rem;color:var(--text-tertiary);margin-bottom:var(--space-xs)}.filter-group input{padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);width:180px;font-size:.875rem}.btn-back{display:inline-flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.page-header--with-back .page-title{margin-top:0}.detail-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-md)}.detail-list{display:grid;grid-template-columns:auto 1fr;gap:var(--space-xs) var(--space-lg)}.detail-list dt{color:var(--text-tertiary);font-size:.875rem}.detail-list dd{margin:0;font-size:.9375rem}.detail-list code{font-size:.8125rem;background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm)}.text-error{color:var(--error)}.job-detail-actions-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-md)}.job-tier-block{border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-md)}.job-tier-block__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm);font-weight:600}.job-tier-block__rewards{display:flex;flex-wrap:wrap;gap:var(--space-md);margin-bottom:var(--space-sm)}.job-tier-block__objectives label{display:block;margin-bottom:var(--space-xs);font-size:.875rem;color:var(--text-tertiary)}.job-objective-row{display:flex;gap:var(--space-sm);margin-top:var(--space-xs)}.job-objective-row input{padding:var(--space-xs) var(--space-sm);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.875rem}.i18n-toolbar{display:flex;align-items:center;gap:var(--space-lg);margin-top:var(--space-md);flex-wrap:wrap}.i18n-toggle{display:flex;align-items:center;gap:var(--space-sm);font-size:.875rem;color:var(--text-secondary);cursor:pointer}.i18n-toggle input{margin:0}.i18n-card{overflow-x:auto}.i18n-table{width:100%;border-collapse:collapse;font-size:.875rem}.i18n-table th,.i18n-table td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border-subtle);vertical-align:middle}.i18n-table th{text-align:left;color:var(--text-tertiary);font-weight:500}.i18n-table__key{min-width:200px}.i18n-table__key code{font-size:.8125rem;background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm)}.i18n-table__locale{min-width:140px}.i18n-table__group-row{cursor:pointer;background:var(--bg-tertiary)}.i18n-table__group-row td{display:flex;align-items:center;gap:var(--space-sm);font-weight:500;color:var(--text-secondary)}.i18n-table__group-row:hover td{background:var(--bg-elevated)}.i18n-table__group-label{color:var(--accent-primary)}.i18n-table__group-count{font-size:.75rem;color:var(--text-tertiary);margin-left:auto}.i18n-table__row:hover td{background:var(--bg-tertiary)}.i18n-table__cell-btn{width:100%;text-align:left;padding:var(--space-xs) 0;background:none;border:none;color:inherit;font:inherit;cursor:pointer;border-radius:var(--radius-sm);min-height:32px}.i18n-table__cell-btn:hover{background:var(--bg-elevated)}.i18n-table__input{width:100%;padding:var(--space-xs) var(--space-sm);background:var(--bg-primary);border:1px solid var(--accent-primary);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.875rem}.i18n-table__input:focus{outline:none;box-shadow:0 0 0 2px var(--accent-primary-muted)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-lg)}.modal{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);max-width:520px;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}.modal__header{padding:var(--space-lg);border-bottom:1px solid var(--border-subtle)}.modal__header h2{margin:0 0 var(--space-xs);font-size:1.25rem}.modal__subtitle{font-size:.875rem;color:var(--text-secondary);margin:0 0 var(--space-sm)}.modal__progress{height:6px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.modal__progress-bar{height:100%;background:var(--accent-primary);transition:width var(--transition-normal)}.modal__body{padding:var(--space-lg);overflow-y:auto;flex:1}.modal__footer{padding:var(--space-lg);border-top:1px solid var(--border-subtle);display:flex;justify-content:space-between;align-items:center;gap:var(--space-md)}.modal__footer-right{display:flex;gap:var(--space-sm)}.i18n-game-key{margin:0 0 var(--space-md)}.i18n-game-key code{font-size:1rem;background:var(--accent-primary-muted);color:var(--accent-primary);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);display:inline-block}.i18n-game-fields{display:flex;flex-direction:column;gap:var(--space-md)}.i18n-game-field label{display:block;font-size:.75rem;color:var(--text-tertiary);margin-bottom:var(--space-xs)}.i18n-game-field input{width:100%;padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:.9375rem}.i18n-game-field input:focus{outline:none;border-color:var(--accent-primary)}.i18n-game-field--missing input{border-color:var(--warning);background:var(--error-muted)}.i18n-table__empty{text-align:center;padding:var(--space-xl)!important;color:var(--text-secondary)}.template-detail-page{max-width:900px;margin:0 auto}.template-detail-field label{display:block;font-size:.8125rem;color:var(--text-secondary);margin-bottom:var(--space-xs)}.template-detail-field input{width:100%;padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:.9375rem}.template-detail-config-header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:var(--space-md);margin-bottom:var(--space-md)}.template-detail-config-header h2{margin:0 0 var(--space-xs);display:flex;align-items:center;gap:var(--space-sm)}.template-detail-config-hint{display:flex;align-items:flex-start;gap:var(--space-xs);font-size:.8125rem;color:var(--text-tertiary);margin:0}.template-detail-config-list{list-style:none;padding:0;margin:0;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}.template-detail-config-item{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-lg);padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-subtle)}.template-detail-config-item:last-child{border-bottom:none}.template-detail-config-item__main{flex:1;min-width:0}.template-detail-config-item__label{display:block;font-weight:500;font-size:.9375rem;margin-bottom:2px}.template-detail-config-item__desc{display:block;font-size:.8125rem;color:var(--text-tertiary);margin-bottom:var(--space-xs)}.template-detail-config-item__key{font-size:.75rem;color:var(--text-muted);background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm)}.template-detail-config-item__field{flex-shrink:0;display:flex;align-items:center;gap:var(--space-sm)}.template-detail-config-item__field input[type=text],.template-detail-config-item__field input[type=number]{width:200px;padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:.875rem}.template-detail-config-value{flex:1;min-width:120px;padding:var(--space-xs) var(--space-sm);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.875rem;font-family:inherit;resize:vertical}.template-detail-config-value.template-detail-config-value--textarea{min-height:60px}.template-detail-config-remove{padding:var(--space-xs);color:var(--text-tertiary)}.template-detail-config-remove:hover{color:var(--error)}.template-detail-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-lg)}.template-detail-modal{width:100%;max-width:520px;max-height:90vh;overflow:auto}.template-detail-modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg);border-bottom:1px solid var(--border-subtle)}.template-detail-modal__header h3{margin:0;font-size:1.125rem}.template-detail-modal__close{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:var(--space-xs)}.template-detail-modal__close:hover{color:var(--text-primary)}.template-detail-modal__body{padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-lg)}.template-detail-modal__intro{font-size:.875rem;color:var(--text-secondary);margin:0}.template-detail-modal__group label{display:block;font-size:.875rem;font-weight:500;margin-bottom:var(--space-xs)}.template-detail-modal__group input[type=text],.template-detail-modal__group input[type=number],.template-detail-modal__group select{width:100%;padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:.875rem}.template-detail-modal__search{margin-bottom:var(--space-sm)}.template-detail-modal__select{min-height:120px}.template-detail-modal__select option{padding:2px 0}.template-detail-modal__help{display:block;font-size:.75rem;color:var(--text-tertiary);margin-top:var(--space-xs)}.template-detail-modal__footer{display:flex;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-lg);border-top:1px solid var(--border-subtle)}.template-detail-actions{margin-top:var(--space-xl)}.economy-page{max-width:1200px}.economy-analytics{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-md);margin-bottom:var(--space-xl)}.economy-analytics__card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-lg);display:flex;align-items:flex-start;gap:var(--space-md);transition:all var(--transition-fast)}.economy-analytics__card:hover{border-color:var(--accent-primary);box-shadow:var(--shadow-glow)}.economy-analytics__icon{color:var(--accent-primary);flex-shrink:0}.economy-analytics__label{display:block;font-size:.75rem;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-xs)}.economy-analytics__value{font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.economy-section{margin-bottom:var(--space-lg)}.economy-section__title{display:flex;align-items:center;gap:var(--space-sm);font-size:1rem;font-weight:600;margin-bottom:var(--space-xs);color:var(--warning)}.economy-section__subtitle{font-size:.875rem;color:var(--text-secondary);margin-bottom:var(--space-md)}.economy__in{color:var(--success)}.economy__out{color:var(--error)}.security-page{max-width:960px}.security-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-md);margin-bottom:var(--space-xl)}.security-stat-card{display:flex;align-items:center;gap:var(--space-md)}.security-stat-card__icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md)}.security-stat-card__content{display:flex;flex-direction:column;gap:2px}.security-stat-card__value{font-size:1.25rem;font-weight:700}.security-stat-card__label{font-size:.75rem;color:var(--text-tertiary)}.security-section{margin-bottom:var(--space-lg)}.security-section h2{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.security-log-preview{list-style:none;padding:0;margin:0 0 var(--space-md);font-size:.875rem}.security-log-preview li{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap;padding:var(--space-xs) 0;border-bottom:1px solid var(--border-subtle)}.security-log-preview__type{font-size:.75rem;text-transform:uppercase;color:var(--text-tertiary);min-width:60px}.security-log-preview code{font-size:.8125rem;background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm)}.security-log-preview__ts{font-size:.75rem;color:var(--text-muted);margin-left:auto}.security-modules-list{display:flex;flex-direction:column;gap:var(--space-sm)}.security-module-item{display:flex;align-items:baseline;gap:var(--space-md);font-size:.9375rem}.security-module-item__name{font-size:.8125rem;background:var(--bg-tertiary);padding:2px 8px;border-radius:var(--radius-sm);min-width:200px}.security-module-item__desc{color:var(--text-secondary)}.security-tips{margin:0;padding-left:1.25rem;color:var(--text-secondary);font-size:.9375rem}.security-tips li{margin-bottom:var(--space-sm)}.security-tips code{font-size:.8125rem;background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm)}.security-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-lg);margin-bottom:var(--space-xl)}.security-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-lg);text-decoration:none;color:inherit;transition:all var(--transition-fast);display:block}.security-card:hover{border-color:var(--accent-primary);box-shadow:var(--shadow-glow)}.security-card h2{font-size:1.125rem;margin:0 0 var(--space-sm)}.security-card p{font-size:.875rem;color:var(--text-secondary);margin:0}.security-card__icon{color:var(--accent-primary);margin-bottom:var(--space-md)}.security-tabs{display:flex;gap:var(--space-xs);margin-bottom:var(--space-lg)}.security-tabs button{padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-secondary);font-size:.875rem;cursor:pointer}.security-tabs button.active{background:var(--accent-primary-muted);color:var(--accent-primary);border-color:var(--accent-primary)}.security-form{display:flex;gap:var(--space-sm);margin-bottom:var(--space-lg)}.security-form input{flex:1;padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:.9375rem}.security-list{list-style:none;padding:0;margin:0}.security-list li{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) 0;border-bottom:1px solid var(--border-subtle)}.security-list li code{font-size:.875rem;background:var(--bg-tertiary);padding:2px 8px;border-radius:var(--radius-sm)}.security-list__remove{padding:var(--space-xs);background:none;border:none;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm)}.security-list__remove:hover{color:var(--error);background:var(--error-muted)}.text-secondary{color:var(--text-secondary);font-size:.9375rem}.spoof-page{max-width:720px;margin:0 auto}.spoof-card{margin-bottom:var(--space-lg)}.spoof-card h2{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.spoof-form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-md);margin-bottom:var(--space-md)}.spoof-check{display:flex;align-items:center;gap:var(--space-sm);font-size:.9375rem;cursor:pointer}.spoof-check input{width:18px;height:18px}.spoof-field label{display:block;font-size:.8125rem;color:var(--text-secondary);margin-bottom:var(--space-xs)}.spoof-field input,.spoof-field select,.spoof-field textarea{width:100%;padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:.9375rem;font-family:inherit}.spoof-field textarea{min-height:100px;resize:vertical}.spoof-field--full{grid-column:1/-1}.spoof-actions{margin-top:var(--space-lg)}.loading-msg,.text-error{padding:var(--space-lg)}.admin-users-page{max-width:960px;margin:0 auto}.admin-users-toolbar{margin-bottom:var(--space-md)}.admin-users-id{font-size:.75rem;color:var(--text-tertiary)}.admin-users-modal{max-width:420px}.admin-users-modal__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg)}.admin-users-modal__header h2{margin:0;font-size:1.125rem}.admin-users-modal__body{display:flex;flex-direction:column;gap:var(--space-md)}.admin-users-modal__footer{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid var(--border-subtle)}.admin-users-modal__actions{display:flex;gap:var(--space-sm)}.admin-users-form-group label{display:block;font-size:.8125rem;color:var(--text-secondary);margin-bottom:var(--space-xs)}.admin-users-form-group input,.admin-users-form-group select{width:100%;padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:.9375rem}.btn-icon,.btn-sm{padding:var(--space-xs)}.text-error{color:var(--error);font-size:.875rem;margin-bottom:var(--space-md)}.admin-roles-page{max-width:1200px;margin:0 auto}.admin-roles-layout{display:grid;grid-template-columns:220px 1fr;gap:var(--space-lg)}@media (max-width: 768px){.admin-roles-layout{grid-template-columns:1fr}}.admin-roles-sidebar h2{font-size:.9375rem;font-weight:600;margin-bottom:var(--space-md)}.admin-roles-list{list-style:none;padding:0;margin:0}.admin-roles-list__item{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-primary);font-size:.9375rem;cursor:pointer;text-align:left;transition:background var(--transition-fast)}.admin-roles-list__item:hover{background:var(--bg-tertiary)}.admin-roles-list__item--active{background:var(--accent-primary-muted);color:var(--accent-primary)}.admin-roles-list__icon{font-size:1.1rem}.admin-roles-list__label{flex:1;min-width:0}.admin-roles-main__header{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap;margin-bottom:var(--space-lg)}.admin-roles-main__header h2{margin:0;font-size:1.25rem;flex:1;min-width:0}.detail-badge--full{background:var(--success-muted);color:var(--success)}.admin-roles-categories{display:flex;flex-direction:column;gap:var(--space-xl)}.admin-roles-category h3{font-size:.9375rem;font-weight:600;color:var(--text-secondary);margin:0 0 var(--space-md);padding-bottom:var(--space-xs);border-bottom:1px solid var(--border-subtle)}.admin-roles-perms{list-style:none;padding:0;margin:0}.admin-roles-perm{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-sm) 0;border-bottom:1px solid var(--border-subtle);font-size:.9375rem}.admin-roles-perm:last-child{border-bottom:none}.admin-roles-perm__label{flex:1;min-width:0}.admin-roles-perm__selector{display:flex;gap:2px}.admin-roles-perm__btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.admin-roles-perm__btn:hover{background:var(--bg-elevated);color:var(--text-primary)}.admin-roles-perm__btn--allow{background:var(--success-muted);color:var(--success);border-color:var(--success)}.admin-roles-perm__btn--deny{background:var(--error-muted);color:var(--error);border-color:var(--error)}.admin-roles-perm__btn--default{background:var(--bg-elevated);color:var(--text-secondary)}.loading-msg{color:var(--text-secondary);padding:var(--space-lg)}.admin-profile-page{max-width:640px}.admin-profile-message{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-md)}.admin-profile-message--success{background:var(--accent-primary-muted);color:var(--accent-primary)}.admin-profile-message--error{background:#ef44441a;color:var(--text-error, #ef4444)}.admin-profile-form{display:flex;flex-direction:column;gap:var(--space-lg)}.admin-profile-section h2{display:flex;align-items:center;gap:var(--space-sm);font-size:1rem;margin-bottom:var(--space-md)}.admin-profile-field{margin-bottom:var(--space-md)}.admin-profile-field:last-child{margin-bottom:0}.admin-profile-field label{display:block;font-size:.8125rem;font-weight:500;color:var(--text-secondary);margin-bottom:var(--space-xs)}.admin-profile-field input{width:100%;max-width:360px;padding:var(--space-sm) var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font-size:.9375rem}.admin-profile-field input[readonly][disabled]{opacity:.8;cursor:not-allowed}.admin-profile-field--readonly input{background:var(--bg-tertiary)}.admin-profile-hint{font-size:.8125rem;color:var(--text-tertiary);margin-bottom:var(--space-md)}.admin-profile-placeholder{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-lg);background:var(--bg-tertiary);border-radius:var(--radius-md);color:var(--text-tertiary)}.admin-profile-placeholder svg{flex-shrink:0;opacity:.6}.admin-profile-placeholder--success{background:var(--accent-primary-muted);color:var(--accent-primary)}.admin-profile-totp .admin-profile-field{max-width:160px}.admin-profile-totp__form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-md);margin-top:var(--space-md)}.admin-profile-totp__actions{display:flex;gap:var(--space-sm)}.admin-profile-actions{margin-top:var(--space-sm)}.gamedesign-page{max-width:1600px;margin:0 auto}.gamedesign-page__header{margin-bottom:var(--space-lg)}.gamedesign-page__header-inner{display:flex;align-items:center;gap:var(--space-lg);flex-wrap:wrap}.gamedesign-page__title{font-size:1.5rem;font-weight:700;letter-spacing:-.02em;margin:0;color:var(--accent-primary)}.gamedesign-page__subtitle{font-size:.875rem;color:var(--text-tertiary);margin:0}.gamedesign-page__header-actions{margin-left:auto}.gd-btn--header{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);font-size:.875rem;background:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--border-subtle)}.gd-btn--header:hover{background:var(--accent-primary-muted);color:var(--accent-primary);border-color:var(--accent-primary)}.gamedesign-page__meta-desc{margin:var(--space-sm) 0 0;font-size:.8125rem;color:var(--text-tertiary)}.gamedesign-main{flex:1;min-width:0}.gd-popup-overlay{position:fixed;top:0;right:0;bottom:0;left:0;margin:0;padding:var(--space-lg);border:none;max-width:none;width:100%;height:100%;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.gd-popup-overlay::backdrop{background:#0009}.gd-popup{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:640px;width:100%;max-height:85vh;overflow:hidden;display:flex;flex-direction:column}.gd-popup__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg);border-bottom:1px solid var(--border-subtle)}.gd-popup__title{font-size:1.25rem;font-weight:700;margin:0;color:var(--accent-primary)}.gd-popup__hint{padding:0 var(--space-lg);margin:0 0 var(--space-sm);margin-top:var(--space-md);font-size:.8125rem;color:var(--text-tertiary);line-height:1.4}.gd-popup__close{background:none;border:none;color:var(--text-tertiary);font-size:1.5rem;cursor:pointer;line-height:1;padding:0 4px}.gd-popup__close:hover{color:var(--text-primary)}.gd-popup__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-sm);padding:var(--space-lg);overflow-y:auto}.gd-popup__card{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-md);border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-secondary);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);text-align:center}.gd-popup__card:hover{background:var(--bg-elevated);color:var(--accent-primary);border-color:var(--accent-primary)}.gd-popup__card--active{color:var(--accent-primary);border-color:var(--accent-primary);background:var(--accent-primary-muted)}.gd-popup__card--locked{cursor:not-allowed;opacity:.75;position:relative}.gd-popup__card--locked:hover{background:var(--bg-card);color:var(--text-secondary);border-color:var(--border-subtle)}.gd-popup__card-lock{position:absolute;top:var(--space-xs);right:var(--space-xs);color:var(--text-tertiary)}.gd-popup__card-icon{flex-shrink:0;opacity:.9}.gd-popup__card-label{line-height:1.2}.gd-section{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}.gd-section__header{padding:var(--space-lg);border-bottom:1px solid var(--border-subtle)}.gd-section__title{font-size:1.25rem;font-weight:700;margin-bottom:var(--space-xs)}.gd-section__desc{font-size:.875rem;color:var(--text-secondary);line-height:1.5}.gd-section__content{padding:var(--space-lg);min-height:400px;display:flex;flex-direction:column}.gd-section__content.gd-section__content--flow{min-height:620px}.gd-placeholder{display:flex;flex-direction:column;gap:var(--space-lg)}.gd-placeholder__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-lg)}.gd-placeholder__card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-lg)}.gd-placeholder__card h3{font-size:1rem;font-weight:600;margin-bottom:var(--space-md)}.gd-placeholder__card p{font-size:.875rem;color:var(--text-secondary);margin-bottom:var(--space-md)}.gd-form-row{margin-bottom:var(--space-md)}.gd-form-row label{display:block;font-size:.8125rem;color:var(--text-secondary);margin-bottom:var(--space-xs)}.gd-form-row input,.gd-form-row select{width:100%;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--bg-tertiary);color:var(--text-primary);font-size:.875rem}.gd-btn{padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-md);font-size:.875rem;font-weight:600;border:none;background:var(--accent-primary);color:var(--bg-primary);cursor:pointer;transition:all var(--transition-fast)}.gd-btn:hover{background:var(--accent-primary-hover);transform:translateY(-1px)}.gd-btn--sm{padding:var(--space-xs) var(--space-md);font-size:.8125rem}.gd-btn--danger{background:var(--error);color:#fff}.gd-btn--danger:hover{background:#ff6b7a}.gd-metrics{list-style:none}.gd-metrics li{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) 0;border-bottom:1px solid var(--border-subtle);font-size:.875rem}.gd-metrics__label{color:var(--text-secondary)}.gd-form-row--inline{display:flex;gap:var(--space-sm)}.gd-form-row--inline input{flex:1}.gd-condition-row{display:flex;gap:var(--space-sm);align-items:center;margin-bottom:var(--space-sm);flex-wrap:wrap}.gd-condition-row select{width:auto;min-width:100px}.gd-condition-row input[type=number]{width:70px}.gd-condition-row input[placeholder]{flex:1;min-width:80px}.gd-list{list-style:none;padding:0;margin:0}.gd-list__item{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-sm) 0;border-bottom:1px solid var(--border-subtle);font-size:.875rem;flex-wrap:wrap}.gd-list__item--circular,.gd-list__item--dead{color:var(--error)}.gd-list__score{font-size:.75rem;color:var(--text-tertiary)}.gd-chart-wrap{min-height:240px}.gd-status-select{width:auto;min-width:100px;font-size:.75rem}.gd-muted{color:var(--text-tertiary);font-size:.75rem}.gd-success{color:var(--success)}.gd-error{color:var(--error)}textarea{width:100%;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--bg-tertiary);color:var(--text-primary);font-size:.875rem;font-family:inherit;resize:vertical}.gd-projects{padding:var(--space-md) 0}.gd-projects--loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:320px;gap:var(--space-md);color:var(--text-tertiary)}.gd-projects__spinner{width:32px;height:32px;border:3px solid var(--border-subtle);border-top-color:var(--accent-primary);border-radius:50%;animation:gd-spin .8s linear infinite}.gd-projects__toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-md)}.gd-projects__title{font-size:1.25rem;font-weight:700;margin:0;color:var(--text-primary)}.gd-projects__intro{font-size:.875rem;color:var(--text-secondary);margin:0 0 var(--space-lg);max-width:560px}.gd-projects__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-md)}.gd-projects__empty{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:240px;gap:var(--space-md);color:var(--text-tertiary);text-align:center;padding:var(--space-xl);background:var(--bg-card);border:1px dashed var(--border-subtle);border-radius:var(--radius-lg)}.gd-projects__empty-icon{opacity:.5}.gd-projects__card{position:relative;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-lg);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.gd-projects__card:hover{border-color:var(--accent-primary);box-shadow:0 4px 12px #00000014}.gd-projects__card-main{display:flex;align-items:flex-start;gap:var(--space-md)}.gd-projects__card-icon{width:44px;height:44px;border-radius:var(--radius-md);background:var(--accent-primary-muted);color:var(--accent-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.gd-projects__card-body{flex:1;min-width:0}.gd-projects__card-title{font-size:1rem;font-weight:600;margin:0 0 var(--space-xs);color:var(--text-primary)}.gd-projects__card-desc{font-size:.8125rem;color:var(--text-secondary);margin:0 0 var(--space-sm);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.gd-projects__card-meta{display:flex;flex-wrap:wrap;gap:var(--space-sm);font-size:.75rem;color:var(--text-tertiary)}.gd-projects__card-meta-item{display:inline-flex;align-items:center;gap:4px}.gd-projects__card-arrow{flex-shrink:0;color:var(--text-tertiary)}.gd-projects__card-perms{position:absolute;top:var(--space-sm);right:var(--space-sm);width:32px;height:32px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--transition-fast),color var(--transition-fast)}.gd-projects__card-perms:hover{background:var(--bg-elevated);color:var(--accent-primary)}.gd-projects__modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;margin:0;padding:var(--space-lg);border:none;max-width:none;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.gd-projects__modal-overlay::backdrop{background:#00000080}.gd-projects__modal{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:420px;width:100%;overflow:hidden}.gd-projects__modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg);border-bottom:1px solid var(--border-subtle)}.gd-projects__modal-header h3{margin:0;font-size:1.125rem;font-weight:700}.gd-projects__modal-close{background:none;border:none;color:var(--text-tertiary);font-size:1.5rem;cursor:pointer;line-height:1;padding:0 4px}.gd-projects__modal-close:hover{color:var(--text-primary)}.gd-projects__modal-body{padding:var(--space-lg)}.gd-projects__modal-actions{display:flex;justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--border-subtle)}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.progression-tree{position:relative;width:100%;height:640px;min-height:480px;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border-subtle);background:var(--bg-secondary)}.progression-tree>div,.progression-tree .react-flow{width:100%!important;height:100%!important;min-height:0}.progression-tree .react-flow__attribution{display:none}.progression-tree .react-flow__controls button{background:var(--bg-elevated)!important;color:var(--text-secondary)!important;border-color:var(--border-subtle)!important}.progression-tree .react-flow__controls button:hover{background:var(--bg-card)!important;color:var(--text-primary)!important}.progression-tree .react-flow__minimap{background:var(--bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--border-subtle)}.progression-tree__flow{background:var(--bg-secondary)}.progression-tree .react-flow__edge.progression-edge .react-flow__edge-path{stroke:var(--border-default);stroke-width:1.5;opacity:.5;transition:stroke .2s ease,stroke-width .2s ease,opacity .2s ease}.progression-tree .react-flow__edge.progression-edge.progression-edge--outgoing-selected .react-flow__edge-path{stroke:var(--accent-primary);stroke-width:2.5;opacity:1;filter:drop-shadow(0 0 4px var(--accent-primary-muted))}.progression-tree .react-flow__edge.progression-edge.progression-edge--outgoing-selected{--xy-edge-stroke: var(--accent-primary)}.progression-tree .react-flow__edge.progression-edge.progression-edge--incoming-selected .react-flow__edge-path{stroke:var(--accent-secondary);stroke-width:2;opacity:.85}.progression-tree .react-flow__edge.progression-edge.progression-edge--incoming-selected{--xy-edge-stroke: var(--accent-secondary)}.progression-tree .react-flow__edge.progression-edge.progression-edge--dimmed .react-flow__edge-path{opacity:.2;stroke-width:1}.progression-tree__legend{background:var(--bg-elevated);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);border:1px solid var(--border-subtle);font-size:.75rem}.progression-tree__legend-title{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-xs)}.progression-tree__legend-items{display:flex;gap:var(--space-xs);flex-wrap:wrap}.progression-tree__legend-badge{padding:2px 8px;border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-secondary)}.progression-tree__detail{position:absolute;top:var(--space-md);right:var(--space-md);max-width:280px;max-height:calc(100% - var(--space-xl));background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:10;display:flex;flex-direction:column;overflow:hidden}.progression-tree__detail--compact .progression-tree__detail-body{padding:var(--space-sm) var(--space-md)}.progression-tree__detail--compact .progression-tree__detail-row{margin-bottom:var(--space-xs)}.progression-tree__detail--compact .progression-tree__detail-row label{font-size:.6875rem}.progression-tree__detail--compact input,.progression-tree__detail--compact select,.progression-tree__detail--compact textarea{padding:4px 8px;font-size:.75rem}.progression-tree__detail--compact textarea{min-height:44px;rows:2}.progression-tree__detail-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border-subtle);font-size:.8125rem;font-weight:600;color:var(--text-secondary)}.progression-tree__detail-title{text-transform:uppercase;letter-spacing:.04em}.progression-tree__detail-close{background:none;border:none;color:var(--text-tertiary);font-size:1.25rem;cursor:pointer;line-height:1;padding:0 4px}.progression-tree__detail-close:hover{color:var(--text-primary)}.progression-tree__detail-body{padding:var(--space-md);overflow-y:auto}.progression-tree__detail-row{margin-bottom:var(--space-sm)}.progression-tree__detail-row label{display:block;font-size:.6875rem;color:var(--text-tertiary);margin-bottom:2px;text-transform:uppercase;letter-spacing:.03em}.progression-tree__detail-row input,.progression-tree__detail-row select,.progression-tree__detail-row textarea{width:100%;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--bg-tertiary);color:var(--text-primary);font-size:.75rem}.progression-tree__detail-row textarea{resize:vertical;min-height:48px}.progression-tree__detail-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border-subtle)}.progression-tree__add-popup-overlay{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;padding:0;border:none;max-width:none;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:20;border-radius:var(--radius-lg)}.progression-tree__add-popup{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--space-md);max-width:320px;width:90%}.progression-tree__add-popup-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-sm);font-size:.8125rem;font-weight:600;color:var(--text-secondary)}.progression-tree__add-popup-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-xs);max-height:60vh;overflow-y:auto}.progression-tree__add-popup-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);border:none;border-left:3px solid var(--text-tertiary);background:var(--bg-tertiary);color:var(--text-secondary);font-size:.8125rem;cursor:pointer;text-align:left;transition:background var(--transition-fast),color var(--transition-fast)}.progression-tree__add-popup-item:hover{background:var(--bg-card);color:var(--text-primary)}.progression-tree__validation{position:absolute;bottom:0;left:0;right:0;background:var(--bg-elevated);border-top:1px solid var(--border-subtle);border-radius:0 0 var(--radius-lg) var(--radius-lg);z-index:10;max-height:200px;overflow:hidden;display:flex;flex-direction:column}.progression-tree__validation-toggle{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);font-size:.8125rem;color:var(--text-secondary);background:none;border:none;cursor:pointer;width:100%;text-align:left}.progression-tree__validation-toggle:hover{color:var(--text-primary);background:var(--bg-tertiary)}.progression-tree__validation-list{list-style:none;padding:var(--space-sm) var(--space-md);margin:0;overflow-y:auto;flex:1}.progression-tree__validation-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) 0;font-size:.8125rem;color:var(--text-secondary)}.progression-tree__validation-item--circular,.progression-tree__validation-item--dead{color:var(--error)}.progression-tree__validation-item--bottleneck{color:var(--warning)}.progression-tree__actions{display:flex;gap:var(--space-sm);flex-wrap:wrap}.gd-btn--save{background:var(--success);color:#fff;border:none}.gd-btn--save:hover:not(:disabled){filter:brightness(1.1)}.progression-tree__loading{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg-secondary);opacity:.95;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);z-index:15;border-radius:var(--radius-lg);color:var(--text-secondary);font-size:.875rem}.progression-tree__spinner{width:32px;height:32px;border:3px solid var(--border-subtle);border-top-color:var(--accent-primary);border-radius:50%;animation:pt-spin .8s linear infinite}@keyframes pt-spin{to{transform:rotate(360deg)}}.progression-node{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border-subtle);min-width:140px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.progression-node--selected{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-primary-muted)}.progression-node__icon{width:36px;height:36px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.progression-node__body{display:flex;flex-direction:column;gap:2px;min-width:0}.progression-node__label{font-size:.625rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary)}.progression-node__title{font-size:.8125rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.progression-node__milestone{font-size:.6875rem;color:var(--accent-primary)}.progression-node__handle{width:8px;height:8px;background:var(--accent-primary);border:2px solid var(--bg-card)}.gd-btn{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-size:.8125rem;font-weight:500;border:1px solid var(--border-default);background:var(--bg-elevated);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.gd-btn:hover{background:var(--accent-primary-muted);color:var(--accent-primary);border-color:var(--accent-primary)}.gd-btn--sm{padding:var(--space-xs) var(--space-sm);font-size:.75rem}.gd-btn--danger{color:var(--error);border-color:var(--error)}.gd-btn--danger:hover{background:var(--error-muted);color:var(--error)}.gd-project{padding:var(--space-md) 0}.gd-project--loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:320px;gap:var(--space-md);color:var(--text-tertiary)}.gd-project__spinner{width:32px;height:32px;border:3px solid var(--border-subtle);border-top-color:var(--accent-primary);border-radius:50%;animation:gd-spin .8s linear infinite}.gd-project--editor{padding:0;display:flex;flex-direction:column;min-height:0;flex:1}@keyframes gd-spin{to{transform:rotate(360deg)}}.gd-project__breadcrumb{display:flex;align-items:center;gap:var(--space-xs);margin-bottom:var(--space-md);font-size:.875rem}.gd-project__back{display:inline-flex;align-items:center;gap:var(--space-xs);background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:var(--space-xs) 0}.gd-project__back:hover{color:var(--accent-primary)}.gd-project__breadcrumb-sep{color:var(--text-tertiary)}.gd-project__breadcrumb-current{color:var(--text-primary);font-weight:500}.gd-project__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-lg);margin-bottom:var(--space-lg);flex-wrap:wrap}.gd-project__title{font-size:1.25rem;font-weight:700;margin:0 0 var(--space-xs);color:var(--text-primary)}.gd-project__desc{font-size:.875rem;color:var(--text-secondary);margin:0}.gd-project__header-actions{display:flex;gap:var(--space-sm)}.gd-project__trees{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}.gd-project__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;gap:var(--space-md);color:var(--text-tertiary);padding:var(--space-xl)}.gd-project__empty-icon{opacity:.5}.gd-project__list{list-style:none;margin:0;padding:0}.gd-project__list-item{position:relative;display:flex;align-items:center;border-bottom:1px solid var(--border-subtle)}.gd-project__list-item:last-child{border-bottom:none}.gd-project__tree-card{flex:1;display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:none;border:none;cursor:pointer;text-align:left;color:inherit;transition:background var(--transition-fast)}.gd-project__tree-card:hover{background:var(--bg-elevated)}.gd-project__tree-icon{color:var(--accent-primary);flex-shrink:0}.gd-project__tree-body{display:flex;flex-direction:column;gap:2px}.gd-project__tree-name{font-weight:500;color:var(--text-primary)}.gd-project__tree-date{font-size:.75rem;color:var(--text-tertiary)}.gd-project__tree-menu-wrap{position:relative;padding-right:var(--space-sm)}.gd-project__tree-menu-btn{width:36px;height:36px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center}.gd-project__tree-menu-btn:hover{background:var(--bg-elevated);color:var(--text-primary)}.gd-project__menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000}.gd-project__menu-dropdown{position:absolute;right:0;top:100%;margin-top:4px;z-index:2;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:160px;overflow:hidden}.gd-project__menu-dropdown--portal{position:fixed;right:auto;top:auto;margin-top:0;z-index:1001}.gd-project__menu-item{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);border:none;background:none;color:var(--text-secondary);font-size:.875rem;cursor:pointer;text-align:left}.gd-project__menu-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.gd-project__menu-item--danger{color:var(--error)}.gd-project__menu-item:hover.gd-project__menu-item--danger{background:var(--error-muted)}.gd-project__editor-header{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) 0;margin-bottom:var(--space-sm)}.gd-project__editor-title{font-weight:600;color:var(--text-primary)}.gd-project__editor-content{flex:1;min-height:0;display:flex;flex-direction:column}.gd-btn--ghost{background:none;border:none;color:var(--text-secondary);cursor:pointer;display:inline-flex;align-items:center;gap:var(--space-xs)}.gd-btn--ghost:hover{color:var(--accent-primary)}.gd-btn--secondary{background:var(--bg-elevated);border:1px solid var(--border-subtle);color:var(--text-secondary);display:inline-flex;align-items:center;gap:var(--space-xs)}.gd-btn--secondary:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.gd-btn--primary{background:var(--accent-primary);color:var(--bg-primary);border:none;display:inline-flex;align-items:center;gap:var(--space-xs)}.gd-btn--primary:hover:not(:disabled){background:var(--accent-primary-hover)}.gd-btn--primary:disabled{opacity:.6;cursor:not-allowed}.gd-project__modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;margin:0;padding:var(--space-lg);border:none;max-width:none;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.gd-project__modal-overlay::backdrop{background:#00000080}.gd-project__modal{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:420px;width:100%;overflow:hidden}.gd-project__modal--wide{max-width:480px}.gd-project__modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg);border-bottom:1px solid var(--border-subtle);color:var(--accent-primary)}.gd-project__modal-header h3{margin:0;font-size:1.125rem;font-weight:700}.gd-project__modal-close{background:none;border:none;color:var(--text-tertiary);font-size:1.5rem;cursor:pointer;line-height:1;padding:0 4px}.gd-project__modal-close:hover{color:var(--text-primary)}.gd-project__modal-body{padding:var(--space-lg)}.gd-project__modal-actions{display:flex;justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--border-subtle)}.gd-project__perms-intro{font-size:.875rem;color:var(--text-secondary);margin:0 0 var(--space-md);line-height:1.5}.gd-project__perms-search{position:relative;margin-bottom:var(--space-md)}.gd-project__perms-search-icon{position:absolute;left:var(--space-sm);top:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none}.gd-project__perms-search-input{width:100%;padding:var(--space-sm) var(--space-md) var(--space-sm) 36px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-tertiary);color:var(--text-primary);font-size:.875rem}.gd-project__perms-section{margin-bottom:var(--space-md)}.gd-project__perms-section-title{display:block;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);margin-bottom:var(--space-xs)}.gd-project__perms-user-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs);max-height:160px;overflow-y:auto}.gd-project__perms-user-list--allowed{max-height:120px}.gd-project__perms-user-btn{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);font-size:.875rem;text-align:left;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.gd-project__perms-user-btn:hover{background:var(--accent-primary-muted);border-color:var(--accent-primary);color:var(--accent-primary)}.gd-project__perms-user-chip{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--bg-elevated);border-radius:var(--radius-md);border:1px solid var(--border-subtle);font-size:.875rem}.gd-project__perms-user-remove{flex-shrink:0;width:28px;height:28px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center}.gd-project__perms-user-remove:hover{background:var(--error-muted);color:var(--error)}.gd-project__perms-empty{font-size:.8125rem;color:var(--text-tertiary);padding:var(--space-sm) 0}.gd-project__perms-list{display:flex;flex-direction:column;gap:var(--space-sm)}.gd-project__perms-check{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer;font-size:.875rem;color:var(--text-primary)}.gd-project__perms-check input{width:18px;height:18px}.block-history-page .page-header{margin-bottom:var(--space-xl)}.block-history-page .page-header h1{font-size:1.5rem;font-weight:700;margin-bottom:var(--space-xs)}.block-history-page .page-header .subtitle{font-size:.9375rem;color:var(--text-secondary)}.block-history-card{margin-bottom:var(--space-xl);padding:var(--space-lg)}.block-history-modes{display:flex;gap:var(--space-sm);margin-bottom:var(--space-lg);flex-wrap:wrap}.block-history-mode-btn{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-secondary);font-size:.875rem;cursor:pointer;transition:background .15s,border-color .15s}.block-history-mode-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.block-history-mode-btn.active{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--bg-primary)}.block-history-form{display:flex;flex-direction:column;gap:var(--space-md);max-width:640px}.block-history-form .form-row{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap}.block-history-form .form-row label,.block-history-form .form-row .form-group-label{min-width:100px;font-size:.875rem;color:var(--text-secondary)}.block-history-form .form-row input[type=text],.block-history-form .form-row input[type=number]{padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:.875rem;min-width:80px}.block-history-form .form-row input[type=text]:focus,.block-history-form .form-row input[type=number]:focus{outline:none;border-color:var(--accent-primary)}.block-history-form .form-row.form-row--coords input{width:72px}.block-history-form .form-row.form-row--limit input{width:80px}.block-history-uuid{flex:1;min-width:280px;font-family:ui-monospace,monospace;font-size:.8125rem}.block-history-link-player{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:.8125rem;color:var(--accent-primary);text-decoration:none}.block-history-link-player:hover{text-decoration:underline}.form-actions{margin-top:var(--space-sm)}.block-history-error{margin-bottom:var(--space-md);padding:var(--space-sm) var(--space-md);background:#dc35451a;border-radius:var(--radius-md)}.block-history-results{padding:var(--space-lg)}.block-history-results h2{font-size:1.125rem;font-weight:600;margin-bottom:var(--space-md)}.block-history-table .cell-date{white-space:nowrap;font-size:.8125rem}.block-history-table .cell-block{max-width:180px;overflow:hidden;text-overflow:ellipsis;display:inline-block;font-size:.75rem;background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm)}.block-history-player-link{color:var(--accent-primary);text-decoration:none;font-size:.875rem}.block-history-player-link:hover{text-decoration:underline}.block-history-action{display:inline-block;padding:2px 8px;border-radius:var(--radius-sm);font-size:.8125rem;font-weight:500}.block-history-action--break{background:#dc354526;color:#dc3545}.block-history-action--place{background:#28a74526;color:#28a745}.block-history-action--replace{background:#ffc10733;color:#d39e00}.block-history-action--interact{background:#007bff26;color:#007bff}.block-history-action--explode,.block-history-action--burn{background:#fd7e1433;color:#fd7e14}.block-history-action--entity{background:var(--bg-tertiary);color:var(--text-secondary)}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table{width:100%;border-collapse:collapse;font-size:.875rem}.data-table th,.data-table td{padding:var(--space-sm) var(--space-md);text-align:left;border-bottom:1px solid var(--border-subtle)}.data-table th{font-weight:600;color:var(--text-secondary);white-space:nowrap}.data-table tr:hover td{background:var(--bg-hover)}.inventory-template-detail .inv-template-form{display:flex;flex-direction:column;gap:var(--space-md)}.inv-detail-layout{display:flex;gap:var(--space-xl);align-items:flex-start;margin-top:var(--space-lg)}@media (max-width: 960px){.inv-detail-layout{flex-direction:column}}.inv-detail-left{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-lg)}.inv-detail-right{width:380px;flex-shrink:0}@media (max-width: 960px){.inv-detail-right{width:100%}}.inv-grid{display:grid;grid-template-columns:repeat(var(--cols, 9),1fr);gap:2px;max-width:360px;background:var(--bg-tertiary);border:2px solid var(--border-default);border-radius:var(--radius-sm);padding:6px;box-shadow:inset 0 0 0 1px #0000004d}.inv-slot{aspect-ratio:1;min-height:36px;background:var(--bg-elevated);border:2px solid var(--border-subtle);border-radius:4px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .15s ease,background .15s ease}.inv-slot:hover{border-color:var(--accent-primary);background:var(--accent-primary-muted)}.inv-slot--filled{border-color:var(--accent-secondary);background:#7c8aff1a}.inv-slot--editing{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-primary-muted)}.inv-slot__material{font-size:.625rem;font-weight:600;color:var(--accent-primary);text-transform:uppercase}.inv-slot__empty{width:8px;height:8px;border:1px dashed var(--border-default);border-radius:2px;opacity:.5}.inv-i18n-preview{margin-top:var(--space-xs);padding:var(--space-sm);background:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px solid var(--border-subtle)}.inv-i18n-preview__label{display:block;font-size:.6875rem;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-xs)}.inv-i18n-preview__text{font-size:.875rem}.inv-i18n-preview--small{padding:var(--space-xs) var(--space-sm)}.inv-i18n-preview--small .minecraft-preview{font-size:.8125rem}.inv-i18n-preview--lore .inv-i18n-preview__line{margin-bottom:2px}.inv-i18n-preview--lore .inv-i18n-preview__line:last-child{margin-bottom:0}.inv-i18n-preview__muted{font-size:.8125rem;color:var(--text-tertiary)}.inv-slot-editor{position:sticky;top:var(--space-md)}.inv-slot-editor--open{border-color:var(--accent-primary);box-shadow:0 0 0 1px var(--accent-primary-muted)}.inv-slot-editor__placeholder{color:var(--text-tertiary);font-size:.9375rem;padding:var(--space-lg);text-align:center}.inv-slot-editor__section{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border-subtle)}.inv-slot-editor__section h3{font-size:.8125rem;font-weight:600;color:var(--text-secondary);margin:0 0 var(--space-sm);display:flex;align-items:center;gap:var(--space-xs)}.inv-slot-editor__actions{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-md)}.inv-template-detail-actions{display:flex;flex-wrap:wrap;gap:var(--space-md);margin-top:var(--space-xl)}.card__section{margin-bottom:var(--space-xl)}.card__section:last-of-type{margin-bottom:0}.card__section h3{font-size:1rem;font-weight:600;margin:0 0 var(--space-md);color:var(--text-primary)}.card__actions{display:flex;flex-wrap:wrap;gap:var(--space-md);margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--border-subtle)}.form-group{margin-bottom:var(--space-md)}.form-group label{display:block;font-size:.875rem;font-weight:500;color:var(--text-secondary);margin-bottom:var(--space-xs)}.form-group input,.form-group textarea{width:100%;padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:.9375rem}.form-group textarea{min-height:80px;resize:vertical}.form-row{display:flex;flex-wrap:wrap;gap:var(--space-md);margin-bottom:var(--space-md)}.form-row .form-group{margin-bottom:0;flex:1;min-width:120px}.checkbox-label{display:inline-flex;align-items:center;gap:var(--space-sm);font-size:.9375rem;cursor:pointer}.checkbox-label input[type=checkbox]{width:auto}.mono-block{width:100%;font-family:ui-monospace,monospace;font-size:.875rem;padding:var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);resize:vertical}.text-error{color:var(--error, #e53935);font-size:.875rem}.btn-sm{padding:var(--space-xs) var(--space-sm);font-size:.8125rem}.discord-embed-editor{display:grid;grid-template-columns:1fr 340px;gap:var(--space-xl);min-height:420px}@media (max-width: 900px){.discord-embed-editor{grid-template-columns:1fr}}.discord-embed-editor__form{display:flex;flex-direction:column;gap:var(--space-md);overflow-y:auto}.discord-embed-editor__group label{display:block;font-size:.8125rem;font-weight:600;color:var(--text-secondary);margin-bottom:var(--space-xs)}.discord-embed-editor__group input[type=text],.discord-embed-editor__group input[type=url],.discord-embed-editor__group textarea{width:100%;padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:.875rem}.discord-embed-editor__group input[type=text]:focus,.discord-embed-editor__group input[type=url]:focus,.discord-embed-editor__group textarea:focus{outline:none;border-color:var(--accent-primary)}.discord-embed-editor__group textarea{resize:vertical;min-height:56px}.discord-embed-editor__group--row{display:flex;align-items:flex-end;gap:var(--space-lg);flex-wrap:wrap}.discord-embed-editor__color{width:48px;height:32px;padding:2px;cursor:pointer;border-radius:var(--radius-sm);border:1px solid var(--border-subtle)}.discord-embed-editor__checkbox{display:flex;align-items:center;gap:var(--space-sm)}.discord-embed-editor__checkbox input{width:auto}.discord-embed-editor__checkbox label{margin-bottom:0;font-weight:500}.discord-embed-editor__fields-head{display:flex;justify-content:space-between;align-items:center}.discord-embed-editor__field-row{display:flex;gap:var(--space-sm);align-items:center;margin-top:var(--space-xs)}.discord-embed-editor__field-row .discord-embed-editor__field-name{flex:0 0 120px}.discord-embed-editor__field-row .discord-embed-editor__field-value{flex:1;min-width:0}.discord-embed-editor__field-row .discord-embed-editor__inline{display:flex;align-items:center;gap:4px;font-size:.75rem;white-space:nowrap}.discord-embed-editor__placeholders{margin-top:var(--space-sm);padding-top:var(--space-md);border-top:1px solid var(--border-subtle)}.discord-embed-editor__placeholders-title{font-size:.75rem;color:var(--text-tertiary);margin-bottom:var(--space-xs)}.discord-embed-editor__placeholders-list{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.discord-embed-editor__placeholder-chip{display:inline-block;padding:2px 8px;font-size:.75rem;font-family:var(--font-mono, monospace);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);cursor:pointer;color:var(--accent-primary)}.discord-embed-editor__placeholder-chip:hover{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.discord-embed-editor__placeholders-none{font-size:.8125rem;color:var(--text-tertiary)}.discord-embed-editor__preview{position:sticky;top:var(--space-md)}.discord-embed-editor__preview-label{font-size:.75rem;color:var(--text-tertiary);margin-bottom:var(--space-xs)}.discord-embed-preview{background:#313338;border-radius:8px;padding:16px;font-family:gg sans,Noto Sans,Helvetica Neue,Helvetica,Arial,sans-serif}.discord-embed-preview__mock{max-width:100%}.discord-embed-preview__content{color:#dbdee1;font-size:.9375rem;line-height:1.375;margin-bottom:8px;word-wrap:break-word}.discord-embed-preview__embed{display:flex;gap:16px;margin-top:4px;padding:8px 0 8px 12px;border-left:4px solid #5865f2;border-radius:4px;background:#0003;max-width:520px}.discord-embed-preview__thumb{flex-shrink:0;width:80px;height:80px;border-radius:4px;overflow:hidden}.discord-embed-preview__thumb img{width:100%;height:100%;object-fit:cover}.discord-embed-preview__body{flex:1;min-width:0}.discord-embed-preview__title{color:#fff;font-size:1rem;font-weight:600;margin-bottom:4px}.discord-embed-preview__description{color:#dbdee1;font-size:.875rem;line-height:1.375;white-space:pre-wrap;word-wrap:break-word}.discord-embed-preview__fields{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 16px;margin-top:8px}.discord-embed-preview__field--inline{grid-column:span 1}.discord-embed-preview__field:not(.discord-embed-preview__field--inline){grid-column:1/-1}.discord-embed-preview__field-name{color:#fff;font-size:.875rem;font-weight:600;margin-bottom:2px}.discord-embed-preview__field-value{color:#dbdee1;font-size:.875rem;line-height:1.375;white-space:pre-wrap}.discord-embed-preview__footer{color:#b5bac1;font-size:.75rem;margin-top:8px}.discord-embed-preview__timestamp{color:#b5bac1;font-size:.75rem;margin-top:4px}.discord-bot-page{max-width:900px;margin:0 auto;padding-bottom:80px}.discord-bot-pending-bar{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md) var(--space-lg);margin:0 0 var(--space-lg) 0;background:var(--accent-primary);color:#fff;border-radius:var(--radius-md);box-shadow:0 2px 8px #00000026}.discord-bot-pending-bar__text{font-weight:500;font-size:.9375rem}.discord-bot-pending-bar__actions{display:flex;gap:var(--space-sm)}.discord-bot-pending-bar__actions .btn-ghost{color:#ffffffe6}.discord-bot-pending-bar__actions .btn-ghost:hover{background:#fff3;color:#fff}.discord-bot-pending-bar__actions .btn-primary{background:#fff;color:var(--accent-primary, #5865f2)}.discord-bot-pending-bar__actions .btn-primary:hover{background:#ffffffe6}.loading-msg{color:var(--text-secondary);padding:var(--space-xl)}.page-header{margin-bottom:var(--space-xl)}.page-header h1{font-size:1.75rem;font-weight:700;letter-spacing:-.02em;margin-bottom:var(--space-xs)}.page-header .subtitle{font-size:.9375rem;color:var(--text-secondary);margin-bottom:0}.discord-bot-tabs{display:flex;gap:var(--space-xs);margin-bottom:var(--space-xl);border-bottom:1px solid var(--border-subtle)}.discord-bot-tab{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;color:var(--text-secondary);font-size:.9375rem;font-weight:500;cursor:pointer;transition:color .15s,border-color .15s}.discord-bot-tab:hover{color:var(--text-primary)}.discord-bot-tab--active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.discord-bot-config__guild{margin-bottom:var(--space-xl);padding:var(--space-lg)}.discord-bot-config__guild label{display:flex;align-items:center;gap:var(--space-sm);font-size:.875rem;font-weight:500;margin-bottom:var(--space-sm)}.discord-bot-config__guild .discord-bot-config__guild-input{width:100%;max-width:400px;padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:.875rem;font-family:var(--font-mono, monospace)}.discord-bot-config__guild .discord-bot-config__guild-input:focus{outline:none;border-color:var(--accent-primary)}.discord-bot-config__guild .discord-bot-config__guild-hint{font-size:.8125rem;color:var(--text-tertiary);margin-top:var(--space-sm)}.discord-bot-categories{display:flex;flex-direction:column;gap:var(--space-xl)}.discord-bot-category{padding:var(--space-lg)}.discord-bot-category__title{display:flex;align-items:center;gap:var(--space-sm);font-size:1.125rem;font-weight:600;margin:0 0 var(--space-xs) 0}.discord-bot-category__desc{font-size:.875rem;color:var(--text-tertiary);margin-bottom:var(--space-md)}.discord-bot-settings-list{background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden}.discord-bot-setting{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-lg);padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-subtle)}.discord-bot-setting:last-child{border-bottom:none}.discord-bot-setting__main{flex:1;min-width:0}.discord-bot-setting__label{display:block;font-weight:500;font-size:.9375rem;margin-bottom:2px}.discord-bot-setting__desc{display:block;font-size:.8125rem;color:var(--text-tertiary);margin-bottom:var(--space-xs)}.discord-bot-setting__key{font-size:.75rem;color:var(--text-muted);background:var(--bg-primary);padding:2px 6px;border-radius:var(--radius-sm)}.discord-bot-setting__field{flex-shrink:0;display:flex;align-items:center;gap:var(--space-sm)}.discord-bot-setting__field input[type=text],.discord-bot-setting__field input[type=number]{width:220px;padding:var(--space-sm) var(--space-md);background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:.875rem}.discord-bot-setting__field input[type=text]:focus,.discord-bot-setting__field input[type=number]:focus{outline:none;border-color:var(--accent-primary)}.discord-bot-setting__field .saving{font-size:.75rem;color:var(--text-tertiary)}.discord-bot-i18n__toolbar{margin-bottom:var(--space-md)}.discord-bot-i18n-table-wrap{overflow:auto}.discord-bot-i18n-table{width:100%;border-collapse:collapse}.discord-bot-i18n-table th,.discord-bot-i18n-table td{padding:var(--space-sm) var(--space-md);text-align:left;border-bottom:1px solid var(--border-subtle)}.discord-bot-i18n-table th{font-size:.8125rem;font-weight:600;color:var(--text-secondary)}.discord-bot-i18n-table__key{font-family:var(--font-mono, monospace);font-size:.875rem}.discord-bot-i18n-table__locale{width:100px}.discord-bot-i18n-table__value{max-width:320px;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.discord-bot-i18n-table__actions{white-space:nowrap}.discord-bot-i18n-table__actions .btn{margin-right:var(--space-xs)}.discord-bot-i18n-table__empty{color:var(--text-tertiary);padding:var(--space-xl);text-align:center}.discord-bot-i18n-edit-input{width:100%;min-width:200px;padding:var(--space-xs) var(--space-sm);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.875rem}.discord-bot-i18n-edit-input:focus{outline:none;border-color:var(--accent-primary)}.discord-bot-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-lg)}.discord-bot-modal{width:100%;max-width:440px}.discord-bot-modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg);border-bottom:1px solid var(--border-subtle)}.discord-bot-modal__header h3{margin:0;font-size:1.125rem}.discord-bot-modal__close{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:1.5rem;line-height:1;padding:0}.discord-bot-modal__close:hover{color:var(--text-primary)}.discord-bot-modal__body{padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md)}.discord-bot-modal__group label{display:block;font-size:.875rem;font-weight:500;margin-bottom:var(--space-xs)}.discord-bot-modal__group input,.discord-bot-modal__group select{width:100%;padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:.875rem}.discord-bot-modal__footer{display:flex;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-lg);border-top:1px solid var(--border-subtle)}.discord-bot-modal--wide{max-width:640px}.discord-bot-modal--embed{max-width:960px;width:95vw}.discord-bot-modal__body--embed{padding:var(--space-md);overflow:visible}.discord-bot-modal__embed-meta{display:flex;gap:var(--space-md);margin-bottom:var(--space-md)}.discord-bot-modal__embed-meta .discord-bot-modal__group{flex:1}.discord-bot-templates__hint,.discord-bot-ticket-reasons__hint{font-size:.875rem;color:var(--text-tertiary);margin-bottom:var(--space-md)}.discord-bot-templates-list{padding:var(--space-md)}.discord-bot-templates__empty{color:var(--text-tertiary);padding:var(--space-md)}.discord-bot-template-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) 0;border-bottom:1px solid var(--border-subtle)}.discord-bot-template-item:last-child{border-bottom:none}.discord-bot-template-item__usage{font-family:var(--font-mono, monospace);font-weight:600;min-width:120px}.discord-bot-template-item__name{color:var(--text-secondary);flex:1}.discord-bot-template-item--new{margin-top:var(--space-md)}.discord-bot-template-item--new select{padding:var(--space-sm);border-radius:var(--radius-md);min-width:200px}.discord-bot-embed-json{width:100%;font-family:var(--font-mono, monospace);font-size:.8125rem;padding:var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);resize:vertical}.discord-bot-modal__placeholders{font-size:.75rem;color:var(--text-tertiary);margin-top:var(--space-xs)}.discord-bot-ticket-reasons-list{padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm)}.discord-bot-ticket-reason{display:flex;gap:var(--space-sm);align-items:center}.discord-bot-ticket-reason input{flex:1;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);min-width:0}.discord-bot-ticket-reasons__save{padding:var(--space-md);border-top:1px solid var(--border-subtle)}.site-public-page{max-width:720px;margin:0 auto;padding-bottom:var(--space-xl)}.site-public-loading{color:var(--text-secondary);padding:var(--space-xl)}.site-public-header{margin-bottom:var(--space-xl);display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--space-md)}.site-public-header h1{font-size:1.75rem;font-weight:700;letter-spacing:-.02em;margin:0;flex:1;min-width:200px}.site-public-header .site-public-subtitle{width:100%;font-size:.9375rem;color:var(--text-secondary);margin:0 0 var(--space-sm) 0}.site-public-header .site-public-save{display:inline-flex;align-items:center;gap:var(--space-sm)}.site-public-sections{display:flex;flex-direction:column;gap:var(--space-lg)}.site-public-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-lg)}.site-public-card h2{display:flex;align-items:center;gap:var(--space-sm);font-size:1rem;font-weight:600;margin:0 0 var(--space-md) 0}.site-public-card .site-public-hint{font-size:.875rem;color:var(--text-secondary);margin:0 0 var(--space-md) 0}.site-public-card .site-public-fields{display:flex;flex-direction:column;gap:var(--space-sm)}.site-public-card .site-public-fields label{font-size:.875rem;font-weight:500;color:var(--text-secondary);margin-top:var(--space-xs)}.site-public-card .site-public-fields label:first-of-type{margin-top:0}.site-public-card .site-public-fields input[type=text],.site-public-card .site-public-fields input[type=url],.site-public-card .site-public-fields input[type=password]{padding:var(--space-sm) var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font-size:.9375rem;max-width:100%}.site-public-card .site-public-row{display:flex;gap:var(--space-sm);align-items:center;margin-bottom:var(--space-sm)}.site-public-card .site-public-row input{flex:1;min-width:0;padding:var(--space-sm) var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font-size:.9375rem}.site-public-card .site-public-row .site-public-remove{flex-shrink:0;padding:var(--space-sm);color:var(--text-tertiary);background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer}.site-public-card .site-public-row .site-public-remove:hover{color:var(--danger);background:var(--bg-tertiary)}.site-public-card .site-public-add{display:inline-flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-xs);padding:var(--space-sm) var(--space-md);font-size:.875rem;color:var(--accent-primary);background:transparent;border:1px dashed var(--border-subtle);border-radius:var(--radius-md);cursor:pointer}.site-public-card .site-public-add:hover{background:var(--bg-tertiary)}.sakamoto-page .page-header h1{display:flex;align-items:center;gap:var(--space-sm)}.sakamoto-error{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-lg);padding:var(--space-md);background:#ef44441a;color:var(--text-error, #ef4444);border-radius:var(--radius-md)}.sakamoto-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-md);margin-bottom:var(--space-xl)}.sakamoto-stat-card{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md)}.sakamoto-stat-card__icon{width:48px;height:48px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.sakamoto-stat-card__content{display:flex;flex-direction:column;gap:var(--space-xs)}.sakamoto-stat-card__value{font-size:1.25rem;font-weight:700;color:var(--text-primary)}.sakamoto-stat-card__label{font-size:.8125rem;color:var(--text-secondary);line-height:1.3}.sakamoto-grid{display:grid;grid-template-columns:1fr 320px;gap:var(--space-xl);margin-bottom:var(--space-xl)}@media (max-width: 900px){.sakamoto-grid{grid-template-columns:1fr}}.sakamoto-section{margin-bottom:var(--space-lg)}.sakamoto-section h2{display:flex;align-items:center;gap:var(--space-sm);font-size:1rem;margin-bottom:var(--space-md)}.sakamoto-by-reason{margin-bottom:var(--space-md);font-size:.875rem}.sakamoto-by-reason ul{margin:var(--space-xs) 0 0 var(--space-md);padding-left:var(--space-md)}.sakamoto-by-reason code{font-size:.8125rem}.sakamoto-table-wrap{overflow-x:auto}.sakamoto-table{width:100%;border-collapse:collapse;font-size:.875rem}.sakamoto-table th,.sakamoto-table td{padding:var(--space-sm) var(--space-md);text-align:left;border-bottom:1px solid var(--border-subtle)}.sakamoto-table th{font-weight:600;color:var(--text-secondary)}.sakamoto-table code{font-size:.8125rem}.sakamoto-table .sakamoto-row--fail{background:#ef44440f}.sakamoto-admin-list{list-style:none;padding:0;margin:0}.sakamoto-admin-list li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm);padding:var(--space-sm) 0;border-bottom:1px solid var(--border-subtle);font-size:.875rem}.sakamoto-admin-list li:last-child{border-bottom:none}.sakamoto-admin-list strong{min-width:120px}.sakamoto-admin-list code{font-size:.8125rem}.sakamoto-admin-list .sakamoto-role{font-size:.75rem;padding:2px 6px;background:var(--bg-tertiary);border-radius:var(--radius-sm);color:var(--text-secondary)}.sakamoto-admin-list .sakamoto-meta{font-size:.75rem;color:var(--text-tertiary);margin-left:auto}.sakamoto-log-list{list-style:none;padding:0;margin:0;font-size:.875rem}.sakamoto-log-list li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm);padding:var(--space-xs) 0;border-bottom:1px solid var(--border-subtle)}.sakamoto-log-list li:last-child{border-bottom:none}.sakamoto-log-list .sakamoto-log-type{font-size:.75rem;padding:2px 6px;background:var(--bg-tertiary);border-radius:var(--radius-sm);color:var(--text-secondary);min-width:80px}.sakamoto-log-list code{flex:1;min-width:0;font-size:.8125rem}.sakamoto-log-list .sakamoto-log-ts{font-size:.75rem;color:var(--text-tertiary)}:root{--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-tertiary: #1a1a24;--bg-card: #1e1e28;--bg-card-hover: #252532;--bg-elevated: #2a2a38;--text-primary: #fdfefe;--text-secondary: #a0a0b0;--text-tertiary: #6b6b7b;--text-muted: #4a4a5a;--accent-primary: #00d4aa;--accent-primary-hover: #00e6b8;--accent-primary-muted: rgba(0, 212, 170, .15);--accent-secondary: #7c8aff;--accent-secondary-muted: rgba(124, 138, 255, .15);--success: #53c966;--success-muted: rgba(83, 201, 102, .15);--error: #ff4757;--error-muted: rgba(255, 71, 87, .15);--warning: #ffb347;--info: #00b4d8;--border-subtle: rgba(255, 255, 255, .06);--border-default: rgba(255, 255, 255, .1);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .5);--shadow-glow: 0 0 40px rgba(0, 212, 170, .15);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 9999px;--transition-fast: .15s ease;--transition-normal: .25s ease}.toast-container{position:fixed;bottom:var(--space-lg);right:var(--space-lg);z-index:10000;display:flex;flex-direction:column;gap:var(--space-sm);max-width:360px;pointer-events:none}.toast-container>*{pointer-events:auto}.toast{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border-subtle);box-shadow:var(--shadow-md);animation:toast-in .25s ease;font-size:.875rem}.toast--success{border-left:3px solid var(--success)}.toast--success .toast__message{color:var(--text-primary)}.toast--error{border-left:3px solid var(--error)}.toast--error .toast__message{color:var(--text-primary)}.toast--warning{border-left:3px solid var(--warning)}.toast--warning .toast__message{color:var(--text-primary)}.toast--info{border-left:3px solid var(--info)}.toast--info .toast__message{color:var(--text-primary)}.toast__message{flex:1;line-height:1.4}.toast__close{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);border-radius:var(--radius-sm);font-size:1.25rem;line-height:1;transition:background var(--transition-fast),color var(--transition-fast)}.toast__close:hover{background:var(--bg-elevated);color:var(--text-primary)}@keyframes toast-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);min-height:100vh;line-height:1.5}#root{min-height:100vh}.app-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;color:var(--text-secondary)}a{color:var(--accent-primary);text-decoration:none}a:hover{color:var(--accent-primary-hover)}button{font-family:inherit;cursor:pointer;border:none;background:none}input,select,textarea{font-family:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}
