/* The existing Customers tokens are canonical, shared by every business screen. */
.business{background:var(--frame);font-variant-numeric:tabular-nums}
.b-header{height:60px;display:flex;gap:12px;align-items:center;padding:0 24px;color:var(--frame-ink);background:var(--frame);border-bottom:1px solid var(--frame-line)}
.b-brand{min-width:210px;flex-shrink:0;display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--frame-ink)}
.b-brand b{font:760 24px/32px var(--sans);letter-spacing:-.035em;white-space:nowrap}.b-brand small{display:block;color:var(--frame-muted);font-size:12px}
.b-search{max-width:560px;flex:1;margin-left:auto}.b-search input{width:100%;height:34px;background:var(--frame-field);border:1px solid var(--frame-line);border-radius:var(--r-nav);padding:0 11px;color:var(--frame-ink);font-size:13px}
.b-header .btn{min-height:34px;padding-block:0;border-radius:var(--r-nav)}
.b-sidebar{position:fixed;top:60px;bottom:0;left:0;width:220px;display:flex;flex-direction:column;padding:14px 10px 20px;overflow:auto;color:var(--frame-ink);background:var(--frame);border-right:1px solid var(--panel-line)}
.b-sidebar nav{display:grid;gap:2px}.b-sidebar a,.b-sidebar button{display:block;text-decoration:none;color:var(--frame-ink);padding:8px 10px;border-radius:var(--r-nav);font-size:14px;font-weight:600;border:0;background:none;text-align:left;min-height:36px}
.b-sidebar a[aria-current=page]{background:var(--primary);color:var(--on-primary)}.b-sidebar a:hover,.b-sidebar button:hover{background:var(--frame-hover)}.b-sidebar a[aria-current=page]:hover{background:var(--primary)}
.b-sidebar-bottom{margin-top:auto;padding-top:32px}.b-sidebar-bottom small{display:block;padding:12px;color:var(--frame-muted)}
.b-main{margin-left:220px;min-height:calc(100dvh - 60px);padding:32px 36px 64px;border-radius:0;background:var(--page);min-width:0;outline:none}
.b-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:28px}.b-heading h1{font:700 30px/36px var(--sans);letter-spacing:-.025em;margin:0 0 8px}.b-heading p{margin:0;color:var(--ink-3);max-width:70ch}
.b-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.b-tabs{display:flex;width:fit-content;max-width:100%;gap:0;flex-wrap:wrap;margin-bottom:24px;padding:3px;border-radius:var(--r-track);background:var(--frame-hover)}.b-tabs button{min-height:30px;padding:5px 9px;border:0;background:transparent;border-radius:var(--r-nav);color:var(--frame-muted);font:600 13px/20px var(--sans)}.b-tabs button:hover{background:var(--frame);color:var(--frame-ink)}.b-tabs button[aria-pressed=true]{background:var(--primary);color:var(--on-primary)}
.b-summary{display:flex;flex-wrap:wrap;background:var(--summary);color:var(--frame-ink);padding:10px 12px;gap:24px;border:1px solid var(--panel-line);border-top-color:var(--line-strong);border-radius:var(--r-card);margin-bottom:28px}.b-summary a{color:inherit;text-decoration:none;display:flex;align-items:baseline;gap:8px}.b-summary strong{font:700 22px/28px var(--sans);color:var(--primary)}
.b-table-wrap{overflow-x:auto}.b-table{width:100%;border-collapse:collapse;text-align:left}.b-table th{font-size:12px;color:var(--ink-3);font-weight:500;padding:12px;border-block:1px solid var(--hairline)}.b-table td{padding:16px 12px;border-bottom:1px solid var(--hairline);vertical-align:top}.b-table th:first-child,.b-table td:first-child{padding-left:0}.b-table td small{display:block;color:var(--ink-3);margin-top:4px}.b-table tr:hover td{background:var(--surface-2)}.b-table a,.b-textbutton{font-weight:600;color:var(--ink);text-decoration:none}.b-textbutton{border:0;background:none;text-align:left;padding:0;min-height:44px}.b-textbutton:hover{text-decoration:underline}.b-tag{display:inline-block;padding:3px 8px;background:var(--surface-2);border-radius:5px;font-size:12px;white-space:nowrap}.b-late{color:var(--late);font-weight:600}.b-empty{padding:48px 0;max-width:68ch}.b-empty h2{font:700 22px/28px var(--sans);margin:0 0 12px}.b-empty p{color:var(--ink-3);margin:0 0 20px}.b-note{color:var(--ink-3);font-size:13px;max-width:80ch}.b-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px}.b-section{margin-top:32px}.b-section h2{font:700 22px/28px var(--sans);margin:0 0 16px}.b-detail dl{display:grid;grid-template-columns:160px minmax(0,1fr);gap:12px;margin:0}.b-detail dt{color:var(--ink-3)}.b-detail dd{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.b-timeline{list-style:none;padding:0}.b-timeline li{padding:16px 0;border-bottom:1px solid var(--hairline)}.b-timeline small{display:block;color:var(--ink-3)}
.b-board{display:grid;grid-template-columns:repeat(5,minmax(200px,1fr));gap:16px;overflow:auto;padding-bottom:16px}.b-column{background:var(--tile);border:1px solid var(--panel-line);border-radius:var(--r-card);padding:12px}.b-column h2{font-size:15px;margin:0 0 16px}.b-deal{background:var(--panel);border:1px solid var(--panel-line);border-radius:var(--r-card);padding:12px;margin-bottom:8px}.b-deal p{margin:8px 0;font-size:13px;color:var(--ink-3)}
#b-editor{width:min(760px,calc(100vw - 32px));max-height:90dvh;margin:auto;padding:28px;border:1px solid var(--panel-line);border-radius:var(--r-dialog);box-shadow:var(--dlg-shadow);background:var(--surface);color:var(--ink);overflow:auto}#b-editor::backdrop{background:var(--scrim)}#b-editor h2{font:700 30px var(--sans);margin:0}#b-editor .b-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:24px 0}#b-editor label{display:grid;gap:6px;font-size:13px;font-weight:600}#b-editor input,#b-editor select,#b-editor textarea{width:100%;min-width:0;min-height:var(--ctl-h);border:1px solid var(--ctrl);border-radius:var(--r-ctl);padding:9px 11px;background:var(--panel);color:var(--ink);font-size:13px}#b-editor textarea{min-height:100px;resize:vertical}#b-editor input[type=checkbox]{width:20px;min-height:20px}.b-wide{grid-column:1/-1}.b-form-error{color:var(--late);white-space:pre-wrap}.b-editor-head,.b-editor-foot{display:flex;justify-content:space-between;gap:16px;align-items:center}.b-editor-foot{padding-top:18px;border-top:1px solid var(--hairline)}#b-toast{position:fixed;bottom:24px;right:24px;max-width:calc(100vw - 48px);background:var(--ink);color:var(--bg);padding:14px 20px;border-radius:var(--r-pop);z-index:20}.b-skip{position:fixed;top:-100px;left:20px;z-index:50;background:var(--surface);padding:12px}.b-skip:focus{top:8px}.business ::selection{background:var(--primary);color:var(--on-primary)}.business input,.business textarea{caret-color:var(--ink)}.business *{scrollbar-color:var(--ctrl) transparent}.business button:disabled{opacity:.6;cursor:wait}
@media(max-width:1000px){.b-brand{width:auto}.b-brand small{display:none}.b-sidebar{width:180px}.b-main{margin-left:180px;padding:28px 24px}.b-two{grid-template-columns:1fr}.b-heading{flex-wrap:wrap}}
@media(max-width:680px){.b-header{height:auto;flex-wrap:wrap;padding:12px;gap:10px}.b-brand{flex:1}.b-brand b{font-size:24px}.b-search{order:3;flex-basis:100%;max-width:none}.b-header #new-record{padding-inline:12px}.b-sidebar{position:static;width:auto;padding:0 12px 12px}.b-sidebar nav{display:flex;overflow:auto;gap:4px}.b-sidebar nav a{white-space:nowrap}.b-sidebar-bottom{display:none}.b-main{margin-left:0;padding:24px 16px 48px;border-radius:0}.b-heading h1{font-size:34px}.b-summary{gap:12px 24px;padding:16px}.b-summary a{flex-basis:40%}.b-table thead{display:none}.b-table,.b-table tbody,.b-table tr,.b-table td{display:block;width:100%}.b-table tr{border-bottom:1px solid var(--hairline);padding:12px 0}.b-table td{padding:5px 0;border:0}.b-table td:before{content:attr(data-label);font-size:12px;color:var(--ink-3);margin-right:12px;display:inline-block;min-width:90px}.b-table td:first-child:before{display:none}.b-table td:first-child{font-size:17px}.b-table td small{display:inline;margin-left:6px}.b-detail dl{grid-template-columns:110px minmax(0,1fr)}#b-editor{padding:20px}#b-editor .b-fields{grid-template-columns:1fr}.b-wide{grid-column:auto}.b-board{grid-template-columns:repeat(5,minmax(260px,1fr))}}
@media(prefers-reduced-motion:reduce){.business *{scroll-behavior:auto;animation:none;transition:none}}
@media(max-width:680px){.b-summary{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}.b-summary a{display:block}.b-summary strong{display:block;margin-bottom:4px}.b-summary a strong{font-size:26px}}
.b-more{border-top:1px solid var(--hairline);padding-top:12px}.b-more summary,.b-more-actions summary{cursor:pointer;min-height:44px;padding:12px 0;font-size:13px;font-weight:600}.b-more-actions{position:relative}.b-more-actions[open] .btn{position:absolute;right:0;top:44px;z-index:5;white-space:nowrap;background:var(--surface);color:var(--ink);box-shadow:0 8px 24px var(--scrim)}#b-editor [hidden]{display:none!important}.b-editor-foot{position:sticky;bottom:-28px;background:var(--surface);padding-bottom:16px;z-index:2}.b-timeline p{margin:6px 0 0}
@media print{.b-header,.b-sidebar,.b-actions,.b-tabs,#b-toast{display:none}.b-main{margin:0;padding:0}.business{background:white}.b-main{background:white;color:black}.b-table tr{break-inside:avoid}}

.b-section-tabs{display:flex;width:fit-content;max-width:100%;gap:0;flex-wrap:wrap;margin-bottom:24px;padding:3px;border-radius:var(--r-track);background:var(--frame-hover)}.b-section-tabs a{padding:5px 9px;min-height:30px;border-radius:var(--r-nav);text-decoration:none;color:var(--frame-muted);font:600 13px/20px var(--sans)}.b-section-tabs a[aria-current=page]{background:var(--primary);color:var(--on-primary)}.b-section-tabs a:not([aria-current=page]):hover{background:var(--frame);color:var(--frame-ink)}.b-workspace-link{margin-top:24px}.b-detail dd{white-space:pre-wrap}@media(max-width:1000px){.b-workspace-link{margin-top:0}}

.b-review-card { border:1px solid var(--panel-line); padding:1rem; margin:1rem 0; border-radius:var(--r-ctl); }
.b-review-card textarea { width:100%; min-height:5rem; font:inherit; color:inherit; background:transparent; border:1px solid var(--panel-line); padding:.7rem; box-sizing:border-box; }
.b-review-card details { margin-top:.7rem; overflow-wrap:anywhere; }

/* 16 Oct 2026: stage percentage (20 Oct: replaced the warmth labels), pipeline breakdown, customer card, next-action picker. Tokens only (contrast guard). */
.b-stage{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px}
.b-pct{display:inline-block;padding:2px 8px;border-radius:var(--r-ctl);font-size:12px;font-weight:600;white-space:nowrap;border:1px solid var(--panel-line);background:var(--tile);color:var(--ink);font-variant-numeric:tabular-nums}
.b-breakdown{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-card);padding:20px 24px;margin-bottom:24px}
.b-break-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}.b-break-head h2{font:700 26px var(--sans);margin:0}.b-break-head p{margin:0;color:var(--ink-2)}
.b-breakdown h3{font-size:13px;font-weight:600;color:var(--ink-3);margin:20px 0 10px}
.b-break-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.b-break-tile{display:grid;gap:4px;text-align:left;min-height:44px;padding:12px 14px;border:1px solid var(--panel-line);border-radius:var(--r-card);background:var(--panel);color:var(--ink);cursor:pointer}
.b-break-tile small{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:12px;font-weight:600;color:var(--ink-2)}.b-break-tile strong{font:700 22px var(--sans)}.b-break-tile>span{font-size:12px;color:var(--ink-3)}
.b-break-tile:hover{background:var(--tile)}.b-break-tile[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.b-break-tile[aria-pressed=true] :is(small,span,strong){color:var(--on-primary)}
.b-focus{display:flex;align-items:center;gap:12px;margin:0 0 16px;font-weight:600}
.b-board{grid-template-columns:repeat(6,minmax(190px,1fr))}.b-column-value{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:-6px 0 14px;font-size:13px;color:var(--ink-2)}.b-deal .b-deal-value{color:var(--ink);font-weight:600}
.b-summary>div{display:flex;align-items:baseline;gap:8px}
.b-section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.b-section-head h2{margin:0}
.b-stage-select{min-height:var(--ctl-h);max-width:200px;border:1px solid var(--ctrl);border-radius:var(--r-ctl);padding:0 11px;background:var(--panel);color:var(--ink);font:inherit;font-size:13px}
.b-stage-select:focus+.b-pct{display:none}
.b-notes p{margin:6px 0 0}.b-notes b{font-weight:600;margin-right:8px}
.b-people p{margin:0 0 12px}.b-people small{display:block;color:var(--ink-3)}
.b-card-details summary{cursor:pointer;min-height:44px;font:700 22px/28px var(--sans)}.b-card-details[open] summary{margin-bottom:16px}
.b-menu{position:absolute;right:0;top:46px;z-index:5;display:grid;min-width:220px;padding:6px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-pop);box-shadow:var(--pop-shadow)}
.b-menu-item{min-height:44px;padding:10px 12px;border:0;border-radius:var(--r-nav);background:none;color:var(--ink);text-align:left;font:inherit;font-weight:500;white-space:nowrap}.b-menu-item:hover{background:var(--surface-2)}
.b-more-actions summary{list-style:none}.b-more-actions summary::-webkit-details-marker{display:none}
.b-next-action{display:grid;gap:8px}
.b-checks{display:grid;margin:20px 0 4px}#b-editor label.b-check{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid var(--hairline);font-weight:400}#b-editor label.b-check input{margin-top:2px}.b-check small{display:block;color:var(--ink-3)}
.b-pick{display:grid;gap:2px;margin-top:12px;max-height:50dvh;overflow:auto}.b-pick-row{display:grid;gap:2px;min-height:44px;padding:12px;border:0;border-radius:var(--r-nav);background:none;color:var(--ink);text-align:left;font:inherit}.b-pick-row:hover,.b-pick-row:focus-visible{background:var(--surface-2)}.b-pick-row small{color:var(--ink-3)}
@media(max-width:680px){.b-break-row{grid-template-columns:1fr 1fr}.b-board{grid-template-columns:repeat(6,minmax(260px,1fr))}.b-summary>div{display:block}.b-section-head{flex-wrap:wrap}}
.b-more-actions summary.btn{padding:0 16px;font-size:15px}
.b-card-list{list-style:none;margin:0;padding:0}.b-card-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--hairline)}.b-card-list a{font-weight:600;color:var(--ink);text-decoration:none}.b-card-list small{display:block;margin-top:4px;color:var(--ink-3)}

/* 16 Oct 2026, Jordan's card pass: icon buttons, slim strip with the date small top right, two columns when wide. */
.btn.b-icon{min-width:44px;padding:0 10px;font-size:18px;line-height:1;letter-spacing:-.02em}.b-more-actions summary.b-icon{padding:0 10px;font-size:20px}
.b-strip{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 32px;margin:-12px 0 24px;padding:12px 18px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-card)}
.b-strip-facts{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 28px;font-size:13px;color:var(--ink-3)}.b-strip-facts strong{font:700 22px var(--sans);color:var(--ink)}.b-strip-facts .b-pct{font-size:13px}
.b-strip-next{display:grid;justify-items:end;gap:2px;margin-left:auto;text-align:right;font-size:13px;color:var(--ink-2)}.b-strip-next time{font-size:12px;font-weight:600;color:var(--ink-3)}
.b-card-grid{display:grid;gap:8px}
@media(min-width:1100px){.b-card-grid{grid-template-columns:minmax(0,1.75fr) minmax(260px,1fr);gap:40px;align-items:start}}
.b-card-section{margin-top:28px}.b-card-main>.b-card-section:first-child,.b-card-side>.b-card-section:first-child{margin-top:0}
@media(max-width:1099px){.b-card-side>.b-card-section:first-child{margin-top:28px}}
.b-card-section h2,.b-card-details summary{font:700 22px var(--sans);margin:0}
.b-note-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.b-note-head time{flex-shrink:0;font-size:12px;color:var(--ink-3)}
.b-card-list .b-card-list-end{display:flex;align-items:center;gap:8px;flex-shrink:0}.b-card-list .b-card-list-end small{display:inline;margin:0;white-space:nowrap}
.b-product-select{display:block;margin-top:6px;min-height:44px;max-width:240px;padding:8px 10px;border:1px dashed var(--ctrl);border-radius:var(--r-ctl);background:var(--bg);color:var(--ink);font:inherit;font-size:13px}
@media(max-width:680px){.b-strip-next{justify-items:start;margin-left:0;text-align:left}}

/* 17 Oct 2026, the council's four: call sheet bulk add, what's next on Today, paste preview, emails apart. Tokens only. */
.b-pick-box{width:20px;height:20px;accent-color:var(--ink)}
.b-bulk{position:sticky;top:8px;z-index:4;display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 16px;padding:10px 14px;background:var(--surface);border:1px solid var(--ink);border-radius:var(--r-card);box-shadow:var(--pop-shadow);font-weight:600}
.b-row-actions{display:flex;gap:6px;justify-content:flex-end}
.b-muted{color:var(--ink-3)}
.b-next{display:grid;gap:20px;margin-bottom:28px}
.b-next-group h3{margin:0 0 6px;font-size:13px;font-weight:600;color:var(--ink-3)}
.b-next-list{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-card)}
.b-next-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:10px 14px;border-bottom:1px solid var(--hairline)}.b-next-row:last-child{border-bottom:0}
.b-next-main b{display:block;font-weight:600}.b-next-main small{display:block;margin-top:2px;color:var(--ink-3)}.b-next-main small a{color:var(--ink-2)}
.b-next-row time{font-size:12px;color:var(--ink-3);white-space:nowrap;text-align:right}.b-next-row time.b-late{color:var(--late);font-weight:600}
.b-kind{display:inline-block;min-width:76px;padding:2px 8px;border-radius:var(--r-ctl);font-size:12px;font-weight:600;text-align:center;background:var(--surface-2);color:var(--ink-2);border:1px solid var(--hairline)}
.b-kind-call{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.b-kind-deal{background:var(--surface);color:var(--ink);border-color:var(--primary)}.b-kind-meeting{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.b-paste-rows{list-style:none;margin:16px 0 0;padding:0;max-height:52dvh;overflow:auto;border-top:1px solid var(--hairline)}
.b-paste-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) auto;gap:12px;align-items:start;padding:10px 0;border-bottom:1px solid var(--hairline)}
.b-paste-row small{display:block;color:var(--ink-3);margin-top:2px}.b-paste-row.b-paste-skip{opacity:.7}
.b-paste-row>*{min-width:0}.b-paste-rows{overflow-x:hidden}.b-paste-what{display:grid;gap:6px;justify-items:start;min-width:0}#b-editor .b-paste-what select{width:100%;max-width:100%;text-overflow:ellipsis}.b-paste-line{white-space:nowrap}
.b-emails summary{cursor:pointer;min-height:44px;font:700 22px var(--sans)}.b-emails[open] summary{margin-bottom:8px}
@media(max-width:680px){.b-next-row{grid-template-columns:auto minmax(0,1fr) auto;row-gap:4px}.b-next-row time{grid-column:2;text-align:left}.b-paste-row{grid-template-columns:1fr}.b-kind{min-width:0}}
@media print{.b-row-actions,.b-bulk{display:none}}
/* 17 Oct 2026: recurring vs capital beside first-year value. */
.b-break-stats{display:flex;flex-wrap:wrap;gap:12px 32px}.b-break-stats strong{display:block;font:700 26px var(--sans);color:var(--ink)}.b-break-stats small{font-size:12px;color:var(--ink-3)}
.b-break-split{display:flex;gap:16px;font-size:13px;color:var(--ink-3)}.b-break-split b{color:var(--ink);font-weight:600;margin-right:4px}
.b-break-tile>.b-tile-split{color:var(--ink-2)}
.b-column-split{margin:-10px 0 14px;font-size:12px;color:var(--ink-3)}


/* 19 Oct 2026, Jordan's walkthrough (brain solva/crm-walkthrough-2026-10-19.md). Tokens only. */
/* C14 board: drag a deal between stages; the update opens as a side panel. */
.b-board{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(200px,1fr)}
.b-deal{cursor:grab;transition:border-color 120ms,opacity 120ms}.b-deal:hover,.b-deal:focus-visible{border-color:var(--ctrl);outline:none}.b-deal.b-dragging{opacity:.45;cursor:grabbing}
.b-column.b-drop{outline:2px dashed var(--primary);outline-offset:-2px;background:var(--surface)}
.b-column-end{background:transparent;border:1px dashed var(--hairline)}.b-drop-hint{font-size:12px;color:var(--ink-3);margin:0}
#b-editor.b-drawer{margin:0 0 0 auto;height:100dvh;max-height:100dvh;width:min(440px,100vw);border-radius:var(--r-dialog) 0 0 var(--r-dialog)}
#b-editor.b-drawer .b-fields{grid-template-columns:1fr}#b-editor.b-drawer .b-wide{grid-column:auto}
/* C3: the industry, business and stage tiles stay on one line; past about seven they scroll sideways. */
.b-break-row{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 60px) / 7);grid-template-columns:none;gap:10px;overflow-x:auto;padding-bottom:4px;scroll-snap-type:x proximity}
.b-break-tile{padding:8px 10px;gap:2px;scroll-snap-align:start}.b-break-tile strong{font-size:17px}.b-break-tile small{font-size:11px}.b-break-tile>span{font-size:11px}
.b-breakdown h3{margin:14px 0 8px}
@media(max-width:1000px){.b-break-row{grid-auto-columns:calc((100% - 30px) / 4)}}
@media(max-width:680px){.b-break-row{grid-auto-columns:42%}}
/* C4: tables spreadsheet-small: 12px, tight rows; buttons inside rows shrink with a mouse, stay 44px on touch. */
.b-table{font-size:12px}.b-table th{font-size:11px;padding:7px 10px}.b-table td{padding:7px 10px}.b-table td small{font-size:11px;margin-top:2px}
.b-table .b-tag,.b-table .b-pct{font-size:11px;padding:2px 7px}
@media(pointer:fine){.b-table .btn,.b-table .b-stage-select,.b-table select,.b-table input{min-height:30px;font-size:12px;padding-block:4px}.b-table .btn{padding-inline:10px}.b-table .btn.b-icon{min-width:30px}}
@media(max-width:680px){.b-table td:first-child{font-size:14px}}
/* C2: deal search beside the tabs. */
.b-deal-search-row{display:flex;gap:8px;align-items:center;margin:-12px 0 16px}.b-deal-search{flex:1;max-width:420px;min-height:40px;padding:0 12px;border:1px solid var(--ctrl);border-radius:var(--r-ctl);background:var(--surface);color:var(--ink);font:inherit;font-size:13px}
/* C11: the log pop-up is wider and carries a small table of the business's deals. */
#b-editor.b-dialog-wide{width:min(980px,calc(100vw - 32px))}
.b-log-deals{margin-top:6px}.b-log-deals h3{margin:0;font-size:15px}.b-log-table td{vertical-align:top}.b-log-table select,.b-log-table input{width:100%}
.b-log-table .b-next-action{min-width:170px}.b-log-table td:first-child{min-width:150px}.b-row-focus td{background:var(--surface-2)}.b-row-new td{background:var(--bg)}
/* C12: section adds say what they add, small. */
.btn.b-mini{min-height:32px;padding:0 12px;font-size:12px}
@media(pointer:coarse){.btn.b-mini{min-height:44px}}
/* C5: the new business fields under the Business list. */
.b-newbiz{margin:0;padding:10px 12px;border:1px dashed var(--ctrl);border-radius:var(--r-ctl)}

/* C1 (Jordan, 19 Oct 2026: "prefer the sand colouring"): the page sits a shade darker than the panels so each panel
   stands apart. No blue or purple. */
.business .b-main{background:var(--page)}
.business :is(.b-breakdown,.b-strip,.b-table-wrap,.b-card-section,.b-next-list,.b-card-details){background:var(--panel);border:1px solid var(--panel-line);border-radius:var(--r-card)}
.business .b-table-wrap{padding:2px 14px}.business .b-card-section,.business .b-card-details{padding:14px 16px}
.business .b-break-tile{background:var(--tile)}.business .b-column{background:var(--panel);border:1px solid var(--panel-line)}.business .b-deal{background:var(--tile)}

/* C15 (Jordan, 19 Oct 2026): People and access, Permissions, and seeing the CRM as someone else. */
.b-preview{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 20px;padding:10px 12px;border-radius:var(--r-card);background:var(--primary);color:var(--on-primary)}
.b-preview small{display:block;opacity:.8;margin-top:2px}.b-preview .btn.primary{background:var(--bg);color:var(--ink);border-color:var(--bg)}
.b-perm-wrap{overflow:auto;max-height:calc(100vh - 220px)}
.b-perm{font-size:12px}.b-perm thead th{position:sticky;top:0;z-index:2;background:var(--panel);vertical-align:bottom;text-align:center;min-width:92px;line-height:1.25}
.b-perm thead th small{display:block;font-weight:400;color:var(--ink-3)}.b-perm thead th:first-child{text-align:left;min-width:260px}
.b-perm tbody th[scope=row]{font-weight:400;padding:7px 10px 7px 0;border-bottom:1px solid var(--hairline);text-align:left}
.b-perm .b-perm-group th{padding:16px 0 6px;font:500 13px var(--sans,inherit);color:var(--ink);border-bottom:1px solid var(--panel-line);text-align:left}
.b-perm td.b-perm-cell{text-align:center;padding:6px 8px}.b-perm td.b-perm-cell input{width:18px;height:18px;accent-color:var(--ink);cursor:pointer}
.b-perm td.b-perm-capped{background:var(--surface-2)}.b-perm td.b-perm-capped input{opacity:.35;cursor:not-allowed}
.b-perm td.b-perm-changed{position:relative}.b-perm td.b-perm-changed::after{content:'';position:absolute;top:6px;right:8px;width:6px;height:6px;border-radius:50%;background:var(--late)}
.b-collab{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:6px}#b-editor label.b-collab-item{display:flex;align-items:center;gap:8px;font-weight:400}
.b-collab-label{font-size:13px;font-weight:600}.b-collab-item small{color:var(--ink-3)}.b-note-stamp{display:block;margin-top:4px;font-size:12px;font-weight:400;color:var(--ink-3)}
.b-link-box{width:100%;min-height:44px;padding:0 12px;border:1px solid var(--ctrl);border-radius:var(--r-ctl);background:var(--bg);color:var(--ink);font:13px ui-monospace,monospace}
.b-job-checks{grid-template-columns:1fr 1fr;column-gap:24px;margin-top:8px}
.b-job-summary{margin:4px 0 8px;padding:12px 14px;border-radius:var(--r-card);background:var(--tile)}.b-job-summary ul{margin:8px 0 0;padding-left:18px;font-size:13px}.b-job-summary li{margin:3px 0}
@media(max-width:680px){.b-job-checks{grid-template-columns:1fr}.b-preview{flex-wrap:wrap}}

/* Audit 23 Oct 2026 */
.b-sort{all:unset;cursor:pointer;display:inline-flex;align-items:center;min-height:32px;font:inherit;color:inherit}.b-sort:hover{color:var(--ink)}.b-sort:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:4px}
.b-table th[aria-sort=ascending],.b-table th[aria-sort=descending]{color:var(--ink)}.b-sort-mark{font-size:10px}
.b-sort-phone{display:none}
.b-hit{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;margin:-10px -12px;cursor:pointer}.b-hit input{width:18px;height:18px;accent-color:var(--ink);cursor:pointer;margin:0}
@media(pointer:fine){.b-hit{min-width:32px;min-height:32px;margin:-6px -8px}}
.b-perm td.b-perm-cell .b-hit{margin:-6px auto}
.b-stage-btn{all:unset;cursor:pointer;display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px;min-height:32px;border-radius:var(--r-ctl)}.b-stage-btn:hover .b-tag{background:var(--hairline)}.b-stage-btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.b-owner-filter{min-height:40px;padding:0 10px;border:1px solid var(--ctrl);border-radius:var(--r-ctl);background:var(--surface);color:var(--ink);font:inherit;font-size:13px}
.b-bulk select,.b-bulk input{min-height:40px;padding:0 10px;border:1px solid var(--ctrl);border-radius:var(--r-ctl);background:var(--surface);color:var(--ink);font:inherit;font-size:13px;font-weight:400}
.b-badge{display:inline-block;margin-left:8px;min-width:20px;padding:1px 6px;border-radius:var(--r-ctl);background:var(--primary);color:var(--on-primary);font-size:11px;font-weight:700;text-align:center;line-height:18px}
.b-live-value{margin:-6px 0 0}
@media(max-width:680px){
  .b-sort-phone{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:13px;color:var(--ink-3)}.b-sort-phone select{flex:1;min-height:44px;border:1px solid var(--ctrl);border-radius:var(--r-ctl);background:var(--surface);color:var(--ink);font:inherit}
  /* Grids that only read as grids keep their columns and scroll sideways on a phone (audit A27). */
  .b-table.b-perm,.b-table.b-log-table{display:table;width:auto;min-width:100%}.b-table.b-perm thead,.b-table.b-log-table thead{display:table-header-group}
  .b-table.b-perm tbody,.b-table.b-log-table tbody{display:table-row-group}.b-table.b-perm tr,.b-table.b-log-table tr{display:table-row;padding:0}
  .b-table.b-perm td,.b-table.b-perm th,.b-table.b-log-table td,.b-table.b-log-table th{display:table-cell;width:auto;padding:6px 8px;border-bottom:1px solid var(--hairline)}
  .b-table.b-perm td:before,.b-table.b-log-table td:before{content:none}
  .b-owner-filter{flex-basis:100%}.b-deal-search-row{flex-wrap:wrap}
}
/* Any touch screen gets full-size targets, even when a mouse or pen is the main pointer (audit A28). */
@media(any-pointer:coarse){.b-stage-btn,.b-sort,.b-owner-filter,.b-deal-search,.b-bulk select,.b-bulk input{min-height:44px}.b-hit{min-width:44px;min-height:44px;margin:-10px -12px}.b-perm td.b-perm-cell .b-hit{margin:-6px auto}}

/* Mark's walkthrough, 23 Oct 2026. Tokens only (contrast guard). */
/* Today at a glance: a line in words, then four cards that say what is behind each number. */
.b-pulse{margin:0 0 28px}.b-pulse-hello{margin:0 0 12px;font:700 20px/1.35 var(--sans);color:var(--ink-2)}.b-pulse-hello b{font-weight:400;color:var(--ink)}
.b-pulse-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.b-pulse-card{display:grid;align-content:start;gap:2px;min-height:44px;padding:14px 16px;border-radius:var(--r-card);background:var(--panel,var(--surface));border:1px solid var(--panel-line,var(--hairline));color:var(--ink);text-decoration:none}
.b-pulse-card:hover,.b-pulse-card:focus-visible{border-color:var(--ink);outline:none}
.b-pulse-card strong{font:700 34px/1.1 var(--sans);color:var(--ink)}.b-pulse-label{font-size:13px;font-weight:600;color:var(--ink)}.b-pulse-card small{font-size:12px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.b-pulse-late strong{color:var(--late)}.b-pulse-warn strong{color:var(--ink)}.b-pulse-warn{border-style:dashed}
@media(max-width:1000px){.b-pulse-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* The Pipeline: industries as a row of buttons, a breakdown that folds away. */
.b-industry-bar{margin-bottom:16px}.b-industry-bar button{display:inline-flex;align-items:center;gap:8px}.b-chip-count{font-size:12px;font-weight:600}
details.b-breakdown>summary{list-style:none;cursor:pointer}details.b-breakdown>summary::-webkit-details-marker{display:none}
.b-break-toggle{font-size:12px;font-weight:600;color:var(--ink-2);text-decoration:underline;text-decoration-color:var(--ctrl);text-underline-offset:3px;align-self:center}
details.b-breakdown:not([open])>summary{margin:0}
/* Relationships list: change it where it is. */
.b-cell-select{min-height:30px;max-width:200px;padding:2px 6px;border:1px solid var(--ctrl);border-radius:var(--r-ctl);background:var(--bg);color:var(--ink);font:inherit;font-size:12px}
.b-cell-btn{all:unset;cursor:pointer;display:block;min-height:30px;border-radius:var(--r-ctl);padding:2px 4px;margin:-2px -4px}.b-cell-btn:hover{background:var(--surface-2)}.b-cell-btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.b-cell-btn small{display:block;color:var(--ink-3)}
@media(any-pointer:coarse){.b-cell-select,.b-cell-btn{min-height:44px}}
/* Right-click menu on a row. */
.b-context{position:fixed;z-index:30;display:grid;min-width:220px;padding:6px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-pop);box-shadow:var(--pop-shadow)}
.b-quiet{background:transparent;border:1px dashed var(--late);color:var(--late);font-weight:600}

/* Mark's walkthrough, 31 Oct 2026 23:26. Tokens only (contrast guard).
   "Colour palette, what do we think? ... black looks terrible": the frame around the work is warm sand, not black.
   Gold stays the one solid accent (selected page, primary action). Dark mode uses warm charcoal, never pure black. */
/* 1 Nov 2026: the sand frame and gold accent above are replaced by Silver Ledger (Daybook's look); every colour now
   comes from app.css's tokens, so Solva Connect and Customers read as one product. */
.business{background:var(--frame)}
.business .b-main{background:var(--page);box-shadow:none}
.b-header .btn:not(.primary){background:var(--frame);border-color:var(--frame-line);color:var(--frame-ink)}
.b-header .btn:not(.primary):hover{background:var(--frame-hover);box-shadow:none}
.b-header .btn:not(.primary):hover{background:var(--panel-line)}
.b-sidebar a,.b-sidebar button{transition:background-color .18s var(--ease),color .18s var(--ease)}
.b-sidebar-bottom small{color:var(--frame-muted)}
.b-search input{border-color:var(--panel-line);background:var(--panel)}
.b-search input:focus{border-color:var(--ctrl)}
/* The money summary on Forecasts sat on the old black frame with gold numbers; it is a plain panel now. */
.b-summary{background:var(--panel);color:var(--ink);border:1px solid var(--panel-line)}.b-summary strong{color:var(--ink)}

/* Motion: short, eased, and only where it explains what happened. Reduced motion turns all of it off (rule above). */
@keyframes b-rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes b-pop{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
@keyframes b-fade{from{opacity:0}to{opacity:1}}
@keyframes b-slide{from{opacity:.4;transform:translateX(28px)}to{opacity:1;transform:none}}
@keyframes b-menu{from{opacity:0;transform:scale(.97) translateY(-4px)}to{opacity:1;transform:none}}
.b-main.b-enter>*{animation:b-rise .32s var(--ease) both}
.b-main.b-enter>*:nth-child(2){animation-delay:.03s}.b-main.b-enter>*:nth-child(3){animation-delay:.06s}.b-main.b-enter>*:nth-child(4){animation-delay:.09s}.b-main.b-enter>*:nth-child(n+5){animation-delay:.12s}
#b-editor[open]{animation:b-pop .24s var(--ease)}#b-editor[open]::backdrop{animation:b-fade .24s ease}
#b-editor.b-drawer[open]{animation:b-slide .28s var(--ease)}
.b-context,.b-more-actions[open] .b-menu{animation:b-menu .14s var(--ease);transform-origin:top right}
#b-toast{display:flex;align-items:center;gap:16px;border-radius:var(--r-pop);box-shadow:var(--pop-shadow)}#b-toast[hidden]{display:none}
#b-toast.b-toast-in{animation:b-pop .3s var(--ease)}
.b-toast-action{all:unset;cursor:pointer;font-weight:700;color:var(--bg);text-decoration:underline;text-underline-offset:3px;padding:6px 10px;margin:-6px -8px -6px 0;border-radius:var(--r-ctl);min-height:32px;display:inline-flex;align-items:center}.b-toast-action:hover{background:var(--ink-2)}.b-toast-action:focus-visible{outline:2px solid var(--bg);outline-offset:2px}
.business .btn{transition:background-color .16s var(--ease),border-color .16s var(--ease),transform .12s var(--ease)}.business .btn:active:not(:disabled){transform:translateY(1px)}
.b-pulse-card,.b-break-tile,.b-deal{transition:border-color .18s var(--ease),transform .18s var(--ease),background-color .18s var(--ease)}
.b-pulse-card:hover{transform:translateY(-1px)}
.b-table tbody tr{transition:background-color .12s ease}

/* Delete: a quiet way in, a clear red way out. */
.btn.b-danger{background:var(--danger);border-color:var(--danger);color:var(--on-danger)}.btn.b-danger:hover{filter:brightness(.95)}
.btn.b-danger-quiet{background:transparent;border-color:transparent;color:var(--late);padding-inline:8px}.btn.b-danger-quiet:hover{background:var(--surface-2)}
.b-menu-item.b-menu-danger{color:var(--late);border-top:1px solid var(--hairline);border-radius:0;margin-top:4px}
.b-foot-pair{display:flex;gap:8px;margin-left:auto}.b-editor-foot{flex-wrap:wrap}
#b-editor.b-dialog-narrow{width:min(480px,calc(100vw - 32px))}#b-editor.b-dialog-narrow p{margin:16px 0 0}
.b-row-more{all:unset;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--r-nav);color:var(--ink-3);font-size:18px;line-height:1}
.b-row-more:hover{background:var(--surface-2);color:var(--ink)}.b-row-more:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
@media(any-pointer:coarse){.b-row-more{width:44px;height:44px}}
.b-table td:last-child:has(.b-row-more){width:40px;text-align:right}
@media(max-width:680px){.b-table tr{position:relative}.b-table td:has(>.b-row-more){position:absolute;top:8px;right:0;width:auto}.b-table td:has(>.b-row-more):before{content:none}}

/* Today: who each item is for and where it came from; the lateness in words; a menu to move or remove it. */
.b-next-row{grid-template-columns:auto minmax(0,1fr) auto auto}
.b-next-main .b-next-who{color:var(--ink-3);font-size:12px}
.b-next-when{display:grid;justify-items:end;gap:2px}.b-next-when small{font-size:12px}
.b-next-hint{margin:-2px 0 8px}
.b-tidy{margin:-8px 0 24px}.b-tidy a{color:var(--ink);font-weight:600}
.b-quick-days{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 4px}
@media(max-width:680px){.b-next-row{grid-template-columns:auto minmax(0,1fr) auto}.b-next-when{grid-column:2;justify-items:start;grid-row:2}.b-next-row .b-row-actions{grid-column:3;grid-row:1/3}}

/* Money they have not been quoted: shown, but in grey, so it never reads as revenue. */
.b-list-price{color:var(--ink-3)}.b-list-price small{color:var(--ink-3)}
.b-tile-list strong{color:var(--ink-3)}
.b-to-set{background:transparent;border:1px dashed var(--ctrl);color:var(--ink-2)}
.b-break-stats>div{cursor:help}

/* Board: it says what it is; each column says what it means; empty stages shrink so the deals sit together. */
.b-board-intro{margin:0 0 16px;max-width:80ch}.b-board-intro p{margin:0 0 4px}
.business .b-board{display:flex;gap:12px;overflow-x:auto;padding-bottom:16px;align-items:flex-start;scroll-snap-type:x proximity}
.business .b-board .b-column{flex:1 0 220px;max-width:300px;display:grid;gap:10px;align-content:start;scroll-snap-align:start;min-height:200px;transition:flex-basis .25s var(--ease),background-color .15s ease}
.business .b-board .b-column-empty{flex:0 0 150px}
.business .b-board .b-column-end{flex:0 0 170px;background:transparent;border:1px dashed var(--panel-line)}
.b-board-dragging .b-column{background:var(--tile)}.business .b-board-dragging .b-column-empty{flex-basis:200px}
.b-column-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.b-column-head h2{font-size:14px;margin:0;line-height:1.25}
.b-column-meta{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-3)}.b-column-meta b{color:var(--ink);font-weight:700}
.b-column-means{margin:-4px 0 0;font-size:12px;line-height:1.4;color:var(--ink-3)}
.business .b-column-value{margin:0;font-size:12px;font-weight:600;color:var(--ink-2)}
.b-column-none{margin:0;font-size:12px;color:var(--ink-3)}
.business .b-board .b-deal{margin:0;padding:12px;border-radius:var(--r-card)}.business .b-deal p{margin:4px 0 0}
.b-deal-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.b-deal-top b{font-size:14px;line-height:1.3}
.b-deal-next,.b-deal-owner{font-size:12px}.b-deal:hover{transform:translateY(-1px)}
@media(max-width:680px){.business .b-board .b-column{flex-basis:240px}.business .b-board .b-column-empty{flex-basis:130px}}

/* Delivery: won deals still waiting for a handoff. */
.b-waiting{margin:0 0 24px;padding:16px 18px;border-radius:var(--r-card);background:var(--panel);border:1px solid var(--panel-line)}.b-waiting h2{font:700 22px var(--sans);margin:0 0 4px}

/* Calendar. */
.b-cal-missing{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 16px;padding:12px 16px;border-radius:var(--r-card);background:var(--panel);border:1px dashed var(--ctrl)}.b-cal-missing p{margin:0}
.b-cal-bar{display:flex;align-items:center;justify-content:space-between;gap:12px 20px;flex-wrap:wrap;margin:0 0 12px}
.b-cal-nav{display:flex;align-items:center;gap:8px}.b-cal-nav b{font-weight:600;min-width:200px;text-align:center}
.b-cal-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--ink-2)}.b-cal-key{display:inline-flex;align-items:center;gap:6px}.b-cal-key i{width:12px;height:12px;border-radius:4px;background:var(--primary)}
.b-cal-key[data-person]:nth-of-type(2) i{background:var(--ink)}.b-cal-key-work i{background:color-mix(in srgb,var(--ink) 9%,var(--panel));border:1px solid color-mix(in srgb,var(--ink) 16%,var(--panel))}
.b-cal{display:grid;grid-template-columns:52px minmax(0,1fr);background:var(--panel);border:1px solid var(--panel-line);border-radius:var(--r-card);overflow:hidden}
.b-cal-gutter-head{height:148px;border-bottom:1px solid var(--hairline)}
.b-cal-hours{position:relative;border-right:1px solid var(--hairline)}.b-cal-hours span{position:absolute;right:8px;transform:translateY(-6px);font-size:11px;color:var(--ink-3)}.b-cal-hours span:first-child{transform:none}
.b-cal-days{display:grid;grid-template-columns:repeat(var(--days),minmax(120px,1fr));overflow-x:auto}
.b-cal-day{display:grid;grid-template-rows:44px 84px 20px auto auto;border-right:1px solid var(--hairline);min-width:0}.b-cal-day:last-child{border-right:0}
.b-cal-head{display:flex;align-items:baseline;justify-content:center;gap:6px;padding:12px 4px;border-bottom:1px solid var(--hairline)}.b-cal-head b{font-weight:700}.b-cal-head span{font-size:12px;color:var(--ink-3)}
.b-cal-today .b-cal-head{background:var(--ink);color:var(--bg)}.b-cal-today .b-cal-head span{color:var(--bg)}
.b-cal-steps{display:grid;gap:2px;align-content:start;padding:4px;overflow:auto;border-bottom:1px solid var(--hairline)}
.b-cal-step{display:block;padding:2px 6px;border-radius:5px;font-size:11px;line-height:1.35;background:var(--tile);color:var(--ink);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid var(--panel-line)}.b-cal-step:hover{border-color:var(--ctrl)}
.b-cal-lanes-head{display:flex;font-size:11px;color:var(--ink-3);border-bottom:1px solid var(--hairline)}.b-cal-lanes-head span{flex:1;text-align:center;line-height:20px}
.b-cal-lanes{position:relative;display:flex;background-image:linear-gradient(var(--hairline) 1px,transparent 1px);background-size:100% 44px}
.b-cal-lane{position:relative;flex:1;cursor:copy}.b-cal-lane+.b-cal-lane{border-left:1px dashed var(--hairline)}
.b-cal-work{position:absolute;left:2px;right:2px;border-radius:var(--r-ctl);background:color-mix(in srgb,var(--ink) 9%,var(--panel));border:1px solid color-mix(in srgb,var(--ink) 16%,var(--panel));pointer-events:none;overflow:hidden}.b-cal-work span{display:block;padding:2px 4px;font-size:10px;color:var(--ink-2);line-height:1.2}
.b-cal-event{position:absolute;left:3px;right:3px;display:block;padding:2px 5px;border-radius:var(--r-ctl);font-size:11px;line-height:1.25;text-decoration:none;overflow:hidden;background:var(--primary);color:var(--on-primary);z-index:1;transition:transform .15s var(--ease)}
.b-cal-event:hover{transform:scale(1.02)}.b-cal-event b{display:block;font-weight:700}.b-cal-event span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.b-cal-lane:nth-child(2) .b-cal-event{background:var(--ink);color:var(--bg)}
.b-cal-event.b-cal-done{opacity:.55}
.b-cal-free{padding:6px;font-size:11px;line-height:1.35;border-top:1px solid var(--hairline);min-height:40px;color:var(--ink-2)}.b-cal-free b{color:var(--ink)}
.b-cal-daypick{margin-bottom:12px}
.b-cal-phone .b-cal-days{grid-template-columns:minmax(0,1fr)}
.b-hours{display:grid;gap:0;margin:16px 0}.b-hours-row{display:grid;grid-template-columns:110px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--hairline)}
.b-hours-times{display:grid;gap:6px}.b-hours-range{display:inline-flex;align-items:center;gap:8px}#b-editor .b-hours-range input{width:auto;min-width:118px}
@media(max-width:680px){.b-hours-row{grid-template-columns:1fr auto}.b-hours-row>div{grid-column:1/-1}.b-cal-nav b{min-width:0}.b-cal{grid-template-columns:44px minmax(0,1fr)}}
.b-qty-note{font-weight:400;color:var(--ink-3);font-size:12px}
/* Reduced motion wins over every animation above (Codex review, 1 Nov 2026: the new rules outranked the old one). */
@media(prefers-reduced-motion:reduce){.business .b-main.b-enter>*,.business #b-editor[open],.business #b-editor[open]::backdrop,.business #b-editor.b-drawer[open],.b-context,.business .b-more-actions[open] .b-menu,.business #b-toast.b-toast-in{animation:none!important}.business *,.business .btn,.b-cal-event{transition:none!important}.b-pulse-card:hover,.b-deal:hover,.b-cal-event:hover{transform:none!important}}
/* 1 Nov 2026, Silver Ledger: Daybook's touch floor on a phone, every control at least 44px tall (the bar's 34px controls, the views and the menu). */
@media(max-width:640px){.b-header .btn,.b-tabs button,.b-section-tabs a,.b-sidebar a,.b-sidebar button,.b-search input{min-height:44px}.b-search input{height:44px;font-size:16px}}
