:root{--bg: #0b0909;--surface: #151112;--surface-2: #1e1819;--surface-3: #282022;--border: #2c2426;--border-strong: #3c3134;--text: #f7f1f0;--text-muted: #a3928f;--text-dim: #6e5f5d;--accent: #c9455a;--accent-2: #dd6b7c;--accent-soft: #dd6b7c;--accent-deep: #8a2b3c;--on-accent: #ffffff;--accent-gradient: linear-gradient(155deg, #c9455a 0%, #b03a52 46%, #933045 100%);--gold: #e8b44a;--gems: #a58ad6;--energy: #4fbfb6;--affinity: #c9455a;--rarity-common: #8a7d78;--rarity-rare: #6fa3c4;--rarity-epic: #a58ad6;--rarity-legendary: #e8b44a;--success: #6fbf8a;--danger: #ef7a6a;--warning: #e8b44a;--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display: "Playfair Display", "Iowan Old Style", Georgia, serif;--text-2xs: 11px;--text-xs: 12px;--text-sm: 13px;--text-base: 15px;--text-md: 17px;--text-lg: 20px;--text-xl: 25px;--text-2xl: 31px;--text-3xl: 39px;--track-tight: -.03em;--track-snug: -.015em;--track-wide: .08em;--radius-xs: 6px;--radius-sm: 8px;--radius: 12px;--radius-lg: 18px;--radius-xl: 26px;--radius-pill: 999px;--gap-xs: 4px;--gap-sm: 8px;--gap-md: 12px;--gap: 16px;--gap-lg: 24px;--gap-xl: 32px;--gap-2xl: 48px;--gap-3xl: 64px;--shadow-sm: 0 1px 2px rgb(9 6 6 / 55%), 0 2px 8px rgb(9 6 6 / 30%);--shadow: 0 4px 20px rgb(9 6 6 / 55%), 0 1px 3px rgb(9 6 6 / 40%);--shadow-lg: 0 18px 50px rgb(7 4 4 / 65%), 0 4px 12px rgb(7 4 4 / 45%);--glow: 0 0 28px rgb(201 69 90 / 28%);--dur-fast: .12s;--dur: .2s;--dur-slow: .34s;--ease-out: cubic-bezier(.2, .8, .28, 1);--ease-spring: cubic-bezier(.34, 1.4, .64, 1);--z-sticky: 10;--z-float: 60;--z-overlay: 100;--z-modal: 1000;--z-toast: 1200}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}.shell{min-height:100%;display:grid;place-items:center;padding:var(--gap-lg)}.layout{min-height:100%;display:grid;grid-template-columns:232px minmax(0,1fr)}.sidebar{display:flex;flex-direction:column;gap:var(--gap-lg);padding:var(--gap-lg) var(--gap);background:var(--surface);border-right:1px solid var(--border);position:sticky;top:0;height:100vh}.sidebar__logo{font-size:16px;font-weight:700;letter-spacing:-.01em;margin:0;padding:0 var(--gap-sm)}.sidebar__logo .accent{background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;color:transparent}.sidebar__nav{display:flex;flex-direction:column;gap:2px}.sidebar__section{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:var(--gap-sm) var(--gap-sm) var(--gap-xs)}.nav-item{display:flex;align-items:center;gap:10px;padding:9px var(--gap-sm);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font-size:14px;text-align:left;text-decoration:none;cursor:pointer;width:100%}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item--active{background:var(--surface-2);color:var(--text);box-shadow:inset 2px 0 0 var(--accent)}.nav-item__icon{width:18px;text-align:center;opacity:.9}.sidebar__footer{margin-top:auto;border-top:1px solid var(--border);padding-top:var(--gap);display:flex;flex-direction:column;gap:var(--gap-sm)}.sidebar__admin{font-size:12px;color:var(--text-muted);padding:0 var(--gap-sm);overflow-wrap:anywhere}.main{padding:var(--gap-lg) var(--gap-xl) var(--gap-xl);min-width:0}.main__inner{max-width:1180px;margin:0 auto}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--gap);margin-bottom:var(--gap-lg);flex-wrap:wrap}.page-head h1{font-size:22px;font-weight:650;letter-spacing:-.01em;margin:0 0 var(--gap-xs)}.page-head p{margin:0;color:var(--text-muted);font-size:13px;max-width:68ch}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--gap-lg)}.card--flush{padding:0;overflow:hidden}.card__head{display:flex;align-items:center;justify-content:space-between;gap:var(--gap);padding:var(--gap) var(--gap-lg);border-bottom:1px solid var(--border);flex-wrap:wrap}.card__title{font-size:13px;font-weight:600;letter-spacing:.02em;margin:0}.card__body{padding:var(--gap-lg)}.card__hint{font-size:12px;color:var(--text-muted);margin:0}.grid{display:grid;gap:var(--gap)}.grid--2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.grid--sidebar{grid-template-columns:264px minmax(0,1fr);align-items:start}@media(max-width:900px){.layout{grid-template-columns:1fr}.sidebar{position:static;height:auto}.main{padding:var(--gap-lg) var(--gap)}.grid--2,.grid--sidebar{grid-template-columns:minmax(0,1fr)}}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:13px;white-space:nowrap}.table th{text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:10px var(--gap);border-bottom:1px solid var(--border);background:var(--surface)}.table td{padding:11px var(--gap);border-bottom:1px solid var(--border);vertical-align:top}.table tbody tr:last-child td{border-bottom:none}.table tbody tr.is-clickable{cursor:pointer}.table tbody tr.is-clickable:hover td{background:var(--surface-2)}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table__state{padding:var(--gap-xl) var(--gap);text-align:center;color:var(--text-muted);font-size:13px}.field{display:block;margin-bottom:var(--gap)}.field__label{display:block;font-size:12px;color:var(--text-muted);margin-bottom:var(--gap-xs)}.field__hint{display:block;font-size:11px;color:var(--text-muted);margin-top:var(--gap-xs);white-space:normal}.input,.select,.textarea{width:100%;padding:9px 11px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:13px}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent)}.input--invalid,.textarea--invalid{border-color:var(--danger)}.input:disabled,.textarea:disabled,.btn:disabled{opacity:.55;cursor:not-allowed}.textarea{min-height:220px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px;line-height:1.6;resize:vertical;white-space:pre}.form{display:flex;flex-direction:column;gap:var(--gap)}.form>p{margin:0}.check{display:flex;align-items:flex-start;gap:var(--gap-sm);line-height:1.5}.check input{margin:3px 0 0;flex:none}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:var(--gap)}.form-row{display:flex;gap:var(--gap-sm);align-items:flex-end;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--gap-xs);padding:9px 16px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:13px;font-weight:550;cursor:pointer;white-space:nowrap}.btn:hover:not(:disabled){border-color:var(--text-muted)}.btn--primary{background:var(--accent-gradient);border-color:transparent;font-weight:600}.btn--primary:hover:not(:disabled){filter:brightness(1.08)}.btn--ghost{background:transparent}.btn--danger{background:color-mix(in srgb,var(--danger) 16%,var(--surface-2));border-color:color-mix(in srgb,var(--danger) 50%,transparent);color:var(--danger)}.btn--danger:hover:not(:disabled){border-color:var(--danger)}.btn--sm{padding:6px 11px;font-size:12px}.btn-group{display:inline-flex;gap:2px;padding:2px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.btn-group button{border:none;background:transparent;color:var(--text-muted);padding:5px 11px;border-radius:6px;font-size:12px;cursor:pointer}.btn-group button.is-active{background:var(--surface);color:var(--text)}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);font-size:11px;font-weight:550;color:var(--text-muted);white-space:nowrap}.badge--accent{border-color:color-mix(in srgb,var(--accent) 45%,transparent);color:var(--accent)}.badge--ok{border-color:color-mix(in srgb,var(--success) 40%,transparent);color:var(--success)}.badge--warn{border-color:color-mix(in srgb,var(--warning) 40%,transparent);color:var(--warning)}.badge--danger{border-color:color-mix(in srgb,var(--danger) 45%,transparent);color:var(--danger)}.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px}.muted{color:var(--text-muted)}.nowrap{white-space:nowrap}.stack{display:flex;flex-direction:column;gap:var(--gap)}.stack--sm{gap:var(--gap-sm)}.row{display:flex;align-items:center;gap:var(--gap-sm);flex-wrap:wrap}.amount{font-variant-numeric:tabular-nums;font-weight:600}.amount--plus{color:var(--success)}.amount--minus{color:var(--danger)}.cur-gold{color:var(--gold)}.cur-gems{color:var(--gems)}.cur-energy{color:var(--energy)}.stat{display:flex;flex-direction:column;gap:2px}.stat__label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.stat__value{font-size:17px;font-weight:600;font-variant-numeric:tabular-nums}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:var(--gap)}.dl{display:grid;grid-template-columns:minmax(120px,auto) minmax(0,1fr);gap:7px var(--gap);margin:0;font-size:13px}.dl dt{color:var(--text-muted)}.dl dd{margin:0;overflow-wrap:anywhere}.notice{padding:10px var(--gap);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);font-size:13px;white-space:pre-wrap}.notice--error{border-color:color-mix(in srgb,var(--danger) 45%,transparent);color:var(--danger)}.notice--ok{border-color:color-mix(in srgb,var(--success) 40%,transparent);color:var(--success)}.notice--warn{border-color:color-mix(in srgb,var(--warning) 40%,transparent);color:var(--warning)}.login{width:100%;max-width:380px}.login h1{font-size:21px;margin:0 0 var(--gap-xs);font-weight:650}.login>p{margin:0 0 var(--gap-lg);color:var(--text-muted);font-size:13px}.login .btn{width:100%;margin-top:var(--gap-sm)}.audit__row{display:grid;grid-template-columns:152px minmax(0,1fr);gap:var(--gap);padding:11px var(--gap-lg);border-bottom:1px solid var(--border);font-size:13px}.audit__row:last-child{border-bottom:none}.audit__when{color:var(--text-muted);font-size:12px}.audit__diff{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11.5px;color:var(--text-muted);overflow-wrap:anywhere;white-space:pre-wrap;margin-top:var(--gap-xs)}
