:root{--red: #bb2a2e;--red-d: #94181c;--red-l: #fbe4e5;--ink: #1C1C1E;--ink2: #3A3A3C;--ink3: #6B7280;--border: #E5E7EB;--border2: #F3F4F6;--surface: #FFFFFF;--bg: #F7F8FA;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-height:100vh}.shell{min-height:100vh;display:flex;flex-direction:column;align-items:center}.center{width:100%;max-width:420px;padding:4rem 1.5rem}.wide{width:100%;max-width:880px;padding:2.5rem 1.5rem}.brand{display:flex;align-items:center;gap:.6rem;margin-bottom:1.75rem}.brand img{width:36px;height:36px;border-radius:8px}.brand h1{font-size:1.1rem;margin:0;font-weight:700;letter-spacing:.4px}.brand .accent{color:var(--red)}.title{font-size:1.55rem;margin:0 0 .35rem;font-weight:700;letter-spacing:-.01em}.title .accent{color:var(--red)}.subtitle{color:var(--ink3);margin:0 0 1.75rem;font-size:.95rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:1.5rem;box-shadow:0 1px 2px #00000008}.card+.card{margin-top:1rem}label{display:block;font-size:.78rem;font-weight:600;color:var(--ink2);letter-spacing:.3px;text-transform:uppercase;margin-bottom:.35rem}input{width:100%;padding:.65rem .85rem;border:1px solid var(--border);border-radius:10px;background:#fff;font-size:.95rem;color:var(--ink);transition:border-color .15s,box-shadow .15s}input:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px var(--red-l)}.field+.field{margin-top:.9rem}.row-check{display:flex;align-items:center;gap:.5rem;margin-top:.9rem;font-size:.88rem;color:var(--ink2)}.row-check input{width:auto}button.primary{width:100%;margin-top:1.25rem;background:var(--red);color:#fff;border:0;padding:.75rem 1rem;border-radius:10px;font-weight:700;font-size:.95rem;cursor:pointer;letter-spacing:.2px;transition:background .15s,transform .05s}button.primary:hover:not(:disabled){background:var(--red-d)}button.primary:active:not(:disabled){transform:translateY(1px)}button.primary:disabled{opacity:.55;cursor:not-allowed}button.ghost{background:transparent;color:var(--ink2);border:1px solid var(--border);padding:.5rem .85rem;border-radius:8px;font-size:.85rem;cursor:pointer}button.ghost:hover{background:var(--border2)}.error{color:var(--red);margin-top:.75rem;font-size:.88rem}.topbar{width:100%;border-bottom:1px solid var(--border);background:var(--surface)}.topbar-inner{max-width:880px;margin:0 auto;padding:.85rem 1.5rem;display:flex;align-items:center;justify-content:space-between}.topbar-brand{display:flex;align-items:center;gap:.75rem}.topbar-title{color:var(--ink);font-size:.98rem;font-weight:800;letter-spacing:-.01em}.log{background:#0e0e10;color:#e4e4e7;border-radius:12px;padding:1rem;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.78rem;line-height:1.55;max-height:360px;overflow:auto}.log .line{white-space:pre-wrap}.log .ts{color:#6b7280;margin-right:.5rem}.log .lv-info{color:#a1a1aa}.log .lv-call{color:#60a5fa}.log .lv-ok{color:#34d399}.log .lv-err{color:#f87171}.log .lv-step{color:#fbbf24}.status{display:flex;align-items:center;gap:.65rem;font-size:.9rem;color:var(--ink2);margin-bottom:.85rem}.spinner{width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--red);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.result{display:flex;align-items:center;gap:.85rem;padding:.85rem 1rem;background:#ecfdf5;border:1px solid #A7F3D0;border-radius:12px;margin-top:1rem}.result strong{color:#065f46}.result .right{margin-left:auto;display:flex;gap:.5rem}.section-list{list-style:none;padding:0;margin:0 0 1rem;display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.section-list li{padding:.55rem .75rem;border:1px solid var(--border);border-radius:8px;font-size:.85rem;color:var(--ink2);display:flex;justify-content:space-between;align-items:center}.section-list li .state{font-size:.72rem;font-weight:600;padding:2px 8px;border-radius:100px}.state-pending{background:var(--border2);color:var(--ink3)}.state-active{background:#fef3c7;color:#92400e}.state-done{background:#d1fae5;color:#065f46}.state-err,.state-error{background:#fee2e2;color:#b91c1c}.tabs{display:inline-flex;background:var(--border2);padding:4px;border-radius:10px;margin-bottom:1rem}.tab{background:transparent;border:0;padding:.5rem 1rem;font-size:.88rem;font-weight:600;color:var(--ink3);border-radius:7px;cursor:pointer}.tab.active{background:#fff;color:var(--ink);box-shadow:0 1px 2px #00000014}.tab:disabled{opacity:.5;cursor:not-allowed}.hint{color:var(--ink3);font-size:.85rem;margin:.5rem 0 0}.list{margin-top:.5rem}.picklist{list-style:none;margin:.5rem 0 0;padding:0;max-height:320px;overflow:auto;border:1px solid var(--border);border-radius:10px}.picklist li{display:flex;justify-content:space-between;align-items:center;padding:.6rem .85rem;border-bottom:1px solid var(--border2);cursor:pointer;transition:background .1s}.picklist li:last-child{border-bottom:0}.picklist li:hover{background:var(--border2)}.picklist li.selected{background:var(--red-l)}.picklist li.selected .pl-primary{color:var(--red-d)}.pl-primary{font-weight:600;color:var(--ink);font-size:.92rem}.pl-secondary{color:var(--ink3);font-size:.78rem;margin-top:2px}.pl-meta{font-size:.72rem;color:var(--ink3);white-space:nowrap;margin-left:.5rem}.period-row{display:grid;grid-template-columns:2fr 1fr;gap:.5rem}.period-row select,.period-row input{width:100%}.result-stack{width:100%;max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:.75rem}.result-preview{width:100%;height:480px;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 1px 2px #0000000a}.docx-host{overflow:auto;padding:1rem;height:720px;background:#e5e7eb}.docx-host .docx-preview,.docx-host .docx-wrapper{display:flex;flex-direction:column;gap:1rem;align-items:center}.docx-host section.docx{background:#fff;box-shadow:0 1px 4px #00000014}.result-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end;padding:0 0 .5rem}.result-actions button.primary{margin-top:0;width:auto;padding:.5rem .95rem;font-size:.85rem;border-radius:8px}.picked-user{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.65rem .85rem;background:var(--red-l);border-radius:10px}.picked-user .pl-primary{color:var(--red-d)}.picked-stack{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.85rem}.picked-row{display:flex;align-items:center;gap:.75rem;background:var(--red-l);border:1px solid rgba(187,42,46,.25);border-radius:10px;padding:.5rem .75rem;animation:pickIn .22s ease both}.picked-row .picked-label{font-size:.66rem;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--red-d);padding:2px 8px;border-radius:100px;background:#ffffffb3;white-space:nowrap}.picked-row .picked-body{flex:1;min-width:0}.picked-row .pl-primary{color:var(--red-d);font-size:.9rem}.picked-row .pl-secondary{color:var(--ink3);font-size:.72rem;margin-top:0}.picked-row .ghost{padding:.3rem .65rem;font-size:.78rem}.step-card,.mode-panel{animation:pickIn .25s ease both;border:1px solid var(--border);border-radius:12px;padding:1rem;background:linear-gradient(180deg,#fff,#fbfbfc)}.mode-panel+.step-card,.picked-stack+.step-card,.step-card+.step-card,.picked-stack+.period-card{margin-top:.85rem}@keyframes pickIn{0%{opacity:0;transform:translateY(-6px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.search-input{position:relative}.search-input input{padding-right:2.25rem}.spinner-inline{position:absolute;right:.7rem;top:50%;transform:translateY(-50%)}.search-clear{position:absolute;right:.4rem;top:50%;transform:translateY(-50%);background:transparent;border:0;font-size:1.4rem;line-height:1;color:var(--ink3);cursor:pointer;padding:0 .35rem;border-radius:6px}.search-clear:hover{color:var(--ink);background:var(--border2)}.picklist.is-loading{opacity:.55;transition:opacity .15s}.form-area,.process-area{transition:opacity .35s ease,transform .35s ease,max-height .4s ease}.process-area{display:flex;flex-direction:column;align-items:stretch;justify-content:center}.process-area:empty{display:none}.wide.is-processing{display:flex;flex-direction:column;gap:1rem;padding-top:1.25rem;max-width:1180px}.wide.is-processing .form-area{animation:fadeUp .3s ease both;width:100%}.wide.is-processing .process-area{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:1rem;animation:fadeUp .35s ease both}.wide.is-processing .form-area button.primary{font-size:.88rem;padding:.65rem 1rem}@media (max-width: 760px){.wide.is-processing .process-area{grid-template-columns:1fr}}.progress-card{width:100%;overflow:hidden}.progress-side,.preview-side{display:flex;flex-direction:column;gap:.85rem}.wide.is-processing .filter-summary{display:flex;flex-wrap:wrap;gap:1.5rem 2rem;padding:.75rem 1.1rem}.wide.is-processing .filter-summary .fs-row{display:flex;flex-direction:column;gap:.15rem;grid-template-columns:none;border:0;padding:0}.wide.is-processing .filter-summary .fs-value{white-space:normal}.wide.is-processing .section-list{grid-template-columns:1fr;gap:.3rem}.wide.is-processing .section-list li{padding:.4rem .65rem;font-size:.78rem}.wide.is-processing .section-list li .state{font-size:.6rem;padding:1px 6px}.wide.is-processing .log{font-size:.72rem;max-height:220px;padding:.7rem .85rem}.wide.is-processing .progress-card{padding:1rem}.wide.is-processing .progress-card .status{font-size:.85rem;margin-bottom:.6rem}.preview-placeholder{border:1px dashed var(--border);background:var(--surface);border-radius:12px;min-height:480px;display:flex;align-items:center;justify-content:center;gap:.6rem;color:var(--ink3);font-size:.9rem;animation:fadeUp .3s ease both}.preview-side .result-stack{max-width:none}.preview-side .result-preview{height:600px}.preview-side .docx-host{height:820px}.filters-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.filters-title{font-size:.78rem;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--ink3)}.filters-body{display:contents}.filters-body.is-collapsed{display:none}.report-config{padding:1.15rem;transition:padding .25s ease,box-shadow .25s ease,border-color .25s ease}.report-config .title{margin:.25rem 0 0}.report-config.is-compact{padding:.95rem 1rem}.filter-summary{padding:.85rem 1rem;animation:pickIn .22s ease both}.filter-summary .fs-row{display:grid;grid-template-columns:72px 1fr;gap:.5rem;padding:.3rem 0;font-size:.85rem;border-bottom:1px solid var(--border2)}.filter-summary .fs-row:last-child{border-bottom:0}.filter-summary .fs-label{font-size:.66rem;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--ink3);align-self:center}.filter-summary .fs-value{color:var(--ink);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.period-card label{margin-bottom:.65rem}.period-row{display:grid;grid-template-columns:1fr 1.6fr;gap:.6rem}.period-field{display:flex;flex-direction:column;gap:.3rem}.period-sublabel{font-size:.66rem;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--ink3)}.period-field input,.period-field select{height:42px;padding:0 .85rem;border-radius:10px;background:#fff;border:1px solid var(--border);font-size:.95rem;color:var(--ink);-moz-appearance:none;appearance:none;-webkit-appearance:none}.period-field select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path d='M3 4.5l3 3 3-3' stroke='%236B7280' stroke-width='1.4' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-repeat:no-repeat;background-position:right .7rem center;background-size:12px 12px;padding-right:2rem}.period-field input:focus,.period-field select:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px var(--red-l)}.progress-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.85rem}.progress-current{margin-top:.2rem;font-size:.9rem;font-weight:700;color:var(--ink)}.collection-step{padding:.85rem;border:1px solid var(--border);border-radius:12px;background:#fff;margin-bottom:.8rem}.collection-row{display:flex;justify-content:space-between;gap:.75rem;color:var(--ink2);font-size:.84rem;font-weight:700}.collection-row span:last-child{color:var(--ink3);font-size:.74rem;text-transform:uppercase;letter-spacing:.6px}.collection-step.state-done .collection-row span:last-child{color:#047857}.collection-step.state-error .collection-row span:last-child{color:#b91c1c}.collection-bar{height:8px;overflow:hidden;border-radius:999px;background:var(--border2);margin-top:.65rem}.collection-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--red),#e45f63);transition:width .45s ease}.section-list:empty{display:none}.log-title{margin:.85rem 0 .45rem;color:var(--ink3);font-size:.7rem;font-weight:800;letter-spacing:.7px;text-transform:uppercase}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.login-shell{min-height:100vh;background:#bb2a2e;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(56px,14vh,140px);padding:2.5rem 1.5rem}.login-logo{width:140px;height:auto;-webkit-user-select:none;user-select:none}.login-form{width:100%;max-width:320px;display:flex;flex-direction:column;gap:.6rem}.login-input{width:100%;padding:.85rem 1rem;border:0;border-radius:10px;background:#fff;color:#1c1c1e;font-size:.95rem;transition:box-shadow .15s;box-shadow:0 1px 2px #0000000f}.login-input::placeholder{color:#9aa0a6}.login-input:focus{outline:none;box-shadow:0 0 0 3px #ffffff73,0 1px 2px #0000000f}.login-input:-webkit-autofill{-webkit-text-fill-color:#1c1c1e;-webkit-box-shadow:0 0 0 1000px #ffffff inset;caret-color:#1c1c1e}.login-btn{margin-top:.5rem;background:#1c1c1e;color:#fff;border:0;padding:.85rem 1rem;border-radius:10px;font-weight:600;font-size:.95rem;letter-spacing:.2px;cursor:pointer;transition:background .15s,transform .05s,opacity .15s}.login-btn:hover:not(:disabled){background:#000}.login-btn:active:not(:disabled){transform:translateY(1px)}.login-btn:disabled{opacity:.55;cursor:not-allowed}.login-error{margin:.5rem 0 0;color:#fff;background:#00000038;padding:.55rem .75rem;border-radius:8px;font-size:.85rem;text-align:center}.topbar-icon{width:32px;height:32px;border-radius:8px;display:block}
