:root[data-theme=dark]{--bg: #0a0e16;--bg-grad: radial-gradient(1200px 600px at 80% -10%, #16203400, #0a0e16);--panel: #121826;--panel-2: #1a2233;--panel-3: #222c40;--border: #26324a;--text: #e8eef7;--text-2: #9aa7bd;--muted: #6b7890;--accent: #5b8dff;--accent-2: #34d399;--accent-grad: linear-gradient(135deg, #5b8dff, #8b5cf6);--danger: #f87171;--warn: #fbbf24;--shadow: 0 8px 30px rgba(0, 0, 0, .35);--card-hover: 0 12px 40px rgba(0, 0, 0, .5)}:root[data-theme=light]{--bg: #f4f6fb;--bg-grad: radial-gradient(1200px 600px at 80% -10%, #e8eeff, #f4f6fb);--panel: #ffffff;--panel-2: #f1f4fa;--panel-3: #e7ecf5;--border: #e2e8f2;--text: #1a2233;--text-2: #51607a;--muted: #8a96ac;--accent: #3b6fe6;--accent-2: #10b981;--accent-grad: linear-gradient(135deg, #3b6fe6, #7c3aed);--danger: #e23b3b;--warn: #d98a00;--shadow: 0 6px 24px rgba(40, 60, 100, .1);--card-hover: 0 12px 32px rgba(40, 60, 100, .16)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg);background-image:var(--bg-grad);color:var(--text);transition:background .3s,color .3s}.app{display:flex;min-height:100vh}.sidebar{width:256px;background:var(--panel);border-right:1px solid var(--border);padding:22px 16px;display:flex;flex-direction:column;gap:20px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:40px;height:40px;border-radius:11px;background:var(--accent-grad);display:grid;place-items:center;font-size:20px;color:#fff;font-weight:800;box-shadow:var(--shadow)}.brand-title{font-weight:700;font-size:15px;letter-spacing:-.2px}.brand-sub{color:var(--muted);font-size:12px}nav{display:flex;flex-direction:column;gap:4px}.navlink{display:flex;align-items:center;gap:11px;color:var(--text-2);text-decoration:none;padding:11px 13px;border-radius:10px;font-size:14px;font-weight:500;transition:all .15s}.navlink:hover{background:var(--panel-2);color:var(--text)}.navlink.active{background:var(--accent-grad);color:#fff;box-shadow:var(--shadow)}.nav-ico{font-size:16px;width:20px;text-align:center}.legal-note{margin-top:auto;font-size:11px;color:var(--warn);background:color-mix(in srgb,var(--warn) 10%,transparent);border:1px solid color-mix(in srgb,var(--warn) 25%,transparent);padding:10px;border-radius:10px;line-height:1.5}.content{flex:1;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;padding:18px 32px;border-bottom:1px solid var(--border);position:sticky;top:0;background:color-mix(in srgb,var(--bg) 80%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10}.topbar h1{font-size:20px;margin:0;letter-spacing:-.3px}.topbar .subtitle{margin:2px 0 0}.page{padding:26px 32px;max-width:1280px}.page.dashpage{max-width:none;padding:20px 26px}.subtitle{color:var(--muted);margin:0 0 22px;font-size:14px}h2{font-size:15px;margin:26px 0 14px;letter-spacing:-.2px}.theme-toggle{width:40px;height:40px;border-radius:11px;cursor:pointer;background:var(--panel-2);border:1px solid var(--border);color:var(--text);font-size:17px;display:grid;place-items:center;transition:all .15s}.theme-toggle:hover{background:var(--panel-3);transform:translateY(-1px)}.card{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:20px;margin-bottom:16px;box-shadow:var(--shadow)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1 / -1}label{font-size:12.5px;color:var(--text-2);font-weight:500}input,select{background:var(--panel-2);border:1px solid var(--border);color:var(--text);padding:11px 13px;border-radius:10px;font-size:14px;outline:none;transition:border .15s,box-shadow .15s;font-family:inherit}input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.segmented{display:flex;gap:6px;background:var(--panel-2);padding:5px;border-radius:12px;border:1px solid var(--border)}.segmented button{flex:1;padding:9px 10px;border:none;background:transparent;color:var(--text-2);border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;transition:all .15s}.segmented button.on{background:var(--accent-grad);color:#fff;box-shadow:var(--shadow)}.btn{background:var(--accent-grad);color:#fff;border:none;padding:11px 20px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:transform .12s,opacity .15s,box-shadow .15s;box-shadow:var(--shadow)}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn.secondary{background:var(--panel-2);color:var(--text);border:1px solid var(--border);box-shadow:none}.btn.secondary:hover{background:var(--panel-3)}.btn.danger{background:var(--danger)}.btn.small{padding:7px 13px;font-size:13px}.btn.ghost{background:transparent;box-shadow:none;color:var(--text-2)}.btn-row{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:999px;font-size:12px;font-weight:600}.badge.running{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}.badge.completed{background:color-mix(in srgb,var(--accent-2) 16%,transparent);color:var(--accent-2)}.badge.failed,.badge.cancelled{background:color-mix(in srgb,var(--danger) 16%,transparent);color:var(--danger)}.badge.queued,.badge.paused{background:var(--panel-3);color:var(--text-2)}.chip{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:8px;font-size:12px;background:var(--panel-2);color:var(--text-2);border:1px solid var(--border);text-decoration:none;max-width:100%}.chip:hover{color:var(--text);border-color:var(--accent)}.chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress{height:10px;background:var(--panel-2);border-radius:999px;overflow:hidden}.progress>div{height:100%;background:var(--accent-grad);transition:width .4s;border-radius:999px}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:11px;margin:16px 0}.stat{display:flex;align-items:center;gap:11px;background:var(--panel);border:1px solid var(--border);border-radius:13px;padding:11px 14px;transition:border-color .15s}.stat:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}.stat-ico{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-size:17px;background:color-mix(in srgb,var(--accent) 14%,transparent);flex-shrink:0}.stat .num{font-size:21px;font-weight:800;letter-spacing:-.5px;line-height:1.1;display:flex;align-items:center;gap:6px}.stat .lbl{font-size:11.5px;color:var(--muted);margin-top:1px;font-weight:500}.ring-txt{font-size:14px;font-weight:800}.ring-live{animation:ringpulse 2.2s ease-in-out infinite}@keyframes ringpulse{0%,to{opacity:1}50%{opacity:.82}}.iconbtn{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;cursor:pointer;background:var(--panel-2);border:1px solid var(--border);color:var(--text-2);font-size:13px;transition:all .13s}.iconbtn:hover{background:var(--panel-3);color:var(--text)}.iconbtn.danger:hover{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,var(--border))}.jobgrid3{display:grid;grid-template-columns:repeat(auto-fill,minmax(252px,1fr));gap:10px}.jobcard3{display:grid;grid-template-columns:auto 1fr;gap:11px;padding:11px 13px;align-items:center;background:var(--panel);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:12px;transition:border-color .15s,box-shadow .15s}.jobcard3:hover{box-shadow:var(--card-hover)}.jobcard3.s-running{border-left-color:var(--accent)}.jobcard3.s-completed{border-left-color:var(--accent-2)}.jobcard3.s-failed,.jobcard3.s-cancelled{border-left-color:var(--danger)}.jobcard3.s-queued,.jobcard3.s-paused{border-left-color:var(--muted)}.jc3-body{min-width:0}.jc3-name{font-weight:700;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jc3-meta{font-size:11.5px;color:var(--muted);margin-top:2px;display:flex;gap:9px}.jc3-meta .err{color:var(--danger)}.jc3-actions{display:flex;gap:5px;margin-top:7px}.jobgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}.jobcard2{display:grid;grid-template-columns:auto 1fr;gap:16px;padding:18px;background:var(--panel);border:1px solid var(--border);border-left:4px solid var(--border);border-radius:16px;box-shadow:var(--shadow);transition:transform .16s,box-shadow .16s,border-color .16s}.jobcard2:hover{transform:translateY(-2px);box-shadow:var(--card-hover)}.jobcard2.s-running{border-left-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 25%,transparent),var(--shadow)}.jobcard2.s-completed{border-left-color:var(--accent-2)}.jobcard2.s-failed,.jobcard2.s-cancelled{border-left-color:var(--danger)}.jobcard2.s-queued,.jobcard2.s-paused{border-left-color:var(--muted)}.jc-body{min-width:0;display:flex;flex-direction:column;gap:9px}.jc-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.jc-name{font-weight:700;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jc-meta{display:flex;gap:7px;flex-wrap:wrap}.mchip{background:var(--panel-2);border:1px solid var(--border);padding:4px 9px;border-radius:8px;font-size:12px;color:var(--text-2)}.mchip.err{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 30%,var(--border))}.jc-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}.jc-actions .btn{padding:7px 12px;font-size:12.5px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.bcard{background:var(--panel);border:1px solid var(--border);border-radius:16px;overflow:hidden;cursor:pointer;transition:transform .16s,box-shadow .16s,border .16s;display:flex;flex-direction:column;animation:pop .3s ease}.bcard:hover{transform:translateY(-3px);box-shadow:var(--card-hover);border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}@keyframes pop{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.bcard-media{height:140px;position:relative;background:var(--accent-grad);overflow:hidden}.bcard-media img{width:100%;height:100%;object-fit:cover}.bcard-media .placeholder{width:100%;height:100%;display:grid;place-items:center;font-size:38px;font-weight:800;color:#fff;opacity:.85}.bcard-media .photo-count{position:absolute;bottom:8px;right:8px;background:#0009;color:#fff;font-size:11px;padding:3px 8px;border-radius:999px}.bcard-body{padding:14px 15px 16px;display:flex;flex-direction:column;gap:8px;flex:1}.bcard-name{font-weight:700;font-size:15px;line-height:1.3;letter-spacing:-.2px}.bcard-cat{font-size:12.5px;color:var(--muted)}.bcard-meta{display:flex;align-items:center;gap:10px;margin-top:2px}.bcard-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:4px}.rating{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:700}.rating .stars{color:var(--warn);letter-spacing:1px}.rating .count{color:var(--muted);font-weight:500;font-size:12px}.table{width:100%;border-collapse:collapse;font-size:14px}.table th,.table td{text-align:left;padding:12px;border-bottom:1px solid var(--border)}.table th{color:var(--muted);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.4px}.table tr:last-child td{border-bottom:none}.table tbody tr{transition:background .12s}.table tbody tr:hover{background:var(--panel-2)}.clickable{cursor:pointer;color:var(--accent);font-weight:600}.toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}.toolbar .field{min-width:130px}.checkbox{display:flex;gap:7px;align-items:center;color:var(--text);font-size:13px;cursor:pointer}.checkbox input{width:16px;height:16px;accent-color:var(--accent)}.viewtoggle{display:flex;gap:4px;background:var(--panel-2);padding:4px;border-radius:9px;border:1px solid var(--border)}.viewtoggle button{border:none;background:transparent;color:var(--text-2);padding:6px 11px;border-radius:6px;cursor:pointer;font-size:13px}.viewtoggle button.on{background:var(--panel);color:var(--text);box-shadow:var(--shadow)}.logstream{background:var(--panel-2);border:1px solid var(--border);border-radius:12px;padding:12px;font-family:ui-monospace,Cascadia Code,monospace;font-size:11.5px;height:200px;overflow-y:auto;color:var(--text-2)}.logstream div{padding:2px 0}.hero{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap}.hero-photo{width:220px;height:160px;border-radius:14px;object-fit:cover;border:1px solid var(--border)}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.gallery img{width:100%;height:120px;object-fit:cover;border-radius:12px;border:1px solid var(--border);cursor:pointer;transition:transform .15s}.gallery img:hover{transform:scale(1.03)}.review{border-bottom:1px solid var(--border);padding:14px 0}.review:last-child{border-bottom:none}.review .meta{color:var(--muted);font-size:12px;margin-bottom:5px;display:flex;gap:8px;align-items:center}.avatar{width:30px;height:30px;border-radius:50%;background:var(--accent-grad);display:grid;place-items:center;color:#fff;font-weight:700;font-size:13px}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;display:grid;place-items:center;z-index:100;cursor:zoom-out}.lightbox img{max-width:92vw;max-height:92vh;border-radius:12px}.muted{color:var(--muted)}.empty{color:var(--muted);text-align:center;padding:56px 20px}.empty .big{font-size:40px;margin-bottom:10px;opacity:.5}a{color:var(--accent)}.spinner{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;display:inline-block;animation:spin .7s linear infinite;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-2);display:inline-block;animation:pulse 1.2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.dash-cols{display:grid;grid-template-columns:1fr 360px;gap:18px;align-items:start;margin-top:8px}@media (max-width: 1100px){.dash-cols{grid-template-columns:1fr}}.jobcard{transition:box-shadow .2s,border-color .2s}.cardactions{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap;align-items:center}.cardactions .btn.ghost{padding:6px 9px;font-size:12px;background:var(--panel-2);border:1px solid var(--border)}.cardactions .btn.ghost:hover{background:var(--panel-3)}.danger-text{color:var(--danger)!important}.flash{animation:flashpulse 1.3s ease}@keyframes flashpulse{0%{box-shadow:0 0 color-mix(in srgb,var(--accent) 70%,transparent);border-color:var(--accent)}to{box-shadow:0 0 0 14px transparent}}.quicklaunch{display:grid;grid-template-columns:1.6fr 1.6fr 1.4fr 1.4fr .8fr auto;gap:12px;align-items:end}@media (max-width: 1000px){.quicklaunch{grid-template-columns:1fr 1fr}}.segmented.sm button{padding:7px 6px;font-size:12px}.segmented.sm button div:last-child{display:none}.joblist{display:flex;flex-direction:column;gap:10px}.jobrow{display:grid;grid-template-columns:60px 1fr auto;gap:16px;align-items:center;background:var(--panel);border:1px solid var(--border);border-left:4px solid var(--border);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow);transition:box-shadow .2s,transform .12s,border-color .2s}.jobrow:hover{box-shadow:var(--card-hover);transform:translateY(-1px)}.jobrow.s-running{border-left-color:var(--accent)}.jobrow.s-completed{border-left-color:var(--accent-2)}.jobrow.s-failed,.jobrow.s-cancelled{border-left-color:var(--danger)}.jobrow.s-queued,.jobrow.s-paused{border-left-color:var(--muted)}.job-pct{text-align:center}.job-pct .v{font-size:19px;font-weight:800;letter-spacing:-.5px}.job-pct .l{display:block;font-size:9.5px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.5px}.job-main{min-width:0}.job-title{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14.5px}.job-title .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-sub{color:var(--muted);font-size:12.5px;margin-top:4px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}.job-sub .sep{opacity:.4}.job-progress{margin-top:9px}.job-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end;max-width:230px}.job-actions .btn{padding:7px 11px;font-size:12.5px}@media (max-width: 1100px){.jobrow{grid-template-columns:52px 1fr}.job-actions{grid-column:1 / -1;justify-content:flex-start;max-width:none;margin-top:4px}}.srchstrip{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:9px}.srchcard{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 13px;background:var(--panel);border:1px solid var(--border);border-radius:11px}.srch-name{font-weight:700;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.srch-sub{font-size:11.5px;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feed{max-height:620px;overflow-y:auto;padding:6px;display:flex;flex-direction:column;gap:1px}.feed-item{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:8px;font-size:12.5px;animation:feedin .35s ease;border:1px solid transparent}.feed-item:hover{background:var(--panel-2)}.feed-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex-shrink:0}.feed-item.success .feed-dot{background:var(--accent-2)}.feed-item.error .feed-dot{background:var(--danger)}.feed-item.error{background:color-mix(in srgb,var(--danger) 8%,transparent)}.feed-text{flex:1;min-width:0}.feed-time{color:var(--muted);font-size:11px;flex-shrink:0}@keyframes feedin{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}
