:root{color-scheme:light;--ink: #101a31;--muted: #5d6c88;--line: rgba(127, 149, 189, .2);--line-strong: rgba(113, 136, 179, .34);--shell: rgba(255, 255, 255, .74);--panel: rgba(255, 255, 255, .92);--panel-soft: rgba(252, 254, 255, .84);--primary: #0a84ff;--primary-deep: #0062d1;--danger: #d44469;--success: #2f8f79;--warning: #b77b19;--idle: #6b778f;--radius-xl: 34px;--radius-lg: 24px;--radius-md: 16px;--radius-sm: 12px;--shadow-soft: 0 30px 80px rgba(17, 31, 62, .16);--shadow-panel: 0 14px 42px rgba(23, 40, 74, .11)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Helvetica Neue,sans-serif;background:radial-gradient(880px 620px at -8% -14%,rgba(255,218,186,.54),transparent 60%),radial-gradient(920px 560px at 112% 112%,rgba(166,217,250,.44),transparent 62%),linear-gradient(160deg,#e8eef7,#f5f8fd 45%,#e3ebf6);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.app{min-height:100vh;padding:clamp(14px,2.5vw,30px)}.shell{width:min(1280px,100%);margin:0 auto;padding:clamp(18px,2.4vw,30px);border-radius:var(--radius-xl);border:1px solid rgba(255,255,255,.5);background:linear-gradient(180deg,#ffffffba,#f5faff9e);backdrop-filter:blur(32px) saturate(150%);-webkit-backdrop-filter:blur(32px) saturate(150%);box-shadow:var(--shadow-soft),inset 0 1px #ffffffbf;animation:shellIn .54s cubic-bezier(.2,.72,.15,1) both}.masthead{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.masthead-copy{max-width:860px}.eyebrow{margin:0;text-transform:uppercase;letter-spacing:.18em;font-size:.75rem;color:#42597d;font-weight:640}h1{margin:10px 0 8px;font-size:clamp(2.2rem,4.2vw,3.8rem);letter-spacing:-.045em;line-height:.95}.lead{margin:0;max-width:700px;color:var(--muted);font-size:clamp(.96rem,1.35vw,1.15rem);line-height:1.45}.masthead-actions{display:flex;align-items:center;gap:10px}.notice-stack{margin-top:14px;display:grid;gap:8px;justify-items:end}.notice{width:min(560px,100%);border-radius:14px;border:1px solid var(--line);background:#ffffffeb;box-shadow:var(--shadow-panel);padding:10px 12px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;animation:riseIn .22s ease both}.notice p{margin:0;font-size:.88rem;color:#2f476d}.notice-success{border-color:#3fa78c73;background:#f2fffaf0}.notice-warning{border-color:#d28e4873;background:#fff9f0f2}.notice-close{border:1px solid rgba(142,162,195,.5);background:#ffffffdb;color:#385173;font-size:.78rem;font-weight:600;border-radius:999px;padding:6px 9px;cursor:pointer}.sync-pill{margin:0;font-size:.78rem;color:#4c6187;background:#ffffffb8;border:1px solid var(--line);border-radius:999px;padding:9px 12px;white-space:nowrap}.auth-wrap{margin-top:26px;display:grid;place-items:center}.auth-card{width:min(460px,100%);border:1px solid var(--line-strong);background:linear-gradient(180deg,#ffffffeb,#f6faffdb);border-radius:24px;padding:clamp(18px,2vw,24px);box-shadow:var(--shadow-panel)}.auth-card h2{margin:0;font-size:1.34rem;letter-spacing:-.02em}.auth-card p{margin:8px 0 18px;color:var(--muted)}.metrics-grid{margin-top:22px;display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:12px}.metric-card{border:1px solid rgba(255,255,255,.75);border-radius:var(--radius-md);padding:11px 13px;background:linear-gradient(180deg,#fffffff0,#f5faffd1);box-shadow:0 8px 24px #1b2d5214,inset 0 1px #fffffff2;animation:riseIn .44s cubic-bezier(.25,.8,.24,1) both}.metrics-grid .metric-card:nth-child(1){animation-delay:20ms}.metrics-grid .metric-card:nth-child(2){animation-delay:60ms}.metrics-grid .metric-card:nth-child(3){animation-delay:.1s}.metrics-grid .metric-card:nth-child(4){animation-delay:.14s}.metrics-grid .metric-card:nth-child(5){animation-delay:.18s}.metric-label{margin:0;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:#607090}.metric-value{margin:7px 0 0;font-size:clamp(1.25rem,2.2vw,1.7rem);letter-spacing:-.04em;font-weight:660}.storage-card{display:grid;gap:8px}.meter{height:7px;border-radius:999px;background:#dfe8f6;overflow:hidden}.meter-fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#5aa6ff,#0a84ff);transition:width .22s ease}.workflow-grid{margin-top:14px;display:grid;grid-template-columns:minmax(320px,1.06fr) minmax(340px,1fr);gap:14px;align-items:start}.panel{border:1px solid rgba(255,255,255,.76);border-radius:var(--radius-lg);background:linear-gradient(180deg,var(--panel),var(--panel-soft));box-shadow:var(--shadow-panel);padding:18px;display:grid;gap:12px;align-items:start;align-content:start;animation:riseIn .52s cubic-bezier(.25,.8,.24,1) both}.composer-panel{gap:14px}.panel-head{display:grid;gap:4px}.panel-head-space{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.panel h2{margin:0;font-size:1.32rem;letter-spacing:-.02em}.panel-sub{margin:0;color:var(--muted);font-size:.86rem;line-height:1.35;overflow-wrap:anywhere}.active-destination{border:1px solid rgba(151,178,220,.42);border-radius:14px;background:#f5faffd6;padding:9px 10px;display:grid;gap:5px}.active-destination span{font-size:.74rem;text-transform:uppercase;letter-spacing:.09em;color:#60749a;font-weight:620}.active-destination code{font-size:.83rem;color:#2f466d;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;overflow-wrap:anywhere}.field{display:grid;gap:7px}.field>span{font-size:.89rem;color:#304562;font-weight:560}input,select{width:100%;border:1px solid rgba(144,165,202,.36);border-radius:var(--radius-sm);padding:12px 14px;background:#fcfeffeb;color:var(--ink);font-size:.97rem;transition:border-color .12s ease,box-shadow .12s ease,background-color .12s ease,transform .12s ease;min-height:48px}input::placeholder{color:#8a96ad}input:focus,select:focus{outline:0;border-color:#4285de85;box-shadow:0 0 0 3px #0a84ff29;background:#fff;transform:translateY(-1px)}.split-row{display:grid;grid-template-columns:1fr auto;gap:8px}.split-row>.button{min-height:48px}.button{border:1px solid rgba(138,161,202,.34);border-radius:14px;padding:10px 14px;font-size:.95rem;font-weight:600;letter-spacing:-.01em;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease,background-color .12s ease,border-color .12s ease;white-space:nowrap;min-height:42px}.button:hover{transform:translateY(-1px)}.button:active{transform:translateY(0)}.button:disabled{cursor:not-allowed;opacity:.56;transform:none}.button-primary{color:#fff;border-color:#086edfb3;background:linear-gradient(180deg,#42a2ff 0%,var(--primary) 56%,var(--primary-deep) 100%);box-shadow:0 12px 24px #0a84ff47,inset 0 1px #ffffff47}.button-primary:hover{filter:brightness(1.02)}.button-secondary{color:#21426e;border-color:#92acd473;background:linear-gradient(180deg,#f7fbfff5,#edf5ffe0)}.button-ghost{color:#1f3f6b;border-color:#92abd15c;background:#ffffffc2}.button-clear{color:#375075;border-color:var(--line);background:#ffffffad}.button-wide{width:100%;padding-top:12px;padding-bottom:12px;min-height:52px}.target-pill{border:1px solid rgba(126,159,208,.4);background:#f2f7ffd1;border-radius:14px;padding:10px;display:grid;gap:7px}.target-pill span{font-size:.78rem;text-transform:uppercase;letter-spacing:.09em;color:#5f7397;font-weight:620}.target-pill code{border:1px solid rgba(153,178,213,.5);background:#ffffffeb;border-radius:10px;padding:7px 9px;font-size:.82rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;overflow-wrap:anywhere}.browser-shell{border:1px solid rgba(150,173,210,.34);border-radius:var(--radius-md);background:#ffffffb8;padding:10px;display:grid;gap:10px}.browser-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.browser-head p{margin:0;font-size:.86rem;font-weight:630;letter-spacing:.02em;color:#324c73}.browser-controls{display:flex;flex-wrap:wrap;gap:6px}.browser-path{margin:0;padding:8px 10px;border-radius:10px;background:#f5f9ffdb;border:1px solid var(--line);color:#4f6386;font-size:.8rem;overflow-wrap:anywhere}.folder-list{list-style:none;margin:0;padding:0;border-radius:14px;border:1px solid var(--line);max-height:290px;overflow:auto;background:#ffffffe6}.folder-list li+li{border-top:1px solid rgba(192,207,232,.54)}.folder-row{width:100%;border:0;background:transparent;padding:11px 12px;display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer}.folder-row:hover{background:#eff6ffe0}.folder-icon{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(180deg,#e7f1ff,#d7e7fd);border:1px solid rgba(134,166,214,.55);color:#2d5f9f;flex:0 0 32px}.folder-icon svg{width:17px;height:17px;fill:currentColor}.folder-copy{display:grid;gap:2px;min-width:0}.folder-copy strong{font-size:.9rem}.folder-copy small{color:#7485a4;font-size:.76rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.folder-empty{padding:12px;color:var(--muted);font-size:.88rem}.browser-footer{display:flex;justify-content:flex-end}.jobs-panel{min-height:560px}.search-field{margin-top:2px}.search-field>span{display:none}.jobs-list{display:grid;gap:10px;align-content:start;max-height:670px;overflow:auto;padding-right:2px}.empty-state{border:1px dashed rgba(136,162,204,.56);border-radius:16px;padding:20px;background:#f7fbffcc;color:var(--muted);text-align:center}.empty-state p{margin:0;color:#2f4870;font-size:1rem;font-weight:590}.empty-state span{display:block;margin-top:4px;font-size:.9rem}.job-card{position:relative;border:1px solid rgba(150,173,211,.35);border-left:3px solid #a3b3cc;border-radius:16px;background:linear-gradient(180deg,#fffffff2,#f8fbffdb);padding:12px;box-shadow:0 8px 20px #192c5114,inset 0 1px #ffffffeb;display:grid;gap:7px;animation:riseIn .28s cubic-bezier(.25,.8,.24,1) both}.job-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.status-pill{margin:0;padding:4px 8px;border-radius:999px;font-size:.69rem;letter-spacing:.08em;text-transform:uppercase;font-weight:680;color:#30496f;background:#e5edfad6}.job-time{margin:0;font-size:.74rem;color:#7083a7}.job-title{margin:0;font-weight:640;font-size:1rem;letter-spacing:-.01em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.job-destination{margin:0;font-size:.82rem;color:#4f668e;font-weight:560}.job-link,.job-target{margin:0;color:#4f6388;font-size:.87rem;line-height:1.42;overflow-wrap:anywhere}.job-link{color:#60749a;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.saved-path{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.plex-scan-pill{margin:0;width:fit-content;padding:4px 9px;border-radius:999px;font-size:.74rem;font-weight:620;letter-spacing:.02em;border:1px solid rgba(130,154,191,.45);background:#ecf3ffd9;color:#375279}.plex-scan-pill.scan-success{border-color:#4bb09280;background:#eafdf6e6;color:#1f6d58}.plex-scan-pill.scan-failed{border-color:#dc5e836b;background:#ffedf4e6;color:#9c3354}.plex-scan-pill.scan-requesting{border-color:#4c8ada6b;background:#ebf4ffe6;color:#255799}.plex-scan-note{margin:0;color:#60749a;font-size:.82rem}.progress-wrap{margin-top:3px;display:grid;gap:5px}.progress-meta{display:flex;justify-content:space-between;gap:10px;font-size:.82rem;color:#617495}.progress-submeta{display:flex;justify-content:space-between;gap:10px;font-size:.79rem;color:#7385a4}.progress-track{height:8px;border-radius:999px;background:#dfe8f6;overflow:hidden}.progress-value{height:100%;border-radius:inherit;background:linear-gradient(90deg,#8fc3ff,#3795ff 46%,#0a84ff);transition:width .26s ease}.progress-track.status-success .progress-value{background:linear-gradient(90deg,#79d3ba,#4ab696)}.progress-track.status-failed .progress-value{background:linear-gradient(90deg,#ff9fb6,#de4f73)}.progress-track.status-paused .progress-value{background:linear-gradient(90deg,#ffd791,#cc9839)}.progress-track.status-canceled .progress-value,.progress-track.status-queued .progress-value{background:linear-gradient(90deg,#bfcbe0,#8fa1c1)}.job-actions{margin-top:6px;display:flex;flex-wrap:wrap;gap:6px}.job-details{border:1px solid rgba(164,184,218,.42);border-radius:12px;background:#f5faffe0;padding:0}.job-details summary{cursor:pointer;list-style:none;padding:9px 11px;font-size:.83rem;font-weight:590;color:#36527a;-webkit-user-select:none;user-select:none}.job-details summary::-webkit-details-marker{display:none}.job-details summary:after{content:"▾";float:right;color:#6078a2}.job-details:not([open]) summary:after{content:"▸"}.job-details-body{border-top:1px solid rgba(184,201,229,.5);padding:9px 11px 10px;display:grid;gap:6px}.job-actions .button{min-height:38px;padding:7px 12px}.status-running{border-left-color:var(--primary)}.status-queued{border-left-color:#7790b6}.status-success{border-left-color:var(--success)}.status-failed{border-left-color:var(--danger)}.status-paused{border-left-color:var(--warning)}.status-canceled{border-left-color:var(--idle)}.job-error,.error-banner{color:var(--danger)}.job-error{margin:0;font-size:.86rem}.error-banner{margin:14px 0 0;padding:10px 12px;border:1px solid rgba(221,85,121,.36);border-radius:12px;background:#ffecf2b8;font-weight:550;overflow-wrap:anywhere}@keyframes shellIn{0%{opacity:0;transform:translateY(14px) scale(.996)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes riseIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@media (max-width: 1200px){.metrics-grid{grid-template-columns:repeat(3,minmax(120px,1fr))}.storage-card{grid-column:span 2}}@media (max-width: 980px){.workflow-grid{grid-template-columns:1fr}.jobs-panel{min-height:0}.jobs-list{max-height:540px}.masthead{flex-direction:column;align-items:stretch}.masthead-actions{justify-content:space-between}.notice-stack{justify-items:stretch}}@media (max-width: 720px){.shell{border-radius:24px;padding:14px}h1{font-size:clamp(2rem,10vw,2.9rem)}.metrics-grid{grid-template-columns:repeat(2,minmax(110px,1fr))}.storage-card{grid-column:span 2}.split-row{grid-template-columns:1fr}.panel-head-space{flex-direction:column;align-items:stretch}.jobs-list{max-height:480px}.progress-submeta{flex-direction:column;gap:2px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
