:root { --ink:#062f29; --ink-soft:#53645f; --green:#12483f; --green-2:#1b6d61; --mint:#eaf6ef; --mint-line:#bed7cc; --cream:#f5f0e6; --paper:#fffdf8; --line:#d4dfd7; --warning:#8b5529; --danger:#8c3d36; --shadow:0 10px 28px rgba(6,47,41,.07); }
* { box-sizing:border-box; }
body.ccr-app { margin:0; min-height:100vh; color:var(--ink); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; background:radial-gradient(circle at top left,rgba(220,244,232,.72),transparent 360px),var(--cream); }
button,input,textarea,select { font:inherit; } button { cursor:pointer; } a { color:inherit; text-decoration:none; } [hidden] { display:none!important; }
.pilot-strip { border-bottom:1px solid var(--mint-line); padding:9px 18px; background:#e9f4ef; font-size:.9rem; text-align:center; }
.brand-bar { display:flex; align-items:center; justify-content:space-between; gap:24px; border-bottom:1px solid var(--line); padding:14px max(28px,calc((100vw - 1380px)/2 + 28px)); background:rgba(250,247,239,.92); }
.brand-mark { display:inline-flex; align-items:center; gap:12px; }.brand-mark strong,.brand-mark small { display:block; }.brand-mark strong { font-size:1.25rem; font-weight:900; line-height:1; }.brand-mark small { margin-top:3px; color:var(--ink-soft); font-size:.78rem; font-weight:800; }
.logo-icon { position:relative; width:34px; height:34px; border:2px solid var(--green); border-radius:6px; background:linear-gradient(#fffdf8 0 68%,var(--green) 68%); }.logo-icon::after { position:absolute; right:4px; bottom:4px; width:7px; height:3px; border-radius:999px; background:var(--paper); content:""; }
.brand-links { display:flex; align-items:center; gap:22px; color:var(--ink-soft); font-size:.92rem; font-weight:900; }.brand-links a:hover { color:var(--ink); }.v1-link { border:1px solid var(--mint-line); border-radius:8px; padding:10px 14px; background:var(--paper); }
.app-shell { width:min(1380px,calc(100% - 36px)); margin:0 auto; padding:34px 0 30px; }.app-header { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:20px; }.app-header h1 { max-width:900px; margin:8px 0 0; font-size:clamp(2.25rem,4vw,4.25rem); font-weight:900; line-height:.98; }.app-header p { max-width:760px; margin:15px 0 0; color:#465b55; font-size:1.04rem; line-height:1.5; }
.dashboard-home { display:grid; gap:24px; }.dashboard-home__header { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; padding:18px 2px 4px; }.dashboard-home__header h1 { margin:7px 0 10px; font-size:clamp(2.35rem,5vw,4.4rem); line-height:.98; }.dashboard-home__header p { max-width:680px; margin:0; color:var(--ink-soft); font-size:1.05rem; line-height:1.5; }.dashboard-home__grid { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(280px,.85fr); gap:20px; }.dashboard-panel { padding:24px; }.dashboard-panel h2,.dashboard-section-heading h2,.dashboard-legacy h2 { margin:0; }.dashboard-panel>p { margin:10px 0 20px; }.dashboard-summary-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:0 0 22px; }.dashboard-summary-list div { border:1px solid var(--line); border-radius:8px; padding:13px 14px; background:#fbfaf6; }.dashboard-summary-list dt { color:var(--ink-soft); font-size:.76rem; font-weight:800; }.dashboard-summary-list dd { margin:4px 0 0; font-weight:900; }.dashboard-panel--privacy { border-top:4px solid var(--green-2); }.dashboard-panel--privacy[data-tone="blocked"],.dashboard-panel--privacy[data-tone="changed"] { border-top-color:#a84f38; }.dashboard-panel--privacy[data-tone="checking"] { border-top-color:#b27d26; }.dashboard-tools { display:grid; gap:14px; }.dashboard-section-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; }.dashboard-section-heading p { margin:0; color:var(--ink-soft); }.dashboard-tool-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }.dashboard-tool-card { display:grid; grid-template-columns:auto 1fr; gap:16px; padding:22px; }.dashboard-tool-card h3 { margin:2px 0 7px; font-size:1.2rem; }.dashboard-tool-card p { margin:0 0 12px; }.dashboard-tool-card .button { grid-column:2; justify-self:start; }.dashboard-tool-card__icon { display:grid; place-items:center; width:46px; height:46px; border-radius:11px; background:#e6f3ed; color:var(--green); font-size:.85rem; font-weight:950; }.dashboard-tool-card[data-ready="false"] { background:#f7f6f2; box-shadow:none; }.dashboard-tool-card[data-ready="false"] .dashboard-tool-card__icon { background:#ecebe6; color:#67736f; }.tool-readiness { display:block; color:var(--green-2); font-size:.85rem; font-weight:900; }.dashboard-tool-card[data-ready="false"] .tool-readiness { color:#76584d; }.dashboard-legacy { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:20px 22px; box-shadow:none; }.dashboard-legacy p { max-width:760px; margin:7px 0 0; }.dashboard-legacy .button { flex:0 0 auto; }.editor-view-navigation { display:flex; justify-content:flex-start; margin-bottom:16px; }
.eyebrow { display:block; margin-bottom:5px; color:var(--green-2); font-size:.7rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }.privacy-badge,.status-badge,.count-badge { flex:0 0 auto; border:1px solid var(--mint-line); border-radius:999px; padding:8px 12px; background:#eef8f3; font-size:.82rem; font-weight:900; }
.privacy-banner { border:1px solid var(--line); border-radius:9px; margin-bottom:16px; padding:16px 19px; background:rgba(255,253,248,.86); box-shadow:0 8px 24px rgba(6,47,41,.04); }.privacy-banner h2 { margin:0; font-size:1.06rem; }.privacy-banner p { margin:6px 0 0; color:var(--ink-soft); font-size:.92rem; line-height:1.45; }
.card { border:1px solid var(--line); border-radius:9px; background:rgba(255,253,248,.96); box-shadow:var(--shadow); }.capability-card,.workspace-card,.form-card { padding:22px; }.card h2 { margin:0; font-size:1.3rem; }.card p { color:var(--ink-soft); line-height:1.45; }
.notice { border:1px solid #dfc38a; border-radius:8px; margin:0 0 16px; padding:13px 15px; color:var(--warning); background:#fff7dc; font-size:.92rem; line-height:1.4; }.notice.serious { border-color:#e0b8b3; color:var(--danger); background:#fff3f1; }
.workspace-layout,.record-screen { display:grid; gap:16px; }.section-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }.supporting-copy { max-width:900px; font-size:.89rem; }.status-badge.connected { border-color:#9bc9b2; color:#155e46; background:#e9f8ef; }.status-badge.required { border-color:#e5ca8e; color:var(--warning); background:#fff6dc; }.status-badge.denied { border-color:#e0b8b3; color:var(--danger); background:#fff2f0; }
.button-row { display:flex; flex-wrap:wrap; gap:9px; }.button { display:inline-flex; align-items:center; justify-content:center; min-height:42px; border:1px solid var(--mint-line); border-radius:8px; padding:0 16px; font-weight:900; }.button.primary { border-color:var(--green); color:var(--paper); background:var(--green); }.button.primary:hover { background:#0b3831; }.button.secondary { color:var(--ink); background:var(--paper); }.button.secondary:hover,.button.quiet:hover { border-color:var(--green); background:var(--mint); }.button.quiet { color:var(--ink-soft); background:transparent; }.button.danger { border-color:#e2c5c1; color:var(--danger); background:#fff8f7; }.button:disabled,input:disabled,textarea:disabled { cursor:not-allowed; opacity:.62; }
.record-start-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }.form-card { display:grid; align-content:start; gap:10px; }.form-card p { min-height:42px; margin:2px 0 4px; }
label { color:var(--ink); font-size:.84rem; font-weight:900; } input,textarea,select { width:100%; border:1px solid var(--mint-line); border-radius:8px; padding:9px 11px; color:var(--ink); background:var(--paper); outline:none; } input,select { min-height:42px; } textarea { min-height:104px; line-height:1.45; resize:vertical; } input:focus,textarea:focus,select:focus { border-color:var(--green-2); box-shadow:0 0 0 3px rgba(27,109,97,.15); }
.record-summary { display:grid; grid-template-columns:minmax(210px,1fr) auto minmax(240px,300px); gap:18px; align-items:center; padding:18px 20px; }.record-heading { min-width:0; }.record-summary h2 { overflow-wrap:anywhere; font-size:1.65rem; }.record-summary p { margin:5px 0 0; }.summary-stats { display:grid; grid-template-columns:repeat(2,minmax(105px,1fr)); gap:7px; margin:0; }.summary-stats div { border:1px solid var(--line); border-radius:8px; padding:9px 10px; background:var(--paper); }.summary-stats dt { color:var(--ink-soft); font-size:.7rem; font-weight:900; }.summary-stats dd { margin:4px 0 0; font-size:.88rem; font-weight:900; }.summary-actions { display:grid; gap:7px; }.summary-actions p { margin:0; font-size:.79rem; }.folder-hint { border-radius:7px; padding:7px 9px; background:var(--mint); overflow-wrap:anywhere; }
.read-only-banner { display:flex; align-items:center; justify-content:space-between; gap:16px; border:1px solid #dfc38a; border-radius:9px; padding:13px 16px; color:var(--warning); background:#fff7dc; }.read-only-banner strong,.read-only-banner span { display:block; }.read-only-banner span { margin-top:4px; font-size:.86rem; line-height:1.4; }
.privacy-status { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:16px; align-items:start; border:2px solid #d2b76f; border-radius:10px; padding:19px 20px; color:#5e4510; background:#fff8df; box-shadow:var(--shadow); }
.privacy-status__icon { display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:rgba(255,255,255,.72); font-size:1.25rem; }
.privacy-status h2 { margin:0; color:inherit; font-size:1.35rem; }.privacy-status p { margin:6px 0 0; color:inherit; line-height:1.45; }.privacy-status .eyebrow { color:inherit; }
.privacy-status__actions { display:grid; justify-items:end; gap:10px; }.privacy-status__badge { border:1px solid currentColor; border-radius:999px; padding:7px 10px; font-size:.78rem; font-weight:900; }
.privacy-status__counts { font-size:.84rem; font-weight:900; }.privacy-status--verifying,.privacy-status--checking { border-color:#8eaaa2; color:#294f47; background:#edf6f3; }
.privacy-status--checking .privacy-status__icon { animation:privacy-pulse 1s ease-in-out infinite alternate; }
.privacy-status--ready { border-color:#5a9c7a; color:#104f39; background:#e7f6ed; }.privacy-status--ready .privacy-status__icon { background:#d1eddd; }
.privacy-status--changed,.privacy-status--blocked { border-color:#a92f2f; color:#751e1e; background:#fff0ee; box-shadow:0 10px 28px rgba(117,30,30,.12); }
.privacy-status--changed .privacy-status__icon,.privacy-status--blocked .privacy-status__icon { background:#ffd9d5; }
.privacy-findings { grid-column:2/-1; border-top:1px solid currentColor; margin-top:4px; padding-top:15px; }.privacy-findings__heading { display:flex; justify-content:space-between; gap:12px; }.privacy-findings h3 { margin:0; font-size:1.05rem; }.privacy-findings__heading p { font-size:.8rem; }
.privacy-finding-list { display:grid; gap:8px; margin:12px 0 0; padding:0; list-style:none; }.privacy-finding { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:center; border:1px solid rgba(117,30,30,.24); border-radius:8px; padding:11px 12px; background:rgba(255,255,255,.72); }.privacy-finding--warning { border-color:#c39b46; color:#604a16; }.privacy-finding strong,.privacy-finding span { display:block; }.privacy-finding__location { margin-top:3px; font-size:.78rem; }.privacy-finding__issue { margin-top:5px; font-size:.86rem; font-weight:700; }.privacy-finding__severity { font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; }
.privacy-invalidation-notice { position:sticky; z-index:8; top:12px; display:flex; align-items:center; justify-content:space-between; gap:18px; border:2px solid #9f2929; border-radius:10px; padding:16px 18px; color:#6e1717; background:#fff5f3; box-shadow:0 14px 34px rgba(90,18,18,.2); }.privacy-invalidation-notice strong { font-size:1.05rem; }.privacy-invalidation-notice p { margin:5px 0 0; line-height:1.45; }
.privacy-target-highlight { animation:privacy-target 1.8s ease-out; }
@keyframes privacy-pulse { to { transform:scale(1.08); } }
@keyframes privacy-target { 0%,45% { box-shadow:0 0 0 4px rgba(169,47,47,.28); border-color:#a92f2f; } 100% { box-shadow:0 0 0 0 rgba(169,47,47,0); } }
.class-details { padding:0 18px 17px; }.class-details summary { cursor:pointer; padding:16px 0; }.class-details summary strong { font-size:1.08rem; }.inline-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)) auto; gap:11px; align-items:end; }.inline-form div { display:grid; gap:6px; }
.editor-workspace { display:grid; grid-template-columns:270px minmax(0,1fr); gap:16px; align-items:start; }.pupil-sidebar { position:sticky; top:12px; max-height:calc(100vh - 24px); padding:17px; overflow:auto; }.search-label { display:block; margin:15px 0 6px; }.empty-state,.large-empty-state { border:1px dashed var(--mint-line); border-radius:8px; margin-top:12px; padding:16px; color:var(--ink-soft); text-align:center; }.pupil-list { display:grid; gap:7px; margin:12px 0 0; padding:0; list-style:none; }.pupil-select { width:100%; min-width:0; border:1px solid var(--line); border-radius:8px; padding:10px 11px; color:var(--ink); background:var(--paper); text-align:left; }.pupil-select:hover { border-color:var(--green-2); }.pupil-select.selected { border-color:var(--green); background:var(--mint); box-shadow:inset 4px 0 var(--green); }.pupil-select strong,.pupil-select span { display:block; overflow:hidden; text-overflow:ellipsis; }.pupil-select strong { overflow-wrap:anywhere; }.pupil-select span { margin-top:3px; color:var(--ink-soft); font-size:.76rem; }.count-badge { padding:5px 9px; }
.add-pupil-form { display:grid; gap:7px; border-top:1px solid var(--line); margin-top:16px; padding-top:15px; }.add-pupil-form h3 { margin:0 0 4px; font-size:1rem; }.add-pupil-form p { margin:2px 0 4px; font-size:.77rem; }
.pupil-editor { min-width:0; padding:20px; }.large-empty-state { min-height:330px; display:grid; place-content:center; margin:0; }.large-empty-state h2 { margin:2px 0; }.pupil-editor-header { display:flex; justify-content:space-between; gap:16px; border-bottom:1px solid var(--line); padding-bottom:16px; }.pupil-editor-header h2 { overflow-wrap:anywhere; font-size:1.55rem; }.pupil-editor-header p { margin:4px 0 0; }.identity-grid { display:grid; grid-template-columns:repeat(3,minmax(120px,1fr)) auto; gap:10px; align-items:end; margin:16px 0; }.identity-grid>div { display:grid; gap:6px; }.system-detail { grid-column:1/-2; border:1px solid var(--line); border-radius:8px; padding:10px; }.system-detail summary { cursor:pointer; font-size:.82rem; font-weight:900; }.system-detail>label { display:block; margin:10px 0 6px; }.pseudonym-field>div { display:grid; grid-template-columns:1fr auto; gap:6px; }.pseudonym-field small { display:block; margin-top:5px; color:var(--ink-soft); font-size:.72rem; }
.readiness-explanation { border:1px solid var(--mint-line); border-radius:8px; padding:11px 13px; background:var(--mint); }.readiness-explanation strong { font-size:.85rem; }.readiness-explanation p { margin:3px 0 0; font-size:.79rem; }
.layer-tabs { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:5px; margin:15px 0 0; }.layer-tab { min-width:0; border:1px solid var(--line); border-radius:8px 8px 0 0; padding:9px 8px; color:var(--ink); background:#f6f4ed; text-align:left; }.layer-tab span,.layer-tab small { display:block; }.layer-tab span { font-weight:900; }.layer-tab small { margin-top:3px; color:var(--ink-soft); font-size:.68rem; }.layer-tab.selected { border-color:var(--green); color:var(--paper); background:var(--green); }.layer-tab.selected small { color:#dceee7; }
.layer-panel { border:1px solid var(--line); border-radius:0 8px 8px; padding:17px; background:#fffefa; }.layer-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }.layer-heading h3 { margin:0; font-size:1.25rem; }.readiness-badge { border:1px solid var(--line); border-radius:999px; padding:7px 10px; color:var(--ink-soft); background:#f3f1ea; font-size:.78rem; font-weight:900; }.readiness-useful,.readiness-strong { border-color:#9bc9b2; color:#155e46; background:#e9f8ef; }.editor-field-group { border-top:1px solid var(--line); margin-top:16px; padding-top:2px; }.editor-field-group h4 { margin:14px 0 0; font-size:1rem; }.field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; margin-top:15px; }.term-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.specialist-detail { border:1px solid var(--mint-line); border-radius:8px; padding:12px; background:var(--mint); }.specialist-detail summary { cursor:pointer; font-weight:900; }.field-group { min-width:0; }.field-group label { display:flex; justify-content:space-between; gap:8px; margin-bottom:6px; }.optional-label { color:var(--ink-soft); font-size:.67rem; font-weight:700; }.helper-text { display:block; margin-top:5px; color:var(--ink-soft); font-size:.73rem; line-height:1.35; }.field-warnings p { border-left:3px solid #b97832; margin:7px 0 0; padding:6px 8px; color:var(--warning); background:#fff7dc; font-size:.75rem; line-height:1.35; }
.workspace-overview { padding:19px; }.workspace-overview>p { margin:7px 0 13px; font-size:.84rem; }.overview-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:7px; }.overview-grid div { border:1px solid var(--line); border-radius:8px; padding:10px; background:var(--paper); }.overview-grid strong,.overview-grid span { display:block; }.overview-grid span { margin-top:5px; color:var(--ink-soft); font-size:.74rem; line-height:1.35; }
.ai-tools-panel { padding:19px 20px; }.ai-tools-panel>p { margin:7px 0 2px; font-size:.88rem; }.ai-tools-panel .future-tools:first-of-type { margin-top:12px; }
.future-tools { display:flex; align-items:center; gap:9px; border-top:1px solid var(--line); margin-top:15px; padding-top:14px; }.future-tools div { margin-right:auto; }.future-tools strong,.future-tools span { display:block; }.future-tools span { margin-top:3px; color:var(--ink-soft); font-size:.76rem; }.future-tools button { min-height:36px; }.future-tools button:not(:disabled) { cursor:pointer; }
.privacy-footnote { margin-top:20px; padding:0 4px; color:var(--ink-soft); font-size:.83rem; line-height:1.5; }.privacy-footnote a { text-decoration:underline; }
@media (max-width:1100px) { .dashboard-home__grid { grid-template-columns:1fr; }.record-summary { grid-template-columns:1fr auto; }.summary-actions { grid-column:1/-1; grid-template-columns:auto 1fr; align-items:center; }.summary-actions p { grid-column:2; }.identity-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.overview-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:820px) { .dashboard-tool-grid { grid-template-columns:1fr; }.brand-bar,.app-header,.record-summary { align-items:stretch; }.record-summary { grid-template-columns:1fr; }.summary-actions,.editor-workspace { grid-template-columns:1fr; }.summary-actions p { grid-column:auto; }.pupil-sidebar { position:static; max-height:none; }.pupil-list { grid-template-columns:repeat(2,minmax(0,1fr)); }.layer-tabs { grid-template-columns:repeat(2,minmax(0,1fr)); }.layer-tab { border-radius:8px; }.field-grid { grid-template-columns:1fr; }.term-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.overview-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:620px) { .app-shell { width:min(100% - 20px,600px); padding-top:26px; }.dashboard-home__header,.dashboard-section-heading,.dashboard-legacy,.brand-bar,.app-header,.pupil-editor-header,.read-only-banner,.future-tools,.privacy-invalidation-notice { flex-direction:column; align-items:stretch; }.dashboard-summary-list { grid-template-columns:1fr; }.dashboard-tool-card { grid-template-columns:auto 1fr; }.dashboard-legacy .button { align-self:flex-start; }.brand-bar { padding:13px 15px; }.brand-links { flex-wrap:wrap; gap:12px; }.app-header h1 { font-size:clamp(2.1rem,11vw,3.3rem); }.record-start-grid,.inline-form,.identity-grid,.overview-grid,.pupil-list,.term-grid,.privacy-status { grid-template-columns:1fr; }.privacy-status__actions { justify-items:stretch; }.privacy-findings { grid-column:auto; }.system-detail { grid-column:auto; }.summary-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }.layer-panel { border-radius:8px; }.overview-grid { grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce) { .privacy-status--checking .privacy-status__icon,.privacy-target-highlight { animation:none; } }
.setup-card { padding: 1.5rem; }
.setup-route-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: .75rem; margin: 1rem 0; }
.setup-route { min-height: 4rem; background: var(--paper, #fff); border: 1px solid #c9c1ae; color: inherit; }
.demo-setup-route { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem 1rem; border: 1px dashed #b9ad94; border-radius: 10px; background: #faf8f2; }
.demo-setup-route div { display: grid; gap: .2rem; }
.demo-setup-route span { color: var(--muted, #625f57); font-size: .92rem; }
@media (max-width: 640px) { .demo-setup-route { align-items: stretch; flex-direction: column; } }
.setup-details, .setup-preview { border-top: 1px solid #ddd4c0; margin-top: 1.25rem; padding-top: 1.25rem; }
.setup-details textarea { width: 100%; resize: vertical; }
.preview-errors p { color: #8b1e1e; font-weight: 700; }
.preview-warnings p { color: #765700; }
.setup-commit-notice { border: 1px solid #e0b8b3; border-radius: 8px; margin: .9rem 0; padding: .75rem .85rem; color: var(--danger); background: #fff3f1; font-size: .88rem; font-weight: 700; line-height: 1.4; }
.preview-pupils { max-height: 22rem; overflow: auto; padding-left: 1.5rem; }
.workspace-choice { display: flex; justify-content: space-between; gap: 1rem; align-items: center; border-top: 1px solid #ddd4c0; padding: .8rem 0; }
.target-editor { grid-column: 1 / -1; }
.target-source-list { display: grid; gap: .75rem; margin-top: .8rem; }
.target-source-row { border: 1px solid var(--border, #d8d5cd); border-radius: 10px; padding: .75rem; }
.target-source-row legend { font-size: .9rem; font-weight: 600; padding: 0 .25rem; }
.segmented-control { display: inline-flex; flex-wrap: wrap; border: 1px solid var(--border, #c9c5ba); border-radius: 8px; overflow: hidden; }
.segmented-control label { cursor: pointer; margin: 0; }
.segmented-control input { position: absolute; opacity: 0; pointer-events: none; }
.segmented-control span { display: block; padding: .45rem .75rem; border-right: 1px solid var(--border, #c9c5ba); background: #fff; }
.segmented-control label:last-child span { border-right: 0; }
.segmented-control input:checked + span { background: #18392f; color: #fff; }
.segmented-control input:focus-visible + span { outline: 3px solid #d2a94d; outline-offset: -3px; }

/* Shared product chrome: match the established tool shell without reviving the
   legacy spreadsheet workflow. */
.ccr-topbar { position:sticky; top:0; z-index:20; }
.ccr-topbar__actions { display:flex; align-items:center; gap:18px; }
.ccr-topbar .cb-topnav { gap:18px; }
.ccr-topbar .cb-topnav button { min-height:0; padding:0; color:var(--cb-muted); background:transparent; border:0; font:inherit; font-weight:650; }
.ccr-topbar .cb-topnav button:hover { color:var(--cb-green); text-decoration:underline; text-underline-offset:4px; }
.cb-context-pill { border:1px solid var(--cb-border-strong); border-radius:999px; padding:6px 10px; color:var(--cb-chalkboard-deep); background:var(--cb-mint-soft); font-size:.82rem; font-weight:800; white-space:nowrap; }
.dashboard-tool-card { min-height:220px; }
.dashboard-tool-card .button { align-self:end; }
.dashboard-tool-card__icon { width:52px; height:52px; border-radius:14px; color:#fff; background:linear-gradient(145deg,#1b6d61,#12483f); box-shadow:0 8px 18px rgba(18,72,63,.2); }
.dashboard-tool-card__icon span { display:grid; place-items:center; width:35px; height:35px; border:1px solid rgba(255,255,255,.58); border-radius:9px; }
.dashboard-tool-card__icon--reports { background:linear-gradient(145deg,#476b9d,#244c7d); }
.dashboard-tool-card__icon--planner { background:linear-gradient(145deg,#8a6e38,#5b451f); }
.dashboard-tool-card__icon--mapper { background:linear-gradient(145deg,#39796d,#19584d); }
.dashboard-tool-card__icon--rota { background:linear-gradient(145deg,#8e6047,#643f2d); }
.dashboard-tool-card[data-ready="false"] .dashboard-tool-card__icon { background:#8a938f; box-shadow:none; }
@media (max-width:620px) { .ccr-topbar__actions { align-items:stretch; flex-direction:column; gap:8px; }.ccr-topbar .cb-topnav { justify-content:flex-start; gap:12px; }.dashboard-tool-card { min-height:0; } }
