:root{--bg:#070b14;--dot:#162035;--card:#0f172a;--border:#1e293b;--text:#f8fafc;--muted:#94a3b8;--blue:#3b82f6;--gold:#f59e0b;}
*{box-sizing:border-box;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;}
body{background:var(--bg);color:var(--text);overflow:hidden;width:100vw;height:100vh;user-select:none;}
.topbar{position:fixed;top:0;left:0;right:0;height:48px;background:rgba(11,15,25,0.98);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);z-index:500;display:flex;align-items:center;justify-content:space-between;padding:0 14px;}
.brand{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:#fff;flex-shrink:0;}
.brand span{font-size:10px;color:var(--muted);background:rgba(255,255,255,0.06);padding:2px 7px;border-radius:10px;}
.search-box{flex:1;max-width:440px;margin:0 16px;position:relative;display:flex;align-items:center;}
.search-box input{width:100%;height:32px;background:#030712;border:1px solid var(--border);border-radius:16px;padding:4px 30px 4px 30px;color:#fff;font-size:12px;outline:none;transition:border-color 0.15s,box-shadow 0.15s;}
.search-box input:focus{border-color:var(--blue);box-shadow:0 0 10px rgba(59,130,246,0.35);}
.search-icon{position:absolute;left:10px;font-size:11px;opacity:0.6;pointer-events:none;}
.search-clear-btn{position:absolute;right:8px;background:none;border:none;color:var(--muted);font-size:12px;cursor:pointer;padding:3px 6px;border-radius:50%;display:none;line-height:1;transition:0.12s;}
.search-clear-btn:hover{color:#fff;background:rgba(255,255,255,0.2);}
.search-dropdown{position:absolute;top:calc(100% + 8px);left:0;width:100%;min-width:380px;max-height:400px;overflow-y:auto;background:#0d1527;border:1px solid #38bdf8;border-radius:8px;box-shadow:0 16px 40px rgba(0,0,0,0.95),0 0 12px rgba(56,189,248,0.2);z-index:1000;padding:6px 0;}
.search-dropdown::-webkit-scrollbar{width:5px;}
.search-dropdown::-webkit-scrollbar-thumb{background:#334155;border-radius:4px;}
.search-item{padding:8px 12px;display:flex;align-items:center;gap:10px;cursor:pointer;font-size:11px;color:var(--text);border-bottom:1px solid rgba(255,255,255,0.04);transition:background 0.12s;}
.search-item:hover{background:#1e293b;color:#fff;}
.search-item:hover .search-item-title{color:#38bdf8;}
.search-item-id{font-weight:700;padding:2px 7px;border-radius:4px;background:rgba(59,130,246,0.2);color:#60a5fa;font-size:10px;font-family:monospace;flex-shrink:0;position:static!important;transform:none!important;display:inline-block;}
.search-item-id.task{background:rgba(245,158,11,0.2);color:#fbbf24;}
.search-item-id.ave{background:rgba(168,85,247,0.2);color:#c084fc;}
.search-item-title{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px;}
.search-item-tag{font-size:10px;color:var(--muted);flex-shrink:0;background:rgba(255,255,255,0.04);padding:2px 6px;border-radius:4px;}
.btn{background:var(--card);border:1px solid var(--border);color:#fff;padding:3px 8px;border-radius:4px;font-size:11px;cursor:pointer;}
.btn:hover{background:#1e293b;border-color:var(--blue);}
#viewport{width:100vw;height:calc(100vh - 48px);margin-top:48px;position:relative;overflow:hidden;cursor:grab;background-image:radial-gradient(var(--dot) 1px,transparent 1px);background-size:20px 20px;}
#viewport.dragging{cursor:grabbing;}
#world{position:absolute;top:0;left:0;transform-origin:0 0;}
#world.smooth{transition:transform 0.28s cubic-bezier(0.16,1,0.3,1);}
svg#connections{position:absolute;top:0;left:0;pointer-events:none;overflow:visible;}
.node{position:absolute;transform:translate(-50%,-50%);border-radius:6px;padding:4px 9px;font-size:11px;font-weight:600;cursor:pointer;box-shadow:0 3px 8px rgba(0,0,0,0.4);border:1px solid transparent;transition:0.12s;display:inline-flex;align-items:center;gap:4px;white-space:nowrap;line-height:1.2;}
.node:hover{transform:translate(-50%,-50%) scale(1.04);z-index:50!important;}
.node-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;}
.node.root{background:linear-gradient(135deg,#ef4444,#b91c1c);color:#fff;font-size:12px;font-weight:700;border-radius:18px;padding:7px 15px;box-shadow:0 0 18px rgba(239,68,68,0.5);max-width:240px;}
.node.avenue{color:#fff;border-radius:10px;padding:5px 11px;font-size:11px;max-width:300px;}
.node.leaf{background:#0b1120;border:1px dashed var(--border);color:var(--muted);font-size:10px;max-width:340px;}
.node.leaf:hover{color:#fff;border-color:var(--blue);}
@keyframes pulseGlow{0%{box-shadow:0 0 4px #38bdf8;}50%{box-shadow:0 0 18px #38bdf8;}100%{box-shadow:0 0 4px #38bdf8;}}
.node.active{border-color:#38bdf8!important;animation:pulseGlow 1.4s infinite;z-index:90!important;}
.tog{display:inline-block;width:12px;height:12px;border-radius:50%;background:rgba(255,255,255,0.25);text-align:center;line-height:12px;font-size:9px;margin-left:3px;flex-shrink:0;}
.drawer{position:fixed;top:48px;right:-460px;width:440px;max-width:92vw;height:calc(100vh - 48px);background:rgba(11,15,25,0.98);backdrop-filter:blur(12px);border-left:1px solid var(--border);padding:16px;display:flex;flex-direction:column;gap:10px;transition:all 0.22s ease;z-index:400;box-shadow:-8px 0 24px rgba(0,0,0,0.7);}
.drawer.open{right:0;}
.drawer.fullscreen{width:94vw;max-width:1160px;right:3vw;top:54px;height:calc(100vh - 64px);border-radius:12px;border:1px solid var(--blue);box-shadow:0 12px 60px rgba(0,0,0,0.95);}
.btn-back-nav{background:rgba(245,158,11,0.12);border:1px solid rgba(245,158,11,0.35);color:#fbbf24;padding:4px 8px;border-radius:4px;font-size:10px;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:4px;width:100%;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.btn-back-nav:hover{background:rgba(245,158,11,0.25);color:#fff;}
.drawer-header{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--border);padding-bottom:8px;gap:8px;}
.drawer-title{font-size:13px;font-weight:700;color:#fff;line-height:1.4;}
.drawer-actions{display:flex;align-items:center;gap:4px;flex-shrink:0;}
.btn-hdr-icon{background:transparent;border:1px solid var(--border);color:var(--text);width:28px;height:28px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;transition:0.15s;}
.btn-hdr-icon:hover{background:#1e293b;border-color:var(--blue);color:#fff;}
.drawer-close{background:none;border:none;color:var(--muted);font-size:18px;cursor:pointer;padding:2px 6px;line-height:1;}
.drawer-close:hover{color:#fff;}
.drawer-badge{display:inline-block;padding:2px 7px;border-radius:6px;font-size:9px;font-weight:700;text-transform:uppercase;margin-bottom:4px;}
.drawer-content{font-size:12px;color:var(--muted);line-height:1.55;flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding-right:4px;}
.drawer-content::-webkit-scrollbar{width:4px;}
.drawer-content::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px;}
.info-card{background:#0b1120;border:1px solid var(--border);border-radius:6px;padding:9px 12px;}
.info-card.boss{background:rgba(245,158,11,0.06);border-color:rgba(245,158,11,0.3);color:#fef3c7;}
.info-card.boss strong{color:#fbbf24;}
.info-card strong{display:block;font-size:10px;color:#94a3b8;text-transform:uppercase;margin-bottom:4px;letter-spacing:0.5px;}
.cross-pills{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px;}
.pill{background:#1e293b;border:1px solid #334155;color:#38bdf8;padding:2px 6px;border-radius:4px;font-size:10px;cursor:pointer;font-family:monospace;transition:0.1s;user-select:none;}
.pill:hover{background:#0284c7;color:#fff;border-color:#38bdf8;transform:scale(1.04);}
.pill:active{transform:scale(0.96);}
.pill.task{color:#f59e0b;border-color:#78350f;background:rgba(245,158,11,0.12);}
.pill.task:hover{background:#d97706;color:#fff;}
.pill.ave{color:#c084fc;border-color:#6b21a8;background:rgba(168,85,247,0.12);}
.pill.ave:hover{background:#9333ea;color:#fff;}
.pill.inline{display:inline-flex;align-items:center;padding:1px 5px;margin:0 2px;font-size:10px;vertical-align:baseline;}
.btn-inline-detail{background:#0f172a;border:1px solid #38bdf8;color:#38bdf8;padding:6px 10px;border-radius:6px;font-size:11px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;margin-top:4px;transition:0.15s;}
.btn-inline-detail:hover{background:#0284c7;color:#fff;}
.doc-full-section{border-top:1px dashed var(--border);padding-top:10px;margin-top:8px;display:flex;flex-direction:column;gap:8px;}
.doc-full-section h4{color:#38bdf8;font-size:11px;text-transform:uppercase;letter-spacing:0.5px;display:flex;align-items:center;gap:5px;}
.local-box-compact{background:#030712;border:1px solid #1e293b;border-radius:4px;padding:4px 8px;display:flex;align-items:center;gap:6px;font-size:10px;margin-bottom:6px;}
.local-code-compact{flex:1;min-width:0;font-family:monospace;font-size:10px;color:#93c5fd;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.btn-copy-mini{background:#1e293b;border:1px solid var(--border);color:#fff;padding:1px 6px;border-radius:3px;font-size:10px;cursor:pointer;flex-shrink:0;transition:0.1s;line-height:1.4;}
.btn-copy-mini:hover{background:#0284c7;border-color:#38bdf8;}
.tools-list{display:flex;flex-direction:column;gap:5px;margin-top:2px;}
.tool-row{display:flex;align-items:center;gap:6px;font-size:11px;}
.tool-notes{margin-top:6px;font-size:10px;color:var(--muted);}
.doc-body{font-size:12px;line-height:1.6;color:#cbd5e1;}
.quick-status{position:fixed;bottom:10px;left:10px;background:rgba(15,23,42,0.9);border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-size:10px;color:var(--muted);z-index:90;}
