.patterns-panel{min-width:0;color:var(--ink);padding-bottom:24px}
.patterns-panel .pat-heading{padding:26px 0 22px}
.patterns-panel .pat-quick-nav{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 19px}
.patterns-panel .pat-quick-nav button{background:var(--theme-soft);border:1px solid var(--line);padding:8px 12px;color:var(--green);font-size:11px;font-weight:600}
.patterns-panel .pat-quick-nav button:hover{background:var(--theme-selected);border-color:var(--theme-border)}
.patterns-panel .pat-card{scroll-margin-top:24px}
.patterns-panel .pat-record-actions{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex-shrink:0}
.patterns-panel .pat-record-actions button{font-size:11px;white-space:nowrap}
.patterns-panel .pat-record-actions .quiet{padding:6px 0}
.patterns-panel h1{font:400 34px/1.15 var(--serif);letter-spacing:-.9px;margin:0 0 9px}
.patterns-panel h2{font:400 25px/1.2 var(--serif);letter-spacing:-.4px;margin:0 0 8px}
.patterns-panel h3{font-size:14px;margin:0 0 5px;font-weight:650}
.patterns-panel .pat-heading p:not(.eyebrow),.patterns-panel .pat-section-heading p:not(.eyebrow){font-size:12px;line-height:1.65;color:var(--muted);margin:0;max-width:780px}
.patterns-panel .pat-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:9px;background:var(--white);margin-bottom:20px;overflow:hidden}
.patterns-panel .pat-overview>div{padding:20px 23px;border-right:1px solid var(--line)}
.patterns-panel .pat-overview>div:last-child{border-right:0}
.patterns-panel .pat-overview strong{display:block;font:33px/1.15 var(--serif);color:var(--green);margin-bottom:5px}
.patterns-panel .pat-overview span{font-size:11px;color:var(--muted);line-height:1.5;display:block}
.patterns-panel .pat-card{min-width:0;border:1px solid var(--line);border-radius:9px;background:var(--white);overflow:hidden;margin:0 0 20px}
.patterns-panel .pat-section-heading{display:flex;gap:20px;align-items:flex-start;justify-content:space-between;padding:23px 24px}
.patterns-panel .eyebrow{font-size:9px;margin-bottom:8px}
.patterns-panel .pat-control{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:600;color:var(--muted);min-width:0}
.patterns-panel .pat-section-heading>.pat-control{min-width:170px;max-width:100%;flex:0 1 300px}
.patterns-panel .pat-generation-context{margin:0 24px 23px;padding:17px 19px;background:var(--theme-soft);border:1px solid var(--line);border-radius:6px}
.patterns-panel .pat-generation-context dl{display:flex;flex-wrap:wrap;gap:13px 34px;margin:0 0 10px}
.patterns-panel .pat-generation-context dt{font-size:10px;color:var(--muted);margin-bottom:5px}
.patterns-panel .pat-generation-context dd{margin:0;font:22px/1.25 var(--serif);color:var(--green)}
.patterns-panel .pat-year-coverage,.patterns-panel .pat-year-note{font-size:11px;line-height:1.6;color:var(--muted);margin:0}
.patterns-panel .pat-year-note{margin-top:3px;max-width:780px}
.patterns-panel .pat-control input,.patterns-panel .pat-control select{width:100%;min-width:0;font-size:12px;font-weight:400}
.patterns-panel .pat-chart-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.patterns-panel .pat-bar-section{min-width:0;padding:22px 24px}
.patterns-panel .pat-bar-section+.pat-bar-section{border-left:1px solid var(--line)}
.patterns-panel .pat-caption{font-size:11px;color:var(--muted);line-height:1.5;margin:0 0 17px}
.patterns-panel .pat-bars{display:flex;flex-direction:column;gap:3px}
.patterns-panel .pat-bar{display:grid;grid-template-columns:minmax(100px,1fr) minmax(55px,1.6fr) 36px;gap:10px;align-items:center;width:100%;text-align:left;background:transparent;border:1px solid transparent;padding:7px 5px;font-size:11px;color:var(--ink);min-height:31px}
.patterns-panel .pat-bar:hover{background:var(--theme-soft);border-color:var(--line)}
.patterns-panel .pat-bar-label{overflow-wrap:anywhere;line-height:1.4}
.patterns-panel .pat-bar-track{height:11px;display:block;background:var(--theme-soft);border-radius:2px;overflow:hidden}
.patterns-panel .pat-bar-fill{height:100%;display:block;background:var(--green);border-radius:2px;min-width:2px;opacity:.8}
.patterns-panel .pat-bar.pat-unknown .pat-bar-fill{background:#738079}
.patterns-panel .pat-bar strong{text-align:right;font-variant-numeric:tabular-nums;font-size:11px;font-weight:650}
.patterns-panel .pat-more{margin-top:10px;font-size:11px;padding-left:5px}
.patterns-panel .pat-empty{padding:18px 0;color:var(--muted);font-size:12px;line-height:1.6;margin:0}
.patterns-panel .pat-scroll{max-width:100%;overflow:auto;min-width:0;border-top:1px solid var(--line)}
.patterns-panel table{width:100%;text-align:left;border-collapse:collapse;font-size:12px}
.patterns-panel th,.patterns-panel td{padding:11px 16px;border-bottom:1px solid var(--line);max-width:none;line-height:1.5}
.patterns-panel th{font-size:10px;letter-spacing:.3px;white-space:nowrap;color:var(--muted);background:var(--theme-soft)}
.patterns-panel td:first-child{min-width:0;font-weight:400;color:var(--ink)}
.patterns-panel tbody tr{cursor:default}
.patterns-panel tbody tr:hover{background:transparent}
.patterns-panel .pat-matrix{font-variant-numeric:tabular-nums;font-size:11px}
.patterns-panel .pat-matrix th,.patterns-panel .pat-matrix td{padding:0;text-align:right;min-width:57px}
.patterns-panel .pat-matrix th:first-child{position:sticky;left:0;text-align:left;min-width:145px;background:var(--white);z-index:1;border-right:1px solid var(--line)}
.patterns-panel .pat-matrix thead th:first-child{background:var(--theme-soft);padding:11px 13px}
.patterns-panel .pat-matrix button{display:block;min-height:40px;width:100%;padding:10px 13px;text-align:inherit;border:0;border-radius:0;background:transparent;color:var(--green);font:inherit;font-weight:600}
.patterns-panel .pat-matrix button:hover{box-shadow:inset 0 0 0 2px var(--green)}
.patterns-panel .pat-matrix .pat-active-generation{box-shadow:inset 0 3px 0 var(--green);background:var(--theme-selected)}
.patterns-panel .pat-matrix .pat-zero{color:var(--muted);font-weight:400}
.patterns-panel .pat-matrix tfoot th,.patterns-panel .pat-matrix tfoot td{background:var(--theme-soft);font-weight:700}
.patterns-panel .pat-lifespans td:not(:first-child){font-variant-numeric:tabular-nums;text-align:right}
.patterns-panel .pat-lifespans th:not(:first-child){text-align:right}
.patterns-panel .pat-lifespans tbody tr:nth-child(even){background:var(--theme-softer)}
.patterns-panel .pat-lifespans td button{color:var(--green);font-size:12px;padding:4px 0;text-decoration:underline;text-decoration-color:var(--theme-border);text-underline-offset:3px}
.patterns-panel .pat-records{scroll-margin-top:24px}
.patterns-panel .pat-records h2 span{font:12px var(--sans);color:var(--muted);margin-left:5px}
.patterns-panel .pat-records .pat-section-heading>.secondary{font-size:11px;white-space:nowrap;margin-top:3px}
.patterns-panel .pat-record-controls{display:grid;grid-template-columns:minmax(210px,1.7fr) repeat(3,minmax(130px,1fr));gap:13px;padding:18px 24px;background:var(--theme-softer);border-top:1px solid var(--line)}
.patterns-panel .pat-filter-status{margin:0;padding:12px 24px;font-size:11px;color:var(--muted);line-height:1.6;background:var(--theme-soft)}
.patterns-panel .pat-record-table{min-width:970px}
.patterns-panel .pat-record-table td{vertical-align:top;font-size:11px;max-width:230px}
.patterns-panel .pat-record-table td:first-child{min-width:180px}
.patterns-panel .pat-record-table td button{display:block;line-height:1.5;font-size:12px;font-weight:650;color:var(--green);text-decoration:underline;text-decoration-color:var(--theme-border);text-underline-offset:3px}
.patterns-panel .pat-record-table td small{font-size:10px;color:var(--muted);font-weight:400;margin-top:4px}
.patterns-panel .pat-record-table tbody tr:nth-child(even){background:var(--theme-softer)}
.patterns-panel .pat-record-table tbody tr:hover{background:var(--theme-hover)}
.patterns-panel .pat-record-table th[aria-sort=ascending] button::after{content:' ↑';color:var(--green)}
.patterns-panel .pat-record-table th[aria-sort=descending] button::after{content:' ↓';color:var(--green)}
.patterns-panel .pat-pagination{display:flex;gap:15px;align-items:center;justify-content:space-between;padding:15px 24px;font-size:11px;color:var(--muted)}
.patterns-panel .pat-pagination>div{display:flex;gap:7px}
.patterns-panel .pat-pagination button{font-size:11px}
.patterns-panel .pat-source-note{font-size:11px;line-height:1.7;color:var(--muted);margin:0 2px;max-width:960px}
.patterns-panel .pat-loading,.patterns-panel .pat-error{padding:26px;border:1px solid var(--line);border-radius:8px;background:var(--white);margin-bottom:22px;font-size:13px;line-height:1.6}
.patterns-panel .pat-error p{margin:0 0 14px}
.patterns-panel .pat-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1100px){.patterns-panel .pat-record-controls{grid-template-columns:repeat(3,minmax(0,1fr))}.patterns-panel .pat-search{grid-column:1/-1}.patterns-panel .pat-bar{grid-template-columns:minmax(93px,1fr) minmax(45px,1.25fr) 32px;gap:7px}.patterns-panel .pat-bar-section{padding:20px 17px}}
@media(max-width:750px){.patterns-panel h1{font-size:29px}.patterns-panel h2{font-size:23px}.patterns-panel .pat-section-heading{padding:19px 17px;flex-wrap:wrap;gap:15px}.patterns-panel .pat-section-heading>.pat-control{width:100%}.patterns-panel .pat-overview>div{padding:16px 12px}.patterns-panel .pat-overview strong{font-size:28px}.patterns-panel .pat-chart-grid{grid-template-columns:1fr}.patterns-panel .pat-bar-section+.pat-bar-section{border-left:0;border-top:1px solid var(--line)}.patterns-panel .pat-bar{grid-template-columns:minmax(100px,1fr) minmax(80px,1.7fr) 36px}.patterns-panel .pat-record-controls{grid-template-columns:1fr 1fr;padding:16px;gap:12px}.patterns-panel .pat-record-controls>.pat-control:last-child{grid-column:1/-1}.patterns-panel .pat-filter-status{padding:12px 17px}.patterns-panel .pat-pagination{padding:13px 15px;flex-wrap:wrap}.patterns-panel .pat-pagination>div{margin-left:auto}.patterns-panel .pat-overview span{font-size:10px}.patterns-panel th,.patterns-panel td{padding:10px 12px}.patterns-panel .pat-heading{padding-top:22px}}
