/* Phase 8.7 presentation is scoped; existing quiz and MASTER layouts are retained. */
.c87-screen{max-width:1180px;margin:0 auto;padding:24px 16px 40px;color:#214b46}.c87-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:22px}.c87-heading h1{font-size:clamp(25px,3vw,38px);margin:8px 0}.c87-heading p{margin:8px 0;color:#536e61}.c87-kicker{font-size:14px;font-weight:700;letter-spacing:.04em;color:#647c55}.c87-screen .btn,.c87-empty .btn,.c87-region .btn,.c87-home .btn,.c87-card-progress .btn{min-height:46px;white-space:normal;font-size:16px;line-height:1.6}.c87-screen progress,.c87-region progress,.c87-card-progress progress{width:100%;height:12px;accent-color:#438366}.c87-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.c87-stat{border:1px solid #d6dfca;border-radius:19px;background:#fffdf5;padding:23px}.c87-stat h2{font-size:19px;margin:0}.c87-big{font-size:56px;font-weight:800;line-height:1.3;margin:16px 0 10px}.c87-big small{font-size:19px;color:#557461;font-weight:500}.c87-rest{font-size:15px;line-height:1.7;margin:10px 0 0;font-weight:700}.c87-goal{background:#fcf0cd;border:1px solid #edda9f;border-radius:18px;padding:23px 26px;margin:22px 0;display:flex;justify-content:space-between;align-items:center;gap:24px}.c87-goal h2{font-size:23px;line-height:1.6;margin:7px 0}.c87-goal p{font-size:15px;line-height:1.8;margin:6px 0}.c87-goal .btn{flex-shrink:0;max-width:300px}.c87-challenge{background:#eaf2e4;border:1px solid #c8d8bd;border-radius:18px;padding:24px}.c87-challenge h2{font-size:25px;margin:0 0 7px}.c87-challenge p{font-size:15px;line-height:1.8}.c87-filters{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}.c87-filters label{display:grid;gap:7px;font-size:15px;font-weight:700}.c87-filters select{box-sizing:border-box;width:100%;min-height:48px;font-size:17px;padding:10px 12px;border:1px solid #b9cdb0;border-radius:10px;background:#fff;color:#214b46}.c87-start{min-width:260px;font-size:20px!important}.c87-pool-note{font-weight:700}.c87-section-heading{margin:32px 0 18px}.c87-section-heading h2{font-size:24px;margin-bottom:9px}.c87-section-heading p{font-size:15px;line-height:1.8}.c87-regions{display:grid;grid-template-columns:1fr 1fr;gap:18px}.c87-region{border:1px solid #d5dfce;border-radius:17px;background:#fffdf6;padding:22px;margin:0 0 18px;min-width:0}.c87-regions .c87-region{margin:0}.c87-region h3{font-size:24px;margin:6px 0 8px}.c87-region strong{font-size:23px}.c87-region progress{margin-top:16px}.c87-region p{font-size:15px;line-height:1.8;margin:9px 0}.c87-region .c87-master{color:#5e7356;font-size:14px}.c87-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.c87-actions .btn{flex:1 1 180px}.c87-region.is-complete{border:2px solid #c4a448;background:#fff9e7}.c87-region.c87-common{margin-top:20px;background:#eef0fa;border-color:#d1d2e7}.c87-region-compact{margin:20px 0;padding:18px}.c87-region-compact h3{font-size:21px}.c87-home{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid #d6dfc8;border-radius:15px;background:#f5f7e9;padding:14px 18px;margin:18px 0}.c87-home>div{display:flex;flex-wrap:wrap;gap:7px 16px;align-items:baseline}.c87-home strong{font-size:18px}.c87-home span{font-size:15px;color:#567052}.c87-home .btn{background:#fffdf7;color:#315e4a;border:1px solid #c6d6bc;font-size:15px}.c87-bottom{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0}.c87-definitions{border-top:1px solid #cfdac5;padding-top:14px;font-size:15px;line-height:1.9}.c87-definitions summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:700}.c87-empty{max-width:900px;margin:25px auto;padding:28px}.c87-empty h1{font-size:27px;line-height:1.7}.c87-empty>.c87-kicker{display:block;margin-top:20px}.c87-empty p{line-height:1.9}.c87-result{padding:18px;border:1px solid #ceddc2;background:#eef5e7;border-radius:14px;margin:20px 0}.c87-result p{font-weight:700}.c87-screen :is(button,select,summary):focus-visible,.c87-card-progress button:focus-visible,.c87-home button:focus-visible{outline:4px solid #e8b644;outline-offset:3px}
@media(max-width:950px){.c87-stats{gap:11px}.c87-stat{padding:18px 15px}.c87-stat h2{font-size:17px}.c87-big{font-size:48px}.c87-big small{font-size:16px}.c87-goal{flex-direction:column;align-items:stretch;gap:12px}.c87-goal .btn{max-width:none}.c87-home{align-items:flex-start;flex-direction:column;gap:10px}.c87-home .btn{width:100%}}
@media(max-width:620px){.c87-screen{padding:18px 10px}.c87-heading{align-items:flex-start;gap:10px}.c87-heading .btn{flex-shrink:0;font-size:14px;padding:10px}.c87-heading h1{font-size:23px}.c87-heading p{font-size:14px}.c87-stats{grid-template-columns:1fr}.c87-stat{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;padding:17px}.c87-stat h2{font-size:17px}.c87-big{font-size:40px;margin:0;grid-column:2;grid-row:1/3}.c87-big small{font-size:15px}.c87-stat progress{grid-column:1/-1;grid-row:3}.c87-rest{grid-column:1;font-size:13px;margin:0}.c87-goal{padding:18px}.c87-goal h2{font-size:20px}.c87-challenge{padding:18px}.c87-challenge h2{font-size:22px}.c87-filters{grid-template-columns:1fr;gap:14px}.c87-start{min-width:0;width:100%}.c87-regions{grid-template-columns:1fr}.c87-region{padding:18px}.c87-home{padding:14px}.c87-empty{padding:20px}.c87-empty h1{font-size:23px}}
.c87-gallery-heading{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}.c87-gallery-heading .btn{min-height:46px;font-size:16px}.c87-collection-counts{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}.c87-collection-counts .collection-count{margin:0;padding:10px 16px;border-radius:12px;background:#edf4e7;font-size:20px}.c87-card-progress{margin-top:16px;padding:15px;border:1px solid #d4dfca;border-radius:13px;background:#f2f6eb;text-align:left;min-width:0}.c87-card-state{font-size:16px;font-weight:800;color:#3e7259}.c87-card-progress p{font-size:14px;line-height:1.8;margin:8px 0}.c87-card-progress strong{font-size:21px}.c87-card-progress progress{margin:6px 0}.c87-card-progress .btn{display:block;width:100%;padding:11px;font-size:15px;min-height:48px}.c87-card-progress .c87-course-note{font-size:13px;color:#5e7559}.c87-card-progress.is-complete{background:#fff3cf;border-color:#d1b35b}.discovery-card.c87-card-complete{border:3px solid #c7a345;background:#fffcf0;box-shadow:0 4px 18px #c7a34518}.c87-card-complete .c87-card-state{color:#87641d}.c87-discovery .discovery-card.locked{opacity:1}.c87-discovery .locked-art{background:linear-gradient(145deg,#e7eadb,#d4ddc9);color:#71846d;min-height:190px}.c87-discovery .locked-art small{font-size:14px}.c87-discovery .discovery-card{min-width:0}.c87-discovery .discovery-card h2{overflow-wrap:anywhere}.c87-discovery .btn{min-height:46px}#card-dialog .c87-card-progress{margin:18px 0}
.c87-region-mini{padding:14px;margin:15px 0;border-radius:12px;border:1px solid #d0ddc2;background:#eff5e6;display:grid;gap:10px}.c87-region-mini strong{font-size:16px;line-height:1.7}.c87-region-mini .btn{min-height:46px;font-size:16px;white-space:normal}.c87-region-mini[data-completion-region="日置市共通"]{background:#eef0fa;border-color:#d1d2e7}
.c87-toast{position:fixed;left:18px;bottom:18px;z-index:65;box-sizing:border-box;max-width:min(490px,calc(100vw - 36px));padding:16px 18px;border:2px solid #b79c45;border-radius:16px;background:#fffae6;color:#435d39;box-shadow:0 8px 28px #273e342b;display:flex;align-items:center;gap:14px;pointer-events:none;animation:c87-arrive .2s ease-out}.c87-toast strong{font-size:17px;line-height:1.7}.c87-toast small{display:block;font-size:14px;line-height:1.8;margin-top:5px}.c87-toast button{pointer-events:auto;flex-shrink:0;min-height:44px;min-width:44px;font-size:23px;border:1px solid #c7b76e;border-radius:10px;background:#fffdf5;color:#435d39;cursor:pointer}.c87-toast button:focus-visible{outline:4px solid #438366;outline-offset:3px}@keyframes c87-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.c87-toast{animation:none}.c87-screen *{scroll-behavior:auto!important}}@media(max-width:620px){.c87-toast{left:12px;max-width:calc(100vw - 24px);padding:13px 14px;gap:10px}.c87-toast strong{font-size:15px}.c87-toast small{font-size:13px}}

.c87-icon{display:inline-flex;width:1.2em;height:1.2em;vertical-align:-.2em;margin-right:.15em;flex:0 0 auto}.c87-icon svg{display:block;width:100%;height:100%}
