:root{--color-ink:#2c3e6b;--color-ink-light:#4a5f8a;--color-ink-faint:#2c3e6b1a;--color-parchment-light:#f5f0e8;--color-parchment-mid:#ebe4d8;--color-parchment-warm:#f2ede5;--color-card:#fff;--color-card-hover:#faf7f2;--color-rule:#8b7355;--color-margin:#b71c1c0f;--color-brand-50:#2c3e6b0a;--color-brand-100:#2c3e6b14;--color-brand-200:#2c3e6b26;--color-brand-400:#4a5f8a;--color-brand-500:#2c3e6b;--color-brand-600:#243356;--color-brand-700:#1c2844;--color-primary-50:#f0f2f7;--color-primary-100:#d9dfe9;--color-primary-200:#b3bed3;--color-primary-300:#8a9abc;--color-primary-400:#6478a3;--color-primary-500:#4a5f8a;--color-primary-600:#3a4e76;--color-primary-700:#2c3e6b;--color-primary-800:#243356;--color-primary-900:#1a2540;--color-neutral-0:#fff;--color-neutral-50:#f5f0e8;--color-neutral-100:#ebe4d8;--color-neutral-200:#ddd5c5;--color-neutral-300:#c5bba8;--color-neutral-400:#9a8e7a;--color-neutral-500:#6e6354;--color-neutral-600:#4a4234;--color-neutral-700:#2d2720;--color-neutral-800:#1a1610;--color-neutral-900:#0d0b08;--color-success-50:#2e7d320f;--color-success-100:#2e7d321a;--color-success-400:#43a047;--color-success-500:#2e7d32;--color-success-600:#256428;--color-success-700:#1b5e20;--color-success:#2e7d32;--color-warning-50:#e651000f;--color-warning-100:#e651001a;--color-warning-400:#fb8c00;--color-warning-500:#e65100;--color-warning-600:#bf4400;--color-warning:#e65100;--color-danger-50:#b71c1c0f;--color-danger-100:#b71c1c1a;--color-danger-300:#ef9a9a;--color-danger-400:#e53935;--color-danger-500:#c62828;--color-danger-600:#b71c1c;--color-danger-700:#8e0000;--color-error:#b71c1c;--color-purple-50:#4527a00f;--color-purple-500:#4527a0;--color-purple-600:#381e87;--color-purple-700:#2c166e;--font-sans:"Libre Franklin", "Segoe UI", system-ui, sans-serif;--font-serif:"Cormorant Garamond", Garamond, "Times New Roman", serif;--font-mono:"Fira Code", ui-monospace, "Cascadia Code", Consolas, monospace;--text-xs:.6875rem;--text-sm:.8125rem;--text-base:.875rem;--text-lg:1rem;--text-xl:1.125rem;--text-2xl:1.375rem;--text-3xl:1.75rem;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.65;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--space-px:1px;--space-0-5:.125rem;--space-1:.25rem;--space-1-5:.375rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--radius-sm:3px;--radius-md:6px;--radius-lg:10px;--radius-xl:14px;--radius-full:9999px;--shadow-xs:0 1px 2px #2c3e6b0a;--shadow-sm:0 1px 3px #2c3e6b0f, 0 1px 2px #2c3e6b08;--shadow-md:0 4px 8px -1px #2c3e6b12, 0 2px 4px -2px #2c3e6b0a;--shadow-lg:0 12px 24px -4px #2c3e6b1a, 0 4px 8px -4px #2c3e6b0d;--shadow-xl:0 24px 48px -8px #2c3e6b24, 0 8px 16px -6px #2c3e6b0f;--shadow-inner:inset 0 2px 4px #2c3e6b0a;--shadow-ring:0 0 0 3px #2c3e6b1f;--transition-fast:.1s ease;--transition-base:.18s ease;--transition-slow:.3s cubic-bezier(.4, 0, .2, 1);--header-height:52px;--nav-height:44px;--sidebar-width:400px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-neutral-800);background:linear-gradient(175deg, var(--color-parchment-light) 0%, var(--color-parchment-mid) 50%, var(--color-parchment-warm) 100%);background-attachment:fixed;min-height:100vh}body:before{content:"";pointer-events:none;z-index:0;background:repeating-linear-gradient(0deg,#0000,#0000 23px,#8b735509 23px 24px);position:fixed;inset:0}body:after{content:"";background:var(--color-margin);pointer-events:none;z-index:0;width:1px;position:fixed;top:0;bottom:0;left:72px}#root{z-index:1;position:relative}img,svg{max-width:100%;display:block}a{color:var(--color-ink);text-decoration:none}a:hover{color:var(--color-ink-light);text-decoration:underline}table{border-collapse:collapse;width:100%}:focus-visible{outline-offset:2px;outline:2px solid #2c3e6b80}::selection{color:var(--color-ink);background:#2c3e6b1f}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#2c3e6b26;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#2c3e6b40}progress{accent-color:var(--color-ink)}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:7px var(--space-4);font-family:inherit;font-size:var(--text-sm);font-weight:var(--font-medium);line-height:var(--leading-tight);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;letter-spacing:.01em;border:1px solid #0000;display:inline-flex}.btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--color-ink);color:var(--color-neutral-0);border-color:#243356}.btn-primary:hover:not(:disabled){box-shadow:var(--shadow-sm);background:#243356}.btn-primary:active:not(:disabled){background:#1a2540}.btn-brand{background:var(--color-ink);color:var(--color-neutral-0);border-color:#243356}.btn-brand:hover:not(:disabled){box-shadow:var(--shadow-sm);background:#243356}.btn-secondary{background:var(--color-card);color:#2c3e6bb3;box-shadow:var(--shadow-xs);border-color:#2c3e6b33}.btn-secondary:hover:not(:disabled){background:var(--color-card-hover);color:var(--color-ink);box-shadow:var(--shadow-sm);border-color:#2c3e6b59}.btn-ghost{color:#2c3e6b99;background:0 0}.btn-ghost:hover:not(:disabled){color:var(--color-ink);background:#2c3e6b0a}.btn-danger{background:var(--color-danger-600);color:#fff}.btn-danger:hover:not(:disabled){background:var(--color-danger-700)}.btn-sm{padding:4px var(--space-3);font-size:var(--text-xs);border-radius:var(--radius-sm)}.btn-xs{padding:2px var(--space-2);font-size:var(--text-xs);border-radius:var(--radius-sm)}.btn-icon{padding:var(--space-1);min-width:28px;min-height:28px}.input{width:100%;padding:7px var(--space-3);font-family:inherit;font-size:var(--text-sm);color:var(--color-ink);background:var(--color-card);border-radius:var(--radius-md);box-shadow:var(--shadow-inner);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);border:1px solid #2c3e6b26;display:block}.input:hover{border-color:#2c3e6b40}.input:focus{border-color:var(--color-ink);box-shadow:var(--shadow-ring);outline:none}.input::placeholder{color:#2c3e6b4d}.input-sm{padding:4px var(--space-2);font-size:var(--text-xs)}textarea.input{resize:vertical;min-height:60px}.badge{font-size:var(--text-xs);font-weight:var(--font-semibold);border-radius:var(--radius-sm);white-space:nowrap;letter-spacing:.02em;align-items:center;gap:3px;padding:1px 8px;line-height:1.5;display:inline-flex}.badge-green{color:#2e7d32cc;background:#2e7d321a;border:1px solid #2e7d3226}.badge-red{color:#b71c1cbf;background:#b71c1c14;border:1px solid #b71c1c1f}.badge-yellow{color:#e65100cc;background:#e6510014;border:1px solid #e651001f}.badge-purple{color:#4527a0bf;background:#4527a014;border:1px solid #4527a01f}.badge-gray{color:#2c3e6b99;background:#2c3e6b0d;border:1px solid #2c3e6b1a}.badge-blue{color:#2c3e6bbf;background:#2c3e6b14;border:1px solid #2c3e6b1f}.badge-remove{cursor:pointer;opacity:.5;color:inherit;transition:opacity var(--transition-fast);background:0 0;border:none;margin-left:2px;padding:0 2px;font-size:10px;line-height:1}.badge-remove:hover,.badge-remove:focus-visible{opacity:1;outline:none}.card{background:var(--color-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid #2c3e6b1a}.panel-header{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-semibold);color:#2c3e6b73;text-transform:uppercase;letter-spacing:.06em;-webkit-user-select:none;user-select:none;background:#2c3e6b05;border-bottom:1px solid #2c3e6b14;display:flex}.tabs{background:var(--color-card);padding:0 var(--space-2);border-bottom:1px solid #2c3e6b1a;align-items:center;gap:0;display:flex}.tab{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-medium);color:#2c3e6b73;cursor:pointer;transition:all var(--transition-fast);letter-spacing:.02em;background:0 0;border:none;position:relative}.tab:hover{color:#2c3e6bb3}.tab.active{color:var(--color-ink);font-weight:var(--font-semibold)}.tab.active:after{content:"";bottom:-1px;left:var(--space-2);right:var(--space-2);background:var(--color-ink);border-radius:2px 2px 0 0;height:2px;animation:.15s tab-fade;position:absolute}@keyframes tab-fade{0%{opacity:0}to{opacity:1}}.spinner{border:2px solid #2c3e6b1f;border-top-color:var(--color-ink);border-radius:50%;animation:.7s linear infinite spin;display:inline-block}.spinner-sm{width:14px;height:14px}.spinner-md{width:22px;height:22px}.spinner-lg{width:32px;height:32px}@keyframes spin{to{transform:rotate(360deg)}}.loading-center{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-12);color:#2c3e6b80;font-size:var(--text-sm);display:flex}.loading-fullscreen{justify-content:center;align-items:center;gap:var(--space-4);background:var(--color-neutral-50);color:var(--color-ink);font-family:var(--font-serif);font-size:var(--text-lg);z-index:1000;flex-direction:column;display:flex;position:fixed;inset:0}.loading-fullscreen .spinner{border-width:3px;width:44px;height:44px}.loading-fullscreen .loading-sub{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-neutral-500);font-weight:400}mark{color:var(--color-ink);background:#2c3e6b1a;border-radius:2px;padding:1px 3px}.kbd{min-width:20px;font-family:var(--font-mono);font-size:10px;font-weight:var(--font-medium);color:#2c3e6b80;border-radius:var(--radius-sm);background:#2c3e6b0a;border:1px solid #2c3e6b1a;justify-content:center;align-items:center;padding:1px 5px;display:inline-flex;box-shadow:0 1px #2c3e6b14}.dropdown{z-index:50;background:var(--color-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);border:1px solid #2c3e6b1a;min-width:200px;animation:.18s dropdown-in;position:absolute;overflow:hidden}@keyframes dropdown-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.dropdown-header{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-semibold);color:#2c3e6b59;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid #2c3e6b0f}.dropdown-item{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:#2c3e6bb3;cursor:pointer;transition:background var(--transition-fast);display:flex}.dropdown-item:hover{background:#2c3e6b08}@keyframes flash-success{0%{background:#2e7d3214}to{background:0 0}}@keyframes flash-remove{0%{background:#b71c1c0f}to{background:0 0}}.flash-success{animation:.6s flash-success}.flash-remove{animation:.6s flash-remove}.checkbox-wrapper{flex-shrink:0;justify-content:center;align-items:center;width:32px;display:flex}.checkbox-wrapper input[type=checkbox]{cursor:pointer;width:15px;height:15px;accent-color:var(--color-ink);border-radius:var(--radius-sm)}.floating-bar{bottom:var(--space-6);align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-6);background:var(--color-ink);color:var(--color-neutral-0);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl), 0 0 0 1px #ffffff0f;font-size:var(--text-sm);font-weight:var(--font-medium);z-index:100;animation:.2s float-in;display:flex;position:fixed;left:50%;transform:translate(-50%)}@keyframes float-in{0%{opacity:0;transform:translate(-50%)translateY(12px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.floating-bar .btn{color:#fff;border-color:#ffffff2e}.floating-bar .btn-secondary,.floating-bar .btn-ghost{color:#fff;background:#ffffff1a}.floating-bar .btn-secondary:hover:not(:disabled),.floating-bar .btn-ghost:hover:not(:disabled){color:#fff;background:#fff3;border-color:#ffffff59}.divider{background:#2c3e6b26;flex-shrink:0;width:1px;height:18px}.viewer-center-tabs{padding:0 var(--space-2);background:#2c3e6b05;border-bottom:1px solid #2c3e6b1a;flex-shrink:0;align-items:center;gap:0;display:flex}.viewer-center-tab{padding:var(--space-2) var(--space-4);font-size:var(--text-xs);font-weight:var(--font-medium);color:#2c3e6b73;cursor:pointer;transition:all var(--transition-fast);letter-spacing:.02em;background:0 0;border:none;position:relative}.viewer-center-tab:hover{color:#2c3e6bb3}.viewer-center-tab.active{color:var(--color-ink);font-weight:var(--font-semibold)}.viewer-center-tab.active:after{content:"";bottom:-1px;left:var(--space-2);right:var(--space-2);background:var(--color-ink);border-radius:2px 2px 0 0;height:2px;position:absolute}.media-player-container{padding:var(--space-4);background:var(--color-neutral-900);flex:1;justify-content:center;align-items:center;display:flex}.media-player-container video{border-radius:var(--radius-md);max-height:calc(100vh - 200px)}.media-player-audio{background:var(--color-neutral-100)}.modal-overlay{z-index:200;background:#2c3e6b4d;justify-content:center;align-items:center;animation:.15s fade-in;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal-panel{background:var(--color-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);flex-direction:column;width:480px;max-height:80vh;animation:.2s cubic-bezier(.16,1,.3,1) modal-in;display:flex;overflow:hidden}@keyframes modal-in{0%{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-panel.modal-large{width:800px;max-width:90vw;max-height:85vh}.modal-header{padding:var(--space-4);border-bottom:1px solid #2c3e6b1a;justify-content:space-between;align-items:center;display:flex}.modal-body{padding:var(--space-4);flex:1;min-height:0;overflow:auto}.modal-close-btn{color:var(--color-neutral-500);border-radius:var(--radius-md);cursor:pointer;background:0 0;border:none;padding:4px 10px;font-size:24px;line-height:1;transition:background .12s,color .12s}.modal-close-btn:hover,.modal-close-btn:focus-visible{background:var(--color-neutral-100);color:var(--color-ink);outline:none}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.toast-container{bottom:var(--space-6);right:var(--space-6);gap:var(--space-2);z-index:300;flex-direction:column;display:flex;position:fixed}.toast{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-medium);box-shadow:var(--shadow-lg);max-width:360px;animation:.2s toast-in}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.toast-success{color:var(--color-success-700);background:#2e7d3214;border:1px solid #2e7d3226}.toast-error{color:var(--color-danger-700);background:#b71c1c14;border:1px solid #b71c1c1f}.toast-info{color:var(--color-ink);background:#2c3e6b0f;border:1px solid #2c3e6b1f}.link-btn{color:var(--color-ink-light);font-size:var(--text-xs);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;padding:0;-webkit-text-decoration:underline #0000;text-decoration:underline #0000}.link-btn:hover{color:var(--color-ink);text-decoration-color:currentColor}.error-msg{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-danger-700);border-radius:var(--radius-md);margin-bottom:var(--space-4);background:#b71c1c0f;border:1px solid #b71c1c1f}.ai-indicator{font-size:var(--text-xs);font-weight:var(--font-semibold);color:#e65100cc;border-radius:var(--radius-sm);letter-spacing:.04em;background:#e6510014;border:1px solid #e6510026;align-items:center;gap:4px;padding:2px 8px;display:inline-flex}.app-header{align-items:center;gap:var(--space-4);height:var(--header-height);padding:0 var(--space-5);color:var(--color-ink);border-bottom:2px solid var(--color-ink);background:#2c3e6b08;flex-shrink:0;display:flex}.app-header .logo{font-family:var(--font-serif);font-size:var(--text-xl);font-weight:var(--font-bold);letter-spacing:-.01em;cursor:pointer;color:var(--color-ink);transition:opacity var(--transition-fast)}.app-header .logo:hover{opacity:.7}.app-header .logo-accent{color:var(--color-ink-light)}.app-header .user-menu{align-items:center;gap:var(--space-3);font-size:var(--text-xs);color:#2c3e6b80;margin-left:auto;display:flex}.app-header .btn-header{padding:3px var(--space-3);font-size:var(--text-xs);font-weight:var(--font-medium);color:#2c3e6b99;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);letter-spacing:.01em;background:0 0;border:1px solid #2c3e6b33}.app-header .btn-header:hover{color:var(--color-ink);background:#2c3e6b0a;border-color:#2c3e6b66}.doc-nav{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);background:var(--color-neutral-0);border-bottom:1px solid var(--color-neutral-200);flex-shrink:0;display:flex}.doc-nav .bates-label{font-family:var(--font-mono);font-weight:var(--font-medium);font-size:var(--text-sm);color:var(--color-primary-800);letter-spacing:.02em}.doc-nav .bates-range{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-neutral-400)}.doc-nav .breadcrumb{font-size:var(--text-xs);color:var(--color-neutral-400);margin-left:var(--space-2);font-style:italic}.doc-nav .jump-bates{align-items:center;gap:var(--space-1);margin-left:auto;display:flex}.viewer-layout{flex:1;display:flex;overflow:hidden}.viewer-main{background:var(--color-neutral-100);flex-direction:column;flex:1;display:flex;overflow:hidden}.viewer-left-sidebar{border-right:1px solid var(--color-neutral-200);background:var(--color-neutral-0);flex-direction:column;flex-shrink:0;width:280px;display:flex;overflow-y:auto}.sidebar-section{border-bottom:1px solid var(--color-neutral-100)}.sidebar-section-grow{flex:1;min-height:120px;overflow-y:auto}.sidebar-section-title{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-neutral-400);text-transform:uppercase;letter-spacing:.06em;background:var(--color-neutral-50);border-bottom:1px solid var(--color-neutral-100)}.viewer-sidebar{width:var(--sidebar-width);border-left:1px solid var(--color-neutral-200);background:var(--color-neutral-0);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.image-toolbar{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-neutral-0);border-bottom:1px solid var(--color-neutral-200);flex-shrink:0;display:flex}.image-toolbar .separator{background:var(--color-neutral-200);width:1px;height:18px}.image-toolbar .page-info{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-neutral-500);letter-spacing:.02em}.image-viewport{padding:var(--space-4);background:var(--color-neutral-100);flex:1;display:flex;overflow:auto}.image-viewport img{transition:transform var(--transition-base);-webkit-user-select:none;user-select:none}.doc-table{width:100%}.doc-table th{z-index:10;padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-semibold);color:#2c3e6b73;text-transform:uppercase;letter-spacing:.05em;text-align:left;background:#2c3e6b05;border-bottom:2px solid #2c3e6b14;position:sticky;top:0}.doc-table td{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);vertical-align:middle;border-bottom:1px solid #2c3e6b0d}.doc-table tr{cursor:pointer}.doc-table tbody tr{transition:background var(--transition-fast), border-color .15s ease;border-left:3px solid #0000}.doc-table tbody tr:hover{background:var(--color-card-hover);border-left-color:var(--color-ink)}.doc-table tbody tr:active{background:#2c3e6b0f}.doc-table .bates-cell{font-family:var(--font-mono);font-weight:var(--font-medium);font-size:var(--text-xs);color:var(--color-ink);white-space:nowrap;letter-spacing:.02em}.doc-table .meta-cell{color:#2c3e6b73;font-size:var(--text-xs)}.doc-table .tags-cell{flex-wrap:wrap;gap:3px;display:flex}.search-toolbar{gap:var(--space-3);padding:var(--space-4) 0;flex-direction:column;display:flex}.search-row{gap:var(--space-2);display:flex}.search-row .input{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.01em;flex:1}.filter-bar{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.filter-chip{padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-primary-700);background:var(--color-primary-50);border:1px solid var(--color-primary-100);border-radius:var(--radius-sm);align-items:center;gap:4px;display:inline-flex}.filter-chip .remove{cursor:pointer;opacity:.5;transition:opacity var(--transition-fast);font-size:10px}.filter-chip .remove:hover{opacity:1}.result-item{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-neutral-100);cursor:pointer;transition:background var(--transition-fast)}.result-item:hover{background:var(--color-brand-50)}.result-header{align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-1);display:flex}.result-bates{font-family:var(--font-mono);font-weight:var(--font-medium);font-size:var(--text-sm);color:var(--color-primary-800);letter-spacing:.02em}.result-meta{font-size:var(--text-xs);color:var(--color-neutral-400);margin-left:auto}.result-snippet{font-size:var(--text-sm);color:var(--color-neutral-600);line-height:var(--leading-relaxed)}.pagination{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-4);display:flex}.pagination .page-info{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-neutral-400);text-align:center;letter-spacing:.02em;min-width:100px}.tag-bar{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-neutral-0);border-bottom:1px solid var(--color-neutral-200);flex-shrink:0;min-height:36px;display:flex}.tag-bar-label{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-neutral-400);text-transform:uppercase;letter-spacing:.06em;flex-shrink:0}.login-page{background:var(--color-ink);background-image:radial-gradient(80% 60% at 50% 0,#3a5080,#0000),radial-gradient(60% 40% at 70% 100%,#8b735514,#0000);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{width:380px;padding:var(--space-10);background:var(--color-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl), 0 0 0 1px #0000000a}.login-card h1{font-family:var(--font-serif);font-size:var(--text-3xl);font-weight:var(--font-bold);color:var(--color-ink);letter-spacing:-.02em;margin-bottom:2px}.login-card .subtitle{font-size:var(--text-sm);color:#2c3e6b66;margin-bottom:var(--space-8);letter-spacing:.02em}.login-card .form-group{margin-bottom:var(--space-4)}.login-card label{font-size:var(--text-xs);font-weight:var(--font-semibold);color:#2c3e6b80;margin-bottom:var(--space-1-5);text-transform:uppercase;letter-spacing:.06em;display:block}.login-card .error{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-danger-700);border-radius:var(--radius-md);margin-bottom:var(--space-4);background:#b71c1c0f;border:1px solid #b71c1c1f}.note-item{padding:var(--space-3);border-bottom:1px solid var(--color-neutral-100);transition:background var(--transition-fast)}.note-item:hover{background:var(--color-neutral-50)}.note-meta{align-items:center;gap:var(--space-2);margin-bottom:var(--space-1);font-size:var(--text-xs);color:var(--color-neutral-400);display:flex}.note-content{font-size:var(--text-sm);color:var(--color-neutral-700);line-height:var(--leading-relaxed);white-space:pre-wrap}.note-actions{gap:var(--space-1);opacity:0;transition:opacity var(--transition-fast);margin-left:auto;display:flex}.note-item:hover .note-actions{opacity:1}.empty-state{padding:var(--space-12);color:var(--color-neutral-400);font-size:var(--text-sm);text-align:center;justify-content:center;align-items:center;gap:var(--space-2);flex-direction:column;display:flex}.content-area{max-width:1280px;padding:0 var(--space-6);margin:0 auto}.section-header{margin:var(--space-5) 0 var(--space-3);justify-content:space-between;align-items:center;display:flex}.section-title{font-family:var(--font-serif);font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-primary-900);letter-spacing:-.01em}.section-count{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--font-normal);color:var(--color-neutral-400);margin-left:var(--space-2);letter-spacing:.02em}.doc-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.doc-grid-card{cursor:pointer;transition:box-shadow var(--transition-slow), transform var(--transition-slow);overflow:hidden}.doc-grid-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}.doc-grid-thumb{aspect-ratio:8.5/11;background:var(--color-neutral-100);border-bottom:1px solid var(--color-neutral-200);width:100%;overflow:hidden}.doc-grid-thumb img{object-fit:cover;object-position:top center;width:100%;height:100%}.doc-grid-info{padding:var(--space-2) var(--space-3) var(--space-3)}.doc-grid-bates{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-primary-800);letter-spacing:.02em}.doc-grid-title{font-size:var(--text-xs);color:var(--color-neutral-500);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;overflow:hidden}.doc-grid-meta{font-size:var(--text-xs);color:var(--color-neutral-400);margin-top:var(--space-1);flex-wrap:wrap;align-items:center;gap:4px;display:flex}.saved-searches{position:relative}.saved-list{max-height:320px;overflow-y:auto}.saved-item{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);cursor:pointer;transition:background var(--transition-fast);display:flex}.saved-item:hover{background:var(--color-neutral-50)}.saved-item .query{color:var(--color-neutral-500);font-size:var(--text-xs);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.saved-item .delete-btn{opacity:0;transition:opacity var(--transition-fast);margin-left:auto}.saved-item:hover .delete-btn{opacity:1}.auth-divider{align-items:center;gap:var(--space-3);margin:var(--space-5) 0;color:var(--color-neutral-400);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--color-neutral-200);flex:1;height:1px}.auth-toggle{margin-top:var(--space-5);text-align:center;font-size:var(--text-sm);color:var(--color-neutral-500)}.auth-toggle-link{color:var(--color-brand-600);font-weight:var(--font-semibold);cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0}.auth-toggle-link:hover{color:var(--color-brand-700);text-decoration:underline}.view-toggle{background:var(--color-neutral-100);border-radius:var(--radius-md);gap:2px;padding:2px;display:inline-flex}.view-toggle-btn{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-neutral-500);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;padding:4px 10px}.view-toggle-btn.active{background:var(--color-neutral-0);color:var(--color-primary-800);box-shadow:var(--shadow-xs)}.view-toggle-btn:hover:not(.active){color:var(--color-neutral-700)}.production-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));max-width:900px;margin:0 auto;display:grid}.production-card{width:100%;padding:var(--space-5);cursor:pointer;background:var(--color-card);text-align:left;font:inherit;color:inherit;transition:box-shadow var(--transition-slow), transform var(--transition-slow);border:none;display:block}.production-card:hover,.production-card:focus-visible{box-shadow:var(--shadow-lg);outline:none;transform:translateY(-2px)}.production-card-name{font-family:var(--font-serif);font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-primary-900);margin-bottom:var(--space-2)}.production-card-desc{font-size:var(--text-sm);color:var(--color-neutral-500);margin-bottom:var(--space-3);line-height:var(--leading-relaxed)}.production-card-meta{align-items:center;gap:var(--space-2);display:flex}.welcome-page{background:var(--color-ink);min-height:100vh;color:var(--color-neutral-0);background-image:radial-gradient(80% 50% at 50% 0,#3a5080,#0000),radial-gradient(50% 30% at 70% 100%,#8b735514,#0000);flex-direction:column;display:flex}.welcome-header{padding:var(--space-4) var(--space-6);justify-content:space-between;align-items:center;display:flex}.welcome-logo{font-family:var(--font-serif);font-size:var(--text-xl);font-weight:var(--font-bold);letter-spacing:-.01em}.welcome-user{align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:#fff9;display:flex}.welcome-content{padding:var(--space-8) var(--space-6);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;max-width:800px;margin:0 auto;display:flex}.welcome-title{font-family:var(--font-serif);font-size:2.5rem;font-weight:var(--font-bold);letter-spacing:-.02em;margin-bottom:var(--space-3)}.welcome-subtitle{font-size:var(--text-lg);color:#fff9;margin-bottom:var(--space-10);line-height:var(--leading-relaxed)}.welcome-features{gap:var(--space-6);margin-bottom:var(--space-10);grid-template-columns:repeat(3,1fr);width:100%;display:grid}.welcome-feature{padding:var(--space-5);border-radius:var(--radius-lg);text-align:center;background:#ffffff0d;border:1px solid #ffffff1a}.welcome-feature-icon{margin-bottom:var(--space-3);font-size:1.75rem}.welcome-feature h3{font-family:var(--font-serif);font-size:var(--text-base);font-weight:var(--font-semibold);margin-bottom:var(--space-2)}.welcome-feature p{font-size:var(--text-sm);color:#ffffff8c;line-height:var(--leading-relaxed)}.welcome-actions{align-items:center;gap:var(--space-4);flex-direction:column;display:flex}.welcome-hint{font-size:var(--text-sm);color:#fff6;font-style:italic}@media (width<=768px){.desktop-only{display:none!important}body:after{display:none}.app-header{gap:var(--space-2);padding:0 var(--space-3);height:var(--header-height);-webkit-overflow-scrolling:touch;scrollbar-width:none;overflow:auto hidden}.app-header::-webkit-scrollbar{display:none}.app-header .logo{font-size:var(--text-lg);flex-shrink:0}.app-header .user-menu{gap:var(--space-2);flex-shrink:0}.app-header .btn-header{padding:3px var(--space-2);white-space:nowrap;font-size:10px}.content-area{padding:0 var(--space-3)}.section-header{align-items:flex-start;gap:var(--space-2);margin:var(--space-3) 0 var(--space-2);flex-direction:column}.section-header>div:last-child{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;width:100%;overflow-x:auto}.section-header>div:last-child::-webkit-scrollbar{display:none}.card:has(.doc-table){-webkit-overflow-scrolling:touch;overflow-x:auto}.doc-table th,.doc-table td{padding:var(--space-1-5) var(--space-2);font-size:var(--text-xs)}.doc-table th:first-child,.doc-table td:first-child,.doc-table th:last-child,.doc-table td:last-child{display:none}.doc-table .bates-cell{font-size:10px}.doc-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.search-row{flex-wrap:wrap}.pagination{gap:var(--space-2);padding:var(--space-3) var(--space-2);flex-wrap:wrap}.login-card{width:calc(100vw - var(--space-6));max-width:380px;padding:var(--space-6)}.modal-panel{width:calc(100vw - var(--space-4));max-width:480px;max-height:85vh}.modal-panel.modal-large{width:calc(100vw - var(--space-4));max-height:90vh}.welcome-features{gap:var(--space-3);grid-template-columns:1fr}.welcome-title{font-size:var(--text-2xl)}.welcome-content{padding:var(--space-4) var(--space-3)}.production-grid{grid-template-columns:1fr}.viewer-layout{flex-direction:column}.viewer-left-sidebar{border-right:none;border-bottom:1px solid var(--color-neutral-200);width:100%;max-height:none;overflow-y:visible}.viewer-sidebar{border-left:none;border-top:1px solid var(--color-neutral-200);width:100%;max-height:none}.doc-nav{gap:var(--space-2);padding:var(--space-2) var(--space-3);flex-wrap:wrap}.doc-nav .jump-bates{width:100%;margin-left:0}.image-viewport{padding:var(--space-2)}.image-toolbar{gap:var(--space-1);padding:var(--space-1-5) var(--space-2);flex-wrap:wrap}.toast-container{left:var(--space-3);right:var(--space-3);bottom:var(--space-3)}.toast{max-width:100%}.floating-bar{left:var(--space-3);right:var(--space-3);bottom:var(--space-3);padding:var(--space-2) var(--space-4);justify-content:center;transform:none}@keyframes float-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.empty-state{padding:var(--space-6) var(--space-3)}.tag-bar{padding:var(--space-2) var(--space-3);flex-wrap:wrap}.tabs,.viewer-center-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.viewer-center-tabs::-webkit-scrollbar{display:none}}
