:root{--navy:#1f1f21;--navy-900:#141415;--navy-600:#3a3a3d;--pink:#c8102e;--pink-600:#a80d26;--green-tint:#e8f4ec;--bg:#fafafa;--surface:#fff;--surface-2:#f4f4f5;--text:#1a1a1c;--muted:#717178;--muted-strong:#a0a0a8;--border:#e6e6e9;--ok:#12a06a;--warn:#e08a00;--danger:#c8102e;--shadow:0 1px 2px #0000000a, 0 6px 20px #0000000a;--radius:14px;color:var(--text);font-family:Poppins,system-ui,Segoe UI,Roboto,sans-serif}[data-theme=dark]{--navy:#e4e4e7;--navy-900:#0c0c0d;--navy-600:#c4c4c9;--pink:#e5334f;--pink-600:#ff5670;--green-tint:#15261c;--bg:#111112;--surface:#1a1a1c;--surface-2:#232326;--text:#ececee;--muted:#9a9aa2;--muted-strong:#6a6a72;--border:#2e2e32;--shadow:0 1px 2px #0000004d, 0 8px 24px #00000040;--ok:#34d399;--warn:#fbbf24;--danger:#ff6b82}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);margin:0;transition:background .25s}button{font-family:inherit}.shell{min-height:100%;display:flex}.sidebar{color:#fff;z-index:30;background:#141415;border-right:1px solid #262628;flex-direction:column;flex-shrink:0;width:248px;height:100vh;padding:18px 14px;display:flex;position:sticky;top:0}.brand{margin-bottom:26px;padding:4px 8px;display:flex}.brand img{border-radius:4px;width:100%;max-width:190px;height:auto;display:block}.nav-label{letter-spacing:.14em;text-transform:uppercase;color:#ffffff73;margin-bottom:10px;padding:0 8px;font-size:.66rem;font-weight:600}.sidebar nav{flex-direction:column;gap:6px;display:flex}.sidebar nav button{color:#ffffffb8;cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:12px;padding:11px 12px;font-size:.88rem;font-weight:500;transition:background .2s,color .2s,border-color .2s;display:flex}.sidebar nav button svg{color:#fff9}.sidebar nav button:hover{color:#fff;background:#ffffff0f}.sidebar nav button.active{border-color:var(--pink);color:#fff;background:#c8102e29}.sidebar nav button.active svg{color:#ff5670}.side-foot{color:#ffffff8c;flex-direction:column;gap:6px;margin-top:auto;font-size:.76rem;display:flex}.side-card{background:#1e1e20;border:1px solid #2c2c2f;border-radius:8px;align-items:center;gap:10px;margin-bottom:8px;padding:10px 12px;display:flex}.side-card .ico{background:var(--pink);color:#fff;border-radius:7px;flex-shrink:0;place-items:center;width:30px;height:30px;display:grid}.side-card strong{color:#fff;font-size:.8rem;font-weight:600;display:block}.side-card small{color:#ffffff80;font-size:.7rem}.status{align-items:center;gap:8px;display:flex}.status i{border-radius:50%;width:8px;height:8px;display:inline-block}.status i.on{background:#34d399;box-shadow:0 0 0 4px #34d39933}.status i.off{background:#ff6b82;box-shadow:0 0 0 4px #ff6b8233}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{z-index:10;background:color-mix(in srgb, var(--bg) 85%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);align-items:center;gap:16px;padding:18px 32px;display:flex;position:sticky;top:0}.titles{flex:1}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--pink);font-size:.68rem;font-weight:600}.titles h1{margin:0;font-size:1.35rem;font-weight:600}.titles p{color:var(--muted);margin:2px 0 0;font-size:.82rem}.content{width:100%;max-width:1240px;margin:0 auto;padding:28px 32px 48px;animation:.35s fade}.stack{flex-direction:column;gap:22px;display:flex}.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:22px;display:grid}.row{align-items:center;gap:10px;display:flex}.only-mobile,.scrim{display:none}@keyframes fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}.card.flush{padding:0;overflow:hidden}.card h3{margin:0 0 14px;font-size:1rem;font-weight:600}.card h3 small{color:var(--muted);font-weight:400}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.card-head h3{margin:0}.muted{color:var(--muted);font-size:.85rem}.link{color:var(--pink);cursor:pointer;font-weight:500;font-size:inherit;background:0 0;border:0;padding:0}.link:hover{text-decoration:underline}.btn{background:var(--pink);color:#fff;cursor:pointer;box-shadow:0 4px 12px color-mix(in srgb, var(--pink) 30%, transparent);border:0;border-radius:10px;align-items:center;gap:8px;padding:10px 18px;font-size:.88rem;font-weight:500;text-decoration:none;transition:transform .15s,box-shadow .2s,opacity .2s;display:inline-flex}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn.ghost{background:var(--surface);color:var(--pink);border:1px solid var(--pink);box-shadow:none}.btn.light{color:var(--navy-900);background:#fff;box-shadow:0 6px 16px #0000002e}.btn.small{padding:6px 12px;font-size:.8rem}.icon-btn{border:1px solid var(--border);background:var(--surface);width:40px;height:40px;color:var(--text);cursor:pointer;border-radius:10px;place-items:center;display:grid}.icon-btn:hover{border-color:var(--pink);color:var(--pink)}.pill{background:var(--surface-2);color:var(--muted);white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:.74rem;font-weight:500;display:inline-block}.pill.ok{background:color-mix(in srgb, var(--ok) 15%, transparent);color:var(--ok)}.pill.warn{background:color-mix(in srgb, var(--warn) 18%, transparent);color:var(--warn)}.pill.danger{background:color-mix(in srgb, var(--danger) 15%, transparent);color:var(--danger)}.tag{letter-spacing:.04em;background:var(--surface-2);border-radius:6px;padding:3px 10px;font-size:.72rem;font-weight:600;display:inline-block}.tag.swhw{background:color-mix(in srgb, var(--navy) 14%, transparent);color:var(--navy)}.tag.sow{background:color-mix(in srgb, var(--pink) 14%, transparent);color:var(--pink)}.banner{border-radius:10px;align-items:center;gap:10px;margin-bottom:18px;padding:12px 16px;font-size:.86rem;display:flex}.banner.ok{background:color-mix(in srgb, var(--ok) 12%, transparent);color:var(--ok)}.banner.warn{background:color-mix(in srgb, var(--warn) 14%, transparent);color:var(--warn)}.banner.danger{background:color-mix(in srgb, var(--danger) 12%, transparent);color:var(--danger)}.skeleton{background:linear-gradient(90deg, var(--surface-2), var(--border), var(--surface-2));vertical-align:middle;background-size:200% 100%;border-radius:6px;width:60px;height:1.2em;animation:1.2s infinite shimmer;display:inline-block}.skeleton.wide{width:100%}@keyframes shimmer{to{background-position:-200% 0}}.hero{color:#fff;background:linear-gradient(120deg,#141415,#2a2a2d 60%,#4a1520);border-radius:18px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding:28px 32px;display:flex;position:relative;overflow:hidden}.hero:after{content:"";background:radial-gradient(circle,#c8102e8c,#0000 70%);border-radius:50%;width:280px;height:280px;position:absolute;top:-80px;right:-60px}.hero h2{margin:0 0 6px;font-size:1.5rem}.hero p{opacity:.85;max-width:520px;margin:0;font-size:.92rem}.hero .btn{z-index:1;position:relative}.kpis{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px;display:grid}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:16px;padding:20px;transition:transform .2s;display:flex}.kpi:hover{transform:translateY(-3px)}.kpi-icon{color:#fff;border-radius:12px;place-items:center;width:48px;height:48px;display:grid}.kpi.navy .kpi-icon{background:linear-gradient(135deg,#1f1f21,#3a3a3d)}.kpi.pink .kpi-icon{background:linear-gradient(135deg, var(--pink), #e5334f)}.kpi-value{font-size:1.6rem;font-weight:700;line-height:1.2}.kpi-label{color:var(--muted);font-size:.78rem}.donut-wrap{flex-wrap:wrap;align-items:center;gap:28px;display:flex}.donut{width:160px;height:160px}.donut-track{fill:none;stroke:var(--surface-2);stroke-width:16px}.donut-num{fill:var(--text);font-size:26px;font-weight:700}.donut-lbl{fill:var(--muted);font-size:9px}.legend{flex-direction:column;gap:10px;margin:0;padding:0;font-size:.88rem;list-style:none;display:flex}.legend .dot{border-radius:3px;width:10px;height:10px;margin-right:8px;display:inline-block}.bars{align-items:flex-end;gap:14px;height:180px;padding-top:10px;display:flex}.bar-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;min-width:0;height:100%;display:flex}.bar{background:linear-gradient(180deg, var(--pink), #2a2a2d);border-radius:8px 8px 0 0;width:100%;max-width:52px;min-height:4px;transition:height .6s cubic-bezier(.2,.8,.2,1)}.bar-val{color:var(--muted);font-size:.72rem}.bar-lbl{font-size:.78rem;font-weight:500}.timeline{margin:0;padding:0;list-style:none}.timeline li{border-bottom:1px solid var(--border);cursor:pointer;border-radius:8px;align-items:center;gap:14px;padding:12px 8px;display:flex}.timeline li:last-child{border-bottom:0}.timeline li:hover{background:var(--surface-2)}.timeline li>div{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.9rem;overflow:hidden}.dropzone{border:2px dashed var(--border);text-align:center;cursor:pointer;background:var(--surface);border-radius:18px;padding:52px 20px;transition:all .2s}.dropzone:hover,.dropzone.active{border-color:var(--pink);background:color-mix(in srgb, var(--pink) 5%, var(--surface))}.dropzone.active{transform:scale(1.01)}.dropzone h3{margin:14px 0 6px;font-size:1.15rem}.dropzone p{color:var(--muted);margin:0;font-size:.88rem}.drop-icon{color:#fff;background:linear-gradient(135deg, var(--navy), var(--pink));width:68px;height:68px;box-shadow:0 10px 24px color-mix(in srgb, var(--pink) 30%, transparent);border-radius:50%;place-items:center;margin:0 auto;display:grid}.queue{flex-direction:column;gap:10px;margin:14px 0 0;padding:0;list-style:none;display:flex}.q-item{border:1px solid var(--border);background:var(--surface-2);border-radius:12px;padding:14px 16px}.q-item.done{border-color:color-mix(in srgb, var(--ok) 40%, var(--border))}.q-item.error{border-color:color-mix(in srgb, var(--danger) 50%, var(--border))}.q-main{align-items:center;gap:14px;display:flex}.q-icon{background:var(--surface);width:38px;height:38px;color:var(--navy);border-radius:10px;place-items:center;display:grid}.q-item.done .q-icon{color:var(--ok)}.q-item.error .q-icon{color:var(--danger)}.q-name{flex-direction:column;flex:1;min-width:0;display:flex}.q-name strong{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;overflow:hidden}.error-text{color:var(--danger);margin:10px 0 0;font-size:.84rem}.steps{color:var(--muted);flex-wrap:wrap;gap:8px 22px;margin-top:14px;font-size:.8rem;display:flex}.step{align-items:center;gap:8px;display:flex}.step-dot{background:var(--border);width:20px;height:20px;color:var(--muted);border-radius:50%;place-items:center;font-size:.68rem;display:grid}.step.current{color:var(--text);font-weight:500}.step.current .step-dot{background:var(--pink);color:#fff;animation:1.2s infinite pulse}.step.done .step-dot{background:var(--ok);color:#fff}@keyframes pulse{50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--pink) 25%, transparent)}}.progress{background:var(--border);border-radius:4px;flex-basis:100%;height:4px;overflow:hidden}.progress-bar{background:linear-gradient(90deg, var(--navy), var(--pink));border-radius:4px;width:40%;height:100%;animation:1.2s ease-in-out infinite slide}@keyframes slide{0%{margin-left:-40%}to{margin-left:100%}}.tips{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.tip{background:var(--surface);border:1px solid var(--border);color:var(--navy);border-radius:12px;gap:14px;padding:16px;display:flex}.tip strong{color:var(--text);font-size:.9rem}.tip p{color:var(--muted);margin:4px 0 0;font-size:.8rem}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.search{background:var(--surface);border:1px solid var(--border);min-width:240px;color:var(--muted);border-radius:10px;flex:1;align-items:center;gap:10px;padding:0 14px;display:flex}.search:focus-within{border-color:var(--navy);box-shadow:0 0 0 3px color-mix(in srgb, var(--navy) 18%, transparent)}.search input{color:var(--text);background:0 0;border:0;outline:none;flex:1;padding:11px 0;font-family:inherit;font-size:.88rem}.seg{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:3px;display:flex}.seg button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:7px 14px;font-size:.82rem}.seg button.on{background:var(--pink);color:#fff}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.86rem}th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--surface-2);white-space:nowrap;padding:14px 18px;font-size:.74rem}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{color:var(--pink)}td{border-top:1px solid var(--border);text-overflow:ellipsis;white-space:nowrap;max-width:220px;padding:14px 18px;overflow:hidden}td.strong{color:var(--navy);font-weight:600}th.center,td.center{text-align:center}.pdf-link{cursor:pointer;width:36px;height:36px;color:var(--pink);background:0 0;border:0;border-radius:8px;place-items:center;padding:0;transition:background .15s,transform .15s;display:inline-grid}.pdf-link:hover{background:color-mix(in srgb, var(--pink) 12%, transparent);transform:translateY(-1px)}td.empty{text-align:center;color:var(--muted);padding:40px}tbody tr{transition:background .15s}table:not(.sheet) tbody tr:nth-child(odd){background:var(--green-tint)}tbody tr:hover{background:var(--surface-2)!important}.pager{border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 18px;font-size:.84rem;display:flex}.spacer{flex:1}.sheet-scroll{max-height:calc(100vh - 230px);overflow:auto}table.sheet{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:.84rem}table.sheet th,table.sheet td{border-right:1px solid var(--border);border-bottom:1px solid var(--border);white-space:nowrap;vertical-align:top;max-width:none;padding:8px 12px}table.sheet{table-layout:fixed}table.sheet td.wrap{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5}table.sheet tr.letters th{background:var(--surface-2);color:var(--muted);text-align:center;z-index:3;padding:4px;font-size:.72rem;position:sticky;top:0}table.sheet tr.names th{color:#fff;text-align:center;text-transform:none;letter-spacing:0;white-space:normal;z-index:3;background:#2a2a2d;height:44px;font-size:.8rem;position:sticky;top:25px}table.sheet .rownum,table.sheet .corner{background:var(--surface-2);color:var(--muted);text-align:center;z-index:2;min-width:44px;font-size:.74rem;position:sticky;left:0}table.sheet tr.names th.rownum,table.sheet .corner{z-index:4}table.sheet tr.names th.rownum{background:var(--surface-2)}table.sheet tbody tr{cursor:default}table.sheet tbody tr:hover td{background:var(--surface-2)}.overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:50;background:#0a0a0c80;justify-content:center;align-items:center;padding:24px;animation:.2s fade-in;display:flex;position:fixed;inset:0}.drawer{overscroll-behavior:contain;background:var(--surface);border-radius:14px;width:min(640px,100%);max-height:calc(100vh - 48px);padding:28px;animation:.25s cubic-bezier(.2,.8,.2,1) pop-in;overflow-y:auto;box-shadow:0 24px 60px #0000004d}.drawer.split{grid-template-columns:minmax(360px,440px) 1fr;width:min(1440px,100%);height:calc(100vh - 48px);max-height:none;padding:0;display:grid;overflow:hidden}.detail-pane{overscroll-behavior:contain;border-right:1px solid var(--border);padding:28px;overflow-y:auto}.pdf-pane{background:var(--surface-2);flex-direction:column;min-width:0;display:flex}.pdf-bar{background:var(--surface);border-bottom:1px solid var(--border);color:var(--pink);align-items:center;gap:12px;padding:12px 16px;display:flex}.pdf-bar strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text);flex:1;font-size:.9rem;font-weight:600;overflow:hidden}.pdf-view{flex:1;min-height:0;display:flex}.pdf-view iframe{background:#fff;border:0;flex:1;width:100%;height:100%}.pdf-msg{text-align:center;max-width:360px;color:var(--muted);flex-direction:column;align-items:center;gap:12px;margin:auto;padding:24px;font-size:.9rem;display:flex}.pdf-msg svg{color:var(--danger)}.pdf-msg p{margin:0}.drawer-head{justify-content:space-between;align-items:flex-start;margin-bottom:18px;display:flex}.drawer-head h2{color:var(--navy);margin:8px 0 2px;font-size:1.5rem}.drawer h4{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:24px 0 10px;font-size:.82rem}.facts{grid-template-columns:1fr 1fr;gap:14px;margin:0;display:grid}.facts div{background:var(--surface-2);border-radius:10px;padding:12px 14px}.facts .wide{grid-column:1/-1}.facts dd{white-space:pre-wrap}.facts dt{color:var(--muted);font-size:.72rem}.facts dd{word-break:break-word;margin:2px 0 0;font-size:.9rem;font-weight:600}.hbars{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.hbars li{grid-template-columns:44px 1fr auto;align-items:center;gap:12px;font-size:.84rem;display:grid}.hbar{background:var(--surface-2);border-radius:6px;height:10px;overflow:hidden}.hbar div{background:linear-gradient(90deg, var(--navy), var(--pink));border-radius:6px;height:100%}.desc{white-space:pre-wrap;background:var(--surface-2);border-radius:10px;margin:0;padding:16px;font-family:inherit;font-size:.86rem;line-height:1.65}@keyframes fade-in{0%{opacity:0}}@keyframes slide-in{0%{opacity:0;transform:translate(40px)}}@keyframes pop-in{0%{opacity:0;transform:translateY(12px)scale(.98)}}.toasts{z-index:100;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:20px;right:20px}.toast{color:#fff;border-left:4px solid var(--navy-600);background:#1e1e20;border-radius:10px;max-width:340px;padding:12px 18px;font-size:.86rem;animation:.3s slide-in;box-shadow:0 10px 30px #00000040}.toast.success{border-left-color:#34d399}.toast.error{border-left-color:var(--pink)}@media (width<=860px){.sidebar{transition:transform .25s;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.open{transform:none}.scrim{z-index:20;background:#00000073;display:block;position:fixed;inset:0}.only-mobile{display:grid}.topbar,.content{padding-left:18px;padding-right:18px}.hero{padding:22px}.facts{grid-template-columns:1fr}.overlay{padding:0}.drawer.split{border-radius:0;grid-template-rows:auto 1fr;grid-template-columns:1fr;height:100%;overflow-y:auto}.detail-pane{border-right:0;border-bottom:1px solid var(--border);overflow:visible}.pdf-pane{min-height:80vh}}
