body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{background:radial-gradient(circle at top left,#1f2937 0,#020617 60%,#000 100%);color:#e5e7eb;display:flex;flex-direction:column;min-height:100vh}.header{align-items:center;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(90deg,#0f172af2,#1e40afb3);border-bottom:1px solid #94a3b859;box-shadow:0 18px 40px #0f172ab3;box-sizing:border-box;display:flex;justify-content:space-between;padding:18px 40px;position:-webkit-sticky;position:sticky;top:0;width:100%;z-index:20}.header-title{display:flex;flex-direction:column;gap:4px}.header-title h1{font-size:1.6rem;letter-spacing:.04em;margin:0}.header-title p{color:#cbd5f5;font-size:.9rem;margin:0}.main-layout{box-sizing:border-box;display:flex;flex:1 1;justify-content:center;padding:24px 32px 32px}.content-container{display:flex;flex-direction:column;gap:18px;max-width:1280px;width:100%}@media (max-width:700px){.header{padding:16px 18px}.header-title h1{font-size:1.15rem}.header-title p{font-size:.8rem}.main-layout{padding:16px 12px 24px}}.footer{background:radial-gradient(circle at top,#020617,#030712);border-top:1px solid #1f2937e6;box-sizing:border-box;color:#9ca3af;font-size:.8rem;padding:12px 24px;text-align:center;width:100%}nav{align-items:center;display:flex;font-size:.95rem;gap:16px}nav a{border:1px solid #0000;border-radius:999px;color:#e5e7eb;padding:8px 14px;text-decoration:none;transition:background-color .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .1s ease}nav a:hover{background:#bfdbfe14;border-color:#818cf899;box-shadow:0 0 0 1px #4f46e559,0 10px 25px #0f172acc;transform:translateY(-1px)}nav a:active{box-shadow:0 4px 12px #0f172ad9;transform:translateY(0)}.nav-link-active{background:#bfdbfe1f;border-color:#818cf8cc;box-shadow:0 0 0 1px #4f46e5bf,0 12px 25px #0f172acc}.node{background:#0f172a52;box-sizing:border-box;display:block;height:25px;outline:1px solid #334155bf;transition:background-color .2s ease,transform .08s ease,box-shadow .18s ease,outline-color .2s ease,filter .2s ease;width:25px}.node:hover{filter:brightness(1.25);outline-color:#93c5fdf2;z-index:1}.node-finish{background:radial-gradient(circle at 30% 30%,#f97316,#ea580c);box-shadow:0 0 0 1px #f8fafcb3,0 0 18px #ea580ce6}.node-start{background:radial-gradient(circle at 30% 30%,#22c55e,#16a34a);box-shadow:0 0 0 1px #f8fafcb3,0 0 18px #16a34ae6}.node-visited{animation-delay:0;animation-direction:alternate;animation-duration:.55s;animation-fill-mode:forwards;animation-iteration-count:1;animation-name:visitedAnimation;animation-play-state:running;animation-timing-function:ease-out}@keyframes visitedAnimation{0%{background-color:#1e40afcc;border-radius:100%;transform:scale(.3)}50%{background-color:#38bdf8e6}75%{background-color:#34d399eb;transform:scale(1.2)}to{background-color:#3b82f6f2;transform:scale(1)}}.node-wall{background:radial-gradient(circle at 30% 30%,#020617,#020617);outline-color:#0f172af2}.node-shortest-path{animation-delay:0;animation-direction:alternate;animation-duration:.7s;animation-fill-mode:forwards;animation-iteration-count:1;animation-name:shortestPath;animation-play-state:running;animation-timing-function:ease-out}@keyframes shortestPath{0%{background-color:#fcd34df2;transform:scale(.6)}50%{background-color:#fafa7dfa;transform:scale(1.2)}to{background-color:#fbbf24fa;transform:scale(1)}}@media (max-width:700px){.node{height:20px;width:20px}}.visualizer-card{background:radial-gradient(circle at top left,#0f172af5,#030712fa);border:1px solid #94a3b866;border-radius:18px;box-shadow:0 20px 50px #0f172ad9;display:flex;flex-direction:column;gap:18px;padding:20px 22px 22px}.visualizer-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.visualizer-header-left{display:flex;flex-direction:column;gap:4px}.visualizer-header-left h2{color:#e5e7eb;font-size:1.3rem;letter-spacing:.03em;margin:0}.visualizer-header-left p{color:#cbd5f5;font-size:.9rem;margin:0}.visualizer-subheader{align-items:center;background:#0f172a8c;border:1px solid #60a5fa29;border-radius:12px;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;padding:10px 12px}.mode-hint{color:#93c5fd;font-size:.84rem;letter-spacing:.01em}.legend{align-items:center;color:#94a3b8;display:flex;flex-wrap:wrap;font-size:.78rem;gap:14px}.legend span{align-items:center;display:inline-flex;gap:6px}.legend-dot{border-radius:50%;box-shadow:0 0 8px currentColor;display:inline-block;height:9px;width:9px}.legend-start{background:#22c55e;color:#22c55e}.legend-finish{background:#f97316;color:#f97316}.legend-wall{background:#020617;border:1px solid #475569;color:#64748b}.legend-path{background:#fbbf24;color:#fbbf24}.visualizer-controls{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.primary-button{align-items:center;background:linear-gradient(135deg,#3b82f6,#6366f1);border:none;border-radius:999px;box-shadow:0 14px 32px #2563ebb3,0 0 0 1px #0f172ae6;color:#ecfeff;cursor:pointer;display:inline-flex;font-size:.92rem;font-weight:500;gap:6px;padding:9px 18px;transition:transform .1s ease,box-shadow .18s ease,filter .18s ease}.mode-button{background:#0f172acc;border:1px solid #94a3b880;border-radius:999px;color:#cbd5e1;cursor:pointer;font-size:.84rem;padding:8px 12px}.mode-button-active{background:#2563eb59;border-color:#60a5fa;color:#eff6ff}.mode-button:disabled,.primary-button:disabled{cursor:not-allowed;opacity:.55}.utility-bar{gap:12px;justify-content:space-between;padding:4px 0}.utility-actions,.utility-bar{align-items:center;display:flex;flex-wrap:wrap}.utility-actions{gap:8px}.secondary-button,.speed-control select{background:#0f172ac2;border:1px solid #64748ba6;border-radius:9px;color:#cbd5e1;font-size:.8rem}.secondary-button{cursor:pointer;padding:8px 11px;transition:background .18s ease,border-color .18s ease,transform .1s ease}.secondary-button:hover:not(:disabled){background:#1e40af66;border-color:#60a5fa;transform:translateY(-1px)}.secondary-button:disabled,.speed-control select:disabled{cursor:not-allowed;opacity:.5}.speed-control{align-items:center;color:#94a3b8;display:inline-flex;font-size:.8rem;gap:7px}.speed-control select{outline:none;padding:7px 9px}.run-status{align-items:center;color:#94a3b8;display:inline-flex;font-size:.8rem;gap:7px}.run-status i{background:#64748b;border-radius:50%;height:7px;width:7px}.run-status-active{color:#93c5fd}.run-status-active i{animation:statusPulse 1s ease-in-out infinite;background:#38bdf8;box-shadow:0 0 10px #38bdf8}@keyframes statusPulse{50%{opacity:.6;transform:scale(1.5)}}.primary-button:hover{box-shadow:0 22px 45px #1e40afd9,0 0 0 1px #1e40aff2;filter:brightness(1.05);transform:translateY(-1px)}.primary-button:active{box-shadow:0 9px 22px #1e40afe6,0 0 0 1px #0f172af2;transform:translateY(0)}.grid-shell{overflow-x:auto;padding-bottom:4px;width:100%}.grid{background:radial-gradient(circle at top left,#0f172af2,#020617fa);border-radius:14px;box-shadow:inset 0 0 0 1px #334155cc,0 16px 36px #02061773;min-width:100%;padding:12px;width:-webkit-max-content;width:max-content}.grid-row{display:flex}.stats-bar{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(3,1fr)}.stats-bar div{align-items:baseline;background:#0f172a99;border:1px solid #47556980;border-radius:10px;display:flex;gap:7px;justify-content:center;padding:10px}.stats-bar strong{color:#f8fafc;font-size:1rem}.stats-bar span{color:#94a3b8;font-size:.74rem}@media (max-width:700px){.stats-bar div{align-items:center;flex-direction:column;gap:2px}}.pathfinding-visualizer{width:100%}
/*# sourceMappingURL=main.125c54be.css.map*/