:root {
    --bt-orange: #F47C20;
    --bt-orange-dark: #D8680F;
    --bt-green: #35A853;
    --bt-green-dark: #278A41;
    --bt-black: #111111;
    --bt-bg: #F4F7FB;
    --bt-white: #FFFFFF;
    --bt-border: #E3E8F0;
    --bt-text-muted: #6B7280;
    --bt-radius: 8px;
    --bt-font: 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
}

* { box-sizing: border-box; }

body {
    font-family: var(--bt-font);
    background: var(--bt-bg);
    color: var(--bt-black);
    font-size: 13.5px;
    margin: 0;
}

/* ---------- Shell layout ---------- */
.bt-shell { display: flex; min-height: 100vh; }

.bt-sidebar {
    width: 232px;
    background: var(--bt-black);
    color: #E7E9EC;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    position: sticky;
    top: 0;
    height: 100vh;
    overflow-y: auto;
}

.bt-brand {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 16px 18px;
    border-bottom: 1px solid rgba(255,255,255,0.08);
}

.bt-brand-mark {
    width: 30px; height: 30px;
    background: var(--bt-orange);
    color: white;
    border-radius: 7px;
    display: flex; align-items: center; justify-content: center;
    font-weight: 800;
    font-size: 15px;
}

.bt-brand-name { font-weight: 700; font-size: 15px; letter-spacing: 0.3px; }
.bt-brand-accent { color: var(--bt-green); }

.bt-nav { padding: 10px 8px; flex: 1; }

.bt-nav-link, .bt-nav-sublink {
    display: flex; align-items: center; gap: 10px;
    color: #C6CAD3;
    text-decoration: none;
    padding: 8px 12px;
    border-radius: 6px;
    font-size: 13px;
    margin-bottom: 2px;
}

.bt-nav-sublink { padding-left: 34px; font-size: 12.5px; }

.bt-nav-link:hover, .bt-nav-sublink:hover { background: rgba(255,255,255,0.06); color: white; }

.bt-nav-link.active, .bt-nav-sublink.active {
    background: var(--bt-orange);
    color: white;
    font-weight: 600;
}

.bt-nav-sublink.disabled, .bt-nav-link.disabled {
    opacity: 0.35;
    cursor: not-allowed;
    pointer-events: none;
}

.bt-nav-group-label {
    display: flex; align-items: center; gap: 10px;
    color: #8B90A0;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 12px 12px 4px;
    font-weight: 700;
}

/* ---------- Main / topbar ---------- */
.bt-main { flex: 1; display: flex; flex-direction: column; min-width: 0; }

.bt-topbar {
    height: 56px;
    background: var(--bt-white);
    border-bottom: 1px solid var(--bt-border);
    display: flex; align-items: center; justify-content: space-between;
    padding: 0 20px;
    position: sticky; top: 0; z-index: 20;
}

.bt-topbar-search {
    display: flex; align-items: center; gap: 8px;
    background: var(--bt-bg);
    border: 1px solid var(--bt-border);
    border-radius: 6px;
    padding: 6px 12px;
    width: 380px;
    color: var(--bt-text-muted);
}

.bt-topbar-search input {
    border: none; background: transparent; outline: none; width: 100%; font-size: 13px;
}

.bt-topbar-right { display: flex; align-items: center; gap: 14px; }

.bt-role-badge {
    background: rgba(53,168,83,0.12);
    color: var(--bt-green-dark);
    font-size: 11px;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 20px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.bt-user-btn {
    display: flex; align-items: center; gap: 8px;
    background: none; border: none;
    font-size: 13px; font-weight: 600;
    padding: 4px;
}

.bt-avatar {
    width: 28px; height: 28px;
    background: var(--bt-orange);
    color: white;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 12px; font-weight: 700;
}

.bt-content { padding: 20px 24px 40px; }

.bt-flash-stack { margin-bottom: 12px; }

/* ---------- Cards ---------- */
.bt-card {
    background: var(--bt-white);
    border: 1px solid var(--bt-border);
    border-radius: var(--bt-radius);
    padding: 16px;
    margin-bottom: 16px;
}

.bt-card-header {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--bt-border);
}

.bt-card-header h6 {
    margin: 0; font-weight: 700; font-size: 13.5px;
    display: flex; align-items: center; gap: 8px;
}

.bt-page-header {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 18px;
}

.bt-page-header h4 { font-weight: 800; margin: 0; font-size: 19px; }
.bt-page-header p { color: var(--bt-text-muted); margin: 2px 0 0; font-size: 12.5px; }

/* ---------- Stat cards ---------- */
.bt-stat-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}

.bt-stat-card {
    background: var(--bt-white);
    border: 1px solid var(--bt-border);
    border-left: 3px solid var(--bt-orange);
    border-radius: var(--bt-radius);
    padding: 14px 16px;
}

.bt-stat-card .bt-stat-value { font-size: 24px; font-weight: 800; line-height: 1.1; }
.bt-stat-card .bt-stat-label { color: var(--bt-text-muted); font-size: 11.5px; margin-top: 4px; text-transform: uppercase; letter-spacing: 0.3px; }
.bt-stat-card.green { border-left-color: var(--bt-green); }
.bt-stat-card.black { border-left-color: var(--bt-black); }

/* ---------- Buttons ---------- */
.bt-btn-primary {
    background: var(--bt-orange); border-color: var(--bt-orange); color: white;
}
.bt-btn-primary:hover { background: var(--bt-orange-dark); border-color: var(--bt-orange-dark); color: white; }

.bt-btn-green { background: var(--bt-green); border-color: var(--bt-green); color: white; }
.bt-btn-green:hover { background: var(--bt-green-dark); border-color: var(--bt-green-dark); color: white; }

/* ---------- Badges ---------- */
.bt-badge {
    font-size: 10.5px; font-weight: 700; padding: 3px 9px; border-radius: 20px;
    text-transform: uppercase; letter-spacing: 0.3px; display: inline-block;
}
.bt-badge-green { background: rgba(53,168,83,0.14); color: var(--bt-green-dark); }
.bt-badge-orange { background: rgba(244,124,32,0.14); color: var(--bt-orange-dark); }
.bt-badge-red { background: rgba(220,53,69,0.12); color: #C82333; }
.bt-badge-gray { background: #EEF1F5; color: #5B6472; }
.bt-badge-blue { background: rgba(13,110,253,0.1); color: #0D6EFD; }

/* inline per-item label editor (assessment template admin) */
.bt-inline-label { display: flex; gap: 6px; align-items: center; }
.bt-inline-label input[type=text] {
    min-width: 200px; border-color: transparent; background: transparent;
    border-radius: 6px; transition: all 0.12s;
}
.bt-inline-label input[type=text]:hover { border-color: var(--bt-border); background: white; }
.bt-inline-label input[type=text]:focus { border-color: var(--bt-orange); background: white; }
.bt-inline-save {
    border: none; background: var(--bt-green); color: white; width: 28px; height: 28px;
    border-radius: 6px; display: flex; align-items: center; justify-content: center;
    flex-shrink: 0; opacity: 0.4; transition: opacity 0.12s;
}
.bt-inline-label:hover .bt-inline-save, .bt-inline-label:focus-within .bt-inline-save { opacity: 1; }
.bt-inline-save:hover { background: var(--bt-green-dark); }

/* ---------- Forms ---------- */
.bt-label { font-size: 11.5px; font-weight: 700; color: #444B57; text-transform: uppercase; letter-spacing: 0.3px; margin-bottom: 3px; display: block; }

.bt-form-section {
    background: var(--bt-white);
    border: 1px solid var(--bt-border);
    border-radius: var(--bt-radius);
    padding: 16px;
    margin-bottom: 14px;
}

.bt-form-section-title {
    font-weight: 700; font-size: 13px; margin-bottom: 12px;
    color: var(--bt-black);
    display: flex; align-items: center; gap: 8px;
}

.bt-form-section-title i { color: var(--bt-orange); }

.bt-master-field { display: flex; gap: 6px; align-items: center; }
.bt-master-field .bt-master-select { flex: 1; }
.bt-master-add-btn {
    background: var(--bt-green); color: white; border: none;
    width: 31px; height: 31px; border-radius: 6px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
}
.bt-master-add-btn:hover { background: var(--bt-green-dark); }

/* ---------- Child header / workspace ---------- */
.bt-child-header {
    background: linear-gradient(135deg, var(--bt-black) 0%, #24262b 100%);
    color: white;
    border-radius: var(--bt-radius);
    padding: 18px 20px;
    display: flex; align-items: center; gap: 16px;
    margin-bottom: 16px;
}

.bt-child-photo {
    width: 56px; height: 56px; border-radius: 50%;
    background: var(--bt-orange);
    display: flex; align-items: center; justify-content: center;
    font-weight: 800; font-size: 20px; flex-shrink: 0;
}

.bt-child-header .bt-pat-id { color: var(--bt-orange); font-weight: 700; font-size: 11.5px; letter-spacing: 0.5px; }
.bt-child-header h5 { margin: 2px 0 6px; font-weight: 800; }
.bt-child-meta { display: flex; gap: 16px; flex-wrap: wrap; font-size: 12px; color: #C6CAD3; }
.bt-child-meta strong { color: white; font-weight: 600; }

.bt-workspace-tabs {
    display: flex; gap: 4px; border-bottom: 1px solid var(--bt-border); margin-bottom: 16px;
    overflow-x: auto;
}
.bt-workspace-tabs a {
    padding: 9px 14px; font-size: 12.5px; font-weight: 600; color: var(--bt-text-muted);
    text-decoration: none; border-bottom: 2px solid transparent; white-space: nowrap;
}
.bt-workspace-tabs a.active { color: var(--bt-orange); border-bottom-color: var(--bt-orange); }

/* ---------- Tables ---------- */
.bt-table { width: 100%; font-size: 12.5px; }
.bt-table th {
    text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: 0.3px;
    color: var(--bt-text-muted); font-weight: 700; padding: 8px 10px; border-bottom: 1px solid var(--bt-border);
}
.bt-table td { padding: 10px; border-bottom: 1px solid #EEF1F5; vertical-align: middle; }
.bt-table tr:hover td { background: #FAFBFD; }

.bt-mini-photo {
    width: 34px; height: 34px; border-radius: 50%;
    background: var(--bt-green); color: white;
    display: flex; align-items: center; justify-content: center;
    font-weight: 700; font-size: 13px;
}

/* ---------- Auth pages ---------- */
.bt-auth-shell {
    min-height: 100vh; display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, #111111 0%, #1c2b22 100%);
}

.bt-auth-card {
    background: white; border-radius: 12px; padding: 32px 30px;
    width: 380px; box-shadow: 0 20px 60px rgba(0,0,0,0.35);
}

.bt-auth-brand { text-align: center; margin-bottom: 20px; }
.bt-auth-brand .bt-brand-mark { margin: 0 auto 10px; width: 44px; height: 44px; font-size: 20px; }
.bt-auth-brand h4 { font-weight: 800; margin: 0; }
.bt-auth-brand p { color: var(--bt-text-muted); font-size: 12px; margin-top: 2px; }

/* ---------- Read-only profile ---------- */
.bt-field-row { display: flex; padding: 7px 0; border-bottom: 1px solid #F1F3F7; font-size: 13px; }
.bt-field-row .bt-field-label { width: 180px; color: var(--bt-text-muted); flex-shrink: 0; }
.bt-field-row .bt-field-value { font-weight: 500; }

/* ---------- Timeline ---------- */
.bt-timeline { position: relative; padding-left: 22px; }
.bt-timeline::before { content: ''; position: absolute; left: 6px; top: 4px; bottom: 4px; width: 2px; background: var(--bt-border); }
.bt-timeline-item { position: relative; margin-bottom: 16px; }
.bt-timeline-item::before {
    content: ''; position: absolute; left: -22px; top: 3px; width: 10px; height: 10px; border-radius: 50%;
    background: var(--bt-orange); border: 2px solid white; box-shadow: 0 0 0 1px var(--bt-border);
}
.bt-timeline-item .bt-timeline-date { font-size: 11px; color: var(--bt-text-muted); }
.bt-timeline-item .bt-timeline-title { font-weight: 700; font-size: 13px; }
.bt-timeline-item .bt-timeline-summary { font-size: 12.5px; color: #4A5160; }

@media (max-width: 900px) {
    .bt-sidebar { position: fixed; left: -240px; z-index: 100; transition: left 0.2s; }
    .bt-sidebar.open { left: 0; }
    .bt-topbar-search { width: 200px; }
}

/* ---------- Assessment questionnaire ---------- */
.bt-q-section {
    background: var(--bt-white);
    border: 1px solid var(--bt-border);
    border-radius: var(--bt-radius);
    margin-bottom: 14px;
    overflow: hidden;
}
.bt-q-section-header {
    display: flex; align-items: center; justify-content: space-between;
    background: linear-gradient(135deg, var(--bt-orange) 0%, var(--bt-orange-dark) 100%);
    color: white; padding: 9px 14px;
}
.bt-q-section-title { display: flex; align-items: center; gap: 10px; min-width: 0; }
.bt-q-section-title h6 { margin: 0; font-weight: 800; font-size: 13.5px; color: white; letter-spacing: 0.3px; }
.bt-q-section-order {
    width: 22px; height: 22px; border-radius: 50%; background: rgba(255,255,255,0.25);
    display: flex; align-items: center; justify-content: center; font-size: 11.5px; font-weight: 800; flex-shrink: 0;
}
.bt-q-section-order-last { background: var(--bt-green); }
.bt-q-section-meta { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.bt-q-rawscore {
    background: var(--bt-black); color: white; border-radius: 6px;
    padding: 4px 10px; font-size: 11px; font-weight: 700; display: inline-flex; gap: 5px; align-items: baseline;
}
.bt-q-rawscore strong { font-size: 14px; font-weight: 800; color: #7BE495; }
.bt-q-rawmax { color: #A8AFBD; font-size: 10.5px; }

.bt-q-body { padding: 0; }
.bt-q-desc { margin: 0; padding: 8px 14px; font-size: 12px; color: var(--bt-text-muted); background: #FAFBFD; border-bottom: 1px solid #F1F3F7; }

/* column header row (5 4 3 2 1 0) */
.bt-q-head {
    display: grid; grid-template-columns: minmax(260px, 1fr) auto; gap: 0 12px;
    padding: 6px 14px; background: #F7F9FC; border-bottom: 1px solid #EEF1F5;
    font-size: 10.5px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.4px; color: var(--bt-text-muted);
}
.bt-q-head-cells { display: grid; grid-template-columns: repeat(var(--cols), 44px); gap: 4px; }
.bt-q-head-cells span { text-align: center; }

/* item row */
.bt-q-row {
    display: grid; grid-template-columns: 34px minmax(260px, 1fr) auto; gap: 0 12px;
    align-items: center; padding: 7px 14px; border-bottom: 1px solid #F1F3F7;
}
.bt-q-row:nth-child(even) { background: #FCFDFE; }
.bt-q-row:hover { background: #FFF9F3; }
.bt-q-num { font-size: 11px; font-weight: 800; color: var(--bt-text-muted); text-align: right; }
.bt-q-text { font-size: 13px; color: #23272F; line-height: 1.35; }
.bt-q-help { font-size: 11px; color: var(--bt-text-muted); margin-top: 2px; }
.bt-q-excluded { font-size: 10px; color: #B26A00; background: #FFF4E0; border-radius: 10px; padding: 1px 7px; margin-left: 6px; font-weight: 700; }

/* quadrant tag (SK/AV/SN/RG) -- colours follow the paper form's icon key */
.bt-q-quad {
    display: inline-block; margin-left: 7px; padding: 1px 7px; border-radius: 9px;
    font-size: 9.5px; font-weight: 800; letter-spacing: 0.6px; color: white;
    vertical-align: 1px; line-height: 1.5;
}
.bt-q-quad-sk { background: var(--bt-orange); }
.bt-q-quad-av { background: #3B5BA5; }
.bt-q-quad-sn { background: var(--bt-green); }
.bt-q-quad-rg { background: #D6336C; }

/* live quadrant tally chips (sticky bar + quadrant transfer boxes) */
.bt-quad-strip { display: inline-flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.bt-quad-chip {
    display: inline-flex; gap: 5px; align-items: baseline;
    padding: 3px 10px; border-radius: 14px; font-size: 10.5px; font-weight: 800;
    letter-spacing: 0.5px; color: white;
}
.bt-quad-chip strong { font-size: 13px; font-weight: 800; }
.bt-quad-chip small { font-weight: 600; opacity: 0.85; font-size: 9.5px; }
.bt-quad-sk { background: var(--bt-orange); }
.bt-quad-av { background: #3B5BA5; }
.bt-quad-sn { background: var(--bt-green); }
.bt-quad-rg { background: #D6336C; }
.bt-q-quadhint {
    margin: 0; padding: 8px 14px; font-size: 12px; color: #4A5160;
    background: #F7F9FC; border-bottom: 1px solid #EEF1F5;
    display: flex; gap: 12px; align-items: center; flex-wrap: wrap;
}
.bt-q-quadhint .bt-quad-chip strong { font-size: 14px; }
.bt-q-quadhint-label { font-size: 10.5px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.3px; color: var(--bt-text-muted); }

.bt-q-cells { display: grid; grid-template-columns: repeat(var(--cols), 44px); gap: 4px; }
.bt-q-cell { position: relative; }
.bt-q-cell input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.bt-q-cell span {
    display: flex; align-items: center; justify-content: center;
    width: 44px; height: 30px; border: 1.5px solid var(--bt-border); border-radius: 7px;
    font-size: 12.5px; font-weight: 700; color: #5A6270; background: white;
    transition: all 0.12s; user-select: none;
}
.bt-q-cell input:checked + span {
    background: var(--bt-orange); border-color: var(--bt-orange-dark); color: white;
    box-shadow: 0 2px 8px rgba(244,124,32,0.35);
}
.bt-q-cell:hover span { border-color: var(--bt-orange); }

/* colourful rating scale: each response value keeps its own hue (warm =
   frequent, cool = rare, gray = does not apply) so a filled grid can be
   eyeballed at a glance, like the paper form's tinted columns. */
.bt-q-cell[data-sv="5"] span { border-color: #F3B3B3; color: #C43D3D; background: #FDF3F3; }
.bt-q-cell[data-sv="4"] span { border-color: #F4C79A; color: #C96A1D; background: #FDF6EE; }
.bt-q-cell[data-sv="3"] span { border-color: #A9DDB2; color: #2E7D42; background: #F3FBF5; }
.bt-q-cell[data-sv="2"] span { border-color: #9AD9D3; color: #1F7A73; background: #EFFAF9; }
.bt-q-cell[data-sv="1"] span { border-color: #AECDF3; color: #2A5FB0; background: #F1F6FE; }
.bt-q-cell[data-sv="0"] span { border-color: #D7DCE5; color: #8A93A3; background: #F7F8FA; }
.bt-q-cell[data-sv="5"]:hover span { border-color: #E04848; }
.bt-q-cell[data-sv="4"]:hover span { border-color: #E8792A; }
.bt-q-cell[data-sv="3"]:hover span { border-color: #35A853; }
.bt-q-cell[data-sv="2"]:hover span { border-color: #2B9A91; }
.bt-q-cell[data-sv="1"]:hover span { border-color: #3B74D1; }
.bt-q-cell[data-sv="0"]:hover span { border-color: #6F7889; }
.bt-q-cell[data-sv="5"] input:checked + span { background: #E04848; border-color: #C43D3D; color: white; box-shadow: 0 2px 8px rgba(224,72,72,0.4); }
.bt-q-cell[data-sv="4"] input:checked + span { background: #E8792A; border-color: #C96A1D; color: white; box-shadow: 0 2px 8px rgba(232,121,42,0.4); }
.bt-q-cell[data-sv="3"] input:checked + span { background: #35A853; border-color: #278A41; color: white; box-shadow: 0 2px 8px rgba(53,168,83,0.4); }
.bt-q-cell[data-sv="2"] input:checked + span { background: #2B9A91; border-color: #1F7A73; color: white; box-shadow: 0 2px 8px rgba(43,154,145,0.4); }
.bt-q-cell[data-sv="1"] input:checked + span { background: #3B74D1; border-color: #2A5FB0; color: white; box-shadow: 0 2px 8px rgba(59,116,209,0.4); }
.bt-q-cell[data-sv="0"] input:checked + span { background: #6F7889; border-color: #59616F; color: white; box-shadow: 0 2px 8px rgba(111,120,137,0.4); }

/* tinted column headers follow the same hues */
.bt-q-head-cells span[data-sv="5"] { color: #C43D3D; }
.bt-q-head-cells span[data-sv="4"] { color: #C96A1D; }
.bt-q-head-cells span[data-sv="3"] { color: #2E7D42; }
.bt-q-head-cells span[data-sv="2"] { color: #1F7A73; }
.bt-q-head-cells span[data-sv="1"] { color: #2A5FB0; }
.bt-q-head-cells span[data-sv="0"] { color: #8A93A3; }

.bt-q-row-simple .bt-q-entry { display: flex; gap: 8px; align-items: center; min-width: 280px; justify-content: flex-end; }
.bt-q-number { width: 90px; text-align: center; font-weight: 700; }
.bt-q-max { font-size: 11px; color: var(--bt-text-muted); font-weight: 700; }
.bt-q-remark { width: 240px; }

/* section comment fill-in */
.bt-q-comment { padding: 10px 14px; border-bottom: 1px solid #F1F3F7; }
.bt-q-comment:last-child { border-bottom: none; }
.bt-q-comment-label { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.3px; color: var(--bt-text-muted); display: block; margin-bottom: 4px; }
.bt-q-bandrow { display: flex; gap: 8px; flex-wrap: wrap; padding: 10px 14px; background: #F7F9FC; }

.bt-q-footerbar { display: flex; gap: 8px; margin: 4px 0 40px; }

@media (max-width: 860px) {
    .bt-q-row { grid-template-columns: 26px 1fr; }
    .bt-q-cells, .bt-q-head-cells { grid-column: 1 / -1; justify-content: start; }
    .bt-q-row-simple .bt-q-entry { grid-column: 1 / -1; justify-content: flex-start; min-width: 0; }
    .bt-q-head { display: none; }
}

.bt-sticky-bar {
    position: sticky; top: 56px; z-index: 15;
    background: var(--bt-white);
    border: 1px solid var(--bt-border);
    border-radius: var(--bt-radius);
    padding: 10px 14px;
    margin-bottom: 14px;
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
    box-shadow: 0 4px 14px rgba(17,17,17,0.06);
}
.bt-progress-wrap { flex: 1; min-width: 0; }
.bt-progress-meta { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; margin-bottom: 5px; }
.bt-progress-label { font-size: 12px; font-weight: 600; display: inline-flex; gap: 6px; align-items: center; }
.bt-progress-score { font-size: 12px; color: var(--bt-orange-dark); font-weight: 700; }
.bt-autosave-status { font-size: 11px; margin-left: auto; }
.bt-progress { height: 6px; background: #EEF1F5; border-radius: 20px; overflow: hidden; }
.bt-progress-fill { height: 100%; background: linear-gradient(90deg, var(--bt-green), var(--bt-orange)); transition: width 0.2s; }
.bt-sticky-actions { display: flex; gap: 8px; flex-shrink: 0; }

.bt-assess-section {
    background: var(--bt-white);
    border: 1px solid var(--bt-border);
    border-radius: var(--bt-radius);
    margin-bottom: 12px;
    overflow: hidden;
}
.bt-assess-section > summary {
    list-style: none; cursor: pointer; padding: 11px 14px;
    display: flex; align-items: center; justify-content: space-between;
    background: #FAFBFD; font-weight: 700; font-size: 13px;
}
.bt-assess-section > summary::-webkit-details-marker { display: none; }
.bt-assess-section > summary::before {
    content: '\25B8'; color: var(--bt-orange); margin-right: 8px; font-weight: 700;
    transition: transform 0.15s;
}
.bt-assess-section[open] > summary::before { content: '\25BE'; }
.bt-assess-section-name { display: inline-flex; align-items: center; gap: 8px; margin-right: auto; }
.bt-assess-section-name i { color: var(--bt-orange); }
.bt-assess-section-meta { display: inline-flex; gap: 6px; align-items: center; }
.bt-assess-section-body { padding: 10px 14px 4px; }

.bt-item-row {
    display: grid;
    grid-template-columns: 38% 1fr;
    gap: 6px 14px;
    padding: 7px 0;
    border-bottom: 1px solid #F1F3F7;
}
.bt-item-label { font-size: 12.5px; font-weight: 600; color: #2A303A; }
.bt-item-help { font-size: 11px; color: var(--bt-text-muted); font-weight: 400; margin-top: 2px; }
.bt-item-control { min-width: 0; }
.bt-item-score { font-size: 10.5px; color: var(--bt-orange-dark); margin-top: 3px; font-weight: 600; }
.bt-item-remark { grid-column: 2; }
.bt-item-remark input { font-size: 11.5px; }

.bt-choice-group { display: flex; gap: 16px; align-items: center; padding-top: 2px; }
.bt-choice { display: inline-flex; gap: 6px; align-items: center; font-size: 12.5px; margin: 0; }
.bt-choice input { margin: 0; }

.bt-assess-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px; }
.bt-assess-tile {
    border: 1px solid var(--bt-border); border-radius: var(--bt-radius);
    padding: 13px 14px; background: var(--bt-white); display: flex; flex-direction: column; gap: 6px;
}
.bt-assess-tile:hover { border-color: var(--bt-orange); box-shadow: 0 3px 12px rgba(244,124,32,0.1); }
.bt-assess-tile-warn { border-color: #F3D9B8; background: #FFFDF8; }
.bt-assess-tile-name { font-weight: 700; font-size: 13px; }
.bt-assess-tile-meta { display: flex; gap: 10px; flex-wrap: wrap; font-size: 11px; color: var(--bt-text-muted); }
.bt-assess-tile-meta i { color: var(--bt-orange); }
.bt-assess-tile-desc { font-size: 11.5px; color: #4A5160; margin: 0; }

