:root{--bg: #0f1115;--surface: #181b22;--surface-2: #20242d;--border: #2c313c;--text: #e8ebf0;--text-dim: #98a0ae;--accent: #34d399;--accent-dim: #1f6b52;--warn: #fbbf24;--danger: #f87171;--reflect: #a78bfa;--radius: 14px;--maxw: 880px;font-family:system-ui,-apple-system,Hiragino Sans,Noto Sans JP,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);line-height:1.6}.app{max-width:var(--maxw);margin:0 auto;padding:24px 20px 80px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.logo{font-weight:700;font-size:18px;letter-spacing:.04em}.logo span{color:var(--accent)}h1{font-size:26px;margin:0 0 6px}h2{font-size:18px;margin:0 0 12px}.muted{color:var(--text-dim)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px;margin-bottom:18px}label.field{display:block;margin-bottom:16px}label.field .lbl{display:block;font-size:14px;color:var(--text-dim);margin-bottom:6px}input[type=text],input[type=number],textarea,select{width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;color:var(--text);padding:11px 13px;font-size:15px;font-family:inherit}textarea{resize:vertical;min-height:72px}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent)}.btn{background:var(--accent);color:#06231a;border:none;border-radius:10px;padding:11px 20px;font-size:15px;font-weight:600;cursor:pointer}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.secondary{background:transparent;border:1px solid var(--border);color:var(--text)}.btn.ghost{background:transparent;color:var(--accent);padding:8px 10px}.row{display:flex;gap:12px;align-items:center}.row.between{justify-content:space-between}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width: 560px){.grid2{grid-template-columns:1fr}}.fields-align label.field{display:flex;flex-direction:column;height:100%;margin-bottom:0}.fields-align label.field .lbl{flex:1 0 auto}.steps{display:flex;gap:6px;margin-bottom:24px}.steps .dot{flex:1;height:4px;border-radius:2px;background:var(--border)}.steps .dot.active{background:var(--accent)}.steps .dot.done{background:var(--accent-dim)}.rung{display:flex;align-items:center;gap:10px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:8px}.rung input[type=text]{flex:2}.rung input[type=number]{flex:1}.chip{display:inline-block;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:6px 12px;font-size:13px;margin:0 6px 6px 0;cursor:pointer}.chip:hover{border-color:var(--accent);color:var(--accent)}.kpi{display:flex;flex-direction:column;gap:4px}.kpi .big{font-size:30px;font-weight:700}.kpi .big.ok{color:var(--accent)}.kpi .big.gap{color:var(--warn)}.coach-msg{border-left:3px solid var(--border);padding:4px 0 4px 14px;margin-bottom:16px;white-space:pre-line}.coach-msg.celebrate{border-color:var(--accent)}.coach-msg.nudge{border-color:var(--warn)}.coach-msg.warn{border-color:var(--danger)}.coach-msg.reflect{border-color:var(--reflect)}.coach-msg .t{font-weight:600;margin-bottom:2px}.tabs{display:flex;gap:8px;margin-bottom:18px;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch}.tabs::-webkit-scrollbar{display:none}.tab{padding:8px 16px;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer;font-size:14px;white-space:nowrap;flex:0 0 auto}.tab.active{border-color:var(--accent);color:var(--accent)}.progressbar{height:6px;background:var(--border);border-radius:3px;overflow:hidden;margin-bottom:22px}.progressbar-fill{height:100%;background:var(--accent);transition:width .3s ease}.likert{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.likert-opt{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;color:var(--text-dim);padding:12px 6px;font-size:13px;cursor:pointer;transition:all .12s ease}.likert-opt:hover{border-color:var(--accent-dim)}.likert-opt.sel{background:var(--accent-dim);border-color:var(--accent);color:var(--text);font-weight:600}@media (max-width: 480px){.likert-opt{padding:10px 2px;font-size:12px}}.card.archetype{background:linear-gradient(160deg,var(--surface-2),var(--surface));border-color:var(--accent-dim)}.arch-name{font-size:30px;font-weight:800;color:var(--accent);margin:4px 0}.arch-tag{font-size:16px;margin-bottom:10px}.bar{height:8px;background:var(--surface-2);border-radius:4px;overflow:hidden}.bar-fill{height:100%;border-radius:4px}.bar-fill.ok{background:var(--accent)}.bar-fill.warn{background:var(--warn)}.badge{display:inline-flex;align-items:center;gap:6px;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:8px 14px;margin:0 8px 8px 0;font-size:13px}.badge.earned{border-color:var(--accent);color:var(--accent)}.streak-num{font-size:40px;font-weight:800;color:var(--accent)}.spinner{width:44px;height:44px;margin:0 auto;border:4px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.chapter-done{background:var(--accent-dim);border:1px solid var(--accent);border-radius:10px;padding:10px 14px;margin-top:12px;color:var(--text);font-weight:600;text-align:center}.chat{max-height:52vh;overflow-y:auto;display:flex;flex-direction:column;gap:10px;margin-bottom:12px;padding:4px}.chat-msg{max-width:85%;padding:11px 14px;border-radius:14px;font-size:15px;line-height:1.6;white-space:pre-line}.chat-msg.coach{align-self:flex-start;background:var(--surface);border:1px solid var(--border);border-bottom-left-radius:4px}.chat-msg.user{align-self:flex-end;background:var(--accent-dim);border-bottom-right-radius:4px}.combo-list{position:absolute;top:100%;left:0;right:0;z-index:20;margin-top:4px;background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:0 8px 24px #00000059}.combo-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 13px;cursor:pointer;font-size:14px;border-bottom:1px solid var(--border)}.combo-item:last-child{border-bottom:none}.combo-item.active{background:var(--surface-2)}.qbadge{display:inline-flex;align-items:center;font-size:12px;padding:3px 9px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-dim)}.qbadge.danger{border-color:var(--danger);color:var(--danger)}.qbadge.caution{border-color:var(--warn);color:var(--warn)}.qbadge.ok{border-color:var(--border);color:var(--text-dim)}.tooltip-wrap{position:relative;display:inline-block;vertical-align:middle;margin-left:5px}.tooltip-trigger{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;border:1px solid var(--text-dim);background:transparent;color:var(--text-dim);font-size:11px;font-weight:700;cursor:pointer;line-height:1;padding:0;transition:border-color .15s,color .15s}.tooltip-trigger:hover,.tooltip-trigger[aria-expanded=true]{border-color:var(--accent);color:var(--accent)}.tooltip-box{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translate(-50%);z-index:100;width:260px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 14px;box-shadow:0 8px 24px #0006}.tooltip-term{font-weight:700;font-size:13px;margin-bottom:6px;color:var(--accent)}.tooltip-def{font-size:12px;color:var(--text-dim);line-height:1.7}.scenario-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;background:var(--border);border-radius:2px;outline:none;cursor:pointer}.scenario-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid var(--bg);box-shadow:0 0 0 2px var(--accent-dim)}.scenario-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid var(--bg)}.footer-link{background:none;border:none;padding:0;color:var(--text-dim);font-size:12px;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.footer-link:hover{color:var(--accent)}
