/* Remediation progress: full stepper, compact table steps, the activity page. */
.stepper{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.step{position:relative;display:flex;flex-direction:column;gap:6px;min-width:0}
.step:not(:last-child):after{content:"";position:absolute;top:10px;left:28px;right:6px;height:2px;background:var(--line-2)}
.step.done:not(:last-child):after{background:var(--teal)}
.step-dot{position:relative;z-index:1;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--paper);border:2px solid var(--gray-line);color:#fff}
.step-dot .icon{width:12px;height:12px;stroke-width:3}
.step.done .step-dot{background:var(--teal);border-color:var(--teal)}
.step.failed .step-dot{background:var(--red-dot);border-color:var(--red-dot)}
.step.current .step-dot{border-color:var(--blue-dot);box-shadow:0 0 0 4px #D1E9FF}
.step.current .step-dot:after{content:"";width:8px;height:8px;border-radius:50%;background:var(--blue-dot);animation:step-pulse 1.4s ease-in-out infinite}
@keyframes step-pulse{50%{transform:scale(.55);opacity:.5}}
.step-label{font-size:12px;font-weight:600;color:var(--ink);line-height:1.35}
.step.pending .step-label{color:var(--faint);font-weight:500}
.step-label small{display:block;font-size:12px;font-weight:400;color:var(--muted);min-height:16px}
.step.current .step-label small{color:var(--blue);font-weight:600}
.step.failed .step-label small{color:var(--red)}
.job-next{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:12px 0 0;font-size:12px;color:var(--muted)}
.job-next .icon{width:15px;height:15px;color:var(--subtle)}.job-next span{flex:1;min-width:180px}
.mini-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(52px,1fr));min-width:240px}
.mini-step{position:relative;display:flex;flex-direction:column;gap:4px}
.mini-step:not(:last-child):after{content:"";position:absolute;top:6px;left:14px;right:0;height:2px;background:var(--line-2)}
.mini-step.done:not(:last-child):after{background:var(--teal)}
.mini-dot{position:relative;z-index:1;width:14px;height:14px;border-radius:50%;border:2px solid var(--gray-line);background:var(--paper)}
.mini-step.done .mini-dot{background:var(--teal);border-color:var(--teal)}
.mini-step.failed .mini-dot{background:var(--red-dot);border-color:var(--red-dot)}
.mini-step.current .mini-dot{border-color:var(--blue-dot);box-shadow:0 0 0 3px #D1E9FF}
.mini-step small{font-size:11px;color:var(--muted)}
.mini-step.pending small{color:var(--faint)}
.mini-step.current small{color:var(--blue);font-weight:600}.mini-step.failed small{color:var(--red);font-weight:600}
.job-table td{vertical-align:top;padding-top:14px;padding-bottom:14px}
.job-table td:first-child{white-space:normal;min-width:220px}
.job-table .steps-head{min-width:260px}
.day-row td{padding:8px 20px;background:var(--hover);font-size:12px;font-weight:600;color:var(--muted);border-top:1px solid var(--line-2)}
.day-row:hover{background:transparent}
.job-state{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.job-table .job-next{display:block;margin:6px 0 0;max-width:280px;white-space:normal}
.activity-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:16px}
.tile{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--paper);border:1px solid var(--line);border-radius:12px}
.tile strong{display:block;font-size:22px;line-height:1.2}.tile small{display:block;font-size:12px;color:var(--muted)}
.tile-icon{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;background:var(--fill);color:var(--muted)}
.tile-icon .icon{width:18px;height:18px}
.tile-icon.blue{background:var(--blue-bg);color:var(--blue)}.tile-icon.amber{background:var(--amber-bg);color:var(--amber)}
.tile-icon.green{background:var(--green-bg);color:var(--green)}.tile-icon.red{background:var(--red-bg);color:var(--red)}
.activity-panel{margin-bottom:16px}
.push-list{list-style:none;margin:0;padding:0 20px}
.push-list li{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line-3);font-size:13px}
.push-list li:first-child{border-top:0}
.push-results{display:flex;flex-wrap:wrap;gap:6px;margin-left:auto}
.job-chip{display:inline-flex;align-items:center;gap:4px;color:var(--blue);font-weight:600}.job-chip .icon{width:13px;height:13px}
.group-hosts li:has(.group-job){flex-wrap:wrap}
.group-job{flex-basis:100%;margin:4px 0 0 42px;padding:14px 16px;border-radius:12px;background:var(--hover);border:1px solid var(--line-2)}
@media(max-width:760px){.group-job{margin-left:0}.push-list{padding:0 16px}.push-results{margin-left:0}}
@media(prefers-reduced-motion:reduce){.step.current .step-dot:after{animation:none}}
/* Automation and notification settings: collapsible panels on the activity page (operators only). */
.settings-panel{margin-bottom:16px}
.settings-panel>summary{display:flex;align-items:center;gap:12px;padding:16px 20px;cursor:pointer;list-style:none}
.settings-panel>summary::-webkit-details-marker{display:none}
.settings-panel>summary:after{content:"+";font-size:18px;color:var(--subtle);margin-left:4px}
.settings-panel[open]>summary:after{content:"−"}
.settings-panel[open]>summary{border-bottom:1px solid var(--line-2)}
.settings-title{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.settings-title small{font-size:12px;color:var(--subtle)}
.settings-body{display:grid;gap:14px;padding:16px 20px 20px}
.settings-body>p{margin:0}
.automation-row{display:grid;grid-template-columns:minmax(140px,1fr) auto auto minmax(150px,auto) auto;align-items:center;gap:10px 16px;padding:10px 0;border-top:1px solid var(--line-3)}
.automation-row:first-of-type{border-top:0}
.check-option{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2)}
.check-option input{min-height:0;width:16px;height:16px}
.window-field{display:inline-flex;gap:6px}
.window-field select{min-width:170px}
.window-field .time-text{width:76px}
#notification-form fieldset{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 20px}
#notification-form legend{font-size:13px;font-weight:650;color:var(--ink);padding:0;margin-bottom:8px;width:100%}
#notification-form fieldset>p{width:100%;margin:0}
.field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);flex:1;min-width:220px}
.field input{font-size:13px}
.field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;width:100%}
.field-grid .field{min-width:0}
.settings-actions{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:900px){.automation-row{grid-template-columns:1fr}.field-grid{grid-template-columns:1fr}}
/* Team & roles: one row per account with role, customers and sign-in state. */
.team-row{display:grid;grid-template-columns:minmax(200px,1.2fr) minmax(140px,.6fr) minmax(0,2fr) auto;gap:12px;align-items:start;padding:12px 0;border-top:1px solid var(--line-2)}
.team-customers{display:flex;flex-wrap:wrap;gap:4px 14px;border:0;margin:0;padding:0}.team-customers legend{font-size:12px;color:var(--muted);margin-bottom:4px}
.team-state{display:flex;align-items:center;gap:8px;padding-top:20px}
@media (max-width:900px){.team-row{grid-template-columns:minmax(0,1fr)}.team-state{padding-top:0}}
/* Folder rows under their customer: indented by depth, inheriting unless they set a value. */
.folder-automation{background:var(--hover);border-radius:8px}.folder-automation .folder-name{display:flex;align-items:center;gap:6px;font-size:13px;min-width:0}
/* Billing: month, export and close on top; customers fold out to their hosts. */
.billing-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px}
.billing-controls,.billing-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.billing-controls select{min-width:200px}
.billing-customers{display:flex;flex-direction:column}.billing-customer{border-top:1px solid var(--line-2)}
.billing-customer>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;cursor:pointer}
.billing-count{font-weight:600;color:var(--green)}
/* Platform administration */
.platform-feed{display:flex;align-items:center;gap:8px}
.platform-lab{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:0 20px 14px}.platform-lab select{min-width:240px}
.platform-packages{display:flex;flex-direction:column}
.platform-package{border-top:1px solid var(--line-2)}.platform-package.care{box-shadow:inset 3px 0 0 var(--red-dot)}
.platform-package>summary{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(150px,1fr) minmax(130px,1fr) minmax(140px,1fr);align-items:center;gap:12px;padding:12px 20px;cursor:pointer}
.package-name small{display:block;color:var(--muted);font-size:12px}.package-hosts{text-align:right;font-size:13px}
.package-body{padding:0 20px 14px}.release-history{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:6px}
.release-history li{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.release-history small{flex-basis:100%;color:var(--muted)}
.package-actions{display:flex;gap:8px}.danger-text{color:var(--red)}
.platform-missing{border-top:1px solid var(--line-2)}.platform-missing>summary{display:flex;align-items:center;gap:10px;padding:12px 20px;cursor:pointer}
.platform-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:16px;margin-top:16px}
.platform-tiles{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.meter{display:inline-block;width:70px;height:6px;border-radius:3px;background:var(--fill);vertical-align:middle;overflow:hidden}.meter span{display:block;height:100%;background:var(--green-dot)}
.amber-text{color:var(--amber)}
.platform-jobs{list-style:none;margin:0;padding:4px 20px 8px;display:flex;flex-direction:column;gap:10px}
.platform-jobs li{display:grid;grid-template-columns:minmax(140px,1fr) 2fr;align-items:center;gap:12px}
.job-title small{margin-left:6px;color:var(--muted)}
.job-bar{display:flex;height:10px;border-radius:5px;overflow:hidden;gap:2px;background:var(--fill)}
.job-bar .green,.job-legend .green{background:var(--green-dot)}.job-bar .blue,.job-legend .blue{background:var(--blue-dot)}.job-bar .red,.job-legend .red{background:var(--red-dot)}
.job-bar .amber,.job-legend .amber{background:var(--amber-dot)}.job-bar .slate,.job-legend .slate{background:var(--muted)}.job-bar .gray,.job-legend .gray{background:var(--faint)}
.job-legend{display:flex;flex-wrap:wrap;gap:12px;padding:0 20px 14px}.job-legend i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px}
@media (max-width:980px){.platform-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:720px){.platform-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-package>summary{grid-template-columns:1fr 1fr}.package-hosts{text-align:left}.platform-jobs li{grid-template-columns:1fr}.platform-grid{grid-template-columns:1fr}}
