@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";:root{--bg: #0f1419;--bg-soft: #161f27;--panel: #1a2530;--panel-soft: #1f2c38;--line: #2b3a49;--text: #edf4fb;--muted: #96a8ba;--accent: #5eead4;--accent-2: #93c5fd;--warn: #f59e0b;--danger: #ef4444;--ok: #22c55e;--soft-surface: rgba(15, 24, 36, .72)}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:Plus Jakarta Sans,Segoe UI,sans-serif;color:var(--text);background:radial-gradient(1100px 500px at 84% -12%,#243346 0%,transparent 65%),radial-gradient(900px 420px at -10% 20%,#1c2938 0%,transparent 55%),var(--bg)}.app-shell{display:grid;grid-template-columns:260px 1fr;min-height:100%}.app-sidebar{border-right:1px solid var(--line);background:linear-gradient(180deg,#18232e,#121b24);padding:22px 16px}.app-brand{margin-bottom:16px}.app-brand h1{font-size:18px;font-weight:800;letter-spacing:.2px}.app-brand p{color:var(--muted);font-size:12px;margin-top:4px}.stock-card{background:linear-gradient(165deg,#1a2f3d,#172735);border:1px solid #31475c;border-radius:12px;padding:12px;margin-bottom:16px}.stock-label{color:var(--muted);font-size:11px;margin-bottom:6px}.stock-value{font-size:24px;font-weight:800}.stock-track{margin-top:8px;height:5px;border-radius:999px;background:#21364b;overflow:hidden}.stock-fill{height:100%;border-radius:999px;transition:width .35s ease}.app-nav{display:flex;flex-direction:column;gap:4px}.nav-btn{width:100%;border:1px solid transparent;background:transparent;color:var(--muted);border-radius:10px;cursor:pointer;padding:10px 12px;font-size:14px;font-weight:600;display:flex;align-items:center;gap:10px;text-align:left;transition:all .2s ease}.nav-btn:hover{border-color:#3a4f61;color:#dbe7f3;background:#1b2a37}.nav-btn.active{background:linear-gradient(135deg,#253645,#223342);border-color:#4c6278;color:#f0f7ff}.app-main{min-width:0;padding:28px}.dashboard-headline{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.refresh-pill{align-self:flex-start;border:1px solid rgba(34,211,238,.24);background:#22d3ee14;color:#c8f6ff;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700}.dashboard-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:18px}.metric-card{min-height:118px}.metric-label{font-size:12px;color:var(--muted);margin-bottom:8px}.metric-value{font-size:30px;font-weight:800;letter-spacing:-.4px}.metric-sub{margin-top:4px;font-size:12px;color:var(--muted)}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;margin-bottom:18px}.dashboard-panel{position:relative;overflow:hidden}.panel-title{margin:0;font-size:16px}.panel-header-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}.status-pill{padding:4px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.12);font-size:12px;font-weight:700;color:#eaf6ff;text-transform:lowercase}.panel-description{font-size:14px;color:#c0d2e4;min-height:44px}.generation-flow{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:10px;align-items:center;margin-top:12px;padding:12px;border:1px solid rgba(34,52,72,.9);border-radius:12px;background:#0e151d80}.generation-flow-item{min-width:0;display:grid;gap:4px}.generation-flow-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.generation-flow-value{font-size:15px;font-weight:800;color:#eef7ff}.generation-flow-hint{font-size:12px;color:var(--muted);line-height:1.4}.provider-pills{display:flex;flex-wrap:wrap;gap:8px}.provider-pill{border:1px solid var(--line);border-radius:999px;padding:5px 10px;font-size:11px;color:#d6e5f5;background:#ffffff05}.inline-details{border:1px solid rgba(148,163,184,.25);border-radius:10px;background:#0c121973;padding:6px 8px}.inline-details summary{cursor:pointer;font-size:12px;color:#c4d6e8;font-weight:600}.inline-details-body{margin-top:8px;font-size:12px;color:var(--muted);line-height:1.45;white-space:pre-wrap}.generation-flow-arrow{font-size:18px;font-weight:800;color:#6fb2d9}.provider-ops-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.provider-ops-card{border:1px solid rgba(34,52,72,.9);border-radius:12px;padding:12px;background:#0c12197a;display:grid;gap:10px}.provider-ops-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.provider-ops-title{font-size:14px;font-weight:800}.provider-ops-sub{margin-top:2px;font-size:11px;color:var(--muted)}.provider-ops-pill{border:1px solid var(--line);border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700;text-transform:capitalize}.provider-ops-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;font-size:12px;color:#c8d8e8}.provider-ops-error{border:1px solid rgba(239,68,68,.25);background:#ef444417;color:#fecaca;border-radius:8px;padding:8px;font-size:11px;line-height:1.4}.provider-token-table{border:1px solid rgba(34,52,72,.9);border-radius:8px;overflow:hidden}.provider-token-row{display:grid;grid-template-columns:1.1fr .9fr 1.3fr;gap:8px;padding:7px 8px;border-bottom:1px solid rgba(34,52,72,.9);font-size:11px;color:#d3e3f2}.provider-token-row:last-child{border-bottom:0}.provider-token-head{background:#0c1822b3;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:700}.panel-helper{font-size:12px;color:var(--muted);margin-bottom:14px}.notice{margin-top:10px;padding:10px 12px;border-radius:10px;font-size:12px;line-height:1.45}.notice-active{border:1px solid rgba(245,158,11,.2);background:#f59e0b14;color:#fde68a}.notice-warn{border:1px solid rgba(251,191,36,.18);background:#fbbf2414;color:#fcd34d}.queue-callout{margin-top:14px;padding:12px;border:1px solid #4d3f1f;border-radius:10px;background:#221f14}.queue-callout-title{color:#fbbf24;font-weight:700;font-size:13px}.queue-callout-copy{color:var(--muted);font-size:12px;margin-top:3px}.queue-btn{margin-top:10px;background:#f59e0b;border-color:#f59e0b;color:#111827}.control-layout{display:grid;gap:12px}.control-group{border:1px solid rgba(34,52,72,.9);border-radius:12px;padding:12px;background:#09101847}.control-group-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.control-group-title{font-size:13px;font-weight:800;color:#e6f1fb}.control-group-description{margin-top:4px;font-size:12px;color:var(--muted)}.control-group-chip{min-width:28px;height:28px;padding:0 9px;border-radius:999px;border:1px solid rgba(255,255,255,.12);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;background:#ffffff08}.generation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.generation-tile{border:1px solid rgba(255,255,255,.08);border-left:3px solid rgba(147,197,253,.9);border-radius:12px;padding:12px;background:linear-gradient(180deg,#111e2bf5,#0e1823f2);color:var(--text);cursor:pointer;text-align:left;min-height:86px;transition:transform .16s ease,border-color .16s ease,background .16s ease}.generation-tile:hover:not(:disabled){transform:translateY(-1px);border-color:#ffffff29;background:linear-gradient(180deg,#142333fa,#0e1823fa)}.generation-tile:disabled,.job-control-btn:disabled,.btn:disabled{opacity:.48;cursor:not-allowed;transform:none}.generation-tile-head{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:800;margin-bottom:7px}.generation-dot{width:8px;height:8px;border-radius:999px;background:var(--accent-2);box-shadow:0 0 0 3px #93c5fd33}.generation-tile-body{font-size:12px;line-height:1.45;color:var(--muted)}.job-control-stack{display:grid;gap:8px}.job-control-btn{border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px;cursor:pointer;text-align:left;color:var(--text);background:#0f1824bf;transition:transform .16s ease,border-color .16s ease,background .16s ease}.job-control-btn:hover:not(:disabled){transform:translateY(-1px);border-color:#ffffff2e}.job-control-btn.neutral{background:#93c5fd0f;border-color:#93c5fd33}.job-control-btn.soft{background:#5eead40f;border-color:#5eead433}.job-control-btn.danger{background:#ef44440f;border-color:#ef444433}.job-control-label{display:block;font-size:13px;font-weight:800;margin-bottom:4px}.job-control-hint{display:block;font-size:12px;line-height:1.45;color:var(--muted)}.low-stock-banner{border:1px solid #5c3434;background:#24181a;border-radius:14px;padding:16px;margin-bottom:18px}.low-stock-title{font-size:14px;font-weight:700;color:#f87171}.low-stock-copy{font-size:12px;color:#d3b3b3;margin-top:4px}.section-title{margin:0 0 12px;font-size:16px}.recent-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.recent-card{overflow:hidden}.recent-image{width:100%;aspect-ratio:1;object-fit:cover;display:block}.recent-body{padding:10px}.recent-type{color:var(--accent-2);font-size:11px;font-weight:700;text-transform:capitalize}.recent-date,.recent-reach{margin-top:3px;font-size:11px;color:var(--muted)}.recent-reach{color:var(--ok)}.skeleton{border-radius:10px;background:linear-gradient(90deg,#172536c7,#243a53eb,#172536c7);background-size:200% 100%;animation:shimmer 1.35s infinite linear}.skeleton-card,.skeleton-panel{border-radius:14px;border:1px solid var(--line);background:linear-gradient(180deg,#111e2beb,#152536eb);min-height:118px;overflow:hidden;position:relative}.skeleton-block{height:190px;border-radius:12px;background:linear-gradient(90deg,#172536d1,#243a53f0,#172536d1);background-size:200% 100%;animation:shimmer 1.35s infinite linear}.skeleton-grid.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.skeleton-grid.panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}.inline-loader{display:inline-block;width:1.15em;height:1.15em;border-radius:50%;border:2px solid rgba(255,255,255,.18);border-top-color:var(--accent-2);animation:spin .8s linear infinite;vertical-align:middle}.inline-loader-text{margin-top:2px}.toast-stack{position:fixed;right:18px;bottom:18px;display:grid;gap:10px;z-index:80;width:min(360px,calc(100vw - 36px))}.toast{border-radius:14px;border:1px solid rgba(255,255,255,.1);background:#080f17eb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:12px 12px 12px 14px;display:flex;align-items:flex-start;gap:12px;box-shadow:0 16px 50px #00000052}.toast:before{content:"";width:4px;border-radius:999px;align-self:stretch;background:var(--toast-accent, var(--accent-2))}.toast-info{--toast-accent: var(--accent-2)}.toast-ok{--toast-accent: var(--ok)}.toast-warn{--toast-accent: var(--warn)}.toast-danger{--toast-accent: var(--danger)}.toast-body{flex:1;min-width:0}.toast-title{font-size:13px;font-weight:800;color:#eff6ff;margin-bottom:2px}.toast-message{font-size:12px;line-height:1.45;color:var(--muted)}.toast-close{border:none;background:transparent;color:var(--muted);font-size:18px;line-height:1;cursor:pointer;padding:0 2px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes spin{to{transform:rotate(360deg)}}.page-title{font-size:28px;font-weight:800;margin-bottom:8px}.page-subtitle{font-size:14px;color:var(--muted);margin-bottom:20px}.calendar-page{display:grid;gap:16px}.calendar-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.calendar-range-pill{align-self:flex-start;border:1px solid rgba(147,197,253,.24);background:#93c5fd14;color:#dbeafe;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:700}.calendar-filter-row{display:flex;flex-wrap:wrap;gap:8px}.calendar-filter-chip{border:1px solid var(--line);border-radius:999px;background:#ffffff08;color:var(--muted);padding:7px 11px;font-size:11px;font-weight:700;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.calendar-filter-chip:hover{border-color:#93c5fd59;color:#dbeafe}.calendar-filter-chip.active{background:#93c5fd24;border-color:#93c5fd61;color:#eff6ff}.calendar-summary,.calendar-overflow{position:relative}.calendar-side-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.calendar-side-card{height:fit-content}.calendar-stat-stack{display:grid;gap:10px;margin-top:12px}.calendar-stat-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border:1px solid rgba(43,58,73,.9);border-radius:12px;background:#080f1747;color:var(--muted);font-size:12px}.calendar-days{display:grid;grid-template-columns:1fr;gap:12px;margin-top:12px}.calendar-week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-top:12px}.calendar-week-chip{border:1px solid rgba(43,58,73,.95);border-radius:14px;background:#080f1757;color:var(--text);padding:10px 8px;display:grid;gap:3px;text-align:left;cursor:pointer}.calendar-week-chip.today{border-color:#5eead473;box-shadow:inset 0 0 0 1px #5eead41a}.calendar-week-chip-day{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.calendar-week-chip-date{font-size:12px;font-weight:800}.calendar-week-chip-count{font-size:11px;color:var(--accent-2);font-weight:700}.calendar-day-card{border:1px solid rgba(43,58,73,.95);border-radius:16px;background:#0e151d99;padding:12px;min-height:0;display:grid;gap:10px}.calendar-day-card.today{border-color:#5eead473;box-shadow:inset 0 0 0 1px #5eead41f}.calendar-day-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.calendar-day-weekday{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}.calendar-day-date{font-size:15px;font-weight:800;color:var(--text)}.calendar-day-count{border-radius:999px;padding:5px 9px;border:1px solid rgba(255,255,255,.12);font-size:11px;color:#dbeafe;background:#ffffff08;font-weight:700}.calendar-day-list{display:grid;gap:8px}.calendar-item{display:grid;grid-template-columns:84px minmax(0,1fr);gap:10px;align-items:start;padding:8px;border:1px solid rgba(43,58,73,.95);border-radius:14px;background:#080f1757}.calendar-item-image{width:84px;height:84px;object-fit:cover;border-radius:10px;display:block;border:1px solid rgba(255,255,255,.08)}.calendar-item-body{min-width:0;display:grid;gap:6px}.calendar-item-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.calendar-item-time{font-size:12px;font-weight:800;color:#e2e8f0}.calendar-item-status{border:1px solid currentColor;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:700;text-transform:lowercase}.calendar-item-type{font-size:11px;color:var(--accent-2);font-weight:700;text-transform:capitalize}.calendar-item-meta{font-size:11px;line-height:1.45;color:var(--muted);overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}.calendar-empty{min-height:96px;border:1px dashed rgba(43,58,73,.95);border-radius:14px;display:flex;align-items:center;justify-content:center;color:#6f8498;font-size:12px;background:#080f1738}.calendar-overflow-list{display:grid;gap:10px;margin-top:12px}.calendar-overflow-item{display:grid;grid-template-columns:88px minmax(0,1fr);gap:12px;padding:10px;border:1px solid rgba(43,58,73,.95);border-radius:14px;background:#080f1757}.calendar-overflow-item.compact{grid-template-columns:72px minmax(0,1fr)}.calendar-overflow-image{width:88px;height:88px;border-radius:12px;object-fit:cover;display:block;border:1px solid rgba(255,255,255,.08)}.calendar-overflow-item.compact .calendar-overflow-image{width:72px;height:72px}.calendar-overflow-copy{min-width:0;display:grid;gap:6px}.calendar-overflow-row{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.calendar-overflow-date{font-size:12px;color:#dbeafe;font-weight:700}.calendar-overflow-caption{font-size:12px;line-height:1.45;color:var(--muted)}.calendar-head-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.calendar-banner{border:1px solid transparent;border-radius:12px;padding:10px 12px;font-size:12px;font-weight:600}.calendar-banner.success{border-color:#22c55e47;background:#22c55e1f;color:#dcfce7}.calendar-banner.error{border-color:#ef444452;background:#ef44441f;color:#fecaca}.calendar-grid-board{margin-top:14px;display:grid;grid-template-columns:96px repeat(7,minmax(136px,1fr));gap:10px;overflow-x:auto;padding-bottom:6px}.calendar-grid-header{border:1px solid rgba(43,58,73,.95);border-radius:12px;background:#080f1766;padding:9px;display:grid;gap:2px}.calendar-grid-header.today{border-color:#5eead473;box-shadow:inset 0 0 0 1px #5eead41a}.calendar-grid-header-weekday{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.calendar-grid-header-date{font-size:12px;font-weight:700}.calendar-grid-header-count{font-size:11px;color:var(--accent-2);font-weight:700}.calendar-grid-time-label{border:1px dashed rgba(43,58,73,.95);border-radius:12px;background:#080f1742;display:grid;align-items:center;justify-items:center;min-height:146px;color:#c4d8ec;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.calendar-grid-board>.calendar-grid-time-label:first-child{min-height:auto;font-size:10px;color:var(--muted);background:transparent}.calendar-slot{border:1px dashed rgba(43,58,73,.95);border-radius:14px;background:#080f1757;min-height:146px;padding:6px;transition:border-color .15s ease,background .15s ease}.calendar-slot.today{border-color:#93c5fd52}.calendar-slot.drop-active{border-color:#22c55e80;background:#22c55e1a}.calendar-slot-card{width:100%;height:100%;border:1px solid rgba(43,58,73,.95);border-radius:10px;background:#040a10b8;cursor:pointer;overflow:hidden;position:relative}.calendar-slot-card.moving{opacity:.55}.calendar-slot-image{width:100%;height:100%;object-fit:cover;display:block}.calendar-slot-status{position:absolute;left:6px;top:6px;border:1px solid currentColor;border-radius:999px;padding:3px 7px;font-size:10px;background:#040a10cc;font-weight:700;text-transform:lowercase}.calendar-slot-id{position:absolute;right:6px;bottom:6px;border-radius:999px;padding:3px 7px;font-size:10px;background:#040a10d6;color:#e2e8f0;font-weight:700}.calendar-slot-dragging{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:999px;border:1px solid rgba(94,234,212,.45);background:#080f17d9;color:#d5fbf4;padding:5px 8px;font-size:10px;font-weight:700}.calendar-slot-empty{width:100%;height:100%;min-height:130px;display:grid;place-items:center;border-radius:10px;color:#6f8498;font-size:11px}.calendar-overflow-item{text-align:left;cursor:pointer}.calendar-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#02060cc7;display:grid;place-items:center;padding:20px}.calendar-modal{width:min(860px,100%);border:1px solid rgba(43,58,73,.95);border-radius:16px;overflow:hidden;background:linear-gradient(180deg,#182632,#111b25);display:grid;grid-template-columns:minmax(260px,340px) 1fr;position:relative}.calendar-modal-close{position:absolute;top:10px;right:10px;width:32px;height:32px;border-radius:999px;border:1px solid rgba(148,163,184,.35);background:#02060cb8;color:#f8fafc;font-size:18px;cursor:pointer}.calendar-modal-image{width:100%;height:100%;min-height:340px;object-fit:cover;display:block}.calendar-modal-body{padding:18px;display:grid;gap:10px}.calendar-modal-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.calendar-modal-top h3{font-size:20px}.calendar-modal-meta{font-size:13px;color:#c8d8e8}.calendar-modal-caption{margin-top:4px;font-size:13px;line-height:1.55;color:var(--muted);max-height:260px;overflow:auto}.ui-card{background:linear-gradient(180deg,var(--panel) 0%,var(--panel-soft) 100%);border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 34px #00000038}.ui-card.pad{padding:18px}.btn{border-radius:10px;border:1px solid var(--line);font-size:13px;font-weight:700;padding:9px 12px;cursor:pointer;transition:transform .15s ease,opacity .15s ease;background:#213140;color:var(--text)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:active{transform:translateY(1px)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#0a121b}::-webkit-scrollbar-thumb{background:#2b435c;border-radius:5px}@media (max-width: 980px){.app-shell{grid-template-columns:1fr}.app-sidebar{border-right:none;border-bottom:1px solid var(--line)}.app-main{padding:16px}.dashboard-headline{flex-direction:column}.calendar-days,.calendar-side-grid{grid-template-columns:1fr}.calendar-week-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-overflow-item{grid-template-columns:1fr}.calendar-overflow-image{width:100%;height:180px}.calendar-grid-board{grid-template-columns:84px repeat(7,minmax(120px,1fr))}.calendar-grid-time-label{min-height:130px;font-size:10px}.calendar-slot{min-height:130px}.calendar-modal{grid-template-columns:1fr;max-height:calc(100vh - 40px);overflow:auto}.calendar-modal-image{min-height:220px;max-height:40vh}.panel-header-row{align-items:flex-start}.generation-grid{grid-template-columns:1fr}.toast-stack{right:12px;bottom:12px;width:calc(100vw - 24px)}}
