/* Success: the chart owns the full workspace; details are shown only in the modal. */
.app-shell:has(#org-chart-screen:not(.hidden)) { max-width:none; }
#org-chart-screen:not(.hidden) { display:flex; flex-direction:column; height:calc(100dvh - 64px); min-height:600px; gap:24px; }
.org-page-header { display:flex; justify-content:space-between; align-items:center; gap:20px; flex-shrink:0; }
.org-page-header h1 { margin:0; font-size:32px; letter-spacing:-1.1px; font-weight:650; line-height:1.15; }
#org-chart-count { margin:8px 0 0; color:#92a39b; font-size:13px; }
.org-workspace { position:relative; display:flex; flex-direction:column; flex:1; min-height:0; min-width:0; border:1px solid #2a3530; border-radius:18px; overflow:hidden; background:#101714; }
.org-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 20px; border-bottom:1px solid #28322d; flex-shrink:0; background:#151d19; }
.org-search { position:relative; width:min(360px,100%); }
.org-search svg { position:absolute; left:13px; top:12px; width:18px; height:18px; stroke:#91a499; stroke-width:1.7; fill:none; pointer-events:none; }
.org-search input { width:100%; height:42px; padding:0 14px 0 40px; border:1px solid #334139; border-radius:9px; background:#0d1410; color:#ebf2ee; font:inherit; font-size:13px; box-shadow:none; }
.org-search input::placeholder { color:#82958a; }
.org-view-switch { display:flex; padding:3px; border:1px solid #344139; background:#0d1510; border-radius:9px; }
.org-view-switch button { padding:7px 17px; border:0; border-radius:6px; background:transparent; color:#97a99e; font:inherit; font-size:12px; font-weight:600; cursor:pointer; }
.org-view-switch [aria-pressed="true"] { color:#e9f4ee; background:#2b3b31; box-shadow:0 1px 3px #0003; }
#org-chart-message:empty { display:none; }
#org-chart-message { margin:0; padding:10px 20px; color:#b9d3c4; font-size:13px; }
.org-chart-viewport { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; padding:24px; background-image:radial-gradient(#33433888 .8px,transparent .8px); background-size:22px 22px; }
#org-chart-size { position:relative; margin:auto; }
.org-chart-stage { position:relative; transform-origin:top left; }
.org-group-title { position:absolute; color:#8eaa9a; margin:0; font-size:11px; font-weight:600; letter-spacing:1.3px; text-transform:uppercase; }
.org-group-divider { position:absolute; top:14px; bottom:24px; border-left:1px dashed #394c40; }
.org-lines { position:absolute; inset:0; overflow:visible; pointer-events:none; }
.org-lines path { fill:none; stroke-width:1.7; stroke-linejoin:round; stroke-linecap:round; }
.org-line-primary { stroke:#6d947e; }
.org-line-secondary { stroke:#b09cc9; stroke-dasharray:4 6; opacity:.7; }
.org-lines .org-line-selected { stroke-width:2.8; opacity:1; }
.org-node { position:absolute; width:224px; height:136px; border-radius:12px; border:1px solid #3c5042; background:#1a2720; box-shadow:0 4px 14px #0003; transition:border-color .15s,box-shadow .15s; }
.org-node:hover { border-color:#7bae8c; box-shadow:0 6px 20px #0005; }
.org-person-card { display:flex; width:100%; height:106px; padding:17px; gap:12px; text-align:left; background:transparent; border:0; border-radius:11px; color:#f1f6f3; cursor:pointer; align-items:center; }
.org-avatar { display:grid; place-items:center; flex:0 0 42px; width:42px; height:42px; border-radius:50%; background:#355c48; color:#d1eddb; font-size:14px; font-weight:650; letter-spacing:.3px; }
[data-role="chemist"] .org-avatar, .org-avatar[data-role="chemist"] { background:#304d59; color:#c9e5ef; }
[data-role="account_manager"] .org-avatar, .org-avatar[data-role="account_manager"] { background:#55452f; color:#eee0bc; }
[data-role="team_member"] .org-avatar, .org-avatar[data-role="team_member"] { background:#494158; color:#e3d8f0; }
.org-card-copy { display:flex; flex-direction:column; gap:8px; min-width:0; }
.org-card-copy strong { font-size:15px; line-height:1.35; font-weight:600; overflow-wrap:anywhere; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.org-role-badge { display:inline-flex; align-self:flex-start; color:#a8c7b5; font-size:11px; line-height:1.4; font-weight:500; }
.org-person-card[aria-pressed="true"], .org-list-person[aria-pressed="true"] { background:#294534; outline:1px solid #8bc8a0; outline-offset:-1px; }
.org-branch-toggle { position:absolute; bottom:0; left:0; width:100%; height:30px; padding:0 10px; border:0; border-top:1px solid #34493c; background:#19241e; color:#9fbdab; cursor:pointer; font:inherit; font-size:10px; border-radius:0 0 11px 11px; }
.org-node:not(:has(.org-branch-toggle)) { height:106px; }
.org-match { outline:2px solid #bce5ca; outline-offset:4px; }
.org-canvas-footer { display:flex; align-items:center; gap:24px; padding:12px 20px; flex-shrink:0; border-top:1px solid #28372e; background:#151d19; }
.org-legend { display:flex; gap:20px; align-items:center; font-size:11px; color:#9db2a6; }
.org-legend span { display:flex; align-items:center; gap:7px; }
.org-legend i { width:22px; border-top:2px solid #6d947e; }
.org-legend i.org-dotted { border-top:2px dashed #b09cc9; }
.org-text-button { padding:5px; border:0; background:transparent; color:#b2c7ba; cursor:pointer; font:inherit; font-size:11px; }
#org-zoom-controls { display:flex; align-items:center; margin-left:auto; gap:3px; padding:3px; border:1px solid #334238; border-radius:8px; background:#0e1611; }
#org-zoom-controls button { height:28px; min-width:28px; border:0; border-radius:5px; background:transparent; color:#d5e5da; font:inherit; font-size:16px; cursor:pointer; }
#org-zoom-controls button:hover { background:#283c30; }
#org-zoom-controls #org-fit { font-size:11px; padding:0 10px; border-left:1px solid #304136; border-radius:0; margin-left:5px; }
#org-zoom-label { min-width:43px; text-align:center; color:#a8bcb0; font-size:11px; font-variant-numeric:tabular-nums; }
.org-list { flex:1; overflow:auto; min-height:0; padding:8px 24px; }
.org-list-row { display:grid; grid-template-columns:280px 1fr; align-items:center; gap:24px; padding:12px 0; border-bottom:1px solid #2b3c30; }
.org-list-row:last-child { border:0; }
.org-list-person { width:100%; display:flex; align-items:center; gap:14px; background:transparent; border:0; border-radius:10px; text-align:left; padding:10px; color:#eef5f0; cursor:pointer; }
.org-list-row p { margin:0; font-size:12px; color:#a5bbae; line-height:1.7; }
.org-search-results { position:absolute; z-index:10; top:68px; left:20px; width:min(360px,calc(100% - 40px)); max-height:300px; overflow:auto; border:1px solid #425a49; border-radius:10px; padding:8px; background:#18251d; box-shadow:0 12px 30px #0006; }
.org-search-results p { margin:5px 10px 8px; color:#a7beb0; font-size:11px; }
.org-search-result { display:block; width:100%; border:0; text-align:left; padding:10px; border-radius:6px; color:#e0eee5; background:transparent; cursor:pointer; font:inherit; font-size:12px; }
.org-search-result:hover { background:#2d4435; }
.org-empty { padding:30px; color:#9ab2a3; }
body.org-modal-open { overflow:hidden; }
.org-modal-backdrop { position:fixed; inset:0; z-index:950; display:flex; align-items:center; justify-content:center; padding:28px; background:#030b07b8; backdrop-filter:blur(5px); }
.org-person-modal { width:min(680px,100%); max-height:calc(100dvh - 56px); overflow:hidden; border:1px solid #415346; border-radius:18px; background:#162119; box-shadow:0 30px 100px #0009; color:#e9f2ec; }
#org-person-form { display:flex; flex-direction:column; max-height:calc(100dvh - 58px); margin:0; }
.org-modal-header { display:flex; align-items:center; gap:16px; padding:24px 28px; border-bottom:1px solid #304135; flex-shrink:0; }
.org-modal-header .org-avatar { width:52px; height:52px; flex-basis:52px; font-size:18px; }
.org-modal-identity { flex:1; min-width:0; }
.org-modal-header h2 { margin:0 0 6px; font-size:22px; line-height:1.25; letter-spacing:-.5px; overflow-wrap:anywhere; }
.org-modal-header .org-role-badge { font-size:12px; padding:3px 9px; border:1px solid #405b49; border-radius:5px; background:#23382a; }
.org-close-button { display:grid; place-items:center; width:32px; height:32px; padding:0; border:1px solid #3d4d41; border-radius:8px; background:transparent; color:#adc2b4; cursor:pointer; font:inherit; font-size:24px; }
.org-close-button:hover { color:#fff; background:#2c4032; }
.org-modal-body { min-height:0; overflow:auto; padding:24px 28px; }
#org-person-fields { border:0; padding:0; margin:0; min-width:0; display:grid; gap:24px; }
.org-form-section h3, #org-person-fields .org-responsibilities-label { margin:0 0 16px; font-size:14px; font-weight:600; color:#e5eee8; }
.org-reporting-grid { display:grid; grid-template-columns:1fr 1fr; align-items:start; gap:16px; }
#org-person-fields label { display:grid; gap:8px; font-size:12px; font-weight:500; color:#aebfb4; }
#org-person-fields input, #org-person-fields select, #org-person-fields textarea { width:100%; min-width:0; box-sizing:border-box; background:#0e1811; border:1px solid #3b5141; border-radius:8px; color:#e8f1eb; padding:11px 12px; font:inherit; font-size:13px; box-shadow:none; }
#org-person-fields textarea { resize:vertical; min-height:132px; line-height:1.65; font-weight:400; margin-top:4px; }
#org-person-fields textarea::placeholder, #org-person-fields input::placeholder { color:#718c7b; }
#org-person-fields .org-responsibilities-label { margin:0; }
.org-secondary-details { margin-top:18px; border:1px solid #304736; border-radius:8px; }
.org-secondary-details summary { padding:12px 14px; color:#b6cbbb; font-size:12px; cursor:pointer; }
#org-secondary-count { float:right; color:#7e9c88; font-size:11px; }
#org-person-fields .org-secondary-search-label { margin:0 12px 6px; }
.org-secondary-managers { max-height:148px; overflow:auto; padding:0 12px 8px; }
#org-person-fields .org-secondary-managers label { display:flex; align-items:center; gap:10px; padding:8px 2px; font-weight:400; font-size:12px; }
#org-person-fields .org-secondary-managers input { width:16px; height:16px; min-height:16px; margin:0; padding:0; flex:0 0 16px; accent-color:#91cda4; }
#org-person-fields .org-secondary-managers label[hidden], #org-chart-screen .hidden, .org-modal-backdrop.hidden, .org-modal-backdrop .hidden { display:none !important; }
.org-warning { border-left:3px solid #d9b765; padding-left:12px; margin:0 0 20px; color:#e8cb8b; font-size:12px; line-height:1.6; }
.org-modal-footer { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 28px; border-top:1px solid #304135; background:#131e16; flex-shrink:0; }
.org-save-status { min-width:0; }
.org-save-status p { margin:0; font-size:11px; line-height:1.6; color:#829e8c; overflow-wrap:anywhere; }
#org-person-message { color:#b6d5c1; font-size:12px; }
#org-person-actions { display:flex; flex-shrink:0; gap:10px; }
#org-person-actions button { padding:10px 16px; font-size:12px; min-height:38px; }
#org-person-readonly dl { margin:0; display:grid; grid-template-columns:1fr 1fr; gap:10px 24px; }
#org-person-readonly dt { color:#91ad9b; font-size:12px; grid-column:1/-1; margin-top:14px; }
#org-person-readonly dd { margin:0; line-height:1.6; font-size:14px; overflow-wrap:anywhere; grid-column:1/-1; }
.org-view-only { margin:0 0 12px; color:#879f8e; font-size:12px; }
.org-responsibilities-copy { white-space:pre-wrap; }
#org-chart-screen button:focus-visible, #org-chart-screen input:focus-visible, .org-modal-backdrop :focus-visible, .org-chart-viewport:focus-visible { outline:2px solid #add9b9; outline-offset:3px; }
#org-person-heading:focus { outline:none; }
@media (max-width:900px) { #org-chart-screen:not(.hidden) { height:calc(100dvh - 100px); min-height:540px; } }
@media (max-width:600px) {
  #org-chart-screen:not(.hidden) { gap:16px; }
  .org-page-header h1 { font-size:27px; } .org-page-header { gap:12px; }
  .org-toolbar { padding:12px; gap:10px; } .org-search input { font-size:12px; } .org-view-switch button { padding:7px 10px; }
  .org-canvas-footer { padding:10px 12px; gap:8px; flex-wrap:wrap; } .org-legend { gap:12px; } #org-expand-all { margin-left:auto; }
  #org-zoom-controls { margin-left:auto; } .org-chart-viewport { padding:16px; }
  .org-list { padding:8px 12px; } .org-list-row { grid-template-columns:1fr; gap:4px; } .org-list-row p { padding:0 10px 10px; }
  .org-modal-backdrop { padding:12px; } .org-person-modal { max-height:calc(100dvh - 24px); border-radius:14px; } #org-person-form { max-height:calc(100dvh - 26px); }
  .org-modal-header { padding:20px; gap:12px; } .org-modal-header h2 { font-size:20px; } .org-modal-body { padding:20px; }
  .org-reporting-grid { grid-template-columns:1fr; } .org-modal-footer { padding:16px 20px; flex-wrap:wrap; } #org-person-actions { margin-left:auto; }
}
