:root{--bg:#f8fafc;--surface:#fff;--border:#e5e7eb;--border-strong:#d1d5db;--text:#111827;--text-muted:#6b7280;--accent:#4f46e5;--accent-soft:#eef2ff;--danger:#dc2626;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:var(--text);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.app-shell{flex-direction:column;height:100vh;display:flex}.toolbar{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:10px 16px;display:flex}.toolbar-brand{color:var(--text);letter-spacing:-.01em;align-items:center;gap:10px;font-size:14px;font-weight:600;display:flex}.toolbar-dot{width:10px;height:10px;box-shadow:0 0 0 3px var(--accent-soft);background:linear-gradient(135deg,#6366f1,#ec4899);border-radius:50%}.toolbar-actions{align-items:center;gap:8px;display:flex}.toolbar-divider{background:var(--border);width:1px;height:20px;margin:0 4px}.toolbar-slider{color:#475569;white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:flex}.toolbar-slider input[type=range]{accent-color:#6366f1;cursor:pointer;width:80px}.toolbar-slider span:last-child{text-align:right;font-variant-numeric:tabular-nums;min-width:36px}.toolbar-popover-wrap{position:relative}.toolbar-layout-popover{z-index:100;background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:10px;min-width:220px;padding:12px 16px;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 4px 16px #0000001f}.toolbar-layout-popover .toolbar-slider{width:100%}.toolbar-layout-popover .toolbar-slider input[type=range]{flex:1;width:auto}.toolbar-color{color:#475569;white-space:nowrap;align-items:center;gap:5px;font-size:12px;display:flex;position:relative}.toolbar-color-swatch{border:1px solid var(--border-strong);cursor:pointer;border-radius:4px;flex-shrink:0;width:22px;height:22px;padding:0}.toolbar-color-popover{z-index:100;background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-direction:column;align-items:center;gap:8px;padding:10px;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 4px 16px #0000001f}.toolbar-color-popover input[type=color]{cursor:pointer;border:none;border-radius:4px;width:120px;height:100px;padding:0}.toolbar-color-hex{border:1px solid var(--border-strong);text-align:center;width:88px;color:var(--text);background:var(--surface);border-radius:4px;padding:4px 6px;font-family:monospace;font-size:12px}.shape-select{font:inherit;border:1px solid var(--border);color:#1e293b;cursor:pointer;background:#fff;border-radius:6px;outline:none;padding:4px 8px;font-size:13px}.shape-select:focus{border-color:#6366f1;box-shadow:0 0 0 2px #6366f126}button{font:inherit;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;border-radius:6px;padding:6px 12px;font-size:13px;font-weight:500;transition:background .12s,border-color .12s,box-shadow .12s}button:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}button.ghost{background:0 0;border-color:#0000}button.ghost:hover:not(:disabled){background:var(--accent-soft)}.app-body{flex:1;min-height:0;display:flex}.org-chart-wrap{flex:1;min-height:0;position:relative;overflow:hidden}.org-chart-canvas{-webkit-user-select:none;user-select:none;width:100%;height:100%;overflow:hidden}.fit-btn{z-index:1;position:absolute;bottom:16px;right:16px;box-shadow:0 4px 10px #11182714}.joint-element.org-card-hover rect[joint-selector=body]{stroke:var(--accent);stroke-width:1.5px;filter:drop-shadow(0 2px 6px #4f46e538)}.joint-element.org-card-selected rect[joint-selector=body]{stroke:var(--accent);stroke-width:2px;filter:drop-shadow(0 3px 8px #4f46e54d)}.joint-element rect[joint-selector=chevronBg]:hover{fill:#c7d2fe}.side-panel{background:var(--surface);border-left:1px solid var(--border);flex-shrink:0;width:320px;padding:20px;overflow-y:auto}.side-panel-empty{text-align:center;justify-content:center;align-items:center;display:flex}.empty-hint h3{color:var(--text);margin:0 0 8px;font-size:15px}.empty-hint p{color:var(--text-muted);margin:0 0 12px;font-size:13px}.empty-hint ul{text-align:left;color:var(--text-muted);margin:0;padding-left:18px;font-size:12px;line-height:1.7}.side-panel-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.side-panel-header h3{margin:0;font-size:15px;font-weight:600}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field>span{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:11px;font-weight:600}.field input,.field select{font:inherit;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:6px;padding:8px 10px;font-size:13px}.field input:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.avatar-preview{border:3px solid var(--surface);width:112px;height:112px;box-shadow:0 0 0 1px var(--border), 0 4px 10px #1118270d;border-radius:50%;justify-content:center;align-items:center;margin:4px auto 18px;display:flex;overflow:hidden}.avatar-preview-clickable{cursor:pointer;position:relative}.avatar-upload-overlay{opacity:0;color:#fff;letter-spacing:.03em;pointer-events:none;background:#00000073;border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:600;transition:opacity .15s;display:flex;position:absolute;inset:0}.avatar-preview-clickable:hover .avatar-upload-overlay,.avatar-preview-clickable:focus .avatar-upload-overlay{opacity:1}.avatar-preview img{object-fit:cover;width:100%;height:100%;display:block}.avatar-preview svg{display:block}.photo-picker{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.photo-option{aspect-ratio:1;background:var(--bg);cursor:pointer;border:2px solid #0000;border-radius:50%;justify-content:center;align-items:center;width:100%;padding:0;transition:border-color .12s,transform .12s,box-shadow .12s;display:flex;overflow:hidden}.photo-option:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft);color:inherit;transform:scale(1.04)}.photo-option.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.photo-option.loading{opacity:.5}.photo-option img{object-fit:cover;width:100%;height:100%;display:block}.photo-option svg{width:70%;height:70%}.crop-modal-backdrop{z-index:1000;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.crop-modal{background:var(--surface);border-radius:14px;flex-direction:column;gap:12px;width:300px;padding:20px;display:flex;box-shadow:0 24px 48px #0000004d}.crop-modal-header{justify-content:space-between;align-items:center;font-size:14px;font-weight:600;display:flex}.crop-canvas-wrap{justify-content:center;display:flex}.crop-canvas{touch-action:none;-webkit-user-select:none;user-select:none;border-radius:50%;display:block}.crop-hint{text-align:center;color:var(--muted,#9ca3af);margin:0;font-size:11px}.crop-modal-actions{justify-content:flex-end;gap:8px;display:flex}button.primary{background:var(--accent,#6366f1);color:#fff;cursor:pointer;border:none;border-radius:7px;width:110px;margin:10px 1px;padding:7px 16px;font-size:13px;font-weight:600}button.primary:hover:not(:disabled){filter:brightness(1.1)}button.primary:disabled{opacity:.5;cursor:not-allowed}.mono{background:var(--bg);border:1px solid var(--border);color:var(--text-muted);border-radius:4px;padding:6px 8px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:12px}.muted{color:var(--text-muted);font-size:12px}.report-list{margin:0;padding:0;font-size:13px;line-height:1.6;list-style:none}.report-list li{border-radius:4px;padding:6px 8px}.report-list li:nth-child(odd){background:var(--bg)}.back-btn{margin-right:8px;padding:4px 8px;font-size:12px}.dashboard{background:var(--bg);flex-direction:column;height:100vh;display:flex}.dashboard-header{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:24px 32px;display:flex;box-shadow:0 1px 3px #0000000d}.dashboard-header h1{color:var(--text);margin:0;font-size:28px;font-weight:600}.dashboard-header .btn-primary{background:var(--accent);color:#fff;border-color:var(--accent);padding:8px 16px;font-weight:500}.dashboard-header .btn-primary:hover{color:#fff;background:#4338ca;border-color:#4338ca}.dashboard-content{flex:1;padding:32px;overflow-y:auto}.empty-state{flex-direction:column;justify-content:center;align-items:center;gap:20px;height:100%;display:flex}.empty-state p{color:var(--text-muted);margin:0;font-size:16px}.error-message{color:#991b1b;background:#fee2e2;border:1px solid #fecaca;border-radius:6px;margin-bottom:20px;padding:12px 16px;font-size:13px}.charts-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;display:grid}.chart-card{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:20px;transition:all .2s;box-shadow:0 1px 3px #0000000d}.chart-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 12px #4f46e526}.chart-card-header{border-bottom:1px solid var(--border);margin-bottom:16px;padding-bottom:12px}.chart-card-title-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.chart-card-header h3{color:var(--text);flex:1;margin:0;font-size:16px;font-weight:600}.btn-delete{color:var(--danger);cursor:pointer;background:0 0;border:1px solid #0000;flex-shrink:0;padding:4px 8px;font-size:18px;line-height:1;transition:all .12s}.btn-delete:hover{color:#991b1b;background:#fee2e2;border-color:#fecaca}.chart-card-body{flex-direction:column;gap:8px;display:flex}.chart-config{color:var(--text-muted);margin:0;font-size:13px;line-height:1.6}.save-loader{align-items:center;gap:8px;display:flex}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}
