*,:before,:after{box-sizing:border-box}:root{--font-display:"Cinzel", serif;--font-body:"Alegreya Sans", sans-serif;--text-xs:.75rem;--text-sm:.85rem;--text-base:.95rem;--text-lg:1.05rem;--text-xl:1.2rem;--text-2xl:1.75rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--radius-sm:3px;--radius-md:6px;--radius-lg:10px;--transition-fast:.2s ease;--transition-slide:.3s ease;--opacity-disabled:.55;--opacity-muted:.65;--bg:#f7f3ec;--bg-card:#fffdf8;--bg-sidebar:#f0ebe2;--bg-sidebar-hover:#e5ded2;--bg-input:#fffef9;--text:#2c2418;--text-secondary:#665b4e;--text-muted:#948777;--text-heading:#3a2f22;--border:#d9d0c2;--input-border:#c9bfaf;--input-border-focus:#8b7340;--accent:#8b6914;--accent-hover:#725510;--accent-text:#fff;--link:#4a7c6f;--link-hover:#366358;--error-bg:#fdf0e6;--error-text:sienna;--bookmark-active:#b8860b;--overlay:#2c24184d;--overlay-heavy:#2c241873;--shadow-card:0 1px 3px #2c24180f;--shadow-panel:0 8px 32px #2c241826;--focus-ring:0 0 0 3px #8b69141f}[data-theme=dark]{--bg:#1a1714;--bg-card:#242019;--bg-sidebar:#1f1c17;--bg-sidebar-hover:#2e2a22;--bg-input:#2a2620;--text:#e2d9c8;--text-secondary:#a89c8a;--text-muted:#7a7064;--text-heading:#d4c8b0;--border:#3d362b;--input-border:#4a4235;--input-border-focus:#c4941a;--accent:#d4a537;--accent-hover:#e0b84a;--accent-text:#1a1714;--link:#7fbfad;--link-hover:#9ed4c4;--error-bg:#2e2018;--error-text:#e09060;--bookmark-active:#d4a537;--overlay:#00000073;--overlay-heavy:#0009;--shadow-card:0 1px 3px #0003;--shadow-panel:0 8px 32px #0006;--focus-ring:0 0 0 3px #c4941a33}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--text-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background var(--transition-fast), color var(--transition-fast);margin:0;line-height:1.55}.app{max-width:1100px;padding:var(--space-6) var(--space-4);margin:0 auto}header{text-align:center;margin-bottom:var(--space-6);position:relative}header h1{margin:0 0 var(--space-1);font-family:var(--font-display);font-size:var(--text-2xl);color:var(--text-heading);letter-spacing:.03em;font-weight:700}.subtitle{color:var(--text-secondary);font-size:var(--text-sm);letter-spacing:.01em;margin:0}.header-actions{gap:var(--space-1);display:flex;position:absolute;top:0;right:0}.icon-btn{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-2);cursor:pointer;color:var(--text-muted);transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);background:0 0;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--bg-sidebar);color:var(--text);border-color:var(--input-border)}.layout{gap:var(--space-6);grid-template-columns:1fr 300px;align-items:start;display:grid}.search-mode-toggle{margin-bottom:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);gap:0;width:fit-content;display:flex;overflow:hidden}.search-mode-btn{padding:var(--space-2) var(--space-4);font-family:var(--font-body);font-size:var(--text-sm);background:var(--bg-card);color:var(--text-muted);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);border:none;font-weight:600}.search-mode-btn:not(:last-child){border-right:1px solid var(--border)}.search-mode-btn.active{background:var(--accent);color:var(--accent-text)}.search-mode-btn:hover:not(.active){background:var(--bg-sidebar);color:var(--text)}.find-earliest-options{margin-bottom:var(--space-4)}.find-earliest-toggles{gap:var(--space-4);margin-bottom:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.hints-toggle{color:var(--text-muted);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm);transition:color var(--transition-fast);background:0 0;border:none;align-items:center;display:inline-flex}.hints-toggle:hover{color:var(--accent)}.find-earliest-hints{font-size:var(--text-xs);color:var(--text-muted);line-height:1.6}.find-earliest-hints p{margin:0 0 var(--space-1)}.find-earliest-hints code{font-size:inherit;background:var(--bg-sidebar);border-radius:var(--radius-sm);color:var(--text-secondary);padding:.1em .35em}.toggle-label{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;display:flex}.toggle-label input[type=checkbox]{accent-color:var(--accent);cursor:pointer}.start-rev-input{padding:var(--space-1) var(--space-2);font-family:var(--font-body);font-size:var(--text-sm);border:1px solid var(--input-border);border-radius:var(--radius-md);background:var(--bg-input);color:var(--text);width:10rem}.start-rev-input::placeholder{color:var(--text-muted)}.find-earliest-progress{margin-bottom:var(--space-4)}.progress-bar{background:var(--bg-sidebar);height:6px;margin-bottom:var(--space-2);border-radius:3px;overflow:hidden}.progress-fill{background:var(--accent);border-radius:3px;height:100%;transition:width .15s}.progress-text{font-size:var(--text-xs);color:var(--text-muted)}.find-earliest-cancelled{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-4)}.find-earliest-not-found{padding:var(--space-6);text-align:center;color:var(--text-secondary);font-size:var(--text-base)}@media (width<=768px){.search-form-row{flex-direction:column}.search-form-submit,.search-form-cancel{width:100%}}.search-form{margin-bottom:var(--space-4)}.search-form-row{gap:var(--space-2);margin-bottom:var(--space-3);align-items:stretch;display:flex}.search-form-inputs{gap:var(--space-2);flex-direction:column;flex:1;display:flex}.search-form-inputs input{padding:var(--space-3) var(--space-4);font-family:var(--font-body);font-size:var(--text-lg);border:2px solid var(--input-border);border-radius:var(--radius-md);background:var(--bg-input);color:var(--text);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none}.search-form-inputs input:focus{border-color:var(--input-border-focus);box-shadow:var(--focus-ring)}.search-form-inputs input::placeholder{color:var(--text-muted)}.search-form-submit{padding:var(--space-3) var(--space-5);font-family:var(--font-body);font-size:var(--text-base);background:var(--accent);color:var(--accent-text);border-radius:var(--radius-md);cursor:pointer;letter-spacing:.02em;white-space:nowrap;transition:background var(--transition-fast);border:none;font-weight:700}.search-form-submit:hover:not(:disabled){background:var(--accent-hover)}.search-form-submit:disabled{opacity:var(--opacity-disabled);cursor:not-allowed}.search-form-cancel{padding:var(--space-3) var(--space-5);font-family:var(--font-body);font-size:var(--text-base);background:var(--error-bg);color:var(--error-text);border:1px solid var(--error-text);border-radius:var(--radius-md);cursor:pointer;letter-spacing:.02em;white-space:nowrap;transition:opacity var(--transition-fast);font-weight:700}.search-form-cancel:hover{opacity:.85}.search-results h2{font-family:var(--font-body);font-size:var(--text-xl);color:var(--text-heading);margin:0 0 var(--space-4);letter-spacing:.02em;font-weight:700}.results-loading,.results-empty{padding:var(--space-6);text-align:center;color:var(--text-secondary);font-size:var(--text-base)}.result-item{padding:var(--space-4);margin-bottom:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);box-shadow:var(--shadow-card);transition:box-shadow var(--transition-fast), border-color var(--transition-fast)}.result-item:hover{border-color:var(--input-border)}.result-item.no-revision{opacity:var(--opacity-muted)}.result-item-header{align-items:center;gap:var(--space-2);margin-bottom:var(--space-1);display:flex}.result-item-header h3{font-family:var(--font-body);font-size:var(--text-lg);flex:1;margin:0;font-weight:700}.result-item h3 a{color:var(--link);transition:color var(--transition-fast);text-decoration:none}.result-item h3 a:hover{color:var(--link-hover);text-decoration:underline}.bookmark-btn{cursor:pointer;padding:var(--space-1);color:var(--text-muted);transition:color var(--transition-fast), transform var(--transition-fast);background:0 0;border:none;align-items:center;display:inline-flex}.bookmark-btn:hover{color:var(--bookmark-active);transform:scale(1.15)}.bookmark-btn.bookmarked{color:var(--bookmark-active)}.revision-date{font-size:var(--text-sm);color:var(--text-secondary);font-weight:500}.no-revision-badge{font-size:var(--text-xs);color:var(--error-text);background:var(--error-bg);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-weight:500;display:inline-block}.snippet{font-size:var(--text-sm);color:var(--text-secondary);margin:var(--space-2) 0 0;line-height:1.6}.snippet .searchmatch{color:var(--text);font-weight:700}.load-more-container{text-align:center;margin-top:var(--space-4)}.load-more-btn{padding:var(--space-2) var(--space-6);font-family:var(--font-body);font-size:var(--text-base);background:var(--bg-card);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast);font-weight:500}.load-more-btn:hover:not(:disabled){background:var(--bg-sidebar-hover);border-color:var(--input-border)}.load-more-btn:disabled{opacity:var(--opacity-disabled);cursor:not-allowed}.error{padding:var(--space-3) var(--space-4);background:var(--error-bg);color:var(--error-text);border-radius:var(--radius-md);margin-bottom:var(--space-4);font-size:var(--text-sm);font-weight:500}.sidebar{top:var(--space-4);position:sticky}.sidebar-tabs{border-bottom:2px solid var(--border);margin-bottom:var(--space-3);display:flex}.sidebar-tab{padding:var(--space-2);cursor:pointer;font-family:var(--font-body);font-size:var(--text-sm);color:var(--text-muted);letter-spacing:.02em;transition:color var(--transition-fast), border-color var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;flex:1;margin-bottom:-2px;font-weight:700}.sidebar-tab:hover{color:var(--text)}.sidebar-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.sidebar-list-empty{color:var(--text-muted);font-size:var(--text-sm)}.sidebar-list ul{margin:0;padding:0;list-style:none}.sidebar-list li{align-items:center;gap:var(--space-1);margin-bottom:var(--space-2);display:flex}.sidebar-entry{padding:var(--space-2) var(--space-3);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;text-align:left;color:var(--text);font:inherit;transition:background var(--transition-fast), border-color var(--transition-fast);flex-direction:column;flex:1;align-items:flex-start;text-decoration:none;display:flex}.sidebar-entry:hover{background:var(--bg-sidebar);border-color:var(--input-border)}.sidebar-entry.disabled{opacity:var(--opacity-muted);cursor:default}.sidebar-entry-title{font-weight:700;font-size:var(--text-sm)}.sidebar-entry-meta{font-size:var(--text-xs);color:var(--text-muted)}.sidebar-entry-delete{color:var(--text-muted);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:color var(--transition-fast), background var(--transition-fast);background:0 0;border:none;align-items:center;display:inline-flex}.sidebar-entry-delete:hover{color:var(--error-text);background:var(--error-bg)}.settings-overlay{background:var(--overlay);z-index:100;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.settings-panel{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);width:340px;max-width:90vw;box-shadow:var(--shadow-panel)}.settings-panel h2{margin:0 0 var(--space-4);font-family:var(--font-display);font-size:var(--text-xl);color:var(--text-heading);letter-spacing:.02em;font-weight:500}.settings-field{margin-bottom:var(--space-4)}.settings-field label{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-1);font-weight:700;display:block}.settings-hint{margin:0 0 var(--space-2);font-size:var(--text-xs);color:var(--text-muted)}.settings-field input[type=date]{width:100%;padding:var(--space-2);border:1px solid var(--input-border);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-base);background:var(--bg-input);color:var(--text)}.settings-field-row{align-items:center;gap:var(--space-2);display:flex}.settings-field-row input[type=date]{flex:1}.settings-reset-btn{padding:var(--space-2) var(--space-3);font-family:var(--font-body);font-size:var(--text-xs);background:var(--bg-sidebar);color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast), color var(--transition-fast);font-weight:500}.settings-reset-btn:hover{background:var(--bg-sidebar-hover);color:var(--text)}.settings-actions{text-align:right;margin-top:var(--space-4)}.settings-close-btn{padding:var(--space-2) var(--space-5);font-family:var(--font-body);font-size:var(--text-base);background:var(--accent);color:var(--accent-text);border-radius:var(--radius-md);cursor:pointer;letter-spacing:.02em;transition:background var(--transition-fast);border:none;font-weight:700}.settings-close-btn:hover{background:var(--accent-hover)}.drawer-backdrop{background:var(--overlay-heavy);z-index:200;opacity:0;transition:opacity var(--transition-slide);pointer-events:none;position:fixed;inset:0}.drawer-backdrop.open{opacity:1;pointer-events:auto}.drawer{background:var(--bg);border-left:1px solid var(--border);z-index:201;width:320px;max-width:85vw;transition:transform var(--transition-slide);padding:var(--space-4);position:fixed;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(100%)}.drawer.open{transform:translate(0)}.drawer-close{color:var(--text-muted);cursor:pointer;top:var(--space-2);right:var(--space-3);padding:var(--space-1) var(--space-2);transition:color var(--transition-fast);background:0 0;border:none;align-items:center;display:inline-flex;position:absolute}.drawer-close:hover{color:var(--text)}.drawer-content{margin-top:var(--space-6)}.drawer-actions{gap:var(--space-2);margin-bottom:var(--space-4);display:flex}.hamburger-btn{display:none}.desktop-only{display:inline-flex}@media (width<=768px){.layout{grid-template-columns:1fr}.layout>aside{display:none}.hamburger-btn{display:inline-flex}.desktop-only{display:none}.search-form-submit,.search-form-cancel{padding:var(--space-3) var(--space-4)}}
