*{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}: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)}.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)}.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)}}@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}}.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 fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}*{box-sizing:border-box}.admin-container{min-height:100vh;background-color:#f5f7fa}.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}.filters-panel{background-color:#f9fafb;padding:1.5rem;border-radius:8px;margin-bottom:1.5rem}.filter-group{margin-bottom:1rem}.filter-group:last-child{margin-bottom:0}.filter-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#374151}.filter-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;align-items:end}.search-input{flex:1;padding:.75rem;border:1px solid #d1d5db;border-radius:6px;font-size:1rem}.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}@keyframes spin{to{transform:rotate(360deg)}}.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,.filter-row{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}
