@charset "UTF-8";:root{--primary: #2d7a4f;--primary-light: #4caf50;--primary-pale: #e8f5e9;--accent: #ff8f00;--bg: #f9fafb;--surface: #ffffff;--border: #e0e0e0;--text: #212121;--text-muted: #757575;--user-bubble: #2d7a4f;--user-text: #ffffff;--assistant-bubble: #ffffff;--radius: 12px;--shadow: 0 2px 8px rgba(0,0,0,.08);--sidebar-w: 280px;--panel-w: 360px;--navbar-h: 56px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);padding-top:var(--navbar-h)}.chat-root{display:flex;flex-direction:column;height:calc(100dvh - var(--navbar-h));overflow:hidden}.navbar{position:fixed;top:0;left:0;right:0;height:var(--navbar-h);background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;z-index:200;box-shadow:var(--shadow)}.navbar-brand{font-size:1rem;font-weight:700;color:var(--primary);text-decoration:none;white-space:nowrap}.navbar-brand span{font-weight:400;color:var(--text-muted);font-size:.8rem;margin-left:6px}.navbar-links{display:flex;align-items:center;gap:4px;list-style:none}.navbar-links a{text-decoration:none;color:var(--text-muted);font-size:.88rem;padding:6px 14px;border-radius:6px;transition:color .15s,background .15s;white-space:nowrap}.navbar-links a:hover,.navbar-links a.active{color:var(--primary);background:var(--primary-pale)}.portfolio-notice{flex-shrink:0;background:var(--primary-pale);border-bottom:1px solid #c8e6c9;padding:8px 24px;font-size:.8rem;color:var(--text-muted);text-align:center;line-height:1.5}.portfolio-notice strong{color:var(--text)}.portfolio-notice a{color:var(--primary);text-decoration:none;font-weight:600}.portfolio-notice a:hover{text-decoration:underline}.app-container{flex:1;display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:0;overflow:hidden}.sidebar{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:24px 16px;overflow-y:auto;gap:24px}.logo{font-size:1.4rem;font-weight:700;color:var(--primary)}.tagline{font-size:.75rem;color:var(--text-muted);margin-top:4px}.sidebar-section h3{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:10px}.quick-prompts{list-style:none;display:flex;flex-direction:column;gap:6px}.prompt-btn{width:100%;text-align:left;background:var(--primary-pale);border:none;border-radius:8px;padding:8px 12px;font-size:.82rem;color:var(--primary);cursor:pointer;transition:background .15s}.prompt-btn:hover{background:#c8e6c9}.pref-tags{display:flex;flex-wrap:wrap;gap:8px}.tag-checkbox{display:flex;align-items:center;gap:5px;font-size:.78rem;background:var(--bg);border:1px solid var(--border);border-radius:20px;padding:4px 10px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:border-color .15s,background .15s}.tag-checkbox:has(input:checked){background:var(--primary-pale);border-color:var(--primary);color:var(--primary)}.clear-btn{margin-top:auto;background:none;border:1px solid #ffcdd2;color:#c62828;border-radius:8px;padding:8px 12px;font-size:.82rem;cursor:pointer;transition:background .15s}.clear-btn:hover{background:#ffebee}.chat-area{display:flex;flex-direction:column;min-height:0;background:var(--bg);min-width:0;overflow:hidden}.chat-header{background:var(--surface);border-bottom:1px solid var(--border);padding:12px 24px;display:flex;align-items:center;gap:10px;flex-shrink:0}.status-indicator{width:8px;height:8px;border-radius:50%;background:var(--primary-light)}.status-indicator.busy{background:var(--accent);animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.status-text{font-size:.82rem;color:var(--text-muted);flex:1}.agent-badges{display:flex;gap:6px}.badge{font-size:.7rem;background:var(--primary-pale);color:var(--primary);border-radius:12px;padding:3px 8px}.messages-container{flex:1;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:16px}.message{max-width:720px;display:flex;flex-direction:column;gap:4px}.message.user{align-self:flex-end;align-items:flex-end}.message.assistant{align-self:flex-start;align-items:flex-start}.message-content{padding:12px 16px;border-radius:var(--radius);font-size:.92rem;line-height:1.6;box-shadow:var(--shadow)}.message.user .message-content{background:var(--user-bubble);color:var(--user-text);border-bottom-right-radius:4px}.message.assistant .message-content{background:var(--assistant-bubble);color:var(--text);border-bottom-left-radius:4px;border:1px solid var(--border)}.message-content p+p{margin-top:8px}.recipe-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-top:12px;box-shadow:var(--shadow)}.recipe-card h4{color:var(--primary);margin-bottom:8px}.recipe-meta{display:flex;gap:16px;font-size:.78rem;color:var(--text-muted);margin-bottom:12px}.recipe-meta span{display:flex;align-items:center;gap:4px}.recipe-card ul,.recipe-card ol{padding-left:18px;font-size:.85rem}.recipe-card ul li,.recipe-card ol li{margin-bottom:4px}.recipe-card-actions{display:flex;gap:8px;margin-top:12px}.btn-outline{border:1px solid var(--primary);color:var(--primary);background:none;border-radius:6px;padding:5px 12px;font-size:.78rem;cursor:pointer;transition:background .15s}.btn-outline:hover{background:var(--primary-pale)}.nutrition-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}.nutr-item{background:var(--primary-pale);border-radius:8px;padding:8px;text-align:center}.nutr-item .value{font-weight:700;color:var(--primary);font-size:1.1rem}.nutr-item .label{font-size:.7rem;color:var(--text-muted)}.meal-plan-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:12px}.meal-day{background:var(--primary-pale);border-radius:8px;padding:8px;text-align:center;font-size:.75rem}.meal-day .day{font-weight:700;color:var(--primary)}.shopping-list{list-style:none;margin-top:8px}.shopping-list li{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--border);font-size:.85rem}.shopping-list li input[type=checkbox]{accent-color:var(--primary)}.thinking-indicator{display:flex;align-items:center;gap:10px;padding:8px 24px;font-size:.8rem;color:var(--text-muted)}.thinking-dots{display:flex;gap:4px}.thinking-dots span{width:6px;height:6px;background:var(--primary-light);border-radius:50%;animation:bounce 1.2s infinite}.thinking-dots span:nth-child(2){animation-delay:.2s}.thinking-dots span:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.input-area{padding:16px 24px;background:var(--surface);border-top:1px solid var(--border);display:flex;gap:12px;align-items:flex-end;flex-shrink:0}.message-input{flex:1;resize:none;border:1px solid var(--border);border-radius:12px;padding:12px 16px;font-size:.92rem;font-family:inherit;outline:none;line-height:1.5;max-height:120px;overflow-y:auto;transition:border-color .15s}.message-input:focus{border-color:var(--primary)}.send-btn{width:44px;height:44px;border-radius:50%;background:var(--primary);border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background .15s,transform .1s}.send-btn:hover:not(:disabled){background:#1b5e20;transform:scale(1.05)}.send-btn:disabled{background:var(--border);cursor:not-allowed}.recipe-panel{position:fixed;right:0;top:var(--navbar-h);width:var(--panel-w);height:calc(100vh - var(--navbar-h));background:var(--surface);border-left:1px solid var(--border);box-shadow:-4px 0 16px #0000001a;z-index:100;display:flex;flex-direction:column;overflow:hidden;transform:translate(0);transition:transform .25s ease}.recipe-panel.hidden{transform:translate(100%)}.panel-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.panel-header h2{font-size:1rem;color:var(--primary)}.panel-header button{background:none;border:none;font-size:1.1rem;cursor:pointer;color:var(--text-muted)}.recipe-panel-content{padding:20px;overflow-y:auto;flex:1}.page-container{max-width:900px;margin:0 auto;padding:48px 24px 80px}.page-hero{text-align:center;margin-bottom:56px}.page-hero h1{font-size:2rem;font-weight:700;color:var(--primary);margin-bottom:12px}.page-hero p{color:var(--text-muted);font-size:1rem;max-width:580px;margin:0 auto;line-height:1.7}.section{margin-bottom:52px}.section h2{font-size:1.15rem;font-weight:700;color:var(--text);margin-bottom:20px;padding-bottom:10px;border-bottom:2px solid var(--primary-pale)}.arch-flow{display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:0;margin:8px 0 24px}.arch-box{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius);padding:18px 22px;text-align:center;min-width:148px;box-shadow:var(--shadow)}.arch-box.highlight{border-color:var(--primary)}.arch-box .arch-label{font-weight:700;color:var(--primary);font-size:.9rem}.arch-box .arch-sub{color:var(--text-muted);font-size:.72rem;margin-top:4px;line-height:1.4}.arch-arrow{color:var(--text-muted);font-size:1.4rem;padding:0 6px;flex-shrink:0}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius);box-shadow:var(--shadow)}.table-wrap .tech-table{box-shadow:none;border-radius:0;min-width:480px}.tech-table{width:100%;border-collapse:collapse;font-size:.88rem;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.tech-table th{background:var(--primary-pale);color:var(--primary);text-align:left;padding:12px 16px;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em}.tech-table td{padding:12px 16px;border-bottom:1px solid var(--border);vertical-align:top;background:var(--surface)}.tech-table td:first-child{font-weight:600;color:var(--text);width:160px}.tech-table tr:last-child td{border-bottom:none}.agent-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.agent-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 16px;border-top:3px solid var(--primary);box-shadow:var(--shadow)}.agent-card .agent-icon{font-size:1.6rem;margin-bottom:10px}.agent-card h4{font-size:.88rem;color:var(--primary);margin-bottom:6px}.agent-card p{font-size:.78rem;color:var(--text-muted);line-height:1.5}.badge-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.sec-badge{background:var(--primary-pale);color:var(--primary);border:1px solid #c8e6c9;border-radius:20px;padding:4px 12px;font-size:.78rem;font-weight:500}.contact-wrap{display:grid;grid-template-columns:1fr 340px;gap:48px;align-items:start}.contact-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:32px;box-shadow:var(--shadow)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:.82rem;font-weight:600;color:var(--text);margin-bottom:6px}.form-group input,.form-group textarea{width:100%;border:1px solid var(--border);border-radius:8px;padding:10px 14px;font-size:.88rem;font-family:inherit;color:var(--text);background:var(--bg);transition:border-color .15s;outline:none}.form-group input:focus,.form-group textarea:focus{border-color:var(--primary)}.form-group textarea{resize:vertical;min-height:120px;line-height:1.5}.form-error{color:#c62828;font-size:.82rem;margin-bottom:14px}.submit-btn{width:100%;background:var(--primary);color:#fff;border:none;border-radius:8px;padding:12px;font-size:.92rem;font-weight:600;cursor:pointer;transition:background .15s,transform .1s}.submit-btn:hover{background:#1b5e20;transform:translateY(-1px)}.submit-btn:active{transform:translateY(0)}.form-success{text-align:center;padding:40px 20px}.form-success .success-icon{font-size:3rem;margin-bottom:16px}.form-success h3{color:var(--primary);margin-bottom:8px;font-size:1.1rem}.form-success p{color:var(--text-muted);font-size:.88rem}.contact-info{display:flex;flex-direction:column;gap:20px}.info-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.info-card h3{font-size:.88rem;color:var(--primary);margin-bottom:12px}.info-item{display:flex;align-items:center;gap:10px;font-size:.85rem;color:var(--text-muted);margin-bottom:10px}.info-item:last-child{margin-bottom:0}.info-item .info-icon{font-size:1rem;flex-shrink:0}.info-item a{color:var(--primary);text-decoration:none}.info-item a:hover{text-decoration:underline}.sidebar-backdrop{display:none;position:fixed;inset:0;background:#0006;z-index:140}.sidebar-backdrop.open{display:block}.sidebar-toggle{display:none;align-items:center;justify-content:center;width:40px;height:40px;background:none;border:1px solid var(--border);border-radius:8px;cursor:pointer;font-size:1.1rem;color:var(--text);flex-shrink:0;margin-right:4px}.site-footer{text-align:center;padding:1rem;font-size:.8rem;color:var(--text-muted);border-top:1px solid var(--border);margin-top:auto}@media (max-width: 1024px){:root{--sidebar-w: 220px;--panel-w: 300px}.agent-badges{flex-wrap:wrap;gap:4px}.badge{font-size:.65rem;padding:2px 6px}.messages-container{padding:16px 20px}.page-container{padding:36px 20px 72px}.contact-wrap{gap:28px}}@media (max-width: 768px){.navbar{padding:0 16px}.navbar-brand span{display:none}.sidebar-toggle{display:flex}.sidebar{position:fixed;left:0;top:var(--navbar-h);bottom:0;width:280px;z-index:150;transform:translate(-100%);transition:transform .25s ease;box-shadow:4px 0 20px #00000026}.sidebar.open{transform:translate(0)}.app-container{grid-template-columns:1fr}.agent-badges{display:none}.messages-container{padding:12px 16px;gap:12px}.message{max-width:100%}.input-area{padding:10px 16px}.recipe-panel{width:100%;left:0}.nutrition-grid{grid-template-columns:repeat(2,1fr)}.meal-plan-grid{grid-template-columns:repeat(7,minmax(72px,1fr));overflow-x:auto;gap:4px;padding-bottom:4px}.page-container{padding:24px 16px 60px}.page-hero{margin-bottom:32px}.page-hero h1{font-size:1.5rem}.section{margin-bottom:36px}.arch-flow{flex-direction:column}.arch-arrow{transform:rotate(90deg)}.contact-wrap{grid-template-columns:1fr;gap:24px}.form-row{grid-template-columns:1fr}.contact-form{padding:20px}}@media (max-width: 400px){.navbar-links a{padding:5px 8px;font-size:.78rem}.navbar-brand{font-size:.9rem}}
