html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}*{box-sizing:border-box;margin:0;padding:0}:root{--primary:#2d6a4f;--primary-light:#40916c;--primary-bg:#f0faf4;--bg:#fafafa;--card-bg:#fff;--text:#1a1a1a;--text-secondary:#666;--border:#e8e8e8;--radius:12px;--tab-height:64px;--header-height:60px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior:none;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Noto Sans JP,sans-serif}.app{flex-direction:column;max-width:480px;min-height:100dvh;margin:0 auto;display:flex}.app-header{z-index:100;background:var(--primary);color:#fff;padding:calc(var(--safe-top) + 12px) 16px 12px;text-align:center;position:sticky;top:0}.app-header h1{letter-spacing:2px;font-size:20px;font-weight:700}.app-subtitle{opacity:.8;margin-top:2px;font-size:11px}.app-main{padding-bottom:calc(var(--tab-height) + var(--safe-bottom) + 8px);flex:1}.tab-bar{background:var(--card-bg);border-top:1px solid var(--border);width:100%;max-width:480px;padding-bottom:var(--safe-bottom);z-index:100;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:2px;padding:8px 0;font-size:10px;transition:color .2s;display:flex}.tab.active{color:var(--primary)}.tab svg{width:22px;height:22px}.page{padding:16px}.back-button{color:var(--primary);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;margin-bottom:8px;padding:8px 0;font-size:14px;display:inline-flex}.search-bar{background:var(--card-bg);border:2px solid var(--border);border-radius:var(--radius);align-items:center;gap:8px;padding:10px 14px;transition:border-color .2s;display:flex}.search-bar:focus-within{border-color:var(--primary)}.search-icon{color:var(--text-secondary);flex-shrink:0}.search-bar input{color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:16px}.search-bar input::placeholder{color:#aaa}.search-clear{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:4px}.search-results-count{color:var(--text-secondary);padding:12px 0 4px;font-size:12px}.search-results{flex-direction:column;gap:8px;display:flex}.search-hint{text-align:center;color:var(--text-secondary);padding:40px 16px}.search-hint p{margin-bottom:16px;font-size:14px}.search-examples{text-align:left}.search-examples p{color:var(--text);font-size:13px;font-weight:600}.example-chips{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.chip{background:var(--primary-bg);color:var(--primary);border:1px solid var(--primary-light);cursor:pointer;border-radius:20px;padding:6px 14px;font-size:13px;transition:all .2s}.chip:active{background:var(--primary);color:#fff}.acupoint-card{text-align:left;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;width:100%;padding:12px;transition:all .15s;display:block}.acupoint-card:active{background:#f8f8f8;transform:scale(.98)}.acupoint-card.compact{border-radius:8px;align-items:center;gap:6px;width:auto;padding:6px 10px;display:inline-flex}.acupoint-card-header{align-items:center;gap:8px;display:flex}.acupoint-id{color:#333;border-radius:6px;justify-content:center;align-items:center;min-width:36px;padding:2px 6px;font-size:11px;font-weight:700;display:inline-flex}.acupoint-names{flex:1;align-items:baseline;gap:6px;display:flex}.acupoint-name{font-size:16px;font-weight:600}.acupoint-reading{color:var(--text-secondary);font-size:12px}.acupoint-meridian{color:var(--text-secondary);white-space:nowrap;font-size:11px}.acupoint-match{color:var(--primary);margin-top:4px;font-size:12px}.acupoint-tags{flex-wrap:wrap;gap:4px;margin-top:8px;display:flex}.tag{color:var(--text-secondary);background:#f0f0f0;border-radius:4px;padding:2px 8px;font-size:11px;display:inline-block}.tag-more{background:var(--primary-bg);color:var(--primary)}.symptom-page h2{margin-bottom:12px;font-size:18px}.symptom-page h3{color:var(--text-secondary);margin:16px 0 8px;font-size:15px}.symptom-description{color:var(--text-secondary);margin-bottom:16px;font-size:14px}.symptom-categories{flex-direction:column;gap:4px;display:flex}.category-header{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;align-items:center;gap:10px;width:100%;padding:14px 16px;font-size:15px;transition:background .15s;display:flex}.category-header:active{background:#f5f5f5}.category-header.expanded{border-radius:var(--radius) var(--radius) 0 0;border-bottom:none}.category-icon{font-size:20px}.category-name{text-align:left;flex:1;font-weight:600}.category-count{color:var(--text-secondary);background:#f0f0f0;border-radius:10px;padding:2px 8px;font-size:12px}.chevron{color:var(--text-secondary);transition:transform .2s}.category-header.expanded .chevron{transform:rotate(180deg)}.symptom-list{background:var(--card-bg);border:1px solid var(--border);border-radius:0 0 var(--radius) var(--radius);border-top:none;overflow:hidden}.symptom-item{cursor:pointer;background:0 0;border:none;border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;width:100%;padding:12px 16px 12px 48px;font-size:14px;transition:background .15s;display:flex}.symptom-item:last-child{border-bottom:none}.symptom-item:active{background:#f8f8f8}.symptom-name{text-align:left}.symptom-point-count{color:var(--primary);background:var(--primary-bg);border-radius:10px;padding:2px 8px;font-size:12px}.acupoint-list{flex-direction:column;gap:8px;display:flex}.bodymap-page h2{margin-bottom:4px;font-size:18px}.bodymap-hint{color:var(--text-secondary);margin-bottom:12px;font-size:13px}.body-diagram{position:relative}.view-toggle{justify-content:center;gap:4px;margin-bottom:8px;display:flex}.view-toggle button{border:1px solid var(--border);background:var(--card-bg);cursor:pointer;border-radius:20px;padding:6px 20px;font-size:13px;transition:all .2s}.view-toggle button.active{background:var(--primary);color:#fff;border-color:var(--primary)}.body-svg{width:100%;max-height:55vh;margin:0 auto;display:block}.region-zone{transition:all .15s}.region-zone:hover{fill:#2d6a4f40!important}.region-results{margin-top:16px}.region-results-title{align-items:center;gap:8px;margin-bottom:10px;font-size:16px;font-weight:700;display:flex}.region-results-count{color:var(--primary);background:var(--primary-bg);border-radius:10px;padding:2px 8px;font-size:12px;font-weight:400}.region-empty{text-align:center;color:var(--text-secondary);padding:20px;font-size:14px}.detail-page{padding-bottom:40px}.detail-header{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.detail-id{border-radius:8px;padding:4px 10px;font-size:14px;font-weight:700}.detail-header h1{font-size:24px;font-weight:700}.detail-meta{width:100%;color:var(--text-secondary);gap:12px;font-size:13px;display:flex}.detail-region-badge{background:var(--primary-bg);color:var(--primary);border-radius:20px;margin-bottom:16px;padding:4px 12px;font-size:13px;font-weight:600;display:inline-block}.detail-body-diagram{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:12px}.region-diagram-container{width:100%;max-width:320px;margin:0 auto;display:inline-block;position:relative}.region-diagram{text-align:center}.region-diagram-img{border-radius:8px;width:100%;height:auto;display:block}.region-point{z-index:1;position:absolute;transform:translate(-50%,-50%)}.region-point-other{cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:1px;padding:0;display:flex}.region-point-dot-other{background:#64646466;border:1px solid #fffc;border-radius:50%;width:8px;height:8px;display:block}.region-point-other:hover .region-point-dot-other{background:#2d6a4fb3;transform:scale(1.3)}.region-point-label-other{color:#666;white-space:nowrap;text-shadow:0 0 3px #fff,0 0 3px #fff;font-size:8px;display:none}.region-point-other:hover .region-point-label-other{display:block}.region-point-main{z-index:10;flex-direction:column;align-items:center;display:flex}.region-point-dot-main{z-index:2;background:#e53935;border:2px solid #fff;border-radius:50%;width:16px;height:16px;display:block;position:relative;box-shadow:0 0 6px #e5393599}.region-point-pulse{opacity:0;z-index:1;border:2px solid #e53935;border-radius:50%;width:28px;height:28px;animation:2s ease-out infinite region-pulse;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes region-pulse{0%{opacity:.6;width:16px;height:16px}to{opacity:0;width:40px;height:40px}}.region-point-label-main{color:#fff;white-space:nowrap;background:#e53935;border-radius:4px;margin-top:2px;padding:2px 8px;font-size:11px;font-weight:700;box-shadow:0 1px 4px #0003}.detail-section{margin-bottom:20px}.detail-section h2{color:var(--primary);border-bottom:2px solid var(--primary-bg);margin-bottom:6px;padding-bottom:4px;font-size:14px;font-weight:700}.detail-section p{font-size:14px;line-height:1.7}.indications-list{flex-wrap:wrap;gap:6px;display:flex}.indication{color:#e65100;background:#fff3e0;border-radius:4px;padding:3px 10px;font-size:12px}.contraindications-section{background:#fff5f5;border:1px solid #ffcdd2;border-radius:8px;padding:12px 14px}.contraindications-section h2{color:#c62828!important;border-bottom-color:#ffcdd2!important}.contraindications-list{flex-direction:column;gap:8px;margin-bottom:8px;display:flex}.contraindication-item{color:#b71c1c;align-items:flex-start;gap:8px;font-size:13px;line-height:1.6;display:flex}.contraindication-icon{color:#fff;background:#c62828;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;margin-top:2px;font-size:11px;font-weight:700;display:inline-flex}.contraindications-note{color:#999;margin-top:4px;font-size:11px}.tag-list{flex-wrap:wrap;gap:6px;display:flex}.nav-points{gap:8px;display:flex}.nav-point{background:var(--card-bg);border:1px solid var(--border);cursor:pointer;border-radius:8px;flex:1;align-items:center;gap:6px;padding:10px;font-size:13px;transition:all .15s;display:flex}.nav-point:active{background:#f5f5f5}.nav-point.next{text-align:right;justify-content:flex-end}.nav-arrow{color:var(--primary);font-size:16px}
