
*{margin:0;padding:0;box-sizing:border-box}
:root{
--ocean-blue:#0077be;--deep-blue:#003d5c;--forest-green:#228b22;--emerald-green:#50c878;
--light-bg:#f8fffe;--text-main:#2c3e50;--text-muted:#5a6c7d;
--ocean-gradient:linear-gradient(135deg,#0077be 0%,#003d5c 100%);
--earth-gradient:linear-gradient(135deg,#228b22 0%,#50c878 100%);
}
body{font-family:'Inter',Arial,sans-serif;line-height:1.65;color:var(--text-main);background:#fff}
header{background:rgba(255,255,255,.96);backdrop-filter:blur(10px);padding:.85rem 0;position:fixed;width:100%;top:0;z-index:1000;box-shadow:0 2px 20px rgba(0,119,190,.1)}
nav{display:flex;justify-content:space-between;align-items:center;max-width:1400px;margin:0 auto;padding:0 2rem;gap:1.5rem}
.logo-container{text-decoration:none;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;flex-shrink:0}
.logo{display:flex;align-items:center;gap:.85rem;font-size:1.7rem;font-weight:700;background:var(--ocean-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.05;white-space:nowrap}
.logo img{width:60px;height:60px;object-fit:contain;flex-shrink:0}
.tagline{font-size:.76rem;color:var(--text-muted);font-weight:500;margin-top:.05rem;margin-left:60px;font-style:italic;text-align:center;line-height:1.1}
.nav-links{display:flex;gap:1.1rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.nav-links a{color:var(--text-main);text-decoration:none;font-weight:500;font-size:.95rem}.nav-links a:hover{color:var(--ocean-blue)}
.login-btn,.btn-primary{background:var(--ocean-gradient);color:white;padding:.8rem 1.5rem;border-radius:50px;text-decoration:none;font-weight:600;display:inline-block;box-shadow:0 4px 15px rgba(0,119,190,.25);white-space:nowrap}
.btn-secondary{background:white;color:var(--ocean-blue);padding:.8rem 1.8rem;border-radius:50px;text-decoration:none;font-weight:700;display:inline-block}
main{margin-top:92px}.hero{background:var(--ocean-gradient);color:white;text-align:center;padding:6.5rem 2rem 5.5rem}.hero h1{font-size:3.1rem;line-height:1.18;margin-bottom:1.2rem}.hero p{font-size:1.18rem;max-width:880px;margin:0 auto 1.8rem;opacity:.92}
.container{max-width:1200px;margin:0 auto;padding:0 2rem}.section{padding:5rem 0}.section-alt{background:var(--light-bg)}
.section-header{text-align:center;margin-bottom:3rem}.section-header h2{font-size:2.35rem;color:var(--deep-blue);margin-bottom:.8rem}.section-header p{font-size:1.1rem;color:var(--text-muted);max-width:820px;margin:0 auto}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:2rem}.card{background:white;border-radius:18px;padding:2rem;box-shadow:0 8px 30px rgba(0,119,190,.1)}
.card h3{color:var(--deep-blue);font-size:1.28rem;margin-bottom:.75rem}.card p,.card li{color:var(--text-muted)}.icon{width:64px;height:64px;margin:0 auto 1rem;color:var(--ocean-blue);display:flex;align-items:center;justify-content:center}.svg-icon{width:64px;height:64px;display:block}.card:nth-child(2n) .icon{color:var(--forest-green)}
.list{margin-left:1.2rem;color:var(--text-muted)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}.content h2{font-size:2rem;color:var(--deep-blue);margin:2rem 0 1rem}.content h3{font-size:1.45rem;color:var(--deep-blue);margin:1.6rem 0 .7rem}.content p{color:var(--text-muted);margin-bottom:1rem}.content ul{margin:0 0 1rem 1.3rem;color:var(--text-muted)}
.cta{background:var(--earth-gradient);color:white;text-align:center;padding:4.5rem 2rem}.cta h2{font-size:2.35rem;margin-bottom:1rem}.cta p{max-width:760px;margin:0 auto 1.8rem;opacity:.92}
.article-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.article-card{background:white;border-radius:18px;padding:2rem;box-shadow:0 8px 30px rgba(0,119,190,.1)}.article-card a{color:var(--ocean-blue);font-weight:700;text-decoration:none}.article-icon{width:44px;height:44px;color:var(--ocean-blue);margin-bottom:1rem}.article-icon .svg-icon{width:44px;height:44px}
.breadcrumb{font-size:.9rem;margin-bottom:1rem;color:rgba(255,255,255,.85)}.breadcrumb a{color:white;text-decoration:none}
footer{background:var(--deep-blue);color:white;text-align:center;padding:3rem 2rem 2rem}.footer-links{display:flex;justify-content:center;gap:1.5rem;flex-wrap:wrap;margin-bottom:2rem}.footer-links a{color:white;text-decoration:none;opacity:.85}.footer-bottom{border-top:1px solid rgba(255,255,255,.2);padding-top:1.5rem;opacity:.8}.footer-bottom a{color:white}

/* Chat component: all markup is in templates/partials/chat.html */
.bgi-chat-shell{position:fixed;right:0;bottom:0;z-index:4000;pointer-events:none}
.chat-launcher{position:fixed;right:24px;bottom:24px;width:64px;height:64px;border-radius:50%;border:none;background:var(--ocean-gradient);color:#fff;box-shadow:0 16px 38px rgba(0,61,92,.32);cursor:pointer;z-index:4001;display:flex;align-items:center;justify-content:center;pointer-events:auto;transition:transform .2s ease,box-shadow .2s ease}
.chat-launcher:hover{transform:translateY(-2px);box-shadow:0 20px 46px rgba(0,61,92,.36)}.chat-launcher svg{width:32px;height:32px}
.chat-panel{position:fixed;right:24px;bottom:104px;width:min(430px,calc(100vw - 32px));height:min(620px,calc(100vh - 140px));background:#fff;border:1px solid rgba(0,119,190,.18);border-radius:22px;box-shadow:0 24px 70px rgba(0,61,92,.28);z-index:4002;display:none;overflow:hidden;pointer-events:auto}
.chat-panel.open{display:flex;flex-direction:column}
.chat-panel.dragging{user-select:none;opacity:.98}
.chat-drag-handle{background:var(--ocean-gradient);color:#fff;padding:1rem 1.1rem;display:flex;justify-content:space-between;align-items:center;cursor:move;touch-action:none}
.chat-title-group{display:flex;align-items:center;gap:.8rem;min-width:0}.chat-avatar{width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;flex-shrink:0}.chat-avatar svg{width:25px;height:25px}.chat-title-group h3{font-size:1rem;margin:0;line-height:1.1}.chat-title-group span{font-size:.78rem;opacity:.88;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:270px}
.chat-actions{display:flex;gap:.35rem}.chat-minimize,.chat-close{width:32px;height:32px;border:none;border-radius:10px;background:rgba(255,255,255,.14);color:#fff;font-size:1.3rem;line-height:1;cursor:pointer}.chat-minimize:hover,.chat-close:hover{background:rgba(255,255,255,.24)}
.chat-messages{flex:1;padding:1rem;overflow-y:auto;background:linear-gradient(180deg,#f8fffe 0%,#eef8fb 100%)}
.chat-message{margin-bottom:.9rem;padding:.85rem 1rem;border-radius:15px;max-width:92%;font-size:.95rem;box-shadow:0 4px 14px rgba(0,61,92,.06)}
.chat-message.user{background:#dff1fb;margin-left:auto;color:var(--deep-blue);border-bottom-right-radius:5px}.chat-message.assistant{background:#fff;color:var(--text-main);border:1px solid rgba(0,119,190,.12);border-bottom-left-radius:5px}
.chat-message p{margin-bottom:.55rem}.chat-message p:last-child{margin-bottom:0}.chat-message ul,.chat-message ol{margin:.5rem 0 .5rem 1.2rem}.chat-message code{background:#eef6f9;padding:.1rem .3rem;border-radius:4px;font-family:Consolas,Monaco,monospace}.chat-message pre{background:#0f2533;color:#fff;padding:.8rem;border-radius:10px;overflow-x:auto;margin:.6rem 0}
.chat-input-area{border-top:1px solid rgba(0,119,190,.14);padding:.85rem;background:#fff}.chat-input-row{display:flex;gap:.6rem;align-items:flex-end}.chat-input-row textarea{flex:1;min-height:46px;max-height:120px;resize:vertical;border:1px solid rgba(0,119,190,.24);border-radius:14px;padding:.75rem;font-family:inherit;font-size:.95rem;outline:none}.chat-input-row textarea:focus{border-color:var(--ocean-blue);box-shadow:0 0 0 3px rgba(0,119,190,.1)}
.chat-send{border:none;border-radius:14px;padding:0 1rem;height:46px;background:var(--earth-gradient);color:#fff;font-weight:700;cursor:pointer}.chat-send:disabled{opacity:.55;cursor:not-allowed}.chat-status{color:var(--text-muted);font-size:.76rem;margin-top:.45rem}

@media(max-width:1100px){nav{padding:0 1.25rem;gap:1rem}.nav-links{gap:.85rem;font-size:.92rem}.login-btn{padding:.7rem 1.1rem}}
@media(max-width:768px){header{position:fixed}nav{padding:.7rem 1rem}.logo{font-size:1.25rem;gap:.65rem}.logo img{width:48px;height:48px}.tagline{margin-left:48px;font-size:.65rem;max-width:230px}.nav-links{display:none}.login-btn{padding:.65rem 1rem;font-size:.85rem}main{margin-top:84px}.hero{padding:4.5rem 1rem}.hero h1{font-size:2.15rem}.two-col{grid-template-columns:1fr}.section{padding:3.5rem 0}.chat-launcher{right:16px;bottom:16px;width:58px;height:58px}.chat-panel{right:16px;bottom:88px;height:min(600px,calc(100vh - 110px));width:min(420px,calc(100vw - 32px))}.chat-title-group span{max-width:220px}}
@media(max-width:480px){nav{gap:.5rem}.logo{font-size:1rem}.logo img{width:42px;height:42px}.tagline{margin-left:42px;font-size:.58rem;max-width:190px}.login-btn{padding:.55rem .8rem;font-size:.78rem}.chat-title-group span{max-width:180px}}
