:root{--ink: #1a2332;--ink-soft: #3d4f66;--muted: #6b7c90;--paper: #f0f4f8;--paper-2: #e2eaf2;--surface: rgba(255, 255, 255, .72);--surface-solid: #ffffff;--accent: #0d6e6e;--accent-deep: #0a5555;--accent-soft: #d4efef;--warn: #b45309;--danger: #b42318;--ok: #057a55;--border: rgba(26, 35, 50, .12);--shadow: 0 18px 50px rgba(26, 35, 50, .08);--radius: 14px;--font: "DM Sans", "Segoe UI", sans-serif;--display: "Source Serif 4", Georgia, serif}code{font-size:.9em;background:#0d6e6e14;padding:.1em .35em;border-radius:4px}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;color:var(--ink);font-family:var(--font);background:radial-gradient(1200px 600px at 10% -10%,#c8e6e6 0%,transparent 55%),radial-gradient(900px 500px at 100% 0%,#dce7f5 0%,transparent 50%),linear-gradient(180deg,var(--paper) 0%,var(--paper-2) 100%);background-attachment:fixed}button,input,select{font:inherit}.app{max-width:1280px;margin:0 auto;padding:2rem 1.25rem 3rem}.app-tabs{display:flex;gap:.35rem;margin:0 0 1.1rem;padding:.3rem;border-radius:12px;background:#ffffff8c;border:1px solid var(--border);width:fit-content;max-width:100%}.app-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--ink-soft);font-weight:600;padding:.55rem 1.15rem;border-radius:9px;cursor:pointer;transition:background .15s ease,color .15s ease}.app-tab:hover{color:var(--ink);background:#0d6e6e14}.app-tab.active{background:var(--accent);color:#fff}.tab-panel{animation:rise .35s ease both}.ops-results-panel{padding-bottom:1rem}.ops-results-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.85rem;align-items:flex-end;margin-bottom:1rem}.ops-results-toolbar h2{margin-bottom:.25rem}.ops-percent-apply{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.65rem}.percent-apply-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem}.ops-workspace{display:grid;grid-template-columns:minmax(280px,1fr) minmax(320px,1.15fr);gap:1rem;min-height:360px}.ops-workspace.empty-state{display:block;min-height:auto}.employee-list-pane,.employee-detail-pane{border:1px solid var(--border);border-radius:12px;background:#ffffffb8;overflow:hidden;display:flex;flex-direction:column;min-height:360px}.pane-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.85rem 1rem;border-bottom:1px solid var(--border);background:linear-gradient(90deg,rgba(212,239,239,.5),transparent)}.pane-head h3{margin:0;font-size:1rem;color:var(--accent-deep)}.pane-count{font-variant-numeric:tabular-nums;font-weight:700;color:var(--accent-deep);background:var(--accent-soft);border-radius:999px;padding:.15rem .55rem;font-size:.85rem}.employee-grid{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;padding:.75rem;overflow:auto;flex:1}.employee-card{-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:left;border:1px solid var(--border);border-radius:10px;background:#fff;padding:.7rem .8rem;cursor:pointer;display:grid;gap:.25rem;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.employee-card:hover{border-color:#0d6e6e59;transform:translateY(-1px)}.employee-card.active{border-color:var(--accent);box-shadow:0 0 0 2px #0d6e6e26;background:#d4efef73}.employee-card-name{font-weight:700;color:var(--ink);font-size:.92rem;line-height:1.25;overflow-wrap:anywhere}.employee-card-meta{color:var(--muted);font-size:.8rem;font-variant-numeric:tabular-nums}.employee-detail-pane{background:#ffffffe0}.detail-placeholder{flex:1;display:grid;place-items:center;padding:2rem 1.25rem;color:var(--muted);text-align:center}.detail-summary{margin:.25rem 0 0;color:var(--ink-soft);font-size:.85rem}.detail-table-wrap{overflow:auto;flex:1;max-height:520px}.hero{display:grid;gap:.75rem;margin-bottom:1.75rem;animation:rise .6s ease both}.brand{font-family:var(--display);font-size:clamp(2.4rem,5vw,3.4rem);font-weight:700;letter-spacing:-.02em;line-height:1.05;color:var(--accent-deep);margin:0}.hero p{margin:0;max-width:46rem;color:var(--ink-soft);font-size:1.05rem;line-height:1.5}.status-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.pill{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .7rem;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--ink-soft);font-size:.85rem}.pill.ok{color:var(--ok);background:#e8f8f1;border-color:#057a5533}.pill.warn{color:var(--warn);background:#fff7ed}.panel{background:var(--surface);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem;margin-bottom:1rem;animation:rise .55s ease both}.panel h2{margin:0 0 .35rem;font-size:1.15rem;font-weight:600}.panel .hint{margin:0 0 1rem;color:var(--muted);font-size:.92rem}.toolbar{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center;margin-bottom:1rem}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-radius:10px;padding:.55rem .95rem;background:var(--accent);color:#fff;font-weight:600;cursor:pointer;transition:transform .15s ease,background .15s ease,opacity .15s ease}.btn:hover:not(:disabled){background:var(--accent-deep);transform:translateY(-1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.secondary{background:var(--surface-solid);color:var(--ink);border-color:var(--border)}.btn.danger{background:#fff;color:var(--danger);border-color:#b4231840}.field{display:flex;flex-direction:column;gap:.25rem;min-width:140px}.field label{font-size:.8rem;color:var(--muted);font-weight:500}.field input[type=number],.field input[type=text],.field input[type=password],.field select{border:1px solid var(--border);border-radius:10px;padding:.5rem .7rem;background:var(--surface-solid);color:var(--ink)}.field.grow{flex:1;min-width:min(100%,280px)}.field-hint{font-size:.8rem;color:var(--muted);line-height:1.35}.api-key-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end}.password-wrap{display:flex;gap:.45rem;align-items:center}.password-wrap input{flex:1;min-width:0;width:100%}.toggle-vis{flex-shrink:0;white-space:nowrap}.api-key-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.banner{margin:0 0 .9rem;padding:.7rem .9rem;border-radius:10px;font-size:.92rem;line-height:1.45}.banner.warn{background:#fff7ed;color:var(--warn);border:1px solid rgba(180,83,9,.25)}.file-list{display:grid;gap:.4rem;max-height:260px;overflow:auto;margin-bottom:.75rem}.file-item{display:grid;grid-template-columns:auto 1fr auto;gap:.65rem;align-items:center;padding:.55rem .7rem;border-radius:10px;border:1px solid transparent;background:#ffffff8c}.file-item:hover{border-color:var(--border)}.file-item .meta{color:var(--muted);font-size:.8rem}.tabs{display:flex;gap:.4rem;margin-bottom:.9rem}.tab{border:1px solid var(--border);background:transparent;border-radius:999px;padding:.4rem .9rem;cursor:pointer;color:var(--ink-soft);font-weight:500}.tab.active{background:var(--accent-soft);border-color:#0d6e6e40;color:var(--accent-deep)}.tree{display:grid;gap:.75rem}.employee{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#ffffffa6}.employee>summary{list-style:none;cursor:pointer;padding:.85rem 1rem;font-weight:600;display:flex;justify-content:space-between;gap:1rem;background:linear-gradient(90deg,rgba(212,239,239,.55),transparent)}.employee>summary::-webkit-details-marker{display:none}.days{width:100%;border-collapse:collapse;font-size:.92rem}.days th,.days td{padding:.55rem .75rem;border-top:1px solid var(--border);text-align:left}.days th{color:var(--muted);font-weight:500;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.days input[type=number]{width:5rem;border:1px solid var(--border);border-radius:8px;padding:.3rem .4rem}.progress{margin-top:.75rem;color:var(--ink-soft);font-size:.9rem}.extract-progress{margin-top:1rem;padding:1rem;border-radius:12px;border:1px solid rgba(13,110,110,.22);background:linear-gradient(180deg,#d4efef8c,#fffc 40%);display:grid;gap:.85rem;animation:rise .35s ease both}.extract-progress-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;align-items:baseline}.extract-progress-head strong{color:var(--accent-deep);font-size:1.05rem}.extract-timer{color:var(--ink-soft);font-size:.88rem;font-variant-numeric:tabular-nums}.job-list{display:grid;gap:.45rem}.job-list-head{display:flex;justify-content:space-between;align-items:baseline;font-size:.82rem;color:var(--ink-soft);font-variant-numeric:tabular-nums}.job-list-head span:first-child{font-weight:600;color:var(--accent-deep);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem}.job-list-items{list-style:none;margin:0;padding:0;display:grid;gap:.35rem;max-height:220px;overflow:auto}.job-item{display:grid;grid-template-columns:1.6rem minmax(0,1fr) auto auto;gap:.45rem;align-items:center;padding:.45rem .55rem;border-radius:8px;border:1px solid rgba(26,35,50,.08);background:#ffffffb8;font-size:.84rem}.job-item.is-current{border-color:#0d6e6e73;background:#d4efefbf;box-shadow:inset 3px 0 #0d6e6e}.job-item.is-current .job-filename{color:var(--accent-deep);font-weight:700}.job-index{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.78rem}.job-filename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:var(--ink)}.job-status{font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-soft);white-space:nowrap}.job-meta{font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums;text-align:right;max-width:9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-item.status-running .job-status{color:var(--accent-deep)}.job-item.status-done .job-status{color:#1b6b3a}.job-item.status-error .job-status,.job-item.status-error .job-meta{color:var(--danger)}.job-item.status-pending{opacity:.72}.extract-meters{display:grid;gap:.65rem}.meter-label{display:flex;justify-content:space-between;font-size:.82rem;color:var(--ink-soft);margin-bottom:.25rem;font-variant-numeric:tabular-nums}.meter-track{height:10px;border-radius:999px;background:#1a233214;overflow:hidden}.meter-fill{height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#3d4f66,#1a2332);transition:width .35s ease}.meter-fill.accent{background:linear-gradient(90deg,#0d6e6e,#0a5555)}.extract-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.55rem .85rem}.extract-stats>div{display:grid;gap:.15rem;min-width:0}.stat-k{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.stat-v{font-size:.9rem;color:var(--ink);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}.extract-log{max-height:240px;overflow:auto;border:1px solid var(--border);border-radius:10px;background:#ffffffd9;padding:.45rem .55rem;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.75rem;line-height:1.45}.log-line{display:grid;grid-template-columns:4.6rem 7.2rem 1fr;gap:.45rem;padding:.2rem .15rem;border-bottom:1px solid rgba(26,35,50,.05)}.log-line:last-child{border-bottom:none}.log-time{color:var(--muted);font-variant-numeric:tabular-nums}.log-phase{color:var(--accent-deep);font-weight:600}.log-msg{color:var(--ink-soft);overflow-wrap:anywhere}.log-detail{grid-column:3;color:var(--muted);font-size:.7rem}.log-line.phase-error .log-phase,.log-line.phase-error .log-msg{color:var(--danger)}.log-line.phase-chunk_retry .log-phase{color:var(--warn)}.log-line.phase-done .log-phase{color:var(--ok)}.log-line.muted{display:block;color:var(--muted)}@media(max-width:720px){.log-line{grid-template-columns:1fr;gap:.1rem}.log-detail{grid-column:1}}.toast{margin-top:.75rem;padding:.7rem .9rem;border-radius:10px;background:#e8f8f1;color:var(--ok);border:1px solid rgba(5,122,85,.2)}.toast.error{background:#fef3f2;color:var(--danger);border-color:#b4231833}.empty{color:var(--muted);padding:1rem 0}.checkbox{display:inline-flex;align-items:center;gap:.45rem;color:var(--ink-soft);cursor:pointer}.export-formats{display:grid;gap:.65rem;margin:.85rem 0 1rem}.format-option{display:grid;grid-template-columns:auto 1fr;gap:.7rem;align-items:start;padding:.85rem 1rem;border:1px solid var(--border);border-radius:12px;background:#ffffffa6;cursor:pointer}.format-option.active{border-color:#0d6e6e59;background:#d4efef8c}.format-option strong{display:block;color:var(--accent-deep);margin-bottom:.2rem}.format-option small{display:block;color:var(--ink-soft);line-height:1.4;font-size:.85rem}.format-option input{margin-top:.2rem}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(max-width:960px){.ops-workspace{grid-template-columns:1fr}.employee-detail-pane{min-height:280px}}@media(max-width:720px){.app{padding:1.25rem .9rem 2rem}.app-tabs{width:100%}.app-tab{flex:1;text-align:center}.employee-grid{grid-template-columns:1fr}.file-item{grid-template-columns:auto 1fr}.file-item .meta{grid-column:2}.log-line{grid-template-columns:1fr;gap:.1rem}.log-detail{grid-column:1}}
