/* Additions use the app's existing cream, brown and gold palette. */
.companion { color:#4A3A30; font-family:'DM Sans',sans-serif; font-size:13px; line-height:1.6; text-align:left; }
.companion * { box-sizing:border-box; }
.companion [hidden], .companion-badge[hidden], .shop-product-card[data-companion-hidden="true"], .shop-brand-section[data-companion-hidden="true"] { display:none !important; }
.companion-panel { background:#fff; border:1px solid rgba(201,160,110,.25); border-radius:12px; padding:15px; margin:12px 0; }
.companion-panel > summary { font-weight:600; font-size:14px; cursor:pointer; min-height:32px; padding:4px 0; color:#4A3A30; }
.companion-panel[open] > summary { margin-bottom:12px; }
#companion-routine-editor > summary { min-height:44px; padding:10px 0; cursor:pointer; font-weight:600; }
.companion h3 { font-family:'Cormorant Garamond',serif; font-size:23px; font-weight:500; margin:8px 0; color:#2C1F1A; }
.companion h4 { font-size:13px; margin:16px 0 8px; }
.companion p { margin:8px 0; }
.companion small, .companion-muted { font-size:12px; color:#6E5447; }
.companion label { display:block; font-size:12px; font-weight:500; margin:10px 0 4px; }
.companion input:not([type="checkbox"]), .companion select, .companion textarea { display:block; width:100%; min-width:0; max-width:100%; border:1px solid #CDBBAD; border-radius:8px; background:#FDFBF9; padding:10px; font:inherit; font-size:16px; color:#2C1F1A; min-height:44px; }
.companion textarea { min-height:85px; resize:vertical; }
.companion input[type="checkbox"] { width:22px; height:22px; flex:none; accent-color:#A06A35; }
.companion button, .companion a.companion-button { min-height:44px; border:1px solid #C9A06E; border-radius:9px; padding:9px 12px; background:#FBF4EC; color:#6E4827; font:inherit; font-size:12px; font-weight:600; cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; text-align:center; }
.companion button:disabled { opacity:.5; cursor:default; }
.companion button[aria-pressed="true"], .companion .companion-primary { background:#C9A06E; color:#2C1F1A; }
.companion :focus-visible, .companion-shop-actions button:focus-visible { outline:2px solid #8B5D32; outline-offset:3px; }
.companion-actions { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 4px; }
.companion-actions > * { flex:1; }
.companion-split { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.companion-status { min-height:20px; margin:6px 0; color:#6E5447; font-size:12px; }
.companion-step { border-bottom:1px solid #EDE2D9; padding:10px 0; }
.companion-step label { display:flex; gap:10px; align-items:center; font-size:13px; overflow-wrap:anywhere; }
.companion-step .companion-actions { margin-left:32px; }
.companion-step .companion-actions button { flex:0 1 auto; }
.companion-note { padding:12px 0; border-bottom:1px solid #EDE2D9; overflow-wrap:anywhere; }
.companion-note p { white-space:pre-wrap; }
.companion-week { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; margin:12px 0; }
.companion-day { border-radius:7px; background:#FAF5F0; padding:7px 1px; text-align:center; font-size:10px; }
.companion-day b { display:block; font-size:14px; }
.companion-day[data-done="true"] { background:#EEE0CF; color:#6E4827; }
.companion-badge { display:block; margin-top:5px; font-size:11px; color:#6E4827; font-weight:600; }
.companion-shop-actions { display:flex; gap:8px; margin-top:10px; }
.companion-shop-actions button { flex:1; }
.companion-product-guide { margin-top:12px; border-top:1px solid #EDE2D9; }
.companion-product-guide > summary { min-height:44px; padding:11px 0; cursor:pointer; font-size:12px; font-weight:600; color:#6E4827; }
.companion-product-guide p { margin:0 0 12px; font-size:12px; overflow-wrap:anywhere; }
.companion-product-guide strong { display:block; color:#4A3A30; font-weight:600; }
.companion-faq { border-top:1px solid #EDE2D9; padding:9px 0; }
.companion-faq summary { min-height:40px; cursor:pointer; padding:8px 0; font-weight:500; }
.companion-compare { width:100%; border-collapse:collapse; table-layout:fixed; margin-top:12px; font-size:12px; }
.companion-compare th, .companion-compare td { padding:10px 5px; border-bottom:1px solid #EDE2D9; text-align:left; vertical-align:top; overflow-wrap:anywhere; }
.companion-compare th:first-child { width:28%; }
.companion-compare small { display:block; font-size:11px; font-weight:400; }
#companion-chat-help { flex:0 1 auto; min-height:44px; margin:0 12px 6px; max-height:min(220px,28vh); overflow-y:auto; }
#companion-chat-help .companion-panel { margin:0; padding:7px 12px; }
#companion-chat-help summary { font-size:12px; }
.companion-storage-note { font-size:11px; margin:8px 0 14px; color:#6E5447; }
@media (prefers-reduced-motion:reduce) { .companion *, .companion *::before, .companion *::after { scroll-behavior:auto !important; animation:none !important; transition:none !important; } }
