@charset "UTF-8";.confirm-modal-overlay{position:fixed;inset:0;background:var(--std-modal-overlay-bg);display:flex;align-items:center;justify-content:center;z-index:99999!important;animation:std-modal-fadeIn var(--std-modal-overlay-duration) ease-out}.confirm-modal-content{background:var(--card-bg, #fff);border-radius:var(--std-modal-radius);box-shadow:var(--std-modal-shadow);max-width:440px;width:calc(100% - 40px);animation:std-modal-slideUp var(--std-modal-content-duration) ease-out;transition:background-color .2s ease,box-shadow .2s ease}.dark .confirm-modal-content{background:var(--card-bg);box-shadow:var(--std-modal-shadow)}.confirm-modal-header{padding:24px 20px 16px;text-align:center}.confirm-modal-icon{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.confirm-modal-icon-danger{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#dc2626}.confirm-modal-icon-warning{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#d97706}.confirm-modal-icon-primary{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:var(--accent-hover)}.confirm-modal-title{font-size:var(--std-modal-title-size);font-weight:var(--std-modal-title-weight);color:var(--text-primary, #111827);margin:0}.dark .confirm-modal-title{color:var(--text-primary)}.confirm-modal-body{padding:0 var(--std-modal-body-padding) 16px;text-align:center}.confirm-modal-message{font-size:15px;color:var(--text-secondary, #6b7280);line-height:1.6;margin:0;transition:color .3s ease}.dark .confirm-modal-message{color:var(--text-secondary)}.confirm-modal-footer{display:flex;gap:var(--std-modal-footer-gap);padding:var(--std-modal-footer-padding);border-top:var(--std-modal-header-border)}.dark .confirm-modal-footer{border-color:var(--border-color)}.confirm-modal-button{flex:1;padding:var(--std-modal-btn-padding);border-radius:var(--std-modal-btn-radius);font-size:var(--std-modal-btn-font-size);font-weight:var(--std-modal-btn-font-weight);cursor:pointer;transition:background .15s ease,color .15s ease,transform .15s ease;border:none;outline:none}.confirm-modal-button-cancel{background:var(--bg-tertiary, #f3f4f6);color:var(--text-primary, #4b5563);transition:background-color .2s ease,color .2s ease}.confirm-modal-button-cancel:hover{background:var(--bg-tertiary, #e5e7eb);color:var(--text-primary)}.dark .confirm-modal-button-cancel,.dark .confirm-modal-button-cancel:hover{background:var(--bg-tertiary);color:var(--text-primary)}.confirm-modal-button-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 4px 12px #ef44444d}.confirm-modal-button-danger:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);transform:translateY(-1px);box-shadow:0 6px 16px #ef444466}.confirm-modal-button-warning{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;box-shadow:0 4px 12px #f59e0b4d}.confirm-modal-button-warning:hover{background:linear-gradient(135deg,#d97706,#b45309);transform:translateY(-1px);box-shadow:0 6px 16px #f59e0b66}.confirm-modal-button-primary{background:var(--lssd-btn-primary);color:var(--lssd-text-inverse);box-shadow:var(--lssd-shadow-sm)}.confirm-modal-button-primary:hover{background:var(--lssd-btn-primary-hover);transform:translateY(-1px);box-shadow:var(--lssd-shadow-md)}@media(max-width:768px){.confirm-modal-content{width:calc(100% - 32px)}.confirm-modal-header{padding:24px 24px 16px}.confirm-modal-body{padding:0 24px 16px}.confirm-modal-footer{padding:16px 24px 24px;flex-direction:column-reverse}.confirm-modal-button{width:100%}}.toast-container{position:fixed;top:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:12px;pointer-events:none}.toast{pointer-events:all;display:flex;align-items:center;gap:12px;padding:16px 20px;background-color:var(--card-bg, white);border-radius:8px;border-left:4px solid;box-shadow:0 4px 12px var(--shadow, rgba(0, 0, 0, .15));min-width:300px;max-width:500px;animation:slideIn .3s ease-out;transition:background-color .3s ease,box-shadow .3s ease}.dark .toast{background-color:var(--card-bg);box-shadow:0 4px 12px var(--shadow)}.toast-message{flex:1;font-size:14px;color:var(--text-primary, #1f2937);font-weight:500;transition:color .3s ease}.dark .toast-message{color:var(--text-primary)}.toast-close{background:none;border:none;font-size:24px;cursor:pointer;padding:0;line-height:1;opacity:.7;transition:opacity .2s;font-weight:300}.toast-close:hover{opacity:1}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.scroll-to-top-btn{position:fixed;bottom:calc(88px + env(safe-area-inset-bottom,0px));right:calc(20px + env(safe-area-inset-right,0px));z-index:1200;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border:1px solid var(--lssd-border-light, rgba(15, 23, 42, .12));border-radius:12px;background:var(--lssd-brand-charcoal, #12151a);color:#f8fafc;cursor:pointer;box-shadow:0 4px 16px #00000038;transition:transform .2s,box-shadow .2s,opacity .3s,background .2s;animation:scroll-to-top-fade-in .3s ease-out}.scroll-to-top-btn:hover{transform:translateY(-2px);background:var(--lssd-text-primary, #1e293b);box-shadow:0 6px 20px #0000004d;border-color:#e8b93159}.scroll-to-top-btn:active{transform:translateY(0)}.dark .scroll-to-top-btn{background:#1c1f26;color:#f1f5f9;border-color:#ffffff1f;box-shadow:0 4px 16px #00000080}.dark .scroll-to-top-btn:hover{background:#2a2f3a;border-color:#e8b9314d;box-shadow:0 6px 22px #0000008c}.scroll-to-top-btn--flush{bottom:calc(24px + env(safe-area-inset-bottom,0px))}@keyframes scroll-to-top-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.error-boundary-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.error-boundary-content{max-width:600px;width:100%;background:var(--card-bg, white);border-radius:16px;padding:48px;text-align:center;box-shadow:0 20px 60px var(--shadow, rgba(0, 0, 0, .3));transition:background-color .3s ease,box-shadow .3s ease}.dark .error-boundary-content{background:var(--card-bg);box-shadow:0 20px 60px var(--shadow)}.error-boundary-icon{color:#ef4444;margin-bottom:24px;animation:shake .5s}.error-boundary-title{font-size:32px;font-weight:700;color:var(--text-primary, #1f2937);margin-bottom:16px;transition:color .3s ease}.error-boundary-message{font-size:16px;color:var(--text-secondary, #6b7280);margin-bottom:32px;line-height:1.6;transition:color .3s ease}.dark .error-boundary-title{color:var(--text-primary)}.dark .error-boundary-message{color:var(--text-secondary)}.error-boundary-details{text-align:left;background:var(--bg-tertiary, #f9fafb);border:1px solid var(--border-color, #e5e7eb);border-radius:8px;padding:16px;margin-bottom:32px;transition:background-color .3s ease,border-color .3s ease}.error-boundary-details summary{cursor:pointer;font-weight:600;color:var(--text-primary, #374151);margin-bottom:12px;transition:color .3s ease}.error-boundary-stack{font-size:12px;color:var(--text-secondary, #4b5563);transition:color .3s ease}.dark .error-boundary-details{background:var(--bg-tertiary);border-color:var(--border-color)}.dark .error-boundary-details summary{color:var(--text-primary)}.dark .error-boundary-stack{color:var(--text-secondary)}.error-boundary-stack pre{background:#1f2937;color:#f3f4f6;padding:12px;border-radius:6px;overflow-x:auto;margin-top:8px;font-family:Courier New,monospace;font-size:11px;line-height:1.4}.error-boundary-actions{display:flex;gap:12px;justify-content:center;margin-bottom:24px}.error-boundary-button{display:inline-flex!important;align-items:center;gap:8px;padding:12px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 4px 12px #667eea66}.error-boundary-button svg{flex-shrink:0;display:block;width:18px;height:18px}.error-boundary-button span{display:inline-block}.error-boundary-button:hover{transform:translateY(-2px);box-shadow:0 6px 16px #667eea80}.error-boundary-button-secondary{background:#6b7280;box-shadow:0 4px 12px #6b72804d}.error-boundary-button-secondary:hover{background:#4b5563;box-shadow:0 6px 16px #6b728066}.error-boundary-footer{padding-top:24px;border-top:1px solid var(--border-color, #e5e7eb);transition:border-color .3s ease}.error-boundary-footer p{font-size:14px;color:var(--text-tertiary, #9ca3af);margin:0;transition:color .3s ease}.dark .error-boundary-footer{border-color:var(--border-color)}.dark .error-boundary-footer p{color:var(--text-tertiary)}@media(max-width:768px){.error-boundary-content{padding:32px 24px}.error-boundary-title{font-size:24px}.error-boundary-actions{flex-direction:column}.error-boundary-button{width:100%;justify-content:center}}.sidebar-wrapper{--sidebar-w: 272px;--sidebar-pad-x: 10px;--sidebar-section-gap: 10px;--sidebar-item-radius: 8px;--sidebar-title-size: 10.5px;--sidebar-label-size: 13px;--sidebar-surface: var(--lssd-surface-rail, #eef0f4);--sidebar-border: var(--lssd-border-light, #e2e5eb);--sidebar-text: var(--lssd-text-primary, #1a1d24);--sidebar-text-muted: var(--lssd-text-secondary, #5c6370);--sidebar-text-subtle: var(--lssd-text-tertiary, #8b929e);--sidebar-hover: rgba(15, 23, 42, .05);--sidebar-active-bg: rgba(15, 23, 42, .07);--sidebar-accent: var(--lssd-brand-charcoal, #1a1d24);position:sticky;top:var(--sidebar-top, calc(var(--app-header-height, 96px) + var(--sidebar-gap-below-header, 0px)));z-index:50;width:var(--sidebar-w);flex-shrink:0;align-self:flex-start;height:auto;max-height:none;overflow:visible;box-sizing:border-box;background:var(--sidebar-surface);border-right:1px solid var(--sidebar-border);transition:background .2s ease,border-color .2s ease}.dark .sidebar-wrapper{--sidebar-surface: var(--lssd-bg-tertiary, #1a1a1a);--sidebar-border: rgba(255, 255, 255, .08);--sidebar-text: var(--lssd-text-primary, #eceef2);--sidebar-text-muted: var(--lssd-text-secondary, #a1a8b3);--sidebar-text-subtle: var(--lssd-text-tertiary, #6b7280);--sidebar-hover: rgba(255, 255, 255, .05);--sidebar-active-bg: rgba(255, 255, 255, .08);--sidebar-accent: #eceef2}.sidebar{width:100%;display:block;background:transparent}.sidebar-nav,.sidebar-nav.sidebar-nav-scroll{display:block;padding:6px 0 14px;overflow:visible}.sidebar-section{margin:0 var(--sidebar-pad-x) var(--sidebar-section-gap);padding:0;border-radius:10px;border:1px solid var(--sidebar-border);background:var(--lssd-surface-card, #fff);box-shadow:none;overflow:hidden;flex-shrink:0}.sidebar-section:last-child{margin-bottom:4px}.dark .sidebar-section{background:var(--lssd-bg-elevated, #1c1c1c);border-color:var(--sidebar-border)}.sidebar-section-title{margin:0;padding:0;-webkit-user-select:none;user-select:none;background:#0f172a08;border-bottom:1px solid var(--sidebar-border)}.dark .sidebar-section-title{background:#ffffff08}.sidebar-section-title-inner{display:flex;align-items:center;gap:8px;padding:9px 12px 8px;min-height:36px}.sidebar-section-title-text{font-size:var(--sidebar-title-size);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--sidebar-text-muted);line-height:1.3;flex:1;min-width:0}.sidebar-section-icon{flex-shrink:0;opacity:.75;color:var(--sidebar-text-subtle)}.dark .sidebar-section-icon{color:var(--sidebar-text-muted)}.sidebar-section-items{display:flex;flex-direction:column;gap:2px;padding:6px}.sidebar-item{display:flex;align-items:center;gap:10px;padding:9px 10px;color:var(--sidebar-text);text-decoration:none;transition:background .15s ease,color .15s ease;font-weight:500;font-size:var(--sidebar-label-size);line-height:1.35;margin:0;border-radius:var(--sidebar-item-radius);border:1px solid transparent}.sidebar-item:hover{background:var(--sidebar-hover);color:var(--sidebar-text)}.sidebar-item:active{transform:none}.sidebar-item.active{background:var(--sidebar-active-bg);color:var(--sidebar-text);font-weight:600;border-color:transparent;box-shadow:inset 3px 0 0 0 var(--sidebar-accent)}.sidebar-item.active .sidebar-icon{color:var(--sidebar-text)}.sidebar-icon{flex-shrink:0;color:var(--sidebar-text-subtle);transition:color .15s ease}.sidebar-item:hover .sidebar-icon{color:var(--sidebar-text-muted)}.dark .sidebar-item{color:var(--sidebar-text)}.dark .sidebar-item:hover{background:var(--sidebar-hover);border-color:transparent}.dark .sidebar-item.active{background:var(--sidebar-active-bg);color:var(--sidebar-text);box-shadow:inset 3px 0 0 0 var(--sidebar-accent)}.dark .sidebar-item.active .sidebar-icon{color:var(--sidebar-text)}.dark .sidebar-icon{color:var(--sidebar-text-subtle)}.dark .sidebar-item:hover .sidebar-icon{color:var(--sidebar-text-muted)}.sidebar-item:focus-visible{outline:2px solid var(--focus-ring-color, #64748b);outline-offset:1px}.sidebar-label{flex:1;font-size:inherit;line-height:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-item-disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.sidebar-online{display:flex;align-items:center;gap:9px;padding:10px 12px;font-size:12px;color:var(--sidebar-text-muted);background:var(--lssd-surface-card, #fff);border-radius:10px;border:1px solid var(--sidebar-border);box-shadow:none}.sidebar-online-top{margin:0 var(--sidebar-pad-x) var(--sidebar-section-gap)}.dark .sidebar-online{background:var(--lssd-bg-elevated, #1c1c1c);border-color:var(--sidebar-border);color:var(--sidebar-text-muted)}.sidebar-tip{margin:2px var(--sidebar-pad-x) 14px;padding:11px 12px;border-radius:10px;border:1px solid var(--sidebar-border);background:var(--lssd-surface-card, #fff);flex-shrink:0}.dark .sidebar-tip{background:var(--lssd-bg-elevated, #1c1c1c);border-color:var(--sidebar-border)}.sidebar-tip-title{margin:0 0 5px;font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--sidebar-text-muted)}.sidebar-tip-text{margin:0;font-size:11.5px;line-height:1.45;color:var(--sidebar-text-subtle)}.sidebar-tip-link{color:var(--sidebar-text);font-weight:600;text-decoration:none;border-bottom:1px solid rgba(15,23,42,.2);transition:color .15s ease,border-color .15s ease}.sidebar-tip-link:hover{color:var(--sidebar-accent);border-bottom-color:currentColor}.dark .sidebar-tip-link{color:var(--sidebar-text);border-bottom-color:#ffffff40}.dark .sidebar-tip-link:hover{color:#fff}.sidebar-online-dot{width:7px;height:7px;border-radius:50%;background:#22c55e;animation:sidebar-online-pulse 2s ease-in-out infinite;flex-shrink:0}.sidebar-online-dot--offline{background:#94a3b8;animation:none}@keyframes sidebar-online-pulse{0%,to{opacity:1}50%{opacity:.5}}.sidebar-online-text{font-weight:600;letter-spacing:.01em}@media(max-width:768px){.sidebar-wrapper{display:none}}.rank-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:6px;border:1px solid;font-weight:600;font-size:12px;letter-spacing:.2px;white-space:nowrap;transition:border-color .15s ease,background-color .15s ease}.rank-badge-small{font-size:11px;padding:4px 10px;gap:5px;border-radius:7px}.rank-badge-medium{font-size:12px;padding:5px 14px;gap:6px;border-radius:8px}.rank-badge-large{font-size:14px;padding:6px 16px;gap:8px;border-radius:10px}.rank-badge-icon{font-weight:700;font-size:10px}.rank-badge-image{width:18px;height:18px;object-fit:contain;margin-right:3px;filter:drop-shadow(0 0 1px #fff)}.rank-badge-small .rank-badge-image{width:14px;height:14px}.rank-badge-large .rank-badge-image{width:28px;height:28px;margin-right:8px}.rank-badge-text{font-weight:600;line-height:1.2}.rank-main-text{font-weight:700}.rank-bonus-text{font-weight:500}.rank-badge-unknown{background-color:#f3f4f6cc;border-color:#d1d5db;color:#6b7280}.rank-badge-minimal{background-color:var(--rank-badge-bg, #f8fafc)!important;border:1px solid var(--border-color, #e2e8f0)!important;color:var(--text-primary, #334155)!important;font-weight:500;box-shadow:none}.dark .rank-badge-minimal{background-color:#ffffff14!important;border-color:#ffffff26!important;color:var(--text-primary)!important}.app-header{--lssd-black: #070807;--lssd-charcoal: #12151a;--lssd-gold: #e8b931;--lssd-gold-dim: #b8922a;--lssd-gold-glow: rgba(232, 185, 49, .35);--header-glass: rgba(10, 12, 14, .78);--header-glass-light: rgba(255, 255, 255, .06);--header-border: rgba(232, 185, 49, .22);--header-text: #f8fafc;--header-text-muted: rgba(248, 250, 252, .72);--header-card-bg: rgba(8, 10, 14, .55);--header-card-border: rgba(232, 185, 49, .14);--header-card-hover-bg: rgba(18, 21, 28, .72);--header-card-hover-border: rgba(232, 185, 49, .32);--header-avatar-bg: rgba(232, 185, 49, .06);--header-avatar-border: rgba(232, 185, 49, .35);--header-toolbar-bg: rgba(4, 5, 7, .65);--header-toolbar-border: rgba(232, 185, 49, .16);--header-btn-radius: 10px;--header-transition: .2s ease;position:sticky;top:0;z-index:100;width:100%;box-sizing:border-box;min-height:78px;padding:12px 26px 14px;display:flex;justify-content:space-between;align-items:center;gap:22px;overflow:visible;color:var(--header-text);border-bottom:1px solid var(--header-border);background:linear-gradient(165deg,#12151aeb,#070807e0 45%,#0c0e12e6);backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);box-shadow:0 1px #e8b9311f inset,0 8px 32px #00000059;transition:background .25s ease,border-color .25s ease,box-shadow .25s ease}.dark .app-header{--header-glass: rgba(5, 6, 8, .82);--header-border: rgba(232, 185, 49, .18);--header-card-bg: rgba(6, 8, 12, .55);--header-card-border: rgba(232, 185, 49, .12);--header-toolbar-bg: rgba(3, 4, 6, .72);background:linear-gradient(165deg,#080a0ef0,#040507e6);box-shadow:0 1px #e8b9311a inset,0 12px 40px #0000008c}.app-header:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;pointer-events:none;background:linear-gradient(90deg,transparent 0%,rgba(232,185,49,.15) 10%,var(--lssd-gold-dim) 22%,var(--lssd-gold) 42%,#fde68a 50%,var(--lssd-gold) 58%,var(--lssd-gold-dim) 78%,rgba(232,185,49,.15) 90%,transparent 100%);opacity:.95}.app-header:before{content:"";position:absolute;top:0;right:0;bottom:0;width:200px;background:url(/sheriff.png) no-repeat right 8px center;background-size:min(140px,38vw);opacity:.04;pointer-events:none;filter:sepia(.3) saturate(1.2)}.app-header .header-left{display:flex;align-items:center;flex-shrink:1;min-width:0;position:relative;z-index:1}.app-header .header-title-link{text-decoration:none!important;color:inherit;display:block;min-width:0;border-radius:12px;padding:4px 6px;margin:-4px -6px;transition:background .2s ease,box-shadow .2s ease}.app-header .header-title-link:hover{background:#ffffff0a;box-shadow:0 0 0 1px #e8b93126}.app-header .header-title-link:focus-visible{outline:2px solid var(--lssd-gold);outline-offset:3px}.app-header .header-brand-row{display:flex;align-items:flex-start;gap:12px;min-width:0}.app-header .header-title-favicon{width:44px;height:44px;object-fit:contain;flex-shrink:0;border-radius:10px;box-shadow:0 0 0 1px #e8b93140,0 4px 14px #00000059;background:#00000040}.app-header .header-brand-text{display:flex;flex-direction:column;gap:5px;min-width:0}.app-header .header-brand-name{margin:0;font-size:clamp(15px,1.35vw + 11px,20px);font-weight:700;letter-spacing:.01em;line-height:1.22;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.45);white-space:normal;max-width:min(52vw,560px)}.app-header .header-tagline{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:12px;font-weight:500;letter-spacing:.03em;color:var(--header-text-muted);line-height:1.35}.app-header .header-tagline-badge{display:inline-flex;align-items:center;padding:2px 9px 3px;border-radius:999px;font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--lssd-black);background:linear-gradient(180deg,#f5d565 0%,var(--lssd-gold) 40%,var(--lssd-gold-dim) 100%);box-shadow:0 0 0 1px #0003,0 2px 8px var(--lssd-gold-glow)}.app-header .header-tagline-sep{opacity:.45;-webkit-user-select:none;user-select:none}.app-header .header-right{display:flex;align-items:center;gap:0;position:relative;z-index:1001;flex-shrink:0;min-width:0}.app-header .header-user-area{display:flex;align-items:center;gap:14px;padding:10px 12px 10px 14px;background:linear-gradient(145deg,#12151cbf,#080a0ed9);border:1px solid var(--header-card-border);border-radius:18px;backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);box-shadow:0 0 0 1px #00000059 inset,0 8px 28px #00000059,0 1px #e8b93114 inset;transition:background var(--header-transition),border-color var(--header-transition),box-shadow var(--header-transition)}.app-header .header-user-area:hover{background:linear-gradient(145deg,#1a1e26d1,#0c0e12e6);border-color:var(--header-card-hover-border);box-shadow:0 0 0 1px #0006 inset,0 10px 32px #0000006b,0 0 24px #e8b9310f}.dark .app-header .header-user-area{background:linear-gradient(145deg,#0a0c10e0,#040508eb);border-color:#e8b9311f}.dark .app-header .header-user-area:hover{border-color:#e8b93142}.app-header .header-action-toolbar{display:flex;align-items:center;padding:5px 7px;border-radius:14px;background:var(--header-toolbar-bg);border:1px solid var(--header-toolbar-border);box-shadow:0 1px #ffffff0a inset}.app-header .header-action-buttons,.app-header .header-actions{display:flex;flex-direction:row;align-items:center;gap:6px;flex-shrink:0}.app-header .header-btn,.app-header .header-action-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;min-width:40px;min-height:40px;padding:0;color:#f8fafceb;background:linear-gradient(180deg,#2e3440f2,#1c2028fa);border:1px solid rgba(255,255,255,.1);border-radius:var(--header-btn-radius);cursor:pointer;transition:background var(--header-transition),border-color var(--header-transition),transform .15s ease,box-shadow .2s ease,color .2s ease;box-sizing:border-box;box-shadow:0 1px #ffffff0f inset}.app-header .header-btn svg path,.app-header .header-action-btn svg path{fill:currentColor}.app-header .header-btn:hover:not(:disabled),.app-header .header-action-btn:hover:not(:disabled){background:linear-gradient(180deg,#3a404efa,#242832);border-color:#e8b93152;color:#fff;transform:translateY(-1px);box-shadow:0 1px #ffffff14 inset,0 4px 14px #00000047,0 0 0 1px #e8b9311f}.app-header .header-btn:active:not(:disabled),.app-header .header-action-btn:active:not(:disabled){transform:translateY(0)}.app-header .header-btn svg,.app-header .header-action-btn svg{flex-shrink:0;width:19px;height:19px}.app-header .dark-mode-btn,.app-header .header-action-theme{background:linear-gradient(180deg,#e8b93124,#181a20f2)!important;border-color:#e8b93147!important;color:#fef9e7!important}.app-header .dark-mode-btn:hover:not(:disabled),.app-header .header-action-theme:hover:not(:disabled){background:linear-gradient(180deg,#e8b93142,#20242cfa)!important;border-color:#fde68a73!important}.app-header .header-btn-logout{background:linear-gradient(180deg,#342024f2,#1c1618fa)!important;border-color:#b45a5a47!important;color:#fee2e2f2!important}.app-header .header-btn-logout:hover:not(:disabled){background:linear-gradient(180deg,#482a2efa,#281c1e)!important;border-color:#f871716b!important;box-shadow:0 4px 14px #0000004d,0 0 20px #dc50501f!important}.app-header .header-btn-character{background:linear-gradient(180deg,#e8b9311a,#1a1e26f5)!important;border-color:#e8b93142!important;color:#fef9e7!important}.app-header .header-btn-character:hover:not(:disabled){background:linear-gradient(180deg,#e8b93133,#222630fa)!important;border-color:#fde68a66!important;box-shadow:0 0 20px #e8b9311f!important}.app-header .header-btn-lspd,.app-header .header-action-lspd{width:auto!important;min-width:38px!important;padding:0 12px!important;font-size:12px;font-weight:800;letter-spacing:.08em;color:var(--lssd-black)!important;background:linear-gradient(180deg,#fde68a 0%,var(--lssd-gold) 45%,var(--lssd-gold-dim) 100%)!important;border:1px solid rgba(0,0,0,.22)!important;box-shadow:0 1px #ffffff59 inset,0 2px 6px #00000040}.app-header .header-btn-lspd:hover:not(:disabled),.app-header .header-action-lspd:hover:not(:disabled){filter:brightness(1.05);border-color:#00000047!important}.app-header .header-btn-lspd--active{box-shadow:0 0 0 2px #e8b9318c,0 1px #fff6 inset,0 4px 16px #e8b93140!important;border-color:#00000059!important}.app-header .header-profile-link{text-decoration:none;color:inherit;flex-shrink:1;min-width:0}.app-header .header-profile{display:flex;align-items:center;gap:12px;padding:8px 14px 8px 10px;background:linear-gradient(120deg,#e8b93114,#12151c8c 38%,#080a0ea6);border:1px solid rgba(232,185,49,.18);border-radius:14px;transition:background var(--header-transition),border-color var(--header-transition),box-shadow var(--header-transition);cursor:pointer;min-width:220px;max-width:300px;overflow:hidden;position:relative;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:inset 3px 0 0 0 var(--lssd-gold),0 1px #ffffff0d inset}.app-header .header-profile:hover{background:linear-gradient(120deg,#e8b9311f,#1a1e26a6 40%,#0c0e12bf);border-color:#e8b93152;box-shadow:inset 3px 0 #fde68a,0 6px 22px #00000052,0 0 24px #e8b93114}.app-header .header-profile-avatar{position:relative;width:48px;height:48px;border-radius:12px;overflow:hidden;background:var(--header-avatar-bg);flex-shrink:0;border:1px solid var(--header-avatar-border);box-shadow:0 0 0 2px #00000059,0 2px 10px #00000059;transition:border-color var(--header-transition),box-shadow .2s ease}.app-header .header-profile:hover .header-profile-avatar{border-color:#fde68a8c;box-shadow:0 0 0 2px #e8b93133,0 4px 16px #00000059}.app-header .header-profile-image{width:100%;height:100%;object-fit:cover}.app-header .header-profile-image-fallback{object-fit:contain;padding:8px}.app-header .header-profile-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;overflow:hidden}.app-header .header-profile-name{font-size:15px;font-weight:700;letter-spacing:.01em;color:var(--header-text);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-header .header-profile-ucp{font-size:11px;color:#e2e8f0c7;line-height:1.35;font-weight:500;font-family:ui-monospace,Cascadia Mono,Segoe UI Mono,monospace;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-header .header-profile-meta{display:flex;align-items:center;gap:6px;margin-top:4px;min-width:0}.app-header .header-rank-badge .rank-badge{padding:4px 10px!important;border-radius:8px!important;font-size:10.5px!important;font-weight:700!important;letter-spacing:.06em;text-transform:uppercase;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:linear-gradient(180deg,#282c36f2,#16181efa)!important;border:1px solid rgba(232,185,49,.35)!important;color:#fef3c7!important;box-shadow:0 1px #ffffff0f inset}.character-selector-overlay{position:fixed;inset:0;background:#0000008c;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:99998;animation:headerOverlayFadeIn .25s ease}@keyframes headerOverlayFadeIn{0%{opacity:0}to{opacity:1}}.character-selector-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--card-bg, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:16px;box-shadow:0 16px 48px #0003,0 4px 16px #00000014;z-index:99999;min-width:400px;max-width:480px;max-height:85vh;overflow:hidden;animation:headerModalSlideIn .3s ease;transition:background-color .2s,border-color .2s}.dark .character-selector-modal{box-shadow:0 16px 48px #00000080,0 4px 16px #0003}@keyframes headerModalSlideIn{0%{opacity:0;transform:translate(-50%,-48%) scale(.97)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.character-modal-header{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid rgba(232,185,49,.25);background:linear-gradient(135deg,#1a1d22,#0d0f12 55%,#12151a);color:#fff;box-shadow:0 2px #e8b93140 inset}.dark .character-modal-header{border-bottom-color:#e8b93133}.character-modal-header h3{margin:0;font-size:17px;font-weight:600;letter-spacing:.02em}.modal-close-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:#ffffff14;border:none;border-radius:10px;color:#fff;cursor:pointer;transition:background .2s ease}.modal-close-btn:hover:not(:disabled){background:#ffffff2e}.character-modal-desc{margin:0;padding:14px 22px 12px;font-size:13px;color:var(--text-secondary, #6b7280);line-height:1.5}.character-modal-list{padding:12px 18px 20px;max-height:55vh;overflow-y:auto}.character-modal-item{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:12px;cursor:pointer;transition:background .2s,border-color .2s;border:2px solid transparent;margin-bottom:6px}.character-modal-item:last-child{margin-bottom:0}.character-modal-item:hover{background:var(--bg-tertiary, #f3f4f6)}.dark .character-modal-item:hover{background:#ffffff0f}.character-modal-item.selected{background:#22c55e1a;border-color:#22c55e73}.dark .character-modal-item.selected{background:#22c55e26;border-color:#34d39980}.character-modal-item.disabled{pointer-events:none;opacity:.7}.character-modal-avatar{position:relative;width:52px;height:52px;border-radius:12px;overflow:hidden;background:var(--border-color, #e5e7eb);flex-shrink:0}.character-modal-avatar img{width:100%;height:100%;object-fit:cover}.character-avatar-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:#fff;background:linear-gradient(135deg,#15803d,#0f172a)}.character-modal-info{flex:1;min-width:0}.character-modal-name-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.character-modal-name{font-size:15px;font-weight:600;color:var(--text-primary, #1f2937)}.character-modal-id{font-size:12px;color:var(--text-tertiary, #6b7280);margin-top:2px}.character-modal-active-badge{display:inline-flex;padding:3px 10px;font-size:11px;font-weight:600;color:#065f46;background:linear-gradient(180deg,#d1fae5,#a7f3d0);border-radius:8px;text-transform:uppercase;letter-spacing:.04em;border:1px solid rgba(34,197,94,.35)}.dark .character-modal-active-badge{color:#6ee7b7;background:#10b98138;border-color:#34d39966}.character-modal-check{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:linear-gradient(180deg,#34d399,var(--lssd-green-deep));color:#fff;flex-shrink:0;box-shadow:0 2px 8px #22c55e59}@media(max-width:900px){.header-profile{min-width:180px;padding:8px 12px 8px 8px}.header-profile-name{font-size:13px}}@media(max-width:768px){.app-header{padding:10px 14px 12px;flex-wrap:wrap;gap:12px}.app-header .header-brand-name{font-size:15px;max-width:100%}.app-header .header-title-favicon{width:38px;height:38px}.header-right{width:100%;justify-content:flex-end;gap:8px}.header-btn,.header-action-btn{width:38px;height:38px;min-width:38px;min-height:38px}.header-profile{min-width:160px;max-width:220px;padding:6px 12px 6px 8px;gap:10px}.header-profile-avatar{width:40px;height:40px}.character-selector-modal{min-width:92%;max-width:96%}}.app-layout{--app-header-height: 96px;--sidebar-w: 272px;--sidebar-gap-below-header: 0px;--sidebar-top: calc(var(--app-header-height) + var(--sidebar-gap-below-header));display:flex;flex-direction:column;min-height:100vh;background:var(--bg-primary, #f5f5f5);transition:background-color .3s ease}.dark .app-layout{background:var(--bg-primary, #1a1a1a)}.app-layout>header{width:100%;flex-shrink:0}.app-layout>.app-footer{width:100%;flex-shrink:0;box-sizing:border-box}.app-content-wrapper{display:flex;flex:1;width:100%;align-items:flex-start;background:var(--bg-tertiary, #f9fafb);transition:background-color .3s ease}.sidebar-column{flex-shrink:0;width:var(--sidebar-w);align-self:flex-start}.app-content-wrapper:not(.app-content-wrapper--no-sidebar) .app-main-column{flex:1;min-width:0;box-sizing:border-box}.app-main-column{flex:1;min-width:0;display:flex;flex-direction:column}.dark .app-content-wrapper{background:var(--bg-tertiary)}.app-page-content{flex:1;padding:24px;background-color:var(--bg-secondary, #eceef3);transition:background-color .3s ease;box-shadow:inset 0 1px #ffffff59}.dark .app-page-content{background-color:var(--bg-secondary, #2d2d2d);color:var(--text-primary, #ffffff)}.app-footer{background:linear-gradient(180deg,var(--lssd-brand-charcoal) 0%,var(--lssd-brand-black) 100%);color:var(--lssd-text-inverse);padding:18px 40px;box-shadow:0 -4px 24px #00000059;border-top:3px solid var(--lssd-brand-gold-deep);position:relative;z-index:99;min-height:80px;display:flex;align-items:center;justify-content:center;flex-shrink:0;width:100%}.app-footer .footer-content{display:flex;justify-content:space-between;align-items:center;width:100%;max-width:1920px;margin:0 auto;gap:24px}.app-footer .footer-left{display:flex;align-items:center;gap:16px}.app-footer .footer-logo-text{display:flex;align-items:center;gap:12px}.app-footer .footer-logo{width:48px;height:48px;object-fit:contain;filter:drop-shadow(0 1px 2px rgba(0,0,0,.2))}.app-footer .footer-text{margin:0;font-size:13px;font-weight:500;opacity:.9}.app-footer .beta-badge{background:var(--lssd-brand-gold-deep);color:var(--lssd-text-inverse)!important}.app-footer .footer-subtext{margin:0;font-size:11px;opacity:.7}.app-footer .footer-right{display:flex;align-items:center;gap:16px}.app-footer .footer-scroll-top-btn{display:inline-flex;align-items:center;gap:8px;flex-shrink:0;padding:8px 14px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:#ffffff14;color:var(--lssd-text-inverse);font-size:13px;font-weight:600;cursor:pointer;transition:background .2s,border-color .2s,transform .15s}.app-footer .footer-scroll-top-btn:hover{background:#ffffff24;border-color:#e8b93173;transform:translateY(-1px)}.app-footer .footer-scroll-top-btn:active{transform:translateY(0)}.app-footer .footer-scroll-top-btn:focus-visible{outline:2px solid rgba(232,185,49,.6);outline-offset:2px}.app-footer .footer-right-content{text-align:right}.app-footer .footer-version{margin:0;font-size:13px;font-weight:500;opacity:.9;display:flex;align-items:center;gap:8px;justify-content:flex-end}.app-footer .footer-deploy{margin:0;font-size:11px;opacity:.85;font-family:ui-monospace,monospace}.app-footer .footer-coded-by{margin:0;font-size:11px;opacity:.7}.app-page-content>*{animation:none}@media(max-width:1024px){.app-footer .footer-content{flex-direction:column;align-items:center;text-align:center;gap:16px}.app-footer .footer-right{flex-direction:column;align-items:center}.app-footer .footer-right-content{text-align:center}.app-footer .footer-version{justify-content:center}}@media(max-width:768px){.app-page-content{padding:16px}}.loading-container,.dashboard-loading,.profile-loading,.database-loading,.map-loading-overlay{display:flex;flex-direction:column;justify-content:center;align-items:center;position:fixed;inset:0;width:100%;height:100%;min-height:100vh;min-height:100dvh;background:var(--bg-primary, #f5f5f5);color:var(--text-primary, #1a1a1a);z-index:99999;transition:background-color .2s ease,color .2s ease;contain:layout style paint;overflow:hidden}.dark .loading-container,.dark .dashboard-loading,.dark .profile-loading,.dark .database-loading,.dark .map-loading-overlay{background:var(--bg-primary);color:var(--text-primary)}.loading-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;text-align:center;flex-shrink:0;padding:24px}.loading-spinner{width:40px;height:40px;border:3px solid var(--border-color, #e5e7eb);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.dark .loading-spinner{border-color:var(--border-color)}.loading-text{color:var(--text-secondary, #374151);font-size:16px;font-weight:500;margin:0}.dark .loading-text{color:var(--text-secondary)}.loading-progress{width:200px;height:4px;background:var(--border-color, #e5e7eb);border-radius:2px;overflow:hidden;margin-top:8px}.dark .loading-progress{background:var(--border-color)}.loading-progress-bar{height:100%;min-width:0;background:var(--accent);border-radius:2px;animation:progress 1.5s ease-in-out infinite;transform:translateZ(0);will-change:width}@keyframes progress{0%{width:0%}50%{width:70%}to{width:100%}}.loading-dots{display:inline-block;position:relative;width:20px;height:16px;margin-left:4px}.loading-dots:after{content:"...";position:absolute;left:0;color:var(--text-secondary, #374151);animation:dots 1.4s steps(4,end) infinite}.dark .loading-dots:after{color:var(--text-secondary)}@keyframes dots{0%,20%{content:".";opacity:.4}40%{content:"..";opacity:.7}60%,to{content:"...";opacity:1}}.loading-fallback-suspense{background:var(--bg-primary, #f5f5f5)!important}.dark .loading-fallback-suspense{background:var(--bg-primary)!important}.loading-fallback-suspense .loading-text{color:var(--text-primary, #1a1a1a)}@media(max-width:768px){.loading-content{gap:16px}.loading-spinner{width:32px;height:32px;border-width:2px}.loading-text{font-size:14px}.loading-progress{width:150px}}.page-transition-wrapper{position:relative;width:100%;min-height:100vh;background:var(--bg-primary, #f9fafb)}.dark .page-transition-wrapper{background:var(--bg-primary)}.page-transition-content{animation:fadeInSoft .15s ease-out;will-change:opacity}@keyframes fadeInSoft{0%{opacity:.9}to{opacity:1}}.sidebar-item{position:relative}.sidebar-item.active{animation:sidebarActiveReveal .2s ease-out}@keyframes sidebarActiveReveal{0%{opacity:.88}to{opacity:1}}:root{--std-modal-overlay-bg: rgba(0, 0, 0, .6);--std-modal-overlay-z: 10000;--std-modal-overlay-duration: .2s;--std-modal-radius: 12px;--std-modal-shadow: 0 24px 48px rgba(0, 0, 0, .18), 0 8px 16px rgba(0, 0, 0, .1);--std-modal-max-height: 90vh;--std-modal-content-duration: .25s;--std-modal-header-padding: 16px 20px;--std-modal-header-border: 1px solid var(--border-color, #e5e7eb);--std-modal-title-size: 1.125rem;--std-modal-title-weight: 600;--std-modal-close-size: 36px;--std-modal-close-radius: 8px;--std-modal-body-padding: 20px;--std-modal-footer-padding: 16px 20px;--std-modal-footer-gap: 12px;--std-modal-btn-radius: 8px;--std-modal-btn-padding: 10px 18px;--std-modal-btn-font-size: 14px;--std-modal-btn-font-weight: 500;--std-modal-field-gap: 8px;--std-modal-field-margin: 16px;--std-modal-input-radius: 8px;--std-modal-input-padding: 10px 12px}.dark{--std-modal-shadow: 0 24px 48px rgba(0, 0, 0, .4), 0 8px 16px rgba(0, 0, 0, .2)}@keyframes std-modal-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes std-modal-slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.std-modal-overlay{position:fixed;inset:0;background:var(--std-modal-overlay-bg);display:flex;align-items:center;justify-content:center;z-index:var(--std-modal-overlay-z);animation:std-modal-fadeIn var(--std-modal-overlay-duration) ease-out}.std-modal-content{background:var(--card-bg, #fff);border-radius:var(--std-modal-radius);box-shadow:var(--std-modal-shadow);max-height:var(--std-modal-max-height);width:90%;max-width:480px;overflow:hidden;display:flex;flex-direction:column;animation:std-modal-slideUp var(--std-modal-content-duration) ease-out;transition:background-color .2s ease,box-shadow .2s ease}.std-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--std-modal-header-padding);border-bottom:var(--std-modal-header-border);flex-shrink:0}.std-modal-title{margin:0;font-size:var(--std-modal-title-size);font-weight:var(--std-modal-title-weight);color:var(--text-primary, #111827)}.std-modal-close{width:var(--std-modal-close-size);height:var(--std-modal-close-size);border:none;background:transparent;color:var(--text-secondary, #6b7280);border-radius:var(--std-modal-close-radius);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease}.std-modal-close:hover{background:var(--bg-tertiary, #f3f4f6);color:var(--text-primary, #111827)}.std-modal-body{padding:var(--std-modal-body-padding);overflow-y:auto;flex:1;min-height:0}.std-modal-footer{padding:var(--std-modal-footer-padding);border-top:var(--std-modal-header-border);display:flex;gap:var(--std-modal-footer-gap);justify-content:flex-end;flex-wrap:wrap;flex-shrink:0}.std-modal-btn{padding:var(--std-modal-btn-padding);border-radius:var(--std-modal-btn-radius);font-size:var(--std-modal-btn-font-size);font-weight:var(--std-modal-btn-font-weight);cursor:pointer;transition:background .15s ease,color .15s ease,transform .15s ease;border:none;display:inline-flex;align-items:center;gap:8px}.std-modal-btn-ghost{background:var(--bg-tertiary, #f3f4f6);color:var(--text-primary, #374151)}.std-modal-btn-ghost:hover{background:var(--border-color, #e5e7eb);color:var(--text-primary, #1f2937)}.std-modal-btn-primary{background:var(--gradient-cta);color:var(--lssd-brand-black)}.std-modal-btn-primary:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-1px)}.std-modal-btn-primary:disabled{opacity:.6;cursor:not-allowed}.std-modal-btn-danger{background:#dc2626;color:#fff}.std-modal-btn-danger:hover:not(:disabled){background:#b91c1c;transform:translateY(-1px)}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(145deg,var(--lssd-brand-black) 0%,var(--lssd-brand-charcoal) 45%,#1a1510 100%);padding:20px;position:relative;overflow:hidden;animation:fadeIn .5s ease-in}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.login-container:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,transparent,transparent 10px,rgba(255,255,255,.03) 10px,rgba(255,255,255,.03) 20px);pointer-events:none}.login-box{background:var(--card-bg, white);border-radius:16px;box-shadow:0 20px 60px var(--shadow, rgba(0, 0, 0, .3));padding:48px;max-width:480px;width:100%;position:relative;z-index:1;border:1px solid rgba(255,255,255,.2);animation:slideUp .6s ease-out;transition:transform .3s ease,background-color .3s ease}.dark .login-box{background:var(--card-bg);box-shadow:0 20px 60px var(--shadow)}.login-box.loading{opacity:.92;cursor:progress}.login-box.loading .login-button:disabled,.login-box.loading .login-character-btn:disabled{cursor:not-allowed}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-header{text-align:center;margin-bottom:36px}.login-logo{margin-bottom:32px;display:flex;justify-content:center;align-items:center;gap:24px;flex-wrap:nowrap}.logo-image{height:180px;width:auto;object-fit:contain;filter:drop-shadow(0 4px 14px rgba(0,0,0,.45));flex-shrink:0}.sd-logo,.county-logo{height:180px!important;width:auto!important}.logo-badge{display:inline-block;width:80px;height:80px;background:var(--gradient-cta);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--lssd-text-inverse);font-weight:700;font-size:24px;letter-spacing:1px;box-shadow:0 4px 16px #00000059,0 0 0 1px #e8b93159;border:3px solid rgba(255,255,255,.95)}.login-header h1{color:var(--report-primary);font-size:24px;font-weight:700;margin:16px 0 8px;letter-spacing:.5px}.login-header p{color:#4b5563;font-size:14px;margin:4px 0;font-weight:500}.login-subtitle{color:#6b7280!important;font-size:12px!important;font-weight:400!important;text-transform:uppercase;letter-spacing:1px;margin-top:8px!important}.error-message{background-color:#fee;border:1px solid #fcc;color:#c33;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px;display:flex;align-items:center;gap:10px;animation:shake .5s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.error-icon{flex-shrink:0;color:#dc2626}.login-character-list{padding:20px;margin:20px 0;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:8px}.login-character-list-title{margin:0 0 15px;color:#333;font-size:1rem;font-weight:600}.login-character-list-buttons{display:flex;flex-direction:column;gap:10px}.login-character-btn{padding:12px;background-color:#fff;color:#333;border:1px solid #dee2e6;border-radius:6px;cursor:pointer;text-align:left;transition:background-color .2s,color .2s}.login-character-btn:hover:not(:disabled){background-color:#f8f9fa}.login-character-btn-selected{background-color:var(--lssd-btn-primary)!important;color:var(--lssd-text-inverse)!important;border-color:var(--accent)!important;box-shadow:0 0 0 1px var(--accent-muted)}.login-character-btn-name{font-weight:700}.login-character-btn-warn{font-size:12px;color:#dc3545;margin-top:4px}.login-content{text-align:center}.login-description{color:#4b5563;margin-bottom:28px;font-size:14px;line-height:1.6;text-align:left}.login-button{width:100%;background:var(--gradient-cta);color:var(--lssd-text-inverse);border:none;padding:16px 24px;font-size:15px;font-weight:600;border-radius:var(--page-radius, 8px);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;gap:10px;box-shadow:0 4px 16px #00000040,0 0 0 1px #e8b93140;letter-spacing:.3px;position:relative;overflow:hidden}.login-button:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#fff3;transform:translate(-50%,-50%);transition:width .6s,height .6s}.login-button:hover:before{width:300px;height:300px}.login-button:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000004d,0 0 0 1px #e8b93166;background:var(--gradient-cta-hover)}.login-button:active{transform:translateY(0)}.login-button:disabled{opacity:.7;cursor:not-allowed;transform:none}.button-icon{width:20px;height:20px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.button-spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}.warning-icon{width:16px;height:16px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;display:inline-block;vertical-align:middle;margin-right:4px}.test-login-section{margin-top:16px;padding-top:0}.test-divider{text-align:center;margin:20px 0;position:relative}.test-divider:before,.test-divider:after{content:"";position:absolute;top:50%;width:45%;height:1px;background:#e5e7eb}.test-divider:before{left:0}.test-divider:after{right:0}.test-divider span{background:var(--card-bg, white);padding:0 12px;color:var(--text-tertiary, #9ca3af);font-size:12px;font-weight:500;position:relative;z-index:1;transition:background-color .3s ease,color .3s ease}.dark .test-divider span{background:var(--card-bg);color:var(--text-tertiary)}.test-login-button{width:100%;background:#6b7280;color:#fff;border:none;padding:14px 24px;font-size:15px;font-weight:600;border-radius:8px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;gap:10px;box-shadow:0 2px 8px #6b728033;position:relative;overflow:hidden}.test-login-button:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff1a;transform:translate(-50%,-50%);transition:width .6s,height .6s}.test-login-button:hover:before{width:300px;height:300px}.test-login-button:hover{background:#4b5563;transform:translateY(-2px);box-shadow:0 4px 12px #6b72804d}.test-login-button:disabled{opacity:.7;cursor:not-allowed;transform:none}.test-warning{text-align:center;font-size:11px;color:#dc2626;margin:8px 0 0;font-weight:500;display:flex;align-items:center;justify-content:center;gap:4px}.login-footer{margin-top:32px;padding-top:24px;border-top:2px solid #e5e7eb;text-align:center}.footer-seal{display:flex;flex-direction:column;gap:8px}.footer-text{color:#4a4a4a;font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;margin:0}.footer-warning{color:#dc2626;font-size:11px;font-weight:500;margin:0;display:flex;align-items:center;justify-content:center;gap:4px}:root{--lssd-primary-50: #f0f4ff;--lssd-primary-100: #e0e9ff;--lssd-primary-200: #c7d7fe;--lssd-primary-300: #a5b8fc;--lssd-primary-400: #818cf8;--lssd-primary-500: #6366f1;--lssd-primary-600: #4f46e5;--lssd-primary-700: #4338ca;--lssd-primary-800: #3730a3;--lssd-primary-900: #312e81;--lssd-primary-950: #1e1b4b;--lssd-accent-50: #fffbeb;--lssd-accent-100: #fef3c7;--lssd-accent-200: #fde68a;--lssd-accent-300: #fcd34d;--lssd-accent-400: #fbbf24;--lssd-accent-500: #f59e0b;--lssd-accent-600: #d97706;--lssd-accent-700: #b45309;--lssd-accent-800: #92400e;--lssd-accent-900: #78350f;--lssd-gray-50: #f9fafb;--lssd-gray-100: #f3f4f6;--lssd-gray-200: #e5e7eb;--lssd-gray-300: #d1d5db;--lssd-gray-400: #9ca3af;--lssd-gray-500: #6b7280;--lssd-gray-600: #4b5563;--lssd-gray-700: #374151;--lssd-gray-800: #1f2937;--lssd-gray-900: #111827;--lssd-gray-950: #030712;--lssd-surface-canvas: #cfd4dd;--lssd-surface-rail: #d9dee8;--lssd-surface-content: #e4e9f2;--lssd-surface-card: #ffffff;--lssd-surface-input: #f7f8fb;--lssd-success: #10b981;--lssd-success-light: #d1fae5;--lssd-success-dark: #059669;--lssd-warning: #f59e0b;--lssd-warning-light: #fef3c7;--lssd-warning-dark: #d97706;--lssd-error: #ef4444;--lssd-error-light: #fee2e2;--lssd-error-dark: #dc2626;--lssd-info: var(--accent);--lssd-info-light: #dbeafe;--lssd-info-dark: var(--accent-hover);--lssd-bg-primary: var(--lssd-surface-content);--lssd-bg-secondary: var(--lssd-surface-card);--lssd-bg-tertiary: var(--lssd-surface-rail);--lssd-bg-elevated: var(--lssd-surface-card);--lssd-bg-overlay: rgba(17, 24, 39, .5);--lssd-border-light: #c9ced8;--lssd-border-medium: #d1d5db;--lssd-border-dark: #9ca3af;--lssd-text-primary: #111827;--lssd-text-secondary: #374151;--lssd-text-tertiary: #6b7280;--lssd-text-muted: #9ca3af;--lssd-text-inverse: #ffffff;--lssd-shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--lssd-shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--lssd-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--lssd-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--lssd-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--lssd-shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--lssd-btn-secondary: #6b7280;--lssd-btn-secondary-hover: #4b5563;--lssd-btn-accent: #f59e0b;--lssd-btn-accent-hover: #d97706;--lssd-btn-danger: #ef4444;--lssd-btn-danger-hover: #dc2626;--lssd-btn-success: #10b981;--lssd-btn-success-hover: #059669;--lssd-brand-black: #070807;--lssd-brand-charcoal: #12151a;--lssd-brand-gold: #e8b931;--lssd-brand-gold-deep: #9a7312;--lssd-brand-green: #22c55e;--lssd-brand-green-deep: #15803d;--accent: #9a7312;--accent-hover: #7c5a0f;--accent-muted: rgba(15, 23, 42, .06);--accent-primary: var(--accent);--link-color: #4b5563;--link-color-hover: #1f2937;--focus-ring-color: #64748b;--lssd-surface-panel: var(--lssd-surface-card);--lssd-surface-input: #ffffff;--lssd-input-border: var(--lssd-border-light);--lssd-highlight: rgba(15, 23, 42, .06);--report-primary: #12151a;--gradient-cta: linear-gradient(135deg, #d4a417 0%, #9a7312 100%);--gradient-cta-hover: linear-gradient(135deg, #e8c547 0%, #7c5a0f 100%);--gradient-surface: linear-gradient(180deg, var(--lssd-gray-50) 0%, var(--lssd-gray-100) 100%);--lssd-border-focus: #64748b;--lssd-btn-primary: #0f0f0f;--lssd-btn-primary-hover: #1a1a1a;--lssd-btn-primary-active: #000000;--lssd-primary-50: var(--lssd-gray-50);--lssd-primary-100: var(--lssd-gray-100);--lssd-primary-200: var(--lssd-gray-200);--lssd-primary-300: var(--lssd-gray-300);--lssd-primary-400: var(--lssd-gray-500);--lssd-primary-500: var(--lssd-text-tertiary);--lssd-primary-600: var(--lssd-text-secondary);--lssd-primary-700: var(--lssd-text-primary);--lssd-primary-800: var(--lssd-brand-gold-deep);--lssd-primary-900: var(--report-primary);--lssd-ui-accent: var(--accent);--lssd-ui-accent-hover: var(--accent-hover);--lssd-ui-accent-muted: var(--accent-muted)}.dark{--lssd-surface-canvas: #12151a;--lssd-surface-rail: #1a1d24;--lssd-surface-content: #16181d;--lssd-surface-card: #1e222a;--lssd-surface-input: #252a33;--lssd-surface-panel: var(--lssd-surface-card);--lssd-input-border: #3f4654;--lssd-highlight: rgba(255, 255, 255, .06);--lssd-bg-primary: var(--lssd-surface-content);--lssd-bg-secondary: var(--lssd-surface-card);--lssd-bg-tertiary: var(--lssd-surface-rail);--lssd-bg-elevated: #242933;--lssd-text-primary: #eceef2;--lssd-text-secondary: #c4c9d4;--lssd-text-tertiary: #8b929e;--lssd-text-muted: #6b7280;--lssd-border-light: #3a404c;--lssd-border-medium: #4b5563;--lssd-border-focus: #94a3b8;--accent: #b8922a;--accent-hover: #d4a417;--accent-muted: rgba(255, 255, 255, .06);--link-color: #c4c9d4;--link-color-hover: #eceef2;--report-primary: #eceef2;--gradient-cta: linear-gradient(135deg, #2a2f3a 0%, #1a1d24 100%);--gradient-cta-hover: linear-gradient(135deg, #343a48 0%, #22262e 100%);--gradient-surface: linear-gradient(180deg, #16181d 0%, #12151a 100%);--focus-ring-color: #94a3b8;--lssd-btn-primary: #eceef2;--lssd-btn-primary-hover: #ffffff;--lssd-btn-primary-active: #d1d5db;--lssd-primary-50: #27272a;--lssd-primary-100: #3f3f46;--lssd-primary-200: #52525b;--lssd-primary-300: #71717a;--lssd-primary-400: #a1a1aa;--lssd-primary-500: var(--lssd-text-tertiary);--lssd-primary-600: var(--lssd-text-secondary);--lssd-primary-700: var(--lssd-text-primary)}.report-collab-panel{background:var(--lssd-surface-card);border:1px solid var(--lssd-border-light);box-shadow:var(--lssd-shadow-xs)}.report-collab-panel-head{color:var(--lssd-text-primary)}.report-collab-help{color:var(--lssd-text-secondary)}.report-collab-title-input{background:var(--lssd-surface-input);border:1px solid var(--lssd-border-light);color:var(--lssd-text-primary)}.report-collab-title-input::placeholder{color:var(--lssd-text-muted)}.report-collab-btn{background:var(--lssd-surface-card);border:1px solid var(--lssd-border-light);color:var(--lssd-text-primary)}.report-collab-btn:hover:not(:disabled){background:var(--lssd-gray-100);border-color:var(--lssd-border-medium)}.report-collab-btn.primary{background:var(--lssd-btn-primary);border-color:var(--lssd-btn-primary);color:var(--lssd-text-inverse)}.report-collab-btn.primary:hover:not(:disabled){background:var(--lssd-btn-primary-hover);border-color:var(--lssd-btn-primary-hover)}.dark .report-collab-panel{background:var(--lssd-bg-elevated);border-color:var(--lssd-border-light)}.dark .report-collab-title-input{background:var(--lssd-surface-input);border-color:var(--lssd-border-light);color:var(--lssd-text-primary)}.dark .report-collab-btn{background:var(--lssd-bg-tertiary);border-color:var(--lssd-border-light)}.dark .report-collab-btn:hover:not(:disabled){background:var(--lssd-bg-elevated)}.report-type-card:hover{border-color:var(--lssd-border-medium);box-shadow:var(--lssd-shadow-md)}.report-type-icon-wrapper{background:var(--lssd-gray-100)}.report-type-icon{color:var(--lssd-text-secondary)}.dark .report-type-icon-wrapper{background:var(--lssd-bg-tertiary)}.dark .report-type-icon{color:var(--lssd-text-secondary)}.research-reports-hub-card:hover{border-color:var(--lssd-border-medium);box-shadow:var(--lssd-shadow-sm)}.research-reports-hub-card-icon-wrap{background:var(--lssd-gray-100);color:var(--lssd-text-secondary)}.dark .research-reports-hub-card{background:var(--lssd-bg-elevated)}.dark .research-reports-hub-card-icon-wrap{background:var(--lssd-bg-tertiary);color:var(--lssd-text-secondary)}.database-page-header{border-bottom-color:var(--lssd-border-light)}.report-form .add-row-trigger{color:var(--report-primary);border-color:var(--lssd-border-medium)}.report-form .add-row-trigger:hover{background:var(--lssd-gray-100);border-color:var(--lssd-text-tertiary)}.dark .report-form .add-row-trigger{border-color:var(--lssd-border-medium)}.dark .report-form .add-row-trigger:hover{background:#ffffff0f;border-color:var(--lssd-text-tertiary)}.report-form .form-info-card--info,.report-form .fto-narrative-info--general{background:linear-gradient(135deg,var(--lssd-gray-50) 0%,var(--lssd-gray-100) 100%);border-color:var(--lssd-border-medium)}.report-form .form-info-card--info .form-info-card-icon,.report-form .fto-narrative-info--general .fto-narrative-icon{background:var(--lssd-text-secondary)}.report-form .form-info-card--info .form-info-card-title{color:var(--lssd-text-primary)}.dark .report-form .form-info-card--info,.dark .report-form .fto-narrative-info--general{background:linear-gradient(135deg,#ffffff0d,#ffffff05);border-color:var(--lssd-border-light)}*{margin:0;padding:0;box-sizing:border-box}html,body{margin:0;padding:0;width:100%;height:100%;overflow-x:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-primary, #f5f5f5);color:var(--text-primary, #1a1a1a);transition:background-color .2s ease,color .2s ease}:root{--bg-primary: var(--lssd-surface-canvas);--bg-secondary: var(--lssd-bg-primary);--bg-tertiary: var(--lssd-bg-tertiary);--text-primary: var(--lssd-text-primary);--text-secondary: var(--lssd-text-secondary);--text-tertiary: var(--lssd-text-tertiary);--border-color: var(--lssd-border-light);--header-bg: var(--lssd-surface-rail);--card-bg: var(--lssd-bg-secondary);--input-bg: var(--lssd-surface-input);--shadow: rgba(0, 0, 0, .1);--hover-bg: rgba(255, 255, 255, .42);--page-radius: 12px;--page-shadow-sm: var(--lssd-shadow-sm);--interactive-active: var(--lssd-brand-green);--interactive-active-hover: var(--lssd-brand-green-deep)}.dark,.dark body,html.dark body{--bg-primary: var(--lssd-bg-secondary);--bg-secondary: var(--lssd-bg-elevated);--bg-tertiary: var(--lssd-bg-tertiary);--text-primary: var(--lssd-text-primary);--text-secondary: var(--lssd-text-secondary);--text-tertiary: var(--lssd-text-tertiary);--border-color: var(--lssd-border-light);--header-bg: var(--lssd-bg-tertiary);--card-bg: var(--lssd-bg-elevated);--input-bg: var(--lssd-bg-tertiary);--shadow: rgba(0, 0, 0, .5);--hover-bg: rgba(255, 255, 255, .06)}.dark body,html.dark body{background-color:var(--bg-primary);color:var(--text-primary)}#root{width:100%;min-height:100vh;margin:0;padding:0}a{color:var(--link-color, var(--accent))}a:hover{color:var(--link-color-hover, var(--accent-hover))}:focus-visible{outline:2px solid var(--focus-ring-color, var(--accent));outline-offset:2px}button:focus-visible,.btn:focus-visible{outline-offset:2px}*{transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease,opacity .2s ease}.leaflet-container,.leaflet-container *{transition:background-color .2s ease,color .2s ease,border-color .2s ease,opacity .2s ease!important}@keyframes skeleton-loading{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.skeleton{animation:skeleton-loading 1.5s ease-in-out infinite;background:linear-gradient(90deg,#f0f0f0,#f8f8f8,#f0f0f0 80px);background-size:200px 100%;border-radius:8px}.loading-skeleton{padding:24px}.skeleton-header{height:48px;width:60%;margin-bottom:24px;background:linear-gradient(90deg,#e0e0e0 25%,#f0f0f0,#e0e0e0 75%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:8px}.skeleton-tabs{height:40px;width:100%;margin-bottom:24px;background:linear-gradient(90deg,#e0e0e0 25%,#f0f0f0,#e0e0e0 75%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:8px}.skeleton-content{display:grid;gap:16px}.skeleton-card{height:120px;background:linear-gradient(90deg,#e0e0e0 25%,#f0f0f0,#e0e0e0 75%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:12px}.page-fade-enter{opacity:0;transform:translateY(10px)}.page-fade-enter-active{opacity:1;transform:translateY(0);transition:opacity .15s ease,transform .15s ease}.page-fade-exit{opacity:1;transform:translateY(0)}.page-fade-exit-active{opacity:0;transform:translateY(-10px);transition:opacity .15s ease,transform .15s ease}button:not(:disabled):hover,.btn:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}button:not(:disabled):active,.btn:not(:disabled):active{transform:translateY(0)}.cache-indicator{position:fixed;bottom:24px;right:24px;background:#10b981e6;color:#fff;padding:8px 16px;border-radius:8px;font-size:12px;font-weight:600;z-index:9999;animation:fadeInUp .3s ease}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.app{will-change:contents}img{will-change:transform}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-tertiary)}::-webkit-scrollbar-thumb{background:var(--text-tertiary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--accent-hover)}.beta-badge{display:inline-block;padding:2px 6px;background:var(--lssd-accent-600);color:var(--lssd-text-inverse)!important;font-size:10px;font-weight:600;border-radius:4px;margin-left:6px;letter-spacing:.3px;text-transform:uppercase}
