*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary: #FFFBF5;--bg-secondary: #FFFDFB;--bg-tertiary: #FEF7ED;--text-primary: #521000;--text-secondary: rgba(82, 16, 0, .7);--accent: #FF4801;--accent-hover: #FF7038;--accent-subtle: rgba(255, 72, 1, .08);--green: #36b37e;--orange: #FF4801;--red: #ef4444;--purple: #7c3aed;--cyan: #0891b2;--border: #EBD5C1;--border-subtle: rgba(235, 213, 193, .5);--radius-sm: 4px;--radius: 8px;--radius-lg: 12px;--radius-full: 9999px;--shadow-lg: 0 8px 32px rgba(82, 16, 0, .08);--transition-fast: .15s ease;--transition-base: .2s cubic-bezier(.25, .46, .45, .94)}::selection{background:var(--accent);color:#fff}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.app{display:flex;flex-direction:column;height:100vh}.app-header{padding:14px 24px;background:var(--bg-secondary);border-bottom:none;flex-shrink:0;position:relative}.app-header:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background-image:linear-gradient(to right,var(--border) 50%,transparent 50%);background-size:12px 1px;background-repeat:repeat-x}.app-header-top{display:flex;align-items:center;gap:12px;margin-bottom:12px}.app-header-logo{color:var(--accent);flex-shrink:0;display:flex;align-items:center;transition:opacity var(--transition-fast)}.app-header-logo:hover{opacity:.8}.app-header h1{font-size:18px;font-weight:500;color:var(--text-primary);letter-spacing:-.02em;line-height:1}.app-header-subtitle{font-size:12px;color:var(--text-secondary);font-weight:500;text-transform:uppercase;letter-spacing:.06em;padding:3px 10px;border:1px solid var(--border);border-radius:var(--radius-full);line-height:1;transition:all var(--transition-fast)}.app-header-subtitle:hover{border-style:dashed;color:var(--accent)}.app-body{flex:1;position:relative;overflow:hidden}.app-body:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle,var(--border) .75px,transparent .75px);background-size:20px 20px;opacity:1;pointer-events:none;z-index:0}.search-input{position:relative;max-width:600px}.search-input-form{display:flex;gap:8px}.search-input input{flex:1;padding:8px 16px;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--bg-primary);color:var(--text-primary);font-size:13px;outline:none;transition:all var(--transition-fast)}.search-input input:focus{border-color:var(--accent);border-style:dashed;box-shadow:0 0 0 3px var(--accent-subtle)}.search-input input::placeholder{color:var(--text-secondary)}.search-input button[type=submit]{padding:8px 20px;border:1px solid var(--accent);border-radius:var(--radius-full);background:var(--accent);color:#fff;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all var(--transition-fast),transform .16s cubic-bezier(.25,.46,.45,.94)}.search-input button[type=submit]:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:0 2px 12px #ff480133}.search-input button[type=submit]:active:not(:disabled){transform:translateY(1px) scale(.98)}.search-input button[type=submit]:disabled{opacity:.4;cursor:not-allowed}.search-dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:50;overflow:hidden;animation:fadeSlideIn .15s ease-out}.search-suggestion{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:8px 14px;border:none;border-left:2px solid transparent;background:none;color:var(--text-primary);font-size:13px;text-align:left;cursor:pointer;transition:all var(--transition-fast)}.search-suggestion:hover,.search-suggestion--active{background:var(--accent-subtle);border-left-color:var(--accent)}.search-suggestion-label{font-weight:600;white-space:nowrap}.search-breadcrumb{font-size:11px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.error-message{padding:10px 24px;color:var(--red);font-size:13px;background:#ef444414;border-bottom:1px solid rgba(239,68,68,.15)}.empty-state{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-secondary);font-size:15px}.tree-container{width:100%;height:100%;position:relative;z-index:1;animation:fadeSlideIn .4s ease-out}.tree-container svg{width:100%;height:100%}.node circle{stroke-width:2px;cursor:pointer;transition:fill var(--transition-fast),r var(--transition-fast),filter var(--transition-fast)}.node circle:hover{filter:brightness(1.25) drop-shadow(0 0 4px currentColor)}.node text{font-size:12px;fill:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:fill var(--transition-fast)}.node text:hover{fill:var(--accent)}.node--root circle{fill:var(--accent);stroke:var(--accent-hover);r:10}.node--root text{font-size:15px;font-weight:700;cursor:default}.node--root text:hover{fill:var(--text-primary)}.node--domain circle{fill:var(--accent-hover);stroke:var(--accent);r:8}.node--subdomain circle{fill:var(--green);stroke:#2d9a56}.node--subdomain.node--not-loaded circle{fill:var(--bg-primary);stroke:var(--green);stroke-dasharray:3,2}.node--category circle{fill:var(--purple);stroke:#6d28d9}.node--category text{font-weight:600;cursor:default}.node--category text:hover{fill:var(--text-primary)}.node--path circle{fill:var(--cyan);stroke:#0e7490;r:4}.link{fill:none;stroke:var(--border);stroke-width:1.5px;stroke-opacity:.7}.node--loading circle{animation:pulse 1s ease-in-out infinite}.context-menu{position:absolute;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:4px 0;min-width:160px;box-shadow:var(--shadow-lg);z-index:100;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);animation:fadeSlideIn .15s ease-out}.context-menu button{display:block;width:100%;padding:8px 16px;border:none;border-left:2px solid transparent;background:none;color:var(--text-primary);font-size:13px;text-align:left;cursor:pointer;transition:all var(--transition-fast)}.context-menu button:hover{background:var(--accent-subtle);border-left-color:var(--accent)}.context-menu button.danger{color:var(--red)}.context-menu button.danger:hover{background:#ef44441a;border-left-color:var(--red)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#52100033;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:200}.modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;padding:24px;min-width:380px;box-shadow:var(--shadow-lg);animation:fadeSlideIn .25s ease-out;position:relative}.modal h3{margin-bottom:16px;padding-bottom:12px;font-size:16px;font-weight:500;letter-spacing:-.02em;position:relative}.modal h3:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background-image:linear-gradient(to right,var(--border) 50%,transparent 50%);background-size:12px 1px;background-repeat:repeat-x}.modal label{display:block;margin-bottom:12px;font-size:13px;color:var(--text-secondary)}.modal input,.modal select{display:block;width:100%;padding:8px 14px;margin-top:6px;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--bg-primary);color:var(--text-primary);font-size:14px;outline:none;transition:all var(--transition-fast)}.modal input:focus,.modal select:focus{border-color:var(--accent);border-style:dashed;box-shadow:0 0 0 3px var(--accent-subtle)}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}.modal-actions button{padding:8px 18px;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--bg-tertiary);color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.modal-actions button:hover{background:var(--border);border-style:dashed}.modal-actions button:active{transform:translateY(1px) scale(.98)}.modal-actions button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:500}.modal-actions button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);border-style:solid;box-shadow:0 2px 12px #ff480133}.link-preview{position:absolute;z-index:60;width:320px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;pointer-events:none;animation:fadeSlideIn .2s ease-out}.link-preview-image{width:100%;height:200px;overflow:hidden;background:var(--bg-tertiary)}.link-preview-image img{width:100%;height:100%;object-fit:cover;object-position:top left;display:block}.link-preview-skeleton{width:100%;height:100%;background:linear-gradient(110deg,var(--bg-tertiary) 30%,var(--border-subtle) 50%,var(--bg-tertiary) 70%);background-size:200% 100%;animation:skeletonShimmer 1.4s ease-in-out infinite}@keyframes skeletonShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.link-preview-error{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--text-secondary)}.link-preview-url{padding:8px 12px;font-size:11px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-top:none;position:relative}.link-preview-url:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background-image:linear-gradient(to right,var(--border) 50%,transparent 50%);background-size:8px 1px;background-repeat:repeat-x}.legend{position:absolute;bottom:16px;left:16px;display:flex;gap:16px;padding:10px 18px;background:#fffdfbd9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:var(--radius-lg);font-size:11px;font-weight:500;color:var(--text-secondary);z-index:10;animation:fadeSlideIn .4s ease-out .2s both}.legend:before,.legend:after{content:"";position:absolute;width:8px;height:8px;border:1px solid var(--accent);border-radius:1.5px;background:var(--bg-primary);pointer-events:none;opacity:.5}.legend:before{top:-4px;right:-4px}.legend:after{bottom:-4px;left:-4px}.legend-item{display:flex;align-items:center;gap:6px}.legend-dot{width:10px;height:10px;border-radius:50%;box-shadow:0 0 4px currentColor}.legend-dot--root{background:var(--accent);color:var(--accent)}.legend-dot--domain{background:var(--accent-hover);color:var(--accent-hover)}.legend-dot--subdomain{background:var(--green);color:var(--green)}.legend-dot--category{background:var(--purple);color:var(--purple)}.legend-dot--path{background:var(--cyan);color:var(--cyan)}.view-toggle{display:flex;gap:2px;margin-left:auto;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-full);padding:2px}.view-toggle-btn{display:flex;align-items:center;gap:5px;padding:5px 14px;border:none;border-radius:var(--radius-full);background:none;color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.view-toggle-btn:hover{color:var(--text-primary);background:var(--accent-subtle)}.view-toggle-btn--active{background:var(--accent);color:#fff;box-shadow:0 1px 4px #ff480140}.view-toggle-btn--active:hover{background:var(--accent-hover);color:#fff}.graph-container{width:100%;height:100%;position:relative;z-index:1;animation:fadeSlideIn .4s ease-out}.graph-container svg{width:100%;height:100%}.graph-legend{bottom:16px;left:16px}.graph-link{transition:opacity .2s ease,stroke-width .2s ease,stroke .2s ease}.graph-link-label,.graph-node{transition:opacity .2s ease}.graph-node:hover>circle{filter:brightness(1.15)}.product-panel{position:absolute;top:0;right:0;bottom:0;width:370px;max-width:90vw;background:var(--bg-secondary);border-left:1px solid var(--border);box-shadow:-4px 0 24px #5210000f;z-index:80;display:flex;flex-direction:column;animation:panelSlideIn .25s ease-out;overflow:hidden}@keyframes panelSlideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.product-panel-header{padding:20px 20px 16px;position:relative;flex-shrink:0}.product-panel-header:after{content:"";position:absolute;bottom:0;left:16px;right:16px;height:1px;background-image:linear-gradient(to right,var(--border) 50%,transparent 50%);background-size:12px 1px;background-repeat:repeat-x}.product-panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.product-panel-title{font-size:17px;font-weight:600;color:var(--text-primary);letter-spacing:-.02em}.product-panel-close{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:50%;background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.product-panel-close:hover{background:var(--accent-subtle);border-color:var(--accent);color:var(--accent)}.product-panel-badges{display:flex;flex-wrap:wrap;gap:6px}.product-panel-badge{font-size:11px;font-weight:600;padding:2px 10px;border-radius:var(--radius-full);border:1px solid;line-height:1.5;letter-spacing:.02em}.product-panel-badge--muted{background:var(--bg-tertiary)!important;color:var(--text-secondary)!important;border-color:var(--border)!important;font-weight:500}.product-panel-body{flex:1;overflow-y:auto;padding:16px 20px 20px;display:flex;flex-direction:column;gap:14px}.product-panel-status{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius);font-size:12px;font-weight:500}.product-panel-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.product-panel-status-label{color:var(--text-primary)}.product-panel-description{font-size:13px;line-height:1.6;color:var(--text-secondary)}.product-panel-pricing{display:flex;gap:10px;padding:10px 12px;background:var(--bg-tertiary);border:1px dashed var(--border);border-radius:var(--radius);align-items:flex-start}.product-panel-pricing-icon{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--accent-subtle);color:var(--accent);font-size:12px;font-weight:700;flex-shrink:0}.product-panel-pricing-text{font-size:12px;line-height:1.5;color:var(--text-primary);font-weight:500}.product-panel-links{display:flex;gap:8px;flex-wrap:wrap}.product-panel-link{display:inline-flex;align-items:center;gap:4px;padding:6px 14px;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--bg-primary);color:var(--text-primary);font-size:12px;font-weight:500;text-decoration:none;transition:all var(--transition-fast)}.product-panel-link:hover{border-color:var(--accent);border-style:dashed;color:var(--accent);background:var(--accent-subtle)}.product-panel-section{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.product-panel-section-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border:none;background:var(--bg-tertiary);color:var(--text-primary);font-size:12px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.product-panel-section-toggle:hover{background:var(--accent-subtle)}.product-panel-chevron{transition:transform var(--transition-fast)}.product-panel-chevron--open{transform:rotate(180deg)}.product-panel-deps{padding:8px 14px 12px;display:flex;flex-direction:column;gap:10px}.product-panel-dep-group{display:flex;flex-direction:column;gap:4px}.product-panel-dep-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);margin-bottom:2px}.product-panel-dep-item{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;border:none;border-radius:var(--radius-sm);background:none;cursor:pointer;font-size:12px;text-align:left;transition:all var(--transition-fast)}.product-panel-dep-item:hover{background:var(--accent-subtle)}.product-panel-dep-name{font-weight:500;color:var(--accent)}.product-panel-dep-relation{font-size:10px;color:var(--text-secondary);font-style:italic}.product-panel-endpoints{padding:8px 14px 12px}.product-panel-api-base{margin-bottom:8px;padding:6px 10px;background:var(--bg-primary);border-radius:var(--radius-sm);overflow-x:auto}.product-panel-api-base code{font-size:10px;color:var(--text-secondary);font-family:SF Mono,Fira Code,monospace;white-space:nowrap}.product-panel-endpoint{display:grid;grid-template-columns:48px 1fr;gap:4px 8px;padding:6px 0;align-items:start;position:relative}.product-panel-endpoint+.product-panel-endpoint{border-top:1px solid var(--border-subtle)}.product-panel-method{font-size:9px;font-weight:700;padding:2px 6px;border-radius:var(--radius-sm);text-align:center;letter-spacing:.04em;font-family:SF Mono,Fira Code,monospace}.product-panel-endpoint-path{font-size:11px;font-family:SF Mono,Fira Code,monospace;color:var(--text-primary);word-break:break-all}.product-panel-endpoint-desc{grid-column:1 / -1;font-size:11px;color:var(--text-secondary)}@keyframes statusPulse{0%,to{opacity:1}50%{opacity:.5}}.status-dot-warning{animation:statusPulse 2s ease-in-out infinite}
