*{box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--primary-blue:#3872f6;--primary-blue-dark:#2257d7;--primary-blue-light:#eef4ff;--primary-gradient:linear-gradient(135deg,#4d84ff,#245bd9);--accent-purple:#8b5cf6;--accent-indigo:#5b6ff8;--accent-cyan:#0ea5e9;--success-green:#10b981;--success-green-light:#d1fae5;--success-text:#065f46;--warning-orange:#f59e0b;--warning-orange-light:#fef3c7;--warning-text:#92400e;--error-red:#ef4444;--error-red-light:#fee2e2;--error-text:#b91c1c;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--bg-body:#eef2f8;--bg-white:#fff;--bg-subtle:#f8fafd;--bg-gradient:linear-gradient(180deg,#eef4ff,#e9f0fb 46%,#f4f7fc);--surface-raised:hsla(0,0%,100%,.94);--surface-muted:#f5f8fc;--surface-strong:#eef4ff;--surface-overlay:rgba(15,23,42,.44);--text-primary:#101828;--text-secondary:#344054;--text-tertiary:#667085;--text-muted:#98a2b3;--text-inverse:#fff;--border-subtle:rgba(148,163,184,.18);--border-default:rgba(148,163,184,.28);--border-strong:rgba(59,130,246,.38);--ring-primary:0 0 0 4px rgba(56,114,246,.14);--container-max:1400px;--page-shell-padding:2rem;--ui-scale:0.7;--shadow-sm:0 6px 18px rgba(15,23,42,.04);--shadow-md:0 12px 28px rgba(15,23,42,.08);--shadow-lg:0 18px 44px rgba(15,23,42,.1);--shadow-xl:0 28px 60px rgba(15,23,42,.14);--shadow-hover:0 22px 48px rgba(56,114,246,.18);--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--spacing-xs:0.5rem;--spacing-sm:0.75rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--transition-fast:0.15s ease;--transition-normal:0.3s cubic-bezier(0.4,0,0.2,1);--transition-bounce:0.5s cubic-bezier(0.68,-0.55,0.265,1.55)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;zoom:.7;zoom:var(--ui-scale);background-color:#eef2f8;background-color:var(--bg-body);color:#101828;color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans JP,Hiragino Kaku Gothic ProN,Meiryo,Helvetica Neue,Arial,sans-serif;letter-spacing:-.01em;line-height:1.6;overflow-x:hidden}::selection{background:rgba(56,114,246,.18);color:#101828;color:var(--text-primary)}@supports not (zoom:1){body{transform:scale(.7);transform:scale(var(--ui-scale));transform-origin:top left;width:142.85714%;width:calc(100%/var(--ui-scale))}}button{font-family:inherit;letter-spacing:-.01em}button,input,textarea{transition:border-color .3s cubic-bezier(.4,0,.2,1),box-shadow .3s cubic-bezier(.4,0,.2,1),background-color .3s cubic-bezier(.4,0,.2,1),color .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1);transition:border-color var(--transition-normal),box-shadow var(--transition-normal),background-color var(--transition-normal),color var(--transition-normal),transform var(--transition-normal)}.btn-primary{align-items:center;background:linear-gradient(135deg,#4d84ff,#245bd9);background:var(--primary-gradient);border:none;border-radius:calc(.75rem + 2px);border-radius:calc(var(--radius-lg) + 2px);box-shadow:0 12px 28px rgba(15,23,42,.08);box-shadow:var(--shadow-md);color:#fff;color:var(--text-inverse);cursor:pointer;display:flex;font-size:1rem;font-weight:700;gap:.75rem;gap:var(--spacing-sm);justify-content:center;letter-spacing:-.01em;padding:1rem 1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1);transition:all var(--transition-normal);width:100%}.btn-primary:hover:not(:disabled){box-shadow:0 22px 48px rgba(56,114,246,.18);box-shadow:var(--shadow-hover);filter:saturate(1.05) brightness(1.02);transform:translateY(-2px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{background:#d1d5db;background:var(--gray-300);box-shadow:none;color:#6b7280;color:var(--gray-500);cursor:not-allowed;transform:none}.btn-secondary{align-items:center;background:hsla(0,0%,100%,.94);background:var(--surface-raised);border:1px solid rgba(148,163,184,.28);border:1px solid var(--border-default);border-radius:calc(.5rem + 2px);border-radius:calc(var(--radius-md) + 2px);color:#344054;color:var(--text-secondary);cursor:pointer;display:inline-flex;font-size:.95rem;font-weight:600;gap:.5rem;justify-content:center;padding:.72rem 1.2rem;transition:all .3s cubic-bezier(.4,0,.2,1);transition:all var(--transition-normal)}.btn-secondary:hover:not(:disabled){background:#fff;background:var(--bg-white);border-color:rgba(59,130,246,.38);border-color:var(--border-strong);box-shadow:0 6px 18px rgba(15,23,42,.04);box-shadow:var(--shadow-sm);color:#2257d7;color:var(--primary-blue-dark);transform:translateY(-1px)}.btn-secondary:disabled{background:#f3f4f6;background:var(--gray-100);cursor:not-allowed;opacity:.6}.btn-icon{align-items:center;display:inline-flex;gap:.5rem;gap:var(--spacing-xs)}.card,.phase-card{background:hsla(0,0%,100%,.94);background:var(--surface-raised);border:1px solid rgba(148,163,184,.18);border:1px solid var(--border-subtle);border-radius:calc(1rem + 2px);border-radius:calc(var(--radius-xl) + 2px);box-shadow:0 12px 28px rgba(15,23,42,.08);box-shadow:var(--shadow-md);padding:2rem;padding:var(--spacing-xl);transition:box-shadow .3s cubic-bezier(.4,0,.2,1);transition:box-shadow var(--transition-normal)}.card:hover{box-shadow:0 18px 44px rgba(15,23,42,.1);box-shadow:var(--shadow-lg)}.login-title{color:#3872f6;color:var(--primary-blue);font-size:clamp(1.25rem,2.2vw,1.7rem);letter-spacing:-.02em;line-height:1.2;white-space:nowrap}.section{background:hsla(0,0%,100%,.94);background:var(--surface-raised);border:1px solid rgba(148,163,184,.18);border:1px solid var(--border-subtle);border-radius:calc(.75rem + 2px);border-radius:calc(var(--radius-lg) + 2px);box-shadow:0 6px 18px rgba(15,23,42,.04);box-shadow:var(--shadow-sm);margin-bottom:1.5rem;margin-bottom:var(--spacing-lg);padding:1.5rem;padding:var(--spacing-lg)}.section-title{border-bottom:2px solid #eef4ff;border-bottom:2px solid var(--primary-blue-light);color:#111827;color:var(--gray-900);display:inline-block;font-size:1.25rem;font-weight:700;margin:0 0 1.5rem;margin:0 0 var(--spacing-lg) 0;padding-bottom:.5rem;padding-bottom:var(--spacing-xs)}.input-field,input[type=number],input[type=text],textarea{background:hsla(0,0%,100%,.94);background:var(--surface-raised);border:1px solid rgba(148,163,184,.28);border:1px solid var(--border-default);border-radius:calc(.5rem + 2px);border-radius:calc(var(--radius-md) + 2px);box-shadow:inset 0 1px 2px rgba(15,23,42,.02);color:#101828;color:var(--text-primary);font-family:inherit;font-size:1rem;padding:.9rem 1rem;transition:all .3s cubic-bezier(.4,0,.2,1);transition:all var(--transition-normal);width:100%}.input-field:focus,input[type=number]:focus,input[type=text]:focus,textarea:focus{border-color:#3872f6;border-color:var(--primary-blue);box-shadow:0 0 0 4px rgba(56,114,246,.14);box-shadow:var(--ring-primary);outline:none}.input-field.error,textarea.error{background-color:snow;border-color:#ef4444;border-color:var(--error-red)}.input-field.error:focus,textarea.error:focus{box-shadow:0 0 0 4px rgba(239,68,68,.14)}.input-label{color:#374151;color:var(--gray-700);display:block;font-size:.95rem;font-weight:600;margin-bottom:.4rem}.input-error{align-items:center;color:#ef4444;color:var(--error-red);display:flex;font-size:.85rem;gap:.25rem;margin-top:.4rem}.spinner{border:2px solid hsla(0,0%,100%,.3);border-radius:50%;border-top-color:#fff;height:1.25rem;width:1.25rem}.spinner,.spinner-large{animation:spin .8s linear infinite}.spinner-large{border:4px solid #e5e7eb;border-top-color:#3872f6;border:4px solid var(--gray-200);border-radius:50%;border-top-color:var(--primary-blue);display:block;height:3.5rem;margin:0 auto 2rem;margin:0 auto var(--spacing-xl);width:3.5rem}.loading-text{color:#4b5563;color:var(--gray-600);font-weight:500;margin-top:1rem;margin-top:var(--spacing-md);text-align:center}.badge{align-items:center;border-radius:9999px;display:inline-flex;font-size:.75rem;font-weight:700;letter-spacing:.015em;padding:.32rem .72rem;white-space:nowrap}.badge-success{background:#d1fae5;background:var(--success-green-light);border:1px solid transparent;color:#065f46;color:var(--success-text)}.badge-warning{background:#fef3c7;background:var(--warning-orange-light);color:#92400e;color:var(--warning-text)}.badge-error{background:#fee2e2;background:var(--error-red-light);color:#b91c1c;color:var(--error-text)}.badge-info{background:#eef4ff;background:var(--primary-blue-light);color:#2257d7;color:var(--primary-blue-dark)}.status-icon{align-items:center;border-radius:50%;display:flex;flex-shrink:0;font-size:1rem;font-weight:700;height:2.25rem;justify-content:center;transition:transform .3s cubic-bezier(.4,0,.2,1);transition:transform var(--transition-normal);width:2.25rem}.status-icon.completed{background:#d1fae5;background:var(--success-green-light);border:2px solid #fff;box-shadow:0 0 0 2px #d1fae5;box-shadow:0 0 0 2px var(--success-green-light);color:#10b981;color:var(--success-green)}.status-icon.processing{animation:spin 1.5s linear infinite;background:#fef3c7;background:var(--warning-orange-light);color:#f59e0b;color:var(--warning-orange)}.status-icon.failed{background:#fee2e2;background:var(--error-red-light);color:#ef4444;color:var(--error-red)}.empty-state{background:linear-gradient(180deg,#f5f8fc,#fff);background:linear-gradient(180deg,var(--surface-muted) 0,var(--bg-white) 100%);border:1px dashed rgba(148,163,184,.28);border:1px dashed var(--border-default);border-radius:calc(.75rem + 4px);border-radius:calc(var(--radius-lg) + 4px);padding:4rem 2rem;transition:all .3s cubic-bezier(.4,0,.2,1);transition:all var(--transition-normal)}.empty-state:hover{background:linear-gradient(180deg,#eef4ff,#fff);background:linear-gradient(180deg,var(--surface-strong) 0,var(--bg-white) 100%);border-color:rgba(59,130,246,.38);border-color:var(--border-strong)}.empty-state p{color:#4b5563;color:var(--gray-600);font-weight:500;margin:.5rem 0;margin:var(--spacing-xs) 0}.empty-state-hint{color:#6b7280;color:var(--gray-500);font-size:.9rem}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.mb-1{margin-bottom:.5rem;margin-bottom:var(--spacing-xs)}.mb-2{margin-bottom:1rem;margin-bottom:var(--spacing-md)}.mb-3{margin-bottom:1.5rem;margin-bottom:var(--spacing-lg)}.mt-1{margin-top:.5rem;margin-top:var(--spacing-xs)}.mt-2{margin-top:1rem;margin-top:var(--spacing-md)}.mt-3{margin-top:1.5rem;margin-top:var(--spacing-lg)}.flex{display:flex}.flex-center{justify-content:center}.flex-between,.flex-center{align-items:center;display:flex}.flex-between{justify-content:space-between}.flex-column{display:flex;flex-direction:column}.gap-1{gap:.5rem;gap:var(--spacing-xs)}.gap-2{gap:1rem;gap:var(--spacing-md)}.gap-3{gap:1.5rem;gap:var(--spacing-lg)}.dashboard-container,.phase1-input,.phase2-formula-selection,.phase2-pdf-upload,.phase2-realization-selection,.phase3-results{background:linear-gradient(180deg,hsla(0,0%,100%,.97),#fff);border:1px solid rgba(148,163,184,.18);border:1px solid var(--border-subtle);border-radius:calc(1rem + 6px);border-radius:calc(var(--radius-xl) + 6px);box-shadow:0 18px 44px rgba(15,23,42,.1);box-shadow:var(--shadow-lg);margin:0 auto;max-width:1400px;max-width:var(--container-max);min-height:80vh;padding:2rem;padding:var(--page-shell-padding)}.active-tasks-bar,.analysis-detail-content,.workflow-header{background:hsla(0,0%,100%,.94);background:var(--surface-raised);border:1px solid rgba(148,163,184,.18);border:1px solid var(--border-subtle);box-shadow:0 12px 28px rgba(15,23,42,.08);box-shadow:var(--shadow-md)}.phase-title{align-items:baseline;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin:0 0 .5rem;text-align:center}.phase-title-step,.phase-title-text{color:#111827;color:var(--gray-900);font-size:1.8rem;font-weight:800;letter-spacing:-.025em}.phase-description-banner{margin:0 0 1.85rem}.App{background:var(--bg-gradient);min-height:100vh;min-height:calc(100vh/var(--ui-scale, 1))}.container{margin:0 auto;max-width:var(--container-max);padding:var(--page-shell-padding)}.workflow-header{background:linear-gradient(180deg,hsla(0,0%,100%,.96),#fff);border-radius:calc(var(--radius-xl) + 6px);margin-bottom:2rem;padding:2rem 2.2rem}.workflow-header-detail{margin-bottom:.7rem}.workflow-header h1{color:var(--text-primary);font-size:1.58rem;font-weight:800;letter-spacing:-.02em;margin:0 0 1.75rem;text-align:center}.phase-indicator{align-items:stretch;display:flex;gap:.55rem;justify-content:stretch;position:relative}.phase-step{background:linear-gradient(180deg,var(--surface-raised) 0,#fff 100%);border:1px solid var(--border-subtle);border-radius:calc(var(--radius-lg) + 2px);box-shadow:var(--shadow-sm);flex:1 1;font-size:.88rem;padding:.9rem .95rem;position:relative;text-align:left;transition:all .3s cubic-bezier(.4,0,.2,1);z-index:1}.phase-indicator .phase-step:first-child{flex:0.92 1}.phase-indicator .phase-step:nth-child(2){flex:1.48 1}.phase-indicator .phase-step:nth-child(3){flex:2.7 1}.phase-indicator .phase-step:nth-child(4){flex:1.08 1}.phase-step.pending{border-color:var(--border-subtle);color:var(--text-secondary)}.phase-step.active{border-color:var(--border-strong);box-shadow:0 0 0 1px rgba(56,114,246,.28),0 14px 30px rgba(56,114,246,.16);color:var(--text-primary)}.phase-step.completed{background:linear-gradient(180deg,#f2fcf6,#fff);border-color:rgba(16,185,129,.28);box-shadow:var(--shadow-sm);color:var(--success-text)}.phase-step-top{border-bottom:1px solid hsla(0,0%,100%,.15);display:flex;flex-direction:column;gap:.15rem;margin-bottom:.5rem;padding-bottom:.42rem}.phase-step.active .phase-step-top{border-bottom-color:rgba(56,114,246,.16)}.phase-step.pending .phase-step-top{border-bottom-color:var(--border-subtle)}.phase-step.completed .phase-step-top{border-bottom-color:rgba(16,185,129,.18)}.phase-step+.phase-step:before{border-bottom:8px solid transparent;border-left:8px solid rgba(148,163,184,.5);border-top:8px solid transparent;content:"";height:0;left:-.55rem;position:absolute;top:50%;transform:translateY(-50%);width:0;z-index:2}.phase-step.active+.phase-step:before,.phase-step.completed+.phase-step:before{border-left-color:rgba(56,114,246,.72)}.phase-step.completed+.phase-step.completed:before{border-left-color:rgba(16,185,129,.72)}.phase-step-num{color:var(--text-muted);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.phase-step.active .phase-step-num{color:var(--primary-blue)}.phase-step.completed .phase-step-num{color:var(--success-green)}.phase-step-title{color:var(--text-primary);font-size:1rem;font-weight:700;line-height:1.25}.phase-step-list{align-items:center;display:flex;flex-wrap:nowrap;gap:.32rem;list-style:none;margin:0;padding:0}.phase-step-list li{background:var(--surface-muted);border:1px solid var(--border-subtle);border-radius:8px;color:var(--text-secondary);flex-shrink:1;font-size:.78rem;font-weight:700;line-height:1.15;margin:0;min-width:0;padding:.26rem .42rem;position:relative;white-space:nowrap}.phase-step-list li:before{content:none}.phase-step.active .phase-step-list li{color:var(--text-secondary)}.phase-step-list li.current{background:var(--primary-blue-light);border-color:rgba(56,114,246,.34);color:var(--primary-blue-dark);font-weight:900}.phase-step-list li.completed{background:#eefbf3;border-color:rgba(16,185,129,.22);color:var(--success-text)}.phase-step.active .phase-step-list li.current{border-color:rgba(56,114,246,.48);box-shadow:0 0 0 2px rgba(56,114,246,.12)}.phase-step.active .phase-step-list li.completed{background:#eefbf3;border-color:rgba(16,185,129,.22);color:var(--success-text)}.phase-step.pending .phase-step-list li{color:var(--text-tertiary)}.phase-step.completed .phase-step-list li{background:#eefbf3;border-color:rgba(16,185,129,.22);color:var(--success-text)}.workflow-step-description{background:linear-gradient(135deg,var(--surface-strong) 0,#f8fbff 100%);border:1px solid rgba(56,114,246,.12);border-left:4px solid var(--primary-blue);border-radius:calc(var(--radius-md) + 4px);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.8);color:var(--text-secondary);font-size:.92rem;font-weight:600;line-height:1.7;margin:1.5rem 0 0;padding:.95rem 1.2rem}.active-tasks-bar{animation:slideDown .3s ease-out;background:linear-gradient(180deg,var(--surface-raised) 0,#fff 100%);border-radius:calc(var(--radius-lg) + 4px);margin:1rem auto;max-width:var(--container-max);padding:1.5rem}.active-tasks-bar h3{align-items:center;color:var(--text-primary);display:flex;font-size:1.1rem;gap:.5rem;margin:0 0 1rem}.active-tasks-bar h3:before{animation:pulse 2s infinite;background:var(--success-green);border-radius:50%;content:"";display:block;height:8px;width:8px}.task-list{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.task-card{background:linear-gradient(180deg,var(--surface-muted) 0,#fff 100%);border:1px solid var(--border-subtle);border-radius:calc(var(--radius-md) + 2px);box-shadow:var(--shadow-sm);cursor:pointer;display:flex;flex-direction:column;gap:.5rem;overflow:hidden;padding:1rem;position:relative;transition:all var(--transition-normal)}.task-card.active{background:linear-gradient(180deg,var(--primary-blue-light) 0,#fff 100%);border-color:rgba(56,114,246,.42);box-shadow:0 0 0 1px rgba(56,114,246,.2),0 12px 28px rgba(56,114,246,.1)}.task-card:hover{background:linear-gradient(180deg,var(--surface-strong) 0,#fff 100%);border-color:rgba(56,114,246,.28);box-shadow:var(--shadow-md);transform:translateY(-2px)}.task-body,.task-header{align-items:center;display:flex;justify-content:space-between}.delete-task-btn{background:transparent;border:none;border-radius:4px;color:var(--text-muted);cursor:pointer;font-size:1.1rem;line-height:1;opacity:1;padding:0 4px;transition:all .2s}.delete-task-btn:hover{background:rgba(239,68,68,.08);color:var(--error-red)}.task-card:after{display:none}.task-id{background:rgba(148,163,184,.12);border-radius:6px;color:var(--text-primary);font-family:monospace;font-size:1.1rem;font-weight:700;padding:4px 8px;width:fit-content}.task-phase{color:var(--primary-blue-dark);font-size:1rem;font-weight:600}.task-time{color:var(--text-muted);font-size:.8rem}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(16,185,129,.28)}70%{box-shadow:0 0 0 6px rgba(16,185,129,0)}to{box-shadow:0 0 0 0 rgba(16,185,129,0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.app-header{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:hsla(0,0%,100%,.82);border-bottom:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:100}.header-content{justify-content:space-between;margin:0 auto;max-width:var(--container-max);padding:.85rem 2rem}.header-content,.header-left{align-items:center;display:flex}.header-left{flex:1 1;gap:1.5rem}.app-logo{align-items:center;color:var(--text-primary);cursor:pointer;display:flex;font-size:1.2rem;font-weight:800;gap:.65rem;letter-spacing:-.015em;margin:0;transition:color var(--transition-normal);white-space:nowrap}.logo-icon{color:var(--primary-blue);filter:drop-shadow(0 4px 10px rgba(56,114,246,.18))}.header-nav{gap:.5rem}.header-nav,.nav-link{align-items:center;display:flex}.nav-link{background:transparent;border:none;border-radius:calc(var(--radius-md) + 2px);color:var(--text-tertiary);cursor:pointer;font-size:.95rem;font-weight:600;padding:.5rem 1rem;transition:all var(--transition-normal);white-space:nowrap}.nav-link.dashboard-nav{background:rgba(237,244,255,.98);border:1px solid rgba(56,114,246,.24);border-radius:calc(var(--radius-md) + 4px);box-shadow:var(--shadow-sm);color:var(--primary-blue-dark);font-size:.93rem;font-weight:800;gap:.45rem;letter-spacing:-.01em;padding:.58rem .92rem}.nav-link.dashboard-nav:hover{background:rgba(239,244,255,.96);border-color:var(--border-strong);box-shadow:var(--shadow-md);color:var(--primary-blue-dark);transform:translateY(-1px)}.nav-link.dashboard-nav:active{transform:translateY(0)}.nav-link.dashboard-nav:focus-visible{box-shadow:var(--ring-primary),var(--shadow-md);outline:none}.nav-link:hover{background:rgba(148,163,184,.08);color:var(--text-primary)}.nav-link.active{background:var(--primary-blue-light);color:var(--primary-blue-dark);font-weight:700}.nav-link.dashboard-nav.active{background:hsla(0,0%,100%,.72);border-color:var(--border-subtle);box-shadow:var(--shadow-sm);color:var(--text-secondary);font-weight:700}.dashboard-nav-icon{color:currentColor;flex-shrink:0;height:18px;opacity:.9;width:18px}.header-right{flex-shrink:0;gap:1rem}.header-right,.user-profile{align-items:center;display:flex}.user-profile{background:hsla(0,0%,100%,.82);border:1px solid var(--border-subtle);border-radius:9999px;box-shadow:var(--shadow-sm);gap:.6rem;padding:.38rem .68rem;white-space:nowrap}.avatar{align-items:center;background:var(--primary-gradient);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:.85rem;font-weight:700;height:30px;justify-content:center;width:30px}.user-info{display:flex;flex-direction:column;gap:.1rem}.user-name{color:var(--text-secondary);font-size:.9rem;font-weight:600;white-space:nowrap}.user-email{color:#999;font-size:.75rem;white-space:nowrap}.logout-btn-text{background:hsla(0,0%,100%,.84);border:1px solid var(--border-subtle);border-radius:calc(var(--radius-md) + 2px);box-shadow:var(--shadow-sm);color:var(--text-secondary);cursor:pointer;font-size:.8rem;font-weight:600;letter-spacing:-.01em;padding:.56rem .9rem;transition:all var(--transition-normal);white-space:nowrap}.logout-btn-text:hover{background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.2);color:var(--error-text);transform:translateY(-1px)}.dashboard-container{animation:fadeIn .5s ease-out;margin-top:2rem}.dashboard-header{border-bottom:1px solid var(--border-subtle);margin-bottom:2rem;padding-bottom:1.5rem}.dashboard-header-row{align-items:flex-start;display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:space-between}.dashboard-header-left{min-width:280px}.dashboard-header h1{color:var(--text-primary);font-size:2.25rem;font-weight:800;letter-spacing:-.03em;margin-bottom:.5rem;text-align:left}.dashboard-title{align-items:center;display:flex;gap:.8rem}.dashboard-title-icon{align-items:center;color:var(--primary-blue);display:inline-flex;filter:drop-shadow(0 6px 12px rgba(56,114,246,.16));flex-shrink:0;justify-content:center}.dashboard-subtitle{color:var(--text-tertiary);font-size:1.04rem;letter-spacing:-.01em;text-align:left}.start-analysis-btn{align-items:center;background:var(--primary-gradient);border:none;border-radius:calc(var(--radius-xl) + 2px);box-shadow:var(--shadow-lg);color:#fff;cursor:pointer;display:flex;font-size:1.2rem;font-weight:800;gap:.75rem;justify-content:center;margin:1rem auto 0;max-width:420px;padding:1.25rem;transition:all var(--transition-bounce);width:100%}.start-analysis-btn:hover{box-shadow:var(--shadow-hover);filter:saturate(1.04);transform:translateY(-4px) scale(1.02)}.start-analysis-btn:disabled{background:var(--gray-300);box-shadow:none;cursor:not-allowed;transform:none}.btn-icon{font-size:1.5rem;font-weight:300}.usage-section{align-items:center;background:linear-gradient(180deg,var(--surface-muted) 0,#fff 100%);border:1px solid var(--border-subtle);border-radius:calc(var(--radius-lg) + 4px);box-shadow:var(--shadow-sm);display:flex;flex-wrap:wrap;gap:2rem;margin-bottom:3rem;padding:1.5rem 2rem}.usage-section-compact{gap:1rem;justify-content:space-between;margin:0;min-width:220px;padding:.9rem 1.1rem}.usage-section h3{color:var(--text-secondary);font-size:1.1rem;margin:0;min-width:120px}.usage-section-compact h3{font-size:1rem;min-width:0;min-width:auto}.usage-count{align-items:baseline;display:inline-flex;font-family:monospace;font-size:1.18rem;gap:.25rem}.usage-dot{color:var(--primary-blue);font-size:.95rem;line-height:1}.current-usage{color:var(--primary-blue);font-weight:700}.usage-unit{color:var(--gray-600);font-size:.95rem;font-weight:700}.create-map-section{background:linear-gradient(180deg,hsla(0,0%,100%,.98),#fff);border:1px solid var(--border-subtle);border-radius:calc(var(--radius-xl) + 4px);box-shadow:var(--shadow-md);margin-bottom:2.25rem;padding:1.5rem 1.75rem}.create-map-header h2{color:var(--text-primary);font-size:1.5rem;font-weight:800;letter-spacing:-.02em;margin:0}.create-map-desc{color:var(--text-tertiary);line-height:1.6;margin:.5rem 0 0}.create-map-body{margin-top:1.25rem}.create-map-notes{background:linear-gradient(180deg,var(--surface-muted) 0,#fff 100%);border:1px solid var(--border-subtle);border-radius:calc(var(--radius-lg) + 2px);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.8);padding:1rem 1.25rem}.create-map-notes-title{color:var(--text-primary);font-weight:800;margin-bottom:.5rem}.create-map-notes-list{color:var(--text-secondary);margin:0;padding-left:1.25rem}.create-map-notes-list li{margin:.35rem 0}.prep-guide{color:var(--text-tertiary);font-size:.95rem;font-weight:600;line-height:1.5;margin-top:.65rem}.prep-checks{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-top:1rem}.prep-check{align-items:center;background:var(--bg-white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);display:flex;gap:.6rem;padding:.75rem .9rem}.prep-check input{accent-color:var(--primary-blue);height:18px;width:18px}.prep-check.checked{background:#eff6ff;border-color:#bfdbfe}.prep-check-label{color:var(--gray-800);font-weight:800}.prep-check-status{background:var(--success-green-light);border-radius:9999px;color:var(--success-text);font-size:.9rem;font-weight:800;margin-left:auto;padding:.15rem .6rem}.prep-check-inline{align-items:flex-start;color:var(--text-secondary);cursor:pointer;display:flex;gap:.5rem;line-height:1.5}.prep-check-inline input{accent-color:var(--primary-blue);flex-shrink:0;height:18px;margin-top:2px;width:18px}.prep-check-inline.checked{color:var(--text-primary);font-weight:700}.prep-warning{background:var(--error-red-light);border:1px solid rgba(239,68,68,.25);border-radius:var(--radius-lg);color:var(--error-text);font-weight:800;margin-top:.85rem;padding:.75rem 1rem}.history-limit-note{color:var(--gray-500);font-size:.95rem;margin-top:.25rem;padding-left:.25rem}.usage-separator{color:var(--gray-400)}.usage-limit{color:var(--gray-500)}.usage-bar{background:var(--gray-200);border-radius:5px;flex:1 1;height:10px;min-width:200px;overflow:hidden}.usage-bar-fill{background:var(--primary-gradient);border-radius:5px;height:100%;transition:width 1s ease-out}.usage-rate{color:var(--gray-600);font-size:.9rem;font-weight:600;min-width:80px;text-align:right}.history-section h3{border-left:4px solid var(--primary-blue);color:var(--text-primary);font-size:1.5rem;margin-bottom:1.5rem;padding-left:.5rem}.dashboard-section-loading{align-items:center;color:var(--text-tertiary);display:inline-flex;font-size:.95rem;font-weight:600;gap:.5rem;margin-left:1rem;-webkit-user-select:none;user-select:none}.dashboard-section-loading:before{animation:dashboardSpin .8s linear infinite;border:2px solid var(--border-default);border-radius:50%;border-top-color:var(--primary-blue);content:"";height:12px;width:12px}@keyframes dashboardSpin{to{transform:rotate(1turn)}}.history-list{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr}.history-card{align-items:center;background:linear-gradient(180deg,hsla(0,0%,100%,.98),#fff);border:1px solid var(--border-subtle);border-radius:calc(var(--radius-lg) + 4px);box-shadow:var(--shadow-sm);display:flex;justify-content:space-between;padding:1.5rem;transition:all var(--transition-normal)}.history-card:hover{border-color:rgba(56,114,246,.18);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.history-card-left{align-items:center;display:flex;flex:1 1;gap:1.5rem}.history-info{display:flex;flex-direction:column;gap:.25rem}.history-title{align-items:center;color:var(--text-primary);display:flex;font-size:1.14rem;gap:.5rem;margin:0}.edit-icon{color:var(--text-muted);cursor:pointer;font-size:.9rem;opacity:0;transition:opacity .2s}.history-card:hover .edit-icon{opacity:1}.history-meta{color:var(--text-tertiary);display:flex;font-size:.85rem;gap:1rem}.view-key span{background:rgba(148,163,184,.12);border-radius:6px;font-family:monospace;padding:.16rem .48rem}.history-card-right{align-items:center;display:flex;gap:1rem;justify-content:center}.active-progress{align-items:center;display:flex;gap:.75rem;margin-top:.5rem}.active-progress-bar{background:rgba(148,163,184,.18);border-radius:9999px;flex:1 1;height:10px;min-width:220px;overflow:hidden}.active-progress-fill{background:var(--primary-gradient);border-radius:9999px;height:100%;transition:width var(--transition-normal)}.active-progress-pct{font-feature-settings:"tnum";color:var(--text-secondary);font-size:.85rem;font-variant-numeric:tabular-nums;font-weight:700;min-width:40px;text-align:right}.status-badge{border-radius:9999px;font-size:.8rem;font-weight:600;padding:.25rem .75rem}.status-badge.completed{background:var(--success-green-light);color:var(--success-text)}.status-badge.processing{background:var(--warning-orange-light);color:var(--warning-text)}.status-badge.failed{background:var(--error-red-light);color:var(--error-text)}.view-btn{background:hsla(0,0%,100%,.92);border:1px solid var(--border-default);border-radius:calc(var(--radius-md) + 2px);box-shadow:var(--shadow-sm);color:var(--text-secondary);cursor:pointer;font-weight:600;padding:.62rem 1rem;transition:all var(--transition-normal)}.view-btn.resume-attention{animation:resumeAttentionPulse 1.2s ease-in-out infinite;background:var(--success-green-light);border-color:rgba(16,185,129,.55);color:var(--success-text)}.view-btn.resume-attention:hover:not(:disabled){background:var(--success-green-light);border-color:rgba(16,185,129,.75);color:var(--success-text)}.view-btn:hover:not(:disabled){background:var(--bg-white);border-color:var(--border-strong);color:var(--primary-blue);transform:translateY(-1px)}.view-btn:disabled{cursor:not-allowed;opacity:.5}.download-btn{font-size:.9rem;padding:.62rem 1rem}.download-btn.is-loading{align-items:center;display:inline-flex;gap:.5rem;-webkit-user-select:none;user-select:none}.download-btn.is-loading .spinner{border:2px solid rgba(59,130,246,.25);border-top:2px solid var(--primary-blue);height:14px;width:14px}@media (prefers-reduced-motion:reduce){.view-btn.resume-attention{animation:none}}@media (max-width:768px){.history-card{align-items:flex-start;flex-direction:column;gap:1.5rem}.history-card-right{align-items:flex-end;justify-content:flex-end;width:100%}}@keyframes resumeAttentionPulse{0%,to{box-shadow:0 0 0 0 rgba(16,185,129,0);transform:translateY(0)}50%{box-shadow:0 0 0 10px rgba(16,185,129,.18);transform:translateY(-1px)}}.confirm-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--surface-overlay);display:flex;inset:0;justify-content:center;position:fixed;z-index:10002}.confirm-modal-content{background:linear-gradient(180deg,hsla(0,0%,100%,.98),#fff);border:1px solid var(--border-subtle);border-radius:calc(var(--radius-xl) + 4px);box-shadow:var(--shadow-xl);overflow:hidden;width:min(520px,92vw)}.confirm-modal-header{border-bottom:1px solid var(--border-subtle);padding:1rem 1.15rem .8rem}.confirm-modal-title{color:var(--text-primary);font-size:1.02rem;font-weight:800;margin:0}.confirm-modal-body{padding:1rem 1.15rem}.confirm-modal-message{color:var(--text-secondary);line-height:1.65;margin:0;white-space:pre-wrap}.confirm-modal-footer{border-top:1px solid var(--border-subtle);display:flex;gap:10px;justify-content:flex-end;padding:.95rem 1.15rem 1.2rem}.confirm-modal-cancel{background:hsla(0,0%,100%,.94);border:1px solid var(--border-default);border-radius:calc(var(--radius-md) + 2px);box-shadow:var(--shadow-sm);color:var(--text-secondary);cursor:pointer;font-weight:600;padding:.72rem 1rem}.confirm-modal-cancel:hover{background:var(--bg-white);border-color:var(--border-strong);color:var(--primary-blue-dark);transform:translateY(-1px)}.confirm-modal-confirm{background:var(--primary-gradient);border:none;border-radius:calc(var(--radius-md) + 2px);box-shadow:var(--shadow-sm);color:#fff;cursor:pointer;font-weight:700;padding:.72rem 1rem}.confirm-modal-confirm:hover{box-shadow:var(--shadow-md);filter:saturate(1.04);transform:translateY(-1px)}.confirm-modal-confirm.is-destructive{background:linear-gradient(135deg,#ef4444,#dc2626)}.confirm-modal-confirm.is-destructive:hover{filter:saturate(1.03)}.analysis-detail-container{margin:0 auto;max-width:var(--container-max);padding:0 var(--page-shell-padding) var(--page-shell-padding)}.analysis-detail-content{background:linear-gradient(180deg,hsla(0,0%,100%,.98),#fff);border:1px solid var(--border-subtle);border-radius:calc(var(--radius-xl) + 6px);box-shadow:var(--shadow-lg);min-height:80vh;padding:2rem}.detail-header{align-items:center;border-bottom:none;display:flex;justify-content:flex-start;margin-bottom:.9rem;padding-bottom:.9rem}.detail-header h1{color:var(--text-primary);font-size:1.8rem;font-weight:800;letter-spacing:-.02em;margin:0}.tab-menu{border-bottom:1px solid var(--border-subtle);display:flex;gap:.5rem;margin-bottom:2rem;overflow-x:auto}.tab-item{background:transparent;border:none;border-bottom:3px solid transparent;color:var(--text-tertiary);cursor:pointer;font-size:.95rem;font-weight:600;padding:1rem 1.5rem;position:relative;transition:all var(--transition-normal);white-space:nowrap}.tab-item:hover{color:var(--primary-blue)}.tab-item.active{border-bottom:3px solid var(--primary-blue);color:var(--primary-blue-dark);font-weight:700}.tab-badge{border-radius:4px;display:inline-block;font-size:.75rem;margin-left:.5rem;padding:.2rem .5rem}.tab-badge.recommend{background:var(--success-green);color:#fff}.tab-content{padding:.25rem 0 0}.hierarchy-view h2,.report-view h2,.trendmap-view h2{color:var(--text-primary);font-size:1.6rem;font-weight:800;margin-bottom:2rem;text-align:center}.granularity-control{align-items:center;display:flex;gap:1rem;margin-bottom:2rem}.granularity-control label{color:var(--text-primary);font-weight:700}.granularity-control input[type=range]{accent-color:var(--primary-blue);flex:0 0 200px}.granularity-control span{color:var(--primary-blue);font-weight:600;min-width:40px}.trendmap-canvas{background:linear-gradient(180deg,var(--surface-muted) 0,#fff 100%);border:1px solid var(--border-subtle);border-radius:calc(var(--radius-lg) + 2px);min-height:700px;padding:2rem;position:relative}.bubble-chart{display:flex;gap:2rem;height:700px;position:relative}.y-axis-labels{color:var(--text-tertiary);display:flex;flex:0 0 250px;flex-direction:column;font-size:.75rem;justify-content:space-around}.y-axis-labels div{border-right:2px solid var(--border-subtle);padding:.5rem 1rem .5rem 0;text-align:right}.bubbles-container{background:hsla(0,0%,100%,.95);border:1px solid var(--border-subtle);border-radius:calc(var(--radius-lg) + 2px);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.8);flex:1 1;position:relative}.bubble{border:2px solid hsla(0,0%,100%,.5);border-radius:50%;cursor:pointer;opacity:.7;position:absolute;transition:all .3s}.bubble:hover{box-shadow:var(--shadow-md);opacity:.9;transform:scale(1.1);z-index:10}.hierarchy-canvas{background:linear-gradient(180deg,var(--surface-muted) 0,#fff 100%);border:1px solid var(--border-subtle);border-radius:calc(var(--radius-lg) + 2px);min-height:800px;overflow:auto;padding:2rem}.hierarchy-tree-structured{display:flex;flex-direction:column;gap:2rem;padding:1rem}.tree-group{align-items:center;display:flex;gap:1rem}.tree-children{display:flex;flex-direction:column;gap:1rem}.tree-node-new{align-items:center;border-radius:calc(var(--radius-md) + 2px);display:flex;font-size:.9rem;max-width:450px;min-width:300px;padding:.8rem 1.5rem;position:relative}.tree-node-new span{flex:1 1}.tree-node-new.blue{background:var(--primary-blue-light);border:2px solid var(--primary-blue);color:var(--primary-blue-dark);font-weight:600}.tree-node-new.green{background:#fff;border:2px solid var(--success-green);color:var(--text-primary)}.tree-node-new.red{background:hsla(0,93%,94%,.8);border:2px solid var(--error-red);color:var(--error-text)}.connector{background:var(--primary-blue);height:2px;position:absolute;right:-60px;width:60px}.tree-node-new.green .connector{background:var(--success-green)}.tree-node-new.red .connector{background:var(--error-red)}.connector:after{background:inherit;border-radius:50%;content:"";height:8px;position:absolute;right:-4px;top:50%;transform:translateY(-50%);width:8px}.report-view{margin:0 auto;max-width:900px}.report-content{background:linear-gradient(180deg,var(--surface-muted) 0,#fff 100%);border:1px solid var(--border-subtle);border-radius:calc(var(--radius-lg) + 2px);padding:2rem}.report-section{background:hsla(0,0%,100%,.98);border-left:4px solid var(--primary-blue);border-radius:calc(var(--radius-md) + 4px);box-shadow:var(--shadow-sm);margin-bottom:1.5rem;padding:1.5rem}.report-section:last-child{margin-bottom:0}.report-section h3{color:var(--text-primary);font-size:1.2rem;font-weight:700;margin:0 0 1rem}.report-section p{color:var(--text-secondary);line-height:1.6;margin:.5rem 0}.report-section ul{margin:0;padding-left:1.5rem}.report-section li{color:var(--text-secondary);line-height:1.6;margin:.5rem 0}@media (max-width:768px){.bubble-chart{flex-direction:column;height:auto}.y-axis-labels{flex:none}.bubbles-container{min-height:500px}}.phase3-results{animation:fadeIn .5s ease-out}.phase4-section-title{margin:0 0 .9rem}.results-header{align-items:center;border-bottom:1px solid var(--border-subtle);display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1.5rem}.completion-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;padding-bottom:1.75rem}.header-content h2{color:var(--text-primary);font-size:1.8rem;font-weight:800;letter-spacing:-.025em;margin:0}.header-actions{display:flex;gap:1rem}.download-btn{background-color:hsla(0,0%,100%,.94);border:1px solid var(--primary-blue);border-radius:calc(var(--radius-md) + 2px);box-shadow:var(--shadow-sm);color:var(--primary-blue);cursor:pointer;font-weight:600;padding:.6rem 1.2rem;transition:all var(--transition-normal)}.download-btn:hover{background-color:var(--primary-blue-light);box-shadow:var(--shadow-md);transform:translateY(-2px)}.restart-btn{background-color:hsla(0,0%,100%,.94);border:1px solid var(--border-default);border-radius:calc(var(--radius-md) + 2px);box-shadow:var(--shadow-sm);color:var(--text-secondary);cursor:pointer;font-weight:600;padding:.6rem 1.2rem;transition:all var(--transition-normal)}.restart-btn:hover{background-color:var(--bg-white);border-color:var(--border-strong);color:var(--text-primary);transform:translateY(-1px)}.completion-action-btn{background:hsla(0,0%,100%,.98);border:1px solid rgba(15,23,42,.26);border-radius:0;box-shadow:none;color:var(--text-primary);cursor:pointer;font-size:.95rem;font-weight:600;letter-spacing:-.01em;min-height:46px;padding:.82rem 1.2rem;transition:border-color var(--transition-normal),background-color var(--transition-normal),transform var(--transition-normal);white-space:nowrap}.completion-action-btn:hover{background:var(--surface-muted);border-color:var(--border-strong);transform:translateY(-1px)}.completion-action-btn:disabled{cursor:not-allowed;opacity:.55;transform:none}.completion-finish-btn{justify-self:auto}.summary-section{margin-bottom:2.5rem}.summary-section h3{color:var(--text-tertiary);font-size:1.1rem;font-weight:600;letter-spacing:.05em;margin-bottom:1rem;text-transform:uppercase}.summary-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.summary-card{background:linear-gradient(180deg,hsla(0,0%,100%,.98),#fff);border:1px solid var(--border-subtle);border-radius:calc(var(--radius-lg) + 4px);box-shadow:var(--shadow-sm);padding:1.5rem;text-align:center;transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.summary-card:hover{border-color:rgba(56,114,246,.18);box-shadow:var(--shadow-lg);transform:translateY(-3px)}.summary-value{color:var(--primary-blue);font-size:2.5rem;font-weight:800;line-height:1.2;margin-bottom:.5rem}.summary-label{color:var(--text-tertiary);font-size:.9rem;font-weight:600}.quality-distribution{background:linear-gradient(180deg,var(--surface-muted) 0,#fff 100%);border:1px solid var(--border-subtle);border-radius:calc(var(--radius-lg) + 4px);box-shadow:var(--shadow-sm);margin-bottom:3rem;padding:2rem}.quality-distribution h3{color:var(--text-primary);font-size:1.1rem;font-weight:700;margin:0 0 1.5rem}.distribution-bars{display:flex;flex-direction:column;gap:1rem}.distribution-bar{align-items:center;display:flex;gap:1rem}.bar-label{color:var(--text-secondary);font-weight:700;width:40px}.bar-container{background:rgba(148,163,184,.16);border-radius:6px;flex:1 1;height:12px;overflow:hidden}.bar-fill{border-radius:6px;height:100%;transition:width 1s ease-out}.bar-fill.good{background:linear-gradient(90deg,#10b981,#34d399)}.bar-fill.fair{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.bar-fill.poor{background:linear-gradient(90deg,#ef4444,#f87171)}.bar-value{color:var(--text-secondary);font-weight:600;text-align:right;width:60px}.patents-preview{margin-bottom:3rem}.patents-preview h3{color:var(--text-primary);font-size:1.25rem;margin-bottom:1rem}.patents-table{border:1px solid var(--border-subtle);border-radius:calc(var(--radius-lg) + 4px);box-shadow:var(--shadow-md);overflow-x:auto}table{background:#fff;border-collapse:collapse;width:100%}thead{background:linear-gradient(180deg,var(--surface-muted) 0,#fff 100%)}th{border-bottom:1px solid var(--border-subtle);color:var(--text-tertiary);font-size:.9rem;font-weight:600;letter-spacing:.05em;text-align:left;text-transform:uppercase}td,th{padding:1rem}td{border-bottom:1px solid rgba(148,163,184,.1);color:var(--text-secondary);font-size:.95rem}tr:last-child td{border-bottom:none}tr:hover{background-color:var(--surface-muted)}.patent-title{font-weight:500;max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.judgment-badge{border-radius:9999px;display:inline-block;font-size:.8rem;font-weight:600;min-width:40px;padding:.25rem .75rem;text-align:center}.judgment-badge.良{background-color:var(--success-green-light);color:var(--success-text)}.judgment-badge.可{background-color:var(--warning-orange-light);color:var(--warning-text)}.judgment-badge.否{background-color:var(--error-red-light);color:var(--error-text)}.score-cell{color:var(--primary-blue);font-family:monospace;font-weight:700}.workflow-summary{background:linear-gradient(180deg,var(--surface-muted) 0,#fff 100%);border:1px solid var(--border-subtle);border-radius:calc(var(--radius-lg) + 4px);box-shadow:var(--shadow-sm);margin-bottom:3rem;padding:2rem}.workflow-summary h3{color:var(--text-primary);font-size:1.1rem;margin:0 0 1.5rem}.workflow-steps{display:flex;flex-direction:column;gap:1.5rem;position:relative}.workflow-steps:before{background:rgba(148,163,184,.28);bottom:10px;content:"";left:17px;position:absolute;top:10px;width:2px;z-index:0}.workflow-step{display:flex;gap:1.5rem;position:relative;z-index:1}.workflow-step .step-icon{align-items:center;background:var(--success-green);border-radius:50%;box-shadow:0 0 0 4px var(--bg-subtle);color:#fff;display:flex;flex-shrink:0;font-size:1.1rem;font-weight:700;height:36px;justify-content:center;width:36px}.workflow-step div strong{color:var(--text-primary);display:block;font-size:1rem;margin-bottom:.25rem}.workflow-step div p{color:var(--text-secondary);font-size:.9rem;margin:0}.input-info{display:flex;flex-direction:column;gap:.5rem}.input-info-row{grid-gap:.75rem;background:hsla(0,0%,100%,.72);border:1px solid var(--border-subtle);border-radius:var(--radius-md);display:grid;gap:.75rem;grid-template-columns:120px 1fr;padding:.5rem .75rem}.input-info-label{color:var(--text-primary);font-size:.9rem;font-weight:800}.input-info-value{color:var(--text-secondary);font-size:.9rem;line-height:1.55;white-space:pre-wrap;word-break:break-word}.final-actions{border-top:1px solid var(--border-subtle);margin-top:3rem;padding-top:2rem;text-align:center}.download-btn-large{background:var(--primary-gradient);border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:#fff;cursor:pointer;font-size:1.2rem;font-weight:700;margin-bottom:1rem;padding:1.2rem 3rem;transition:all var(--transition-bounce)}.download-btn-large:hover{box-shadow:var(--shadow-hover);transform:translateY(-4px)}.download-info{color:var(--text-tertiary);font-size:.9rem}@media (max-width:960px){.completion-header{gap:.85rem;justify-content:center}.completion-finish-btn{justify-self:auto}}.phase1-input{animation:fadeIn .5s ease-out}.phase-card{background:transparent;border:none;box-shadow:none;padding:0}.phase-card h2{color:var(--gray-900);font-size:1.8rem;font-weight:800;letter-spacing:-.025em;margin:0 0 .5rem;text-align:center}.phase-description{color:var(--gray-500);font-size:1.05rem;margin-bottom:3rem;text-align:center}.phase1-input .phase-card>form{margin-top:.9rem}.input-section{background:#f8fafc;border:none;border-radius:0;box-shadow:none;margin-bottom:2rem;padding:1.5rem;transition:all var(--transition-normal)}.input-section:focus-within{background:hsla(0,0%,100%,.98);box-shadow:var(--shadow-md);transform:translateY(-1px)}.input-section label{align-items:center;display:flex;gap:.5rem;margin-bottom:.8rem}.label-text{color:var(--text-primary);font-size:1.02rem;font-weight:700;letter-spacing:-.01em}.required{color:var(--error-red);font-weight:700}.input-hint{color:var(--text-tertiary);font-size:.875rem;font-weight:500;line-height:1.5;margin:0 0 .5rem}textarea{line-height:1.6;min-height:100px;resize:vertical;width:100%}.char-counter-total{margin-bottom:2rem;margin-top:-1rem;text-align:right}.char-counter{background:rgba(148,163,184,.1);border-radius:9999px;color:var(--text-tertiary);font-size:.85rem;font-weight:700;padding:.32rem .8rem}.char-counter.error{background:var(--error-red-light);color:var(--error-red)}.error-message{background:linear-gradient(180deg,hsla(0,93%,94%,.88),#fff);border:1px solid rgba(239,68,68,.16);border-radius:calc(var(--radius-md) + 2px);box-shadow:var(--shadow-sm);color:var(--error-text);font-weight:700;margin-bottom:1.5rem}.submit-btn{align-items:center;background:var(--primary-gradient);border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:#fff;cursor:pointer;display:flex;font-size:1.1rem;font-weight:700;gap:1rem;justify-content:center;margin-bottom:2.5rem;padding:1.25rem;transition:all var(--transition-bounce);width:100%}.submit-btn:hover:not(:disabled){box-shadow:var(--shadow-hover);transform:translateY(-2px)}.submit-btn:disabled{background:var(--gray-300);box-shadow:none;cursor:not-allowed;transform:none}.validation-steps{border-top:1px solid var(--gray-200);display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-top:2rem;padding-top:2rem}.validation-step{background:linear-gradient(180deg,var(--surface-muted) 0,#fff 100%);border:1px solid var(--border-subtle);border-radius:calc(var(--radius-md) + 2px);box-shadow:var(--shadow-sm);color:var(--text-secondary);flex:1 1;font-size:.9rem;gap:.75rem;min-width:140px;padding:.75rem}.step-icon,.validation-step{align-items:center;display:flex}.step-icon{background:var(--success-green-light);border-radius:50%;color:var(--success-green);flex-shrink:0;font-size:.8rem;font-weight:700;height:24px;justify-content:center;width:24px}.phase2-pdf-upload{animation:fadeIn .5s ease-out}.phase2-pdf-upload .phase-card>.dropzone{margin-top:.9rem}.dropzone{background:linear-gradient(180deg,var(--surface-muted) 0,#fff 100%);border:2px dashed rgba(56,114,246,.22);border-radius:calc(var(--radius-xl) + 4px);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.8);cursor:pointer;margin-bottom:2.5rem;padding:3.6rem 2rem;text-align:center;transition:all var(--transition-normal)}.dropzone.drag-over,.dropzone:hover{background:linear-gradient(180deg,var(--primary-blue-light) 0,#fff 100%);border-color:var(--primary-blue);box-shadow:var(--shadow-md);transform:translateY(-2px)}.dropzone-content{pointer-events:none}.upload-icon{color:var(--text-muted);font-size:4rem;margin-bottom:1.5rem;transition:color var(--transition-normal)}.dropzone:hover .upload-icon{color:var(--primary-blue)}.dropzone-text{color:var(--text-secondary);font-size:1.2rem;font-weight:700;margin:.5rem 0}.dropzone-or{align-items:center;color:var(--text-muted);display:flex;font-size:.85rem;gap:1rem;justify-content:center;letter-spacing:.1em;margin:1.5rem 0;position:relative;text-transform:uppercase}.dropzone-or:after,.dropzone-or:before{background:var(--gray-300);content:"";height:1px;width:40px}.file-select-btn{background:hsla(0,0%,100%,.9);border:2px solid var(--primary-blue);border-radius:calc(var(--radius-lg) + 2px);color:var(--primary-blue);cursor:pointer;display:inline-block;font-weight:600;padding:.9rem 2rem;pointer-events:auto;transition:all var(--transition-normal)}.file-select-btn:hover{background:var(--primary-gradient);box-shadow:var(--shadow-hover);color:#fff;transform:translateY(-2px)}.files-list{background:linear-gradient(180deg,hsla(0,0%,100%,.98),#fff);border:1px solid var(--border-subtle);border-radius:calc(var(--radius-lg) + 4px);box-shadow:var(--shadow-md);margin-bottom:2.5rem;padding:1.5rem}.files-list h3{align-items:center;color:var(--gray-900);display:flex;font-size:1.2rem;justify-content:space-between;margin:0 0 1.5rem}.files{display:flex;flex-direction:column;gap:.75rem}.file-item{align-items:center;background:linear-gradient(180deg,var(--surface-muted) 0,#fff 100%);border:1px solid var(--border-subtle);border-radius:calc(var(--radius-md) + 2px);display:flex;justify-content:space-between;padding:1rem 1.25rem;transition:all var(--transition-normal)}.file-item:hover{background:#fff;border-color:rgba(56,114,246,.18);box-shadow:var(--shadow-sm)}.file-name{align-items:center;color:var(--text-primary);display:flex;flex:1 1;font-weight:600;gap:.75rem}.file-name:before{content:"📄";font-size:1.2rem}.file-size{color:var(--text-tertiary);font-family:monospace;font-size:.9rem;margin:0 1.5rem}.remove-btn{align-items:center;background:hsla(0,0%,100%,.92);border:1px solid var(--border-default);border-radius:50%;color:var(--error-red);cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .2s;width:32px}.remove-btn:hover:not(:disabled){background:rgba(239,68,68,.08);border-color:var(--error-red);transform:rotate(90deg)}.upload-btn{align-items:center;background:var(--primary-gradient);border:none;border-radius:calc(var(--radius-lg) + 2px);box-shadow:var(--shadow-md);color:#fff;cursor:pointer;display:flex;font-size:1.1rem;font-weight:700;gap:.75rem;justify-content:center;margin-bottom:2.5rem;padding:1.25rem;transition:all var(--transition-bounce);width:100%}.upload-btn:hover:not(:disabled){box-shadow:var(--shadow-hover);filter:saturate(1.04);transform:translateY(-2px)}.upload-btn:disabled{background:var(--gray-300);box-shadow:none;cursor:not-allowed;transform:none}.phase2-formula-selection{animation:fadeIn .5s ease-out}.phase2-formula-selection .phase-card>.formula-actions-sticky{margin-top:.9rem}.loading-state-text{line-height:1.6}.formula-actions-sticky{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:hsla(0,0%,100%,.92);border-bottom:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem;padding:.75rem 0;position:sticky;top:0;z-index:20}.sticky-row-1{align-items:center;background:linear-gradient(180deg,var(--surface-muted) 0,#fff 100%);border:1px solid var(--border-subtle);border-radius:calc(var(--radius-lg) + 2px);box-shadow:var(--shadow-sm);display:flex;gap:.75rem;justify-content:flex-end;padding:.6rem .8rem}.selection-actions{align-items:center;display:flex;gap:.55rem}.selection-count-inline{color:var(--text-secondary);font-size:.84rem;font-weight:600;white-space:nowrap}.clear-all-btn,.select-all-btn{font-size:.8rem;padding:.4rem .8rem;white-space:nowrap}.sticky-row-2{display:block}.sticky-next-btn{text-align:center;width:100%}.formula-item{background:linear-gradient(180deg,hsla(0,0%,100%,.98),#fff);border:1px solid var(--border-subtle);border-radius:calc(var(--radius-lg) + 4px);box-shadow:var(--shadow-sm);cursor:pointer;margin-bottom:1rem;padding:1rem 1.25rem;position:relative;transition:all var(--transition-normal)}.formula-item:hover{border-color:rgba(56,114,246,.18);box-shadow:var(--shadow-md);transform:translateY(-2px)}.formula-item.selected{background:linear-gradient(180deg,var(--primary-blue-light) 0,#fff 100%);border-color:rgba(56,114,246,.42);box-shadow:0 0 0 1px rgba(56,114,246,.18),0 14px 32px rgba(56,114,246,.08)}.formula-header{margin-bottom:.35rem}.formula-header,.formula-heading{align-items:flex-start;display:flex}.formula-heading{gap:.8rem;width:100%}.formula-heading-text{flex:1 1;min-width:0}.formula-name{color:var(--primary-blue-dark);font-size:.95rem;font-weight:700;letter-spacing:-.01em;margin-bottom:.45rem}.formula-checkbox{accent-color:var(--primary-blue);cursor:pointer;flex-shrink:0;height:20px;margin-top:.15rem;width:20px}.formula-text{line-clamp:4;-webkit-line-clamp:4;-webkit-box-orient:vertical;background:linear-gradient(180deg,var(--surface-muted) 0,#fff 100%);border-radius:calc(var(--radius-md) + 2px);color:var(--text-primary);display:-webkit-box;font-family:SF Mono,Menlo,Monaco,Courier New,monospace;font-size:1rem;line-height:1.6;margin-top:0;overflow:hidden;padding:.85rem;text-overflow:ellipsis;white-space:pre-wrap;word-break:break-word}.formula-footer{align-items:center;border-top:1px solid var(--border-subtle);display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.75rem;padding-top:.75rem}.formula-type{background:var(--primary-blue-light);color:var(--primary-blue-dark)}.formula-meta-chip,.formula-type{border-radius:9999px;font-size:.8rem;font-weight:600;padding:.25rem .6rem}.formula-meta-chip{align-items:center;background:rgba(148,163,184,.1);color:var(--text-secondary);display:inline-flex;gap:.35rem;max-width:100%}.formula-meta-primary{background:var(--primary-blue-light);color:var(--primary-blue-dark)}.formula-meta-secondary{background:var(--success-green-light);color:var(--success-text)}.formula-meta-label{color:var(--text-tertiary);font-weight:700}.formula-meta-primary .formula-meta-label{color:inherit;opacity:.8}.estimated-count{align-items:center;background:rgba(148,163,184,.1);border-radius:9999px;color:var(--text-secondary);display:flex;font-size:.8rem;font-weight:600;gap:.3rem;padding:.25rem .6rem}.estimated-count:before{content:"📊";font-size:.7rem}.empty-state{color:var(--gray-500);text-align:center}.error-message{color:var(--error-red);padding:1rem;text-align:center}.phase-description{color:var(--text-secondary);font-size:.95rem;line-height:1.6;margin-bottom:1.5rem}.formulas-list{display:flex;flex-direction:column;gap:0}.per-formula-limit{align-items:center;color:var(--text-tertiary);display:flex;flex-direction:row;font-size:.85rem;gap:.5rem;margin-left:auto;white-space:nowrap}.limit-input{border:1px solid var(--border-default);border-radius:calc(var(--radius-md) + 2px);font-size:.9rem;margin:0;padding:.3rem .5rem;text-align:right;transition:border-color .2s;width:70px}.limit-input:focus{border-color:var(--primary-blue);outline:none}.phase2-realization-selection{animation:fadeIn .5s ease-out}.phase2-realization-selection .phase-card>.selection-summary{margin-top:.9rem}.loading-state{color:var(--text-secondary);flex-direction:column;font-size:1.25rem;justify-content:center;padding:4rem 2rem;text-align:center}.loading-state,.selection-summary{align-items:center;display:flex;gap:1.5rem}.selection-summary{border-radius:calc(var(--radius-lg) + 2px);box-shadow:var(--shadow-sm);margin-bottom:2rem;padding:1.25rem}.resume-hint,.selection-summary{background:linear-gradient(180deg,var(--surface-muted) 0,#fff 100%);border:1px solid var(--border-subtle)}.resume-hint{border-radius:calc(var(--radius-md) + 2px);color:var(--text-secondary);font-size:.95rem;line-height:1.5;margin:0 0 1.25rem;padding:.75rem 1rem}.summary-text{color:var(--text-primary);flex:1 1;font-size:1.05rem;font-weight:600}.clear-all-btn,.select-all-btn{border:none;border-radius:var(--radius-md);cursor:pointer;font-size:.9rem;font-weight:600;padding:.6rem 1.2rem;transition:all var(--transition-normal)}.select-all-btn{background:var(--success-green-light);color:var(--success-text)}.select-all-btn:hover{background:#b9f7dc;transform:translateY(-1px)}.clear-all-btn{background:var(--error-red-light);color:var(--error-text)}.clear-all-btn:hover{background:#ffd8d8;transform:translateY(-1px)}.methods-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));margin-bottom:2.5rem}.method-card{background:linear-gradient(180deg,hsla(0,0%,100%,.98),#fff);border:2px solid transparent;border:1px solid var(--border-subtle);border-radius:calc(var(--radius-lg) + 4px);box-shadow:var(--shadow-sm);cursor:pointer;overflow:hidden;padding:1.5rem;position:relative;transition:all .2s cubic-bezier(.4,0,.2,1)}.method-card:hover{border-color:rgba(56,114,246,.18);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.method-card.selected{background:linear-gradient(180deg,var(--primary-blue-light) 0,#fff 100%);border-color:rgba(56,114,246,.42);box-shadow:0 0 0 1px rgba(56,114,246,.18),var(--shadow-md)}.method-card.selected:after{background:var(--primary-blue);content:"";height:100%;left:0;position:absolute;top:0;width:4px}.method-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.method-checkbox{accent-color:var(--primary-blue);cursor:pointer;height:24px;width:24px}.patent-count{background:var(--primary-blue-light);border-radius:9999px;color:var(--primary-blue-dark);font-size:.85rem;font-weight:700;padding:.25rem .75rem}.method-name{color:var(--text-primary);font-size:1.15rem;font-weight:800;line-height:1.4;margin:0 0 .75rem}.method-description{color:var(--text-secondary);font-size:.95rem;line-height:1.6;margin:0}.proceed-btn{align-items:center;background:var(--primary-gradient);border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:#fff;cursor:pointer;font-size:1.1rem;font-weight:700;gap:.75rem;justify-content:center;padding:1.25rem;transition:all var(--transition-bounce);width:100%}.nav-actions,.proceed-btn{display:flex;margin-bottom:2.5rem}.nav-actions{align-items:stretch;gap:1rem}.nav-btn{align-items:center;border-radius:calc(var(--radius-lg) + 2px);box-sizing:border-box;display:flex;flex:1 1;font-size:1.1rem;font-weight:700;gap:.75rem;justify-content:center;min-height:56px;padding:1.25rem;transition:all var(--transition-bounce);white-space:nowrap}.nav-btn:disabled{box-shadow:none;cursor:not-allowed;opacity:.6;transform:none}.nav-btn-primary{background:var(--primary-gradient);border:2px solid transparent;box-shadow:var(--shadow-md);color:#fff}.nav-btn-primary:hover:not(:disabled){box-shadow:var(--shadow-hover);transform:translateY(-2px)}.nav-btn-secondary{background:hsla(0,0%,100%,.94);border:2px solid var(--border-default);box-shadow:var(--shadow-sm);color:var(--text-secondary)}.nav-btn-secondary:hover:not(:disabled){background:var(--primary-blue-light);border-color:var(--primary-blue);box-shadow:var(--shadow-md);color:var(--primary-blue);transform:translateY(-2px)}@media (max-width:640px){.nav-actions{flex-direction:column}}.proceed-btn:hover:not(:disabled){box-shadow:var(--shadow-hover);transform:translateY(-2px)}.proceed-btn:disabled{background:var(--gray-300);box-shadow:none;cursor:not-allowed;transform:none}.next-steps-info{background:linear-gradient(180deg,var(--primary-blue-light) 0,#fff 100%);border:1px solid rgba(56,114,246,.12);border-left:5px solid var(--primary-blue);border-radius:calc(var(--radius-lg) + 2px);padding:2rem}.next-steps-info h4{color:var(--primary-blue-dark);font-size:1.15rem;font-weight:700;margin:0 0 1rem}.next-steps-info ul{margin:0;padding-left:1.5rem}.next-steps-info li{color:var(--text-secondary);line-height:1.6;margin-bottom:.75rem}.next-steps-info strong{color:var(--primary-blue);font-weight:700}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.loading-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:var(--surface-overlay);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9999}.loading-modal-content{align-items:center;background:linear-gradient(180deg,hsla(0,0%,100%,.98),#fff);border:1px solid var(--border-subtle);border-radius:calc(var(--radius-xl) + 6px);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;gap:1.1rem;padding:2rem 2.25rem;width:min(560px,92vw)}.loading-spinner{animation:spin 1s linear infinite;border:5px solid rgba(148,163,184,.2);border-radius:50%;border-top:5px solid var(--primary-blue);box-shadow:0 0 0 8px rgba(56,114,246,.06);height:60px;width:60px}@keyframes spin{to{transform:rotate(1turn)}}.loading-message{color:var(--text-primary);font-size:1.08rem;font-weight:700;letter-spacing:-.01em;margin:0;text-align:center}.loading-progress{width:100%}.loading-progress-bar{background:rgba(148,163,184,.16);border-radius:999px;height:10px;overflow:hidden;width:100%}.loading-progress-fill{background:linear-gradient(90deg,var(--primary-blue),var(--success-green));height:100%;transition:width .3s ease;width:0}.loading-progress-text{color:var(--text-tertiary);font-size:.88rem;font-weight:600;margin-top:6px;text-align:center}.loading-modal-close-btn{background:hsla(0,0%,100%,.96);border:1px solid var(--border-default);border-radius:calc(var(--radius-md) + 2px);box-shadow:var(--shadow-sm);color:var(--text-secondary);cursor:pointer;font-size:.9rem;font-weight:600;margin-top:8px;padding:.72rem 1rem}.loading-modal-close-btn:hover{background:var(--bg-white);border-color:var(--border-strong);color:var(--primary-blue-dark);transform:translateY(-1px)}.loading-modal-close-btn:active{background:rgba(148,163,184,.08)}.alert-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--surface-overlay);display:flex;inset:0;justify-content:center;position:fixed;z-index:10001}.alert-modal-content{background:linear-gradient(180deg,hsla(0,0%,100%,.98),#fff);border:1px solid var(--border-subtle);border-radius:calc(var(--radius-xl) + 4px);box-shadow:var(--shadow-xl);overflow:hidden;width:min(520px,92vw)}.alert-modal-header{border-bottom:1px solid var(--border-subtle);padding:1rem 1.15rem .8rem}.alert-modal-title{color:var(--text-primary);font-size:1.02rem;font-weight:800;margin:0}.alert-modal-body{padding:1rem 1.15rem}.alert-modal-body.no-header{padding-top:1.4rem}.alert-modal-message{color:var(--text-secondary);line-height:1.65;margin:0;white-space:pre-wrap}.alert-modal-footer{border-top:none;display:flex;gap:10px;justify-content:flex-end;padding:.95rem 1.15rem 1.2rem}.alert-modal-ok{background:var(--primary-gradient);border:none;border-radius:calc(var(--radius-md) + 2px);box-shadow:var(--shadow-sm);color:#fff;cursor:pointer;font-weight:700;padding:.72rem 1rem}.alert-modal-ok:hover{box-shadow:var(--shadow-md);filter:saturate(1.04);transform:translateY(-1px)}
/*# sourceMappingURL=main.d80fe6e2.css.map*/