/* Route-shaped first paint before the application bundle. */
:root{--loading-fill:#e8ebef;--loading-surface:#fff;--loading-canvas:#f8f9fb;--loading-line:#e5e7eb;--boot-sidebar-width:206px}
:root.dark{--loading-fill:var(--app-dark-border,#303030);--loading-surface:var(--app-dark-background,#080808);--loading-canvas:var(--app-dark-background,#080808);--loading-line:var(--app-dark-border,#303030)}
.skeleton-block,.app-boot [data-placeholder]{background:var(--loading-fill);animation:skeleton-pulse 1.7s ease-in-out infinite}
@keyframes skeleton-pulse{0%,100%{opacity:1}50%{opacity:.48}}
@media(prefers-reduced-motion:reduce){.skeleton-block,.app-boot [data-placeholder]{animation:none}}
.app-boot{box-sizing:border-box;display:flex;height:100dvh;overflow:hidden;background:var(--loading-canvas);color:var(--loading-fill)}
.app-boot *{box-sizing:border-box}
.app-boot [data-placeholder]{height:14px;border-radius:5px}
.app-boot aside{display:none;width:var(--boot-sidebar-width);flex-shrink:0;padding:16px;overflow:hidden}
.app-boot aside [data-placeholder]{margin-bottom:25px;width:78%}
.app-boot aside [data-placeholder]:first-child{height:28px;margin-bottom:32px;width:100%}
.app-boot .boot-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;padding:8px}
.app-boot header{height:40px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 12px}
.app-boot header [data-placeholder]:first-child{width:96px;height:22px}
.app-boot header [data-placeholder]:last-child{width:32px;height:32px;border-radius:50%}
.app-boot .boot-card{flex:1;min-height:0;border:1px solid var(--loading-line);border-radius:16px;overflow:hidden;background:var(--loading-surface);padding-top:6px}
.app-boot .boot-band{height:48px;border-bottom:1px solid var(--loading-line);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 16px}
.app-boot .boot-band:first-child{height:54px}
.app-boot .boot-band [data-placeholder]:first-child{width:156px;height:22px;max-width:45%}
.app-boot .boot-band [data-placeholder]:last-child{width:220px;height:32px;max-width:45%}
.app-boot .boot-row{height:40px;display:flex;gap:32px;align-items:center;border-bottom:1px solid var(--loading-line);padding:0 16px}
.app-boot .boot-row [data-placeholder]{flex:1;min-width:0;max-width:240px}
.app-boot .boot-row [data-placeholder]:first-child{flex:2}
.app-boot .boot-mobile-nav{height:48px;flex-shrink:0;display:flex;align-items:center;justify-content:space-around}
.app-boot .boot-mobile-nav [data-placeholder]{width:24px;height:24px}
.app-boot .boot-dashboard{display:none;padding:24px 32px}
[data-boot-layout=dashboard] .boot-dashboard{display:block}
[data-boot-layout=dashboard] .boot-card>.boot-band,[data-boot-layout=dashboard] .boot-row{display:none}
.app-boot .boot-greeting{width:256px;max-width:100%;height:32px;margin-top:8px}
.app-boot .boot-description{width:320px;max-width:100%;height:16px;margin-top:8px}
.app-boot .boot-filters{display:flex;gap:8px;margin-top:32px;margin-bottom:16px}
.app-boot .boot-filters [data-placeholder]{height:36px;width:160px;max-width:40%}
.app-boot .boot-filters [data-placeholder]:first-child{width:224px;max-width:55%}
.app-boot .boot-widget-label{height:16px;width:144px;margin-bottom:12px}
.app-boot .boot-shortcuts{display:flex;gap:12px;margin-bottom:16px}
.app-boot .boot-shortcuts [data-placeholder]{height:40px;width:112px}
.app-boot .boot-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.app-boot .boot-stat,.app-boot .boot-chart{border:1px solid var(--loading-line);border-radius:12px;padding:16px}
.app-boot .boot-stat [data-placeholder]{width:96px;max-width:100%;height:12px}
.app-boot .boot-stat [data-placeholder]+[data-placeholder]{margin-top:12px;width:80px;height:32px}
.app-boot .boot-stat [data-placeholder]:last-child{width:128px;height:10px}
.app-boot .boot-charts{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.app-boot .boot-chart{height:240px}
.app-boot .boot-chart [data-placeholder]{height:160px;margin-top:32px}
[data-boot-layout=tasks] .boot-row{height:64px;margin:12px 16px;border:1px solid var(--loading-line);border-radius:8px;gap:12px}
[data-boot-layout=tasks] .boot-row:first-of-type{margin-top:32px}
[data-boot-layout=tasks] .boot-row [data-placeholder]:first-child{flex:none;width:16px;height:16px}
.boot-public .app-boot aside,.boot-public .app-boot header,.boot-public .boot-mobile-nav{display:none}
.boot-public .app-boot .boot-main{max-width:760px;margin:24px auto}
@media(min-width:1024px){.app-boot aside{display:block}.app-boot .boot-mobile-nav{display:none}}
@media(max-width:1279px){.app-boot .boot-stats{grid-template-columns:1fr 1fr}}
@media(max-width:1023px){.app-boot .boot-charts{grid-template-columns:1fr}}
@media(max-width:639px){.app-boot .boot-main{padding:8px 0 0;gap:0}.app-boot header{height:80px;margin-bottom:8px}.app-boot .boot-card{border-radius:0;padding-top:2px}.app-boot .boot-band:first-child{display:none}.app-boot .boot-row [data-placeholder]:last-child{display:none}.app-boot .boot-dashboard{padding:12px}.app-boot .boot-shortcuts{display:none}}

/* Automation detail: a single vertical flow from the very first paint. */
.app-boot .boot-automation{display:none}
[data-boot-layout=automation] .app-boot{position:fixed;inset:0}
[data-boot-layout=automation] .boot-card{padding-top:0}
[data-boot-layout=automation] .boot-automation{display:flex;flex-direction:column;height:100%;padding:24px 16px 32px}
[data-boot-layout=automation] .boot-card>.boot-band,[data-boot-layout=automation] .boot-card>.boot-row{display:none}
.app-boot .workflow-heading{height:48px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 16px;border-bottom:1px solid var(--loading-line)}
.app-boot .workflow-name,.app-boot .workflow-actions{display:flex;align-items:center;gap:8px;min-width:0}
.app-boot .workflow-actions{flex-shrink:0}
.app-boot .workflow-back{height:28px;width:28px;flex-shrink:0}
.app-boot .workflow-name-text{height:20px;width:240px;max-width:55%}
.app-boot .workflow-status{height:16px;width:56px;flex-shrink:0;border-radius:999px}
.app-boot .workflow-saved{height:12px;width:36px}.app-boot .workflow-toggle{height:24px;width:44px;border-radius:999px}
.app-boot .workflow-auto{height:12px;width:56px}.app-boot .workflow-action{height:32px;width:80px;border-radius:8px}
.app-boot .workflow-tabs{height:51px;flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:28px;padding:8px 28px 10px;overflow:hidden;border-bottom:1px solid var(--loading-line)}
.app-boot .workflow-tabs span{flex-shrink:0;height:20px}
.app-boot .workflow-canvas{flex:1;min-height:0;overflow:hidden;background:var(--loading-canvas);padding:32px 16px}
.app-boot .workflow-flow{width:100%;max-width:576px;margin:0 auto}
.app-boot .workflow-node{display:flex;align-items:flex-start;gap:12px;padding:16px;border:1px solid var(--loading-line);border-radius:12px;background:var(--loading-surface);box-shadow:0 1px 2px #0000000d}
.app-boot .workflow-icon{width:36px;height:36px;flex-shrink:0;border-radius:8px}
.app-boot .workflow-copy{flex:1;min-width:0;height:58.5px;padding-top:4px}
.app-boot .workflow-copy span{display:block}
.app-boot .workflow-label{height:8px;width:40px;margin-bottom:11px}
.app-boot .workflow-title{height:12px;width:66.666%;margin-bottom:11px}
.app-boot .workflow-summary{height:10px;width:75%}
.app-boot .workflow-menu{height:16px;width:16px;margin-top:2px;flex-shrink:0}
.app-boot .workflow-connector{height:40px;display:flex;justify-content:center;align-items:center;position:relative}
.app-boot .workflow-connector:before{content:"";position:absolute;inset:0 auto;width:1px;background:var(--loading-line)}
.app-boot .workflow-connector span{height:24px;width:24px;z-index:1;border-radius:999px}
@media(max-width:639px){[data-boot-layout=automation] .boot-automation{padding:12px 0 16px}.app-boot .workflow-saved,.app-boot .workflow-auto{display:none}.app-boot .workflow-tabs{justify-content:flex-start}.app-boot .workflow-name{flex:1}.app-boot .workflow-name-text{min-width:0}}

/* Tasks: the same 54/48/33px bands and column weights as the real table. */
.app-boot .boot-tasks{display:none}
[data-boot-layout=tasks] .boot-tasks{display:block}
[data-boot-layout=tasks] .boot-card>.boot-band,[data-boot-layout=tasks] .boot-card>.boot-row{display:none}
.app-boot .task-heading{height:54px;padding:0 16px 6px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--loading-line)}
.app-boot .task-heading-text{width:88px;height:20px}
.app-boot .task-add{width:107px;height:32px}
.app-boot .task-toolbar{height:48px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--loading-line)}
.app-boot .task-filters{display:flex;gap:8px;min-width:0;overflow:hidden}
.app-boot .task-filter{height:32px;flex-shrink:0}
.app-boot .filter-0{width:78px}.app-boot .filter-1{width:134px}.app-boot .filter-2{width:105px}.app-boot .filter-3{width:121px}.app-boot .filter-4{width:108px}
.app-boot .task-search{width:256px;height:36px;flex-shrink:0}
.app-boot .task-columns,.app-boot .task-row{display:flex;align-items:center;gap:16px;padding:0 16px;border-bottom:1px solid var(--loading-line)}
.app-boot .task-columns{height:33px}.app-boot .task-row{height:51px}
.app-boot .task-check{width:16px;height:16px;flex-shrink:0}
.app-boot .task-title{flex:1.5;min-width:0}.app-boot .task-cell{flex:1;min-width:0}.app-boot .task-menu{width:28px;flex-shrink:0}
.app-boot .task-columns [data-placeholder]{height:10px;background:linear-gradient(to right,var(--loading-fill) 48px,transparent 48px)}
.app-boot .task-group{height:37px;padding:0 16px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--loading-line);background:var(--loading-canvas)}
.app-boot .task-group-name{width:48px;height:16px}
@media(max-width:639px){.app-boot .task-heading,.app-boot .task-columns{display:none}.app-boot .task-toolbar{height:90px;padding:0 5px;flex-direction:column-reverse;gap:0;align-items:stretch}.app-boot .task-search{width:calc(100% - 65px);margin:6px 0 8px auto;height:32px}.app-boot .task-filters{height:44px;align-items:center}.app-boot .task-group{margin:12px 16px 0;border:1px solid var(--loading-line);border-radius:12px 12px 0 0}.app-boot .task-row{height:100px;margin:8px 24px;border:1px solid var(--loading-line);border-radius:12px}.app-boot .task-row .task-cell,.app-boot .task-row .task-menu{display:none}}

.app-boot .boot-card{border:0;box-shadow:0 0 0 1px var(--loading-line)}
@media(max-width:639px){[data-boot-layout=tasks] .app-boot header,[data-boot-layout=dashboard] .app-boot header{height:44px}.app-boot .boot-mobile-nav{height:55.5px}.app-boot .boot-card{box-shadow:none}}
