:root{font-family:Inter,Noto Sans JP,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;--color-text-primary: #0f172a;--color-text-secondary: #334155;--color-text-tertiary: #475569;--color-text-muted: #64748b;--color-background: #f5f7fb;--color-background-gradient-start: #eff6ff;--color-background-gradient-mid: #f5f7fb;--color-background-gradient-end: #eef2ff;--color-surface: rgba(255, 255, 255, .9);--color-surface-secondary: rgba(248, 250, 252, .85);--color-surface-tertiary: rgba(241, 245, 249, .6);--color-border: rgba(15, 23, 42, .1);--color-border-secondary: rgba(148, 163, 184, .35);--color-border-tertiary: rgba(148, 163, 184, .6);--color-primary: #4338ca;--color-primary-dark: #1d4ed8;--color-accent: #0e7490;--color-shadow: rgba(15, 23, 42, .4);--color-shadow-light: rgba(15, 23, 42, .15);color:var(--color-text-primary);background-color:var(--color-background)}:root.dark{--color-text-primary: #f8fafc;--color-text-secondary: #e2e8f0;--color-text-tertiary: #cbd5e1;--color-text-muted: #94a3b8;--color-background: #0f172a;--color-background-gradient-start: #1e293b;--color-background-gradient-mid: #0f172a;--color-background-gradient-end: #1e1b4b;--color-surface: rgba(30, 41, 59, .95);--color-surface-secondary: rgba(51, 65, 85, .9);--color-surface-tertiary: rgba(71, 85, 105, .8);--color-border: rgba(241, 245, 249, .15);--color-border-secondary: rgba(148, 163, 184, .3);--color-border-tertiary: rgba(148, 163, 184, .4);--color-primary: #a5b4fc;--color-primary-dark: #818cf8;--color-accent: #67e8f9;--color-shadow: rgba(0, 0, 0, .6);--color-shadow-light: rgba(0, 0, 0, .3)}:root.dark .theme-option input[type=radio]:checked+.theme-option__content{background:#6366f140;border-color:#a5b4fc}body{margin:0;min-height:100vh;background:radial-gradient(circle at top,var(--color-background-gradient-start) 0%,var(--color-background-gradient-mid) 45%,var(--color-background-gradient-end) 100%)}a{color:inherit}code{font-family:Source Code Pro,Fira Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}*{box-sizing:border-box}.app{min-height:100vh;display:flex;flex-direction:column;gap:2.5rem;max-width:1200px;margin:0 auto;padding:3.5rem 1.5rem 4rem}.hero{position:relative;display:flex;flex-direction:column;gap:1rem;background:linear-gradient(135deg,#3730a324,#0e749017);border:1px solid rgba(79,70,229,.2);border-radius:28px;padding:2.75rem 2.5rem;box-shadow:0 20px 55px -32px var(--color-shadow)}:root.dark .hero{background:linear-gradient(135deg,#4f46e533,#0e749026);border-color:#818cf84d}.settings-button{position:absolute;top:2rem;right:2rem;padding:.65rem 1.25rem;font-size:.95rem}.hero__eyebrow{font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--color-primary)}.hero h1{margin:0;font-size:clamp(2.6rem,5vw,3.6rem);color:var(--color-text-primary)}.hero__subtitle{margin:0;color:var(--color-text-secondary);max-width:60rem;line-height:1.7}.hero__meta{display:flex;flex-wrap:wrap;gap:1rem;color:var(--color-text-primary);font-size:.95rem}.layout{display:flex;flex-direction:column;gap:2rem}.panel{background:var(--color-surface);border-radius:24px;border:1px solid var(--color-border);box-shadow:0 18px 48px -38px var(--color-shadow);padding:2.5rem 2rem;display:flex;flex-direction:column;gap:1.5rem}.panel h2{margin:0;font-size:1.75rem;color:var(--color-text-primary)}.panel__description{margin:0;color:var(--color-text-tertiary);line-height:1.6}.uploader{position:relative;border:1.5px dashed rgba(59,130,246,.5);border-radius:20px;padding:2.5rem 1.5rem;text-align:center;background:#eff6ffb3;color:var(--color-primary);cursor:pointer;transition:border-color .16s ease,transform .16s ease}:root.dark .uploader{border-color:#818cf880;background:#37415180;color:#e0e7ff}.uploader:hover{transform:translateY(-2px);border-color:#3b82f6b3}:root.dark .uploader:hover{border-color:#a5b4fccc;background:#374151b3}.uploader input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.uploader__prompt{margin:0;font-weight:600;font-size:1rem}.uploader__hint{margin:.5rem 0 0;color:var(--color-text-tertiary);font-size:.9rem}.file-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.75rem}.file-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-radius:16px;background:var(--color-surface-secondary);border:1px solid var(--color-border-secondary);gap:1.25rem}.file-item strong{display:block;color:var(--color-text-primary)}.file-item span{color:var(--color-text-tertiary);font-size:.9rem}.actions{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.75rem 1.5rem;font-weight:600;letter-spacing:.02em;border:none;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}.button.primary{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));color:#f8fafc;box-shadow:0 12px 30px -18px #2563eb99}.button.primary:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 16px 38px -18px #2563eba6}.button.secondary{background:#ecfeffd9;color:var(--color-text-primary);border:1px solid rgba(6,182,212,.4)}:root.dark .button.secondary{background:#164e6380;border-color:#22d3ee66;color:#e0f2fe}.button.secondary:not(:disabled):hover{transform:translateY(-1px)}:root.dark .button.secondary:not(:disabled):hover{background:#164e63b3;border-color:#22d3ee99}.button.subtle{background:var(--color-surface-secondary);color:var(--color-text-primary);border:1px solid var(--color-border-secondary);padding:.5rem 1rem;border-radius:999px}.button.subtle:not(:disabled):hover{background:var(--color-surface-tertiary)}.alert{margin:0;padding:.75rem 1rem;border-radius:12px;font-size:.95rem}.alert--error{background:#f8717126;color:#b91c1c;border:1px solid rgba(248,113,113,.35)}:root.dark .alert--error{background:#7f1d1d66;color:#fca5a5;border-color:#ef444466}.alert--success{background:#86efac33;color:#166534;border:1px solid rgba(74,222,128,.35)}:root.dark .alert--success{background:#14532d66;color:#86efac;border-color:#4ade8066}.alert--info{background:#bfdbfe59;color:#1d4ed8;border:1px solid rgba(96,165,250,.5)}:root.dark .alert--info{background:#1e40af4d;color:#bfdbfe;border-color:#60a5fa66}.results{gap:1.75rem}.results__header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.placeholder{padding:1.5rem;border-radius:18px;background:#f1f5f999;border:1px dashed rgba(148,163,184,.6);color:#475569;text-align:center}:root.dark .placeholder{background:#33415580;border-color:#94a3b84d;color:#cbd5e1}.placeholder--compact{margin-top:1rem}.session{display:flex;flex-direction:column;gap:1rem;padding:1.75rem;border-radius:22px;border:1px solid rgba(148,163,184,.35);background:#ffffffbf}:root.dark .session{background:#1e293b99;border-color:#94a3b840}.session+.session{margin-top:1.5rem}.session__header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.session__header h3{margin:0;font-size:1.35rem;color:var(--color-text-primary)}.session__meta{display:inline-flex;gap:.5rem;font-size:.9rem;color:var(--color-text-tertiary)}.warnings{margin:0;padding-left:1.1rem;color:#b45309;font-size:.95rem}:root.dark .warnings{color:#fbbf24}.transaction{display:flex;flex-direction:column;gap:1.25rem;padding:1.5rem;border-radius:18px;background:var(--color-surface-secondary);border:1px solid rgba(191,219,254,.6)}:root.dark .transaction{border-color:#6366f14d}.transaction+.transaction{margin-top:1rem}.transaction__header{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.transaction__header h4{margin:0;font-size:1.15rem;color:var(--color-text-primary)}.transaction__meta{display:flex;flex-wrap:wrap;gap:.75rem;font-size:.9rem;color:var(--color-text-tertiary)}.field-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.field-grid--wide{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}label{display:flex;flex-direction:column;gap:.45rem;font-size:.95rem;color:var(--color-text-primary)}label span{font-weight:600}input,select{font:inherit;border-radius:12px;border:1px solid var(--color-border-tertiary);padding:.6rem .75rem;background:var(--color-surface);color:var(--color-text-primary);transition:border-color .16s ease,box-shadow .16s ease}input:focus,select:focus{outline:none;border-color:#2563ebbf;box-shadow:0 0 0 3px #bfdbfeb3}.raw-text details{background:#e0e7ff73;border-radius:14px;padding:.75rem 1rem;border:1px solid rgba(165,180,252,.4)}:root.dark .raw-text details{background:#3730a340;border-color:#818cf84d}.raw-text summary{cursor:pointer;font-weight:600;color:var(--color-primary)}.raw-text p{margin:.75rem 0 0;color:var(--color-text-secondary);line-height:1.6;white-space:pre-wrap}.transaction-compact{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.25rem 1.5rem;border-radius:16px;background:var(--color-surface-secondary);border:1px solid rgba(191,219,254,.6);transition:box-shadow .16s ease,transform .16s ease}:root.dark .transaction-compact{border-color:#6366f14d}.transaction-compact:hover{box-shadow:0 4px 12px -4px var(--color-shadow-light);transform:translateY(-1px)}.transaction-compact+.transaction-compact{margin-top:.75rem}.transaction-compact__info{flex:1;display:flex;flex-direction:column;gap:.75rem}.transaction-compact__index{font-weight:700;font-size:.95rem;color:var(--color-primary)}.transaction-compact__details{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.5rem 1.5rem}.transaction-compact__row{display:flex;align-items:flex-start;flex-direction:column;justify-content:flex-start;flex-wrap:nowrap;gap:.5rem}.transaction-compact__label{font-size:.85rem;color:var(--color-text-muted);font-weight:600;white-space:nowrap}.transaction-compact__value{font-size:.95rem;color:var(--color-text-primary);font-weight:500}.modal-overlay{position:fixed;inset:0;background:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--color-surface);border-radius:24px;box-shadow:0 24px 60px -16px var(--color-shadow);max-width:800px;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:slideUp .22s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:2rem 2.5rem 1.5rem;border-bottom:1px solid var(--color-border-secondary)}.modal-header h3{margin:0;font-size:1.75rem;color:var(--color-text-primary)}.modal-close{background:none;border:none;font-size:1.75rem;color:var(--color-text-muted);cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:background .16s ease,color .16s ease}.modal-close:hover{background:var(--color-surface-tertiary);color:var(--color-text-primary)}.modal-body{padding:2rem 2.5rem;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:1.5rem}.modal-footer{display:flex;justify-content:flex-end;gap:1rem;padding:1.5rem 2.5rem 2rem;border-top:1px solid var(--color-border-secondary)}.confidence-info{padding:.75rem 1rem;background:#eff6ffb3;border:1px solid rgba(59,130,246,.3);border-radius:12px;color:#1e3a8a;font-size:.95rem;font-weight:600}:root.dark .confidence-info{background:#1e3a8a4d;border-color:#60a5fa66;color:#bfdbfe}.settings-modal{max-width:600px}.settings-modal .modal-header h2{font-size:1.5rem}.settings-description{margin:0;color:var(--color-text-tertiary);line-height:1.6;font-size:.95rem}.form-group{display:flex;flex-direction:column;gap:.75rem}.form-group label{display:flex;align-items:center;gap:.5rem;font-weight:600;color:var(--color-text-primary)}.badge{display:inline-flex;align-items:center;padding:.25rem .75rem;background:#4ade8033;color:#166534;border-radius:999px;font-size:.75rem;font-weight:600;border:1px solid rgba(74,222,128,.35)}:root.dark .badge{background:#22c55e40;color:#86efac;border-color:#4ade8066}.input-with-toggle{display:flex;gap:.5rem;align-items:stretch}.input-field{flex:1;font:inherit;border-radius:12px;border:1px solid var(--color-border-tertiary);padding:.75rem 1rem;background:var(--color-surface);color:var(--color-text-primary);transition:border-color .16s ease,box-shadow .16s ease}.input-field:focus{outline:none;border-color:#2563ebbf;box-shadow:0 0 0 3px #bfdbfeb3}.toggle-visibility{white-space:nowrap}.settings-links{margin-top:.5rem}.settings-links p{margin:0}.external-link{color:#2563eb;text-decoration:none;font-weight:500;transition:color .16s ease}:root.dark .external-link{color:#93c5fd}.external-link:hover{color:#1d4ed8;text-decoration:underline}:root.dark .external-link:hover{color:#bfdbfe}.theme-selector{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.theme-option{position:relative;cursor:pointer;margin:0}.theme-option input[type=radio]{position:absolute;opacity:0;width:0;height:0}.theme-option__content{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem .75rem;border:2px solid var(--color-border-secondary);border-radius:12px;background:var(--color-surface-secondary);transition:all .16s ease;width:100%}.theme-option:hover .theme-option__content{border-color:#6366f180;background:var(--color-surface-tertiary)}.theme-option input[type=radio]:checked+.theme-option__content{border-color:var(--color-primary);background:#e0e7ffe6;box-shadow:0 0 0 3px #6366f133}.theme-option__icon{font-size:1.75rem}.theme-option__label{font-size:.95rem;font-weight:600;color:var(--color-text-primary)}@media (max-width: 640px){.app{padding:2.75rem 1.1rem 3rem}.hero{padding:4rem 1.5rem 2.25rem}.settings-button{top:1rem;right:1rem;padding:.5rem 1rem;font-size:.85rem}.results__header{flex-direction:column;align-items:flex-start}.actions,.transaction-compact{flex-direction:column;align-items:stretch}.transaction-compact__details{grid-template-columns:1fr}.modal-content{max-height:95vh;border-radius:16px}.modal-header,.modal-body,.modal-footer{padding-left:1.5rem;padding-right:1.5rem}.input-with-toggle{flex-direction:column}}
