/* Algorithms & interviews */
.al-say { margin: 10px 0; min-height: 1.4em; }
.al-lanes { display: flex; flex-direction: column; gap: 12px; }
.al-lane { padding: 10px; border-radius: 14px; border: 1px solid var(--line); background: var(--card); }
.al-lane.is-done { border-color: #22c55e; }
.al-lane-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 6px; }
.al-big { padding: 1px 8px; border-radius: 999px; background: #ede9fe; color: #5b21b6; font: 600 12px "JetBrains Mono", monospace; }
.al-lane-head .lk-stat { margin-left: auto; }
.al-bars { width: 100%; height: 180px; display: block; border-radius: 10px; background: var(--paper); }
.al-key { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; font-size: 13px; color: var(--muted); }
.al-key i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: -8px; }
.al-h { margin: 14px 0 6px; font-weight: 700; font-size: 15px; }
.se-row { display: flex; flex-wrap: wrap; gap: 4px; }
.se-row span { min-width: 34px; padding: 6px 0; border-radius: 8px; text-align: center; font: 600 13px "JetBrains Mono", monospace; background: var(--soft); transition: all .2s; }
.se-row .is-look { background: #f59e0b; color: #fff; transform: translateY(-4px); }
.se-row .is-out { opacity: .25; }
.se-row .is-found { background: #22c55e; color: #fff; transform: scale(1.15); }
.gn { margin-top: 18px; }
.gn-form { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.gn-form input { width: 6em; font-size: 18px !important; }
.gn-log { margin: 8px 0 0; padding-left: 22px; list-style: decimal; font-size: 14px; }
.pf-tools { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.pf-tools .lk-btn { padding: 4px 9px; font-size: 13px; }
.pf-grid { max-width: 860px; margin: 0 auto; display: grid; grid-template-columns: repeat(var(--cols), 1fr); gap: 1px; padding: 1px; border-radius: 10px; background: var(--line); user-select: none; touch-action: none; }
.pf-grid span { aspect-ratio: 1; background: var(--paper); cursor: crosshair; transition: background .15s; }
.pf-grid .is-wall { background: #334155; }
.pf-grid .is-mud { background: #a16207; opacity: .55; }
.pf-grid .is-front { background: #fde68a; }
.pf-grid .is-seen { background: #99f6e4; }
.pf-grid .is-path { background: #f59e0b; }
.pf-grid .is-start { background: #22c55e; border-radius: 50%; }
.pf-grid .is-end { background: #e11d48; border-radius: 3px; }
.fb-tree { overflow-x: auto; padding: 8px 0; }
.fb-tree svg line { stroke: var(--line); stroke-width: 2; }
.fb-tree svg circle { fill: #0d9488; }
.fb-tree svg .is-base circle { fill: #22c55e; }
.fb-tree svg .is-cached circle { fill: #a855f7; }
.fb-tree svg text { fill: #fff; font: 700 12px system-ui; text-anchor: middle; }
#lk-p-challenges .lk-crumb::after { content: attr(data-time); margin-left: 10px; padding: 1px 8px; border-radius: 999px; background: #e0f2fe; color: #075985; font-weight: 600; }
