@font-face{font-family:Cinzel;font-style:normal;font-weight:400;font-display:swap;src:url(/static/fonts/Cinzel-Regular.woff2) format("woff2"),url(/static/fonts/Cinzel-Regular.ttf) format("truetype")}@font-face{font-family:Cinzel;font-style:normal;font-weight:500;font-display:swap;src:url(/static/fonts/Cinzel-Medium.woff2) format("woff2"),url(/static/fonts/Cinzel-Medium.ttf) format("truetype")}@font-face{font-family:Cinzel;font-style:normal;font-weight:600;font-display:swap;src:url(/static/fonts/Cinzel-SemiBold.woff2) format("woff2"),url(/static/fonts/Cinzel-SemiBold.ttf) format("truetype")}@font-face{font-family:Cinzel;font-style:normal;font-weight:700;font-display:swap;src:url(/static/fonts/Cinzel-Bold.woff2) format("woff2"),url(/static/fonts/Cinzel-Bold.ttf) format("truetype")}@font-face{font-family:Outfit;font-style:normal;font-weight:300;font-display:swap;src:url(/static/fonts/Outfit-Light.woff2) format("woff2"),url(/static/fonts/Outfit-Light.ttf) format("truetype")}@font-face{font-family:Outfit;font-style:normal;font-weight:400;font-display:swap;src:url(/static/fonts/Outfit-Regular.woff2) format("woff2"),url(/static/fonts/Outfit-Regular.ttf) format("truetype")}@font-face{font-family:Outfit;font-style:normal;font-weight:500;font-display:swap;src:url(/static/fonts/Outfit-Medium.woff2) format("woff2"),url(/static/fonts/Outfit-Medium.ttf) format("truetype")}@font-face{font-family:Outfit;font-style:normal;font-weight:600;font-display:swap;src:url(/static/fonts/Outfit-SemiBold.woff2) format("woff2"),url(/static/fonts/Outfit-SemiBold.ttf) format("truetype")}@font-face{font-family:Outfit;font-style:normal;font-weight:700;font-display:swap;src:url(/static/fonts/Outfit-Bold.woff2) format("woff2"),url(/static/fonts/Outfit-Bold.ttf) format("truetype")}@font-face{font-family:Rajdhani;font-style:normal;font-weight:400;font-display:swap;src:url(/static/fonts/Rajdhani-Regular.woff2) format("woff2"),url(/static/fonts/Rajdhani-Regular.ttf) format("truetype")}

:root{--bg-page: #F4F0E8;--bg-surface: #FFFEFB;--bg-surface-alt: #F7F2E9;--bg-nav: #241E19;--bg-nav-2: #362E24;--bg-nav-hover: rgba(255,255,255,.06);--bg-nav-active: rgba(212,164,60,.14);--bg-muted: #E6DDCF;--bg-inset: #DDD3C3;--bg-sidebar: var(--bg-surface-alt);--text-primary: #29231D;--text-secondary: #5F5549;--text-muted: #73695D;--text-tertiary: #73695D;--text-on-nav: #B8AA96;--text-on-nav-hover: #D8CCBC;--text-on-nav-active: #D4A43C;--text-on-gold: #FFFFFF;--ro-l-min: 0;--ro-l-max: .45;--border: #D9D0C3;--border-subtle: #E2D9CC;--border-strong: #B9AD9D;--gold: #875B10;--gold-bright: #6F4809;--gold-pale: #F3E6C9;--gold-decor: #BE8518;--gold-wash: rgba(190,133,24,.06);--gold-fg: #FFFFFF;--primary: var(--gold);--primary-hover: var(--gold-bright);--primary-foreground: var(--gold-fg);--primary-muted: var(--gold-pale);--text: var(--text-primary);--bg-input: var(--bg-surface);--link: var(--gold);--danger: var(--destructive);--green: #3C7F5C;--green-pale: #E2F0E8;--green-bright: #3C7F5C;--success: var(--green);--success-bg: #E9F5ED;--success-border: #B0D8C0;--success-text: #2F6B4B;--warning: #D49A22;--warning-bg: #FFF3D8;--warning-border: #E8D5A0;--warning-text: #7A560D;--red: #B04030;--red-pale: #F6E6E2;--error: var(--red);--error-bg: #FBEAE7;--error-border: #E0B8B0;--error-text: #963B32;--destructive: var(--red);--destructive-hover: #8C3028;--destructive-foreground: #FFFFFF;--blue: #3E72A8;--blue-pale: #E0EDF6;--info: var(--blue);--info-bg: #E8F2F8;--info-border: #B0CDE0;--info-text: #315F83;--watch-bg: #FCE7F3;--watch-border: #F0BBD8;--watch-text: #9D174D;--heat-1: #8C1E46;--heat-2: #D25020;--heat-3: #F5A014;--heat-4: #FFE650;--purple: #7660A8;--purple-pale: rgba(118,96,168,.07);--map-dot-warp: #fc0404;--map-dot-shop: #2ecc71;--map-dot-npc: #4a90d9;--map-dot-spawn: #1abc9c;--map-dot-boss: #f39c12;--color-money: var(--gold);--color-online: var(--green);--color-offline: #9A8B78;--money: var(--gold);--overlay-bg: rgba(255, 252, 246, .8);--overlay-backdrop: rgba(0, 0, 0, .4);--ring: #2E6FA3;--ring-offset: 2px;--radius-sm: 5px;--radius: 8px;--radius-md: 10px;--radius-lg: 12px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(36,30,22,.06);--shadow: 0 1px 3px rgba(36,30,22,.06), 0 4px 12px rgba(36,30,22,.04);--shadow-md: 0 2px 4px rgba(36,30,22,.06), 0 8px 24px rgba(36,30,22,.06);--shadow-lg: 0 4px 8px rgba(36,30,22,.06), 0 16px 40px rgba(36,30,22,.08);--shadow-xl: 0 8px 16px rgba(36,30,22,.08), 0 24px 48px rgba(36,30,22,.1);--shadow-gold: 0 0 0 1px rgba(190,133,24,.1), 0 4px 16px rgba(190,133,24,.08);--shadow-card-hover: 0 2px 4px rgba(36,30,22,.06), 0 12px 32px rgba(36,30,22,.08);--font-display: "Cinzel", Georgia, serif;--font-body: "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-sans: var(--font-body);--font-mono: "Cascadia Code", ui-monospace, "Source Code Pro", Menlo, Consolas, monospace;--text-xs: 12px;--leading-xs: 16px;--text-sm: 13px;--leading-sm: 18px;--text-base: 14px;--leading-base: 21px;--text-md: 15px;--leading-md: 22px;--text-read: 16px;--leading-read: 26px;--text-lg: 18px;--leading-lg: 24px;--text-h2: 20px;--leading-h2: 26px;--text-xl: 24px;--leading-xl: 30px;--text-stat: 24px;--text-display: 30px;--leading-display: 38px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--nav-height: 52px;--hero-grad: linear-gradient(175deg, rgba(237,230,218,0) 0%, rgba(237,230,218,.08) 25%, rgba(237,230,218,.5) 58%, rgba(237,230,218,.94) 82%, rgba(237,230,218,1) 100%);--hero-text: #241E16;--hero-sub: #6D5F4F;--hero-pill-bg: rgba(255,252,246,.82);--hero-pill-text: #241E16;--hero-pill-border: 1px solid rgba(213,202,188,.5);--hero-level: #9A8B78;--hero-sprite: drop-shadow(0 3px 5px rgba(36,30,22,.18));--page-glow: radial-gradient(ellipse 80% 50% at 50% 0%, rgba(214,170,70,.04) 0%, transparent 70%);--rank-1-bg: #FBBF24;--rank-1-fg: #78350F;--rank-2-bg: #D1D5DB;--rank-2-fg: #374151;--rank-3-bg: #B45309;--rank-3-fg: #FFF;--rank-gold-start: #FBBF24;--rank-gold-end: #F59E0B;--rank-gold-fg: #1A1A2E;--rank-silver-start: #CBD5E1;--rank-silver-end: #94A3B8;--rank-silver-fg: #1A1A2E;--rank-bronze-start: #B45309;--rank-bronze-end: #92400E;--rank-bronze-fg: #FFF;--rank-badge-1-start: #FFD700;--rank-badge-1-end: #FFB800;--rank-badge-1-fg: #000;--rank-badge-2-start: #C0C0C0;--rank-badge-2-end: #A0A0A0;--rank-badge-2-fg: #000;--rank-badge-3-start: #B45309;--rank-badge-3-end: #92400E;--rank-badge-3-fg: #FFF;--callout-warning-bg: #FEF2F2;--callout-tip-bg: #F0FDF4;--t: .3s cubic-bezier(.4,0,.2,1)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg-page: #14110E;--bg-surface: #1D1915;--bg-surface-alt: #252019;--bg-nav: #100E0C;--bg-nav-2: #13100C;--bg-nav-hover: rgba(255,255,255,.04);--bg-nav-active: rgba(212,164,60,.1);--bg-muted: #272119;--bg-inset: #1A1610;--bg-sidebar: var(--bg-surface-alt);--text-primary: #F2E9DC;--text-secondary: #C9BDAE;--text-muted: #AA9C89;--text-tertiary: #AA9C89;--text-on-nav: #8A7E6E;--text-on-nav-hover: #C0B4A2;--text-on-nav-active: #D4A43C;--text-on-gold: #1A1A1A;--ro-l-min: .72;--ro-l-max: 1;--border: #40382F;--border-subtle: #2C261D;--border-strong: #5B5043;--gold: #E5B95B;--gold-bright: #F0C96F;--gold-pale: #352B1C;--gold-decor: #DAA030;--gold-wash: rgba(218,160,48,.04);--gold-fg: #14110E;--ring: #72B7E8;--red: #D4604F;--red-pale: rgba(212,96,79,.12);--green: #5EAA80;--green-pale: rgba(94,170,128,.1);--green-bright: #6CC496;--blue: #6A9FD0;--blue-pale: rgba(106,159,208,.1);--purple: #9A84CC;--purple-pale: rgba(154,132,204,.1);--money: #DAA030;--color-money: #DAA030;--success-bg: rgba(94,170,128,.1);--success-border: rgba(94,170,128,.25);--success-text: #6CC496;--warning-bg: rgba(218,160,48,.1);--warning-border: rgba(218,160,48,.25);--warning-text: #E8B240;--error-bg: rgba(212,96,79,.12);--error-border: rgba(212,96,79,.25);--error-text: #F0A090;--info-bg: rgba(106,159,208,.1);--info-border: rgba(106,159,208,.25);--info-text: #8FBFE0;--watch-bg: rgba(214,106,166,.12);--watch-border: rgba(214,106,166,.3);--watch-text: #E8A0C0;--heat-1: #A83060;--heat-2: #E06830;--heat-3: #F5B830;--heat-4: #FFE870;--overlay-bg: rgba(0, 0, 0, .7);--overlay-backdrop: rgba(0, 0, 0, .6);--shadow-sm: 0 1px 2px rgba(0,0,0,.2);--shadow: 0 1px 3px rgba(0,0,0,.2), 0 4px 12px rgba(0,0,0,.15);--shadow-md: 0 2px 4px rgba(0,0,0,.2), 0 8px 24px rgba(0,0,0,.2);--shadow-lg: 0 4px 8px rgba(0,0,0,.2), 0 16px 40px rgba(0,0,0,.25);--shadow-xl: 0 8px 16px rgba(0,0,0,.25), 0 24px 48px rgba(0,0,0,.3);--shadow-gold: 0 0 0 1px rgba(218,160,48,.08), 0 4px 16px rgba(218,160,48,.05);--shadow-card-hover: 0 2px 4px rgba(0,0,0,.2), 0 12px 32px rgba(0,0,0,.25);--hero-grad: linear-gradient(178deg, rgba(19,16,12,.1) 0%, rgba(19,16,12,.35) 30%, rgba(19,16,12,.7) 55%, rgba(19,16,12,.94) 78%, rgba(19,16,12,1) 100%);--hero-text: #E2D8C8;--hero-sub: #B5A890;--hero-pill-bg: rgba(29,25,20,.78);--hero-pill-text: #E2D8C8;--hero-pill-border: 1px solid rgba(46,40,31,.8);--hero-level: #7E7264;--hero-sprite: drop-shadow(0 3px 8px rgba(0,0,0,.45)) drop-shadow(0 0 12px rgba(218,160,48,.05));--page-glow: radial-gradient(ellipse 70% 40% at 50% 0%, rgba(218,160,48,.03) 0%, transparent 70%);--rank-1-bg: #3D3520;--rank-1-fg: #F0C860;--rank-2-bg: #2E3138;--rank-2-fg: #D6DCE4;--rank-3-bg: #33220F;--rank-3-fg: #E0A468;--rank-gold-start: #3D3520;--rank-gold-end: #2A2510;--rank-gold-fg: #F0C860;--rank-silver-start: #2E3138;--rank-silver-end: #1F2228;--rank-silver-fg: #D6DCE4;--rank-bronze-start: #33220F;--rank-bronze-end: #241708;--rank-bronze-fg: #E0A468;--rank-badge-1-start: #3D3520;--rank-badge-1-end: #2A2510;--rank-badge-1-fg: #F0C860;--rank-badge-2-start: #2E3138;--rank-badge-2-end: #1F2228;--rank-badge-2-fg: #D6DCE4;--rank-badge-3-start: #33220F;--rank-badge-3-end: #241708;--rank-badge-3-fg: #E0A468;--callout-warning-bg: rgba(185, 28, 28, .1);--callout-tip-bg: rgba(21, 128, 61, .1);--text: var(--text-primary);--bg-input: var(--bg-surface);--link: var(--gold);--danger: var(--destructive)}}[data-theme=dark]{--bg-page: #14110E;--bg-surface: #1D1915;--bg-surface-alt: #252019;--bg-nav: #100E0C;--bg-nav-2: #13100C;--bg-nav-hover: rgba(255,255,255,.04);--bg-nav-active: rgba(212,164,60,.1);--bg-muted: #272119;--bg-inset: #1A1610;--bg-sidebar: var(--bg-surface-alt);--text-primary: #F2E9DC;--text-secondary: #C9BDAE;--text-muted: #AA9C89;--text-tertiary: #AA9C89;--text-on-nav: #8A7E6E;--text-on-nav-hover: #C0B4A2;--text-on-nav-active: #D4A43C;--text-on-gold: #1A1A1A;--ro-l-min: .72;--ro-l-max: 1;--border: #40382F;--border-subtle: #2C261D;--border-strong: #5B5043;--gold: #E5B95B;--gold-bright: #F0C96F;--gold-pale: #352B1C;--gold-decor: #DAA030;--gold-wash: rgba(218,160,48,.04);--gold-fg: #14110E;--ring: #72B7E8;--red: #D4604F;--red-pale: rgba(212,96,79,.12);--green: #5EAA80;--green-pale: rgba(94,170,128,.1);--green-bright: #6CC496;--blue: #6A9FD0;--blue-pale: rgba(106,159,208,.1);--purple: #9A84CC;--purple-pale: rgba(154,132,204,.1);--money: #DAA030;--color-money: #DAA030;--success-bg: rgba(94,170,128,.1);--success-border: rgba(94,170,128,.25);--success-text: #6CC496;--warning-bg: rgba(218,160,48,.1);--warning-border: rgba(218,160,48,.25);--warning-text: #E8B240;--error-bg: rgba(212,96,79,.12);--error-border: rgba(212,96,79,.25);--error-text: #F0A090;--info-bg: rgba(106,159,208,.1);--info-border: rgba(106,159,208,.25);--info-text: #8FBFE0;--watch-bg: rgba(214,106,166,.12);--watch-border: rgba(214,106,166,.3);--watch-text: #E8A0C0;--heat-1: #A83060;--heat-2: #E06830;--heat-3: #F5B830;--heat-4: #FFE870;--overlay-bg: rgba(0, 0, 0, .7);--overlay-backdrop: rgba(0, 0, 0, .6);--shadow-sm: 0 1px 2px rgba(0,0,0,.2);--shadow: 0 1px 3px rgba(0,0,0,.2), 0 4px 12px rgba(0,0,0,.15);--shadow-md: 0 2px 4px rgba(0,0,0,.2), 0 8px 24px rgba(0,0,0,.2);--shadow-lg: 0 4px 8px rgba(0,0,0,.2), 0 16px 40px rgba(0,0,0,.25);--shadow-xl: 0 8px 16px rgba(0,0,0,.25), 0 24px 48px rgba(0,0,0,.3);--shadow-gold: 0 0 0 1px rgba(218,160,48,.08), 0 4px 16px rgba(218,160,48,.05);--shadow-card-hover: 0 2px 4px rgba(0,0,0,.2), 0 12px 32px rgba(0,0,0,.25);--hero-grad: linear-gradient(178deg, rgba(19,16,12,.1) 0%, rgba(19,16,12,.35) 30%, rgba(19,16,12,.7) 55%, rgba(19,16,12,.94) 78%, rgba(19,16,12,1) 100%);--hero-text: #E2D8C8;--hero-sub: #B5A890;--hero-pill-bg: rgba(29,25,20,.78);--hero-pill-text: #E2D8C8;--hero-pill-border: 1px solid rgba(46,40,31,.8);--hero-level: #7E7264;--hero-sprite: drop-shadow(0 3px 8px rgba(0,0,0,.45)) drop-shadow(0 0 12px rgba(218,160,48,.05));--page-glow: radial-gradient(ellipse 70% 40% at 50% 0%, rgba(218,160,48,.03) 0%, transparent 70%);--rank-1-bg: #3D3520;--rank-1-fg: #F0C860;--rank-2-bg: #2E3138;--rank-2-fg: #D6DCE4;--rank-3-bg: #33220F;--rank-3-fg: #E0A468;--rank-gold-start: #3D3520;--rank-gold-end: #2A2510;--rank-gold-fg: #F0C860;--rank-silver-start: #2E3138;--rank-silver-end: #1F2228;--rank-silver-fg: #D6DCE4;--rank-bronze-start: #33220F;--rank-bronze-end: #241708;--rank-bronze-fg: #E0A468;--rank-badge-1-start: #3D3520;--rank-badge-1-end: #2A2510;--rank-badge-1-fg: #F0C860;--rank-badge-2-start: #2E3138;--rank-badge-2-end: #1F2228;--rank-badge-2-fg: #D6DCE4;--rank-badge-3-start: #33220F;--rank-badge-3-end: #241708;--rank-badge-3-fg: #E0A468;--callout-warning-bg: rgba(185, 28, 28, .1);--callout-tip-bg: rgba(21, 128, 61, .1);--text: var(--text-primary);--bg-input: var(--bg-surface);--link: var(--gold);--danger: var(--destructive)}

*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{color-scheme:light;scroll-behavior:smooth}[data-theme=dark]{color-scheme:dark}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark}}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}body{font-family:var(--font-body);background:var(--bg-page);min-height:100vh;color:var(--text-primary);font-size:var(--text-base);line-height:1.55;font-weight:400;-webkit-font-smoothing:antialiased;transition:background var(--t),color var(--t)}body:before{content:"";position:fixed;top:0;left:0;right:0;height:500px;background:var(--page-glow);pointer-events:none;z-index:0;transition:background var(--t)}a{color:var(--gold);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4,h5,h6{font-family:var(--font-body);color:var(--text-primary);font-weight:600;line-height:1.2}h1{font-size:var(--text-xl)}h2{font-size:var(--text-h2)}h3{font-size:var(--text-read)}img{display:block;max-width:100%}.sprite{image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges}.text-muted{color:var(--text-secondary)}.text-dim{color:var(--text-muted)}.text-warning{color:var(--warning)}.text-primary{color:var(--primary)}.money{color:var(--color-money);font-variant-numeric:tabular-nums;font-weight:600}.level{color:var(--gold);font-weight:600}.container{max-width:1400px;margin:0 auto;padding:0 32px}.container-narrow{max-width:800px;margin:0 auto;padding:var(--space-6)}.container-wide{max-width:1400px;margin:0 auto;padding:var(--space-6)}.page-header{margin-bottom:var(--space-6);display:flex;justify-content:space-between;align-items:flex-start}.page-header h2,.page-header h1{font-size:24px;margin-bottom:var(--space-2)}.page-header p{color:var(--text-secondary);font-size:14px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--space-6)}.loading{display:inline-block;width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--gold-decor);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text,.empty{text-align:center;padding:var(--space-10);color:var(--text-secondary)}.clickable{cursor:pointer;color:var(--gold)}.clickable:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--ring);outline-offset:var(--ring-offset);border-radius:3px}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none}input[type=checkbox],input[type=radio]{width:14px;height:14px;min-width:14px;flex-shrink:0;margin:0;accent-color:var(--primary);cursor:pointer}

.btn{display:inline-flex;align-items:center;justify-content:center;height:36px;padding:8px 16px;border:none;border-radius:var(--radius);font-family:var(--font-sans);font-size:14px;font-weight:500;line-height:1;cursor:pointer;transition:background .15s,box-shadow .15s;text-decoration:none;gap:var(--space-2)}.btn:hover{text-decoration:none}.btn-primary{background:var(--primary);color:var(--primary-foreground)}.btn-primary:hover{background:var(--primary-hover)}.btn-danger{background:var(--destructive);color:var(--destructive-foreground)}.btn-danger:hover{background:var(--destructive-hover)}.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:var(--success-text)}.btn-secondary{background:var(--bg-muted);color:var(--text-primary)}.btn-secondary:hover{background:var(--border)}.btn-warning{background:var(--warning);color:#fff}.btn-warning:hover{background:var(--warning-text)}.btn-outline{background:transparent;border:1px solid var(--border);color:var(--text-primary)}.btn-outline:hover{border-color:var(--border-strong);background:var(--bg-muted)}.btn-ghost{background:transparent;color:var(--text-primary)}.btn-ghost:hover{background:var(--bg-muted)}.btn-sm{height:32px;padding:6px 12px;font-size:12px;border-radius:6px}.btn-lg{height:44px;padding:10px 24px}.btn-full{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-group{display:flex;gap:var(--space-2);flex-wrap:wrap}.action-buttons{display:flex;gap:var(--space-2);margin-top:var(--space-4)}.action-buttons .btn{flex:1}.form-group{margin-bottom:var(--space-4)}.form-group label{display:block;margin-bottom:var(--space-1);font-size:14px;font-weight:500;color:var(--text-primary)}input,textarea,select{width:100%;height:36px;padding:8px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg-surface);color:var(--text-primary);font-family:var(--font-sans);font-size:14px;transition:border-color .15s,box-shadow .15s}textarea{height:auto;resize:vertical;min-height:80px}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-muted)}input:disabled,textarea:disabled,select:disabled{opacity:.5;cursor:not-allowed}input::placeholder,textarea::placeholder{color:var(--text-muted)}select option{background:var(--bg-surface);color:var(--text-primary)}.form-row{display:flex;gap:var(--space-3)}.form-row .form-group{flex:1}.form-actions{margin-top:var(--space-5)}.search-box{display:flex;gap:var(--space-2);margin-bottom:var(--space-4)}.search-box input{flex:1}.card{background:var(--bg-surface);border-radius:var(--radius-md);padding:var(--space-6);border:1px solid var(--border);margin-bottom:var(--space-6)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--border)}.card-title{font-size:16px;font-weight:600;color:var(--text-primary)}.badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-full);font-size:12px;font-weight:500;line-height:1.4}.badge-online{background:var(--success-bg);color:var(--success-text)}.badge-offline{background:var(--bg-muted);color:var(--text-muted)}.badge-banned{background:var(--error-bg);color:var(--error-text)}.badge-vendor{background:var(--info-bg);color:var(--info-text)}.badge-tempban,.badge-warning{background:var(--warning-bg);color:var(--warning-text)}.badge-mvp{background:var(--warning-bg);color:var(--warning-text);font-size:9px;padding:1px 5px;font-weight:600}.badge-admin{background:var(--primary-muted);color:var(--primary)}.badge-superadmin{background:var(--error-bg);color:var(--error-text)}.badge-user{background:var(--bg-muted);color:var(--text-secondary)}.status-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border:1px solid;border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:600;line-height:1.4}.status-badge:before{content:"";width:var(--space-2);height:var(--space-2);border-radius:var(--radius-full);background:currentColor;flex-shrink:0}.status-badge--ok{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}.status-badge--warn{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}.status-badge--error{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.status-badge--info{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}.status-badge--neutral{background:var(--bg-muted);border-color:var(--border-subtle);color:var(--text-secondary)}.stat-tile{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4)}.stat-tile-label{font-size:var(--text-sm);color:var(--text-secondary)}.stat-tile-value{font-size:var(--text-stat);font-weight:600;font-variant-numeric:tabular-nums}.stat-tile-sub{font-size:var(--text-sm);color:var(--text-secondary)}.toast-container{position:fixed;bottom:var(--space-6);right:var(--space-6);z-index:1001;display:flex;flex-direction:column;gap:var(--space-2);pointer-events:none}.toast{position:relative;display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius);color:#fff;font-size:14px;max-width:400px;min-width:280px;animation:toastSlideIn .3s ease;box-shadow:var(--shadow-lg);pointer-events:auto;cursor:pointer;overflow:hidden}.toast.removing{animation:toastSlideOut .3s ease forwards}.toast-icon{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.toast-icon svg{width:18px;height:18px}.toast-content{flex:1;min-width:0}.toast-message{word-wrap:break-word}.toast-close{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:inherit;cursor:pointer;opacity:.7;transition:opacity .15s;padding:0;margin:-2px -4px -2px 0}.toast-close:hover{opacity:1}.toast-close svg{width:14px;height:14px}.toast-action{background:#fff3;border:none;border-radius:var(--radius-sm);color:inherit;font-size:12px;font-weight:500;padding:4px 10px;margin-top:var(--space-2);cursor:pointer;transition:background .15s}.toast-action:hover{background:#ffffff4d}.toast-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:#ffffff4d;overflow:hidden}.toast-progress-bar{height:100%;background:#ffffffb3;width:100%;transform-origin:left;animation:toastProgress linear forwards}.toast.paused .toast-progress-bar{animation-play-state:paused}.toast.success{background:var(--success)}.toast.error{background:var(--error)}.toast.warning{background:var(--warning)}.toast.info{background:var(--info)}@keyframes toastSlideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes toastSlideOut{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}@keyframes toastProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.modal{display:none;position:fixed;inset:0;background:var(--overlay-backdrop);z-index:1002;align-items:center;justify-content:center}.modal.open,.modal.active{display:flex}.modal-content{background:var(--bg-surface);border-radius:var(--radius-lg);padding:var(--space-6);width:100%;max-width:400px;border:1px solid var(--border);box-shadow:var(--shadow-xl)}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5);padding-bottom:var(--space-4);border-bottom:1px solid var(--border)}.modal-header h3{font-size:16px;font-weight:600}.modal-close{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;font-size:20px}.modal-close:hover{background:var(--bg-muted);color:var(--text-primary)}.modal-title{font-size:16px;font-weight:600;margin-bottom:var(--space-4)}.modal-buttons{display:flex;gap:var(--space-2);margin-top:var(--space-6)}.modal-buttons .btn{flex:1}th img,td img{display:inline-block;vertical-align:middle}tr:hover{background:var(--bg-muted);transition:background .15s}tr.clickable-row{cursor:pointer}tr.clickable-row:hover{background:var(--primary-muted)}tr.clickable-row:active{background:var(--border)}.table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:var(--space-4)}.table-responsive table{min-width:100%}.table-responsive.has-scroll{background:linear-gradient(to right,var(--bg-surface) 30%,transparent),linear-gradient(to left,var(--bg-surface) 30%,transparent),linear-gradient(to right,rgba(0,0,0,.08),transparent 15px),linear-gradient(to left,rgba(0,0,0,.08),transparent 15px);background-position:left center,right center,left center,right center;background-repeat:no-repeat;background-size:20px 100%,20px 100%,15px 100%,15px 100%;background-attachment:local,local,scroll,scroll}@media(min-width:1280px){.table-responsive.sticky-head,html.sticky-headers .table-responsive{overflow:visible}.table-responsive.sticky-head td.cell-breakable,html.sticky-headers .table-responsive td.cell-breakable{overflow-wrap:anywhere}.table-responsive.sticky-head thead th,html.sticky-headers .table-responsive thead th{top:calc(var(--nav-height, 52px) + var(--bulk-toolbar-h, 0px));z-index:2}}.definition-grid{display:grid;grid-template-columns:1fr;gap:var(--space-3);margin:var(--space-4) 0}@media(min-width:768px){.definition-grid{grid-template-columns:repeat(2,1fr)}}.definition-grid dt{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);margin-bottom:var(--space-1)}.definition-grid dd{margin:0;font-size:var(--text-base);color:var(--text-primary)}table.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-subtle)}.data-table th{background:var(--bg-surface-alt);color:var(--text-secondary);font-size:var(--text-sm);font-weight:600;text-align:left;text-transform:none;position:sticky;top:0;z-index:1}.data-table td{font-size:var(--text-base)}.data-table th.num,.data-table td.num,.data-table th.col-num,.data-table td.col-num{text-align:right;font-variant-numeric:tabular-nums}.data-table--compact th,.data-table--compact td{padding:6px var(--space-3)}.data-table--compact th button{padding:6px var(--space-3);margin:-6px calc(var(--space-3) * -1)}.data-table--pin-first th:first-child,.data-table--pin-first td:first-child,.data-table th.is-pinned,.data-table td.is-pinned{position:sticky;background:var(--bg-surface);border-right:1px solid var(--border-subtle);z-index:1}.data-table--pin-first th:first-child,.data-table--pin-first td:first-child{left:0}.data-table th.is-pinned,.data-table td.is-pinned{left:var(--pin-left, var(--space-10))}.data-table--pin-first th:first-child,.data-table th.is-pinned{background:var(--bg-surface-alt)}.data-table--pin-first tr:hover th:first-child,.data-table--pin-first tr:hover td:first-child,.data-table tr:hover th.is-pinned,.data-table tr:hover td.is-pinned{background:var(--bg-muted)}.data-table--pin-first tr.clickable-row:hover th:first-child,.data-table--pin-first tr.clickable-row:hover td:first-child,.data-table tr.clickable-row:hover th.is-pinned,.data-table tr.clickable-row:hover td.is-pinned{background:var(--primary-muted)}.data-table tr[aria-current=true]{background:var(--gold-pale);box-shadow:inset 3px 0 0 var(--gold)}.data-table--pin-first tr[aria-current=true] th:first-child,.data-table--pin-first tr[aria-current=true] td:first-child,.data-table tr[aria-current=true] th.is-pinned,.data-table tr[aria-current=true] td.is-pinned{background:var(--gold-pale)}.data-table--pin-first tr.selected th:first-child,.data-table--pin-first tr.selected td:first-child,.data-table tr.selected th.is-pinned,.data-table tr.selected td.is-pinned{background:var(--primary-muted)}.data-table th button{appearance:none;background:none;border:none;font:inherit;color:inherit;text-align:inherit;width:100%;padding:var(--space-2) var(--space-3);margin:calc(var(--space-2) * -1) calc(var(--space-3) * -1);cursor:pointer}.data-table th button:focus-visible{outline:2px solid var(--ring);outline-offset:var(--ring-offset)}.data-table th[aria-sort=ascending] button:after{content:" \25b2"}.data-table th[aria-sort=descending] button:after{content:" \25bc"}.data-table td.empty-state{display:table-cell;text-align:center;color:var(--text-secondary);padding:var(--space-6) var(--space-3)}.data-table td.empty-state .btn{margin-top:var(--space-2)}.cell-truncate{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-numeric{text-align:right;font-variant-numeric:tabular-nums}.cell-actions{white-space:nowrap;text-align:right}.kv-band{padding:6px var(--space-4);background:var(--bg-surface-alt);border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);display:grid;grid-template-columns:1fr 1fr;gap:0 var(--space-4)}.kv-row{display:flex;justify-content:space-between;align-items:baseline;padding:1px 0;font-size:12px}.kv-row.kv-wide{grid-column:1 / -1}.kv-label{color:var(--text-muted);font-weight:500;font-size:11px}.kv-value{color:var(--text-primary);font-weight:600;text-align:right}.desc-band{padding:var(--space-2) var(--space-4);font-size:12px;color:var(--text-secondary);line-height:1.5;border-bottom:1px solid var(--border-subtle)}.ro-client-color{--ro-render-color: var(--text-primary)}@supports (color: oklch(from red l c h)){.ro-client-color{--ro-render-color: oklch(from var(--ro-source-color) clamp(var(--ro-l-min), l, var(--ro-l-max)) c h)}}.tag-band{padding:6px var(--space-4);display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--border-subtle)}.tag-band .tag-separator{width:100%;height:0}.section-band{padding:6px var(--space-4) 8px;border-bottom:1px solid var(--border-subtle)}.section-band:last-child{border-bottom:none}.item-detail-card #itemDetailBody,.map-detail-card #mapDetailBody:has(.kv-band){padding:0!important}.item-hero-band{padding:14px var(--space-4)}.section-band-header{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px;display:flex;align-items:center;gap:6px}.section-band-header .cnt{font-weight:400;margin-left:auto}.section-band-header .dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.dot-gold{background:var(--gold-decor)}.dot-red{background:var(--red, var(--destructive))}.dot-green{background:var(--green, var(--success))}.dot-purple{background:var(--purple, #7660A8)}.dot-blue{background:var(--blue, #3E72A8)}.dense-row{display:flex;align-items:center;gap:6px;padding:2px 4px;font-size:12px;cursor:pointer;border-radius:3px;margin:0 -4px}.dense-row:hover{background:var(--bg-muted)}.dense-row .dense-sprite{width:18px;height:20px;flex-shrink:0;image-rendering:pixelated;vertical-align:middle}.dense-row .dense-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dense-row .dense-meta{font-size:11px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:45%;text-align:right}.dense-row .dense-qty{font-size:11px;font-weight:600;color:var(--text-primary);white-space:nowrap;background:var(--bg-muted);padding:0 5px;border-radius:3px;min-width:24px;text-align:center}.combo-row{padding:6px 0;border-bottom:1px solid var(--border-subtle)}.combo-row:last-child{border-bottom:none}.combo-row:hover{background:var(--bg-muted)}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}.info-item{padding:var(--space-3);background:var(--bg-muted);border-radius:var(--radius)}.info-label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-1)}.info-value{font-size:14px;color:var(--text-primary)}.message{padding:var(--space-3) var(--space-4);border-radius:var(--radius);margin-bottom:var(--space-5);font-size:14px}.message.success{background:var(--success-bg);border:1px solid var(--success-border);color:var(--success-text)}.message.error{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text)}.back-link{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--text-secondary);text-decoration:none;font-size:14px;margin-bottom:var(--space-4)}.back-link:hover{color:var(--text-primary);text-decoration:none}.server-item{background:var(--bg-muted);border-radius:var(--radius);padding:var(--space-4);display:flex;justify-content:space-between;align-items:center}.server-name{font-weight:500}.server-perf{color:var(--text-muted);font-size:12px}.server-stats{text-align:right;font-size:14px}.server-users{color:var(--primary);font-weight:600}.server-status{width:10px;height:10px;border-radius:50%}.server-status.online{background:var(--color-online);box-shadow:0 0 8px #16a34a66}.server-status.offline{background:var(--error);box-shadow:0 0 8px #dc262666}.target-indicator{font-size:12px;color:var(--text-secondary);margin-top:var(--space-2)}.target-indicator .target-name{color:var(--primary);font-weight:500}@media(max-width:767px){.modal-content{max-width:calc(100vw - var(--space-8));margin:var(--space-4)}.modal-buttons{flex-direction:column}.card{padding:0}.card-header{flex-direction:column;gap:var(--space-2);align-items:flex-start}.form-row{flex-direction:column;gap:var(--space-4)}.info-grid{grid-template-columns:1fr}.info-item[style*="grid-column: span 2"]{grid-column:span 1!important}.toast-container{left:var(--space-4);right:var(--space-4)}.toast{max-width:none;min-width:0}.action-buttons{flex-direction:column;gap:var(--space-2)}.action-buttons .btn{width:100%}}@media(max-width:480px){input,select,textarea{font-size:16px}}.pagination-bar{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-3) 0;margin-top:var(--space-2)}.pagination-info{font-size:12px;color:var(--text-muted);min-width:100px;text-align:center}.section-divider{border:none;border-top:1px solid var(--border);margin:var(--space-4) 0}.scroll-box{max-height:200px;overflow-y:auto}.scroll-box-lg{max-height:400px;overflow-y:auto}.gamedata-fill{display:flex;flex-direction:column;height:calc(100vh - 48px);overflow-y:auto}.gamedata-fill .page-header,.gamedata-fill .tabs{flex-shrink:0}.gamedata-fill .tab-content.active{display:flex;flex-direction:column;flex:1;min-height:0}.gamedata-fill .tab-content>.grid{flex:1;min-height:0;grid-template-rows:1fr}.gamedata-fill .grid>.card{display:flex;flex-direction:column;min-height:0;margin-bottom:0}.gamedata-fill .card-header,.gamedata-fill .search-box,.gamedata-fill .filter-row,.gamedata-fill .filter-row-advanced,.gamedata-fill .results-info{flex-shrink:0}.gamedata-fill .scroll-box-lg{flex:1;min-height:100px;max-height:none}.gamedata-fill #skillListView,.gamedata-fill #skillTreeView{display:flex;flex-direction:column;flex:1;min-height:0}.gamedata-fill .item-detail-card,.gamedata-fill .monster-detail-card,.gamedata-fill .map-detail-card,.gamedata-fill .npc-detail-card,.gamedata-fill .quest-detail-card,.gamedata-fill .skill-detail-card,.gamedata-fill .crafting-detail-card{max-height:none;contain:layout style}.quest-detail-card{display:flex;flex-direction:column}.quest-detail-card .card-header{flex-shrink:0}#questDetailBody{flex:1;min-height:0;overflow-y:auto;padding:2px}#questDetailBody:has(.quest-hero-band),[data-entity-type=quest]>div:last-child:has(.quest-hero-band){padding:0!important}.quest-hero-band{text-align:center;padding:14px var(--space-4);border-bottom:1px solid var(--border-subtle)}.quest-stage-card{margin:6px var(--space-2, 4px);padding:8px 10px;background:var(--bg-secondary);border-radius:6px;border-left:3px solid var(--primary)}.quest-stage-card:last-child{margin-bottom:2px}.quest-stage-header{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:4px}.quest-stage-quest{margin-bottom:6px;padding:6px 8px;background:var(--bg-tertiary);border-radius:4px}[data-entity-type=quest]{display:flex;flex-direction:column}[data-entity-type=quest] .card-header{flex-shrink:0}[data-entity-type=quest]>div:last-child{flex:1;min-height:0;overflow-y:auto;padding:2px}.perm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-1) var(--space-3);margin-bottom:var(--space-4)}.perm-check{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);cursor:pointer;font-size:13px;color:var(--text-primary);user-select:none;transition:background .1s}.perm-check:hover{background:var(--bg-muted)}.perm-check input[type=checkbox]{width:16px;height:16px;min-width:16px;padding:0;border:none;accent-color:var(--primary);cursor:pointer}.perm-check .perm-id{font-size:11px;color:var(--text-muted);min-width:16px}.perm-account{background:var(--bg-muted);border-radius:var(--radius);margin-bottom:var(--space-3)}.perm-account-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4)}.perm-account-name{font-size:14px;font-weight:600;color:var(--text-primary)}.perm-account-meta{font-size:12px;color:var(--text-muted);margin-left:var(--space-2);font-weight:400}.perm-account-body{padding:0 var(--space-4) var(--space-3);display:flex;flex-wrap:wrap;gap:var(--space-1)}.perm-tag{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:500;background:var(--bg-surface);border:1px solid var(--border);color:var(--text-secondary)}.perm-tag .perm-tag-delete{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;font-size:12px;line-height:1;cursor:pointer;color:var(--text-muted);transition:color .15s,background .15s;background:none;border:none;padding:0;margin-left:2px}.perm-tag .perm-tag-delete:hover{color:var(--error-text);background:var(--error-bg)}.perm-tag-overflow{color:var(--text-muted);font-style:italic;border-style:dashed}.perm-tag-restriction{background:var(--error-bg);border-color:var(--error-text);color:var(--error-text)}.perm-check-restriction{color:var(--error-text)}.perm-section-divider{grid-column:1 / -1;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--error-text);padding:var(--space-2) 0 var(--space-1);margin-top:var(--space-2);border-top:1px solid var(--border)}.filter-row{display:flex;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;align-items:flex-end}.input-xs{width:70px}.input-sm{width:100px}.input-md{width:140px}.autocomplete-wrapper{position:relative;flex:1}.autocomplete-list{position:absolute;top:100%;left:0;right:0;z-index:50;background:var(--bg-surface);border:1px solid var(--border);border-top:none;border-radius:0 0 var(--radius-sm) var(--radius-sm);box-shadow:var(--shadow-md);max-height:200px;overflow-y:auto;display:none}.autocomplete-list.open{display:block}.autocomplete-item{padding:6px 12px;cursor:pointer;font-size:14px;color:var(--text-primary);display:flex;align-items:center;gap:8px;transition:background .1s}.autocomplete-item:hover,.autocomplete-item.active{background:var(--bg-muted)}.autocomplete-item:hover .ac-icon,.autocomplete-item.active .ac-icon{background:var(--gold-pale)}.ac-icon{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--bg-muted);border-radius:4px;transition:background .1s}.ac-icon img{max-width:100%;max-height:100%;image-rendering:pixelated}.ac-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ac-label mark{background:var(--warning-bg);color:var(--text-primary);border-radius:2px;padding:0 1px}.ac-sub{font-size:11px;color:var(--text-muted);flex-shrink:0;white-space:nowrap}.autocomplete-empty{padding:12px;font-size:13px;color:var(--text-muted);text-align:center}.autocomplete-loading{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:12px;color:var(--text-muted);font-size:13px}.autocomplete-loading:before{content:"";width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--gold-decor);border-radius:50%;animation:spin .8s linear infinite}.loading-spinner{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);color:var(--text-muted);font-size:14px;padding:var(--space-4)}.loading-spinner:before{content:"";width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.loading-spinner-center{display:flex;align-items:center;justify-content:center;min-height:120px}.loading-overlay{position:absolute;inset:0;background:var(--overlay-bg, rgba(255, 255, 255, .8));display:flex;align-items:center;justify-content:center;z-index:10;border-radius:var(--radius)}.loading-container{position:relative;min-height:80px}.skeleton{background:linear-gradient(90deg,var(--bg-muted) 25%,var(--bg-inset) 50%,var(--bg-muted) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}.skeleton-row{display:flex;gap:var(--space-3);padding:10px 12px;border-bottom:1px solid var(--border)}.skeleton-cell{height:16px;background:linear-gradient(90deg,var(--bg-muted) 25%,var(--bg-inset) 50%,var(--bg-muted) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}.skeleton-cell-sm{width:60px}.skeleton-cell-md{width:120px}.skeleton-cell-lg{flex:1;max-width:200px}.skeleton-chart{height:200px;width:100%;background:linear-gradient(90deg,var(--bg-muted) 25%,var(--bg-inset) 50%,var(--bg-muted) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.skeleton,.skeleton-cell,.skeleton-chart{animation:none;background:var(--bg-muted)}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8) var(--space-4);text-align:center;color:var(--text-muted)}.empty-state-icon{font-size:48px;margin-bottom:var(--space-3);opacity:.5}.empty-state-title{font-size:16px;font-weight:500;color:var(--text-secondary);margin-bottom:var(--space-1)}.empty-state-message{font-size:14px;color:var(--text-muted);max-width:300px}.empty-state-compact{padding:var(--space-4)}.empty-state-compact .empty-state-icon{font-size:32px;margin-bottom:var(--space-2)}.empty-state-compact .empty-state-title{font-size:14px}.empty-state-compact .empty-state-message{font-size:12px}.date-range-picker{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.date-range-group{display:flex;align-items:center;gap:var(--space-2)}.date-range-group label{font-size:12px;color:var(--text-secondary);white-space:nowrap}.date-range-group input[type=date]{width:140px}.date-range-granularity{display:flex;align-items:center;gap:var(--space-2)}.date-range-granularity label{font-size:12px;color:var(--text-secondary);white-space:nowrap}.date-range-granularity select{width:100px}.pagination-controls{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border)}.pagination-controls:empty{display:none}.pagination-controls .btn[aria-current=page]{background:var(--primary);color:var(--text-on-gold);font-weight:600}@media(forced-colors:active){.pagination-controls .btn[aria-current=page]{outline:2px solid;outline-offset:-2px}}.log-table{font-size:13px;width:100%}.log-table th{font-size:11px;padding:8px 10px}.log-table td{padding:6px 10px;vertical-align:middle}.log-table .nowrap{white-space:nowrap}.log-table .truncate{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ip-address{font-family:var(--font-mono);font-size:12px}.badge-default{background:var(--bg-muted);color:var(--text-secondary)}.badge-danger{background:var(--error-bg);color:var(--error-text)}.badge-success{background:var(--success-bg);color:var(--success-text)}.badge-secondary{background:var(--bg-muted);color:var(--text-secondary)}.account-flags{display:inline-flex;gap:4px;flex-wrap:wrap}.badge-flag{font-size:10px;padding:1px 6px;border-radius:3px;text-transform:uppercase;font-weight:600;letter-spacing:.3px}.badge-flag-suspicious{background:var(--warning-bg);color:var(--warning-text)}.badge-flag-vip{background:var(--info-bg);color:var(--info-text)}.badge-flag-bot{background:var(--error-bg);color:var(--error-text)}.badge-flag-trusted{background:var(--success-bg);color:var(--success-text)}.badge-flag-watch{background:var(--watch-bg);color:var(--watch-text)}.watchlist-item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;transition:all .15s}.watchlist-item:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.watchlist-item-info{flex:1;min-width:0}.watchlist-item-name{font-weight:500;color:var(--text-primary);cursor:pointer}.watchlist-item-name:hover{color:var(--primary)}.watchlist-item-details{font-size:12px;color:var(--text-muted);margin-top:2px}.watchlist-item-actions{display:flex;gap:6px}.flag-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-bottom:16px}.flag-stat-card{display:flex;align-items:center;gap:10px;padding:12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);font:inherit;text-align:left}.flag-stat-count{font-size:24px;font-weight:600;color:var(--text-primary)}.flag-stat-label{font-size:12px;color:var(--text-secondary)}.guild-emblem{position:relative;width:48px;height:48px;flex-shrink:0;border-radius:var(--radius);overflow:hidden;background:var(--bg-muted)}.guild-emblem img{position:relative;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.guild-emblem-placeholder{display:flex;align-items:center;justify-content:center;border:2px dashed var(--border)}.action-cell{white-space:nowrap}.action-cell .btn{padding:4px 8px;font-size:11px;margin-left:4px}.action-cell .btn:first-child{margin-left:0}th.sortable{cursor:pointer;user-select:none;transition:background .15s}th.sortable:hover{background:var(--border)}.results-info{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) 0;margin-bottom:var(--space-2);font-size:12px;color:var(--text-secondary);border-bottom:1px solid var(--border)}.results-info .pagination{display:flex;gap:var(--space-1)}.results-info .pagination button{min-width:28px;height:28px;padding:4px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all .15s}.results-info .pagination button:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.results-info .pagination button.active{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}.results-info .pagination button:disabled{opacity:.5;cursor:not-allowed}.item-detail-card,.monster-detail-card,.map-detail-card,.npc-detail-card,.quest-detail-card,.skill-detail-card,.crafting-detail-card{overflow-y:auto}.detail-link-badge{display:inline-block;font-size:11px;padding:3px 8px;border-radius:4px;background:var(--bg-tertiary);color:var(--primary);text-decoration:none;font-weight:500;cursor:pointer}.detail-link-badge:hover{background:var(--primary);color:#fff}.item-detail-card .info-grid,.monster-detail-card .info-grid,.map-detail-card .info-grid,.npc-detail-card .info-grid,.quest-detail-card .info-grid,.skill-detail-card .info-grid,.crafting-detail-card .info-grid{grid-template-columns:repeat(2,1fr)}.mob-detail-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:6px}.mob-detail-sprite-wrap{position:relative;flex-shrink:0;width:64px;height:64px}.mob-detail-sprite{width:64px;height:64px;object-fit:contain}.mob-detail-emotion{position:absolute;top:-4px;left:-4px}.mob-detail-header-info{flex:1;min-width:0}.mob-detail-name{font-size:14px;font-weight:600;line-height:1.3}.mob-detail-dbname{font-size:10px;color:var(--text-muted)}.mob-header-stats{display:flex;flex-wrap:wrap;gap:2px 10px;font-size:11px;color:var(--text-secondary);margin-top:4px}.mob-header-stats b{color:var(--text-primary)}.mob-detail-muted{font-size:11px;color:var(--text-muted)}.mob-stat-table{width:100%;font-size:11px;border-collapse:collapse;margin-bottom:6px;border-top:1px solid var(--border)}.mob-stat-table tr:nth-child(2n) td{background:var(--bg-subtle)}.mob-stat-table td{padding:3px 4px;border-bottom:1px solid color-mix(in srgb,var(--border) 50%,transparent);white-space:nowrap}.mob-stat-table.data-table td{padding:3px 4px;font-size:11px}.mob-base-stats{display:flex;justify-content:space-between;font-size:12px;color:var(--text-secondary)}.mob-base-stats b{color:var(--text-primary);margin-right:2px}.mob-stat-label{color:var(--text-muted);font-weight:500;margin-right:4px}.mob-stat-ratio{color:var(--text-muted);font-size:10px}.mob-detail-section{border-top:1px solid var(--border);padding-top:6px;margin-top:6px}.mob-detail-section-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:4px}.mob-record-table{width:100%;font-size:11px;border-collapse:collapse}.mob-record-table td{padding:2px 4px;vertical-align:middle;border-bottom:1px solid var(--border)}.mob-record-table tr.clickable:hover td{background:var(--bg-subtle)}.mob-mvp-drops-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--warning);margin-bottom:4px}.mob-transform-drops-note{margin:8px 0 4px;font-size:12px;line-height:18px;font-weight:500;color:var(--text-secondary)}.mob-transform-drops-note .mob-link{color:var(--link);font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.mob-transform-drops-note .mob-link:hover{color:var(--text)}.mob-transform-drops-note .mob-link:focus-visible{outline:2px solid var(--ring);outline-offset:var(--ring-offset);border-radius:2px}.mob-skill-state{font-weight:600;color:var(--text-muted);font-size:10px;padding-top:4px!important}.mob-element-list{display:grid;grid-template-columns:1fr 1fr;gap:3px 12px}.mob-el-row{display:flex;align-items:center;gap:6px;font-size:11px}.mob-el-name{width:52px;font-weight:600;font-size:10px;flex-shrink:0;text-align:right}.mob-el-bar-wrap{flex:1;height:10px;background:var(--bg-subtle);border-radius:3px;overflow:hidden}.mob-el-bar{display:block;height:100%;border-radius:3px;transition:width .3s ease}.mob-el-pct{width:36px;font-weight:700;font-size:11px;text-align:right;flex-shrink:0}.mob-el-weak .mob-el-bar{background:#e74c3c}.mob-el-weak .mob-el-pct{color:#e74c3c}.mob-el-resist .mob-el-bar{background:#2ecc71}.mob-el-resist .mob-el-pct{color:#2ecc71}.mob-el-immune .mob-el-bar{background:#3498db;width:2px!important}.mob-el-immune .mob-el-pct{color:#3498db}.mob-el-absorb .mob-el-bar{background:#9b59b6}.mob-el-absorb .mob-el-pct{color:#9b59b6}.mob-el-normal .mob-el-pct{color:var(--text-muted)}@media(max-width:900px){.item-detail-card .info-grid,.monster-detail-card .info-grid,.map-detail-card .info-grid,.npc-detail-card .info-grid,.quest-detail-card .info-grid,.skill-detail-card .info-grid,.crafting-detail-card .info-grid{grid-template-columns:1fr}.item-detail-card,.monster-detail-card,.map-detail-card,.npc-detail-card,.quest-detail-card,.skill-detail-card,.crafting-detail-card{position:fixed!important;top:0;right:-100%;width:100%;max-width:400px;height:100vh;max-height:100vh;z-index:1000;background:var(--bg-surface);box-shadow:-4px 0 24px #0003;visibility:hidden;transition:right .25s ease,visibility 0s .25s;border-radius:0;margin:0}.item-detail-card.open,.monster-detail-card.open,.map-detail-card.open,.npc-detail-card.open,.quest-detail-card.open,.skill-detail-card.open,.crafting-detail-card.open{right:0;visibility:visible;transition:right .25s ease,visibility 0s}.detail-card-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background:#0006;z-index:999;opacity:0;transition:opacity .25s ease;pointer-events:none}.detail-card-backdrop.open{opacity:1;pointer-events:auto}}code{font-family:var(--font-mono);font-size:12px;background:var(--bg-muted);padding:2px 6px;border-radius:var(--radius-sm);color:var(--text-primary)}.text-success{color:var(--success-text)}.text-danger{color:var(--error-text)}tr.keyboard-selected{background:var(--primary-muted)!important;outline:2px solid var(--primary);outline-offset:-2px}tr.keyboard-selected td{background:inherit}.keyboard-help-modal .modal-content{max-width:600px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column}.keyboard-help-body{overflow-y:auto;flex:1;padding-right:var(--space-2)}.keyboard-help-section{margin-bottom:var(--space-5)}.keyboard-help-section:last-child{margin-bottom:0}.keyboard-help-section-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--border)}.keyboard-help-list{display:flex;flex-direction:column;gap:var(--space-2)}.keyboard-help-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) 0}.keyboard-help-keys{min-width:120px;display:flex;align-items:center;gap:4px;flex-wrap:wrap}.keyboard-help-desc{color:var(--text-secondary);font-size:14px}.kbd{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:2px 8px;background:var(--bg-muted);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:12px;font-weight:500;color:var(--text-primary);box-shadow:0 1px 0 var(--border)}.kbd-plus{color:var(--text-muted);font-size:10px;margin:0 2px}.kbd-or{color:var(--text-muted);font-size:11px;margin:0 6px}@media(max-width:480px){.keyboard-help-modal .modal-content{max-height:90vh}.keyboard-help-item{flex-direction:column;align-items:flex-start;gap:var(--space-1)}.keyboard-help-keys{min-width:auto}}.bulk-toolbar{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);background-color:var(--bg-surface);background-image:linear-gradient(var(--primary-muted),var(--primary-muted));border:1px solid var(--border);border-radius:var(--radius);margin-bottom:var(--space-3);animation:bulk-toolbar-in .18s cubic-bezier(0,0,.2,1);position:sticky;top:var(--nav-height, 52px);z-index:20;box-shadow:var(--shadow-sm)}.bulk-count{font-size:14px;font-weight:500;color:var(--primary)}@keyframes bulk-toolbar-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.bulk-count--over{color:var(--error-text)}@media(max-height:600px){.bulk-toolbar,.table-responsive.sticky-head thead th,html.sticky-headers .table-responsive thead th{position:static}}.bulk-toolbar~table tbody tr,.bulk-toolbar~table tbody tr *,.bulk-toolbar~.table-responsive table tbody tr,.bulk-toolbar~.table-responsive table tbody tr *{scroll-margin-top:calc(var(--nav-height, 52px) + var(--bulk-toolbar-h, 0px) + var(--sticky-head-h, 0px) + var(--space-2))}.row-checkbox{width:16px;height:16px;cursor:pointer;accent-color:var(--primary)}tr.selected{background:var(--primary-muted)!important}.compare-body{max-height:500px;overflow-y:auto}.compare-grid{display:grid;gap:var(--space-4)}.compare-grid-2{grid-template-columns:repeat(2,1fr)}.compare-grid-3{grid-template-columns:repeat(3,1fr)}.compare-grid-4{grid-template-columns:repeat(4,1fr)}@media(max-width:700px){.compare-grid-2,.compare-grid-3,.compare-grid-4{grid-template-columns:1fr}}.compare-card{background:var(--bg-muted);border-radius:var(--radius);padding:var(--space-4)}.compare-card-header{text-align:center;padding-bottom:var(--space-3);border-bottom:1px solid var(--border);margin-bottom:var(--space-3)}.compare-card-name{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:var(--space-1)}.compare-card-job{font-size:12px}.compare-section{margin-top:var(--space-4)}.compare-section-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:var(--space-2)}.compare-row{display:flex;justify-content:space-between;padding:var(--space-1) 0;font-size:13px}.compare-label{color:var(--text-secondary)}.compare-value{font-weight:500;color:var(--text-primary)}.compare-value.best{color:var(--success-text);font-weight:600}.compare-value.worst{color:var(--text-muted)}.equipment-body{padding:var(--space-2)}.equipment-grid{display:grid;grid-template-columns:1fr 100px 1fr;grid-template-rows:repeat(5,auto);gap:var(--space-2);max-width:400px;margin:0 auto}.equip-slot{background:var(--bg-muted);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-2) var(--space-3);min-height:50px;display:flex;flex-direction:column;justify-content:center;cursor:pointer;transition:border-color .15s,background .15s}.equip-slot:hover{border-color:var(--primary);background:var(--bg-surface)}.equip-slot.empty{border-style:dashed;opacity:.6}.equip-slot.empty:hover{opacity:1}.equip-slot-label{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:2px}.equip-slot-item{font-size:12px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.equip-slot-item .refine{color:var(--primary)}.equip-head-top{grid-column:2;grid-row:1}.equip-head-mid{grid-column:1;grid-row:2}.equip-head-low{grid-column:3;grid-row:2}.equip-armor{grid-column:2;grid-row:2}.equip-weapon{grid-column:1;grid-row:3}.equip-shield{grid-column:3;grid-row:3}.equip-garment{grid-column:2;grid-row:3}.equip-shoes{grid-column:2;grid-row:4}.equip-acc-l{grid-column:1;grid-row:4}.equip-acc-r{grid-column:3;grid-row:4}.equip-center{grid-column:2;grid-row:2 / 5;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:48px;opacity:.3;pointer-events:none}.equip-detail{position:absolute;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3);box-shadow:var(--shadow-lg);z-index:100;min-width:200px;font-size:12px}.equip-detail-name{font-weight:600;color:var(--text-primary);margin-bottom:var(--space-2)}.equip-detail-stat{display:flex;justify-content:space-between;padding:2px 0;color:var(--text-secondary)}.inventory-search{display:flex;gap:var(--space-2);margin-bottom:var(--space-3)}.inventory-search input{flex:1;height:32px;font-size:13px}.inventory-item.highlight{background:var(--warning-bg);border-radius:var(--radius-sm)}.inventory-controls{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3);align-items:center}.inventory-controls .inventory-summary{flex:1 1 auto;margin-bottom:0}.inventory-controls input{flex:0 1 16rem;min-width:10rem;padding:var(--space-1) var(--space-2);font-size:12px;background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm)}.inventory-controls select{width:auto;flex:0 0 auto;padding:var(--space-1);font-size:11px;background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm)}.inv-table{width:100%;border-collapse:collapse;font-size:12px}.inv-table td{padding:2px 4px;vertical-align:middle}.inv-table.data-table td{font-size:var(--text-xs)}.inv-table tr:hover{background:var(--bg-hover)}.inv-icon{width:28px;padding:1px!important}.inv-icon img{width:24px;height:24px;vertical-align:middle;image-rendering:pixelated}.inv-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.inv-name a{text-decoration:none}.inv-name a:hover{text-decoration:underline}.inv-detail{font-size:11px;color:var(--text-muted)}.inv-card{display:inline-block;background:var(--bg-hover);border-radius:var(--radius-sm);padding:0 4px;margin:1px 2px;font-size:10px;color:var(--text-secondary)}.inv-count{text-align:right;color:var(--text-muted);font-size:11px;white-space:nowrap;width:40px}.inv-actions{width:20px;text-align:center}tr.inventory-item{display:table-row}.inventory-type-group{margin-bottom:var(--space-2)}.inventory-type-header{font-size:11px;margin-bottom:var(--space-1)}.inventory-summary{font-size:11px;color:var(--text-muted);margin-bottom:var(--space-2)}.btn-remove-item{background:none;border:none;color:var(--destructive);cursor:pointer;font-size:10px;padding:0 2px;opacity:.5}.btn-remove-item:hover{opacity:1}.show-all-toggle{color:var(--gold);cursor:pointer;font-size:11px;font-style:italic}.offline-banner{position:fixed;top:0;left:0;right:0;z-index:1100;display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--warning);color:#fff;font-size:14px;font-weight:500;transform:translateY(-100%);transition:transform .3s ease}.offline-banner.visible{transform:translateY(0)}.offline-banner-icon{display:flex;align-items:center}.offline-banner-icon svg{width:18px;height:18px}.field-error{border-color:var(--error)!important;background:var(--error-bg)!important}.field-error:focus{box-shadow:0 0 0 2px var(--error-bg)!important;border-color:var(--error)!important}.field-error-message{color:var(--error-text);font-size:12px;margin-top:var(--space-1);display:flex;align-items:center;gap:var(--space-1)}.field-error-message[hidden]{display:none}.field-error-message:before{content:"";display:inline-block;width:14px;height:14px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B91C1C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' y1='8' x2='12' y2='12'/%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'/%3E%3C/svg%3E") no-repeat center;background-size:contain;flex-shrink:0}.ls-picker{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-4)}.ls-picker__stage{position:relative;align-self:flex-start;max-width:100%;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-inset);cursor:crosshair;touch-action:none}.ls-picker.is-unavailable .ls-picker__stage{min-height:120px;cursor:not-allowed;opacity:.6}.ls-picker__stage:focus-visible{outline:2px solid var(--ring);outline-offset:var(--ring-offset)}.ls-picker__stage img{max-width:100%;max-height:60vh;width:auto;height:auto;display:block;user-select:none;-webkit-user-drag:none}.ls-picker__overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.ls-picker__overlay .ls-guide{fill:none;stroke:#fff;stroke-width:1.5;stroke-dasharray:6 4;paint-order:stroke;filter:drop-shadow(0 0 1.5px rgba(0,0,0,.9))}.ls-picker__overlay .ls-focus{fill:none;stroke:#fff;stroke-width:2;filter:drop-shadow(0 0 1.5px rgba(0,0,0,.95))}.ls-picker__overlay .ls-region{fill:#ffffff1a;stroke-width:2;filter:drop-shadow(0 0 1.5px rgba(0,0,0,.95))}.ls-picker__overlay .ls-region--keep{stroke:#7be3a8}.ls-picker__overlay .ls-region--slot{stroke:#ffd466;stroke-dasharray:5 3}.ls-picker__overlay .ls-region.is-selected{fill:#ffffff38;stroke-width:3}.ls-picker__overlay .ls-region-label{fill:#fff;font-family:var(--font-body);font-size:12px;font-weight:600;paint-order:stroke;stroke:#000000d9;stroke-width:3;stroke-linejoin:round}.ls-picker__overlay .ls-drag{fill:#ffffff29;stroke:#fff;stroke-width:2;stroke-dasharray:4 3;filter:drop-shadow(0 0 1.5px rgba(0,0,0,.95))}.ls-picker__toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.ls-picker__toolbar>label{margin:0;font-size:13px;color:var(--text-secondary)}.ls-picker__toolbar select,.ls-picker__toolbar input[type=number]{width:auto;min-height:36px;margin:0}.ls-picker__toolbar input[type=number]{width:84px}.ls-picker__toolbar .btn{min-height:36px}.ls-picker__mode{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin:0;padding:var(--space-1) var(--space-3) var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.ls-picker__mode legend{padding:0 var(--space-1);font-size:12px;font-weight:600;color:var(--text-muted)}.ls-picker__mode label{display:flex;align-items:center;gap:var(--space-1);min-height:36px;margin:0;font-size:13px;color:var(--text-primary);cursor:pointer}.ls-picker__mode input[type=radio]{width:auto;margin:0}.ls-picker__regions{display:flex;flex-direction:column;gap:var(--space-2)}.ls-picker__regions:empty{display:none}.ls-picker__regions .ls-region{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));align-items:end;gap:var(--space-2);margin:0;padding:var(--space-2) var(--space-3) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface-alt)}.ls-picker__regions .ls-region.is-selected{border-color:var(--primary);box-shadow:inset 3px 0 0 var(--primary)}.ls-picker__regions .ls-region>legend{padding:0 var(--space-1);font-size:12px;font-weight:600;color:var(--text-muted)}.ls-picker__regions .ls-region>label{display:flex;flex-direction:column;gap:var(--space-1);margin:0;font-size:12px;color:var(--text-secondary)}.ls-picker__regions .ls-region input,.ls-picker__regions .ls-region select{width:100%;min-height:36px;margin:0}.ls-picker__regions .ls-region .btn{min-height:36px;align-self:end}.ls-picker__advanced{margin-bottom:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface-alt)}.ls-picker__advanced>summary{min-height:36px;display:flex;align-items:center;font-size:13px;font-weight:600;color:var(--text-secondary);cursor:pointer}.ls-picker__advanced>summary:focus-visible{outline:2px solid var(--ring);outline-offset:var(--ring-offset)}.ls-picker__advanced>label{display:block;margin-top:var(--space-2)}@media(prefers-reduced-motion:reduce){.ls-picker__overlay *{transition:none;animation:none}}.connection-indicator{display:flex;align-items:center;gap:var(--space-2);padding:4px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:500;transition:all .2s ease}.connection-indicator-dot{width:8px;height:8px;border-radius:50%;transition:background .2s ease}.connection-indicator-text{white-space:nowrap}.connection-connected{background:var(--success-bg);color:var(--success-text)}.connection-connected .connection-indicator-dot{background:var(--success);box-shadow:0 0 6px var(--success)}.connection-disconnected{background:var(--error-bg);color:var(--error-text);cursor:pointer}.connection-disconnected:hover{background:var(--error-border)}.connection-disconnected .connection-indicator-dot{background:var(--error)}.connection-reconnecting{background:var(--warning-bg);color:var(--warning-text)}.connection-reconnecting .connection-indicator-dot{background:var(--warning)}.connection-indicator-dot.pulse{animation:connection-pulse 1.5s ease-in-out infinite}@keyframes connection-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8) var(--space-4);text-align:center;color:var(--error-text);background:var(--error-bg);border-radius:var(--radius);border:1px solid var(--error-border)}.error-state-icon{width:48px;height:48px;border-radius:50%;background:var(--error);color:#fff;font-size:24px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-3)}.error-state-message{font-size:14px;margin-bottom:var(--space-4);max-width:300px}.error-state-retry{margin-top:var(--space-2)}.error-state-compact{padding:var(--space-4);flex-direction:row;gap:var(--space-3)}.error-state-compact .error-state-icon{width:32px;height:32px;font-size:16px;margin-bottom:0}.error-state-compact .error-state-message{margin-bottom:0;text-align:left}[data-requires-network].disabled,[data-requires-network]:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}@media(max-width:767px){.connection-indicator-text{display:none}.connection-indicator{padding:6px}.offline-banner{font-size:13px;padding:var(--space-2) var(--space-3)}}.command-palette{position:fixed;inset:0;z-index:1100;display:none;align-items:flex-start;justify-content:center;padding-top:10vh}.command-palette.open{display:flex}.command-palette-backdrop{position:absolute;inset:0;background:var(--overlay-backdrop);animation:cmdPaletteFadeIn .15s ease}.command-palette-dialog{position:relative;width:100%;max-width:560px;max-height:70vh;margin:0 var(--space-4);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;animation:cmdPaletteSlideIn .15s ease;overflow:hidden}.command-palette-header{padding:var(--space-3);border-bottom:1px solid var(--border)}.command-palette-input-wrapper{display:flex;align-items:center;gap:var(--space-3);background:var(--bg-muted);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-2) var(--space-3);transition:border-color .15s,box-shadow .15s}.command-palette-input-wrapper:focus-within{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-muted)}.command-palette-search-icon{width:18px;height:18px;color:var(--text-muted);flex-shrink:0}.command-palette-input{flex:1;border:none;background:transparent;font-size:15px;color:var(--text-primary);outline:none;padding:0;height:auto}.command-palette-input::placeholder{color:var(--text-muted)}.command-palette-hint{flex-shrink:0;padding:2px 6px;font-size:11px;font-family:var(--font-mono);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted)}.command-palette-list{flex:1;overflow-y:auto;padding:var(--space-2);max-height:calc(70vh - 100px)}.command-palette-section{margin-bottom:var(--space-1)}.command-palette-section-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-2);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.command-palette-section-header span{display:flex;align-items:center;gap:var(--space-2)}.command-palette-section-header svg{width:14px;height:14px}.command-palette-clear-recent{font-size:11px;font-weight:400;text-transform:none;letter-spacing:normal;color:var(--text-muted);background:none;border:none;padding:2px 6px;cursor:pointer;border-radius:var(--radius-sm);transition:background .15s,color .15s}.command-palette-clear-recent:hover{background:var(--bg-muted);color:var(--text-primary)}.command-palette-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);margin-bottom:2px;border-radius:var(--radius);cursor:pointer;transition:background .1s}.command-palette-item:hover,.command-palette-item.active{background:var(--bg-muted)}.command-palette-item.active{background:var(--primary-muted);outline:2px solid var(--primary);outline-offset:-2px}.command-palette-item-content{display:flex;align-items:center;gap:var(--space-2);min-width:0;flex:1}.command-palette-item-label{font-size:14px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.command-palette-item-label mark{background:var(--warning-bg);color:inherit;padding:0 1px;border-radius:2px}.command-palette-item-badge{font-size:10px;font-weight:500;padding:2px 6px;border-radius:var(--radius-full);background:var(--bg-muted);color:var(--text-muted);white-space:nowrap}.command-palette-item-badge.recent{background:var(--primary-muted);color:var(--primary)}.command-palette-item-desc{display:block;font-size:11px;color:var(--text-muted);margin-top:1px;line-height:1.3}.command-palette-item-shortcut{flex-shrink:0;font-size:11px;font-family:var(--font-mono);padding:2px 8px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary)}.command-palette-empty{padding:var(--space-6);text-align:center;color:var(--text-muted);font-size:14px}.chord-hint{position:fixed;bottom:24px;right:24px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:8px 14px;font-size:13px;color:var(--text-primary);box-shadow:var(--shadow-lg);z-index:10000;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .15s,transform .15s}.chord-hint.visible{opacity:1;transform:translateY(0)}.chord-hint kbd{display:inline-block;background:var(--bg-muted);border:1px solid var(--border);border-radius:4px;padding:1px 6px;font-family:var(--font-mono);font-size:12px;font-weight:600;min-width:20px;text-align:center}.chord-hint-dots{color:var(--text-muted);letter-spacing:2px}.chord-hint-header{margin-bottom:6px;font-size:12px;color:var(--text-secondary)}.chord-hint-options{display:flex;flex-direction:column;gap:3px}.chord-hint-option{display:flex;align-items:center;gap:8px;font-size:12px}.chord-hint-option span{color:var(--text-secondary)}@media(prefers-reduced-motion:reduce){.chord-hint{transition:none}}.command-palette-footer{display:flex;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-2) var(--space-3);border-top:1px solid var(--border);background:var(--bg-muted);font-size:11px;color:var(--text-muted)}.command-palette-footer span{display:flex;align-items:center;gap:var(--space-1)}.command-palette-footer kbd{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;font-size:10px;font-family:var(--font-mono);background:var(--bg-surface);border:1px solid var(--border);border-radius:3px;color:var(--text-secondary)}@keyframes cmdPaletteFadeIn{0%{opacity:0}to{opacity:1}}@keyframes cmdPaletteSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:600px){.command-palette{padding-top:var(--space-4)}.command-palette-dialog{max-height:calc(100vh - var(--space-8));margin:0 var(--space-2);border-radius:var(--radius)}.command-palette-footer{flex-wrap:wrap;gap:var(--space-2)}}.favorite-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;transition:all .15s ease;flex-shrink:0}.favorite-btn:hover,.favorite-btn.active{border-color:var(--warning);color:var(--warning);background:var(--warning-bg)}.favorite-btn svg{width:16px;height:16px}.favorite-indicator{display:inline-flex;align-items:center;color:var(--warning);margin-left:var(--space-1)}.favorite-indicator svg{width:12px;height:12px}.favorites-section{padding:var(--space-3);border-top:1px solid var(--border)}.favorites-section-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) 0;margin-bottom:var(--space-2)}.favorites-section-title{display:flex;align-items:center;gap:var(--space-2);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.favorites-section-title svg{width:14px;height:14px}.favorites-group{margin-bottom:var(--space-3)}.favorites-group:last-child{margin-bottom:0}.favorites-group-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:var(--space-1) var(--space-2);margin-bottom:var(--space-1)}.favorites-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2);border-radius:var(--radius-sm);color:var(--text-secondary);text-decoration:none;font-size:13px;transition:background .15s,color .15s}.favorites-item:hover{background:var(--bg-muted);color:var(--text-primary);text-decoration:none}.favorites-item-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;color:var(--text-muted)}.favorites-item-icon svg{width:14px;height:14px}.favorites-item-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.favorites-item-remove{display:none;align-items:center;justify-content:center;width:18px;height:18px;background:none;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;flex-shrink:0;transition:background .15s,color .15s}.favorites-item:hover .favorites-item-remove{display:flex}.favorites-item-remove:hover{background:var(--error-bg);color:var(--error-text)}.favorites-item-remove svg{width:12px;height:12px}.favorites-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-4);color:var(--text-muted);font-size:12px;text-align:center}.favorites-empty svg{width:24px;height:24px;opacity:.5}.recent-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-1) var(--space-2);margin-bottom:var(--space-1)}.recent-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.recent-clear{font-size:10px;color:var(--text-muted);background:none;border:none;padding:2px 6px;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s,color .15s}.recent-clear:hover{background:var(--bg-muted);color:var(--text-primary)}.quick-access-bar{display:none;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--bg-muted);border-bottom:1px solid var(--border);overflow-x:auto;-webkit-overflow-scrolling:touch}.quick-access-label{display:flex;align-items:center;color:var(--warning);flex-shrink:0}.quick-access-item{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);text-decoration:none;font-size:12px;white-space:nowrap;transition:border-color .15s,color .15s}.quick-access-item:hover{border-color:var(--primary);color:var(--text-primary);text-decoration:none}.quick-access-icon{display:flex;align-items:center;justify-content:center;width:14px;height:14px;color:var(--text-muted)}.quick-access-icon svg{width:12px;height:12px}.quick-access-name{max-width:100px;overflow:hidden;text-overflow:ellipsis}.quick-access-more{font-size:11px;color:var(--text-muted);padding:0 var(--space-2)}.detail-header-with-favorite{display:flex;align-items:center;gap:var(--space-3)}.detail-header-with-favorite h3{flex:1;margin:0}.favorites-filter{display:flex;align-items:center;gap:var(--space-2);font-size:13px;color:var(--text-secondary);cursor:pointer;user-select:none}.favorites-filter input{accent-color:var(--warning)}@media(max-width:767px){.quick-access-bar{padding:var(--space-2) var(--space-3)}.quick-access-name{display:none}.quick-access-item,.favorites-section{padding:var(--space-2)}}.export-format-dropdown{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:1000;min-width:180px;padding:var(--space-1);animation:dropdownFadeIn .15s ease}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.export-format-option{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);border:none;background:transparent;border-radius:var(--radius-sm);cursor:pointer;text-align:left;transition:background .15s}.export-format-option:hover{background:var(--bg-muted)}.export-format-icon{display:flex;align-items:center;justify-content:center;width:32px;height:24px;font-size:11px;font-weight:700;background:var(--bg-muted);border-radius:var(--radius-sm);color:var(--text-secondary);font-family:var(--font-mono)}.export-format-label{font-size:13px;color:var(--text-primary)}.export-btn{display:inline-flex;align-items:center;gap:var(--space-2)}.export-btn-arrow{font-size:10px;color:var(--text-muted);margin-left:var(--space-1)}.export-page{max-width:1000px}.export-section{margin-bottom:var(--space-6)}.export-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.export-section-title{font-size:16px;font-weight:600;color:var(--text-primary)}.export-data-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-4)}.export-data-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);cursor:pointer;transition:border-color .15s,box-shadow .15s}.export-data-card:hover{border-color:var(--primary);box-shadow:var(--shadow-sm)}.export-data-card.selected{border-color:var(--primary);background:var(--primary-muted)}.export-data-card-icon{font-size:24px;margin-bottom:var(--space-2)}.export-data-card-title{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:var(--space-1)}.export-data-card-desc{font-size:12px;color:var(--text-muted)}.report-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4)}.report-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);display:flex;flex-direction:column}.report-card-header{margin-bottom:var(--space-3)}.report-card-title{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:var(--space-1)}.report-card-desc{font-size:12px;color:var(--text-muted)}.report-card-actions{margin-top:auto;padding-top:var(--space-3);display:flex;gap:var(--space-2)}.export-history-list{display:flex;flex-direction:column;gap:var(--space-2)}.export-history-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius)}.export-history-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--bg-muted);border-radius:var(--radius);font-size:11px;font-weight:700;font-family:var(--font-mono);color:var(--text-muted)}.export-history-info{flex:1;min-width:0}.export-history-filename{font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.export-history-meta{display:flex;gap:var(--space-3);font-size:11px;color:var(--text-muted);margin-top:2px}.export-history-actions{display:flex;gap:var(--space-2);flex-shrink:0}.schedule-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4)}.schedule-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4)}.schedule-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.schedule-card-title{font-size:14px;font-weight:500;color:var(--text-primary)}.schedule-card-status{font-size:11px;padding:2px 8px;border-radius:var(--radius-full)}.schedule-card-status.active{background:var(--success-bg);color:var(--success-text)}.schedule-card-status.inactive{background:var(--bg-muted);color:var(--text-muted)}.schedule-card-details{font-size:12px;color:var(--text-secondary);margin-bottom:var(--space-3)}.schedule-card-detail{display:flex;justify-content:space-between;padding:var(--space-1) 0}.schedule-card-actions{display:flex;gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--border)}.export-preview{margin-top:var(--space-4);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.export-preview-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3);background:var(--bg-muted);border-bottom:1px solid var(--border)}.export-preview-title{font-size:13px;font-weight:500;color:var(--text-secondary)}.export-preview-count{font-size:12px;color:var(--text-muted)}.export-preview-table{max-height:300px;overflow:auto}.export-preview-table table{font-size:12px}.export-preview-table th{position:sticky;top:0;background:var(--bg-surface);z-index:1}.export-modal .modal-content{max-width:600px}.export-modal-filters{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3);margin-bottom:var(--space-4)}.export-modal-filters .form-group{margin-bottom:0}@media(max-width:500px){.export-modal-filters{grid-template-columns:1fr}}.export-date-range{display:flex;align-items:center;gap:var(--space-3)}.export-date-range label{font-size:12px;color:var(--text-secondary);white-space:nowrap}.export-date-range input[type=date]{width:140px}.export-format-inline{display:flex;gap:var(--space-2)}.export-format-inline .format-option{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all .15s}.export-format-inline .format-option:hover{border-color:var(--border-strong)}.export-format-inline .format-option.selected{border-color:var(--primary);background:var(--primary-muted)}.export-format-inline .format-option input{display:none}.schedule-notice{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--warning-bg);border:1px solid var(--warning);border-radius:var(--radius);margin-bottom:var(--space-4)}.schedule-notice-icon{color:var(--warning-text)}.schedule-notice-text{flex:1;font-size:13px;color:var(--warning-text)}.export-history-empty{display:flex;flex-direction:column;align-items:center;padding:var(--space-6);text-align:center;color:var(--text-muted)}.export-history-empty-icon{font-size:32px;margin-bottom:var(--space-2);opacity:.5}.export-history-empty-text{font-size:14px}@media(max-width:767px){.export-data-grid,.report-grid,.schedule-grid{grid-template-columns:1fr}.export-history-item{flex-direction:column;align-items:flex-start;gap:var(--space-2)}.export-history-actions{width:100%;justify-content:flex-end}.export-date-range{flex-direction:column;align-items:stretch}.export-date-range input[type=date]{width:100%}}.session-warning-modal .modal-content,.session-expired-modal .modal-content{max-width:380px;text-align:center}.session-warning-body{padding:var(--space-4) 0}.session-warning-icon{display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:50%;background:var(--warning-bg);color:var(--warning);margin-bottom:var(--space-4)}.session-warning-icon-expired{background:var(--error-bg);color:var(--error)}.session-warning-message,.session-expired-message{font-size:14px;color:var(--text-secondary);margin-bottom:var(--space-3)}.session-countdown{font-size:48px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-primary);margin:var(--space-4) 0;line-height:1}.session-countdown.countdown-urgent{color:var(--error);animation:countdown-pulse 1s ease-in-out infinite}@keyframes countdown-pulse{0%,to{opacity:1}50%{opacity:.6}}.session-warning-hint{font-size:13px;color:var(--text-muted);margin:0}.session-warning-modal,.session-expired-modal{z-index:2000}.session-warning-modal .modal-buttons,.session-expired-modal .modal-buttons{justify-content:center;padding-top:var(--space-4);border-top:1px solid var(--border)}.chat-not-enabled{text-align:center;padding:var(--space-8) var(--space-4);max-width:500px;margin:0 auto}.chat-not-enabled .notice-icon{color:var(--text-muted);margin-bottom:var(--space-4)}.chat-not-enabled h4{font-size:18px;font-weight:600;color:var(--text-primary);margin-bottom:var(--space-2)}.chat-not-enabled>p{color:var(--text-secondary);margin-bottom:var(--space-4)}.chat-not-enabled .notice-details{text-align:left;background:var(--bg-muted);border-radius:var(--radius);padding:var(--space-4);margin-top:var(--space-4)}.chat-not-enabled .notice-details p{margin-bottom:var(--space-2);font-size:13px}.chat-not-enabled .notice-details ol{margin:var(--space-2) 0;padding-left:var(--space-5)}.chat-not-enabled .notice-details li{margin-bottom:var(--space-1);font-size:13px;color:var(--text-secondary)}.chat-not-enabled code{background:var(--bg-inset);padding:2px 6px;border-radius:4px;font-family:var(--font-mono);font-size:12px}.chat-log-list{display:flex;flex-direction:column;gap:var(--space-2)}.chat-message{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3);transition:background .15s}.chat-message:hover{background:var(--bg-muted)}.chat-message.chat-type-0{border-left:3px solid var(--text-secondary)}.chat-message.chat-type-1{border-left:3px solid #ec4899}.chat-message.chat-type-2{border-left:3px solid #3b82f6}.chat-message.chat-type-3{border-left:3px solid #f59e0b}.chat-message.chat-type-4{border-left:3px solid #10b981}.chat-message.chat-type-5{border-left:3px solid #ef4444}.chat-meta{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1)}.chat-time{font-size:11px;color:var(--text-muted);font-family:var(--font-mono)}.chat-content{font-size:13px;line-height:1.5}.chat-sender{font-weight:600;color:var(--primary)}.chat-receiver{font-weight:600;color:#ec4899}.chat-arrow{color:var(--text-muted);margin:0 var(--space-1)}.chat-text{color:var(--text-primary)}.badge-whisper{background:#fce7f3;color:#be185d}.badge-party{background:#dbeafe;color:#1d4ed8}.badge-guild{background:#fef3c7;color:#b45309}.badge-trade{background:#d1fae5;color:#047857}.badge-broadcast{background:#fee2e2;color:#b91c1c}.whisper-thread{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.whisper-thread-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3);background:var(--bg-muted);border-bottom:1px solid var(--border)}.whisper-thread-participants{font-weight:600}.whisper-thread-messages{max-height:400px;overflow-y:auto;padding:var(--space-3)}.whisper-message{margin-bottom:var(--space-3)}.whisper-message.sent{text-align:right}.whisper-message.sent .whisper-bubble{background:var(--primary);color:var(--primary-foreground);margin-left:20%}.whisper-message.received .whisper-bubble{background:var(--bg-muted);color:var(--text-primary);margin-right:20%}.whisper-bubble{display:inline-block;padding:var(--space-2) var(--space-3);border-radius:var(--radius);max-width:80%}.whisper-time{font-size:10px;color:var(--text-muted);margin-top:var(--space-1)}.chat-filters{margin-bottom:var(--space-4)}.input-lg{width:250px}.investment-bar{position:relative;width:100px;min-width:60px;height:18px;background:var(--bg-muted);border-radius:var(--radius-sm);overflow:hidden}.investment-fill{height:100%;transition:width .3s ease}.investment-fill.bar-economy{background:linear-gradient(90deg,#fbbf24,#f59e0b)}.investment-fill.bar-defense{background:linear-gradient(90deg,#60a5fa,#3b82f6)}.investment-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:11px;font-weight:600;color:var(--text-primary);text-shadow:0 0 2px var(--bg-surface)}.chest-status{display:flex;align-items:center;gap:2px}.chest-icon{width:14px;height:14px;border-radius:2px;display:inline-block}.chest-icon.chest-visible{background:#22c55e}.chest-icon.chest-hidden{background:var(--bg-muted);border:1px solid var(--border)}.chest-count{font-size:11px;color:var(--text-muted);margin-left:4px}.chest-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2)}.chest-detail{display:flex;flex-direction:column;align-items:center;padding:var(--space-2);border-radius:var(--radius-sm);text-align:center}.chest-detail.chest-visible{background:#22c55e1a;border:1px solid #22c55e}.chest-detail.chest-hidden{background:var(--bg-muted);border:1px solid var(--border)}.chest-number{font-weight:600;font-size:14px}.chest-state{font-size:10px;color:var(--text-muted)}.woe-countdown-hero{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-8) var(--space-6);margin-bottom:var(--space-6);text-align:center;position:relative;overflow:hidden}.woe-countdown-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 60% 80% at 50% 20%,var(--gold-wash) 0%,transparent 70%);pointer-events:none}.woe-countdown-hero.woe-active{border-color:var(--success-border)}.woe-countdown-hero.woe-active:before{background:radial-gradient(ellipse 60% 80% at 50% 20%,rgba(60,127,92,.06) 0%,transparent 70%)}.woe-countdown-inner{position:relative}.woe-status-line{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-3)}.woe-status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.woe-status-dot.inactive{background:var(--text-muted)}.woe-status-dot.active{background:var(--success);box-shadow:0 0 8px #3c7f5c80;animation:woePulse 2s ease-in-out infinite}@keyframes woePulse{0%,to{opacity:1;box-shadow:0 0 8px #3c7f5c80}50%{opacity:.7;box-shadow:0 0 16px #3c7f5c4d}}.woe-status-text{font-size:13px;color:var(--text-secondary);letter-spacing:.02em;text-transform:uppercase;font-weight:500}.woe-countdown-label{font-family:var(--font-body);font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.12em;margin-bottom:var(--space-1)}.woe-countdown-timer{font-family:var(--font-mono);font-size:40px;font-weight:700;color:var(--text-primary);letter-spacing:.04em;line-height:1;margin-bottom:var(--space-2)}.woe-countdown-timer.woe-now{color:var(--success)}.woe-countdown-edition{font-size:13px;color:var(--text-muted)}.woe-countdown-edition .edition-tag{display:inline-block;padding:2px 8px;border-radius:var(--radius-sm);font-size:11px;font-weight:600;letter-spacing:.04em;margin-right:var(--space-1);vertical-align:middle}.edition-tag-fe{background:var(--gold-pale);color:var(--gold)}.edition-tag-se{background:var(--blue-pale);color:var(--blue)}.woe-calendar{display:grid;grid-template-columns:1fr;gap:0;margin-bottom:var(--space-3)}.cal-hours{display:grid;grid-template-columns:48px 1fr;border-bottom:1px solid var(--border-subtle)}.cal-hour-labels{display:flex;position:relative;height:20px}.cal-hour-label{position:absolute;font-size:10px;color:var(--text-muted);font-family:var(--font-mono);transform:translate(-50%);white-space:nowrap}.cal-day{display:grid;grid-template-columns:48px 1fr;align-items:center;border-bottom:1px solid var(--border-subtle);min-height:36px}.cal-day:last-child{border-bottom:none}.cal-day-label{font-size:12px;font-weight:600;color:var(--text-secondary);padding-left:var(--space-2);text-transform:uppercase;letter-spacing:.05em}.cal-day-label.cal-today{color:var(--gold)}.cal-day-track{position:relative;height:28px;background:var(--bg-muted);border-radius:4px;overflow:hidden;margin:3px 0}.cal-slot{position:absolute;top:3px;bottom:3px;border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;letter-spacing:.03em;cursor:default;transition:filter .15s}.cal-slot:hover{filter:brightness(1.1)}.cal-slot-fe{background:var(--gold);color:var(--gold-fg)}.cal-slot-se{background:var(--blue);color:#fff}.cal-now-line{position:absolute;top:0;bottom:0;width:2px;background:var(--red);z-index:2;pointer-events:none}.cal-now-line:before{content:"";position:absolute;top:-3px;left:-3px;width:8px;height:8px;border-radius:50%;background:var(--red)}.time-format-toggle{font-family:var(--font-mono);font-size:11px;font-weight:600;padding:2px 8px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-muted);color:var(--text-secondary);cursor:pointer;transition:all .15s;line-height:1.4}.time-format-toggle:hover{border-color:var(--border-strong);color:var(--text-primary)}.woe-calendar-legend{display:flex;gap:var(--space-4);padding:0 var(--space-2) var(--space-2)}.legend-item{display:flex;align-items:center;gap:var(--space-1);font-size:12px;color:var(--text-secondary)}.legend-swatch{width:12px;height:12px;border-radius:3px}.legend-fe{background:var(--gold-decor)}.legend-se{background:var(--blue)}.woe-editions{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--space-4)}.woe-edition-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;box-shadow:var(--shadow-sm)}.edition-accent{width:4px;flex-shrink:0}.woe-edition-fe .edition-accent{background:var(--gold-decor)}.woe-edition-se .edition-accent{background:var(--blue)}.edition-body{padding:var(--space-4) var(--space-5);flex:1}.edition-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.edition-header h4{font-family:var(--font-body);font-size:15px;margin:0}.edition-badge{font-size:11px;font-weight:700;letter-spacing:.08em;padding:2px 8px;border-radius:var(--radius-sm)}.edition-badge-fe{background:var(--gold-pale);color:var(--gold)}.edition-badge-se{background:var(--blue-pale);color:var(--blue)}.edition-sessions{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-3);padding-bottom:var(--space-3);border-bottom:1px solid var(--border-subtle)}.edition-session{display:flex;justify-content:space-between;align-items:center}.session-day{font-weight:600;font-size:13px;color:var(--text-primary)}.session-time{font-family:var(--font-mono);font-size:13px;color:var(--text-secondary)}.edition-details{display:flex;flex-direction:column;gap:var(--space-2)}.edition-detail-row{display:flex;gap:var(--space-2);font-size:12px;line-height:1.4}.detail-label{color:var(--text-muted);flex-shrink:0;min-width:56px;font-weight:500}.rank-badge.rank-1{background:linear-gradient(135deg,var(--rank-badge-1-start),var(--rank-badge-1-end));color:var(--rank-badge-1-fg)}.rank-badge.rank-2{background:linear-gradient(135deg,var(--rank-badge-2-start),var(--rank-badge-2-end));color:var(--rank-badge-2-fg)}.rank-badge.rank-3{background:linear-gradient(135deg,var(--rank-badge-3-start),var(--rank-badge-3-end));color:var(--rank-badge-3-fg)}.badge-castle{background:var(--primary);color:var(--primary-foreground)}.history-list{max-height:300px;overflow-y:auto}.history-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) 0;border-bottom:1px solid var(--border)}.history-item:last-child{border-bottom:none}.history-time{font-size:12px;color:var(--text-muted);min-width:140px}.history-guild{flex:1;padding:0 var(--space-2)}.history-stats{font-size:12px;color:var(--text-secondary)}.empty-owner{text-align:center;padding:var(--space-4);background:var(--bg-muted);border-radius:var(--radius)}.rank-badge{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:2px 8px;border-radius:50%;font-size:12px;font-weight:600;background:var(--bg-muted);color:var(--text-secondary)}.rank-gold{background:linear-gradient(135deg,var(--rank-gold-start),var(--rank-gold-end));color:var(--rank-gold-fg)}.rank-silver{background:linear-gradient(135deg,var(--rank-silver-start),var(--rank-silver-end));color:var(--rank-silver-fg)}.rank-bronze{background:linear-gradient(135deg,var(--rank-bronze-start),var(--rank-bronze-end));color:var(--rank-bronze-fg)}.class-chart-container{padding:var(--space-4);min-height:280px;display:flex;align-items:center;justify-content:center}.bar-container{position:relative;height:22px;background:var(--bg-muted);border-radius:var(--radius);overflow:hidden}.bar-fill{height:100%;background:#6366f1;border-radius:var(--radius);transition:width .4s ease}.bar-fill-pvp{background:#ef4444}.bar-label{position:absolute;top:50%;left:8px;transform:translateY(-50%);font-size:11px;font-weight:500;color:var(--text-primary);white-space:nowrap}.map-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4)}.map-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s,box-shadow .15s;overflow:hidden}.map-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.map-card-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);cursor:pointer;user-select:none;transition:background .15s}.map-card-header:hover{background:var(--bg-muted)}.map-card-name{font-size:14px;font-weight:600;color:var(--text-primary);font-family:var(--font-mono)}.map-card-count{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:24px;padding:0 8px;border-radius:var(--radius-full);font-size:12px;font-weight:600}.map-card-players{max-height:0;overflow:hidden;transition:max-height .25s ease;border-top:0 solid var(--border)}.map-card-players.expanded{max-height:600px;overflow-y:auto;border-top-width:1px}.map-player-list{padding:var(--space-2) var(--space-4) var(--space-3)}.map-player-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) 0;font-size:13px;border-bottom:1px solid var(--border)}.map-player-item:last-child{border-bottom:none}.map-player-name{font-weight:500;color:var(--text-primary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-player-job{font-size:12px;color:var(--text-secondary);white-space:nowrap}.map-player-level{font-size:11px;color:var(--text-muted);white-space:nowrap}.map-player-coords{font-size:11px;color:var(--text-muted);font-family:var(--font-mono);white-space:nowrap}.map-heat-empty{border-left:3px solid var(--text-muted)}.map-heat-empty .map-card-count{background:var(--bg-muted);color:var(--text-muted)}.map-heat-low{border-left:3px solid #22c55e}.map-heat-low .map-card-count{background:#d1fae5;color:#065f46}.map-heat-medium{border-left:3px solid #f59e0b}.map-heat-medium .map-card-count{background:#fef3c7;color:#92400e}.map-heat-high{border-left:3px solid #ef4444}.map-heat-high .map-card-count{background:#fee2e2;color:#991b1b}.map-heat-critical{border-left:3px solid #7c3aed}.map-heat-critical .map-card-count{background:#ede9fe;color:#5b21b6}.map-toolbar{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap}.map-toolbar .form-input{max-width:280px;height:36px}.map-toolbar select{height:36px;min-width:160px}.map-stats-bar{display:flex;gap:var(--space-4);font-size:13px;color:var(--text-secondary);margin-left:auto}.map-stats-bar strong{color:var(--text-primary)}.map-refresh-indicator{display:inline-flex;align-items:center;gap:var(--space-1);font-size:11px;color:var(--text-muted)}.map-refresh-dot{width:6px;height:6px;border-radius:50%;background:var(--success);animation:pulse 2s infinite}.map-card-chevron{width:16px;height:16px;color:var(--text-muted);transition:transform .2s ease;flex-shrink:0;margin-left:var(--space-2)}.map-card-header.expanded .map-card-chevron{transform:rotate(180deg)}.popular-map-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--border)}.popular-map-row:last-child{border-bottom:none}.popular-map-rank{min-width:28px;font-size:13px;font-weight:600;color:var(--text-muted);text-align:center}.popular-map-name{min-width:140px;font-size:13px;font-weight:500;color:var(--text-primary);font-family:var(--font-mono)}.popular-map-bar-container{flex:1;height:20px;background:var(--bg-muted);border-radius:var(--radius-sm);overflow:hidden}.popular-map-bar{height:100%;background:linear-gradient(90deg,var(--primary),#60a5fa);border-radius:var(--radius-sm);transition:width .3s ease;min-width:2px}.popular-map-count{min-width:40px;text-align:right;font-size:13px;font-weight:600;color:var(--text-primary)}@media(max-width:767px){.map-grid{grid-template-columns:1fr}.map-toolbar{flex-direction:column;align-items:stretch}.map-toolbar .form-input,.map-toolbar select{max-width:100%}.map-stats-bar{margin-left:0}}.quest-summary{display:flex;gap:12px;margin-bottom:16px}.quest-badge{padding:4px 12px;border-radius:12px;font-size:13px;font-weight:500}.quest-badge-active{background:var(--warning-bg, #fff3cd);color:var(--warning-text, #856404)}.quest-badge-completed{background:var(--success-bg, #d4edda);color:var(--success-text, #155724)}.quest-state{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px}.quest-state-active{background:#ffc107;color:#000}.quest-state-complete{background:#28a745;color:#fff}.quest-state-removed{background:#6c757d;color:#fff}.quest-filter-btn.active{background:var(--primary, #4a90d9);color:#fff}.backup-size{display:inline-block;padding:2px 8px;background:var(--bg-muted);border-radius:4px;font-size:12px;font-weight:500;color:var(--text-secondary);font-family:var(--font-mono, monospace)}.backup-actions{display:flex;gap:var(--space-2);white-space:nowrap}.backup-creating{display:flex;align-items:center;padding:12px 16px;background:var(--bg-muted);border-radius:var(--radius);color:var(--text-secondary);font-size:14px;animation:backup-pulse 1.5s ease-in-out infinite}@keyframes backup-pulse{0%,to{opacity:1}50%{opacity:.6}}.minimap-overlay{position:relative;display:inline-block}.minimap-zoom-btn{width:22px;height:22px;border:1px solid var(--border);border-radius:4px;background:var(--bg-secondary);color:var(--text-primary);font-size:12px;line-height:20px;text-align:center;padding:0;cursor:pointer;opacity:.6;transition:opacity .15s;margin-left:auto;flex-shrink:0}.minimap-zoom-btn:hover{opacity:1}.minimap-dot{position:absolute;border-radius:50%;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.9);box-shadow:0 0 2px #000c;pointer-events:auto;cursor:help;transition:transform .15s ease,box-shadow .15s ease;z-index:2}.minimap-dot:before{content:"";position:absolute;inset:-6px;border-radius:50%}.minimap-dot:hover{transform:translate(-50%,-50%) scale(2.5);box-shadow:0 0 6px #000000e6;z-index:10}.minimap-dot[data-deconflict-offset]:hover{scale:2.5}.minimap-dot-highlight{z-index:9;animation:minimap-ping .8s ease-out 3}@keyframes minimap-ping{0%{box-shadow:0 0 #ffffffe6}to{box-shadow:0 0 0 10px #fff0}}.minimap-dot-random{animation:minimap-shake 2s ease-in-out infinite}@keyframes minimap-shake{0%,to{translate:-50% -50%}20%{translate:calc(-50% + 2px) calc(-50% - 1px)}40%{translate:calc(-50% - 2px) calc(-50% + 1px)}60%{translate:calc(-50% + 1px) calc(-50% + 2px)}80%{translate:calc(-50% - 1px) calc(-50% - 2px)}}.minimap-dot-shop{cursor:pointer}.npc-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.npc-detail-id{display:flex;align-items:center;gap:12px;flex:1 1 200px;min-width:0}.npc-detail-sprite{max-height:64px;image-rendering:pixelated;flex-shrink:0}.npc-detail-info{min-width:0}.npc-detail-name{font-size:15px;font-weight:600}.npc-detail-loc,.npc-detail-dir{font-size:11px;color:var(--text-muted)}.npc-detail-dir{margin-top:2px}.npc-detail-loc a,.npc-detail-dir a{color:inherit;text-decoration:underline}.route-methods{margin-top:5px;font-size:11px;color:var(--text-muted)}.route-methods-head{font-weight:600}.route-methods ul{margin:2px 0 0;padding-left:16px}.route-methods li{margin:1px 0}.route-methods a{color:inherit;text-decoration:underline}.route-method-caveat{opacity:.75;font-style:italic}.route-unpinned{margin-top:4px;font-size:11px;color:var(--text-muted)}.route-unpinned a{color:inherit;text-decoration:underline}.route-map-big{position:relative;display:inline-block;flex:0 0 auto;max-width:100%;border:1px solid var(--border);border-radius:6px;overflow:hidden;background:var(--bg-secondary);line-height:0;cursor:help;transition:border-color .15s ease}.route-map-big:hover{border-color:var(--text-primary)}.route-map-big:focus-visible{border-color:var(--text-primary);outline:2px solid var(--blue);outline-offset:2px}.route-map-big img{display:block;max-width:100%;max-height:132px;image-rendering:pixelated}.route-marker{position:absolute;width:12px;height:12px;transform:translate(-50%,-50%);border-radius:50%;border:2px solid rgba(255,255,255,.95);box-shadow:0 0 3px #000000e6;animation:minimap-ping 1.4s ease-out infinite;z-index:3;pointer-events:none}.route-marker-portal{background:var(--map-dot-warp)}.route-marker-npc{background:var(--map-dot-shop)}.route-map-zoom{position:absolute;right:3px;bottom:3px;font-size:11px;line-height:1;opacity:.75;pointer-events:none;text-shadow:0 0 3px rgba(0,0,0,.9);z-index:4}.route-map-modal .modal-content{width:auto;max-width:min(90vw,760px)}.route-map-modal-stage{position:relative;line-height:0;border-radius:4px;overflow:hidden}.route-map-modal-stage img{display:block;max-width:84vw;max-height:72vh;image-rendering:pixelated}.route-map-modal-stage .route-marker{width:16px;height:16px}.route-map-modal-stage{cursor:help}.route-map-modal-title{margin:0}.route-map-modal-nav{color:inherit;text-decoration:none;cursor:pointer}.route-map-modal-nav:hover{text-decoration:underline}.route-map-modal-ext{font-size:.8em;opacity:.65}.minimap-tip{position:fixed;transform:translate(-50%,-100%);background:#000000d9;color:#fff;font-size:11px;padding:3px 8px;border-radius:4px;white-space:nowrap;pointer-events:none;z-index:9999}.minimap-tip.minimap-tip-rich{display:flex;align-items:center;gap:8px;padding:6px 10px;white-space:normal;border-radius:6px;backdrop-filter:blur(4px)}.minimap-tip-rich img{flex-shrink:0}.minimap-tip-info{min-width:0}.minimap-tip-name{font-weight:600;font-size:12px;line-height:1.3}.minimap-tip-dbname{font-size:9px;color:#fff6;font-family:monospace}.minimap-tip-stats{font-size:10px;color:#fffc;margin-top:2px}.minimap-tip-props{font-size:10px;color:#ffffff8c;margin-top:1px}.minimap-tip-exp{font-size:9px;color:#fff6;margin-top:1px}.mvp-badge{color:#f39c12;font-size:10px;font-weight:700;margin-left:4px}.minimap-dot-npc{width:1.95%;height:1.95%;background:var(--map-dot-npc)}.minimap-dot-shop{width:1.95%;height:1.95%;background:var(--map-dot-shop)}.minimap-dot-spawn{width:1.95%;height:1.95%;background:var(--map-dot-spawn);opacity:.7}.minimap-dot-boss{width:1.95%;height:1.95%;background:var(--map-dot-boss);opacity:1}.minimap-spawn-area{position:absolute;background:#1abc9c26;border:1px solid rgba(26,188,156,.35);border-radius:2px;pointer-events:none;transform:translate(-50%,-50%);z-index:0}.minimap-spawn-area-boss{background:#f39c1226;border-color:#f39c1259}.minimap-legend{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:11px;color:var(--text-secondary)}.minimap-legend label{display:flex;align-items:center;gap:4px;cursor:pointer;user-select:none;white-space:nowrap}.minimap-legend input[type=checkbox]{width:14px;height:14px;min-width:14px;flex-shrink:0;margin:0}.minimap-legend-dot{display:inline-block;width:12px;height:12px;min-width:12px;border-radius:50%;border:1px solid rgba(0,0,0,.2)}.minimap-legend-dot-npc{background:var(--map-dot-npc)}.minimap-legend-dot-shop{background:var(--map-dot-shop)}.minimap-legend-dot-spawn{background:var(--map-dot-spawn)}.minimap-legend-dot-boss{background:var(--map-dot-boss)}.minimap-legend-dot-warp{background:var(--map-dot-warp)}.minimap-dot-warp{width:1.95%;height:1.95%;background:var(--map-dot-warp);cursor:pointer}.npc-icon-fallback{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--border);margin:4px;vertical-align:middle}.view-toggle{display:inline-flex;border-radius:6px;overflow:hidden;border:1px solid var(--border)}.view-toggle-btn{padding:4px 14px;font-size:12px;border:none;cursor:pointer;background:var(--bg-secondary);color:var(--text-secondary);transition:background .15s,color .15s;font-family:var(--font-sans);font-weight:500;line-height:1.4}.view-toggle-btn.active{background:var(--primary);color:#fff}.view-toggle-btn:hover:not(.active){background:var(--bg-tertiary)}.crafting-type-pill{padding:3px 12px;font-size:11px;font-family:var(--font-sans);font-weight:500;border:1px solid var(--border);border-radius:12px;cursor:pointer;background:transparent;color:var(--text-secondary);transition:background .15s,color .15s,border-color .15s}.crafting-type-pill:hover:not(.active){background:var(--bg-tertiary)}.crafting-type-pill.active{background:var(--primary);color:#fff;border-color:var(--primary)}.st-job-picker{margin-bottom:10px}.st-tier{display:flex;align-items:baseline;gap:8px;margin-bottom:6px}.st-tier-label{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;min-width:82px}.st-tier-jobs{display:flex;flex-wrap:wrap;gap:4px}.st-job-btn{padding:3px 10px;font-size:11px;font-family:var(--font-body);font-weight:500;border:1px solid var(--border-subtle);border-radius:var(--radius-full);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;transition:all .15s;line-height:1.4}.st-job-btn:hover{border-color:var(--border-strong);color:var(--text-primary);background:var(--bg-muted)}.st-job-btn.active{background:var(--gold-wash);border-color:var(--gold);color:var(--gold);font-weight:600}.skill-tree-container{overflow:auto;border-radius:var(--radius-lg);border:1px solid var(--border);min-height:100px;flex:1;background:radial-gradient(ellipse at 50% 0%,var(--gold-wash) 0%,transparent 60%),var(--bg-surface-alt)}.skill-tree-container svg{display:block;margin:0 auto}.skill-tree-edge{stroke:var(--border-strong);stroke-width:1.5;transition:stroke .2s,opacity .2s,stroke-width .2s}.st-arrow-fill{fill:var(--border-strong)}.st-arrow-hl-fill{fill:var(--gold-decor)}.skill-tree-node{cursor:pointer}.skill-tree-node text,.skill-tree-node image{pointer-events:none}.st-ring{fill:none;stroke:url(#st-ring-grad);stroke-width:2.5;transition:stroke-width .15s,filter .15s}.st-ring-stop1{stop-color:var(--gold-decor)}.st-ring-stop2{stop-color:#c8962a}.st-ring.st-type-0{stroke:var(--border-strong)}.st-ring.st-type-2{stroke:var(--success-border)}.st-fill{fill:var(--bg-surface);transition:fill .15s}.st-label{font-family:var(--font-body);font-size:10px;font-weight:500;fill:var(--text-secondary);transition:fill .15s}.st-lv-bg{fill:var(--bg-muted);stroke:var(--border);stroke-width:1}.st-lv-text{font-family:var(--font-body);font-size:9px;font-weight:600;fill:var(--text-secondary)}.skill-tree-node:hover .st-ring{stroke-width:3.5;filter:url(#st-glow)}.skill-tree-node:hover .st-label{fill:var(--text-primary)}.skill-tree-node.inherited{opacity:.4}.skill-tree-node.inherited:hover{opacity:.85}.skill-tree-container.highlighting .skill-tree-node:not(.highlighted),.skill-tree-container.highlighting .skill-tree-edge:not(.highlighted){opacity:.15}.skill-tree-container.highlighting .skill-tree-node.highlighted .st-ring{stroke-width:3}.skill-tree-container.highlighting .skill-tree-edge.highlighted{opacity:1;stroke:var(--gold-decor);stroke-width:2;marker-end:url(#st-arrow-hl)}.job-filter-wrap{position:relative;width:240px}.job-filter-input{display:flex;align-items:center;gap:4px;height:36px;width:100%;padding:0 8px;background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;cursor:text;overflow:hidden;flex-wrap:nowrap}.job-filter-input:focus-within{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-muted)}.job-filter-chip{display:inline-flex;align-items:center;background:var(--gold-pale);color:var(--text-primary);padding:2px 7px;border-radius:var(--radius-full);font-size:11px;font-weight:500;white-space:nowrap;line-height:1.4;flex-shrink:0}.job-filter-more{display:inline-flex;align-items:center;background:var(--bg-muted);color:var(--text-muted);padding:2px 7px;border-radius:var(--radius-full);font-size:11px;font-weight:600;white-space:nowrap;line-height:1.4;flex-shrink:0}.job-filter-search{border:none;background:transparent;outline:none;font-size:14px;color:var(--text-primary);flex:1;min-width:0;width:auto;height:auto;padding:0;line-height:1.6;box-shadow:none}.job-filter-search:focus{border:none;box-shadow:none}.job-filter-search::placeholder{color:var(--text-muted)}.job-filter-popup{display:none;position:absolute;top:calc(100% + 4px);left:0;width:420px;z-index:100;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);max-height:400px;overflow-y:auto;opacity:0;transform:translateY(-4px);transition:opacity .15s ease-out,transform .15s ease-out}.job-filter-popup.open{display:block;opacity:1;transform:translateY(0)}.job-filter-popup-header{display:flex;justify-content:flex-end;padding:var(--space-2) var(--space-3) 0}.job-filter-popup-header a{font-size:11px;color:var(--text-muted);text-decoration:none}.job-filter-popup-header a:hover{color:var(--text-primary)}.job-filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3) var(--space-4);padding:var(--space-3)}.job-filter-group-hdr{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;margin-bottom:var(--space-1)}.job-filter-job{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:400;color:var(--text-primary);cursor:pointer;padding:1px 0}@media(max-width:768px){.job-filter-input{width:100%}.job-filter-popup{width:auto;left:0;right:0}.job-filter-grid{grid-template-columns:1fr}}.filter-row-advanced{display:flex;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;align-items:flex-end;padding-top:var(--space-2);border-top:1px dashed var(--border)}.filter-cell{display:flex;flex-direction:column;gap:var(--space-1)}.filter-cell-grow{flex:1}.filter-cell>label{font-size:11px;font-weight:500;color:var(--text-muted);letter-spacing:.02em;line-height:1}.filter-cell-check{justify-content:flex-end;padding-bottom:8px}.filter-cell-check>label{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-primary);cursor:pointer;white-space:nowrap}.filter-check-dropdown{position:relative}.filter-check-bar{display:flex;align-items:center;gap:4px;height:36px;width:140px;padding:0 8px;background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;cursor:pointer;overflow:hidden;flex-wrap:nowrap}.filter-check-bar:hover{border-color:var(--text-muted)}.filter-check-placeholder{color:var(--text-muted);font-size:14px}.filter-check-chip{display:inline-flex;align-items:center;background:var(--gold-pale);color:var(--text-primary);padding:2px 7px;border-radius:var(--radius-full);font-size:11px;font-weight:500;white-space:nowrap;line-height:1.4;flex-shrink:0}.filter-check-more{display:inline-flex;align-items:center;background:var(--bg-muted);color:var(--text-muted);padding:2px 7px;border-radius:var(--radius-full);font-size:11px;font-weight:600;white-space:nowrap;line-height:1.4;flex-shrink:0}.filter-check-panel{display:none;position:absolute;top:100%;left:0;z-index:100;margin-top:4px;padding:6px 0;width:160px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);opacity:0;transform:translateY(-4px);transition:opacity .15s ease-out,transform .15s ease-out}.filter-check-panel.open{display:block;opacity:1;transform:translateY(0)}.filter-check-panel label{display:flex;align-items:center;gap:6px;padding:4px 12px;font-size:12px;color:var(--text-primary);cursor:pointer;white-space:nowrap}.filter-check-panel label:hover{background:var(--bg-hover)}.filter-range{display:flex;gap:4px;align-items:center}.filter-range-sep{font-size:11px;color:var(--text-muted);line-height:1}.item-sub-filters{display:flex;gap:var(--space-3);align-items:flex-end;border-left:2px solid var(--primary-muted, var(--border));padding-left:var(--space-3);margin-left:var(--space-1)}@media(max-width:768px){.filter-row-advanced{gap:var(--space-2)}.item-sub-filters{flex-wrap:wrap;border-left:none;padding-left:0;margin-left:0;border-top:2px solid var(--border);padding-top:8px;width:100%}}@media(max-width:767px){.gamedata-fill{height:auto;min-height:0}.gamedata-fill .tab-content>.grid{grid-template-columns:1fr}.gamedata-fill .scroll-box-lg{max-height:none;flex:none;min-height:50vh}.gamedata-fill .filter-row:not(.filter-row-advanced){display:flex;flex-direction:row;align-items:flex-end;gap:var(--space-2)}.gamedata-fill .filter-row:not(.filter-row-advanced)>.filter-cell:not(.filter-cell-grow){display:none}.gamedata-fill .filter-row:not(.filter-row-advanced) .filter-cell-grow{flex:1;width:100%}.gamedata-fill .filter-row:not(.filter-row-advanced) .filter-cell-grow>label{display:none}.gamedata-fill .filter-row-advanced{display:none}.gamedata-mobile-filter-toggle{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-secondary);background:var(--bg-muted);border:1px solid var(--border);border-radius:var(--radius);padding:6px 12px;cursor:pointer;margin-bottom:var(--space-2)}.gamedata-mobile-filter-toggle:before{content:"\25bc";font-size:8px;transition:transform .2s}.gamedata-mobile-filter-toggle.open:before{transform:rotate(180deg)}.gamedata-fill .filter-row.mobile-filters-visible{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-2)}.gamedata-fill .filter-row.mobile-filters-visible .filter-cell,.gamedata-fill .filter-row.mobile-filters-visible .filter-cell select,.gamedata-fill .filter-row.mobile-filters-visible .filter-cell input{width:100%}.gamedata-fill .scroll-box-lg thead{display:none}.gamedata-fill .scroll-box-lg table{display:block;font-size:14px}.gamedata-fill .scroll-box-lg tbody{display:block}.gamedata-fill .scroll-box-lg tr{display:flex;align-items:center;gap:10px;padding:10px 4px;border-bottom:1px solid var(--border)}.gamedata-fill .scroll-box-lg tr:active{background:var(--gold-pale)}.gamedata-fill .scroll-box-lg td{display:none;padding:0;border:none}.gamedata-fill .scroll-box-lg td:nth-child(1){display:flex;flex-shrink:0;width:32px;height:32px;align-items:center;justify-content:center}.gamedata-fill .scroll-box-lg td:nth-child(1) img{width:32px!important;height:32px!important}.gamedata-fill .scroll-box-lg td:nth-child(2){display:block;flex:1;min-width:0;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gamedata-fill #itemResults td:nth-child(4),.gamedata-fill #monsterResults td:nth-child(3),.gamedata-fill #mapResults td:nth-child(3),.gamedata-fill #skillResults td:nth-child(4),.gamedata-fill #craftingResults td:nth-child(3),.gamedata-fill #petResults td:nth-child(3){display:block;flex-shrink:0;font-size:12px;color:var(--text-secondary);text-align:right}.gamedata-fill .card{padding:var(--space-3);border:none;box-shadow:none;background:transparent}.gamedata-fill .page-header{display:none}.gamedata-fill .card-header{margin-bottom:var(--space-2);padding-bottom:var(--space-2)}.gamedata-fill .scroll-box-lg{border-top:1px solid var(--border)}}.gamedata-mobile-filter-toggle{display:none}.inline-editable{cursor:pointer;position:relative;border-radius:var(--radius-sm);transition:background .15s}.inline-editable:hover{background:var(--bg-muted)}.inline-editable:hover:after{content:"\270e";margin-left:4px;opacity:.4;font-size:11px}.inline-editable.editing{cursor:default;background:none}.inline-editable.editing:after{display:none}.inline-edit-input{background:var(--bg-surface);border:1px solid var(--primary);border-radius:var(--radius-sm);padding:2px 6px;font-size:inherit;font-family:inherit;color:var(--text-primary);outline:none;box-shadow:0 0 0 2px #be851833}.inline-edit-input:focus{border-color:var(--primary-hover)}.inline-edit-warp{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.side-menu-layout{display:flex;align-items:flex-start;gap:var(--space-10)}.side-menu{width:220px;flex-shrink:0;position:sticky;top:calc(var(--nav-height) + var(--space-4));max-height:calc(100vh - var(--nav-height) - var(--space-8));overflow-y:auto;padding-right:var(--space-4)}.side-menu .side-menu-link{display:block;width:100%;margin:0;padding:var(--space-1) var(--space-3);border:0;background:transparent;font-family:inherit;font-size:var(--text-sm);font-weight:400;line-height:inherit;text-align:left;color:var(--text-secondary);text-decoration:none;border-radius:var(--radius-sm);cursor:pointer;transition:background .12s,color .12s}.side-menu .side-menu-link:hover{background:var(--gold-wash);color:var(--text-primary);text-decoration:none}.side-menu .side-menu-link.is-active,.side-menu .side-menu-link.active,.side-menu .side-menu-link[aria-current=location]{background:var(--gold-wash);color:var(--gold);font-weight:600}.side-menu .side-menu-link:focus-visible{outline:2px solid var(--ring);outline-offset:-2px}.side-menu-body{flex:1;min-width:0}.side-menu-jump{display:none;margin-bottom:var(--space-5)}.side-menu-jump-label{display:block;font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:var(--space-2)}.side-menu-jump-select{width:100%;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm)}@media(max-width:767px){.side-menu-layout{display:block}.side-menu{display:none}.side-menu-jump{display:block}}@media(pointer:coarse){.side-menu-jump-select{min-height:44px}.side-menu .side-menu-link{min-height:44px;padding:var(--space-3)}}

.job-badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-full);font-size:12px;font-weight:500;line-height:1.4;white-space:nowrap}.job-swordsman{background:#fef2f2;color:#b91c1c}.job-mage{background:#eff6ff;color:#1d4ed8}.job-archer{background:#f0fdf4;color:#15803d}.job-acolyte{background:#fefce8;color:#a16207}.job-merchant{background:#fef3c7;color:#92400e}.job-thief{background:#faf5ff;color:#7e22ce}.job-novice{background:var(--bg-muted);color:var(--text-secondary)}.job-taekwon{background:#fdf4ff;color:#a21caf}.job-gunslinger{background:#f5f5f4;color:#57534e}.job-ninja{background:#0f172a;color:#e2e8f0}[data-theme=dark] .job-swordsman{background:#b91c1c26;color:#fca5a5}[data-theme=dark] .job-mage{background:#1d4ed826;color:#93c5fd}[data-theme=dark] .job-archer{background:#15803d26;color:#86efac}[data-theme=dark] .job-acolyte{background:#a1620726;color:#fde68a}[data-theme=dark] .job-merchant{background:#92400e26;color:#fcd34d}[data-theme=dark] .job-thief{background:#7e22ce26;color:#d8b4fe}[data-theme=dark] .job-novice{background:#ffffff0f;color:var(--text-secondary)}[data-theme=dark] .job-taekwon{background:#a21caf26;color:#f0abfc}[data-theme=dark] .job-gunslinger{background:#57534e26;color:#d6d3d1}[data-theme=dark] .job-ninja{background:#0f172a66;color:#94a3b8}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .job-swordsman{background:#b91c1c26;color:#fca5a5}:root:not([data-theme=light]) .job-mage{background:#1d4ed826;color:#93c5fd}:root:not([data-theme=light]) .job-archer{background:#15803d26;color:#86efac}:root:not([data-theme=light]) .job-acolyte{background:#a1620726;color:#fde68a}:root:not([data-theme=light]) .job-merchant{background:#92400e26;color:#fcd34d}:root:not([data-theme=light]) .job-thief{background:#7e22ce26;color:#d8b4fe}:root:not([data-theme=light]) .job-novice{background:#ffffff0f;color:var(--text-secondary)}:root:not([data-theme=light]) .job-taekwon{background:#a21caf26;color:#f0abfc}:root:not([data-theme=light]) .job-gunslinger{background:#57534e26;color:#d6d3d1}:root:not([data-theme=light]) .job-ninja{background:#0f172a66;color:#94a3b8}}.item-type-badge{display:inline-block;padding:1px 6px;border-radius:var(--radius-full);font-size:10px;font-weight:500;line-height:1.5;white-space:nowrap}.item-type-weapon{background:#fef2f2;color:#b91c1c}.item-type-armor{background:#eff6ff;color:#1d4ed8}.item-type-consumable,.item-type-heal{background:#f0fdf4;color:#15803d}.item-type-card{background:#faf5ff;color:#7e22ce}.item-type-usable{background:#fefce8;color:#a16207}.item-type-special{background:#fdf4ff;color:#a21caf}.item-type-etc,.item-type-ammo,.item-type-pet_egg,.item-type-pet_equip{background:var(--bg-muted);color:var(--text-secondary)}[data-theme=dark] .item-type-weapon{background:#b91c1c26;color:#fca5a5}[data-theme=dark] .item-type-armor{background:#1d4ed826;color:#93c5fd}[data-theme=dark] .item-type-consumable,[data-theme=dark] .item-type-heal{background:#15803d26;color:#86efac}[data-theme=dark] .item-type-card{background:#7e22ce26;color:#d8b4fe}[data-theme=dark] .item-type-usable{background:#a1620726;color:#fde68a}[data-theme=dark] .item-type-special{background:#a21caf26;color:#f0abfc}[data-theme=dark] .item-type-etc,[data-theme=dark] .item-type-ammo,[data-theme=dark] .item-type-pet_egg,[data-theme=dark] .item-type-pet_equip{background:#ffffff0f;color:var(--text-secondary)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .item-type-weapon{background:#b91c1c26;color:#fca5a5}:root:not([data-theme=light]) .item-type-armor{background:#1d4ed826;color:#93c5fd}:root:not([data-theme=light]) .item-type-consumable,:root:not([data-theme=light]) .item-type-heal{background:#15803d26;color:#86efac}:root:not([data-theme=light]) .item-type-card{background:#7e22ce26;color:#d8b4fe}:root:not([data-theme=light]) .item-type-usable{background:#a1620726;color:#fde68a}:root:not([data-theme=light]) .item-type-special{background:#a21caf26;color:#f0abfc}:root:not([data-theme=light]) .item-type-etc,:root:not([data-theme=light]) .item-type-ammo,:root:not([data-theme=light]) .item-type-pet_egg,:root:not([data-theme=light]) .item-type-pet_equip{background:#ffffff0f;color:var(--text-secondary)}}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0}.stat-cell{background:var(--bg-muted);border-radius:var(--radius);padding:8px 10px;text-align:center}.stat-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:2px}.stat-value{font-size:16px;font-weight:600;color:var(--primary);font-variant-numeric:tabular-nums}.map-name{font-family:var(--font-mono);font-size:12px;background:var(--bg-muted);padding:2px 6px;border-radius:var(--radius-sm);color:var(--text-secondary);white-space:nowrap}.level-display{color:var(--primary);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.level-separator{color:var(--text-muted);font-weight:400;margin:0 2px}.char-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) 0 var(--space-4);flex-wrap:wrap}.char-detail-header-left{display:flex;align-items:center;gap:var(--space-4);min-width:0}.char-sprite-container{flex-shrink:0;width:56px;height:80px;display:flex;align-items:flex-end;justify-content:center;overflow:visible}.char-sprite-container img{image-rendering:pixelated;max-width:56px;height:auto}.char-detail-identity{min-width:0}.char-detail-name-row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.char-detail-name{font-size:var(--text-xl);line-height:var(--leading-xl);font-weight:650;font-family:var(--font-body);color:var(--text-primary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.char-detail-meta{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-1)}.char-detail-back-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;border-radius:var(--radius);color:var(--text-secondary);font-size:20px;text-decoration:none;flex-shrink:0;transition:background .15s,color .15s;cursor:pointer;background:none}.char-detail-back-btn:hover{background:var(--bg-muted);color:var(--text-primary);text-decoration:none}.char-detail-gid{font-family:var(--font-mono);font-size:12px;color:var(--text-muted);background:var(--bg-muted);padding:1px 6px;border-radius:var(--radius-sm)}.char-detail-level{font-size:14px;color:var(--text-secondary)}.char-detail-zeny{font-size:14px;font-variant-numeric:tabular-nums}.char-detail-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;flex-shrink:0}.char-mail-item{margin-bottom:var(--space-2)}.char-mail-item--unread{border-left:3px solid var(--primary)}.char-mail-body{flex:1;min-width:0}.char-mail-body .server-name{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.char-mail-subject{background:none;border:0;padding:0;font:inherit;color:inherit;text-align:start;cursor:pointer}.char-mail-subject:hover{text-decoration:underline}.char-edit-tabs{margin-bottom:var(--space-4);border-bottom:1px solid var(--border)}.char-warp-fields{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--space-2)}button.equip-slot{width:100%;font:inherit;color:inherit;text-align:start}.char-equip-hint{text-align:center;margin:var(--space-4) 0 0}.card-body-compact{padding:var(--space-4)}.char-detail-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);background:var(--bg-surface);padding:0 var(--space-6);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.char-detail-tabs::-webkit-scrollbar{display:none}.char-tab{padding:var(--space-3) var(--space-3);border:none;background:none;font-family:var(--font-body);font-size:13px;min-height:44px;font-weight:400;color:var(--text-secondary);cursor:pointer;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;white-space:nowrap;flex-shrink:0}.char-tab:hover{color:var(--text-primary)}.char-tab.active{color:var(--text-primary);font-weight:500;border-bottom-color:var(--primary)}.char-tab-content{display:none}.char-tab-content.active{display:block}.char-panel-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.char-panel-header img{image-rendering:pixelated;height:64px;width:auto;flex-shrink:0}.char-panel-identity{min-width:0}.char-panel-name-row{display:flex;align-items:center;gap:var(--space-2);margin-bottom:2px}.char-panel-name{font-size:16px;font-weight:600}.char-panel-meta{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap;font-size:13px}.char-panel-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:var(--space-3);overflow:hidden}.char-panel-info-cell{background:var(--bg-surface);padding:var(--space-2) var(--space-3)}.char-panel-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3)}.char-panel-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.char-panel-section-spacer{margin-top:var(--space-3)}.char-progress-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-3);margin-top:var(--space-3)}.char-progress-bar{background:var(--bg-muted);border-radius:var(--radius-sm);height:18px;overflow:hidden;position:relative}.char-progress-fill{height:100%;transition:width .3s}.char-progress-fill-hp{background:var(--error)}.char-progress-fill-sp{background:var(--info)}.char-progress-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;color:var(--text-primary)}.char-progress-bar[role=progressbar][aria-valuenow]:after{content:none}.char-overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4) var(--space-6);margin-top:var(--space-3)}.char-overview-value{font-size:14px}.char-overview-value.has-points{color:var(--primary);font-weight:600}.char-skill-points-label{font-size:12px;color:var(--text-secondary)}@media(max-width:768px){.char-detail-header{flex-direction:column;align-items:stretch}.char-detail-actions{justify-content:flex-start}}@media(max-width:480px){.char-warp-fields{grid-template-columns:1fr}}.hotkey-bars{display:grid;gap:var(--space-2)}.hotkey-bar{display:grid;grid-template-columns:3.5rem 1fr;align-items:center;gap:var(--space-2)}.hotkey-bar__label{font-size:var(--text-xs);color:var(--text-muted)}.hotkey-bar__slots{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(9,minmax(0,2.25rem));gap:var(--space-1)}.hotkey-slot{position:relative;aspect-ratio:1;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface-alt)}.hotkey-slot--empty{border-color:var(--border-subtle);background:var(--bg-inset)}.hotkey-slot__link{display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:inherit}.hotkey-slot__link img{max-width:100%;image-rendering:pixelated}.hotkey-slot__link:hover{background:var(--bg-muted)}.hotkey-slot__link[data-tip]:after{content:attr(data-tip);position:absolute;bottom:calc(100% + var(--space-1));left:50%;transform:translate(-50%);z-index:10;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:var(--text-primary);color:var(--bg-surface);font-size:var(--text-xs);white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden}.hotkey-slot__link[data-tip]:hover:after,.hotkey-slot__link[data-tip]:focus-visible:after{opacity:1;visibility:visible;transition-delay:.3s;transition-property:opacity,visibility}.kv-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));column-gap:var(--space-6)}.kv-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:2.5rem;border-bottom:1px solid var(--border);min-width:0}.kv-row[hidden]{display:none}.kv-row__name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kv-row__value{color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}.kv-row__edit{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.kv-row__edit .skill-level-input{width:7ch}.inv-table .inv-actions{width:1%;white-space:nowrap;text-align:right}.companion+.companion{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border)}.companion__head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.record-facts.companion__facts{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));margin-bottom:var(--space-3)}.companion__stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--space-2);margin-bottom:var(--space-3);text-align:center}.companion__stats .detail-label{display:block}.companion__actions{justify-content:flex-end}.companion__skills{margin-bottom:var(--space-3)}.companion__skills .kv-row__name img{margin-right:var(--space-2)}.companion-section+.companion-section{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--border)}.companion-section__title{margin:0 0 var(--space-2);font-size:var(--text-sm);font-weight:600;color:var(--text-secondary)}.companion-section .record-empty{padding:0;text-align:left}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}.sr-only-focusable:focus,.sr-only-focusable:active{position:static;width:auto;height:auto;padding:inherit;margin:0;overflow:visible;clip:auto;clip-path:none;white-space:normal}.skip-link{position:absolute;top:-100px;left:50%;transform:translate(-50%);z-index:9999;padding:var(--space-3) var(--space-6);background:var(--primary);color:var(--primary-foreground);font-weight:600;font-size:14px;border-radius:var(--radius);text-decoration:none;box-shadow:var(--shadow-lg);transition:top .2s ease}.skip-link:focus{top:var(--space-4);outline:2px solid var(--ring);outline-offset:2px}:focus-visible{outline:2px solid var(--ring);outline-offset:var(--ring-offset)}.btn:focus-visible{outline:2px solid var(--ring);outline-offset:2px;box-shadow:0 0 0 4px var(--primary-muted)}.btn-icon:focus-visible,.modal-close:focus-visible,.theme-toggle:focus-visible,.sidebar-toggle:focus-visible,.topbar-hamburger:focus-visible{outline:2px solid var(--ring);outline-offset:2px;border-radius:var(--radius)}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-muted)}input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.tab:focus-visible{outline:2px solid var(--ring);outline-offset:-2px;border-radius:var(--radius-sm)}tr:focus-visible{outline:2px solid var(--ring);outline-offset:-2px}a:focus-visible{outline:2px solid var(--ring);outline-offset:2px;border-radius:var(--radius-sm)}.sidebar-item:focus-visible{outline:2px solid var(--ring);outline-offset:-2px;background:var(--bg-muted)}[data-high-contrast=true]{--text-primary: #000000;--text-secondary: #333333;--text-muted: #555555;--border: #888888;--border-strong: #555555;--ring: #0000FF;--ring-offset: 3px}[data-theme=dark][data-high-contrast=true]{--text-primary: #FFFFFF;--text-secondary: #DDDDDD;--text-muted: #AAAAAA;--border: #777777;--border-strong: #AAAAAA;--ring: #FFFF00}@media(prefers-color-scheme:dark){:root:not([data-theme=light])[data-high-contrast=true]{--text-primary: #FFFFFF;--text-secondary: #DDDDDD;--text-muted: #AAAAAA;--border: #777777;--border-strong: #AAAAAA;--ring: #FFFF00}}[data-high-contrast=true] .btn{border:2px solid currentColor}[data-high-contrast=true] .badge{border:1px solid currentColor}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.toast{animation:none!important;opacity:1!important;transform:none!important}.toast.removing{opacity:0!important}.loading,.loading-spinner:before,.connection-indicator-dot.pulse{animation:none!important}.loading:after{content:"..."}}[data-reduced-motion=true] *,[data-reduced-motion=true] *:before,[data-reduced-motion=true] *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.form-group label.required:after,label.required:after{content:" *";color:var(--error);font-weight:400}fieldset{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);margin-bottom:var(--space-4)}legend{font-weight:600;font-size:14px;padding:0 var(--space-2);color:var(--text-primary)}.form-help{font-size:12px;color:var(--text-secondary);margin-top:var(--space-1)}input[aria-invalid=true],textarea[aria-invalid=true],select[aria-invalid=true]{border-color:var(--error);background-color:var(--error-bg)}input[aria-invalid=true]:focus,textarea[aria-invalid=true]:focus,select[aria-invalid=true]:focus{border-color:var(--error);box-shadow:0 0 0 3px var(--error-bg)}.status-message{padding:var(--space-3) var(--space-4);border-radius:var(--radius);margin-bottom:var(--space-4)}.status-message[aria-live=assertive]{background:var(--warning-bg);border:1px solid var(--warning-border);color:var(--warning-text)}th[aria-sort]{cursor:pointer}th[aria-sort=ascending]:after{content:" \2191";font-size:.8em}th[aria-sort=descending]:after{content:" \2193";font-size:.8em}th[aria-sort=none]:after{content:" \2195";font-size:.8em;opacity:.5}tr[aria-selected=true]{background:var(--primary-muted)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:36px;padding:var(--space-2)}.btn-icon svg{width:18px;height:18px}@media(pointer:coarse){.btn-icon,.modal-close,.theme-toggle,.sidebar-toggle,.topbar-hamburger{min-width:44px;min-height:44px}}.status-indicator{display:inline-flex;align-items:center;gap:var(--space-1)}.status-indicator:before{content:"";width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-indicator.status-online:before{background:var(--success)}.status-indicator.status-offline:before{background:var(--text-muted)}.status-indicator.status-error:before{background:var(--error)}.status-indicator .status-text{font-size:12px}.modal-close:focus-visible{background:var(--bg-muted)}[role=progressbar]{position:relative}[role=progressbar][aria-valuenow]:after{content:attr(aria-valuenow) "%";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:12px;color:var(--text-primary)}[aria-busy=true]{position:relative}@media print{.sr-only{position:static!important;width:auto!important;height:auto!important;margin:0!important;clip:auto!important;clip-path:none!important}a[href^=http]:after{content:" (" attr(href) ")";font-size:.8em;color:#666}}
