/* Login and project home use the existing FlowQA palette. The workbench stays mounted. */
body[data-desktop]:not([data-desktop-ready]) > .app{visibility:hidden}
body[data-home-open] > :is(.app,#modal,#menu,#viewer,#toast){display:none!important}
#desktop-home{--home-width:calc(var(--home-form-width) + var(--space-unit)*12);--home-form-width:400px;--home-control:40px;--home-title:30px;position:fixed;inset:0;overflow:auto;display:flex;flex-direction:column;background:var(--canvas);color:var(--text);font:var(--text-body-sm)/1.5 var(--sans);z-index:100}
#desktop-home[hidden],#desktop-home [hidden]{display:none!important}
#desktop-home *{box-sizing:border-box}
#desktop-home button:where(:not(#home-theme):not(.desktop-account-badge)),#desktop-home input,#desktop-home select{font:inherit;color:inherit;min-height:var(--home-control);border-radius:var(--r);border:1px solid var(--muted);padding:calc(var(--space-unit)*2) calc(var(--space-unit)*3);background:var(--panel)}
#desktop-home button:where(:not(#home-theme):not(.desktop-account-badge)){cursor:pointer;font-weight:500}
#desktop-home button:where(:not(#home-theme):not(.desktop-account-badge)):hover:not(:disabled){background:var(--raised)}
#desktop-home button:disabled{cursor:default;color:var(--muted)}
#desktop-home :focus-visible{outline:2px solid var(--accent);outline-offset:2px}
#desktop-home .home-primary{background:var(--accent);color:var(--accent-on);border-color:var(--accent)}
#desktop-home .home-primary:hover:not(:disabled){background:var(--accent-hi)}
#desktop-home .home-primary:disabled{background:var(--raised);border-color:var(--muted)}
#desktop-home .home-quiet{background:transparent;border-color:transparent;color:var(--muted)}
#desktop-home .home-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:calc(var(--space-unit)*4);padding:calc(var(--space-unit)*3) calc(var(--space-unit)*6);border-bottom:1px solid var(--border)}
#desktop-home .home-header nav{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:calc(var(--space-unit)*2)}
#desktop-home .home-main{width:100%;flex-shrink:0;max-width:var(--home-width);margin:auto;padding:calc(var(--space-unit)*12) calc(var(--space-unit)*6)}
#desktop-home .home-intro{margin-bottom:calc(var(--space-unit)*8)}
#desktop-home h1{font-size:var(--home-title);line-height:1.2;letter-spacing:-.025em;margin:0 0 calc(var(--space-unit)*3)}
#desktop-home p{margin:0;line-height:1.6}
#desktop-home .home-muted{color:var(--muted)}
#desktop-home .home-form{display:grid;gap:calc(var(--space-unit)*4);max-width:var(--home-form-width)}
#desktop-home label{display:block;font-weight:500}
#desktop-home input:not([type=checkbox]),#desktop-home select{display:block;width:100%;background:var(--field)}
#desktop-home input::placeholder{color:var(--muted)}
#desktop-home .home-check{display:flex;align-items:center;gap:calc(var(--space-unit)*2);font-weight:400}
#desktop-home input[type=checkbox]{width:var(--text-body-sm);height:var(--text-body-sm);min-height:0;accent-color:var(--accent)}
#desktop-home .home-actions{display:flex;flex-wrap:wrap;gap:calc(var(--space-unit)*3)}
#desktop-home .home-error{border-left:2px solid var(--danger);padding:calc(var(--space-unit)*3);margin-bottom:calc(var(--space-unit)*5);color:var(--danger-text);background:var(--panel)}
#desktop-home .home-project-tools{display:flex;align-items:end;gap:calc(var(--space-unit)*4);margin-bottom:calc(var(--space-unit)*6)}
#desktop-home .home-project-tools>div{flex:1}
#desktop-home .home-project-tools label{margin-bottom:calc(var(--space-unit)*2)}
#desktop-home .home-project{display:block;width:100%;text-align:left;margin-bottom:calc(var(--space-unit)*3);padding:calc(var(--space-unit)*5);font-weight:600}
#desktop-home dt{color:var(--muted)}
#desktop-home dd{margin:calc(var(--space-unit)*2) 0 calc(var(--space-unit)*6);overflow-wrap:anywhere}
#desktop-home #home-signout{margin-top:calc(var(--space-unit)*4)}
@media(max-width:600px){#desktop-home .home-main{padding-top:calc(var(--space-unit)*8)}#desktop-home .home-header{align-items:flex-start}#desktop-home .home-project-tools{flex-wrap:wrap}#desktop-home .home-header nav{max-width:70%}}
/* Project forms inherit the original FlowQA modal and theme tokens. */
.project-field{display:flex;flex-direction:column;gap:calc(var(--space-unit)*2);margin-block:calc(var(--space-unit)*3)}
.project-member{display:flex;align-items:center;gap:calc(var(--space-unit)*2);padding-block:calc(var(--space-unit)*3);border-bottom:var(--line-width) solid var(--border);flex-wrap:wrap}
.project-member>div{flex:1;min-width:0;overflow-wrap:anywhere}
.project-member span{display:block}
.project-member select{max-width:100%}
#project-members h3{margin-block:calc(var(--space-unit)*5) calc(var(--space-unit)*3)}
#project-members p{margin-block:calc(var(--space-unit)*3)}

.project-member>select{width:auto;flex:none}
.project-member>div{min-width:calc(var(--space-unit)*40)}

/* Shared compact header controls use the shipping FlowQA size/radius tokens. */
.desktop-header-actions{display:flex;align-items:center;gap:calc(var(--space-unit)*2);flex-shrink:0}
.desktop-header-actions>span:empty{display:none}
body[data-desktop] :is(#theme,#home-theme,.desktop-account-badge){display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--control-size);height:var(--control-size);min-width:var(--control-size);min-height:var(--control-size);padding:0;border:var(--line-width) solid var(--muted);border-radius:var(--r);background:var(--panel);color:var(--text);font:600 var(--text-caption)/1 var(--sans);cursor:pointer;flex-shrink:0}
body[data-desktop] :is(#theme,#home-theme,.desktop-account-badge):hover:not(:disabled),.desktop-account-badge[data-state=open]{background:var(--raised)}
body[data-desktop] :is(#theme,#home-theme,.desktop-account-badge):focus-visible{outline:calc(var(--line-width)*2) solid var(--accent);outline-offset:calc(var(--line-width)*2)}
body[data-desktop] :is(#desktop-account-slot,#home-account-slot) .desktop-account-badge{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-fg-soft)}
body[data-desktop] :is(#desktop-account-slot,#home-account-slot) .desktop-account-badge:hover:not(:disabled),body[data-desktop] :is(#desktop-account-slot,#home-account-slot) .desktop-account-badge[data-state=open]:not(:disabled){background:var(--accent);border-color:var(--accent);color:var(--accent-on)}
body[data-desktop] :is(#desktop-account-slot,#home-account-slot) .desktop-account-badge:active:not(:disabled){background:var(--accent-hi);border-color:var(--accent-hi);color:var(--accent-on)}
body[data-desktop] :is(#desktop-account-slot,#home-account-slot) .desktop-account-badge:disabled{background:var(--panel);border-color:var(--muted);color:var(--muted);cursor:default}
.desktop-account-menu{z-index:200;box-sizing:border-box;width:calc(var(--control-size)*8);max-width:calc(100vw - var(--space-unit)*6);padding:var(--space-unit);border:var(--line-width) solid var(--border);border-radius:var(--r-lg);background:var(--panel);color:var(--text);font:var(--text-body-sm)/1.5 var(--sans);box-shadow:0 calc(var(--space-unit)*3) calc(var(--space-unit)*8) var(--shadow-menu-c);overflow-wrap:anywhere}
.desktop-account-identity{padding:calc(var(--space-unit)*2) calc(var(--space-unit)*3)}
.desktop-account-identity strong,.desktop-account-identity span{display:block}
.desktop-account-identity strong{font-weight:600}
.desktop-account-identity span,.desktop-account-hint{color:var(--muted);font-size:var(--text-caption)}
.desktop-account-separator{height:var(--line-width);background:var(--border);margin:var(--space-unit)}
.desktop-account-item{display:flex;align-items:center;min-height:var(--control-size);padding:var(--space-unit) calc(var(--space-unit)*3);border-radius:var(--r);cursor:pointer}
.desktop-account-item[data-highlighted]{background:var(--raised);outline:calc(var(--line-width)*2) solid var(--accent);outline-offset:calc(var(--line-width)*-2)}
.desktop-account-item[data-disabled]{color:var(--muted);cursor:default}
.desktop-account-link{text-decoration:none;color:inherit;gap:calc(var(--space-unit)*2);justify-content:space-between}
.desktop-account-ext{flex-shrink:0;color:var(--muted)}
.desktop-account-hint,.desktop-account-error{margin:calc(var(--space-unit)*2) calc(var(--space-unit)*3)}
.desktop-account-error{color:var(--danger-text)}
@media(max-width:600px){body[data-desktop] .topbar>.desktop-header-actions{margin-left:auto;order:0}body[data-desktop] .topbar>:is(.brand,.products){margin-right:auto}}

body[data-desktop] .desktop-header-actions #theme{order:0}
@media(max-width:600px){body[data-desktop] .topbar>.search{order:2}}

#project-invite-emails{width:100%;box-sizing:border-box;resize:vertical;font-family:var(--sans);border-color:var(--muted)}
#project-invite-emails::placeholder{color:var(--muted)}
#project-invite-emails:focus-visible{outline:calc(var(--line-width)*2) solid var(--accent);outline-offset:calc(var(--line-width)*2)}

/* One pending invitation per row, independent of the number of invitations. */
.invitation-bar{margin:calc(var(--space-unit)*6);padding:calc(var(--space-unit)*3);border:var(--line-width) solid var(--accent-line);border-radius:var(--r-lg);background:var(--accent-soft)}
.invitation-bar-heading{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--space-unit)*3);height:calc(var(--space-unit)*6);margin-bottom:var(--space-unit)}
.invitation-bar h2{font-size:var(--text-body-lg);font-weight:600;margin:0;white-space:nowrap}
.invitation-bar nav,.invitation-actions{display:flex;align-items:center;gap:calc(var(--space-unit)*2);flex-shrink:0}
.invitation-bar-row{display:flex;align-items:center;gap:calc(var(--space-unit)*4);min-height:var(--control-size)}
.invitation-bar-details{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}
.invitation-bar-details strong{color:var(--text)}
.invitation-bar .btn.primary,.invitation-dialog .btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-on)}
.invitation-bar .btn.primary:hover,.invitation-dialog .btn.primary:hover{background:var(--accent-hi)}
.invitation-overlay{position:fixed;inset:0;background:var(--overlay);z-index:100}
.invitation-dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:calc(var(--control-size)*16);max-width:calc(100vw - var(--space-unit)*8);max-height:calc(100vh - var(--space-unit)*8);overflow:auto;padding:calc(var(--space-unit)*7);border:var(--line-width) solid var(--border);border-radius:var(--r-lg);background:var(--panel);color:var(--text);z-index:101}
.invitation-dialog h2{font-size:var(--text-heading);line-height:1.3;margin:0 calc(var(--space-unit)*8) calc(var(--space-unit)*3) 0}
.invitation-dialog p{line-height:1.6;color:var(--muted);margin:0 0 calc(var(--space-unit)*5)}
.invitation-dialog dl{display:grid;grid-template-columns:auto 1fr;gap:calc(var(--space-unit)*3) calc(var(--space-unit)*6);margin:calc(var(--space-unit)*6) 0}
.invitation-dialog dt{color:var(--muted)}.invitation-dialog dd{margin:0;text-align:right;overflow-wrap:anywhere}
.invitation-dialog .invitation-actions{justify-content:flex-end;padding-top:calc(var(--space-unit)*5);border-top:var(--line-width) solid var(--border)}
.invitation-close{position:absolute;right:calc(var(--space-unit)*3);top:calc(var(--space-unit)*3);width:var(--control-size);height:var(--control-size)}
.invitation-error{color:var(--danger-text)!important;margin:calc(var(--space-unit)*2) 0 0}
@media(max-width:600px){.invitation-bar{margin:calc(var(--space-unit)*3);padding:calc(var(--space-unit)*3)}.invitation-bar-heading{height:auto;min-height:var(--control-size);flex-wrap:wrap}.invitation-bar-row{flex-wrap:wrap}.invitation-bar-details{flex-basis:100%}.invitation-dialog dl{grid-template-columns:1fr;gap:var(--space-unit)}.invitation-dialog dd{text-align:left;margin-bottom:calc(var(--space-unit)*3)}}

.desktop-dashboard-heading{position:sticky;top:0;background:var(--canvas);z-index:3}
.desktop-dashboard-heading + #desktop-invitations .invitation-bar{margin-top:calc(var(--space-unit)*2)}

.invitation-bar-heading .btn{height:calc(var(--space-unit)*6);min-height:calc(var(--space-unit)*6);padding-block:0}

/* Workspaces (All projects rail). One reading column: rows of workspaces,
   projects and people share the list lanes (name over detail, role, chevron),
   so the eye scans one column. Sections are separated by space, not boxes. */
.ws-area{display:flex;flex-direction:column;width:100%;max-width:calc(var(--space-unit)*240);padding-bottom:calc(var(--space-unit)*12)}
.ws-area h1:focus-visible{outline:calc(var(--line-width)*2) solid var(--accent);outline-offset:calc(var(--line-width)*2)}
.ws-crumbs{display:flex;align-items:center;gap:calc(var(--space-unit)*2);padding:calc(var(--space-unit)*5) calc(var(--space-unit)*5) 0;font-size:var(--text-caption);color:var(--muted);min-width:0}
.ws-crumbs .linky{display:inline-flex;align-items:center;min-height:calc(var(--space-unit)*6);font-size:var(--text-caption)}
.ws-crumbs [aria-current]{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ws-crumbs + .control-head{padding-top:calc(var(--space-unit)*3)}
.ws-title-block{min-width:0}
.ws-title-block h1{overflow-wrap:anywhere}
.ws-facts{margin:calc(var(--space-unit)*2) 0 0;color:var(--muted);font-size:var(--text-caption)}
.ws-area .control-filters{flex-shrink:0}
.ws-area .control-head .btn,.ws-area .ws-section .btn,.ws-inline .btn{height:var(--control-size);font-size:var(--text-caption)}
.ws-inline-form{display:flex;flex-direction:column;gap:calc(var(--space-unit)*2);min-width:0}
.ws-area > .ws-inline-form{padding:0 calc(var(--space-unit)*5) calc(var(--space-unit)*5)}
.ws-inline-form label{font-size:var(--text-caption);color:var(--muted)}
.ws-inline{display:flex;align-items:center;gap:calc(var(--space-unit)*2);flex-wrap:wrap}
.ws-inline .set-input{width:calc(var(--space-unit)*80);height:var(--control-size);padding-block:0}
.ws-inline-form .muted,.ws-area .muted{margin:0;color:var(--muted);font-size:var(--text-caption);line-height:1.5}
.ws-body{display:flex;flex-direction:column;gap:calc(var(--space-unit)*8);padding:calc(var(--space-unit)*3) calc(var(--space-unit)*5) 0}
.ws-section{display:flex;flex-direction:column;gap:calc(var(--space-unit)*3);min-width:0}
.ws-section h2{margin:0;font-size:var(--text-body-sm);font-weight:600}
.ws-section h3{margin:calc(var(--space-unit)*4) 0 0;font-size:var(--text-body-sm);font-weight:500;color:var(--text)}
.ws-section p{margin:0;line-height:1.5}
.ws-roles{max-width:72ch}
.ws-list,.ws-people{list-style:none;margin:0;padding:0;border-top:var(--line-width) solid var(--border-soft)}
.ws-area > .ws-list{margin:0 calc(var(--space-unit)*5)}
.ws-list > li,.ws-people > li{border-bottom:var(--line-width) solid var(--border-soft)}
.ws-row{display:flex;align-items:center;gap:calc(var(--space-unit)*4);width:100%;min-height:calc(var(--space-unit)*14);padding:calc(var(--space-unit)*2) calc(var(--space-unit)*3);border-radius:var(--r);text-align:left;color:var(--text);cursor:pointer}
.ws-row:hover{background:var(--panel)}
.ws-row:active{background:var(--raised)}
.ws-row:focus-visible{outline:calc(var(--line-width)*2) solid var(--accent);outline-offset:calc(var(--line-width)*-2)}
.ws-row-main{display:flex;flex-direction:column;gap:calc(var(--space-unit)/2);flex:1;min-width:0}
.ws-row-name{font-size:var(--text-body-sm);font-weight:500;overflow-wrap:anywhere}
.ws-row:hover .ws-row-name{text-decoration:underline;text-underline-offset:var(--space-unit)}
.ws-row-meta{font-size:var(--text-caption);color:var(--muted);overflow-wrap:anywhere}
.ws-slug{font-family:var(--mono)}
.ws-role{flex:none;font-size:var(--text-caption);color:var(--muted);white-space:nowrap}
.ws-chevron{flex:none;color:var(--muted)}
.ws-person{display:flex;align-items:center;gap:calc(var(--space-unit)*3);min-height:calc(var(--space-unit)*14);padding:calc(var(--space-unit)*2) calc(var(--space-unit)*3)}
.ws-person-who{display:flex;flex-direction:column;gap:calc(var(--space-unit)/2);flex:1;min-width:0;overflow-wrap:anywhere;font-size:var(--text-body-sm)}
.ws-person-who strong{font-weight:500}
.ws-person-who .muted{display:block}
.ws-you{flex:none;padding:0 calc(var(--space-unit)*2);border-radius:var(--r);background:var(--accent-soft);color:var(--accent-fg-soft);font-size:var(--text-caption);line-height:calc(var(--space-unit)*5)}
/* A fixed lane, so roles read as one column whether a row shows a picker or text. */
.ws-person-actions{display:flex;align-items:center;gap:calc(var(--space-unit)*2);flex:none;width:calc(var(--space-unit)*46)}
.ws-products{display:flex;align-items:center;gap:calc(var(--space-unit)*3);flex:none;font-size:var(--text-caption);color:var(--text)}
.ws-product{display:inline-flex;align-items:center;gap:var(--space-unit);white-space:nowrap}
.ws-product:has(input:disabled){color:var(--muted)}
.ws-invite-products{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:calc(var(--space-unit)*3);margin:0;padding:0;border:0;min-width:0}
.ws-invite-products .ws-product{min-height:var(--control-size)}
.ws-invite-products legend{font-size:var(--text-caption);font-weight:500;color:var(--muted);padding:0;margin-bottom:calc(var(--space-unit)*2)}
.ws-denied{margin-bottom:calc(var(--space-unit)*4)}
.ws-denied p{margin:0 0 calc(var(--space-unit)*2)}
.ws-role-select{height:var(--control-size);padding:0 var(--select-arrow) 0 calc(var(--space-unit)*2);border:var(--line-width) solid var(--muted);border-radius:var(--r);background:var(--panel);color:var(--text);font:inherit;font-size:var(--text-caption);color-scheme:inherit}
.ws-role-select:hover:not(:disabled){background:var(--raised)}
.ws-empty{color:var(--muted);font-size:var(--text-body-sm)}
.ws-note{padding-top:var(--space-unit)}
.ws-section form{display:flex;flex-direction:column;gap:calc(var(--space-unit)*2);max-width:calc(var(--space-unit)*140)}
.ws-section form .project-field{margin:0}
.ws-section form label{font-size:var(--text-caption);color:var(--muted);font-weight:500}
#ws-invite-emails{width:100%;box-sizing:border-box;resize:vertical;font-family:var(--sans);font-size:var(--text-body-sm)}
#ws-invite-emails::placeholder{color:var(--muted)}
#ws-invite-emails[aria-invalid=true]{border-color:var(--danger)}
.ws-invite-row{display:flex;align-items:flex-end;gap:calc(var(--space-unit)*3);flex-wrap:wrap}
.ws-invite-row select{height:var(--control-size);padding:0 var(--select-arrow) 0 calc(var(--space-unit)*2);border:var(--line-width) solid var(--muted);border-radius:var(--r);background:var(--panel);color:var(--text);font:inherit;font-size:var(--text-caption);color-scheme:inherit}
.ws-section a.btn{text-decoration:none;align-self:flex-start}
/* The shared settings pages, as a list of rows like the workspaces list, each
   leaving for Snag: name, Snag's own hint, and the leaving mark. */
.ws-settings{list-style:none;margin:0;padding:0;border-top:var(--line-width) solid var(--border-soft)}
.ws-settings > li{border-bottom:var(--line-width) solid var(--border-soft);min-width:0}
.ws-setting{display:flex;align-items:center;gap:calc(var(--space-unit)*3);min-height:calc(var(--space-unit)*12);padding:calc(var(--space-unit)*2) calc(var(--space-unit)*3);border-radius:var(--r);color:var(--text);text-decoration:none}
.ws-setting:hover{background:var(--panel)}
.ws-setting:hover .ws-setting-name{text-decoration:underline;text-underline-offset:var(--space-unit)}
.ws-setting:focus-visible{outline:calc(var(--line-width)*2) solid var(--accent);outline-offset:calc(var(--line-width)*-2)}
.ws-setting-main{display:flex;flex-direction:column;gap:calc(var(--space-unit)/2);flex:1;min-width:0}
.ws-setting-name{font-size:var(--text-body-sm);font-weight:500}
.ws-setting-hint{font-size:var(--text-caption);color:var(--muted)}
.ws-setting.is-danger .ws-setting-name{color:var(--danger-text)}
.ws-ext{flex:none;color:var(--muted)}
.ws-actions{display:flex;gap:calc(var(--space-unit)*2);flex-wrap:wrap}
.ws-message{margin:0;font-size:var(--text-body-sm);color:var(--text);line-height:1.5}
.ws-area > [data-ws-slot] .ws-message{margin:0 calc(var(--space-unit)*5) calc(var(--space-unit)*3)}
[data-ws-slot]:empty{display:none}
.ws-message:empty{margin:0}
.ws-message.is-error{color:var(--danger-text)}
.ws-area :is(input,select,textarea,button,a):focus-visible{outline:calc(var(--line-width)*2) solid var(--accent);outline-offset:calc(var(--line-width)*2)}
.ws-area .ws-row:focus-visible{outline-offset:calc(var(--line-width)*-2)}
@media(max-width:640px){
  .ws-crumbs{padding:calc(var(--space-unit)*4) calc(var(--space-unit)*3) 0}
  .ws-body{padding:calc(var(--space-unit)*2) calc(var(--space-unit)*3) 0}
  .ws-area > .ws-list{margin:0 calc(var(--space-unit)*3)}
  .ws-area > .ws-inline-form{padding:0 calc(var(--space-unit)*3) calc(var(--space-unit)*4)}
  .ws-inline .set-input{width:100%}
  .ws-person{flex-wrap:wrap;padding-inline:0}
  .ws-person-who{flex-basis:calc(100% - var(--space-unit)*16)}
  .ws-person-actions{width:100%;justify-content:flex-start}
  .ws-person .ws-role{font-size:var(--text-caption)}
  .ws-row{padding-inline:calc(var(--space-unit)*2)}
  .ws-area > [data-ws-slot] .ws-message{margin-inline:calc(var(--space-unit)*3)}
}

/* Update ready: one calm control in the header, shown only once an update
   has downloaded. The dot and the words carry it; the accent is the action. */
.desktop-update{display:inline-flex;align-items:center;gap:calc(var(--space-unit)*2);height:var(--control-size);padding:0 calc(var(--space-unit)*3);border:var(--line-width) solid var(--accent-line);border-radius:var(--r);background:var(--panel);color:var(--text);font:500 var(--text-caption)/1 var(--sans);white-space:nowrap;cursor:pointer;flex-shrink:0}
.desktop-update[hidden]{display:none}
.desktop-update:hover:not(:disabled){background:var(--accent-soft)}
.desktop-update:active:not(:disabled){background:var(--raised)}
.desktop-update:focus-visible{outline:calc(var(--line-width)*2) solid var(--accent);outline-offset:calc(var(--line-width)*2)}
.desktop-update:disabled{cursor:default;color:var(--muted);border-color:var(--border)}
.desktop-update-dot{width:calc(var(--space-unit)*2);height:calc(var(--space-unit)*2);border-radius:50%;background:var(--accent);flex:none}
.desktop-update-action{color:var(--link);font-weight:600}
.desktop-update:disabled .desktop-update-action{color:var(--muted)}
.desktop-update-state{color:var(--text)}
@media(max-width:600px){.desktop-update-state{display:none}}

/* Schedules & CI */
.automation-form{margin-block:calc(var(--space-unit)*3) calc(var(--space-unit)*6)}
.automation-form h4{margin:0 0 var(--space-unit);font-size:var(--text-body-sm);font-weight:600}
.automation-row{display:flex;gap:calc(var(--space-unit)*3);flex-wrap:wrap}
.automation-row .project-field{flex:1 1 calc(var(--space-unit)*40);margin-block:calc(var(--space-unit)*2)}
.automation-error{color:var(--danger-text)}
.automation-token{margin-block:calc(var(--space-unit)*3);padding:calc(var(--space-unit)*3);border:var(--line-width) solid var(--border);border-radius:var(--r);background:var(--raised)}
.automation-token p{margin:0 0 calc(var(--space-unit)*2)}
.automation-code{margin:0 0 calc(var(--space-unit)*2);padding:calc(var(--space-unit)*2);overflow-x:auto;white-space:pre-wrap;overflow-wrap:anywhere;font-size:var(--text-caption);background:var(--panel);border-radius:var(--r)}
