*{box-sizing:border-box;margin:0;padding:0}body{margin:0;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:#f5f5f5}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.login-overlay{position:fixed;inset:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-in-out}.login-modal{background:var(--surface-color, white);border-radius:12px;padding:2rem;width:90%;max-width:420px;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease-out}.dark-mode .login-modal{background:var(--surface-color);border:1px solid var(--border-color)}.login-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.login-header h2{margin:0;font-size:1.75rem;color:var(--text-color)}.close-button{background:none;border:none;font-size:2rem;color:var(--text-secondary);cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.close-button:hover{background:var(--hover-bg, #f0f0f0);color:var(--text-color)}.dark-mode .close-button:hover{background:var(--hover-bg)}.login-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:600;font-size:.9rem;color:var(--text-color)}.form-group input{padding:.75rem;border:1px solid var(--border-color, #ddd);border-radius:6px;font-size:1rem;background:var(--input-bg, white);color:var(--text-color);transition:border-color .2s ease,box-shadow .2s ease}.dark-mode .form-group input{background:var(--input-bg);border-color:var(--border-color)}.form-group input:focus{outline:none;border-color:var(--primary-color, #007bff);box-shadow:0 0 0 3px #007bff1a}.error-message{padding:.75rem;background:#fee;border:1px solid #fcc;border-radius:6px;color:#c33;font-size:.9rem}.dark-mode .error-message{background:#ff64641a;border-color:#ff64644d;color:#ff6b6b}.submit-button{padding:.875rem;background:var(--primary-color, #007bff);color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.submit-button:hover:not(:disabled){background:var(--primary-hover, #0056b3);transform:translateY(-1px);box-shadow:0 4px 12px #007bff4d}.submit-button:disabled{opacity:.6;cursor:not-allowed}.form-footer{text-align:center;margin-top:.5rem;font-size:.9rem;color:var(--text-secondary)}.link-button{background:none;border:none;color:var(--primary-color, #007bff);cursor:pointer;font-size:.9rem;text-decoration:underline;padding:0;font-weight:600}.link-button:hover{color:var(--primary-hover, #0056b3)}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}:root{--color-primary-dark: #4a5d6e;--color-primary: #5c7287;--color-primary-light: #7a8ea1;--color-primary-lighter: #96a8b8;--color-accent-dark: #362304;--color-accent: #4a3205;--color-accent-medium: #6b4a0a;--color-accent-light: #8b6510;--color-highlight-dark: #e5a33d;--color-highlight: #ffb852;--color-highlight-light: #ffc66b;--color-highlight-lighter: #ffd485;--color-neutral-900: #362304;--color-neutral-800: #4a3205;--color-neutral-700: #5a4520;--color-neutral-600: #6b5a3d;--color-neutral-500: #8a7660;--color-neutral-400: #a89886;--color-neutral-300: #c4b8ab;--color-neutral-200: #ddd6cf;--color-neutral-100: #eeebe7;--color-neutral-50: #f7f5f3;--color-background: #ffffff;--color-background-subtle: #faf9f7;--color-background-elevated: #ffffff;--color-background-elevated-2: #f7f5f3;--color-success: #4a6b3a;--color-success-light: #5d8549;--color-warning: #e5a33d;--color-warning-light: #ffb852;--color-error: #b84a3d;--color-error-light: #d16356;--color-info: #5c7287;--color-info-light: #7a8ea1;--color-text-primary: var(--color-neutral-900);--color-text-secondary: var(--color-neutral-600);--color-text-tertiary: var(--color-neutral-500);--color-text-inverse: var(--color-neutral-50);--color-border: var(--color-neutral-200);--color-border-subtle: var(--color-neutral-100);--color-border-strong: var(--color-neutral-300);--color-interactive-primary: var(--color-primary);--color-interactive-primary-hover: var(--color-primary-light);--color-interactive-secondary: var(--color-neutral-600);--color-interactive-secondary-hover: var(--color-neutral-700);--font-display: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;--font-body: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;--font-japanese: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Roboto Mono", "SF Mono", Monaco, "Courier New", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.375rem;--font-size-2xl: 1.75rem;--font-size-3xl: 2.25rem;--font-size-4xl: 3rem;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-snug: 1.3;--line-height-normal: 1.5;--line-height-relaxed: 1.6;--line-height-loose: 1.8;--letter-spacing-tight: -.02em;--letter-spacing-snug: -.01em;--letter-spacing-normal: 0;--letter-spacing-wide: .01em;--letter-spacing-wider: .08em;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--space-4xl: 6rem;--space-5xl: 8rem;--container-sm: 640px;--container-md: 768px;--container-lg: 1024px;--container-xl: 1280px;--container-2xl: 1536px;--grid-columns: 12;--grid-gutter: var(--space-lg);--grid-margin: var(--space-lg);--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--breakpoint-2xl: 1536px;--radius-none: 0;--radius-xs: .125rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .03);--shadow-md: 0 4px 8px rgba(0, 0, 0, .08), 0 2px 4px rgba(0, 0, 0, .04);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .1), 0 4px 8px rgba(0, 0, 0, .05);--shadow-xl: 0 16px 32px rgba(0, 0, 0, .12), 0 8px 16px rgba(0, 0, 0, .06);--shadow-2xl: 0 24px 48px rgba(0, 0, 0, .15), 0 12px 24px rgba(0, 0, 0, .08);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-sharp: cubic-bezier(.4, 0, .6, 1);--duration-fast: .15s;--duration-normal: .3s;--duration-slow: .5s;--duration-slower: .7s;--z-index-base: 0;--z-index-dropdown: 1000;--z-index-sticky: 1020;--z-index-fixed: 1030;--z-index-modal-backdrop: 1040;--z-index-modal: 1050;--z-index-popover: 1060;--z-index-tooltip: 1070}body.dark-mode{--color-primary-dark: #4a4e54;--color-primary: #6a6f76;--color-primary-light: #8a8f96;--color-primary-lighter: #a5a9af;--color-accent-dark: #6b4a0a;--color-accent: #8b6510;--color-accent-medium: #a67c1a;--color-accent-light: #c29625;--color-highlight-dark: #e5a33d;--color-highlight: #ffb852;--color-highlight-light: #ffc66b;--color-highlight-lighter: #ffd485;--color-neutral-900: #f7f5f3;--color-neutral-800: #eeebe7;--color-neutral-700: #ddd6cf;--color-neutral-600: #c4b8ab;--color-neutral-500: #a89886;--color-neutral-400: #8a7660;--color-neutral-300: #6b5a3d;--color-neutral-200: #5a4520;--color-neutral-100: #4a3205;--color-neutral-50: #362304;--color-background: #2a2d33;--color-background-subtle: #24272d;--color-background-elevated: #32353c;--color-background-elevated-2: #3a3e45;--color-success: #5d8549;--color-success-light: #6fa05a;--color-warning: #ffb852;--color-warning-light: #ffc66b;--color-error: #d16356;--color-error-light: #e07d71;--color-info: #96a8b8;--color-info-light: #b2c0cd;--color-text-primary: var(--color-neutral-900);--color-text-secondary: var(--color-neutral-600);--color-text-tertiary: var(--color-neutral-500);--color-text-inverse: var(--color-neutral-900);--color-border: var(--color-neutral-200);--color-border-subtle: var(--color-neutral-100);--color-border-strong: var(--color-neutral-300);--color-interactive-primary: var(--color-primary);--color-interactive-primary-hover: var(--color-primary-light);--color-interactive-secondary: var(--color-neutral-600);--color-interactive-secondary-hover: var(--color-neutral-700);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .35), 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 4px 8px rgba(0, 0, 0, .4), 0 2px 4px rgba(0, 0, 0, .25);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .45), 0 4px 8px rgba(0, 0, 0, .3);--shadow-xl: 0 16px 32px rgba(0, 0, 0, .5), 0 8px 16px rgba(0, 0, 0, .35);--shadow-2xl: 0 24px 48px rgba(0, 0, 0, .55), 0 12px 24px rgba(0, 0, 0, .4)}@media(prefers-reduced-motion:reduce){:root{--duration-fast: 0ms;--duration-normal: 0ms;--duration-slow: 0ms;--duration-slower: 0ms}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media(max-width:640px){:root{--grid-margin: var(--space-md);--grid-gutter: var(--space-md);--font-size-4xl: 2.25rem;--font-size-3xl: 1.875rem}}@media(min-width:1280px){:root{--grid-margin: var(--space-3xl)}}body{margin:0;font-family:var(--font-body);font-size:var(--font-size-base);line-height:var(--line-height-relaxed);color:var(--color-text-primary);background-color:var(--color-background-subtle);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--duration-normal) var(--ease-in-out),color var(--duration-normal) var(--ease-in-out)}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text-primary);margin:0}h1{font-size:var(--font-size-4xl);letter-spacing:var(--letter-spacing-tight)}h2{font-size:var(--font-size-3xl);letter-spacing:var(--letter-spacing-snug)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}button{font-family:var(--font-body)}.App{min-height:100vh;background-color:var(--color-background-subtle)}.App-header{background:linear-gradient(135deg,var(--color-primary-dark) 0%,var(--color-primary) 100%);color:var(--color-text-inverse);padding:var(--space-2xl);box-shadow:var(--shadow-md);position:relative}.header-content{max-width:var(--container-xl);margin:0 auto;display:flex;justify-content:space-between;align-items:center}.header-actions{display:flex;align-items:center;gap:var(--space-md)}.user-menu{position:relative;display:flex;align-items:center}.user-avatar-button{width:36px;height:36px;border-radius:50%;background:var(--color-primary);border:2px solid var(--color-primary-light);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:all var(--duration-fast) var(--ease-out)}.user-avatar-button:hover{background:var(--color-primary-hover);transform:scale(1.05)}.user-avatar-icon{width:20px;height:20px;color:#fff}.user-dropdown-backdrop{position:fixed;inset:0;z-index:99}.user-dropdown{position:absolute;top:calc(100% + var(--space-sm));right:0;background:var(--color-background-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:180px;z-index:100;overflow:hidden}.user-dropdown-email{padding:var(--space-md);font-size:var(--font-size-sm);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);word-break:break-all}.user-dropdown-logout{width:100%;padding:var(--space-md);background:transparent;border:none;text-align:left;font-size:var(--font-size-sm);color:var(--color-text-primary);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out)}.user-dropdown-logout:hover{background:var(--color-background-alt)}.login-button{padding:var(--space-sm) var(--space-lg);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.login-button:hover{background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.provinces-link,.library-link,.header-nav-link{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background:#ffffff26;border:1px solid rgba(255,255,255,.25);border-radius:var(--radius-md);color:#fff;text-decoration:none;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.provinces-link:hover,.library-link:hover,.header-nav-link:hover{background:#ffffff40;border-color:#fff6;transform:translateY(-1px)}.header-nav-link svg{width:16px;height:16px}.header-nav-link-highlight{background:#ffc83233;border-color:#ffc83266}.header-nav-link-highlight:hover{background:#ffc83259;border-color:#ffc83299}.subpage-header{background:linear-gradient(135deg,var(--color-primary-dark) 0%,var(--color-primary) 100%);color:var(--color-text-inverse);padding:var(--space-md) var(--space-lg);box-shadow:var(--shadow-md);position:sticky;top:0;z-index:100}body.dark-mode .subpage-header{background:linear-gradient(135deg,#0a0a0a,#1a1a1a)}.subpage-header-content{max-width:var(--container-xl);margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:var(--space-lg)}.subpage-header-text{display:flex;align-items:center;gap:var(--space-md)}.subpage-header-logo{width:48px;height:48px;flex-shrink:0;filter:brightness(0) invert(1);transition:transform var(--duration-normal) var(--ease-in-out)}.subpage-header-logo:hover{transform:rotate(5deg) scale(1.05)}.subpage-header-title h1{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-inverse);letter-spacing:var(--letter-spacing-tight)}.subpage-header-title p{margin:0;font-size:var(--font-size-sm);opacity:.85;color:var(--color-text-inverse)}.subpage-header-actions{display:flex;align-items:center;gap:var(--space-md)}.subpage-header-actions .user-menu{position:relative}.subpage-header-actions .user-avatar-button{width:36px;height:36px;border-radius:50%;background:#ffffff26;border:1px solid rgba(255,255,255,.25);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:all var(--duration-fast) var(--ease-out)}.subpage-header-actions .user-avatar-button:hover{background:#ffffff40;border-color:#fff6}.subpage-header-actions .user-avatar-icon{width:20px;height:20px;color:#fff}.subpage-header-actions .user-dropdown{position:absolute;top:calc(100% + var(--space-sm));right:0;background:var(--color-background-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:180px;z-index:100;overflow:hidden}.subpage-header-actions .user-dropdown-email{padding:var(--space-md);font-size:var(--font-size-sm);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);word-break:break-all}.subpage-header-actions .user-dropdown-logout{width:100%;padding:var(--space-md);background:transparent;border:none;text-align:left;font-size:var(--font-size-sm);color:var(--color-text-primary);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out)}.subpage-header-actions .user-dropdown-logout:hover{background:var(--color-background-alt)}@media(max-width:768px){.subpage-header{padding:var(--space-sm) var(--space-md)}.subpage-header-content{flex-wrap:wrap;gap:var(--space-md)}.subpage-header-text{flex:1;min-width:200px}.subpage-header-logo{width:40px;height:40px}.subpage-header-title h1{font-size:var(--font-size-lg)}.subpage-header-title p{font-size:var(--font-size-xs)}.subpage-header-actions{gap:var(--space-sm)}}@media(max-width:480px){.subpage-header-content{flex-direction:column;align-items:stretch;gap:var(--space-sm)}.subpage-header-text{justify-content:center}.subpage-header-actions{justify-content:center;flex-wrap:wrap}}.header-text{display:flex;align-items:center;gap:var(--space-lg);text-align:left}.header-logo{width:80px;height:80px;flex-shrink:0;filter:brightness(0) invert(1);transition:transform var(--duration-normal) var(--ease-in-out)}.header-logo:hover{transform:rotate(5deg) scale(1.05)}.header-title-group{display:flex;flex-direction:column;gap:var(--space-xs)}.App-header h1{margin:0;font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);color:var(--color-text-inverse);letter-spacing:var(--letter-spacing-tight)}.App-header p{margin:0;font-size:var(--font-size-lg);opacity:.95;font-weight:var(--font-weight-regular);color:var(--color-text-inverse)}.dark-mode-toggle{background:transparent;border:none;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center}.toggle-track{width:52px;height:28px;background:var(--color-neutral-300);border-radius:14px;position:relative;transition:background-color var(--duration-normal) var(--ease-in-out)}.dark-mode-toggle.dark .toggle-track{background:var(--color-primary)}.toggle-thumb{position:absolute;top:2px;left:2px;width:24px;height:24px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:transform var(--duration-normal) var(--ease-in-out);box-shadow:var(--shadow-sm)}.dark-mode-toggle.dark .toggle-thumb{transform:translate(24px)}.toggle-icon{width:14px;height:14px;color:var(--color-neutral-600)}.dark-mode-toggle.dark .toggle-icon{color:var(--color-primary)}.dark-mode-toggle:hover .toggle-track{opacity:.9}.dark-mode-toggle:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:14px}.dark-mode-toggle:active{transform:scale(.95)}.loading,.error{text-align:center;padding:var(--space-2xl);font-size:var(--font-size-lg)}.loading-background{text-align:center;padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm);color:var(--color-text-secondary);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.error{color:var(--color-error);background-color:var(--color-error-light);background:linear-gradient(135deg,#d628281a,#f77f001a);margin:var(--space-md);border-radius:var(--radius-md);border-left:4px solid var(--color-error);padding:var(--space-xl)}.main-content{max-width:var(--container-xl);margin:0 auto;padding:var(--space-2xl)}.search-bar{margin-bottom:var(--space-md);background:var(--color-background-elevated);padding:var(--space-sm);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--color-border-subtle);transition:box-shadow var(--duration-normal) var(--ease-in-out)}.search-bar:hover{box-shadow:var(--shadow-lg)}.search-input-wrapper{position:relative}.search-input-container{display:flex;flex-wrap:wrap;gap:var(--space-sm);align-items:center;padding:var(--space-sm);border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background);min-height:3rem;transition:border-color var(--duration-normal) var(--ease-in-out)}.search-input-container:focus-within{border-color:var(--color-interactive-primary);box-shadow:0 0 0 3px #2e40571a}.search-input{flex:1;min-width:200px;padding:var(--space-sm);font-size:var(--font-size-base);font-family:var(--font-body);border:none;outline:none;background:transparent;color:var(--color-text-primary)}.search-input::placeholder{color:var(--color-text-tertiary);font-style:italic}.search-tag{display:inline-flex;align-items:center;gap:var(--space-sm);background:var(--color-primary);color:var(--color-text-inverse);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap;transition:all var(--duration-fast) var(--ease-in-out)}.search-tag:hover{background:var(--color-primary-light);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.tag-remove-button{background:none;border:none;color:var(--color-text-inverse);font-size:1.2rem;cursor:pointer;padding:0;margin-left:var(--space-xs);line-height:1;display:flex;align-items:center;transition:opacity var(--duration-fast) var(--ease-in-out)}.tag-remove-button:hover{opacity:.7}.search-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-md)}.add-tag-button{background:var(--color-primary);color:var(--color-text-inverse);border:none;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--duration-fast) var(--ease-in-out);box-shadow:var(--shadow-xs)}.add-tag-button:hover{background:var(--color-primary-dark);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.add-tag-button:active{transform:translateY(0)}.clear-all-button{background:var(--color-accent);color:var(--color-text-inverse);border:none;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--duration-fast) var(--ease-in-out);box-shadow:var(--shadow-xs)}.clear-all-button:hover{background:var(--color-error);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.clear-all-button:active{transform:translateY(0)}.autocomplete-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:400px;overflow-y:auto;background:var(--color-background-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:var(--z-index-dropdown);animation:slideDown var(--duration-fast) var(--ease-out)}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.autocomplete-group{margin-bottom:0}.autocomplete-category{position:sticky;top:0;padding:var(--space-sm) var(--space-md);background:var(--color-neutral-50);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;color:var(--color-text-secondary);letter-spacing:var(--letter-spacing-wider);z-index:1;border-top:1px solid var(--color-border-subtle)}.autocomplete-category:first-child{border-top:none;border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.autocomplete-suggestion{display:flex;justify-content:space-between;align-items:center;padding:10px var(--space-md);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-in-out)}.autocomplete-suggestion:hover,.autocomplete-suggestion.highlighted{background:var(--color-neutral-100)}.autocomplete-suggestion-text{flex:1;font-size:var(--font-size-base);color:var(--color-text-primary)}.autocomplete-highlight{font-weight:var(--font-weight-semibold);color:var(--color-primary);background:transparent}.autocomplete-suggestion-count{display:inline-block;padding:2px var(--space-sm);background:var(--color-neutral-200);border-radius:var(--radius-full);font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-left:var(--space-sm);white-space:nowrap;font-weight:var(--font-weight-medium)}.autocomplete-no-results{padding:var(--space-xl) var(--space-md);text-align:center;color:var(--color-text-secondary)}.autocomplete-no-results-hint{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin-top:var(--space-sm)}.search-tag-quoted{background:var(--color-highlight);background:linear-gradient(135deg,#8b4789,#6a1b9a);border:2px dashed rgba(255,255,255,.3)}.search-hint{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--space-sm);padding:var(--space-sm);background:var(--color-warning-light);background:linear-gradient(135deg,#fcbf4926,#f77f001a);border-left:3px solid var(--color-warning);border-radius:var(--radius-sm)}.filter-panel{background:var(--color-background-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:var(--space-lg);border:1px solid var(--color-border-subtle);transition:all var(--duration-normal) var(--ease-in-out)}.filter-panel.expanded{padding:var(--space-xl);width:100%;overflow:visible}.filter-panel.collapsed{padding:0;width:fit-content;display:inline-block}.filter-header{display:flex;justify-content:space-between;align-items:center;transition:background-color var(--duration-fast) var(--ease-in-out);cursor:pointer}.filter-panel.expanded .filter-header{margin-bottom:var(--space-md)}.filter-panel.collapsed .filter-header{padding:var(--space-sm) var(--space-md)}.filter-panel.collapsed .filter-header:hover{background-color:var(--color-neutral-50)}.filter-title-row{display:flex;align-items:center;gap:var(--space-sm)}.filter-header h3{margin:0;color:var(--color-text-primary);display:flex;align-items:center;gap:var(--space-sm);white-space:nowrap}.filter-panel.expanded .filter-header h3{font-size:var(--font-size-xl)}.filter-panel.collapsed .filter-header h3{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.filter-panels-container{display:flex;flex-wrap:wrap;gap:var(--space-sm);align-items:flex-start}.filter-panels-container>.filter-panel.collapsed,.filter-panels-container>.advanced-filter-groups.collapsed{margin-bottom:0}.filter-panels-container>.filter-panel.expanded,.filter-panels-container>.advanced-filter-groups.expanded{flex-basis:100%}.clear-filters-button{background:var(--color-accent);color:var(--color-text-inverse);border:none;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--duration-fast) var(--ease-in-out);box-shadow:var(--shadow-xs)}.clear-filters-button:hover{background:var(--color-error);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-md);overflow:visible}.filter-group{display:flex;flex-direction:column}.filter-group label{font-weight:var(--font-weight-semibold);margin-bottom:var(--space-sm);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.filter-group select{padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-base);font-family:var(--font-body);background:var(--color-background);color:var(--color-text-primary);cursor:pointer;transition:all var(--duration-fast) var(--ease-in-out)}.filter-group select:hover{border-color:var(--color-border-strong)}.filter-group select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2e40571a}.range-inputs{display:flex;align-items:center;gap:var(--space-xs)}.range-input{flex:1;padding:var(--space-sm) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-base);font-family:var(--font-body);background:var(--color-background);color:var(--color-text-primary);min-width:0;transition:all var(--duration-fast) var(--ease-in-out)}.range-input:hover{border-color:var(--color-border-strong)}.range-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2e40571a}.range-input::placeholder{color:var(--color-text-tertiary)}.range-separator{color:var(--color-text-secondary);font-weight:var(--font-weight-medium);flex-shrink:0}.range-input::-webkit-outer-spin-button,.range-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.range-input[type=number]{-moz-appearance:textfield}.filter-group-wide{grid-column:1 / -1}.period-checkboxes{display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-md)}.period-checkbox-label{display:flex;align-items:center;gap:var(--space-xs);cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-primary);padding:var(--space-xs) 0;-webkit-user-select:none;user-select:none}.period-checkbox-label input[type=checkbox]{width:16px;height:16px;margin:0;cursor:pointer;accent-color:var(--color-primary)}.period-checkbox-text{white-space:nowrap}.period-checkbox-label:hover{color:var(--color-primary)}.period-checkbox-label:hover .period-checkbox-text{text-decoration:underline}.multi-select-dropdown{position:relative}.multi-select-trigger{width:100%;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-base);font-family:var(--font-body);background:var(--color-background);color:var(--color-text-primary);cursor:pointer;transition:all var(--duration-fast) var(--ease-in-out);display:flex;justify-content:space-between;align-items:center;text-align:left}.multi-select-trigger:hover{border-color:var(--color-border-strong)}.multi-select-trigger:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2e40571a}.multi-select-value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multi-select-arrow{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-left:var(--space-sm)}.multi-select-options{position:absolute;top:100%;left:0;right:0;background:var(--color-background);border:1px solid var(--color-border);border-top:none;border-radius:0 0 var(--radius-sm) var(--radius-sm);box-shadow:var(--shadow-md);z-index:100;max-height:250px;overflow-y:auto}.multi-select-option{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-in-out);-webkit-user-select:none;user-select:none;white-space:nowrap}.multi-select-option:hover{background-color:var(--color-background-subtle)}.multi-select-option input[type=checkbox]{width:14px;height:14px;margin:0;cursor:pointer;accent-color:var(--color-primary);flex-shrink:0}.multi-select-option-text{display:inline;font-size:var(--font-size-sm);color:var(--color-text-primary)}.multi-select-count{color:var(--color-text-tertiary);font-size:var(--font-size-xs);margin-left:var(--space-xs)}.info-tooltip{position:relative;display:inline-block;margin-left:var(--space-xs)}.info-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--color-text-tertiary);color:var(--color-background);font-size:11px;font-weight:var(--font-weight-bold);cursor:help;transition:background-color var(--duration-fast) var(--ease-in-out)}.info-icon:hover{background:var(--color-primary)}.info-tooltip-content{visibility:hidden;opacity:0;position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:var(--space-xs);padding:var(--space-sm) var(--space-md);background:var(--color-text-primary);color:var(--color-background);font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);line-height:1.5;border-radius:var(--radius-sm);white-space:nowrap;z-index:200;box-shadow:var(--shadow-lg);transition:opacity var(--duration-fast) var(--ease-in-out),visibility var(--duration-fast) var(--ease-in-out)}.info-tooltip-content:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--color-text-primary)}.info-tooltip:hover .info-tooltip-content{visibility:visible;opacity:1}body.dark-mode .info-tooltip-content{background:var(--color-background-elevated);color:var(--color-text-primary);border:1px solid var(--color-border)}body.dark-mode .info-tooltip-content:after{border-top-color:var(--color-background-elevated)}.advanced-filter-groups{background:var(--color-background-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:var(--space-lg);border-left:4px solid var(--color-primary-light);transition:all var(--duration-normal) var(--ease-in-out);border:1px solid var(--color-border-subtle)}.advanced-filter-groups.collapsed{padding:0;width:fit-content;display:inline-block;overflow:hidden}.advanced-filter-groups.expanded{padding:var(--space-xl);width:100%;display:block;overflow:visible}.advanced-filter-header{cursor:pointer;transition:background-color var(--duration-fast) var(--ease-in-out)}.advanced-filter-groups.collapsed .advanced-filter-header{padding:var(--space-sm) var(--space-md)}.advanced-filter-groups.collapsed .advanced-filter-header:hover{background-color:var(--color-neutral-50)}.advanced-filter-groups.expanded .advanced-filter-header{padding:0;margin-bottom:var(--space-md);cursor:pointer}.advanced-filter-title-row{display:flex;align-items:center;gap:var(--space-sm)}.advanced-filter-groups.expanded .advanced-filter-title-row{justify-content:space-between}.advanced-filter-header h3{margin:0;color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);display:flex;align-items:center;gap:var(--space-sm);white-space:nowrap}.advanced-filter-groups.expanded .advanced-filter-header h3{font-size:var(--font-size-xl)}.active-count-badge{display:inline-flex;align-items:center;justify-content:center;background:var(--color-primary);color:var(--color-text-inverse);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);min-width:1.3rem;height:1.3rem;padding:0 var(--space-xs);border-radius:var(--radius-full)}.toggle-arrow-button{background:transparent;border:none;color:var(--color-primary);font-size:var(--font-size-sm);cursor:pointer;padding:0;transition:all var(--duration-fast) var(--ease-in-out);display:flex;align-items:center;justify-content:center;flex-shrink:0}.advanced-filter-groups.expanded .toggle-arrow-button,.filter-panel.expanded .toggle-arrow-button{font-size:var(--font-size-base);padding:var(--space-xs) var(--space-sm)}.toggle-arrow-button:hover{color:var(--color-primary-dark);transform:scale(1.15)}.advanced-filter-content{margin-top:var(--space-md)}.filter-logic-explanation{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed)}.filter-logic-explanation strong{color:var(--color-primary);font-weight:var(--font-weight-bold)}.no-groups-message{text-align:center;padding:var(--space-2xl);color:var(--color-text-tertiary);font-style:italic}.no-groups-message p{margin:0}.filter-group-card{background:var(--color-background-elevated-2);border:2px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-xl);margin-bottom:var(--space-md);transition:all var(--duration-fast) var(--ease-in-out);overflow:visible}.filter-group-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.filter-group-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md);padding-bottom:var(--space-md);border-bottom:2px solid var(--color-border)}.filter-group-header h4{margin:0;color:var(--color-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.filter-group-actions{display:flex;gap:var(--space-sm)}.clear-group-button{background:var(--color-warning);color:var(--color-text-inverse);border:none;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--duration-fast) var(--ease-in-out)}.clear-group-button:hover{background:var(--color-warning-light);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.remove-group-button{background:var(--color-accent);color:var(--color-text-inverse);border:none;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);cursor:pointer;font-size:1.2rem;font-weight:var(--font-weight-bold);line-height:1;transition:all var(--duration-fast) var(--ease-in-out);min-width:2rem}.remove-group-button:hover{background:var(--color-error);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.filter-group-content{margin-top:var(--space-md)}.filter-group-search{margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:2px solid var(--color-border)}.filter-group-search label{display:block;font-weight:var(--font-weight-semibold);margin-bottom:var(--space-sm);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.group-search-input-container{display:flex;flex-wrap:wrap;gap:var(--space-sm);align-items:center;padding:var(--space-sm);border:2px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-background);min-height:2.5rem;transition:border-color var(--duration-normal) var(--ease-in-out);margin-bottom:var(--space-sm)}.group-search-input-container:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px #2e40571a}.group-search-input{flex:1;min-width:150px;border:none;outline:none;padding:var(--space-sm);font-size:var(--font-size-base);font-family:var(--font-body);background:transparent;color:var(--color-text-primary)}.group-search-input:focus{outline:none}.group-search-input::placeholder{color:var(--color-text-tertiary);font-style:italic}.group-search-tag{font-size:var(--font-size-sm)}.group-add-tag{margin-left:0;font-size:var(--font-size-sm);padding:var(--space-xs) var(--space-md)}.filter-group-item{display:flex;flex-direction:column}.filter-group-item-wide{grid-column:1 / -1}.filter-group-item label{font-weight:var(--font-weight-semibold);margin-bottom:var(--space-sm);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.filter-group-item select{padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-base);font-family:var(--font-body);background:var(--color-background);color:var(--color-text-primary);cursor:pointer;transition:all var(--duration-fast) var(--ease-in-out)}.filter-group-item select:hover{border-color:var(--color-border-strong)}.filter-group-item select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2e40571a}.group-filter-summary{margin-top:var(--space-md);padding:var(--space-md);background:var(--color-neutral-100);border-left:3px solid var(--color-primary);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--color-primary-dark)}.filter-group-separator{display:flex;align-items:center;justify-content:center;margin:var(--space-md) 0;position:relative}.filter-group-separator:before,.filter-group-separator:after{content:"";flex:1;height:2px;background:linear-gradient(to right,transparent,var(--color-primary),transparent)}.or-badge{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-light) 100%);color:var(--color-text-inverse);padding:var(--space-sm) var(--space-xl);border-radius:var(--radius-full);font-weight:var(--font-weight-bold);font-size:var(--font-size-base);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);box-shadow:var(--shadow-sm);margin:0 var(--space-md);z-index:1}.add-filter-group-button{background:linear-gradient(135deg,var(--color-success) 0%,var(--color-success-light) 100%);color:var(--color-text-inverse);border:none;padding:var(--space-md) var(--space-xl);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);width:100%;transition:all var(--duration-fast) var(--ease-in-out);box-shadow:var(--shadow-sm)}.add-filter-group-button:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.add-filter-group-button:active{transform:translateY(0)}.results-info{text-align:center;margin-bottom:var(--space-md);font-size:var(--font-size-lg);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.sword-table-container{background:var(--color-background-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden;border:1px solid var(--color-border-subtle)}.sword-table{width:100%;border-collapse:collapse;font-family:var(--font-body)}.sword-table thead{background:linear-gradient(135deg,var(--color-primary-dark) 0%,var(--color-primary) 100%);color:var(--color-text-inverse)}.sword-table th{padding:var(--space-md);text-align:left;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);position:sticky;top:0;z-index:10}.sword-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--duration-fast) var(--ease-in-out)}.sword-table th.sortable:hover{background:#0000001a}.sword-table tbody tr{border-bottom:1px solid var(--color-border-subtle);cursor:pointer;transition:all var(--duration-fast) var(--ease-in-out)}.sword-table tbody tr:hover{background-color:var(--color-neutral-50)}.sword-table tbody tr.selected{background-color:var(--color-neutral-100);border-left:4px solid var(--color-primary)}.sword-table td{padding:var(--space-md);color:var(--color-text-primary);font-size:var(--font-size-sm)}.mei-cell,.auth-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.no-results{text-align:center;padding:var(--space-4xl);color:var(--color-text-secondary);font-size:var(--font-size-lg);font-style:italic}.pagination{display:flex;justify-content:center;align-items:center;padding:var(--space-md);gap:var(--space-sm);border-top:1px solid var(--color-border-subtle)}.page-button{padding:var(--space-sm) var(--space-md);background:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);transition:all var(--duration-fast) var(--ease-in-out)}.page-button:hover:not(:disabled){background:var(--color-primary-dark);box-shadow:var(--shadow-sm)}.page-button:disabled{background:var(--color-neutral-300);cursor:not-allowed;opacity:.5}.page-numbers{display:flex;gap:var(--space-xs);align-items:center}.page-number{padding:var(--space-sm) var(--space-md);background:var(--color-background);color:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);transition:all var(--duration-fast) var(--ease-in-out);min-width:2.5rem;text-align:center}.page-number:hover{background:var(--color-neutral-100);box-shadow:var(--shadow-xs)}.page-number.active{background:var(--color-primary);color:var(--color-text-inverse)}.ellipsis{padding:var(--space-sm);color:var(--color-text-tertiary)}.pagination-info{text-align:center;padding:var(--space-sm);color:var(--color-text-secondary);font-size:var(--font-size-sm);border-top:1px solid var(--color-border-subtle)}.sword-detail-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:var(--z-index-modal-backdrop);padding:var(--space-md);animation:fadeIn var(--duration-normal) var(--ease-out)}.sword-detail-panel{background:var(--color-background-elevated);border-radius:var(--radius-lg);max-width:800px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-2xl);animation:slideUp var(--duration-normal) var(--ease-out)}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.detail-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-xl);border-bottom:2px solid var(--color-border);position:sticky;top:0;background:var(--color-background-elevated);z-index:1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.detail-header h2{margin:0;color:var(--color-primary);font-size:var(--font-size-2xl);font-family:var(--font-display)}.close-button{background:none;border:none;font-size:2rem;color:var(--color-text-secondary);cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;transition:all var(--duration-fast) var(--ease-in-out);border-radius:var(--radius-sm)}.close-button:hover{color:var(--color-text-primary);background:var(--color-neutral-100)}.detail-content{padding:var(--space-xl)}.detail-section{margin-bottom:var(--space-2xl)}.detail-section:last-child{margin-bottom:0}.detail-section h3{color:var(--color-primary);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:2px solid var(--color-neutral-100);font-size:var(--font-size-xl);font-family:var(--font-display)}.meito-section{background:linear-gradient(135deg,var(--color-highlight-light) 0%,var(--color-highlight) 100%);border:3px solid var(--color-highlight);border-radius:var(--radius-md);padding:var(--space-xl);margin-bottom:var(--space-2xl);box-shadow:var(--shadow-lg)}.meito-header{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md)}.meito-badge{background:var(--color-highlight);color:#fff;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-full);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);box-shadow:var(--shadow-sm)}.meito-label{font-size:var(--font-size-sm);color:#8b6914;font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide)}.meito-name{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:#8b4513;line-height:var(--line-height-snug);text-shadow:0 1px 2px rgba(255,255,255,.8);font-family:var(--font-display)}.detail-row{display:grid;grid-template-columns:200px 1fr;gap:var(--space-md);padding:var(--space-md) 0;border-bottom:1px solid var(--color-border-subtle)}.detail-row:last-child{border-bottom:none}.detail-label{font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.detail-value{color:var(--color-text-primary);font-size:var(--font-size-base)}.description-text,.attachments-text,.references-text{line-height:var(--line-height-relaxed);color:var(--color-text-primary)}body.dark-mode{background-color:var(--color-background)}body.dark-mode .App{background-color:var(--color-background);color:var(--color-text-primary)}body.dark-mode .App-header{background:linear-gradient(135deg,#0a0a0a,#1a1a1a)}body.dark-mode .sword-table thead{background:linear-gradient(135deg,#1a1a1a,#2a2a2a)}body.dark-mode .search-tag-quoted{background:linear-gradient(135deg,#4a4a4a,#3a3a3a)}body.dark-mode .sword-detail-overlay{background:#000000d9}body.dark-mode .detail-header h2,body.dark-mode .detail-section h3{color:#a8c4e0}body.dark-mode .detail-row,body.dark-mode .detail-section h3{border-bottom-color:#ffffff26}body.dark-mode .media-category,body.dark-mode .filter-group label,body.dark-mode .filter-group-item label{color:#c4a87c}@media(max-width:768px){.header-content{flex-direction:column;gap:var(--space-md)}.header-text{flex-direction:column;text-align:center;gap:var(--space-md)}.header-logo{width:60px;height:60px}.App-header h1{font-size:var(--font-size-3xl)}.main-content{padding:var(--space-md)}.filters-grid{grid-template-columns:1fr}.sword-table{font-size:var(--font-size-sm)}.sword-table th,.sword-table td{padding:var(--space-sm)}.detail-row{grid-template-columns:1fr;gap:var(--space-xs)}.pagination{flex-wrap:wrap}.search-bar,.filter-panel.expanded,.advanced-filter-groups.expanded{padding:var(--space-md)}.filter-panels-container{max-width:100%;overflow:hidden}.filter-panel.expanded{overflow:hidden;max-width:100%;box-sizing:border-box;width:100%}.filters-grid{max-width:100%;overflow:hidden;box-sizing:border-box}.filter-group{max-width:100%;min-width:0;box-sizing:border-box}.filter-group select,.filter-group input,.multi-select-dropdown,.multi-select-trigger{max-width:100%;min-width:0;width:100%;box-sizing:border-box}.range-inputs{max-width:100%;box-sizing:border-box}.range-input{min-width:0;flex:1}}@media(max-width:640px){.App-header{padding:var(--space-md)}.App-header h1{font-size:var(--font-size-2xl)}.App-header p{font-size:var(--font-size-base)}}.media-attachments{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--space-md);margin-top:var(--space-md)}.media-item{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm);background-color:var(--color-background);display:flex;flex-direction:column;align-items:center;text-align:center}.media-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);margin-top:var(--space-xs);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-category{font-size:.6rem;font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);background-color:#d4af371a;padding:.125rem .25rem;border-radius:var(--radius-sm);margin-bottom:var(--space-xs);display:inline-block;text-transform:uppercase;letter-spacing:.3px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-tags{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-top:var(--space-sm)}.media-tag{font-size:var(--font-size-xs);color:var(--color-text-secondary);background-color:var(--color-background-alt);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);border:1px solid var(--color-border)}.media-image{width:125px;height:125px;object-fit:cover;border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);display:block;transition:transform .2s ease,box-shadow .2s ease;cursor:pointer}.media-image:hover{transform:scale(1.05);box-shadow:var(--shadow-md)}.media-pdf-container{position:relative;width:100%}.media-pdf{width:100%;height:600px;border:none;border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);pointer-events:none}.pdf-click-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background-color:#0000;color:#fff;font-size:var(--font-size-md);font-weight:var(--font-weight-medium);transition:background-color .2s ease;border-radius:var(--radius-sm);cursor:pointer}.pdf-click-overlay span{opacity:0;transition:opacity .2s ease;background-color:#000c;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md)}.pdf-click-overlay:hover{background-color:#0000004d}.pdf-click-overlay:hover span{opacity:1}body.dark-mode .media-item{background-color:var(--color-background-elevated);border-color:var(--color-border)}body.dark-mode .media-image{box-shadow:var(--shadow-md)}@media(max-width:768px){.media-pdf{height:400px}}.lightbox-overlay{position:fixed;inset:0;background-color:#000000e6;display:flex;align-items:center;justify-content:center;z-index:10000;padding:var(--space-lg);animation:fadeIn .2s ease}.lightbox-content{position:relative;max-width:95vw;max-height:95vh;display:flex;align-items:center;justify-content:center}.lightbox-image{max-width:100%;max-height:95vh;width:auto;height:auto;object-fit:contain;border-radius:var(--radius-md);box-shadow:0 10px 50px #00000080}.lightbox-close{position:absolute;top:-40px;right:0;background:none;border:none;color:#fff;font-size:40px;cursor:pointer;padding:0;width:40px;height:40px;line-height:1;transition:transform .2s ease}.lightbox-close:hover{transform:scale(1.2)}@media(max-width:768px){.lightbox-close{top:-50px;right:-10px}}*{box-sizing:border-box}.admin-container{min-height:100vh;background-color:var(--color-background-subtle)}.admin-header{background:linear-gradient(135deg,#2e4057,#3e5266);color:#fff;padding:1rem 2rem;box-shadow:0 2px 4px #0000001a}.admin-header-content{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.admin-logo{color:#fff;text-decoration:none;font-size:1.5rem;font-weight:600}.admin-logo:hover{color:#c4a35a}.admin-header h1{margin:0;font-size:1.5rem}.admin-nav{display:flex;gap:1.5rem}.nav-link{color:#fff;text-decoration:none;padding:.5rem 1rem;border-radius:4px;transition:background-color .2s}.nav-link:hover{background-color:#ffffff1a}.admin-main{max-width:1400px;margin:0 auto;padding:2rem}.admin-page{background:#fff;border-radius:8px;padding:2rem;box-shadow:0 1px 3px #0000001a}.page-header{margin-bottom:2rem;border-bottom:2px solid #e5e7eb;padding-bottom:1rem}.page-header h2{margin:0 0 .5rem;color:#2e4057;font-size:2rem}.subtitle{color:#6b7280;margin:0}.page-header-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.back-link{color:#2e4057;text-decoration:none;font-weight:500;transition:color .2s}.back-link:hover{color:#c4a35a}.sword-index{color:#6b7280;font-size:.9rem;font-weight:500}.sword-type-badge{display:inline-block;background-color:#e5e7eb;color:#374151;padding:.25rem .75rem;border-radius:9999px;font-size:.875rem;font-weight:500}.search-form{display:flex;gap:.5rem;align-items:center}.search-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.search-tag{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background-color:#3b82f6;color:#fff;border-radius:6px;font-size:.9rem;font-weight:500}.tag-remove{background:none;border:none;color:#fff;font-size:1.25rem;line-height:1;cursor:pointer;padding:0;margin:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:3px;transition:background-color .2s}.tag-remove:hover{background-color:#fff3}select{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:6px;font-size:1rem;background-color:#fff}.results-info{margin-bottom:1rem;color:#6b7280;font-size:.9rem}.sword-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;margin-bottom:2rem}.sword-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:1.5rem;transition:box-shadow .2s,transform .2s}.sword-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.sword-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.media-badge{background-color:#10b981;color:#fff;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600}.sword-card-body{margin-bottom:1rem}.sword-smith{margin:0 0 .5rem;color:#1f2937;font-size:1.25rem}.sword-meta{color:#6b7280;font-size:.875rem;margin-bottom:.5rem}.meta-item{display:inline}.meta-separator{margin:0 .5rem}.sword-measurements{display:flex;gap:1rem;margin:.5rem 0;font-size:.875rem;color:#374151}.measurement{display:flex;align-items:center;gap:.25rem}.measurement-label{font-weight:600;color:#6b7280}.sword-auth{font-size:.875rem;color:#c4a35a;font-weight:500}.sword-card-footer{border-top:1px solid #e5e7eb;padding-top:1rem}.btn-primary,.btn-secondary,.btn-danger{padding:.75rem 1.5rem;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;text-decoration:none;display:inline-block}.btn-primary{background-color:#2e4057;color:#fff}.btn-primary:hover{background-color:#3e5266}.btn-secondary{background-color:#f3f4f6;color:#374151}.btn-secondary:hover{background-color:#e5e7eb}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-danger{background-color:#ef4444;color:#fff}.btn-danger:hover{background-color:#dc2626}.btn-small{padding:.5rem 1rem;font-size:.875rem}.pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:2rem}.page-info{color:#6b7280;font-size:.9rem}.detail-section{margin-bottom:3rem}.detail-section h3{color:#2e4057;margin-bottom:1rem;font-size:1.25rem;border-bottom:2px solid #e5e7eb;padding-bottom:.5rem}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.detail-item{padding:.75rem;background-color:#f9fafb;border-radius:6px}.detail-item label{display:block;font-weight:600;color:#6b7280;font-size:.875rem;margin-bottom:.25rem}.detail-item span{color:#1f2937;font-size:1rem}.detail-full-width{grid-column:1 / -1}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem}.media-item{border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;background:#fff;transition:box-shadow .2s}.media-item:hover{box-shadow:0 4px 12px #0000001a}.media-thumbnail{width:100%;height:200px;object-fit:cover;cursor:pointer;transition:opacity .2s}.media-thumbnail:hover{opacity:.9}.media-pdf{height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:#f3f4f6}.pdf-icon{font-size:3rem;margin-bottom:.5rem}.pdf-name{font-size:.875rem;color:#6b7280;padding:0 1rem;text-align:center;word-break:break-all}.media-info{padding:1rem}.media-category{font-weight:600;color:#2e4057;margin-bottom:.5rem}.media-caption{color:#6b7280;font-size:.875rem;margin-bottom:.5rem}.media-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.tag{background-color:#e5e7eb;color:#374151;padding:.25rem .5rem;border-radius:4px;font-size:.75rem}.media-item .btn-danger{margin:0 1rem 1rem;width:calc(100% - 2rem)}.media-upload{background-color:#f9fafb;padding:1.5rem;border-radius:8px}.dropzone{border:2px dashed #d1d5db;border-radius:8px;padding:3rem;text-align:center;cursor:pointer;transition:all .2s;background-color:#fff;margin-bottom:1.5rem}.dropzone:hover:not(.dropzone-disabled){border-color:#2e4057;background-color:#f9fafb}.dropzone-active{border-color:#10b981;background-color:#f0fdf4}.dropzone-disabled{opacity:.6;cursor:not-allowed}.dropzone-content{pointer-events:none}.dropzone-icon{font-size:3rem;margin-bottom:1rem}.dropzone-text{margin:0 0 .5rem;font-size:1rem;color:#374151}.dropzone-hint{margin:0;font-size:.875rem;color:#6b7280}.dropzone-uploading{display:flex;flex-direction:column;align-items:center;gap:1rem}.spinner{width:40px;height:40px;border:4px solid #e5e7eb;border-top-color:#2e4057;border-radius:50%;animation:spin 1s linear infinite}.upload-form{background-color:#fff;padding:1.5rem;border-radius:8px}.form-row{margin-bottom:1rem}.form-group{display:flex;flex-direction:column}.form-group label{font-weight:500;color:#374151;margin-bottom:.5rem}.form-group input{padding:.75rem;border:1px solid #d1d5db;border-radius:6px;font-size:1rem}.form-group input:disabled,.form-group select:disabled{background-color:#f3f4f6;cursor:not-allowed}.form-hint{font-size:.875rem;color:#6b7280;margin-top:1rem}.empty-state{text-align:center;padding:3rem;color:#6b7280;font-style:italic}.loading,.error{text-align:center;padding:2rem;font-size:1.1rem}.error{color:#ef4444;background-color:#fef2f2;border:1px solid #fecaca;border-radius:8px}@media(max-width:768px){.admin-header-content{flex-direction:column;align-items:flex-start;gap:1rem}.admin-main,.admin-page{padding:1rem}.sword-list,.detail-grid,.media-grid{grid-template-columns:1fr}}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.section-header h3{margin:0;border:none;padding:0}.edit-controls{display:flex;gap:.5rem}.form-input,.form-textarea{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:6px;font-size:1rem;font-family:inherit;background-color:#fff;transition:border-color .2s}.form-input:focus,.form-textarea:focus{outline:none;border-color:#2e4057;box-shadow:0 0 0 3px #2e40571a}.form-textarea{resize:vertical;min-height:100px}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.modal-overlay{position:fixed;inset:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#fff;border-radius:12px;max-width:700px;width:100%;max-height:80vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;padding:2rem}.modal-title{margin:0 0 1rem;color:#2e4057;font-size:1.5rem;display:flex;align-items:center;gap:.5rem}.modal-warning{color:#6b7280;margin:0 0 1.5rem;font-size:1rem}.changes-list{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:1.5rem;margin-bottom:1.5rem;max-height:400px;overflow-y:auto}.change-item{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid #e5e7eb}.change-item:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.change-field{font-weight:600;color:#2e4057;margin-bottom:.75rem;font-size:.9rem;text-transform:capitalize}.change-comparison{display:grid;grid-template-columns:1fr auto 1fr;gap:1rem;align-items:start}.change-before,.change-after{padding:.75rem;border-radius:6px;font-size:.875rem}.change-before{background-color:#fef2f2;border:1px solid #fecaca}.change-before strong{color:#991b1b;display:block;margin-bottom:.25rem}.change-after{background-color:#f0fdf4;border:1px solid #bbf7d0}.change-after strong{color:#166534;display:block;margin-bottom:.25rem}.change-arrow{color:#6b7280;font-size:1.25rem;align-self:center}.modal-actions{display:flex;gap:1rem;justify-content:flex-end}.modal-actions button{min-width:120px}@media(max-width:768px){.modal-content{padding:1.5rem}.change-comparison{grid-template-columns:1fr;gap:.5rem}.change-arrow{display:none}.modal-actions{flex-direction:column-reverse}.modal-actions button{width:100%}}.changelog-search{display:flex;gap:.5rem;align-items:center;margin-bottom:1.5rem}.changelog-search .search-input{flex:1}.changelog-stats{display:flex;gap:2rem;padding:1rem 1.5rem;background-color:#f9fafb;border-radius:8px;margin-bottom:1.5rem}.stat-item{display:flex;flex-direction:column;gap:.25rem}.stat-label{font-size:.75rem;color:#6b7280;font-weight:500}.stat-value{font-size:1.25rem;color:#2e4057;font-weight:700}.changelog-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:2rem}.changelog-entry{background:#fff;border:1px solid #e5e7eb;border-radius:6px;overflow:hidden;transition:box-shadow .2s}.changelog-entry:hover{box-shadow:0 2px 8px #00000014}.changelog-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background-color:#f9fafb;border-bottom:1px solid #e5e7eb}.changelog-sword{display:flex;align-items:center;gap:1rem}.action-type-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .75rem;border-radius:6px;font-size:.75rem;font-weight:600;white-space:nowrap}.action-icon{font-size:.95rem}.action-label{text-transform:uppercase;letter-spacing:.03em}.expand-arrow{color:#6b7280;font-size:.75rem;margin-right:.5rem;transition:transform .2s ease;-webkit-user-select:none;user-select:none}.changelog-entry.expanded .expand-arrow,.changelog-entry.collapsed .expand-arrow{transform:rotate(0)}.changelog-header:hover .expand-arrow{color:#374151}.action-edit .action-type-badge{background-color:#dbeafe;color:#1e40af}.action-media-upload .action-type-badge{background-color:#d1fae5;color:#065f46}.action-media-delete .action-type-badge{background-color:#fee2e2;color:#991b1b}.action-new-sword .action-type-badge{background-color:#fef3c7;color:#92400e}.sword-link{color:#2e4057;text-decoration:none;font-weight:600;font-size:.95rem;transition:color .2s}.sword-link:hover{color:#c4a35a}.change-count{background-color:#e5e7eb;color:#374151;padding:.2rem .6rem;border-radius:9999px;font-size:.7rem;font-weight:600}.changelog-time{display:flex;flex-direction:column;align-items:flex-end;gap:.15rem}.relative-time{color:#6b7280;font-size:.8rem;font-weight:500}.exact-time{color:#9ca3af;font-size:.7rem}.changelog-changes{padding:.75rem 1rem;display:flex;flex-direction:column;gap:.75rem}.change-detail{padding-bottom:.75rem;border-bottom:1px solid #f3f4f6}.change-detail:last-child{padding-bottom:0;border-bottom:none}.change-field-name{font-weight:600;color:#2e4057;margin-bottom:.5rem;font-size:.8rem;text-transform:capitalize}.change-values{display:grid;grid-template-columns:1fr auto 1fr;gap:.75rem;align-items:start}.value-before,.value-after{padding:.5rem;border-radius:4px;font-size:.8rem}.value-before{background-color:#fef2f2;border:1px solid #fecaca}.value-after{background-color:#f0fdf4;border:1px solid #bbf7d0}.value-label{display:block;font-weight:600;margin-bottom:.2rem;font-size:.65rem;text-transform:uppercase;letter-spacing:.05em}.value-before .value-label{color:#991b1b}.value-after .value-label{color:#166534}.value-content{color:#374151;word-break:break-word;line-height:1.4}.change-arrow-small{color:#6b7280;font-size:1rem;align-self:center}@media(max-width:768px){.changelog-stats{flex-direction:column;gap:1rem}.changelog-header{flex-direction:column;align-items:flex-start;gap:1rem}.changelog-time{align-items:flex-start}.change-values{grid-template-columns:1fr;gap:.5rem}.change-arrow-small{display:none}}.user-management{padding:2rem}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.page-header h1{margin:0;font-size:2rem}.create-button{background:#007bff;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.create-button:hover{background:#0056b3;transform:translateY(-1px);box-shadow:0 4px 12px #007bff4d}.users-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:1.5rem;text-align:center}.stat-value{font-size:2.5rem;font-weight:700;color:#333;margin-bottom:.5rem}.stat-label{font-size:.9rem;color:#666;text-transform:uppercase;letter-spacing:.5px}.users-table-container{background:#fff;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden}.users-table{width:100%;border-collapse:collapse}.users-table thead{background:#f5f5f5}.users-table th{padding:1rem;text-align:left;font-weight:600;color:#333;border-bottom:2px solid #e0e0e0}.users-table td{padding:1rem;border-bottom:1px solid #f0f0f0}.users-table tbody tr:hover{background:#f9f9f9}.role-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:600;text-transform:uppercase}.role-admin{background:#ffeef0;color:#d63031}.role-user{background:#e3f2fd;color:#1976d2}.actions-cell{display:flex;gap:.5rem}.action-button{padding:.5rem 1rem;border:none;border-radius:4px;font-size:.85rem;cursor:pointer;transition:all .2s ease}.action-button.toggle-role{background:#fff3cd;color:#856404}.action-button.toggle-role:hover{background:#ffc107;color:#fff}.action-button.delete{background:#f8d7da;color:#721c24}.action-button.delete:hover{background:#dc3545;color:#fff}.create-user-form{display:flex;flex-direction:column;gap:1.25rem}.password-input-group{display:flex;gap:.5rem}.password-input-group input{flex:1}.generate-password-button{padding:.5rem 1rem;background:#28a745;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;white-space:nowrap}.generate-password-button:hover{background:#218838}.modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1rem}.cancel-button{padding:.75rem 1.5rem;background:#6c757d;color:#fff;border:none;border-radius:4px;cursor:pointer}.cancel-button:hover{background:#5a6268}.submit-button{padding:.75rem 1.5rem;background:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:600}.submit-button:hover{background:#0056b3}.success-banner{padding:1rem;background:#d4edda;border:1px solid #c3e6cb;border-radius:6px;color:#155724;margin-bottom:1rem}.error-banner{padding:1rem;background:#f8d7da;border:1px solid #f5c6cb;border-radius:6px;color:#721c24;margin-bottom:1rem}.action-button.edit{background:#e3f2fd;color:#1976d2}.action-button.edit:hover{background:#2196f3;color:#fff}.upload-section{max-width:800px}.file-actions{display:flex;gap:1rem;margin-top:1rem}.csv-format-help{margin-top:2rem;padding:1.5rem;background-color:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.csv-format-help h3{margin:0 0 1rem;color:#2e4057;font-size:1.1rem}.csv-format-help p{margin:0 0 .75rem;color:#6b7280}.csv-format-help .note{margin-top:1rem;padding:.75rem;background-color:#fef3c7;border-radius:4px;font-size:.875rem}.field-list{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0}.field-tag{background-color:#e5e7eb;color:#374151;padding:.25rem .75rem;border-radius:4px;font-size:.8rem;font-family:monospace}.preview-section{max-width:1000px}.preview-summary{margin-bottom:2rem}.preview-summary h3{margin:0 0 1rem;color:#2e4057}.summary-stats{display:flex;gap:1.5rem;flex-wrap:wrap}.summary-stats .stat-item{display:flex;flex-direction:column;padding:1rem 1.5rem;background-color:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.summary-stats .stat-item.success{background-color:#f0fdf4;border-color:#bbf7d0}.summary-stats .stat-item.warning{background-color:#fffbeb;border-color:#fde68a}.stat-number{font-size:1.75rem;font-weight:700;color:#2e4057}.summary-stats .stat-item.success .stat-number{color:#166534}.summary-stats .stat-item.warning .stat-number{color:#92400e}.duplicates-section{padding:1.5rem;background-color:#fffbeb;border:1px solid #fde68a;border-radius:8px;margin-bottom:2rem}.duplicates-section .section-header{margin-bottom:1rem}.duplicates-section h3{margin:0 0 .5rem;color:#92400e}.duplicates-section p{margin:0;color:#78716c;font-size:.9rem}.new-records-preview{margin-bottom:2rem}.new-records-preview h3{margin:0 0 1rem;color:#2e4057}.preview-table-container{overflow-x:auto;border:1px solid #e5e7eb;border-radius:8px}.preview-table{width:100%;border-collapse:collapse}.preview-table th,.preview-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid #e5e7eb}.preview-table th{background-color:#f9fafb;font-weight:600;color:#374151;font-size:.875rem}.preview-table tbody tr:hover{background-color:#f9fafb}.preview-table tbody tr:last-child td{border-bottom:none}.more-records{margin:1rem 0 0;color:#6b7280;font-style:italic;text-align:center}.import-actions{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;background-color:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.import-summary{font-size:1.1rem;color:#2e4057}.includes-duplicates{margin-left:.5rem;color:#92400e;font-size:.9rem}.action-buttons{display:flex;gap:1rem}.duplicate-review-container{max-width:1200px}.duplicate-comparison{display:grid;grid-template-columns:1fr auto 1fr;gap:1.5rem;margin-bottom:2rem}.comparison-side{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.comparison-side h3{margin:0;padding:1rem;background-color:#f9fafb;border-bottom:1px solid #e5e7eb;font-size:1rem}.csv-side h3{background-color:#f0fdf4;color:#166534}.existing-side h3{background-color:#fef2f2;color:#991b1b}.comparison-fields{padding:1rem;max-height:500px;overflow-y:auto}.comparison-field{display:flex;flex-direction:column;padding:.5rem 0;border-bottom:1px solid #f3f4f6}.comparison-field:last-child{border-bottom:none}.comparison-field label{font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;margin-bottom:.25rem}.comparison-field span{color:#374151;font-size:.9rem}.comparison-field span.value-different{background-color:#fef3c7;padding:.25rem .5rem;border-radius:4px}.comparison-divider{display:flex;align-items:center;justify-content:center}.comparison-divider span{font-size:1.25rem;font-weight:600;color:#9ca3af}.duplicate-actions{margin-bottom:2rem}.action-buttons-main{display:flex;gap:1rem;justify-content:center;margin-bottom:1.5rem}.action-buttons-main button{min-width:200px;padding:1rem 2rem;font-size:1rem}.action-buttons-bulk{display:flex;gap:1rem;justify-content:center;padding-top:1rem;border-top:1px solid #e5e7eb}.review-progress{text-align:center}.progress-bar{height:8px;background-color:#e5e7eb;border-radius:4px;overflow:hidden;margin-bottom:.5rem}.progress-fill{height:100%;background-color:#2e4057;transition:width .3s ease}.progress-text{color:#6b7280;font-size:.875rem}.import-results{max-width:900px}.results-summary{display:flex;gap:2rem;margin-bottom:2rem}.result-stat{display:flex;flex-direction:column;padding:1.5rem 2rem;border-radius:8px;text-align:center}.result-stat.success{background-color:#f0fdf4;border:1px solid #bbf7d0}.result-stat.error{background-color:#fef2f2;border:1px solid #fecaca}.result-stat .stat-number{font-size:2.5rem;font-weight:700}.result-stat.success .stat-number{color:#166534}.result-stat.error .stat-number{color:#991b1b}.result-stat .stat-label{color:#6b7280;font-size:.9rem;margin-top:.25rem}.new-swords-list{margin-bottom:2rem}.new-swords-list h3{margin:0 0 1rem;color:#2e4057}.results-table{width:100%;border-collapse:collapse;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.results-table th,.results-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid #e5e7eb}.results-table th{background-color:#f9fafb;font-weight:600;color:#374151}.results-table tbody tr:hover{background-color:#f9fafb}.error-details{margin-bottom:2rem;padding:1.5rem;background-color:#fef2f2;border:1px solid #fecaca;border-radius:8px}.error-details h3{margin:0 0 1rem;color:#991b1b}.error-item{padding:.5rem 0;color:#374151;font-size:.9rem}.error-message{padding:1rem;background-color:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#991b1b;margin-bottom:1.5rem}.form-section{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid #e5e7eb}.form-section:last-of-type{border-bottom:none;margin-bottom:0}.form-section h3{margin:0 0 1.5rem;color:#2e4057;font-size:1.25rem}.form-field{margin-bottom:1.25rem}.form-field label{display:block;margin-bottom:.5rem;font-weight:500;color:#374151}.form-field input,.form-field select,.form-field textarea{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:6px;font-size:1rem;font-family:inherit}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:#2e4057;box-shadow:0 0 0 3px #2e40571a}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem;padding-top:2rem;border-top:1px solid #e5e7eb}@media(max-width:768px){.duplicate-comparison{grid-template-columns:1fr}.comparison-divider{padding:1rem 0}.action-buttons-main{flex-direction:column}.action-buttons-main button{width:100%;min-width:auto}.action-buttons-bulk{flex-direction:column}.import-actions{flex-direction:column;gap:1rem;text-align:center}.action-buttons{width:100%;flex-direction:column}.summary-stats,.results-summary{flex-direction:column}}.dark-mode .admin-container{background-color:var(--color-background-subtle)}.dark-mode .admin-header{background:linear-gradient(135deg,#0a0a0a,#1a1a1a)}.dark-mode .admin-page{background:var(--color-background-elevated);color:var(--color-text-primary)}.dark-mode .page-header{border-bottom-color:var(--color-border)}.dark-mode .page-header h2{color:var(--color-text-primary)}.dark-mode .subtitle{color:var(--color-text-secondary)}.dark-mode .form-input,.dark-mode .form-textarea,.dark-mode select,.dark-mode .form-field input,.dark-mode .form-field select,.dark-mode .form-field textarea{background-color:var(--color-background);border-color:var(--color-border);color:var(--color-text-primary)}.dark-mode .form-input:focus,.dark-mode .form-textarea:focus,.dark-mode select:focus,.dark-mode .form-field input:focus,.dark-mode .form-field select:focus,.dark-mode .form-field textarea:focus{border-color:var(--color-interactive-primary);box-shadow:0 0 0 3px #6a6f7633}.dark-mode .btn-primary{background-color:var(--color-primary)}.dark-mode .btn-primary:hover{background-color:var(--color-primary-light)}.dark-mode .btn-secondary{background-color:var(--color-background-elevated-2);color:var(--color-text-primary)}.dark-mode .btn-secondary:hover{background-color:var(--color-border)}.dark-mode .results-info{color:var(--color-text-secondary)}.dark-mode .sword-card{background:var(--color-background-elevated);border-color:var(--color-border)}.dark-mode .sword-card:hover{box-shadow:var(--shadow-lg)}.dark-mode .sword-smith{color:var(--color-text-primary)}.dark-mode .sword-meta,.dark-mode .sword-measurements{color:var(--color-text-secondary)}.dark-mode .measurement-label{color:var(--color-text-tertiary)}.dark-mode .sword-auth{color:var(--color-highlight)}.dark-mode .sword-card-footer{border-top-color:var(--color-border)}.dark-mode .page-info,.dark-mode .loading{color:var(--color-text-secondary)}.dark-mode .error{background-color:#b14a3d26;border-color:var(--color-error);color:var(--color-error-light)}.dark-mode .detail-item{background-color:var(--color-background-elevated)}.dark-mode .detail-item label{color:var(--color-text-tertiary)}.dark-mode .detail-item span{color:var(--color-text-primary)}.dark-mode .detail-section h3{color:var(--color-text-primary);border-bottom-color:var(--color-border)}.dark-mode .media-item{background:var(--color-background-elevated);border-color:var(--color-border)}.dark-mode .media-pdf{background-color:var(--color-background)}.dark-mode .media-category{color:var(--color-primary-light)}.dark-mode .media-caption{color:var(--color-text-secondary)}.dark-mode .tag{background-color:var(--color-background-elevated-2);color:var(--color-text-primary)}.dark-mode .media-upload{background-color:var(--color-background-elevated)}.dark-mode .dropzone{background-color:var(--color-background);border-color:var(--color-border-strong)}.dark-mode .dropzone:hover:not(.dropzone-disabled){border-color:var(--color-primary);background-color:var(--color-background-elevated)}.dark-mode .dropzone-active{border-color:var(--color-success);background-color:#5d854926}.dark-mode .upload-form{background-color:var(--color-background)}.dark-mode .modal-overlay{background-color:#000c}.dark-mode .modal-content{background:var(--color-background-elevated)}.dark-mode .modal-title{color:var(--color-text-primary)}.dark-mode .modal-warning{color:var(--color-text-secondary)}.dark-mode .changes-list{background-color:var(--color-background);border-color:var(--color-border)}.dark-mode .change-item{border-bottom-color:var(--color-border)}.dark-mode .change-field{color:var(--color-primary-light)}.dark-mode .change-before{background-color:#b14a3d26;border-color:var(--color-error)}.dark-mode .change-before strong{color:var(--color-error-light)}.dark-mode .change-after{background-color:#5d854926;border-color:var(--color-success)}.dark-mode .change-after strong{color:var(--color-success-light)}.dark-mode .change-arrow{color:var(--color-text-tertiary)}.dark-mode .changelog-entry{background:var(--color-background-elevated);border-color:var(--color-border)}.dark-mode .changelog-header{background-color:var(--color-background);border-bottom-color:var(--color-border)}.dark-mode .sword-link{color:var(--color-primary-light)}.dark-mode .sword-link:hover{color:var(--color-highlight)}.dark-mode .change-count{background-color:var(--color-background-elevated-2);color:var(--color-text-primary)}.dark-mode .relative-time{color:var(--color-text-secondary)}.dark-mode .exact-time{color:var(--color-text-tertiary)}.dark-mode .change-detail{border-bottom-color:var(--color-background-elevated)}.dark-mode .change-field-name{color:var(--color-primary-light)}.dark-mode .value-before{background-color:#b14a3d26;border-color:var(--color-error)}.dark-mode .value-after{background-color:#5d854926;border-color:var(--color-success)}.dark-mode .value-content{color:var(--color-text-primary)}.dark-mode .stat-card{background:var(--color-background-elevated);border-color:var(--color-border)}.dark-mode .stat-value{color:var(--color-text-primary)}.dark-mode .stat-label{color:var(--color-text-secondary)}.dark-mode .users-table-container{background:var(--color-background-elevated);border-color:var(--color-border)}.dark-mode .users-table thead{background:var(--color-background)}.dark-mode .users-table th{color:var(--color-text-primary);border-bottom-color:var(--color-border)}.dark-mode .users-table td{border-bottom-color:var(--color-background-elevated);color:var(--color-text-primary)}.dark-mode .users-table tbody tr:hover{background:var(--color-background)}.dark-mode .csv-format-help{background-color:var(--color-background-elevated);border-color:var(--color-border)}.dark-mode .csv-format-help h3{color:var(--color-text-primary)}.dark-mode .csv-format-help p{color:var(--color-text-secondary)}.dark-mode .csv-format-help .note{background-color:#e5a33d26}.dark-mode .field-tag{background-color:var(--color-background-elevated-2);color:var(--color-text-primary)}.dark-mode .preview-table-container{border-color:var(--color-border)}.dark-mode .preview-table th{background-color:var(--color-background);color:var(--color-text-primary)}.dark-mode .preview-table td{border-bottom-color:var(--color-border);color:var(--color-text-primary)}.dark-mode .preview-table tbody tr:hover{background-color:var(--color-background)}.dark-mode .import-actions{background-color:var(--color-background-elevated);border-color:var(--color-border)}.dark-mode .import-summary{color:var(--color-text-primary)}.dark-mode .form-section{border-bottom-color:var(--color-border)}.dark-mode .form-section h3{color:var(--color-text-primary)}.dark-mode .form-field label{color:var(--color-text-secondary)}.dark-mode .form-actions{border-top-color:var(--color-border)}.autocomplete-dropdown{position:absolute;top:calc(100% + 4px);left:-.5rem;right:-.5rem;background:var(--color-background-elevated, white);border:1px solid var(--color-border, #ddd6cf);border-radius:var(--radius-md, .5rem);box-shadow:var(--shadow-lg, 0 8px 16px rgba(0, 0, 0, .1));z-index:100;max-height:320px;overflow-y:auto}.dark-mode .autocomplete-dropdown{background:var(--color-background-elevated);border-color:var(--color-border);box-shadow:var(--shadow-lg)}.autocomplete-group{border-bottom:1px solid var(--color-border-subtle, #eeebe7)}.autocomplete-group:last-child{border-bottom:none}.dark-mode .autocomplete-group{border-bottom-color:var(--color-border-subtle)}.autocomplete-category{padding:.5rem .75rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-tertiary, #8a7660);background-color:var(--color-background-subtle, #faf9f7)}.dark-mode .autocomplete-category{color:var(--color-text-tertiary);background-color:var(--color-background)}.autocomplete-suggestion{padding:.6rem .75rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background-color .1s}.autocomplete-suggestion:hover,.autocomplete-suggestion.highlighted{background-color:var(--color-background-elevated-2, #f7f5f3)}.dark-mode .autocomplete-suggestion:hover,.dark-mode .autocomplete-suggestion.highlighted{background-color:var(--color-background-elevated-2)}.autocomplete-suggestion-text{color:var(--color-text-primary, #362304);font-size:.9rem}.dark-mode .autocomplete-suggestion-text{color:var(--color-text-primary)}.autocomplete-suggestion-count{color:var(--color-text-tertiary, #8a7660);font-size:.8rem;font-weight:500}.dark-mode .autocomplete-suggestion-count{color:var(--color-text-tertiary)}.autocomplete-highlight{background-color:var(--color-highlight-light, #ffc66b);padding:0 1px;border-radius:2px}.dark-mode .autocomplete-highlight{background-color:var(--color-accent-medium);color:var(--color-text-primary)}.autocomplete-no-results{padding:1rem;text-align:center;color:var(--color-text-secondary, #6b5a3d)}.dark-mode .autocomplete-no-results{color:var(--color-text-secondary)}.autocomplete-no-results-hint{font-size:.8rem;margin-top:.25rem;color:var(--color-text-tertiary, #8a7660)}.dark-mode .autocomplete-no-results-hint{color:var(--color-text-tertiary)}.LibraryApp{min-height:100vh;background-color:var(--color-background-subtle);font-family:var(--font-body)}.library-content{max-width:var(--container-2xl);margin:0 auto;padding:var(--space-lg)}.library-controls{margin-bottom:var(--space-lg)}.library-results-info{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-md);padding:var(--space-sm) 0}.library-loading,.library-auth-required{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:var(--space-lg);color:var(--color-text-secondary)}.library-auth-required h2{color:var(--color-text-primary);margin:0}.library-auth-required p{margin:0}.library-gallery{margin-top:var(--space-lg)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-lg)}.library-gallery-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-4xl) var(--space-lg);color:var(--color-text-tertiary);text-align:center}.library-gallery-empty .empty-icon{width:64px;height:64px;opacity:.5;margin-bottom:var(--space-md)}.library-gallery-empty h3{margin:0 0 var(--space-sm);color:var(--color-text-secondary)}.library-gallery-empty p{margin:0}.library-sword-card{background:var(--color-background-elevated);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;transition:transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out);border:1px solid var(--color-border-subtle)}.library-sword-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.library-sword-card:focus{outline:2px solid var(--color-primary);outline-offset:2px}.card-thumbnail{aspect-ratio:4/3;overflow:hidden;background:var(--color-background-subtle)}.card-thumbnail img{width:100%;height:100%;object-fit:cover;transition:transform var(--duration-normal) var(--ease-out)}.library-sword-card:hover .card-thumbnail img{transform:scale(1.05)}.card-no-image{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);color:var(--color-text-tertiary)}.card-no-image .no-image-icon{width:48px;height:48px;opacity:.4}.card-pdf-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);color:var(--color-text-secondary);background:linear-gradient(135deg,var(--color-background-subtle),var(--color-background-elevated))}.card-pdf-placeholder .pdf-icon{width:56px;height:56px;opacity:.7;color:var(--color-primary)}.card-pdf-placeholder span{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);opacity:.8}.card-info{padding:var(--space-md)}.card-smith{font-family:var(--font-display);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-type{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-xs)}.card-mei{font-size:var(--font-size-xs);color:var(--color-text-tertiary);font-family:var(--font-japanese);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gallery-pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-xs);margin-top:var(--space-xl);padding:var(--space-md);flex-wrap:wrap}.pagination-btn{min-width:36px;height:36px;padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background-elevated);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.pagination-btn:hover:not(:disabled){background:var(--color-background-elevated-2);border-color:var(--color-border-strong);color:var(--color-text-primary)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.pagination-info{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin-left:var(--space-md)}.library-lightbox-overlay{position:fixed;inset:0;background:#000000f2;z-index:var(--z-index-modal);display:flex;align-items:center;justify-content:center}.library-lightbox{width:95vw;height:95vh;max-width:1800px;display:flex;flex-direction:column;position:relative}.lightbox-close{position:absolute;top:var(--space-md);right:var(--space-md);z-index:10;width:44px;height:44px;border:none;border-radius:var(--radius-full);background:#ffffff26;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--duration-fast) var(--ease-out)}.lightbox-close:hover{background:#ffffff40}.lightbox-close svg{width:24px;height:24px}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:10;width:56px;height:56px;border:none;border-radius:var(--radius-full);background:#ffffff26;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--duration-fast) var(--ease-out)}.lightbox-nav:hover{background:#ffffff4d}.lightbox-nav svg{width:32px;height:32px}.lightbox-nav-prev{left:var(--space-md)}.lightbox-nav-next{right:var(--space-md)}.lightbox-content{flex:1;display:flex;gap:var(--space-lg);min-height:0;padding:var(--space-lg);padding-top:var(--space-3xl)}.lightbox-main{flex:0 0 70%;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;min-width:0}.lightbox-main-image{max-width:100%;max-height:calc(95vh - 200px);object-fit:contain;border-radius:var(--radius-sm)}.lightbox-pdf-container{width:100%;height:calc(95vh - 200px);min-height:500px;display:flex;flex-direction:column}.lightbox-pdf{flex:1;width:100%;min-height:0;border:none;border-radius:var(--radius-sm);background:#fff}.lightbox-pdf-open{margin-top:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);align-self:center;transition:background var(--duration-fast) var(--ease-out)}.lightbox-pdf-open:hover{background:var(--color-primary-light)}.lightbox-caption{margin-top:var(--space-md);font-size:var(--font-size-sm);color:#fffc;text-align:center;max-width:100%}.lightbox-category{color:#fff9}.lightbox-details{flex:0 0 30%;min-width:300px;max-width:400px;overflow-y:auto;padding:var(--space-lg);background:var(--color-background-elevated);border-radius:var(--radius-lg);color:var(--color-text-primary)}.lightbox-details-toggle{display:none}.lightbox-details-header{margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:1px solid var(--color-border)}.lightbox-smith{font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);margin:0 0 var(--space-xs);color:var(--color-text-primary)}.lightbox-type{font-size:var(--font-size-base);color:var(--color-text-secondary)}.lightbox-meito{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-lg);padding:var(--space-sm) var(--space-md);background:linear-gradient(135deg,var(--color-highlight-dark),var(--color-highlight));border-radius:var(--radius-md);color:var(--color-neutral-900)}.lightbox-meito .meito-badge{font-weight:var(--font-weight-bold)}.lightbox-section{margin-bottom:var(--space-lg)}.lightbox-section h3{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);margin:0 0 var(--space-sm)}.lightbox-detail-row{display:flex;gap:var(--space-sm);font-size:var(--font-size-sm);margin-bottom:var(--space-xs)}.lightbox-detail-row .detail-label{color:var(--color-text-tertiary);min-width:120px;flex-shrink:0}.lightbox-detail-row .detail-value{color:var(--color-text-primary);word-break:break-word}.lightbox-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-relaxed);margin:0}.lightbox-counter{margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--color-border);font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.lightbox-counter .media-counter{opacity:.7}.lightbox-keyboard-hint{margin-top:var(--space-md);display:flex;flex-direction:column;gap:var(--space-xs);font-size:var(--font-size-xs);color:var(--color-text-tertiary);opacity:.7}.thumbnail-strip{flex-shrink:0;padding:var(--space-md);background:#00000080;border-radius:var(--radius-md);margin:0 var(--space-lg) var(--space-md)}.thumbnail-strip-inner{display:flex;gap:var(--space-sm);overflow-x:auto;padding-bottom:var(--space-xs);scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) transparent}.thumbnail-strip-inner::-webkit-scrollbar{height:6px}.thumbnail-strip-inner::-webkit-scrollbar-track{background:transparent}.thumbnail-strip-inner::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:3px}.thumbnail-strip-item{flex-shrink:0;width:80px;height:60px;border:2px solid transparent;border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;padding:0;background:#ffffff1a;transition:border-color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.thumbnail-strip-item:hover{transform:scale(1.05)}.thumbnail-strip-item.active{border-color:var(--color-highlight)}.thumbnail-strip-item img{width:100%;height:100%;object-fit:cover}.thumbnail-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#ffffff80;font-size:var(--font-size-sm)}.thumbnail-pdf{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#ffffff26}.thumbnail-pdf svg{width:32px;height:32px;color:#ffffffb3}@media(max-width:1024px){.lightbox-content{padding:var(--space-md);padding-top:var(--space-2xl)}.lightbox-main{flex:1}.lightbox-main-image{max-height:calc(95vh - 250px)}.lightbox-pdf-container{height:calc(95vh - 250px);min-height:300px}.lightbox-details{min-width:280px;max-width:320px}.lightbox-nav{width:44px;height:44px}.lightbox-nav svg{width:24px;height:24px}.thumbnail-strip{margin:0 var(--space-md) var(--space-sm)}}@media(max-width:768px){.library-header-content{flex-direction:column;gap:var(--space-md);text-align:center}.library-header-text{flex-direction:column;gap:var(--space-sm)}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-md)}}@media(max-width:480px){.gallery-grid{grid-template-columns:1fr}.card-thumbnail{aspect-ratio:16/10}}.lightbox-main-image.clickable{cursor:zoom-in;transition:transform var(--duration-fast) var(--ease-out)}.lightbox-main-image.clickable:hover{transform:scale(1.02)}.fullsize-overlay{position:fixed;inset:0;z-index:2000;background:#000000f2;display:flex;align-items:center;justify-content:center;flex-direction:column;cursor:zoom-out;padding:var(--space-xl)}.fullsize-close{position:absolute;top:var(--space-lg);right:var(--space-lg);width:48px;height:48px;border:none;border-radius:var(--radius-full);background:#ffffff26;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--duration-fast) var(--ease-out);z-index:10}.fullsize-close:hover{background:#ffffff4d}.fullsize-close svg{width:28px;height:28px}.fullsize-image{max-width:95vw;max-height:90vh;object-fit:contain;cursor:default;border-radius:var(--radius-sm);box-shadow:0 8px 32px #00000080}.fullsize-hint{position:absolute;bottom:var(--space-lg);left:50%;transform:translate(-50%);padding:var(--space-sm) var(--space-lg);background:#000000b3;border-radius:var(--radius-md);color:#ffffffb3;font-size:var(--font-size-sm);pointer-events:none}.library-lightbox-overlay.mobile{background:var(--color-background-elevated)}.library-lightbox-mobile{width:100%;height:100%;display:flex;flex-direction:column;background:var(--color-background-elevated)}.mobile-lightbox-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background:var(--color-background-subtle);border-bottom:1px solid var(--color-border);flex-shrink:0}.mobile-lightbox-header .lightbox-close{position:static;width:36px;height:36px;background:transparent;color:var(--color-text-primary)}.mobile-lightbox-header .lightbox-close:hover{background:var(--color-background-elevated-2)}.mobile-lightbox-title{display:flex;flex-direction:column;align-items:center;gap:2px;flex:1;min-width:0;padding:0 var(--space-sm)}.mobile-smith{font-family:var(--font-display);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.mobile-type{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.mobile-lightbox-counter{font-size:var(--font-size-sm);color:var(--color-text-tertiary);font-weight:var(--font-weight-medium);white-space:nowrap}.mobile-sword-nav{display:flex;justify-content:space-between;padding:var(--space-xs) var(--space-md);background:var(--color-background-subtle);border-bottom:1px solid var(--color-border);flex-shrink:0}.mobile-nav-btn{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);background:var(--color-background-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.mobile-nav-btn:disabled{opacity:.4;cursor:not-allowed}.mobile-nav-btn:not(:disabled):hover{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.mobile-nav-btn svg{width:18px;height:18px}.mobile-scroll-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.mobile-media-list{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md)}.mobile-media-item{display:flex;flex-direction:column;background:var(--color-background-subtle);border-radius:var(--radius-lg);overflow:hidden}.mobile-media-image{width:100%;height:auto;max-height:70vh;object-fit:contain;background:var(--color-background);cursor:zoom-in}.mobile-pdf-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-3xl);background:linear-gradient(135deg,var(--color-background-subtle),var(--color-background-elevated));color:var(--color-primary);cursor:pointer}.mobile-pdf-placeholder svg{width:48px;height:48px}.mobile-pdf-placeholder span{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.mobile-media-caption{padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:center;background:var(--color-background-elevated)}.mobile-category{color:var(--color-text-tertiary)}.mobile-details-section{padding:var(--space-lg) var(--space-md);background:var(--color-background-elevated);border-top:1px solid var(--color-border);margin-top:var(--space-md)}.mobile-section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--color-border)}.mobile-details-grid{display:grid;gap:var(--space-xs)}.mobile-details-grid .lightbox-detail-row{display:flex;gap:var(--space-sm);padding:var(--space-xs) 0}.mobile-details-grid .detail-label{min-width:100px;flex-shrink:0;color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.mobile-details-grid .detail-value{color:var(--color-text-primary);font-size:var(--font-size-sm)}.mobile-description{margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--color-border)}.mobile-description h4{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);margin:0 0 var(--space-sm)}.mobile-description p{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-relaxed);margin:0}.ProvincesApp{min-height:100vh;display:flex;flex-direction:column;background:#aadaff}.dark-mode .ProvincesApp{background:#1a3a5c}.provinces-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-3xl);color:var(--text-secondary)}.provinces-loading .loading-spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}.provinces-error{padding:var(--space-xl);text-align:center;color:var(--color-error)}.provinces-map-fullscreen{flex:1;padding:var(--space-lg);display:flex;align-items:stretch}.provinces-map-fullscreen .japan-map-container{flex:1}.provinces-content{flex:1;display:grid;grid-template-columns:1fr 320px;gap:var(--space-lg);padding:var(--space-lg);max-width:1600px;margin:0 auto;width:100%;box-sizing:border-box}.provinces-main{display:grid;grid-template-columns:1fr 380px;gap:var(--space-lg);background:var(--bg-primary);border-radius:var(--radius-lg);border:1px solid var(--border-color);overflow:hidden}.provinces-map-section{padding:var(--space-lg);display:flex;flex-direction:column;align-items:center;justify-content:center}.provinces-map-section .japan-province-map-container{width:100%;max-width:700px}.provinces-detail-panel{background:var(--bg-secondary);border-left:1px solid var(--border-color);padding:var(--space-lg);overflow-y:auto;max-height:calc(100vh - 200px)}.province-detail-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:1px solid var(--border-color)}.province-detail-header h2{margin:0;display:flex;flex-direction:column;gap:var(--space-xs)}.province-name-jp{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary)}.province-name-en{font-size:var(--font-size-md);font-weight:var(--font-weight-normal);color:var(--text-secondary)}.province-close-btn{background:none;border:none;padding:var(--space-xs);cursor:pointer;color:var(--text-tertiary);border-radius:var(--radius-sm);transition:all var(--duration-fast)}.province-close-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.province-close-btn svg{width:20px;height:20px}.province-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md);margin-bottom:var(--space-lg)}.province-stat{background:var(--bg-primary);padding:var(--space-md);border-radius:var(--radius-md);text-align:center;border:1px solid var(--border-color)}.stat-value{display:block;font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--accent-primary)}.stat-label{display:block;font-size:var(--font-size-xs);color:var(--text-tertiary);margin-top:var(--space-xs)}.province-types{margin-bottom:var(--space-lg)}.province-types h3{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-secondary);margin:0 0 var(--space-sm) 0;text-transform:uppercase;letter-spacing:.05em}.type-bars{display:flex;flex-direction:column;gap:var(--space-xs)}.type-bar{display:grid;grid-template-columns:80px 1fr 40px;align-items:center;gap:var(--space-sm);font-size:var(--font-size-sm)}.type-name{color:var(--text-primary);font-weight:var(--font-weight-medium)}.type-bar-fill{height:8px;background:var(--accent-primary);border-radius:var(--radius-full);min-width:4px}.type-count{color:var(--text-tertiary);text-align:right;font-size:var(--font-size-xs)}.province-swords-preview{margin-bottom:var(--space-lg)}.province-swords-preview h3{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-secondary);margin:0 0 var(--space-sm) 0;text-transform:uppercase;letter-spacing:.05em}.swords-preview-list{display:flex;flex-direction:column;gap:var(--space-xs)}.sword-preview-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm);background:var(--bg-primary);border-radius:var(--radius-sm);border:1px solid var(--border-color);font-size:var(--font-size-sm)}.sword-smith{font-weight:var(--font-weight-medium);color:var(--text-primary)}.sword-type{color:var(--text-secondary)}.sword-auth{margin-left:auto;font-size:var(--font-size-xs);color:var(--accent-primary);background:rgba(var(--accent-primary-rgb),.1);padding:2px 6px;border-radius:var(--radius-sm)}.view-in-database-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md);background:var(--accent-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.view-in-database-btn:hover{background:var(--accent-primary-hover);transform:translateY(-1px)}.view-in-database-btn svg{width:18px;height:18px}.province-no-data{text-align:center;padding:var(--space-xl);color:var(--text-tertiary)}.province-select-prompt{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-2xl);height:100%;min-height:300px}.province-select-prompt .map-icon{width:64px;height:64px;color:var(--text-tertiary);opacity:.5;margin-bottom:var(--space-md)}.province-select-prompt h3{margin:0 0 var(--space-sm) 0;font-size:var(--font-size-lg);color:var(--text-primary)}.province-select-prompt p{margin:0;font-size:var(--font-size-sm);color:var(--text-tertiary);max-width:250px}.provinces-sidebar{display:flex;flex-direction:column;gap:var(--space-lg)}.provinces-sidebar h3{margin:0 0 var(--space-md) 0;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.top-provinces-list{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden}.top-province-item{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);background:none;border:none;border-bottom:1px solid var(--border-color);cursor:pointer;transition:background var(--duration-fast);text-align:left}.top-province-item:last-child{border-bottom:none}.top-province-item:hover{background:var(--bg-hover)}.top-province-item.selected{background:rgba(var(--accent-primary-rgb),.1)}.province-rank{font-size:var(--font-size-xs);color:var(--text-tertiary);width:24px}.top-province-item .province-name{flex:1;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-primary)}.province-count{font-size:var(--font-size-sm);color:var(--accent-primary);font-weight:var(--font-weight-semibold)}.provinces-summary{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-lg)}.provinces-summary h3{margin-bottom:var(--space-md)}.summary-stats{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.summary-stat{text-align:center}.summary-value{display:block;font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--text-primary)}.summary-label{display:block;font-size:var(--font-size-xs);color:var(--text-tertiary);margin-top:var(--space-xs)}@media(max-width:1200px){.provinces-content{grid-template-columns:1fr}.provinces-sidebar{flex-direction:row;flex-wrap:wrap}.provinces-sidebar>*{flex:1;min-width:280px}}@media(max-width:900px){.provinces-main{grid-template-columns:1fr}.provinces-detail-panel{border-left:none;border-top:1px solid var(--border-color);max-height:none}}@media(max-width:600px){.provinces-header-content{flex-direction:column;align-items:flex-start;gap:var(--space-md)}.provinces-header-actions{width:100%;justify-content:space-between}.provinces-content,.provinces-map-section{padding:var(--space-md)}.province-stats{grid-template-columns:1fr}.provinces-sidebar{flex-direction:column}}.ancient-map-container{position:relative;width:100%;height:100%;min-height:500px;background:transparent;border-radius:var(--radius-md);overflow:hidden}.ancient-map-loading{display:flex;align-items:center;justify-content:center;height:100%;min-height:400px;color:var(--text-secondary);font-size:var(--font-size-md)}.ancient-map-svg{width:100%;height:100%;cursor:grab;-webkit-user-select:none;user-select:none}.ancient-map-svg.dragging{cursor:grabbing}.ancient-map-svg .ocean-bg{pointer-events:none}.dark-mode .ancient-map-svg .ocean-bg{fill:#1a3a5c}.ancient-map-svg .ancient-province{stroke:#000;stroke-width:2;cursor:pointer;transition:filter .15s ease,stroke-width .15s ease}.ancient-map-svg .ancient-province:hover{filter:brightness(1.1);stroke-width:3}.ancient-map-svg .ancient-province.selected{stroke:#1d4ed8;stroke-width:4;filter:brightness(1.15)}.province-label{fill:#1a1a1a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-weight:500;text-anchor:middle;dominant-baseline:middle;pointer-events:none;text-shadow:-1px -1px 0 rgba(255,255,255,.8),1px -1px 0 rgba(255,255,255,.8),-1px 1px 0 rgba(255,255,255,.8),1px 1px 0 rgba(255,255,255,.8)}.dark-mode .province-label{fill:#f0f0f0;text-shadow:-1px -1px 0 rgba(0,0,0,.7),1px -1px 0 rgba(0,0,0,.7),-1px 1px 0 rgba(0,0,0,.7),1px 1px 0 rgba(0,0,0,.7)}.dark-mode .ancient-map-svg .ancient-province{stroke:#1a1a1a}.ancient-map-controls{position:absolute;top:var(--space-md);right:var(--space-md);display:flex;flex-direction:column;gap:var(--space-xs);z-index:10}.ancient-map-container .map-control-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--bg-primary, white);border:1px solid var(--border-color, #ccc);border-radius:var(--radius-md, 6px);cursor:pointer;color:var(--text-primary, #333);transition:all .15s ease;box-shadow:0 2px 4px #0000001a}.ancient-map-container .map-control-btn:hover{background:var(--bg-hover, #f5f5f5)}.ancient-map-container .map-control-btn:active{transform:scale(.95)}.ancient-map-container .map-control-btn svg{width:20px;height:20px}.ancient-map-legend{position:absolute;top:var(--space-md);left:var(--space-md);background:#fffffff2;border-radius:var(--radius-md, 6px);padding:var(--space-sm, 8px) var(--space-md, 12px);box-shadow:0 2px 8px #00000026;z-index:10;font-size:11px;width:215px}.dark-mode .ancient-map-legend{background:#1e293bf2;color:#e2e8f0}.legend-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:var(--space-xs, 4px);position:relative}.ancient-map-legend h4{margin:0;font-size:12px;font-weight:600;color:var(--text-primary, #333);white-space:nowrap}.dark-mode .ancient-map-legend h4{color:#f1f5f9}.language-toggle{position:absolute;top:-4px;right:-8px;background:transparent;border:none;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center}.lang-toggle-track{width:40px;height:22px;background:#d1d5db;border-radius:11px;position:relative;transition:background-color .2s ease}.dark-mode .lang-toggle-track{background:#4b5563}.language-toggle.jp .lang-toggle-track{background:#bc002d}.language-toggle:hover .lang-toggle-track{background:#9ca3af}.dark-mode .language-toggle:hover .lang-toggle-track{background:#6b7280}.language-toggle.jp:hover .lang-toggle-track{background:#d4003a}.lang-toggle-thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:transform .2s ease;box-shadow:0 1px 3px #0000004d;overflow:hidden}.language-toggle.jp .lang-toggle-thumb{transform:translate(18px)}.lang-toggle-thumb .flag-icon{width:18px;height:18px;border-radius:50%}.legend-item{display:flex;align-items:center;gap:6px;padding:2px 0}.legend-color{width:14px;height:14px;border-radius:2px;border:1px solid rgba(0,0,0,.2)}.legend-label{color:var(--text-secondary, #666)}.dark-mode .legend-label{color:#cbd5e1}.ancient-map-tooltip{position:absolute;bottom:60px;left:50%;transform:translate(-50%);background:#000000d9;color:#fff;padding:var(--space-sm, 8px) var(--space-md, 12px);border-radius:var(--radius-md, 6px);pointer-events:none;z-index:20;text-align:center;min-width:120px}.tooltip-name-jp{font-size:16px;font-weight:600;margin-bottom:2px}.tooltip-name-en{font-size:14px;color:#ddd}.tooltip-circuit{font-size:11px;color:#aaa;margin-top:4px}.province-popup{position:absolute;z-index:30;background:#fff;border-radius:var(--radius-lg, 8px);box-shadow:0 4px 20px #00000040;min-width:200px;max-width:280px;overflow:hidden;animation:popupFadeIn .15s ease-out}@keyframes popupFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.dark-mode .province-popup{background:#1e293b;box-shadow:0 4px 20px #00000080}.popup-close{position:absolute;top:8px;right:8px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;color:#666;border-radius:var(--radius-sm, 4px);transition:all .15s ease}.popup-close:hover{background:#0000001a;color:#333}.dark-mode .popup-close{color:#94a3b8}.dark-mode .popup-close:hover{background:#ffffff1a;color:#e2e8f0}.popup-close svg{width:16px;height:16px}.popup-header{padding:16px 16px 12px}.popup-name-en{margin:0 0 4px;font-size:18px;font-weight:600;color:#1a1a1a}.dark-mode .popup-name-en{color:#f1f5f9}.popup-name-jp{font-size:24px;color:#666}.dark-mode .popup-name-jp{color:#94a3b8}.popup-divider{height:1px;background:#e5e7eb;margin:0 16px}.dark-mode .popup-divider{background:#334155}.popup-section{padding:12px 16px}.popup-label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:#888;margin-bottom:4px}.dark-mode .popup-label{color:#64748b}.popup-value{display:flex;align-items:baseline;gap:8px}.popup-circuit-en{font-size:15px;font-weight:500;color:#333}.dark-mode .popup-circuit-en{color:#e2e8f0}.popup-circuit-jp{font-size:14px;color:#666}.dark-mode .popup-circuit-jp{color:#94a3b8}.popup-color-bar{height:4px;width:100%}.ancient-map-hint{position:absolute;bottom:var(--space-md);left:50%;transform:translate(-50%);padding:var(--space-xs) var(--space-md);background:#0009;color:#fff;font-size:var(--font-size-xs);border-radius:var(--radius-full);pointer-events:none;opacity:.7}.dark-mode .ancient-map-hint{background:#ffffff26}.mobile-language-toggle{position:absolute;top:var(--space-md, 12px);left:var(--space-md, 12px);background:#fffffff2;border:none;border-radius:var(--radius-md, 6px);padding:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10;box-shadow:0 2px 8px #00000026}.dark-mode .mobile-language-toggle{background:#1e293bf2}.mobile-language-toggle .lang-toggle-track{width:44px;height:24px;background:#d1d5db;border-radius:12px;position:relative;transition:background-color .2s ease}.dark-mode .mobile-language-toggle .lang-toggle-track{background:#4b5563}.mobile-language-toggle.jp .lang-toggle-track{background:#bc002d}.mobile-language-toggle .lang-toggle-thumb{position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:transform .2s ease;box-shadow:0 1px 3px #0000004d;overflow:hidden}.mobile-language-toggle.jp .lang-toggle-thumb{transform:translate(20px)}.mobile-language-toggle .lang-toggle-thumb .flag-icon{width:20px;height:20px;border-radius:50%}@media(max-width:768px){.ancient-map-container{min-height:400px;touch-action:none}.ancient-map-legend{display:none}.ancient-map-container .map-control-btn{width:32px;height:32px}.ancient-map-container .map-control-btn svg{width:18px;height:18px}.ancient-map-tooltip{display:none}}.province-panel-backdrop{position:fixed;inset:0;background:#0000004d;z-index:200;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.province-detail-panel{position:fixed;top:0;right:0;width:400px;max-width:90vw;height:100vh;background:var(--color-background-elevated, #fff);box-shadow:-4px 0 20px #00000026;z-index:201;display:flex;flex-direction:column;transform:translate(100%);animation:slideIn .3s ease forwards;overflow:hidden}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.dark-mode .province-detail-panel{background:var(--color-background-elevated, #1e293b);box-shadow:-4px 0 20px #0006}.panel-close-btn{position:absolute;top:var(--space-md, 12px);right:var(--space-md, 12px);width:36px;height:36px;border:none;border-radius:50%;background:var(--color-background-alt, #f1f5f9);color:var(--color-text-secondary, #64748b);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:10}.panel-close-btn:hover{background:var(--color-background-subtle, #e2e8f0);color:var(--color-text-primary, #1e293b)}.panel-close-btn svg{width:20px;height:20px}.dark-mode .panel-close-btn{background:#ffffff1a;color:#94a3b8}.dark-mode .panel-close-btn:hover{background:#ffffff26;color:#e2e8f0}.panel-header{padding:var(--space-xl, 24px);padding-right:60px;flex-shrink:0}.panel-province-names{margin-bottom:var(--space-md, 12px)}.panel-name-en{font-size:var(--font-size-2xl, 1.5rem);font-weight:var(--font-weight-bold, 700);color:var(--color-text-primary, #1e293b);margin:0 0 var(--space-xs, 4px) 0;line-height:1.2}.panel-name-jp{font-size:var(--font-size-lg, 1.125rem);color:var(--color-text-secondary, #64748b)}.dark-mode .panel-name-en{color:#f1f5f9}.dark-mode .panel-name-jp{color:#94a3b8}.panel-circuit{display:flex;align-items:center;gap:var(--space-sm, 8px)}.panel-circuit-badge{display:inline-block;padding:var(--space-xs, 4px) var(--space-md, 12px);border-radius:var(--radius-full, 9999px);font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-medium, 500);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.2)}.panel-circuit-jp{font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, #64748b)}.panel-divider{height:1px;background:var(--color-border, #e2e8f0);margin:0 var(--space-xl, 24px)}.dark-mode .panel-divider{background:#ffffff1a}.panel-content{flex:1;overflow-y:auto;padding:var(--space-xl, 24px)}.panel-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-4xl, 64px) var(--space-xl, 24px);color:var(--color-text-secondary, #64748b)}.loading-spinner{width:32px;height:32px;border:3px solid var(--color-border, #e2e8f0);border-top-color:var(--color-primary, #2e4057);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:var(--space-md, 12px)}@keyframes spin{to{transform:rotate(360deg)}}.panel-no-data{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-4xl, 64px) var(--space-xl, 24px);color:var(--color-text-tertiary, #94a3b8);text-align:center}.no-data-icon{width:48px;height:48px;opacity:.3;margin-bottom:var(--space-md, 12px)}.panel-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md, 12px);margin-bottom:var(--space-xl, 24px)}.summary-stat{text-align:center;padding:var(--space-md, 12px);background:var(--color-background-subtle, #f8fafc);border-radius:var(--radius-md, 6px)}.dark-mode .summary-stat{background:#ffffff0d}.stat-value{display:block;font-size:var(--font-size-2xl, 1.5rem);font-weight:var(--font-weight-bold, 700);color:var(--color-primary, #2e4057);line-height:1.2}.dark-mode .stat-value{color:#60a5fa}.stat-label{display:block;font-size:var(--font-size-xs, .75rem);color:var(--color-text-secondary, #64748b);margin-top:var(--space-xs, 4px)}.panel-section{margin-bottom:var(--space-xl, 24px)}.section-title{font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-semibold, 600);color:var(--color-text-secondary, #64748b);text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--space-md, 12px) 0;padding-bottom:var(--space-sm, 8px);border-bottom:1px solid var(--color-border-subtle, #f1f5f9)}.dark-mode .section-title{color:#94a3b8;border-bottom-color:#ffffff14}.stats-list{list-style:none;padding:0;margin:0}.stats-item{margin-bottom:var(--space-xs, 4px)}.stats-link{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm, 8px) var(--space-md, 12px);background:var(--color-background, #fff);border:1px solid var(--color-border-subtle, #f1f5f9);border-radius:var(--radius-sm, 4px);color:var(--color-text-primary, #1e293b);text-decoration:none;transition:all .15s ease}.stats-link:hover{background:var(--color-primary, #2e4057);border-color:var(--color-primary, #2e4057);color:#fff;transform:translate(4px)}.dark-mode .stats-link{background:#ffffff08;border-color:#ffffff14;color:#e2e8f0}.dark-mode .stats-link:hover{background:var(--color-primary, #3b82f6);border-color:var(--color-primary, #3b82f6)}.stats-name{font-weight:var(--font-weight-medium, 500)}.stats-count{font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, #64748b);background:var(--color-background-subtle, #f1f5f9);padding:2px 8px;border-radius:var(--radius-full, 9999px)}.stats-link:hover .stats-count{background:#fff3;color:#fff}.dark-mode .stats-count{background:#ffffff1a;color:#94a3b8}.type-bars{display:flex;flex-direction:column;gap:var(--space-sm, 8px)}.type-bar-item{display:flex;flex-direction:column;gap:var(--space-xs, 4px)}.type-bar-header{display:flex;justify-content:space-between;font-size:var(--font-size-sm, .875rem)}.type-name{color:var(--color-text-primary, #1e293b)}.type-count{color:var(--color-text-secondary, #64748b)}.dark-mode .type-name{color:#e2e8f0}.type-bar-bg{height:8px;background:var(--color-background-subtle, #f1f5f9);border-radius:var(--radius-full, 9999px);overflow:hidden}.dark-mode .type-bar-bg{background:#ffffff1a}.type-bar-fill{height:100%;background:linear-gradient(90deg,var(--color-primary, #2e4057),var(--color-primary-light, #3b5068));border-radius:var(--radius-full, 9999px);transition:width .5s ease}.dark-mode .type-bar-fill{background:linear-gradient(90deg,#3b82f6,#60a5fa)}.auth-badges{display:flex;flex-wrap:wrap;gap:var(--space-sm, 8px)}.auth-badge{display:inline-block;padding:var(--space-xs, 4px) var(--space-md, 12px);border-radius:var(--radius-full, 9999px);font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-medium, 500);background:var(--color-background-subtle, #f1f5f9);color:var(--color-text-primary, #1e293b)}.auth-badge.auth-juyo{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e}.auth-badge.auth-tokubetsu-juyo{background:linear-gradient(135deg,#fef08a,#fcd34d);color:#78350f}.auth-badge.auth-hozon{background:linear-gradient(135deg,#e0f2fe,#bae6fd);color:#0c4a6e}.auth-badge.auth-tokubetsu-hozon{background:linear-gradient(135deg,#cffafe,#a5f3fc);color:#164e63}.auth-badge.auth-kokuho{background:linear-gradient(135deg,#fecaca,#f87171);color:#7f1d1d}.auth-badge.auth-juyo-bunkazai{background:linear-gradient(135deg,#fed7aa,#fb923c);color:#7c2d12}.auth-badge.auth-juyo-bijutsuhin{background:linear-gradient(135deg,#d9f99d,#a3e635);color:#365314}.panel-actions{margin-top:var(--space-xl, 24px);padding-top:var(--space-xl, 24px);border-top:1px solid var(--color-border, #e2e8f0)}.dark-mode .panel-actions{border-top-color:#ffffff1a}.view-all-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-sm, 8px);width:100%;padding:var(--space-md, 12px) var(--space-lg, 16px);background:var(--color-primary, #2e4057);color:#fff;border:none;border-radius:var(--radius-md, 6px);font-size:var(--font-size-base, 1rem);font-weight:var(--font-weight-medium, 500);text-decoration:none;cursor:pointer;transition:all .2s ease}.view-all-btn:hover{background:var(--color-primary-dark, #1e3a5f);transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.view-all-btn svg{width:18px;height:18px}.dark-mode .view-all-btn{background:#3b82f6}.dark-mode .view-all-btn:hover{background:#2563eb}@media(max-width:480px){.province-detail-panel{width:100vw;max-width:100vw}.panel-summary{grid-template-columns:repeat(3,1fr);gap:var(--space-sm, 8px)}.stat-value{font-size:var(--font-size-xl, 1.25rem)}}
