/* V029: role tools use the existing Business workspace design. No native/dock/global theme changes. */
body[data-business-ui="workspace"] .r28 *{box-sizing:border-box}
body[data-business-ui="workspace"] .r28-card{border:1px solid var(--biz-line);background:var(--biz-panel);border-radius:15px;padding:18px;min-width:0;overflow-wrap:anywhere}
body[data-business-ui="workspace"] .r28-stack,.r28-messages{display:grid;gap:10px}
body[data-business-ui="workspace"] .r28 h2{font:750 21px/1.25 Inter,system-ui,sans-serif;letter-spacing:-.035em;margin:22px 0 14px}
body[data-business-ui="workspace"] .r28 h3{font:700 15px/1.4 Inter,system-ui,sans-serif;margin:0}
body[data-business-ui="workspace"] .r28 p{font-size:12px;line-height:1.65;margin:10px 0;color:var(--biz-text)}
body[data-business-ui="workspace"] .r28 small,.r28-muted{color:var(--biz-muted);font-size:11px}
.r28-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.r28-actions,.r28-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:14px 0 0}
body[data-business-ui="workspace"] .r28 .r28-button{font-family:inherit;cursor:pointer;max-width:100%}
.r28-button:disabled{opacity:.5;cursor:wait}
.r28-role,.r29-identity-role{display:inline-block;font-size:10px;line-height:1.4;border:1px solid var(--biz-line,#303030);border-radius:7px;padding:4px 8px;color:#ffa364;background:var(--biz-soft,#1d1d1d);white-space:normal}
.r29-identity-role{margin-left:5px;padding:2px 6px}
.r28-field{display:flex;flex-direction:column;gap:8px;min-width:0;margin:14px 0}
.r28-field>span{font-size:12px;font-weight:650;color:var(--biz-text)}
.r28-field input,.r28-field textarea,.r28-field select{max-width:100%;min-width:0;width:100%;box-sizing:border-box;border:1px solid var(--biz-line);border-radius:11px;padding:12px;background:var(--biz-soft);color:var(--biz-text);font:inherit;font-size:16px}
.r28-field input[type=file]{font-size:12px}
.r29-workspace-select{margin:0 0 18px;max-width:480px}
.r28-note,.r28-empty{padding:16px;border:1px solid var(--biz-line);border-radius:13px;background:var(--biz-soft);font-size:12px;line-height:1.65;color:var(--biz-muted)}
.r28-error,.r28-form-error:not(:empty){padding:14px;border:1px solid #813a25;background:#2a1914;color:#ffb39d;border-radius:11px;margin:12px 0;font-size:12px;line-height:1.5}
.r28-pre{white-space:pre-wrap;overflow-wrap:anywhere}.r28-code{display:block;overflow-wrap:anywhere;user-select:all;color:#ffa364;padding:16px}.r28-check{display:flex;gap:10px;align-items:center;margin:16px 0;font-size:12px}
body[data-business-ui="workspace"] .r29-tools{margin:0 0 24px!important}
.r29-tools[hidden]{display:none!important}
body[data-business-ui="workspace"] .r29-financials{margin-top:24px!important}
body[data-business-ui="workspace"] .r29-financials .business-v3-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}
body[data-business-ui="workspace"] .r29-financials .business-v3-stats strong{font-size:24px!important;overflow-wrap:anywhere}
.r29-tool-count{display:block;font:750 12px/1.3 Inter,system-ui,sans-serif;color:#ffa364;text-align:center;overflow-wrap:normal}
body[data-business-ui="workspace"] .r29-tools .business-v3-tool{grid-template-columns:38px minmax(0,1fr) minmax(24px,auto)!important}
body[data-business-ui="workspace"] .r29-tools .business-v3-tool>b{width:auto}
body[data-business-ui="workspace"] .r29-tools .business-v3-tool>b.r29-today-arrow{color:#ff7b29!important}
body[data-business-ui="workspace"] .r29-financial-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;grid-column:1/-1;min-width:0}
body[data-business-ui="workspace"] .r29-tools .r29-financial-tools>.business-v3-tool{grid-column:auto!important;min-width:0;width:100%!important}
body[data-business-ui="workspace"] .r29-tools .r29-financial-tools>.business-v3-tool:only-child{grid-column:1/-1!important}
@media(max-width:600px){body[data-business-ui="workspace"] .r29-tools .r29-financial-tools>.business-v3-tool{grid-template-columns:minmax(0,1fr) 18px!important;grid-template-rows:auto 1fr;align-items:start!important;gap:10px!important;padding:12px!important}body[data-business-ui="workspace"] .r29-financial-tools>.business-v3-tool>.icon{grid-column:1;grid-row:1}body[data-business-ui="workspace"] .r29-financial-tools>.business-v3-tool>b{grid-column:2;grid-row:1;align-self:center}body[data-business-ui="workspace"] .r29-financial-tools>.business-v3-tool>div{grid-column:1/-1;grid-row:2;overflow-wrap:anywhere}body[data-business-ui="workspace"] .r29-financial-tools>.business-v3-tool strong{white-space:normal}}
.r29-work{margin-top:24px!important}
body[data-built-shop-role="installer"] .bottom-nav [data-route="request"],body[data-built-shop-role="installer"] .v2-side-link[data-route="request"]{display:none!important}
@media(max-width:360px){body[data-business-ui="workspace"] .r28-card{padding:14px}.r28-toolbar{gap:6px}}

/* Legacy Messages removes #app padding. Keep final role-page actions above the dock. */
body[data-business-ui="workspace"] .business-v3.r28{padding-bottom:calc(var(--business-workspace-bottom-clearance,110px) + 28px)!important}
.r28>.r28-card,.r28>.r28-messages,.r28>.r28-stack{margin-bottom:14px}

/* Use the existing request cards, conversation rows and message bubbles. */
body[data-business-ui="workspace"] .r29-inbox{border:1px solid var(--biz-line)!important;border-radius:17px}
body[data-business-ui="workspace"] .r29-chat{height:auto!important;border:1px solid var(--biz-line);border-radius:17px;overflow:hidden!important}
.r29-chat-messages{padding:16px;min-width:0}
.r29-composer{padding:14px;border-top:1px solid var(--biz-line);background:var(--biz-panel)}
.r29-composer .r28-field:first-of-type{margin-top:0}
.r29-composer textarea{min-height:80px}
.r28 .business-request-workspace{margin-top:16px}
.r28 .business-request-list{display:grid;gap:12px}
/* Original messenger panes are positioned by messenger-shell. Role routes use #app's existing scroller instead. */
body[data-business-ui="workspace"] :is(.r29-inbox,.r29-chat){position:relative!important;inset:auto!important;transform:none!important;width:100%!important;height:auto!important;max-height:none!important;min-height:0!important;z-index:auto!important}
body[data-business-ui="workspace"] .r29-inbox .messenger-thread-list{flex:0 0 auto!important;overflow:visible!important;padding:9px!important}
body[data-business-ui="workspace"] :is(.r29-inbox,.r29-chat){visibility:visible!important;opacity:1!important;pointer-events:auto!important}
body[data-business-ui="workspace"] .business-v3.r28{overflow:visible!important}
/* The restored legacy workspace already centers its non-native dock using left/right + auto margins.
   Do not also inherit the wider-layout translateX(-50%); the iOS glass dock owns its own transform. */
body[data-built-shop-role][data-business-ui="workspace"] .bottom-nav:not(#builtIOSDock){transform:none!important}
/* Keep restored owner-panel Close controls below the persistent header after scrollIntoView. */
body[data-built-shop-role][data-business-ui="workspace"] .business-v3-drawer{position:relative!important;scroll-margin-top:84px}

/* V0211 controls share the existing card/outline tokens. */
.r211-filters{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 18px;}
.r211-filters button{max-width:100%;white-space:normal;}
.r211-filters [aria-pressed="true"]{border-color:var(--accent,#ff6a00);}
.r28-inbox-read-filters{margin-bottom:8px}
body[data-business-ui="workspace"] .r29-inbox .r28-unread-breakdown{display:flex;flex-direction:column;gap:4px;flex:0 1 auto;max-width:145px;min-width:0;width:auto;height:auto;border-radius:10px;padding:7px 9px;font-size:11px;line-height:1.35;white-space:normal;text-align:right}
@media(max-width:430px){body[data-business-ui="workspace"] .r29-inbox .messenger-thread{grid-template-columns:37px minmax(0,1fr)!important}body[data-business-ui="workspace"] .r29-inbox .r28-unread-breakdown{grid-column:2;justify-self:start;margin-left:0;max-width:100%;flex-direction:row;flex-wrap:wrap;column-gap:12px;text-align:left}}
.r211-activity-values dd{overflow-wrap:anywhere;white-space:pre-wrap;}

/* V0.2.13.18: this child-screen return is outside the mobile-hidden dashboard toolbar. */
.r318-room-return{display:flex;flex-wrap:wrap;margin:0 0 16px;gap:8px;min-width:0}
body[data-business-ui="workspace"] .r318-room-return .r28-button{min-height:44px;max-width:100%;white-space:normal;font-weight:750}
.r318-room-return .r28-button:focus-visible{outline:2px solid var(--accent,#ff6a00);outline-offset:3px}
.r318-assignment-notice{padding:12px 14px;border:1px solid var(--biz-line,#3f3f3f);border-radius:12px;color:var(--biz-text,#f1f1f1);overflow-wrap:anywhere}


.r28-item-description{display:block;margin-top:7px;color:#bdbdbd;font-size:13px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}

/* One direct clock entry alongside the existing workspace control. */
body[data-business-ui="workspace"] [data-business-tools-entry] .r29-tools-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;flex:0 1 auto;min-width:0}
body[data-business-ui="workspace"] [data-business-tools-entry] .r29-timeclock-entry{display:inline-flex;gap:8px;align-items:center;justify-content:center;background:#252525;border-color:#555;color:#ff8e41}
@media(max-width:699px){body[data-business-ui="workspace"] [data-business-tools-entry] .r29-tools-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:100%}body[data-business-ui="workspace"] [data-business-tools-entry] .r29-tools-actions button{padding:12px 10px;min-width:0;font-size:13px}}

.r29-schedule-icon{display:inline-flex;align-items:center;justify-content:center}.r29-schedule-icon svg{width:22px;height:22px}.bottom-nav [data-client-schedule-nav]{min-width:0}.bottom-nav [data-client-schedule-nav]>span:last-child{white-space:normal;line-height:1.15}
