:root{--bg:#f3f6fb;--card:#fff;--ink:#142238;--muted:#5d6c82;--border:#d5dfec;--brand:#164b75;--brand-dark:#0f3250;--accent:#d99a22;--ok:#157347;--err:#b42318}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.layout{grid-template-columns:240px 1fr;min-height:100vh;display:grid}.sidebar{color:#fff;background:#0f243d;flex-direction:column;gap:6px;padding:20px 14px;display:flex}.brand{letter-spacing:.5px;border-bottom:1px solid #243f60;margin-bottom:10px;padding:6px 10px 18px;font-size:18px;font-weight:800}.brand small{color:#9fb4cc;margin-top:3px;font-size:11px;font-weight:500;display:block}.nav-btn{color:#dbe6f3;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:10px 12px;font-size:14px;font-weight:500}.nav-btn:hover{background:#1a3759}.nav-btn.active{background:var(--brand);color:#fff;font-weight:700}.main{width:100%;max-width:1320px;padding:24px 28px}h1{margin:0 0 6px;font-size:24px}.subtitle{color:var(--muted);margin:0 0 20px;font-size:14px}.cards{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:20px;display:grid}.stat{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:16px}.stat strong{color:var(--brand-dark);margin-top:6px;font-size:24px;display:block}.stat span{color:var(--muted);font-size:13px}.panel{background:var(--card);border:1px solid var(--border);border-radius:10px;margin-bottom:20px;padding:20px}.panel h2{margin-top:0;font-size:17px}.form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.form-grid label{color:var(--ink);flex-direction:column;gap:5px;font-size:13px;font-weight:600;display:flex}.form-grid input,.form-grid select,.form-grid textarea{border:1px solid var(--border);background:#fff;border-radius:7px;padding:9px 10px;font-family:inherit;font-size:14px}.full{grid-column:1/-1}.actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;display:flex}.btn{border:1px solid var(--border);color:var(--ink);cursor:pointer;background:#fff;border-radius:7px;padding:9px 15px;font-size:13px;font-weight:600}.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand-dark)}.btn-sm{padding:5px 10px;font-size:12px}.alert{border-radius:8px;margin-bottom:16px;padding:11px 14px;font-size:14px}.alert-ok{color:var(--ok);background:#e8f7ee;border:1px solid #b7e4c7}.alert-err{color:var(--err);background:#fef2f2;border:1px solid #fecaca}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;vertical-align:middle;border-bottom:1px solid #edf1f7;padding:10px 8px}th{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:700}.badge{color:var(--brand);background:#eaf1f8;border-radius:99px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-block}audio{max-width:240px;height:32px}@media (width<=820px){.layout{grid-template-columns:1fr}.sidebar{flex-flow:wrap}}.tree-container{text-align:center;background:#f8fafc;min-height:380px;padding:28px 18px;overflow:auto}.tree-node-wrapper{flex-direction:column;align-items:center;padding:0 10px;display:inline-flex;position:relative}.tree-card{border:1px solid #b9c9dc;border-top:4px solid var(--brand);text-align:left;cursor:pointer;background:#fff;border-radius:9px;align-items:center;gap:10px;width:210px;padding:10px;display:flex;box-shadow:0 3px 10px #0f2e5014}.tree-card.is-root-card{border-top-color:var(--brand-dark);background:#f3f8ff}.tree-card.selected{border:2px solid var(--accent);border-top:4px solid var(--accent);background:#fffaf0}.tree-avatar,.tree-avatar-img{object-fit:cover;width:40px;height:40px;color:var(--brand);background:#e7eff8;border-radius:50%;flex:0 0 40px;place-items:center;font-weight:800;display:grid}.tree-card-name{font-size:13px;font-weight:700;line-height:1.2}.tree-card-id{color:var(--brand);margin-top:2px;font-size:11px;font-weight:700}.tree-card-meta{color:var(--muted);font-size:11px}.tree-toggle-btn{cursor:pointer;z-index:2;background:#fff;border:1px solid #94a3b8;border-radius:50%;width:24px;height:24px;margin-top:6px;font-weight:700;line-height:20px}.tree-children{justify-content:center;padding-top:22px;display:flex;position:relative}.tree-children:before{content:"";border-left:2px solid #7187a3;height:22px;position:absolute;top:0;left:50%}.tree-children>.tree-node-wrapper:before{content:"";border-left:2px solid #7187a3;height:11px;position:absolute;top:-11px;left:50%}.tree-children>.tree-node-wrapper:after{content:"";border-top:2px solid #7187a3;position:absolute;top:-11px;left:0;right:0}.tree-children>.tree-node-wrapper:first-child:after{left:50%}.tree-children>.tree-node-wrapper:last-child:after{right:50%}.tree-children>.tree-node-wrapper:only-child:after{display:none}.modal-backdrop{z-index:999;background:#0f172a8c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-card{background:#fff;border-radius:12px;width:100%;max-width:780px;max-height:85vh;padding:22px;overflow:auto;box-shadow:0 20px 50px #00000040}.playlist-box{color:#fff;background:linear-gradient(135deg,#0b132b,#231942);border-radius:12px;margin:14px 0;padding:18px}.org-viewport{resize:vertical;cursor:grab;-webkit-user-select:none;user-select:none;background:#f4f7fb;height:68vh;min-height:420px;max-height:82vh;padding:12px;overflow:auto}.org-viewport:active{cursor:grabbing}.org-svg-card{border:1px solid #b9c9dc;border-top:4px solid var(--brand);cursor:pointer;background:#fff;border-radius:10px;align-items:center;gap:8px;width:100%;height:100%;padding:8px 10px;display:flex;box-shadow:0 3px 10px #0f2e5017}.org-svg-card.is-root{border-top-color:var(--brand-dark);background:#f2f7ff}.org-svg-card.is-selected{border:2px solid var(--accent);border-top:4px solid var(--accent);background:#fffaf0}.org-node-btn{width:22px;height:22px;color:var(--brand-dark);cursor:pointer;background:#f8fafc;border:1px solid #94a3b8;border-radius:5px;padding:0;font-size:13px;font-weight:800;line-height:18px}.org-node-btn:hover{background:var(--brand);color:#fff;border-color:var(--brand)}
