:root{color:#243129;font-synthesis:none;text-rendering:optimizelegibility;--green:#355f45;--green-dark:#244333;--green-soft:#e8f0e9;--paper:#fff;--line:#cfd9d1;--muted:#5d6a62;--focus:#174f9c;--shadow:0 8px 24px #1e392814;background:#f4f6f1;font-family:Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,sans-serif}*{box-sizing:border-box}html{background:#f4f6f1;min-width:320px}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}button,input{font:inherit}input{max-width:100%}button{cursor:pointer;min-height:48px}button:focus-visible,input:focus-visible{outline:3px solid color-mix(in srgb, var(--focus) 35%, transparent);outline-offset:3px}button:disabled{cursor:not-allowed}h1,h2,p{margin-top:0}.page{width:min(1080px,100%);min-width:0;padding:20px max(16px, env(safe-area-inset-right)) max(28px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));margin:0 auto}.home-page{align-items:center;min-height:100dvh;display:grid}.home-card{border:1px solid var(--line);border-top:5px solid var(--green);background:var(--paper);width:min(680px,100%);box-shadow:var(--shadow);border-radius:18px;margin:0 auto;padding:clamp(28px,8vw,56px)}.eyebrow{color:var(--green);letter-spacing:.08em;margin-bottom:10px;font-size:.82rem;font-weight:800}.home-card h1,.page-header h1,.detail-header h1{color:var(--green-dark);overflow-wrap:anywhere}.home-card h1{margin-bottom:18px;font-size:clamp(2rem,8vw,3.5rem);line-height:1.2}.home-description,.page-header p,.description-section p{color:var(--muted);line-height:1.8}.primary-action{border:1px solid var(--green);color:#fff;background:var(--green);border-radius:10px;width:100%;margin-top:22px;padding:13px 18px;font-weight:800}.primary-action:hover{background:var(--green-dark)}.content-page,.detail-page{padding-top:24px}.page-header{margin-bottom:18px}.page-header h1{margin-bottom:8px;font-size:clamp(1.8rem,7vw,2.6rem)}.back-button{border:1px solid var(--line);width:fit-content;max-width:100%;color:var(--green-dark);background:var(--paper);border-radius:9px;margin-bottom:24px;padding:8px 12px;font-weight:700}.search-panel{border:1px solid var(--line);background:var(--paper);border-radius:12px;margin-bottom:20px;padding:16px}.search-panel label{margin-bottom:7px;font-weight:800;display:block}.search-panel input{width:100%;min-height:48px;color:inherit;background:#fff;border:1px solid #aebdb2;border-radius:9px;padding:10px 12px}.result-count{color:var(--muted);margin:9px 0 0;font-size:.9rem}.plant-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:14px;display:grid}.plant-card{border:1px solid var(--line);min-width:0;color:inherit;text-align:left;background:var(--paper);border-radius:13px;grid-template-rows:auto 1fr;padding:0;display:grid;overflow:hidden;box-shadow:0 2px 10px #1e39280d}.plant-card:hover{box-shadow:var(--shadow);border-color:#89a692}.plant-card-body{align-content:start;gap:7px;min-width:0;padding:14px;display:grid}.plant-card-body strong{color:var(--green-dark);overflow-wrap:anywhere;font-size:1.2rem}.plant-card-body>span:not(.plant-number,.card-link){min-width:0;color:var(--muted);overflow-wrap:anywhere;grid-template-columns:4.5em minmax(0,1fr);gap:5px;font-size:.88rem;line-height:1.5;display:grid}.plant-card-body b{color:#405348}.plant-number{color:var(--green);font-size:.82rem;font-weight:800}.card-link{color:var(--green);margin-top:5px;font-weight:800}.plant-image{background:#e9eee9;place-items:center;min-width:0;display:grid;position:relative;overflow:hidden}.plant-image-thumbnail{aspect-ratio:4/3}.plant-image-detail{aspect-ratio:4/3;border-radius:12px;width:100%;max-height:min(520px,56svh);margin-bottom:22px}.plant-image img{object-fit:contain;width:100%;height:100%;display:block}.image-loading{color:var(--muted);background:#edf1ed;place-items:center;font-size:.88rem;font-weight:700;display:grid;position:absolute;inset:0}.image-placeholder{color:var(--muted);border:1px dashed #aebdb2;gap:4px}.image-placeholder span{font-size:.78rem}.empty-message{border:1px dashed var(--line);text-align:center;background:var(--paper);border-radius:12px;padding:24px 16px}.detail-card{border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow);border-radius:16px;padding:clamp(16px,5vw,30px)}.detail-header{margin-bottom:18px}.detail-header h1{margin-bottom:0;font-size:clamp(2rem,8vw,3rem)}.plant-information{border-top:1px solid var(--line);gap:0;margin:0;display:grid}.plant-information>div{border-bottom:1px solid var(--line);grid-template-columns:7em minmax(0,1fr);gap:12px;min-width:0;padding:13px 0;display:grid}.plant-information dt{color:var(--green);font-weight:800}.plant-information dd{overflow-wrap:anywhere;min-width:0;margin:0;line-height:1.65}.description-section{background:var(--green-soft);border-radius:12px;margin-top:24px;padding:18px}.description-section h2{color:var(--green-dark);margin-bottom:8px;font-size:1.15rem}.description-section p{margin-bottom:0}.plant-questions-section,.question-list-summary,.question-selection,.answer-section,.feedback-panel{border:1px solid var(--line);background:#fff;border-radius:12px;margin-top:24px;padding:18px}.plant-questions-section h2,.question-list-summary h2,.question-selection h2,.answer-section h2,.feedback-panel h2{color:var(--green-dark);margin-bottom:12px;font-size:1.2rem}.plant-questions-section p{margin-bottom:12px;line-height:1.7}.category-list{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.category-list li,.category-badge{width:fit-content;max-width:100%;color:var(--green-dark);background:var(--green-soft);overflow-wrap:anywhere;border:1px solid #a9bbaa;border-radius:999px;padding:5px 9px;font-size:.85rem;font-weight:800}.plant-questions-section .primary-action,.question-start-button{margin-top:18px}.preparing-message{color:var(--muted);background:#f7f9f6;border:1px dashed #aebdb2;border-radius:9px;margin:0;padding:14px;font-weight:700}.question-list-page{padding-top:24px}.question-list-summary,.question-selection{box-shadow:var(--shadow)}.question-selection-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.question-selection-list button{border:1px solid var(--line);width:100%;min-width:0;color:inherit;text-align:left;background:#fff;border-radius:10px;gap:6px;padding:15px;display:grid}.question-selection-list button:hover{background:#f8faf7;border-color:#78977f}.question-selection-list strong,.question-selection-list span{overflow-wrap:anywhere;min-width:0}.question-list-number{color:var(--green);font-size:.82rem;font-weight:800}.question-list-link{color:var(--green);font-weight:800}.question-page{padding-top:24px}.question-card{border:1px solid var(--line);background:var(--paper);min-width:0;box-shadow:var(--shadow);border-radius:16px;padding:clamp(16px,5vw,30px)}.question-header{min-width:0;margin-bottom:20px}.question-progress{color:var(--muted);margin-bottom:10px;font-weight:800}.question-header h1{color:var(--green-dark);overflow-wrap:anywhere;margin:14px 0 0;font-size:clamp(1.45rem,6vw,2.1rem);line-height:1.5}.answer-section{background:#f9faf8}.choice-list{gap:10px;display:grid}.choice-button{width:100%;min-width:0;min-height:64px;color:inherit;text-align:left;background:#fff;border:2px solid #aebdb2;border-radius:11px;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.choice-button:not(:disabled):hover{background:#f3f7f3;border-color:#78977f}.choice-symbol{width:34px;height:34px;color:var(--green-dark);background:#fff;border:1px solid #93a397;border-radius:50%;place-items:center;font-weight:900;display:grid}.choice-text,.choice-status{overflow-wrap:anywhere;min-width:0}.choice-text{font-weight:700;line-height:1.5}.choice-status{text-align:right;font-size:.82rem;font-weight:900}.choice-selected{background:#edf5ff;border-color:#315d8d;box-shadow:0 0 0 2px #315d8d24}.choice-selected .choice-status{color:#174f9c}.choice-correct{background:#e9f7ed;border-color:#277544}.choice-correct .choice-status{color:#195b32}.choice-incorrect{background:#fff0f0;border-color:#a73b3b}.choice-incorrect .choice-status{color:#8f2929}.choice-answered{color:#657069;background:#f3f4f2}.choice-button:disabled{opacity:1}.feedback-panel{border-width:2px}.feedback-correct{background:#eef9f1;border-color:#277544}.feedback-incorrect{background:#fff3f3;border-color:#a73b3b}.feedback-correct h2{color:#195b32}.feedback-incorrect h2{color:#8f2929}.feedback-details{gap:12px;margin:0;display:grid}.feedback-details>div{border-top:1px solid #3f534533;min-width:0;padding-top:12px}.feedback-details dt{margin-bottom:4px;font-size:.85rem;font-weight:900}.feedback-details dd{overflow-wrap:anywhere;min-width:0;margin:0;line-height:1.7}.after-answer-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px;display:grid}.after-answer-actions .primary-action{grid-column:1/-1;margin-top:0}.secondary-action{min-width:0;min-height:48px;color:var(--green-dark);overflow-wrap:anywhere;background:#fff;border:1px solid #8da092;border-radius:9px;padding:10px 12px;font-weight:800}.auth-page,.dashboard-page{min-height:100dvh;padding-top:28px}.auth-shell,.result-card{border:1px solid var(--line);background:var(--paper);width:min(760px,100%);box-shadow:var(--shadow);border-radius:18px;margin:0 auto;padding:clamp(18px,5vw,36px)}.auth-header h1,.dashboard-header h1,.result-card h1{color:var(--green-dark);overflow-wrap:anywhere}.auth-header p,.storage-note,.feature-card>p:not(.feature-icon),.muted-message,.last-practice{color:var(--muted);line-height:1.7}.local-notice,.storage-note{background:var(--green-soft);border:1px solid #b9c8bb;border-radius:12px;margin:20px 0;padding:16px}.local-notice h2,.profile-picker h2,.auth-form h2,.mistake-section h2{color:var(--green-dark);margin-bottom:10px;font-size:1.15rem}.local-notice ul{gap:6px;margin:0;padding-left:1.25em;line-height:1.6;display:grid}.profile-picker{margin:22px 0}.profile-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:10px;display:grid}.profile-list button{border:1px solid var(--line);min-width:0;color:inherit;text-align:left;background:#fff;border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:12px;display:grid}.profile-list strong,.profile-list span{overflow-wrap:anywhere;min-width:0}.profile-list span:last-child{color:var(--green);font-size:.82rem;font-weight:800}.auth-tabs{grid-template-columns:1fr 1fr;gap:8px;display:grid}.auth-tabs button{border:1px solid var(--line);background:#fff;border-radius:9px;font-weight:800}.auth-tabs button[aria-selected=true]{border:2px solid var(--green);color:var(--green-dark);background:var(--green-soft)}.auth-form{border:1px solid var(--line);background:#f9faf8;border-radius:12px;margin-top:18px;padding:18px}.auth-form label{gap:6px;margin-top:14px;font-weight:800;display:grid}.auth-form input{background:#fff;border:1px solid #aebdb2;border-radius:9px;width:100%;min-height:48px;padding:10px 12px}.error-message{color:#7f2020;overflow-wrap:anywhere;background:#fff0f0;border:2px solid #a73b3b;border-radius:9px;margin:14px 0 0;padding:12px;font-weight:700}.dashboard-header{justify-content:space-between;align-items:flex-start;gap:18px;min-width:0;display:flex}.dashboard-header>div:first-child{min-width:0}.dashboard-header h1{margin-bottom:8px;font-size:clamp(1.8rem,6vw,3rem)}.profile-actions{flex:0 390px;grid-template-columns:1fr 1fr;gap:8px;display:grid}.feature-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.feature-card{border:1px solid var(--line);border-top:5px solid var(--green);min-width:0;box-shadow:var(--shadow);background:#fff;border-radius:16px;flex-direction:column;padding:clamp(18px,4vw,28px);display:flex}.feature-card h2{color:var(--green-dark);font-size:1.5rem}.feature-card .primary-action{margin-top:auto}.feature-icon{color:#fff;background:var(--green);border-radius:50%;place-items:center;width:48px;height:48px;font-size:1.4rem;font-weight:900;display:grid}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 20px;display:grid}.summary-grid>div,.result-stats>div{border:1px solid var(--line);text-align:center;background:#f8faf7;border-radius:9px;min-width:0;padding:10px}.summary-grid dt,.result-stats dt{color:var(--muted);font-size:.78rem;font-weight:800}.summary-grid dd,.result-stats dd{overflow-wrap:anywhere;margin:4px 0 0;font-weight:900}.menu-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:14px;display:grid}.menu-button{border:1px solid var(--line);min-width:0;min-height:144px;color:inherit;text-align:left;background:#fff;border-radius:13px;align-content:start;gap:7px;padding:18px;display:grid;box-shadow:0 2px 10px #1e39280d}.menu-button:not(:disabled):hover{box-shadow:var(--shadow);border-color:#78977f}.menu-button:disabled{color:#68726b;background:#f1f3f0;border-style:dashed}.menu-button strong{color:var(--green-dark);overflow-wrap:anywhere;font-size:1.35rem}.menu-number,.availability{color:var(--muted);font-size:.84rem;font-weight:800}.availability.available,.menu-link{color:var(--green);font-weight:900}.menu-link{margin-top:auto}.rank-badge{color:#3d4740;overflow-wrap:anywhere;background:#f5f6f4;border:2px solid #9ca69f;border-radius:999px;width:fit-content;max-width:100%;padding:5px 9px;font-size:.86rem;font-weight:900;display:inline-block}.rank-bronze{color:#643714;background:#f8e9da;border-color:#925f35}.rank-silver{color:#3e4a53;background:#eef2f5;border-color:#71808c}.rank-gold{color:#6a4a00;background:#fff5ca;border-color:#ac7a00}.rank-black{color:#fff;background:#181818;border-color:#111}.result-card h1{font-size:clamp(1.8rem,7vw,2.7rem)}.score-panel{border:2px solid var(--green);background:var(--green-soft);border-radius:13px;justify-items:center;gap:8px;margin:20px 0;padding:20px;display:grid}.score-panel>strong{color:var(--green-dark);font-size:clamp(2.2rem,10vw,4rem)}.result-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;display:grid}.mistake-section{margin-top:24px}.mistake-list{gap:14px;padding-left:1.4em;display:grid}.mistake-list>li{background:#fff7f7;border:1px solid #d7aaaa;border-radius:10px;padding:15px}.mistake-list h3{color:var(--green-dark);margin:0 0 10px}.mistake-list dl{gap:8px;margin:0;display:grid}.mistake-list dl>div{min-width:0}.mistake-list dt{font-size:.82rem;font-weight:900}.mistake-list dd{overflow-wrap:anywhere;margin:2px 0 0;line-height:1.6}.success-message{color:#195b32;background:#eef9f1;border:2px solid #277544;border-radius:9px;padding:14px;font-weight:900}.result-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.result-actions .primary-action{grid-column:1/-1}@media (width<=520px){.page{padding-right:max(12px, env(safe-area-inset-right));padding-left:max(12px, env(safe-area-inset-left))}.home-card{border-radius:14px;padding:28px 20px}.plant-grid{grid-template-columns:1fr}.plant-card{grid-template-rows:1fr;grid-template-columns:minmax(104px,34%) minmax(0,1fr)}.plant-image-thumbnail{aspect-ratio:auto;height:100%;min-height:176px}.plant-information>div{grid-template-columns:1fr;gap:4px}.choice-button{grid-template-columns:34px minmax(0,1fr)}.choice-status{text-align:left;grid-column:2}.dashboard-header,.feature-grid{grid-template-columns:1fr;display:grid}.profile-actions{grid-template-columns:1fr;width:100%}.summary-grid,.result-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=360px){.plant-card{grid-template-columns:1fr}.plant-image-thumbnail{aspect-ratio:4/3;min-height:0}.plant-questions-section,.question-list-summary,.question-selection,.answer-section,.feedback-panel{padding:14px}.after-answer-actions{grid-template-columns:1fr}.after-answer-actions .primary-action{grid-column:auto}.auth-shell,.result-card,.auth-form{padding:14px}.auth-tabs,.result-actions{grid-template-columns:1fr}.result-actions .primary-action{grid-column:auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important}}.question-page{width:min(980px,100%);padding-top:8px;padding-bottom:16px}.question-card{border-radius:13px;padding:clamp(10px,2.5vw,18px)}.question-header{margin-bottom:8px}.question-topline{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.compact-back{min-height:44px;margin:0;padding:6px 10px}.question-progress{min-width:0;color:var(--muted);text-align:right;overflow-wrap:anywhere;margin:0;font-size:.9rem}.question-header h1{margin:6px 0 0;font-size:clamp(1.15rem,3.5vw,1.55rem);line-height:1.35}.question-layout{gap:10px;min-width:0;display:grid}.plant-image-question{aspect-ratio:auto;border-radius:9px;width:100%;max-height:none;margin:0}.image-open-button{width:100%;min-height:0;color:inherit;cursor:zoom-in;background:0 0;border:0;place-items:center;padding:0;display:grid;position:relative}.image-open-button:disabled{cursor:wait}.plant-image-question .image-open-button img{object-fit:contain;object-position:center;width:auto;max-width:100%;height:auto;max-height:clamp(210px,38dvh,360px)}.image-open-icon{color:#fff;pointer-events:none;background:#142319c7;border:2px solid #fff;border-radius:50%;place-items:center;width:36px;height:36px;font-size:1.35rem;font-weight:900;display:grid;position:absolute;bottom:7px;right:7px;box-shadow:0 2px 8px #00000047}.image-lightbox{z-index:1000;padding:max(64px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom));overscroll-behavior:contain;background:#000000e0;place-items:center;display:grid;position:fixed;inset:0}.image-lightbox-close{top:max(10px, env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));z-index:1;color:#fff;background:#000000b8;border:2px solid #fff;border-radius:999px;min-width:76px;padding:9px 14px;font-weight:900;position:fixed}.image-lightbox-image{object-fit:contain;cursor:zoom-out;touch-action:pinch-zoom;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:auto;max-width:calc(100vw - 24px);height:auto;max-height:calc(100dvh - 84px);display:block}.visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.question-page .answer-section{background:0 0;border:0;min-width:0;margin:0;padding:0}.question-page .choice-list{gap:6px}.question-page .choice-button{border-radius:9px;gap:8px;min-height:52px;padding:7px 10px}.question-page .choice-symbol{width:30px;height:30px}.question-page .choice-text{font-size:.95rem;line-height:1.35}.question-page .feedback-panel{border-radius:9px;margin-top:8px;padding:9px 11px}.question-page .feedback-panel h2{margin-bottom:5px;font-size:1.05rem}.question-page .feedback-panel p{margin:0;line-height:1.45}.question-page .feedback-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.question-page .feedback-details>div{padding-top:5px}.question-page .feedback-details dd{line-height:1.4}.question-action{z-index:2;padding-top:7px;padding-bottom:max(2px, env(safe-area-inset-bottom));background:linear-gradient(#ffffffbf,#fff 8px);position:sticky;bottom:0}.question-action-after-answer{margin-top:0}.question-action .primary-action{min-height:48px;margin-top:0;padding:10px 16px}.result-page{width:min(780px,100%);padding-top:12px}.result-card{padding:clamp(16px,4vw,28px)}.result-card h1{margin-bottom:14px;font-size:clamp(1.55rem,5vw,2.2rem)}.result-summary{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:0;display:grid}.result-summary>div{border:1px solid var(--line);text-align:center;background:#f8faf7;border-radius:9px;align-content:center;justify-items:center;min-width:0;padding:10px 7px;display:grid}.result-summary dt{color:var(--muted);font-size:.76rem;font-weight:800}.result-summary dd{overflow-wrap:anywhere;min-width:0;margin:4px 0 0;font-weight:900}.result-summary .score-result dd{color:var(--green-dark);font-size:1.45rem}.result-actions{margin-top:14px}.result-actions .primary-action{margin-top:0}.mistake-details{border:1px solid var(--line);background:#fff;border-radius:10px;margin-top:16px}.mistake-details summary{min-height:48px;color:var(--green-dark);cursor:pointer;padding:12px 14px;font-weight:900}.mistake-details .mistake-list{margin:0;padding:0 14px 14px 34px}.mistake-details .mistake-list>li{padding:12px}.mistake-details .mistake-list h2{color:var(--green-dark);margin:0 0 8px;font-size:1rem;line-height:1.45}@media (width>=800px){.question-layout{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;gap:16px}.plant-image-question .image-open-button img{max-height:min(68dvh,520px)}}@media (width<=640px){.question-page{padding-right:max(4px, env(safe-area-inset-right));padding-left:max(4px, env(safe-area-inset-left))}.question-card{padding:6px}.result-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.result-summary .score-result{grid-column:1/-1}}@media (width<=360px){.question-page{padding-right:max(3px, env(safe-area-inset-right));padding-left:max(3px, env(safe-area-inset-left))}.question-page .choice-button{grid-template-columns:30px minmax(0,1fr)}.question-page .choice-status{grid-column:2}.question-page .feedback-details,.result-actions{grid-template-columns:1fr}}@media (height<=650px) and (width<=799px){.plant-image-question .image-open-button img{max-height:clamp(180px,38dvh,225px)}.question-page .choice-button{min-height:48px}}
