:root{--color-primary: #1d3557;--color-primary-hover: #16283f;--color-on-primary: #ffffff;--color-bg: #f5f6f8;--color-surface: #ffffff;--color-text: #222222;--color-muted: #666666;--color-border: #cccccc;--color-border-light: #dddddd;--color-accent: #e9a23b;--color-accent-bg: #fdf0d5;--color-accent-text: #b5651d;--color-tag-bg: #e8edf3}[data-theme=dark]{--color-primary: #4a6fa5;--color-primary-hover: #3d5c8a;--color-on-primary: #ffffff;--color-bg: #14181f;--color-surface: #1f2530;--color-text: #e6e6e6;--color-muted: #9aa3b0;--color-border: #333a46;--color-border-light: #2a2f3a;--color-accent: #e0a94e;--color-accent-bg: #3a2f1a;--color-accent-text: #f0c26a;--color-tag-bg: #262c38}[data-theme=green]{--color-primary: #2e7d52;--color-primary-hover: #24603f;--color-on-primary: #ffffff;--color-bg: #f4f8f5;--color-surface: #ffffff;--color-text: #1f2b23;--color-muted: #5c6b62;--color-border: #cfd9d2;--color-border-light: #e0e8e3;--color-accent: #e9a23b;--color-accent-bg: #fdf0d5;--color-accent-text: #b5651d;--color-tag-bg: #e6f0ea}[data-theme=warm]{--color-primary: #c1440e;--color-primary-hover: #9c360b;--color-on-primary: #ffffff;--color-bg: #fbf6f0;--color-surface: #ffffff;--color-text: #2b2117;--color-muted: #7a6a5a;--color-border: #e3d3c2;--color-border-light: #ecdfd1;--color-accent: #2e7d52;--color-accent-bg: #e3f0e8;--color-accent-text: #24603f;--color-tag-bg: #f3e6d8}[data-exam-class=電験二種]{--color-primary: #1f7a5c;--color-primary-hover: #185f47;--color-accent: #e9a23b}[data-exam-class=電験一種]{--color-primary: #6a3d9a;--color-primary-hover: #55317d;--color-accent: #f0c26a}*{box-sizing:border-box}body{margin:0;font-family:Hiragino Sans,Yu Gothic,Meiryo,sans-serif;background:var(--color-bg);color:var(--color-text)}.header{background:var(--color-primary);color:var(--color-on-primary)}.header-inner{max-width:960px;margin:0 auto;padding:12px 20px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.logo{color:var(--color-on-primary);font-weight:700;font-size:1.2em;text-decoration:none;white-space:nowrap;flex-shrink:0}.nav{display:flex;flex-wrap:wrap;gap:16px;align-items:center}.nav a,.nav .link-button,.nav .user-email{white-space:nowrap}.nav a{color:var(--color-on-primary);text-decoration:none}.nav a:hover{text-decoration:underline}.nav .link-button{color:var(--color-on-primary);text-decoration:none}.nav .link-button:hover{text-decoration:underline}.user-email{opacity:.8;font-size:.9em}.link-button{background:none;border:none;color:var(--color-on-primary);cursor:pointer;text-decoration:underline;font-size:.95em;padding:0}.exam-class-tabs{background:var(--color-surface, #fff);border-bottom:1px solid var(--color-border)}.exam-class-tabs-inner{max-width:960px;margin:0 auto;padding:0 20px;display:flex;gap:4px}.exam-class-tab{background:none;border:none;border-bottom:3px solid transparent;padding:10px 16px;font-size:.95em;font-weight:700;color:var(--color-text);opacity:.6;cursor:pointer}.exam-class-tab:hover{opacity:.85}.exam-class-tab.active{opacity:1;color:var(--color-primary);border-bottom-color:var(--color-primary)}.container{max-width:960px;margin:0 auto;padding:24px 20px}.container.narrow{max-width:640px}.form{display:flex;flex-direction:column;gap:14px;max-width:360px}.form label{display:flex;flex-direction:column;gap:6px;font-size:.9em}.form input{padding:10px;border:1px solid var(--color-border);border-radius:6px;font-size:1em;background:var(--color-surface);color:var(--color-text)}button{background:var(--color-primary);color:var(--color-on-primary);border:none;border-radius:6px;padding:10px 18px;font-size:1em;cursor:pointer}button:hover{background:var(--color-primary-hover)}button:disabled{background:var(--color-muted);cursor:not-allowed}.error{color:#c0392b;font-weight:700}.link-button{background:none;border:none;padding:0;color:var(--color-primary);text-decoration:underline;cursor:pointer;font:inherit;font-weight:400}.note{color:var(--color-muted);font-size:.9em}.note.small{font-size:.8em;margin-top:12px}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:20px}.card{background:var(--color-surface);border-radius:10px;padding:20px;box-shadow:0 1px 4px #00000014}.card.highlight{border:2px solid var(--color-accent)}.card-clickable{display:block;text-decoration:none;color:inherit;cursor:pointer;transition:background-color .15s,box-shadow .15s}.card-clickable:hover,.card-clickable:focus-visible{background-color:var(--color-tag-bg);box-shadow:0 2px 8px #0000001f}.card-clickable .button-link{pointer-events:none}.card-clickable:hover .button-link{background:var(--color-primary-hover)}.stat-list{list-style:none;padding:0;margin:10px 0}.stat-list li{padding:4px 0}.admin-table{border-collapse:collapse;width:100%;font-size:.9em}.admin-table th,.admin-table td{border-bottom:1px solid var(--color-border, #e0e0e0);padding:6px 10px;text-align:left;white-space:nowrap}.admin-table th{background:var(--color-surface-alt, #f5f5f5)}.admin-table tbody tr:hover{background:var(--color-surface-alt, #f9f9f9)}.button-link{display:inline-block;margin-top:10px;background:var(--color-primary);color:var(--color-on-primary);padding:8px 14px;border-radius:6px;text-decoration:none;border:none;font-size:1em;cursor:pointer;font-family:inherit}.button-link.secondary{background:#6c8098}.button-link:disabled{opacity:.6;cursor:not-allowed}.error-text{color:#c0392b;font-size:.9em}.csv-actions{display:flex;gap:10px;flex-wrap:wrap}.filters{display:flex;gap:10px;margin:16px 0;flex-wrap:wrap}.filters select{padding:8px;border-radius:6px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}.quick-filters{margin-bottom:8px}.chip{padding:8px 14px;border-radius:999px;border:1px solid var(--color-primary);background:var(--color-surface);color:var(--color-primary);cursor:pointer;font-size:.9em}.chip.active{background:var(--color-primary);color:var(--color-on-primary)}.tag.priority{background:var(--color-accent-bg);color:var(--color-accent-text)}.field-group{margin-top:10px}.field-tag-list{list-style:none;padding:0;margin:6px 0;display:flex;flex-wrap:wrap;gap:6px}.tag.weak{background:#fdecea;color:#c0392b;text-decoration:none}.tag.strong{background:#e8f6ec;color:#1e7e42}a.tag.weak:hover{background:#f8d7d3}.weak-field-list{list-style:none;padding:0;margin:6px 0;display:flex;flex-direction:column;gap:10px}.weak-field-item{padding:8px 0;border-bottom:1px solid var(--color-border-light)}.weak-field-item:last-child{border-bottom:none}.weak-field-links{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px;font-size:.9em}.weak-field-links a{color:var(--color-primary)}.bar-chart-wrap{display:flex;gap:4px;margin-top:10px}.bar-chart-axis{position:relative;width:26px;flex-shrink:0;height:140px;padding-bottom:4px}.bar-chart-axis-label{position:absolute;right:4px;transform:translateY(50%);font-size:.65em;color:var(--color-muted)}.bar-chart{display:flex;align-items:flex-end;gap:3px;height:140px;margin-top:0;flex:1 1 auto;border-bottom:1px solid var(--color-border-light);padding-bottom:4px;overflow-x:auto}.bar-chart-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;flex:1 0 18px;height:100%}.bar-chart-bar{width:100%;max-width:14px;background:var(--color-tag-bg);border-radius:2px 2px 0 0}.bar-chart-bar.active{background:var(--color-primary)}.bar-chart-label{font-size:.6em;color:var(--color-muted);margin-top:4px;writing-mode:vertical-rl}.ranking-list{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-direction:column;gap:6px}.ranking-item{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;padding:8px 10px;border-radius:6px}.ranking-item.you{background:var(--color-accent-bg);font-weight:700}.ranking-rank{flex-shrink:0;width:3em;color:var(--color-primary)}.ranking-user{flex:1 1 auto;min-width:6em}.ranking-value{flex-shrink:0;color:var(--color-muted);margin-left:auto}.ranking-item .link-button{flex-shrink:0;white-space:nowrap}.staging-switcher{background:#3b2f1c;color:#ffe9c7;border-bottom:2px solid #b5651d;padding:8px 20px;font-size:.85rem}.staging-switcher-inner{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.staging-switcher-label{font-weight:700;letter-spacing:.02em}.staging-switcher-tabs{display:flex;gap:6px;flex-wrap:wrap}.staging-switcher-tab{padding:5px 12px;border-radius:999px;border:1px solid #b5651d;background:transparent;color:#ffe9c7;font:inherit;cursor:pointer}.staging-switcher-tab:hover:not(:disabled){background:#5a4526}.staging-switcher-tab.active{background:#b5651d;color:#fff;font-weight:700}.staging-switcher-tab:disabled{opacity:.6;cursor:default}.staging-switcher-note{opacity:.85}.staging-switcher-error{margin:6px 0 0;color:#ffb4a2}.staging-switcher-hint{margin:6px 0 0;opacity:.75;font-size:.78rem}.env-badge{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:4px;background:#b5651d;color:#fff;font-size:.72rem;font-weight:700;letter-spacing:.05em}.mock-exam-subjects{display:flex;flex-direction:column;gap:10px;margin-top:10px}.mock-exam-subject-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.mock-question{margin-bottom:16px}.mock-group{margin-bottom:24px}.mock-group-header{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:18px 0 8px}.mock-group-header h2{margin:0;font-size:1.05rem}.mock-question-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.mock-select-toggle{display:inline-flex;align-items:center;gap:6px;font-size:.9rem;cursor:pointer}.mock-question.dimmed{opacity:.55}.mock-question.picked{outline:2px solid var(--color-accent)}.mock-answer{margin-top:12px}.mock-answer-text{white-space:pre-wrap}.mock-group-result{margin-bottom:12px}.study-subject-block{margin-top:24px}.study-subject-block h2{margin-bottom:4px}.card.muted{opacity:.75}.ad-slot-label{font-size:.75em;color:var(--color-muted);letter-spacing:.05em}.ad-slot-box{margin-top:6px;padding:20px;border:1px dashed var(--color-border);border-radius:8px;background:var(--color-bg);text-align:center;color:var(--color-muted)}.ad-slot-box p{margin:4px 0}.question-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:10px}.question-list-item{background:var(--color-surface);border-radius:8px;padding:14px 16px;box-shadow:0 1px 3px #0000000f}.question-list-item a{text-decoration:none;color:inherit;display:block}.question-list-item .button-link{margin-top:10px;margin-bottom:0}.question-list-item.locked{opacity:.7}.question-list-item.attempted{opacity:.65}.tag.attempted-badge{background:var(--color-tag-bg);color:var(--color-muted)}.tag{display:inline-block;background:var(--color-tag-bg);color:var(--color-primary);font-size:.75em;padding:2px 8px;border-radius:999px;margin-right:6px;margin-bottom:6px}.tag.tag-sub{background:transparent;color:var(--color-muted);border:1px solid var(--color-border-light)}.question-text{font-size:1.2em;line-height:1.6;margin:16px 0}.choice-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.choice{display:flex;align-items:center;gap:10px;background:var(--color-surface);padding:12px 14px;border-radius:8px;border:1px solid var(--color-border-light);cursor:pointer}.choice.selected{border-color:var(--color-primary);background:var(--color-tag-bg)}.choice-list-wide{flex-direction:row;flex-wrap:wrap;gap:8px}.choice-list-wide .choice{padding:10px 12px}.blank-list{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px}.blank-box{display:flex;align-items:center;gap:8px;background:var(--color-surface);padding:10px 12px;border-radius:8px;border:1px solid var(--color-border-light);cursor:pointer}.blank-box select{font-size:1em;padding:4px 6px}.blank-box.active{border-color:var(--color-primary);background:var(--color-tag-bg);box-shadow:0 0 0 2px var(--color-primary) inset}.blank-box.correct{border-color:#2e9e5b;background:#e6f6ea}.blank-box.incorrect{border-color:#c0392b;background:#fbeaea}.blank-label{font-weight:700}.blank-correct-answer{font-size:.85em;color:#c0392b}.choice-palette{margin-bottom:4px}.palette-btn{border:1px solid var(--color-border-light);background:var(--color-surface);color:var(--color-text);font:inherit}.palette-btn:hover{border-color:var(--color-primary);background:var(--color-tag-bg)}.palette-btn:disabled{background:var(--color-border-light);color:var(--color-muted)}.result{margin:20px 0;padding:16px;border-radius:8px}.result.correct{background:#e6f6ea;border:1px solid #2e9e5b}.result.incorrect{background:#fbeaea;border:1px solid #c0392b}.result-title{font-weight:700;font-size:1.1em}.explanation{margin-top:8px;line-height:1.6}.source-link{word-break:break-all;overflow-wrap:anywhere}.footer{max-width:960px;margin:40px auto 0;padding:16px 20px;border-top:1px solid var(--color-border-light);text-align:center}.footer .note{margin:0}.footer a{color:var(--color-primary)}.footer-links{margin-bottom:8px!important}.legal-page h2{margin-top:28px}.legal-page ol,.legal-page ul{padding-left:1.4em;line-height:1.8}.legal-page ol li,.legal-page ul li{margin-bottom:4px}.legal-page p{line-height:1.8}.legal-table{width:100%;border-collapse:collapse;margin-top:16px}.legal-table th,.legal-table td{border:1px solid var(--color-border-light);padding:10px 12px;text-align:left;vertical-align:top}.legal-table th{background:var(--color-bg-alt, #f5f5f5);width:30%;white-space:nowrap}@media (max-width: 600px){.legal-table th,.legal-table td{display:block;width:100%}.legal-table th{border-bottom:none}.legal-table td{border-top:none;margin-bottom:8px}}.level-select{margin-top:20px}.level-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:10px}.level-button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:8px;padding:12px}.level-button:hover{border-color:var(--color-primary);background:var(--color-tag-bg)}.level-button strong{color:var(--color-primary)}.level-button span{font-size:.85em;color:var(--color-muted)}.review-info{margin-top:20px;background:var(--color-surface);padding:16px;border-radius:8px}.actions{display:flex;gap:10px;margin-top:10px}.price{font-size:1.4em;font-weight:700;margin:14px 0}section{margin-bottom:30px}.question-thumb{display:block;margin-top:8px;max-width:100%;max-height:160px;border:1px solid var(--color-border-light);border-radius:6px}.question-images{display:flex;flex-direction:column;gap:8px;margin:10px 0}.question-image{width:100%;border:1px solid var(--color-border-light);border-radius:8px;background:var(--color-surface)}@media (min-width: 900px){.question-images{flex-direction:row;flex-wrap:wrap;align-items:flex-start}.question-images .question-image{width:auto;flex:1 1 320px;max-width:calc(50% - 4px)}.question-images .question-image:only-child{max-width:100%;flex-basis:100%}}.solve-container{max-width:640px}@media (min-width: 1024px){.solve-container{max-width:1180px}.solve-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:24px;align-items:start}.solve-answer{position:sticky;top:16px;max-height:calc(100vh - 32px);overflow-y:auto}.solve-question .question-images{flex-direction:column}.solve-question .question-images .question-image{width:100%;max-width:100%;flex-basis:auto}}.level-popup-backdrop{display:flex;align-items:center;justify-content:center;padding:8px 0;margin-top:12px}.level-popup{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:12px;padding:24px;max-width:560px;width:100%;box-shadow:0 2px 10px #00000014}.level-popup .answer-recap{background:var(--color-accent-bg, #f5f5f5);border-radius:8px;padding:10px 12px;margin-bottom:14px;font-size:.92em;line-height:1.5;max-height:160px;overflow-y:auto}.level-popup .answer-recap p{margin:0}.level-button{position:relative;text-align:left}.level-button.recommended{border-color:var(--color-accent);background:var(--color-accent-bg)}.level-button .badge{position:absolute;top:-10px;right:10px;background:var(--color-accent);color:var(--color-on-primary);font-size:.7em;padding:2px 8px;border-radius:999px}.level-button .preview-days{color:var(--color-primary);font-weight:700;margin-top:4px}.level-popup .link-button{color:var(--color-primary);margin-top:14px;display:block;text-align:center;width:100%}.dashboard-layout{display:flex;gap:20px;align-items:flex-start;margin-top:4px}.dashboard-layout .card-grid{flex:1 1 auto;margin-top:0}.todo-panel{flex:0 0 300px;background:var(--color-surface);border-radius:10px;padding:16px;box-shadow:0 1px 4px #00000014}.todo-panel h2{margin-top:0;font-size:1.05em}.todo-quick-filters{margin:0 0 10px;gap:6px}.todo-quick-filters .chip{padding:5px 10px;font-size:.8em}.todo-list{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-direction:column;gap:10px}.todo-item a{display:flex;gap:10px;align-items:center;text-decoration:none;color:inherit;background:var(--color-bg);border-radius:8px;padding:8px;transition:background .15s}.todo-item a:hover{background:var(--color-tag-bg)}.todo-more-prompt{margin-top:14px;padding:12px}.todo-thumb{width:64px;height:64px;object-fit:cover;border-radius:6px;border:1px solid var(--color-border-light);flex-shrink:0}.todo-meta{display:flex;flex-direction:column;gap:4px;min-width:0}.todo-when{font-size:.75em;color:var(--color-primary);font-weight:700}.subject-checkbox-list{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:8px}.subject-checkbox{display:flex;align-items:center;gap:6px;font-size:1rem;cursor:pointer;background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:8px;padding:6px 10px}.subject-checkbox input{width:16px;height:16px;cursor:pointer}.daily-menu-list{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-direction:column;gap:6px}.daily-menu-item a{display:flex;gap:8px;align-items:center;text-decoration:none;color:inherit;background:var(--color-bg);border-radius:6px;padding:6px 8px;transition:background .15s}.daily-menu-item a:hover{background:var(--color-tag-bg)}.daily-menu-item.done a{opacity:.6}.daily-menu-check{font-size:1.1em}.inline-form{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0}.inline-form label{display:flex;align-items:center;gap:6px}.help-followup{margin-top:12px;padding-top:12px;border-top:1px dashed var(--color-border-light)}.theme-option-list{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}.theme-option{display:flex;flex-direction:column;align-items:center;gap:8px;background:var(--color-surface);border:2px solid var(--color-border-light);border-radius:10px;padding:12px 16px;cursor:pointer;font-size:.9em;color:var(--color-text);min-width:96px}.theme-option.selected{border-color:var(--color-primary)}.theme-swatch{display:flex;gap:3px}.theme-swatch span{width:16px;height:16px;border-radius:50%;display:inline-block;border:1px solid rgba(0,0,0,.1)}@media (max-width: 640px){.header-inner{flex-direction:column;align-items:flex-start;gap:8px;padding:12px 16px}.nav{flex-wrap:wrap;gap:10px;row-gap:6px}.exam-class-tabs-inner{overflow-x:auto;padding:0 12px}.exam-class-tab{padding:10px 12px;white-space:nowrap}.container{padding:16px 14px}.dashboard-layout{flex-direction:column}.todo-panel{flex:1 1 auto;width:100%}.card-grid{grid-template-columns:1fr}.filters{flex-direction:column;align-items:stretch}.filters select,.filters button{width:100%}.choice-list{gap:8px}.level-buttons{grid-template-columns:1fr}.level-popup{padding:16px}.level-popup .answer-recap{max-height:120px}.actions{flex-direction:column}.actions .button-link{text-align:center}.question-thumb{max-height:120px}}
