/* Standalone save-report components migrated from the former shell. */
.notebook .sr-report{font-size:var(--text-body);line-height:1.65;min-width:0;color:var(--ink)}
.notebook .sr-report>.section-heading:first-child{margin-top:0}
.notebook .sr-report h2{font-size:var(--text-heading);line-height:1.4;letter-spacing:.01em}
.notebook .sr-report h3{font-size:var(--text-heading);line-height:1.5;margin:0 0 16px}
.notebook .sr-report h4{font-size:var(--text-heading);line-height:1.5;margin:0 0 8px}
.notebook .sr-report p{margin:0 0 16px}
.notebook .sr-report :is(.caption,.tiny-note,small,.tag,.sr-note,.sr-meta){font-size:var(--text-meta);line-height:1.6;color:var(--muted);overflow-wrap:anywhere}
.notebook .sr-report :is(button,input,select,summary){min-height:44px}
.notebook .sr-report :is(input,select){background:#fff;border-color:var(--line);border-radius:12px;font-size:var(--text-control)}
.notebook .sr-report .search-row{margin:16px 0;align-items:stretch;flex-wrap:wrap;gap:8px}
.notebook .sr-report .search-row input{flex:1 1 180px}
.notebook .sr-report .search-row select{flex:0 1 auto;max-width:100%}
.notebook .sr-intro{margin:0 0 24px}
.notebook .sr-intro h2{margin:0 0 8px}
.notebook .sr-intro .eyebrow{margin:0 0 8px;color:var(--muted);font-size:var(--text-meta);letter-spacing:.03em}
.notebook .sr-intro>p:last-child{margin-bottom:0;color:var(--muted);font-size:var(--text-body)}
.notebook .sr-section{margin:0 0 24px}
.notebook .sr-section>.sr-summary{margin-bottom:0}
.notebook .sr-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0 0 24px}
.notebook .sr-metric{display:flex;flex-direction:column;justify-content:space-between;gap:8px;min-width:0;padding:16px;background:#fff;border:1px solid var(--line);border-radius:16px;overflow-wrap:anywhere}
.notebook .sr-metric strong{font-size:var(--text-heading);font-weight:700;line-height:1.25;color:var(--ink)}
.notebook .sr-metric>span{font-size:var(--text-body);color:var(--muted)}
.notebook .sr-metric>small{font-size:var(--text-meta);line-height:1.5}
.notebook :is(.sr-group,.sr-report details[data-report-key]){min-width:0;background:#fff;border:1px solid var(--line);border-radius:16px;margin:0 0 24px;padding:16px}
.notebook :is(details.sr-group,.sr-report details[data-report-key]){padding:0;overflow:hidden}
.notebook :is(.sr-group,.sr-report details[data-report-key])>summary{display:flex;align-items:center;gap:8px;justify-content:space-between;padding:16px;list-style:none;cursor:pointer;font-size:var(--text-control);font-weight:700;line-height:1.5;color:var(--ink);background:#fff;overflow-wrap:anywhere}
.notebook :is(.sr-group,.sr-report details[data-report-key])>summary::-webkit-details-marker{display:none}
.notebook :is(.sr-group,.sr-report details[data-report-key])>summary::after{content:'⌄';flex:none;color:var(--muted);font-size:var(--text-control);font-weight:400}
.notebook :is(.sr-group,.sr-report details[data-report-key])[open]>summary::after{content:'⌃'}
.notebook :is(.sr-group,.sr-report details[data-report-key])>summary :is(h3,p){margin:0;font-size:var(--text-heading)}
.notebook :is(details.sr-group,.sr-report details[data-report-key])>:not(summary){margin:0 16px 16px}
.notebook :is(details.sr-group,.sr-report details[data-report-key])[open]>summary{border-bottom:1px solid #e6eff3;margin-bottom:16px}
.notebook .sr-group>h3{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.notebook .sr-list{display:grid;gap:8px;min-width:0}
.notebook .sr-row{display:flex;align-items:center;justify-content:space-between;gap:8px 16px;min-width:0;padding:12px 0;border-bottom:1px solid #e6eff3;overflow-wrap:anywhere}
.notebook .sr-row:last-child{border-bottom:0}
.notebook .sr-row>span:first-child,.notebook .sr-row>div{min-width:0}
.notebook .sr-row>strong{font-size:var(--text-body);text-align:right;white-space:pre-line}
.notebook .sr-row .item-icon{width:32px;height:32px}
.notebook .sr-row .sr-item-name{flex:1;min-width:0}
.notebook .sr-row-copy{display:flex;flex:1;flex-direction:column;gap:4px;min-width:0}
.notebook .sr-row-copy>strong{font-size:var(--text-body);font-weight:600;line-height:1.5}
.notebook .sr-row-copy>small{font-size:var(--text-meta);line-height:1.5}
.notebook button.sr-row{width:100%;padding:12px;border:1px solid #dbe8ee;border-radius:12px;background:#f7fbfd;text-align:left}
.notebook button.sr-row:hover{background:#fff4f8;border-color:#d890a5}
.notebook .sr-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:16px;min-width:0;margin:0 0 24px}
.notebook .sr-item{min-width:0;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;overflow-wrap:anywhere}
.notebook button.sr-item{text-align:left}
.notebook .sr-item>h3{margin-bottom:8px}
.notebook .sr-item :is(p,.caption){margin:0 0 8px}
.notebook .sr-item>:last-child{margin-bottom:0}
.notebook .sr-item-head,.notebook .sr-item-heading{display:flex;align-items:center;gap:12px;min-width:0;margin-bottom:8px}
.notebook .sr-item-head>div,.notebook .sr-item-heading>div{min-width:0}
.notebook .sr-item-head h3,.notebook .sr-item-heading h3{font-size:var(--text-heading);margin:0}
.notebook .sr-badge{display:inline-flex;align-items:center;gap:4px;max-width:100%;min-height:24px;padding:2px 8px;border-radius:8px;background:#e8f2f6;color:#486574;font-size:var(--text-meta);font-weight:400;line-height:1.5;vertical-align:middle;overflow-wrap:anywhere}
.notebook .sr-badge:is([data-status=done],[data-status=met],.done,.ready){background:#e9f4eb;color:#416449}
.notebook .sr-badge:is([data-status=missing],[data-status=unmet],.missing){background:#fff0e2;color:#805a33}
.notebook .sr-badge:is([data-status=unknown],.unknown){background:#efeaf6;color:#6a557a}
.notebook .sr-badge:is([data-scope=personal],.personal){background:#fae6ec;color:#7a4155}
.notebook .sr-badge:is([data-scope=team],.team){background:#e6f0fa;color:#3a607a}
.notebook .sr-progress{display:block;width:100%;height:6px;margin:8px 0 0;overflow:hidden;border:0;border-radius:999px;background:#e5eef2;accent-color:#d68fa4}
.notebook .sr-progress>i,.notebook .sr-progress>span{display:block;height:100%;background:#d68fa4;border-radius:inherit;max-width:100%}
.notebook .sr-progress>.sr-progress-track{width:100%;background:#e5eef2}
.notebook .sr-progress-track>i{display:block;height:100%;max-width:100%;background:#d68fa4;border-radius:inherit}
.notebook progress.sr-progress::-webkit-progress-bar{background:#e5eef2;border-radius:999px}
.notebook progress.sr-progress::-webkit-progress-value{background:#d68fa4;border-radius:999px}
.notebook progress.sr-progress::-moz-progress-bar{background:#d68fa4;border-radius:999px}
.notebook .sr-empty{padding:24px 16px;border:1px dashed #bcd2dd;background:#f7fbfd;border-radius:16px;font-size:var(--text-body);color:var(--muted)}
.notebook .sr-report .overview{gap:16px;padding:16px;align-items:flex-start;margin:0 0 24px;flex-direction:column}
.notebook .sr-report .identity{min-width:0}
.notebook .sr-report .identity h2{margin:0 0 4px}
.notebook .sr-report .quick-stats{width:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.notebook .sr-report .quick-stat{min-width:0;gap:4px;overflow-wrap:anywhere}
.notebook .sr-report .quick-stat strong{font-size:var(--text-heading);line-height:1.25}
.notebook .sr-report .quick-stat span{font-size:var(--text-body)}
.notebook .sr-report .behavior{display:block}
.notebook .sr-report .behavior-card{align-items:flex-start;padding:16px;gap:8px}
.notebook .sr-report .behavior-card span{font-size:var(--text-body)}
.notebook .sr-report .skills{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:16px}
.notebook .sr-report .skill-card{padding:16px}
.notebook .sr-report .skill-top{font-size:var(--text-body)}
.notebook .sr-report .collections{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 24px}
.notebook .sr-report .collection{align-items:flex-start;justify-content:flex-start;gap:8px;min-width:0;padding:16px;text-align:left;background:#fff;font-size:var(--text-body);overflow-wrap:anywhere}
.notebook .sr-report .collection.active{border-color:#cf8ba0;background:#fff2f6;box-shadow:inset 0 0 0 1px #e5b3c2}
.notebook .sr-report .collection>span:last-child{font-size:var(--text-body);width:auto}
.notebook .sr-report .gallery-panel{padding:16px}
.notebook .sr-report .gallery{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));margin-top:16px}
.notebook .sr-report .gallery .item{font-size:var(--text-body);border:1px solid #dbe8ee;background:#f5fafc;min-height:136px}
.notebook .sr-report .gallery .item.missing{background:#f7f8f9;border-style:dashed}
.notebook .sr-report .gallery .item.unknown{background:#f6f2fa}
.notebook .sr-report .item-name{font-size:var(--text-body);line-height:1.5}
.notebook .sr-report .gallery .item small{font-size:var(--text-meta)}
.notebook .sr-report .filters{gap:8px;margin:0}
.notebook .sr-report .filters select{flex:1 1 160px;min-width:0}
.notebook .sr-report .friends{grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:8px;margin-top:16px}
.notebook .sr-report .friend{min-height:88px;padding:16px;background:#fff;border-color:var(--line);align-items:flex-start}
.notebook .sr-report .friend-info b{font-size:var(--text-body)}
.notebook .sr-report .friend-info small{font-size:var(--text-meta)}
.notebook .sr-report .hearts{font-size:var(--text-meta);letter-spacing:0;line-height:1.5}
.notebook .sr-report .data-panel{margin:0 0 24px;padding:16px}
.notebook .sr-report .data-panel .data-panel{margin:16px 0;background:#f5fafc}
.notebook .sr-report .data-row,.notebook .sr-report .perfect-row{font-size:var(--text-body);gap:16px;padding:12px 0;border-color:#e6eff3;overflow-wrap:anywhere}
.notebook .sr-report .data-row>span{min-width:0}
.notebook .sr-report .data-row strong{min-width:0}
.notebook .sr-report .perfection-panel{padding:16px}
.notebook .sr-report .perfection{gap:8px 24px}
.notebook .sr-report .perfection-total{gap:16px;margin:0 0 16px}
.notebook .sr-report .perfection-total>strong{font-size:var(--text-heading)}
.notebook .sr-report .perfection-total p{font-size:var(--text-body);margin:8px 0 0}
.notebook .sr-report .perfection-total b{font-size:var(--text-body)}
.notebook .sr-report .guide-fold{border-color:var(--line);margin:0 0 16px}
.notebook .sr-report .guide-fold summary{color:var(--ink);background:#fff}
.notebook .sr-report .list-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:16px}
.notebook .sr-report .list-card{margin:0;padding:16px;background:#fff;min-width:0;overflow-wrap:anywhere}
.notebook .sr-report .list-card span:last-child{font-size:var(--text-body)}
.notebook .sr-report .inventory-row{margin:0;min-width:0;padding:12px;background:#f7fbfd;border-color:#dbe8ee;border-radius:12px;flex-wrap:wrap;gap:8px 12px;font-size:var(--text-body)}
.notebook .sr-report .inventory-row span:last-child{font-size:var(--text-body);margin-left:auto;max-width:100%}
.notebook .sr-report .sr-group .sr-group{margin:0 0 16px;background:#f7fbfd}
.notebook .sr-report .sr-group .sr-group>summary{background:#f7fbfd}
.notebook .sr-group .sr-summary{margin-bottom:0}
.notebook .sr-group-body>:last-child{margin-bottom:0}
.notebook .sr-entry{display:grid;grid-template-columns:40px minmax(0,1fr);grid-template-rows:auto auto;align-content:center;align-items:center;gap:4px 16px;min-width:0;min-height:96px;padding:16px;text-align:left;background:#fff;border-color:var(--line);border-radius:16px}
.notebook .sr-entry>.item-icon{width:40px;height:40px;--sprite-size:40px;grid-row:1 / 3}
.notebook .sr-entry>b{font-size:var(--text-body);line-height:1.5;overflow-wrap:anywhere}
.notebook .sr-entry>small{grid-column:2;font-size:var(--text-meta);line-height:1.5;overflow-wrap:anywhere}
.notebook .sr-entry:hover{background:#fff4f8;border-color:#d890a5}
/* Native category drawer stays separate from article-detail dialogs. */
.notebook .portal-directory-dialog{inset:0 auto 0 0;margin:0;width:min(340px,calc(100vw - 24px));height:100dvh;max-height:100dvh;max-width:none;padding:0;border:0;border-radius:0 16px 16px 0;background:var(--portal-mist);color:var(--ink);box-shadow:8px 0 40px #17154d33;overflow:hidden}
.notebook .portal-directory-dialog::backdrop{background:#17154d75}
.portal-directory-header{display:flex;align-items:center;justify-content:space-between;gap:8px;height:76px;padding:16px;border-bottom:1px solid #cee1e8;background:#fff}
.notebook .portal-directory-header h2{margin:0;font-size:var(--text-heading);color:var(--ink)}
.portal-directory-close{flex:none;min-height:44px;background:#fff;border-color:var(--line);font-size:var(--text-body);border-radius:12px;color:var(--ink)}
.portal-directory-dialog .portal-directory-body{display:block;height:calc(100dvh - 76px);overflow:auto;overscroll-behavior:contain;padding:16px;margin:0;background:var(--portal-mist);border-radius:0}
.portal-directory-dialog .portal-category-entries{grid-template-columns:1fr}
.portal-directory-dialog .portal-directory-link{font-size:var(--text-body);min-height:56px}
.portal-directory-dialog .portal-directory-link .portal-pixel{width:40px;height:40px}
@media(min-width:720px){
 .notebook{padding-bottom:0}
 .notebook #pages{position:static;flex:1;display:flex;gap:12px;margin:0;padding:0;box-shadow:none;background:none;border-radius:0;max-width:680px}
 .notebook #pages .page-tab{flex:1;min-height:48px;max-width:112px;color:var(--portal-cloud);font-size:var(--text-control)}
 .notebook #pages .page-tab:hover{background:#e8faff24}
 .notebook #pages .page-tab.active{background:var(--primary);color:#3c2630}
 .portal-directory-body{display:block}
}
@media(min-width:1200px){
 .notebook .sr-summary{grid-template-columns:repeat(4,minmax(0,1fr))}
 .notebook .sr-summary:has(>.sr-metric:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}
 .notebook .sr-summary:has(>.sr-metric:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
 .notebook .sr-summary:has(>.sr-metric:first-child:last-child){grid-template-columns:1fr}
 .notebook .sr-report .quick-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
 .notebook .companion-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .notebook .companion-grid.shared{grid-template-columns:repeat(2,minmax(0,1fr))}
 .portal-tools-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
 .portal-tool{grid-template-columns:1fr;grid-template-rows:auto auto auto;text-align:center;justify-items:center;gap:4px;min-height:108px}
 .portal-tool .portal-pixel,.portal-tool .portal-pixel-placeholder{grid-row:auto}
 .portal-tool small{grid-column:auto}
 .notebook .guide-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .notebook .friends{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(min-width:720px) and (max-width:1199px){
 .notebook .topbar{gap:8px}
 .notebook .brand{flex-basis:152px;font-size:var(--text-body)}
 .notebook #pages{gap:4px}
 .notebook #pages .page-tab{font-size:var(--text-control);min-width:54px}
 .notebook .refresh{min-width:72px;font-size:var(--text-body);padding:8px}
 .portal-shell{grid-template-columns:200px minmax(0,1fr);gap:16px}
 .portal-directory{padding:12px}
 .notebook #report{padding:16px}
 .portal-directory-link{font-size:var(--text-body);gap:8px;padding:8px 4px}
 .portal-directory-link .portal-pixel{width:32px;height:32px}
 .portal-role-row #players{gap:8px}
 .portal-role-row #players button{font-size:var(--text-control)}
 .portal-welcome h2{font-size:var(--text-heading)}
 .notebook .guide-grid,.notebook .friends{grid-template-columns:1fr}
 .portal-tools-grid{grid-template-columns:1fr}
 .notebook .sr-summary{gap:8px}
 .notebook .sr-report .collections{grid-template-columns:repeat(2,minmax(0,1fr))}
 .notebook .sr-report .quick-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .notebook .sr-report .perfection{grid-template-columns:1fr}
}
@media(max-width:719px){
 .portal-cloud-atlas{width:90vw}
 .portal-cloud-atlas.left{left:-44%;top:43%}
 .portal-cloud-atlas.right{right:-42%;top:47%;width:86vw}
 .portal-forest-atlas{width:166px;height:157px;background-size:512px 1002px;opacity:.85}
 .portal-forest-atlas.left{background-position:0 -539px}
 .portal-forest-atlas.right{background-position:-346px -539px}
 .notebook .topbar{padding:20px 16px 12px;min-height:80px}
 .notebook .brand{flex-basis:auto}
 .notebook main{padding:0 16px 24px}
 .portal-shell{grid-template-columns:minmax(0,1fr);gap:12px}
 .portal-directory{position:static;max-height:none;overflow:visible;background:none;box-shadow:none;padding:0}
 .portal-welcome,.portal-directory>.save-note{display:none}
 .portal-role-row{margin:0;gap:12px}
 .portal-role-row #players{gap:12px}
 .portal-role-row #players button{font-size:var(--text-control);min-width:0;padding:8px 4px}
 .notebook .portal-menu-toggle{display:block;flex:none;min-width:102px;min-height:48px;padding:8px 12px;background:var(--primary);border:0;border-radius:var(--portal-radius);font-size:var(--text-body);color:#3c2630;font-weight:700}
 .portal-directory>.portal-directory-body{display:none}
 .portal-category summary{font-size:var(--text-control)}
 .portal-category-entries{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}
 .portal-directory-link{font-size:var(--text-body);gap:8px;min-height:60px}
 .portal-directory-link .portal-pixel{width:32px;height:32px}
 .notebook #report{padding:16px}
 .portal-snapshot{margin:0 0 16px;padding:12px;font-size:var(--text-body)}
 .notebook #subpages{flex-wrap:wrap;max-width:100%;padding-bottom:4px;gap:8px}
 .notebook #subpages button{flex:none;white-space:normal}
 .portal-snapshot-content{gap:4px 8px}
 .portal-snapshot-role{width:auto}
 .notebook .companion-title{font-size:var(--text-heading)}
 .notebook .companion-grid,.notebook .companion-grid.shared{grid-template-columns:1fr}
 .notebook .companion-card{padding:16px}
 .portal-tools-grid{grid-template-columns:1fr}
 .portal-atlas-heading{gap:0 8px}
 .portal-fish-grid,.portal-crop-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .portal-npc-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
 .portal-atlas-heading h3{font-size:var(--text-heading)}
 .notebook .guide-grid,.notebook .friends{grid-template-columns:1fr}
 .notebook .gallery-panel{padding:16px}
 .notebook .section-heading h2{font-size:var(--text-heading)}
 .portal-library-cta .portal-wiki-button{width:100%}
 .notebook .companion-shortcuts button{flex:1 1 calc(50% - 8px)}
 .notebook dialog{color:#3c2630}
 .notebook .sr-summary{gap:8px;margin-bottom:24px}
 .notebook .sr-metric{gap:8px;padding:16px 12px}
 .notebook .sr-metric strong{font-size:var(--text-heading)}
 .notebook .sr-report .collections{grid-template-columns:repeat(2,minmax(0,1fr))}
 .notebook .sr-report .collection{flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:12px}
 .notebook .sr-report .quick-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
 .notebook .sr-report .quick-stat strong{font-size:var(--text-heading)}
 .notebook .sr-report .behavior{display:block}
 .notebook .sr-report .skills{grid-template-columns:1fr;gap:8px}
 .notebook .sr-report .sr-grid{grid-template-columns:1fr;gap:8px}
 .notebook .sr-report .friends{grid-template-columns:1fr}
 .notebook .sr-report .gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
 .notebook .sr-report .gallery .item{padding:12px 4px;min-height:128px}
 .notebook .sr-report .search-row select{flex:1 1 140px;max-width:100%}
 .notebook .sr-report .sr-row{flex-wrap:wrap}
 .notebook .sr-report .sr-row>strong{margin-left:auto;max-width:100%}
 .notebook .sr-report .data-row{font-size:var(--text-body);gap:8px}
 .notebook .sr-report .data-row>strong{max-width:60%}
 .notebook .sr-report .inventory-row span:last-child{width:auto;margin-left:auto}
}
