:root{--bg: #eceff3;--surface: #ffffff;--ink: #141922;--muted: #566070;--line: #d3d8e0;--accent: #2742f5;--accent-ink: #ffffff;--ok: #17703f;--error: #b8301c;--error-bg: #fbe9e5;--ok-bg: #e4f3ea;--line-strong: #7d8797;--syn-key: #1d4ed8;--syn-string: #0b6b4d;--syn-number: #9a4a07;--syn-keyword: #7b2fd1;--syn-punct: #566070;--sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0e1218;--surface: #171c25;--ink: #e6e9ef;--muted: #93a0b2;--line: #2a313d;--accent: #8296ff;--accent-ink: #0e1218;--ok: #66c28d;--error: #ff8f7a;--error-bg: #3a1f1a;--ok-bg: #16301f;--line-strong: #667286;--syn-key: #9db0ff;--syn-string: #7fe0aa;--syn-number: #f2b56b;--syn-keyword: #c9adff;--syn-punct: #93a0b2;color-scheme:dark}}:root[data-theme=dark]{--bg: #0e1218;--surface: #171c25;--ink: #e6e9ef;--muted: #93a0b2;--line: #2a313d;--accent: #8296ff;--accent-ink: #0e1218;--ok: #66c28d;--error: #ff8f7a;--error-bg: #3a1f1a;--ok-bg: #16301f;--line-strong: #667286;--syn-key: #9db0ff;--syn-string: #7fe0aa;--syn-number: #f2b56b;--syn-keyword: #c9adff;--syn-punct: #93a0b2;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{background:var(--bg)}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.55}h1,h2{line-height:1.2;letter-spacing:-.01em}h1{margin:0 0 6px;font-family:var(--mono);font-size:clamp(1.4rem,1.1rem + 1vw,1.75rem);font-weight:700;letter-spacing:-.02em}h2{font-size:1rem;font-weight:650}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:12px;z-index:10;background:var(--surface);padding:8px 12px;border-radius:6px}main{padding:24px clamp(16px,3vw,40px) 64px;max-width:1600px;width:100%;box-sizing:border-box}.lede{margin:0 0 24px;color:var(--muted);max-width:80ch}.tool{display:flex;flex-direction:column;gap:14px}.controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px}.field{display:inline-flex;align-items:center;gap:8px;color:var(--muted)}.field select{padding:5px 8px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);color:var(--ink);font:inherit}.field.check{cursor:pointer}.segmented{display:inline-flex;border:1px solid var(--line-strong);border-radius:8px;overflow:hidden;background:var(--surface)}.segmented button{border:0;background:transparent;color:var(--ink);font:inherit;padding:6px 14px;cursor:pointer}.segmented button+button{border-left:1px solid var(--line)}.segmented button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);font-weight:600}.panes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.pane{display:flex;flex-direction:column;gap:8px;min-width:0}.pane-head{display:flex;align-items:center;justify-content:space-between;min-height:32px}.pane-head h2{margin:0;font-size:.9rem;color:var(--muted);font-weight:600}.pane-actions{display:flex;gap:6px}textarea{width:100%;min-height:min(520px,60dvh);padding:12px;resize:vertical;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);color:var(--ink);font-family:var(--mono);font-size:13.5px;line-height:1.5;tab-size:2}.btn{padding:4px 12px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);color:var(--ink);font:inherit;font-size:.875rem;cursor:pointer}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{color:var(--muted);cursor:default;opacity:.6}.btn.icon{padding:4px 10px}.status{margin:0;padding:8px 12px;border-radius:6px;color:var(--muted)}.status-ok{background:var(--ok-bg);color:var(--ok)}.status-error{background:var(--error-bg);color:var(--error);font-family:var(--mono);font-size:.85rem;overflow-wrap:anywhere}.about,.faq{margin-top:40px;max-width:68ch}.about h2,.faq h2{margin-bottom:8px}.about p{margin:0;color:var(--muted)}.faq details{padding:10px 0;border-top:1px solid var(--line)}.faq summary{cursor:pointer;font-weight:600}.faq p{margin:8px 0 0;color:var(--muted)}@media(max-width:820px){.panes{grid-template-columns:1fr}textarea{min-height:240px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}textarea.compact{min-height:112px}textarea.compact.tall{min-height:260px}input[type=text],input[type=search],input[type=number]{padding:6px 10px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);color:var(--ink);font:inherit}input[type=number]{width:6.5rem}input.wide{width:100%;font-family:var(--mono);font-size:13.5px}.field.grow{flex:1 1 320px}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.btn.primary:hover:not(:disabled){filter:brightness(1.08)}.note{margin:0;color:var(--muted);font-size:.875rem;overflow-wrap:anywhere}.hint{display:block;font-size:.78rem;font-weight:400;color:var(--muted)}code{font-family:var(--mono);font-size:.9em}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:var(--surface)}table{width:100%;border-collapse:collapse}caption{text-align:left;padding:10px 12px 4px;font-weight:600;color:var(--muted)}th,td{padding:8px 12px;text-align:left;border-top:1px solid var(--line);font-weight:400;white-space:nowrap}thead th{color:var(--muted);font-size:.85rem}tbody th{font-weight:600}.rows{margin:0;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.rows.now{background:transparent;border-style:dashed}.row{display:grid;grid-template-columns:minmax(130px,200px) minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px 12px}.row+.row{border-top:1px solid var(--line)}.row dt{font-weight:600;overflow-wrap:anywhere}.row dd{margin:0;overflow-wrap:anywhere}@media(max-width:820px){.row{grid-template-columns:1fr auto}.row dt{grid-column:1 / -1}}.palette{width:min(640px,calc(100vw - 24px));max-width:none;margin:12vh auto auto;padding:0;border:0;background:transparent;color:inherit;overflow:visible}.palette::backdrop{background:#0a0e148c}.palette-box{overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 24px 60px #00000059}#palette-input{display:block;width:100%;padding:16px 18px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;font-size:1.05rem;outline:none}#palette-input:focus-visible{box-shadow:inset 0 -2px 0 var(--accent)}#palette-list{list-style:none;margin:0;padding:6px;max-height:min(50vh,420px);overflow-y:auto}#palette-list li{padding:8px 12px;border-radius:8px;cursor:pointer}#palette-list li[aria-selected=true]{background:var(--accent);color:var(--accent-ink)}.opt-row{display:flex;justify-content:space-between;gap:12px}.opt-title{font-weight:600}.opt-hint{font-size:.8rem;opacity:.85}.opt-desc{font-size:.85rem;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.palette-empty{margin:0;padding:16px 18px;color:var(--muted)}.palette-foot{margin:0;padding:8px 14px;border-top:1px solid var(--line);color:var(--muted);font-size:.8rem}@media(max-width:820px){.palette-foot{display:none}}textarea.password{font-size:1.15rem;letter-spacing:.03em;overflow-wrap:anywhere}input[type=range]{width:min(280px,50vw);accent-color:var(--accent);vertical-align:middle}.strength{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;color:var(--muted)}.strength meter{width:180px;height:12px}.diff-summary{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.diff-summary .status{flex:1 1 auto}.diff-table td,.diff-table th{white-space:normal;overflow-wrap:anywhere;vertical-align:top}.diff-table td:nth-child(2){min-width:10rem}.diff-table th[scope=row]{white-space:nowrap}.diff-table .none{color:var(--muted)}.diff-added th[scope=row]{box-shadow:inset 3px 0 0 var(--ok);color:var(--ok)}.diff-removed th[scope=row]{box-shadow:inset 3px 0 0 var(--error);color:var(--error)}.diff-changed th[scope=row]{box-shadow:inset 3px 0 0 var(--accent);color:var(--accent)}.pattern-row{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:1.05rem}.pattern-row input.wide{flex:1 1 auto;min-width:0}.pattern-row .flags{color:var(--accent);min-width:1ch}.wrap-table td,.wrap-table th{white-space:normal;overflow-wrap:anywhere;vertical-align:top}.wrap-table td code{white-space:pre-wrap}.wrap-table th[scope=row]{font-weight:600}.wrap-table .none{color:var(--muted)}.group-list{margin:0;padding:0;list-style:none}.group-name{color:var(--muted);font-size:.85rem}.explain summary{cursor:pointer;font-weight:600;margin-bottom:8px}.chips{display:flex;flex-wrap:wrap;gap:8px}.cron-summary{margin:0 0 6px;font-size:clamp(1.15rem,1rem + .8vw,1.5rem);font-weight:650;letter-spacing:-.01em;line-height:1.3}.cron-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0}.cron-field{padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);min-width:0}.cron-field dt{font-size:.8rem;color:var(--muted);font-weight:600}.cron-field dd{margin:2px 0 0;overflow-wrap:anywhere}.cron-field dd code{font-size:1.1rem;font-weight:600}.cron-field .meaning{font-size:.85rem;color:var(--muted)}.editor{--editor-min: 260px;--editor-max: 70vh;min-width:0}.editor-compact{--editor-min: 112px;--editor-max: 40vh}.editor-tall{--editor-min: 420px;--editor-max: 75vh}.editor .cm-editor{max-height:var(--editor-max)}.editor .cm-content,.editor .cm-gutter{min-height:var(--editor-min)}@media(max-width:820px){.editor-tall{--editor-min: 240px}}.tool-skeleton{display:flex;flex-direction:column;gap:14px;min-height:520px}.sk-bar,.sk-pane{border-radius:8px;background:linear-gradient(90deg,var(--line) 0%,var(--surface) 50%,var(--line) 100%);background-size:200% 100%;animation:sk-shimmer 1.4s ease-in-out infinite}.sk-bar{height:34px;width:min(420px,100%)}.sk-panes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;flex:1}.sk-pane{min-height:420px}@keyframes sk-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(max-width:820px){.sk-panes{grid-template-columns:1fr}.sk-pane{min-height:240px}}.theme-switch{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--line);border-radius:8px}.theme-switch button{display:inline-flex;align-items:center;justify-content:center;width:28px;height:26px;padding:0;border:0;border-radius:5px;background:transparent;color:var(--muted);cursor:pointer}.theme-switch button:hover{color:var(--ink)}.theme-switch button[aria-pressed=true]{background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--ink)}.theme-switch button:focus-visible{outline-offset:-3px}.trust-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-size:.78rem;cursor:help}.tool-header{margin-bottom:16px}.tool-header .title-row{gap:6px 10px}.tool-desc{margin:4px 0 0;color:var(--muted);font-size:.9rem;max-width:90ch}.btn[data-state=copied]{border-color:var(--ok);color:var(--ok)}.btn[data-state=failed]{border-color:var(--error);color:var(--error)}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line)}.tab{margin-bottom:-1px;padding:8px 16px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--muted);font:inherit;font-weight:600;cursor:pointer}.tab:hover{color:var(--ink)}.tab[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent)}[role=tabpanel][hidden]{display:none}.toolbar-end{display:inline-flex;align-items:center;gap:6px;margin-left:auto}.viewer-error{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.tree-wrap{display:flex;flex-direction:column;gap:10px}.tree-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.tree{min-height:200px;max-height:75vh;overflow:auto;padding:6px 0;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);font-family:var(--mono);font-size:13.5px}.tree-row{display:flex;align-items:baseline;gap:6px;padding:2px 10px 2px calc(10px + var(--depth, 0) * 18px);line-height:1.6;cursor:pointer;white-space:nowrap}.tree-row:hover{background:var(--bg)}.tree-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;background:var(--bg)}.tree-twisty{display:inline-block;width:1ch;color:var(--muted);text-align:center}.tree-key{color:var(--syn-key)}.tree-index,.tree-punct,.tree-count,.tree-preview{color:var(--syn-punct)}.tree-preview{overflow:hidden;text-overflow:ellipsis}.tree-string{color:var(--syn-string);overflow:hidden;text-overflow:ellipsis}.tree-number{color:var(--syn-number)}.tree-keyword{color:var(--syn-keyword)}.tree-more{color:var(--accent);font-weight:600}.tree-actions{display:none;gap:6px;margin-left:auto;padding-left:16px}.tree-row:hover .tree-actions,.tree-row:focus-visible .tree-actions{display:inline-flex}.tree-actions button{padding:0 8px;border:1px solid var(--line-strong);border-radius:4px;background:var(--surface);color:var(--ink);font:inherit;font-family:var(--sans);font-size:.75rem;cursor:pointer}.tree-actions button:hover{border-color:var(--accent)}.file-drop{position:relative;min-width:0}.drop-overlay{display:none;position:absolute;inset:0;z-index:5;align-items:center;justify-content:center;padding:16px;border:2px dashed var(--accent);border-radius:8px;background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--ink);font-weight:600;text-align:center;pointer-events:none}.file-drop[data-dragging=true]>.drop-overlay{display:flex}input[type=checkbox],input[type=radio]{accent-color:var(--accent)}.editor-frame{position:relative;min-width:0}.empty-state{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;padding:16px;pointer-events:none}.empty-card{max-width:440px;text-align:center}.empty-actions>*{pointer-events:auto}.empty-title{margin:0 0 12px;font-size:1.05rem;font-weight:600}.empty-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.empty-hint{margin:12px 0 0;color:var(--muted);font-size:.85rem}.menu{position:relative;display:inline-block}.menu-button{display:inline-flex;align-items:center;gap:6px}.menu-list{position:absolute;top:calc(100% + 6px);right:0;z-index:30;display:flex;flex-direction:column;min-width:220px;padding:4px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);box-shadow:0 12px 32px #00000040}.menu-list.popover{right:auto;left:0;gap:10px;min-width:200px;padding:12px}.menu-item{padding:8px 12px;border:0;border-radius:6px;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer;white-space:nowrap}.menu-item:hover:not(:disabled),.menu-item:focus-visible{background:var(--bg)}.menu-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.menu-item:disabled{color:var(--muted);cursor:default}.icon-btn{display:inline-flex;align-items:center;justify-content:center;padding:6px 8px}.panes-swap{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;align-items:start}.swap-cell{padding-top:44px}@media(max-width:820px){.panes-swap{grid-template-columns:minmax(0,1fr)}.swap-cell{padding-top:0;justify-self:center}}.link-btn{padding:4px 6px;border:0;background:transparent;color:var(--accent);font:inherit;font-size:.875rem;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.link-btn:hover{text-decoration-thickness:2px}.link-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.inline-notice{font-size:.85rem;color:var(--muted)}.inline-notice:empty{display:none}.inline-notice-error{color:var(--error)}.shortcuts{width:min(520px,calc(100vw - 24px));max-width:none;max-height:80dvh;margin:10vh auto auto;padding:0;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);box-shadow:0 24px 60px #00000059}.shortcuts::backdrop{background:#0a0e148c}.shortcuts-box{padding:16px 20px 20px}.shortcuts-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.shortcuts-head h2{margin:0;font-size:1.1rem}.shortcuts h3{margin:16px 0 6px;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.shortcut-list{margin:0}.shortcut-row{display:grid;grid-template-columns:minmax(150px,auto) 1fr;gap:12px;align-items:baseline;padding:6px 0;border-top:1px solid var(--line)}.shortcut-row dt{white-space:nowrap}.shortcut-row dd{margin:0;color:var(--muted)}.shortcut-plus,.shortcut-or{margin:0 4px;color:var(--muted);font-size:.8rem}.related{margin-top:40px}.related h2{margin-bottom:8px}.related-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin:0;padding:0;list-style:none}.related-list a{display:flex;flex-direction:column;gap:4px;height:100%;padding:12px 14px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);color:var(--ink);text-decoration:none}.related-list a:hover{border-color:var(--accent)}.related-list a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.related-name{font-weight:600}.related-desc{color:var(--muted);font-size:.85rem}.btn.btn-sm{padding:2px 9px;font-size:.8rem}.path-btn{padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.path-btn code{text-decoration:underline dotted;text-underline-offset:3px}.path-btn:hover code,.path-btn[aria-pressed=true] code{text-decoration-style:solid;color:var(--accent)}.path-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}.diff-table tr.is-selected td,.diff-table tr.is-selected th{background:color-mix(in srgb,var(--accent) 10%,transparent)}.tree-search{display:flex;align-items:center;gap:6px;flex:1 1 260px}.tree-search input{flex:1 1 auto;min-width:0}.tree-hit{background:color-mix(in srgb,var(--syn-number) 14%,transparent)}.tree-hit-current{background:color-mix(in srgb,var(--accent) 22%,transparent);box-shadow:inset 3px 0 0 var(--accent)}.pattern-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;margin:10px 0 6px;padding:0;list-style:none}.pattern-pick{display:flex;flex-direction:column;gap:4px;width:100%;height:100%;padding:8px 10px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer}.pattern-pick:hover{border-color:var(--accent)}.pattern-pick:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pattern-name{font-weight:600;font-size:.875rem}.pattern-pick code{color:var(--muted);font-size:.75rem;overflow-wrap:anywhere}.home-hero{display:flex;flex-direction:column;gap:12px;max-width:880px;margin-bottom:32px}.home-hero h1{margin:8px 0 4px}.hero-box{display:flex;align-items:center;gap:12px;padding:4px 6px 4px 16px;border:2px solid var(--accent);border-radius:10px;background:var(--surface);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent)}.hero-prompt{font-family:var(--mono);font-size:1.1rem;font-weight:700;color:var(--accent)}.hero-box input[type=search]{flex:1;min-width:0;padding:12px 0;border:0;outline:none;background:transparent;color:var(--ink);font-family:var(--mono);font-size:.95rem}.hero-box:focus-within{box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 28%,transparent)}.hero-open{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border:0;border-radius:7px;background:var(--accent);color:var(--accent-ink);font:inherit;font-size:.875rem;font-weight:600;white-space:nowrap;cursor:pointer}.hero-open[hidden]{display:none}.hero-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hero-open kbd{border-color:color-mix(in srgb,var(--accent-ink) 40%,transparent);background:transparent;color:inherit}.hero-open-icon{display:inline-flex}.hero-hint{margin:0;color:var(--muted);font-size:.85rem}.home-section{margin-top:28px}.home-section>h2{margin:0 0 12px;font-size:1.1rem}.section-label{margin:0 0 8px;color:var(--muted);font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.card-grid,.card-list{display:grid;gap:10px;margin:0;padding:0;list-style:none}.card-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));max-width:880px}.category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px 16px;align-items:start}.tool-card{display:flex;align-items:flex-start;gap:12px;height:100%;box-sizing:border-box;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);text-decoration:none}.tool-card:hover{border-color:var(--accent)}.tool-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tool-card-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;border-radius:7px;background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent)}.tool-card-text{display:flex;flex-direction:column;gap:3px;min-width:0}.tool-card-name{font-weight:600;font-size:.9rem}.tool-card-desc{color:var(--muted);font-size:.8rem;line-height:1.4}.card-grid-compact .tool-card{align-items:center}.title-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}.title-row h1{margin-bottom:0}.title-row+.lede{margin-top:6px}.fav-btn{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);color:var(--muted);font:inherit;font-size:.8rem;cursor:pointer}.fav-btn:hover{border-color:var(--accent);color:var(--ink)}.fav-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.fav-star{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}.fav-btn[aria-pressed=true]{color:var(--ink)}.fav-btn[aria-pressed=true] .fav-star{fill:#e0a100;stroke:#b07d00}.fav-btn.fav-compact{padding:6px;border-color:transparent;background:transparent;align-self:center}@media(pointer:coarse){.btn,.link-btn,.menu-item,.tab,.segmented button,.search-trigger,.theme-switch button,.field select,.field input:not([type=checkbox]):not([type=radio]):not([type=range]){min-height:40px}.btn.icon-btn{min-width:40px}.fav-btn,.path-btn,.pattern-pick,.field.check{min-height:40px}.field.check input{width:20px;height:20px}}.app{display:grid;grid-template-columns:var(--sidebar-w, 248px) minmax(0,1fr);min-height:100dvh}html[data-sidebar=collapsed]{--sidebar-w: 64px}.sidebar{position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--line)}.sidebar-top{display:flex;align-items:center;gap:8px;padding:16px 12px 0 14px}.brand{display:inline-flex;align-items:center;min-width:0;margin-right:auto;text-decoration:none;white-space:nowrap}.sidebar .icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:32px;height:32px;padding:0 6px;border:0;border-radius:6px;background:transparent;color:var(--muted);font:inherit;cursor:pointer}.sidebar .icon-btn:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 6%,transparent)}.sidebar .icon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.collapse-toggle .when-collapsed,html[data-sidebar=collapsed] .collapse-toggle .when-expanded{display:none}html[data-sidebar=collapsed] .collapse-toggle .when-collapsed,.collapse-toggle span{display:inline-flex}.mobile-only{display:none!important}.sidebar-panel{display:flex;flex-direction:column;gap:12px;flex:1;min-height:0;padding:12px 12px 14px}.search-trigger{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:1px solid var(--line-strong);border-radius:6px;background:var(--bg);color:var(--muted);font:inherit;font-size:.875rem;cursor:pointer;text-align:left}.search-trigger svg{flex:none}.search-trigger .kbd-hint{margin-left:auto}.search-trigger:hover{border-color:var(--accent);color:var(--ink)}kbd{font-family:var(--mono);font-size:.75rem;padding:1px 6px;border:1px solid var(--line);border-radius:4px;background:var(--surface);color:var(--muted)}.tool-nav{display:flex;flex-direction:column;gap:6px;flex:1;min-height:0;overflow-y:auto;margin:0 -6px;padding:0 6px}.group+.group,.group[hidden]+.group{padding-top:6px;border-top:1px solid var(--line)}#pinned-group+.group{border-top:1px solid var(--line)}.group-head{margin:0;font-size:inherit}.group-toggle{display:flex;align-items:center;gap:6px;width:100%;padding:6px 4px 6px 6px;border:0;border-radius:5px;background:none;color:var(--muted);font:inherit;font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-align:left;cursor:pointer}.group-toggle:hover{color:var(--ink)}.group-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.group-toggle .chev{display:inline-flex;transition:transform .15s ease}.group[data-folded] .chev{transform:rotate(-90deg)}.group:not([data-folded]) .group-toggle .count{display:none}.group-toggle .count{margin-left:auto;font-weight:500;letter-spacing:0}.group ul{display:flex;flex-direction:column;gap:1px;margin:2px 0 0;padding:0;list-style:none}.group[data-folded] ul{display:none}.group a{display:flex;align-items:center;gap:10px;padding:7px 10px 7px 9px;border-radius:6px;color:var(--ink);font-size:.9rem;text-decoration:none}.group a .label{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;line-height:1.3}.tool-icon{display:inline-flex;flex:none;color:var(--muted)}.group a:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)}.group a:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.group a[aria-current=page]{background:color-mix(in srgb,var(--accent) 12%,var(--surface));box-shadow:inset 3px 0 0 var(--accent);font-weight:600}.group a[aria-current=page] .tool-icon{color:var(--accent)}.new-badge{margin-left:auto;padding:1px 7px;border-radius:999px;background:var(--ok-bg);color:var(--ok);font-size:.6875rem;font-weight:700}.sidebar-footer{display:flex;flex-direction:column;gap:10px;padding-top:12px;border-top:1px solid var(--line)}.footer-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.footer-meta{font-size:.78rem;color:var(--muted)}.runs-locally{display:inline-flex;align-items:center;gap:6px;color:inherit;text-decoration:none}.runs-locally:hover,.runs-locally[aria-current=page]{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.runs-locally:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}.parent-attribution a{color:var(--ink);font-weight:600;text-decoration:none}.parent-attribution a:hover{color:var(--accent);text-decoration:underline}.theme-cycle{display:none!important}.theme-cycle [data-theme-icon]{display:none}.theme-cycle[data-current=light] [data-theme-icon=light],.theme-cycle[data-current=dark] [data-theme-icon=dark],.theme-cycle[data-current=system] [data-theme-icon=system]{display:inline-flex}@media(min-width:821px){html[data-sidebar=collapsed] .sidebar .label,html[data-sidebar=collapsed] .group-toggle,html[data-sidebar=collapsed] .theme-switch,html[data-sidebar=collapsed] .footer-meta,html[data-sidebar=collapsed] .brand .logo-title{display:none}html[data-sidebar=collapsed] .sidebar-top{flex-direction:column;padding:16px 0 0}html[data-sidebar=collapsed] .brand{margin:0}html[data-sidebar=collapsed] .sidebar-panel{align-items:center;padding:12px 0 14px}html[data-sidebar=collapsed] .search-trigger{justify-content:center;width:40px;height:40px;padding:0}html[data-sidebar=collapsed] .tool-nav{align-items:center;margin:0;padding:0;width:100%}html[data-sidebar=collapsed] .group{width:100%;border-top:0!important;padding-top:0!important}html[data-sidebar=collapsed] .group+.group:before{content:"";display:block;width:28px;height:1px;margin:6px auto;background:var(--line)}html[data-sidebar=collapsed] .group[data-folded] ul{display:flex}html[data-sidebar=collapsed] .group ul{align-items:center}html[data-sidebar=collapsed] .group a{justify-content:center;width:40px;height:40px;padding:0}html[data-sidebar=collapsed] .tool-icon svg{width:18px;height:18px}html[data-sidebar=collapsed] .sidebar-footer{align-items:center;width:100%}html[data-sidebar=collapsed] .footer-row:first-child{flex-direction:column}html[data-sidebar=collapsed] .theme-cycle{display:inline-flex!important}html[data-sidebar=collapsed] .sidebar .icon-btn{width:40px;height:36px}html[data-sidebar=collapsed] [data-label]{position:relative}html[data-sidebar=collapsed] [data-label]:hover:after,html[data-sidebar=collapsed] [data-label]:focus-visible:after{content:attr(data-label);position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);z-index:40;padding:5px 9px;border-radius:6px;background:var(--ink);color:var(--surface);font-size:.78rem;font-weight:600;white-space:nowrap;pointer-events:none;box-shadow:0 6px 18px #0000002e}html[data-sidebar=collapsed] .tool-nav{overflow:visible}}@media(max-width:820px){.app{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:50;height:auto;border-right:0;border-bottom:1px solid var(--line)}.sidebar-top{min-height:56px;padding:0 6px 0 12px}.collapse-toggle{display:none!important}.mobile-only{display:inline-flex!important}.sidebar .icon-btn{width:44px;height:44px}.drawer-head{display:flex!important;align-items:center;justify-content:space-between}.sidebar-panel{position:fixed;inset:0 auto 0 0;z-index:60;width:min(304px,86vw);align-items:stretch;padding:10px 12px 14px;background:var(--surface);box-shadow:8px 0 32px #00000040;transform:translate(-105%);visibility:hidden;transition:transform .2s ease,visibility 0s linear .2s}html[data-drawer-open] .sidebar-panel{transform:none;visibility:visible;transition:transform .2s ease}.search-trigger{min-height:44px}.search-trigger .kbd-hint{display:none}.group a{min-height:44px;box-sizing:border-box}.drawer-backdrop{position:fixed;inset:0;z-index:55;background:#0a0e148c}html[data-drawer-open] body{overflow:hidden}}@media(prefers-reduced-motion:reduce){.sidebar-panel,.group-toggle .chev{transition:none!important}}[hidden]{display:none!important}.app>main{min-width:0}@media(max-width:820px){.card-grid,.category-grid{grid-template-columns:minmax(0,1fr)}}.prose{display:flex;flex-direction:column;gap:22px;max-width:68ch;line-height:1.6}.prose h1{margin:0}.prose h2{margin:0 0 6px;font-size:1.05rem}.prose p,.prose ul{margin:0}.prose ul{padding-left:20px}.prose li+li{margin-top:4px}.prose a{color:var(--accent);text-underline-offset:2px}.prose-date{margin-top:4px!important;color:var(--muted);font-size:.875rem}.logo-container[data-astro-cid-tvrurpns]{display:inline-flex;align-items:center;gap:8px;text-decoration:none;white-space:nowrap;line-height:1}.logo-tile[data-astro-cid-tvrurpns]{display:block;flex-shrink:0;border-radius:5px}.logo-title[data-astro-cid-tvrurpns]{font-weight:750;font-size:1.1rem;letter-spacing:-.02em;color:var(--ink);line-height:1}
