/* Gemensamma byggstenar: tydliga ytor, korta läsavstånd och rymliga tryckytor. */
[hidden]{display:none!important}
.hub-page .project-hero{padding:24px 0 28px}
.hub-page .breadcrumb{padding-top:0;font-size:.72rem}
.hub-page .project-kicker{margin:20px 0 12px;font-size:.64rem;letter-spacing:.14em}
.hub-page .project-title{margin-bottom:12px}
.hub-page .project-lead{max-width:740px;margin-bottom:0}
.hub-page section{padding:28px 0 48px}
.hub-page .wrap{max-width:1408px}
.hub-page h2{font-size:1.55rem;line-height:1.3}
.hub-page h3{line-height:1.4}
.hub-page :focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.hub-page button,.hub-page input,.hub-page select,.hub-page textarea{font:inherit}
.hub-page button{cursor:pointer}
.hub-page button:disabled{opacity:.5;cursor:wait}
.hub-page input:not([type=checkbox]),.hub-page select,.hub-page textarea{width:100%;min-width:0;min-height:44px;border:1px solid var(--line-2);border-radius:6px;background:var(--bg);color:var(--text);padding:11px 12px;line-height:1.45}
.hub-page textarea{resize:vertical;min-height:100px}
.hub-page input::placeholder,.hub-page textarea::placeholder{color:var(--text-2);opacity:.8}
.hub-page input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);flex:0 0 auto}
.hub-page label,.field-label{display:block;font-size:.83rem;font-weight:500;margin-bottom:7px}
.hub-page .check-label{display:flex;gap:10px;align-items:flex-start;font-size:.88rem;margin:0;cursor:pointer}
.check-label input{margin-top:3px}
.hub-page .btn{font-size:.85rem;min-height:44px;padding:10px 16px;white-space:normal;text-align:center}
.hub-page .btn-small{font-size:.8rem;min-height:44px;padding:8px 12px}
.hub-page .btn-ghost{border-color:var(--line-2)}
.hub-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 24px}
.hub-toolbar h2,.hub-toolbar h3{margin-right:auto}
.hub-toolbar .field{flex:1;min-width:180px}
.hub-panel{border:1px solid var(--line);border-radius:10px;padding:24px;background:var(--surface);min-width:0}
.hub-panel+.hub-panel{margin-top:22px}
.hub-panel h2,.hub-panel h3{margin-bottom:16px}
.hub-panel p{color:var(--text-2);font-size:.9rem}
.hub-panel p+p{margin-top:12px}
.hub-grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:26px;align-items:start}
.hub-grid.admin-grid{grid-template-columns:minmax(220px,.8fr) minmax(0,1.5fr)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form-grid .wide{grid-column:1/-1}
.form-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:22px}
.form-note,.hub-muted{font-size:.79rem;color:var(--text-2);line-height:1.6}
.form-note{margin-top:7px}
.hub-status{padding:14px 16px;border-left:2px solid var(--text-2);background:var(--surface-2);color:var(--text-2);font-size:.88rem;margin:18px 0;overflow-wrap:anywhere}
.hub-status:empty{display:none}
.hub-status[data-error=true]{border-color:var(--text);color:var(--text)}
.empty-state{grid-column:1/-1;padding:48px 24px;border:1px dashed var(--line-2);border-radius:10px;color:var(--text-2);line-height:1.7;text-align:center;background:var(--surface)}
.empty-state strong{display:block;color:var(--text);margin-bottom:7px}
.empty-state .btn{margin-top:20px}
.filter-panel .field{margin-bottom:18px}
.filter-panel h2{font-size:1.1rem;margin-bottom:20px}
.filter-panel fieldset{padding:0;border:0;min-width:0;margin:0 0 20px}
.filter-panel legend{font-size:.83rem;font-weight:500;margin-bottom:10px}
.product-options{max-height:260px;overflow:auto;border:1px solid var(--line);margin-top:9px;padding:8px}
.product-option{padding:7px 3px;overflow-wrap:anywhere}
.product-count{font-family:var(--mono);font-size:.68rem;margin-left:auto;color:var(--text-2);white-space:nowrap}
.selected-products{margin-top:8px;display:flex;flex-wrap:wrap;gap:5px}
.filter-flags{display:grid;gap:13px;margin-top:20px}
.hub-badge{display:inline-flex;align-items:center;font: .67rem var(--mono);letter-spacing:.04em;border:1px solid var(--line-2);padding:4px 7px;line-height:1.35;overflow-wrap:anywhere}
.hub-badge.emphasis{background:var(--inverse-bg);color:var(--inverse-text);border-color:var(--inverse-bg)}
.watch-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.rss-box{margin-top:22px;padding-top:22px;border-top:1px solid var(--line-2)}
.rss-box input{font-family:var(--mono)!important;font-size:.72rem!important}
.rss-box .form-actions{margin-top:10px}
.source-details{margin-bottom:22px;font-size:.8rem;color:var(--text-2)}
.source-details summary{cursor:pointer;color:var(--text);padding:10px 0}
.source-list{list-style:none}
.source-list li{border-top:1px solid var(--line);padding:10px 0;overflow-wrap:anywhere}
.source-list strong{color:var(--text);font-weight:500}
.result-heading{display:flex;gap:16px;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line-2);padding-bottom:18px;margin-bottom:0}
.result-heading h2{font-size:1.05rem}
.result-heading .field{display:flex;align-items:center;gap:8px}
.result-heading label{white-space:nowrap;margin:0;font-size:.76rem}
.result-heading select{padding:8px;font-size:.8rem}
.vuln-row{border-bottom:1px solid var(--line-2);padding:25px 0}
.vuln-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.vuln-id{font-family:var(--mono);font-size:1rem;letter-spacing:-.03em;margin-right:auto;text-decoration:underline;text-underline-offset:4px}
.vuln-row h3{font-size:1.05rem;font-weight:600;margin:12px 0 9px;overflow-wrap:anywhere}
.vuln-description{font-size:.9rem;color:var(--text-2);overflow-wrap:anywhere}
.vuln-meta{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:16px;font: .7rem var(--mono);color:var(--text-2)}
.vuln-detail{margin-top:15px;color:var(--text-2);font-size:.84rem}
.vuln-detail summary{cursor:pointer;color:var(--text)}
.vuln-detail p{margin-top:10px}
.vuln-detail ul{padding-left:18px;margin-top:10px}
.vuln-detail a{color:var(--text);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:24px}
.pagination span{font: .72rem var(--mono);color:var(--text-2);text-align:center}
.login-panel{max-width:510px}
.login-panel label{margin-top:20px}
.admin-item{width:100%;display:block;text-align:left;background:transparent;border:0;border-top:1px solid var(--line);padding:15px 0;color:var(--text)}
.admin-item:hover,.admin-item[aria-pressed=true]{background:var(--surface-2)}
.admin-item strong{display:block;font-size:.93rem;overflow-wrap:anywhere}
.admin-item span{display:block;color:var(--text-2);font: .68rem var(--mono);margin-top:5px}
.code-field{font-family:var(--mono)!important;font-size:.8rem!important}
.catalog-card{min-width:0}
.catalog-card h3{overflow-wrap:anywhere}
.catalog-card .card-foot{flex-wrap:wrap}
.catalog-body{margin:0 0 20px;min-width:0;font-size:.82rem;color:var(--text-2)}
.catalog-body summary{cursor:pointer;color:var(--text)}
.catalog-body pre,.catalog-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7;background:var(--bg);padding:16px;border:1px solid var(--line);margin-top:12px;max-height:400px;overflow:auto}
.catalog-body pre{font-family:var(--mono);font-size:.76rem}
.catalog-body button{margin-top:10px}
.hub-intro-links{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.hub-intro-links a{padding:28px;border:1px solid var(--line);border-radius:10px;background:var(--surface);transition:background .2s}
.hub-intro-links a:last-child{border-right:1px solid var(--line)}
.hub-intro-links a:hover{background:var(--surface-2)}
.hub-intro-links h2{font-size:1.4rem;margin:12px 0}
.hub-intro-links p{font-size:.9rem;color:var(--text-2)}
.hub-intro-links .sec-eyebrow{margin:0}
.hub-page footer{padding:32px 0}
.hub-page footer .foot-bottom{margin:0;padding:0;border:0}
.hub-page footer:has(.foot-inner) .foot-bottom{margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}
.hub-page .catalog-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 220px;align-items:end;padding:20px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.hub-page .catalog-toolbar .field{min-width:0}
.catalog-card .card-top{align-items:flex-start}
.catalog-card .card-tag{border-radius:4px;font-size:.64rem;padding:5px 7px;letter-spacing:.05em}
.catalog-card .stack span{border-radius:4px}
.catalog-card .status{font-family:var(--font);font-size:.78rem;letter-spacing:0;text-transform:none}
.home-page .hero .lead{max-width:640px;margin:20px 0 28px;font-size:1.03rem}
.home-page .hero .eyebrow{margin-bottom:18px;color:var(--text-2)}
.home-page .hero .grad{color:var(--accent)}
.home-page .hub-intro-links h2{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:1.3rem}
.home-page .hub-intro-links .sec-eyebrow{font-size:.65rem;color:var(--accent)}
@media(max-width:1180px){.hub-grid{grid-template-columns:245px minmax(0,1fr);gap:20px}.hub-panel{padding:20px}.hub-page .wrap{padding:0 24px}}
@media(max-width:980px){.hub-grid,.hub-grid.admin-grid{grid-template-columns:1fr}.product-options{max-height:190px}}
@media(max-width:900px){.hub-page.has-sidebar{padding-left:0}.hub-page section{padding:24px 0 36px}.hub-page .project-hero{padding:20px 0 24px}.hub-page .project-title{font-size:clamp(1.85rem,5vw,2.6rem);overflow-wrap:anywhere}.hub-page input,.hub-page select,.hub-page textarea{font-size:16px!important}.hub-page .hub-badge{font-size:.67rem}}
@media(max-width:600px){.hub-page .project-kicker{display:none}.hub-page .breadcrumb{margin-bottom:14px}}
@media(max-width:600px){.hub-page .wrap{padding:0 16px}.form-grid,.hub-intro-links,.hub-page .catalog-toolbar{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.hub-panel{padding:18px}.hub-page .project-lead{font-size:.94rem;line-height:1.65}.pagination{flex-wrap:wrap}.hub-page .card{padding:22px}.hub-intro-links a{padding:22px}.hub-page .catalog-toolbar{padding:16px}.home-page .hero h1{font-size:clamp(2rem,8vw,3rem)}.home-page .cta-row{gap:10px}.home-page .hero .lead{font-size:.95rem}.home-page .hub-toolbar{gap:14px}}
