@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{color-scheme:dark;--color-bg: #050814;--color-surface: #0f172a;--color-surface-alt: #111c32;--color-text: #e6ecff;--color-text-muted: #a4b2d8;--color-border: rgba(88, 105, 148, .35);--color-accent: #38e8ff;--color-danger: #ff6b6b}*{box-sizing:border-box}body,html,#root{margin:0;padding:0;height:100%;font-family:Inter,Segoe UI,sans-serif;background:radial-gradient(circle at top,#081029 0%,var(--color-bg) 52%,#050b16 100%);color:var(--color-text)}a{color:inherit;text-decoration:none}button{font-family:inherit}#root{display:flex}@media (max-width: 768px){html{-webkit-overflow-scrolling:touch}body{-webkit-text-size-adjust:100%;text-size-adjust:100%}*{-webkit-tap-highlight-color:rgba(56,232,255,.2)}}.app-shell{display:grid;grid-template-columns:minmax(0,1fr) 380px;grid-template-rows:1fr;gap:28px;width:100%;height:100vh;padding:28px 28px 80px;box-sizing:border-box}.graph-panel{position:relative;height:100%;min-height:0;border-radius:24px;overflow:hidden;box-shadow:0 30px 60px #02081773}.sidebar-container{width:380px;flex-shrink:0;display:flex;flex-direction:column}.footer-section{padding:16px;text-align:center;border-top:1px solid rgba(255,255,255,.1);font-size:16px;color:#fff9}.footer-support{margin-bottom:8px}.footer-address{font-family:IBM Plex Mono,monospace;font-size:15px;color:#38e8ff;word-break:break-all;cursor:pointer;margin-bottom:24px;transition:opacity .2s}.footer-address:hover{opacity:.8}.footer-github-link{display:inline-block;opacity:.7;transition:opacity .2s}.footer-github-link:hover{opacity:1}.footer-github-logo{height:24px}.graph-placeholder{height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(140deg,#0f172acc,#111c3299);color:var(--color-text-muted);font-size:1rem}.graph-overlay{position:absolute;top:16px;right:16px;pointer-events:none}.loading-indicator{display:flex;align-items:center;gap:12px;font-weight:500;color:var(--color-text);background:#0f172af2;padding:10px 16px;border-radius:8px;border:1px solid rgba(56,232,255,.3);box-shadow:0 4px 12px #0000004d;pointer-events:auto}.loading-indicator .spinner{width:18px;height:18px;border-radius:50%;border:3px solid rgba(56,232,255,.25);border-top-color:#38e8ff;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.rebuild-complete{display:flex;align-items:center;gap:12px;font-weight:500;color:#fff;background:#22c55ef2;padding:12px 18px;border-radius:8px;border:1px solid rgba(34,197,94,.6);box-shadow:0 4px 16px #22c55e4d;pointer-events:auto;animation:slideInRight .3s ease-out}.rebuild-complete-icon{font-size:20px;font-weight:700;color:#fff}.refresh-prompt-button{margin-left:8px;padding:6px 14px;background:#fff;color:#16a34a;border:none;border-radius:6px;font-weight:600;font-size:13px;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px #0003}.refresh-prompt-button:hover{background:#f0fdf4;transform:translateY(-1px);box-shadow:0 4px 12px #0000004d}.refresh-prompt-button:active{transform:translateY(0)}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.sidebar{background:#10182de6;border:1px solid rgba(82,102,144,.35);border-radius:24px;padding:28px 24px 36px;display:flex;flex-direction:column;gap:24px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);max-height:calc(100vh - 160px);overflow-y:auto}.sidebar::-webkit-scrollbar{width:8px}.sidebar::-webkit-scrollbar-track{background:#0003;border-radius:4px}.sidebar::-webkit-scrollbar-thumb{background:#38e8ff4d;border-radius:4px;transition:background .2s}.sidebar::-webkit-scrollbar-thumb:hover{background:#38e8ff80}.sidebar__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.sidebar__header h1{margin:0;font-size:1.35rem;font-weight:600}.sidebar__header p{margin:4px 0 0;color:var(--color-text-muted);font-size:.9rem}.ghost-button{background:transparent;color:var(--color-accent);border:1px solid rgba(56,232,255,.35);padding:8px 14px;border-radius:999px;cursor:pointer;transition:background .2s ease,border-color .2s ease}.ghost-button:disabled{opacity:.65;cursor:not-allowed}.ghost-button:not(:disabled):hover{background:#38e8ff1f;border-color:#38e8ffa6}.ghost-button--highlight{background:#22c55e33;border-color:#22c55e99;color:#22c55e;animation:pulse 2s ease-in-out infinite}.ghost-button--highlight:not(:disabled):hover{background:#22c55e4d;border-color:#22c55ecc}@keyframes pulse{0%,to{box-shadow:0 0 #22c55e66}50%{box-shadow:0 0 0 8px #22c55e00}}@keyframes pulse-text{0%,to{opacity:1}50%{opacity:.6}}.sidebar__section{display:flex;flex-direction:column;gap:16px}.sidebar__section h2{margin:0;font-size:1rem;font-weight:600;letter-spacing:.01em}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.stats-card{background:linear-gradient(160deg,#16213cb3,#0d1527e6);border:1px solid rgba(84,102,150,.35);border-radius:18px;padding:16px;display:flex;flex-direction:column;gap:6px;box-shadow:inset 0 0 0 1px #ffffff05;transition:all .2s ease;cursor:default}.stats-card:hover{transform:translateY(-2px);border-color:#54669680;box-shadow:inset 0 0 0 1px #ffffff0d,0 4px 12px #0000004d}.stats-card__label{font-size:.8rem;letter-spacing:.04em;text-transform:uppercase;color:#cbd5ffa6}.stats-card__value{font-size:1.6rem;font-weight:600}.stats-card__helper{font-size:.9rem;color:var(--color-text-muted)}.stats-card--secondary{border-color:#7387bd61}.stats-card--danger{border-color:#ff6b6b59}.sidebar__error{border-radius:16px;border:1px solid rgba(255,107,107,.45);background:#78141e2e;padding:16px}.sidebar__error strong{display:block;margin-bottom:6px}.tier-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}.tier-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid rgba(77,94,136,.25)}.tier-dot{width:10px;height:10px;border-radius:50%;box-shadow:0 0 12px currentColor}.tier-list span:first-of-type{flex-shrink:0}.meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.meta-label{display:block;font-size:.78rem;color:#c8d3f099;text-transform:uppercase;letter-spacing:.05em}.meta-value{font-size:.95rem;font-weight:500}.meta-value--mono{font-family:IBM Plex Mono,Source Code Pro,monospace;font-size:.88rem;color:#b4c8ffd9;word-break:break-all}.node-details{background:#111c32a6;border:1px solid rgba(82,102,144,.3);border-radius:18px;padding:18px;display:flex;flex-direction:column;gap:16px}.node-details--empty{color:var(--color-text-muted);text-align:center}.node-details--empty h3{margin-bottom:6px}.node-details__header{display:flex;flex-direction:column;gap:12px}.node-details__header h3{margin:0;font-size:1.05rem}.node-details__badges{display:flex;flex-wrap:wrap;gap:8px}.status-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid currentColor;padding:4px 10px;font-size:.72rem;letter-spacing:.05em}.status-badge--hub{color:#53f29d;border-color:#53f29d8c}.node-details__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.node-details__grid dt{margin-bottom:4px;font-size:.76rem;color:#cbd5ff8c;letter-spacing:.05em;text-transform:uppercase}.node-details__grid dd{margin:0;font-size:1rem;font-weight:500}.node-details__meta{display:flex;flex-direction:column;gap:10px}@media (max-width: 1280px){.app-shell{grid-template-columns:1fr;padding:20px}.graph-panel{min-height:580px}.sidebar{max-height:none}.sidebar-container{width:100%}}@media (max-width: 768px){.app-shell{padding:16px;gap:20px}.graph-panel{min-height:480px;border-radius:18px}.sidebar{padding:20px 18px 28px;gap:20px;border-radius:18px}.stats-grid,.node-details__grid{grid-template-columns:1fr}.sidebar__header h1{font-size:1.2rem}.sidebar__header p{font-size:.85rem}.flux-logo{height:75px!important}.flux-logo-link{margin-left:-15px!important}}@media (max-width: 640px){.app-shell{padding:12px 12px 60px;gap:16px}.graph-panel{min-height:400px;border-radius:16px}.sidebar{padding:18px 16px 24px;gap:18px;border-radius:16px}.sidebar__header{gap:12px}.sidebar__header h1{font-size:1.15rem}.sidebar__header p{font-size:.8rem}.sidebar__section h2{font-size:.95rem}.stats-card{padding:14px}.stats-card__value{font-size:1.4rem}.ghost-button{padding:8px 12px;font-size:13px}.node-details{padding:16px}.flux-logo{height:65px!important}.flux-logo-link{margin-left:-10px!important}}@media (max-width: 480px){.app-shell{padding:10px 10px 50px;gap:14px}.graph-panel{min-height:350px;border-radius:14px}.sidebar{padding:16px 14px 20px;gap:16px;border-radius:14px}.sidebar__header{flex-direction:column;align-items:flex-start;gap:10px}.sidebar__header h1{font-size:1.1rem}.sidebar__header p{font-size:.75rem}.sidebar__section h2{font-size:.9rem}.stats-grid{gap:12px}.stats-card{padding:12px;border-radius:14px}.stats-card__label{font-size:.75rem}.stats-card__value{font-size:1.3rem}.stats-card__helper{font-size:.85rem}.ghost-button{padding:8px 10px;font-size:12px;white-space:normal;text-align:center}.node-details{padding:14px;border-radius:14px}.node-details__header h3{font-size:.95rem}.node-details__badges{gap:6px}.status-badge{padding:3px 8px;font-size:.68rem}.meta-label{font-size:.72rem}.meta-value{font-size:.88rem}.meta-value--mono{font-size:.8rem}.tier-list{gap:8px}.tier-list li{padding:6px 0;font-size:.9rem}.graph-overlay{top:12px;right:12px}.loading-indicator,.rebuild-complete{padding:8px 12px;font-size:.85rem}.loading-indicator .spinner{width:16px;height:16px}.refresh-prompt-button{padding:5px 10px;font-size:12px}.flux-logo{height:55px!important}.flux-logo-link{margin-left:0!important;align-self:flex-start}.apps-modal-backdrop{padding:10px!important}.apps-modal-content{max-width:calc(100vw - 20px)!important;max-height:calc(100vh - 20px)!important;border-radius:12px!important}.footer-section{padding:12px;font-size:14px}.footer-address{font-size:13px;margin-bottom:16px}.footer-github-logo{height:20px}}@media (max-width: 640px){input[type=text]{padding:10px 14px!important;font-size:16px!important}button{min-height:40px}.sidebar__section button{padding:10px!important;min-height:44px}.sidebar__section>div button{min-height:36px}}
