/* P4 AI会展智能策划平台 — 共享样式 */
:root {
  --bg: #060918;
  --card: #0d1321;
  --pink: #EC4899;
  --pink-glow: rgba(236, 72, 153, 0.5);
  --indigo: #6366F1;
  --indigo-glow: rgba(99, 102, 241, 0.5);
  --cyan: #06B6D4;
  --text: #e2e8f0;
  --text2: #94a3b8;
  --text3: #64748b;
  --border: rgba(236, 72, 153, 0.15);
  --radius: 12px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh}
canvas#particles{position:fixed;top:0;left:0;z-index:0;pointer-events:none}
.container{max-width:1200px;margin:0 auto;padding:0 20px;position:relative;z-index:1}

/* Nav */
.nav{position:sticky;top:0;z-index:100;background:rgba(6,9,24,.85);backdrop-filter:blur(20px);border-bottom:1px solid var(--border)}
.nav-inner{max-width:1200px;margin:0 auto;padding:0 20px;display:flex;align-items:center;justify-content:space-between;height:56px}
.nav-logo{font-weight:700;font-size:1rem;background:linear-gradient(135deg,var(--pink),var(--indigo));-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-decoration:none}
.nav-links{display:flex;gap:24px}
.nav-links a{color:var(--text2);text-decoration:none;font-size:.85rem;transition:color .2s;padding:4px 0;border-bottom:2px solid transparent}
.nav-links a:hover,.nav-links a.active{color:var(--pink);border-bottom-color:var(--pink)}

/* Breadcrumb */
.breadcrumb{padding:16px 20px;font-size:.8rem;color:var(--text3)}
.breadcrumb a{color:var(--text2);text-decoration:none}
.breadcrumb a:hover{color:var(--pink)}
.breadcrumb span{color:var(--pink)}

/* Hero */
.hero{text-align:center;padding:60px 20px 40px;position:relative;z-index:1}
.hero-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:rgba(236,72,153,.1);border:1px solid rgba(236,72,153,.3);border-radius:100px;font-size:.75rem;color:var(--pink);margin-bottom:16px;animation:pulse 2s infinite}
.hero-badge::before{content:'';width:8px;height:8px;background:var(--pink);border-radius:50%;box-shadow:0 0 10px var(--pink)}
.hero h1{font-size:2rem;font-weight:800;margin-bottom:12px;background:linear-gradient(135deg,var(--pink),var(--indigo),var(--cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.hero p{color:var(--text2);font-size:1rem;max-width:600px;margin:0 auto}

/* Cards */
.card{background:linear-gradient(135deg,rgba(13,19,33,.95),rgba(6,9,24,.98));border:1px solid var(--border);border-radius:var(--radius);padding:24px;transition:all .3s;position:relative;overflow:hidden}
.card:hover{transform:translateY(-4px);border-color:rgba(236,72,153,.4);box-shadow:0 8px 32px rgba(236,72,153,.1),0 0 60px rgba(99,102,241,.08)}
.card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--pink),var(--indigo),transparent);opacity:0;transition:opacity .3s}
.card:hover::before{opacity:1}

/* Grids */
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media(max-width:768px){.grid2,.grid3,.grid4{grid-template-columns:1fr}}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 28px;background:linear-gradient(135deg,var(--pink),var(--indigo));color:#fff;font-weight:600;font-size:.9rem;border:none;border-radius:8px;cursor:pointer;transition:all .3s;box-shadow:0 4px 20px rgba(236,72,153,.3)}
.btn:hover{transform:scale(1.03);box-shadow:0 8px 32px rgba(236,72,153,.4)}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.btn-outline{background:transparent;border:1px solid rgba(236,72,153,.4);box-shadow:none}
.btn-outline:hover{background:rgba(236,72,153,.1)}

/* Inputs */
input,select,textarea{width:100%;padding:12px 16px;background:rgba(6,9,24,.8);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:.9rem;outline:none;transition:border .2s}
input:focus,select:focus,textarea:focus{border-color:var(--pink);box-shadow:0 0 15px rgba(236,72,153,.15)}
label{display:block;font-size:.8rem;color:var(--text2);margin-bottom:6px}
.form-group{margin-bottom:16px}

/* Progress / Loading */
.loading{display:inline-block;width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--pink);border-radius:50%;animation:spin .8s linear infinite}
.spinner-wrap{text-align:center;padding:40px}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.6}}

/* Results */
.result-box{background:rgba(13,19,33,.9);border:1px solid rgba(99,102,241,.2);border-radius:var(--radius);padding:20px;margin-top:20px;white-space:pre-wrap;font-family:monospace;font-size:.85rem;max-height:400px;overflow-y:auto}
.result-box.success{border-color:rgba(34,197,94,.4)}
.result-box.error{border-color:rgba(239,68,68,.4);color:#ef4444}

/* Stats */
.stat-row{display:flex;gap:16px;flex-wrap:wrap;margin:20px 0}
.stat-item{flex:1;min-width:120px;text-align:center;padding:16px;background:rgba(13,19,33,.8);border-radius:var(--radius)}
.stat-num{font-size:1.5rem;font-weight:800;background:linear-gradient(135deg,var(--pink),var(--indigo));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.stat-label{font-size:.75rem;color:var(--text3);margin-top:4px}

/* Tags */
.tag{display:inline-block;padding:3px 10px;background:rgba(236,72,153,.1);border:1px solid rgba(236,72,153,.2);border-radius:100px;font-size:.7rem;color:var(--pink)}
.tag.indigo{background:rgba(99,102,241,.1);border-color:rgba(99,102,241,.2);color:var(--indigo)}
.tag.cyan{background:rgba(6,182,212,.1);border-color:rgba(6,182,212,.2);color:var(--cyan)}
.tag.green{background:rgba(34,197,94,.1);border-color:rgba(34,197,94,.2);color:#22c55e}

/* Section */
.section{padding:40px 20px;position:relative;z-index:1}
.section-title{font-size:1.25rem;font-weight:700;margin-bottom:24px;color:var(--text)}
.section-title span{background:linear-gradient(135deg,var(--pink),var(--indigo));-webkit-background-clip:text;-webkit-text-fill-color:transparent}

/* API doc */
.api-endpoint{background:rgba(13,19,33,.95);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:16px}
.api-method{display:inline-block;padding:3px 10px;border-radius:4px;font-size:.75rem;font-weight:700;font-family:monospace;margin-right:8px}
.api-method.post{background:rgba(236,72,153,.15);color:var(--pink)}
.api-method.get{background:rgba(34,197,94,.15);color:#22c55e}
.api-path{font-family:monospace;font-size:.9rem;color:var(--cyan)}
.api-desc{color:var(--text2);font-size:.85rem;margin-top:8px}
.api-params{margin-top:12px}
.api-param{display:flex;gap:12px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.05);font-size:.8rem}
.api-param .name{font-family:monospace;color:var(--indigo);min-width:120px}
.api-param .type{color:var(--text3);min-width:60px}
.api-param .required{color:#ef4444;font-size:.7rem}

/* Footer */
.footer{text-align:center;padding:40px 20px;color:var(--text3);font-size:.8rem;border-top:1px solid var(--border)}

/* Flow steps */
.flow{display:flex;align-items:center;justify-content:center;gap:0;flex-wrap:wrap;margin:32px 0}
.flow-step{text-align:center;padding:16px;position:relative}
.flow-step .icon{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,rgba(236,72,153,.15),rgba(99,102,241,.1));border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:1.25rem;margin:0 auto 8px}
.flow-step .label{font-size:.8rem;color:var(--text2);font-weight:600}
.flow-arrow{color:var(--pink);font-size:1.25rem;margin:0 -4px}
@media(max-width:768px){.flow{flex-direction:column}.flow-arrow{transform:rotate(90deg)}}

/* Chat UI */
.chat-box{max-width:700px;margin:0 auto;background:rgba(13,19,33,.95);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.chat-msgs{padding:16px;min-height:300px;max-height:500px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}
.chat-msg{max-width:80%;padding:10px 14px;border-radius:12px;font-size:.85rem;line-height:1.5}
.chat-msg.bot{align-self:flex-start;background:rgba(99,102,241,.1);border:1px solid rgba(99,102,241,.2);border-bottom-left-radius:4px}
.chat-msg.user{align-self:flex-end;background:linear-gradient(135deg,var(--pink),var(--indigo));border-bottom-right-radius:4px}
.chat-input-row{display:flex;gap:8px;padding:12px;border-top:1px solid var(--border)}
.chat-input-row input{flex:1}
.chat-input-row button{flex-shrink:0}

/* Model select */
.model-select{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.model-chip{padding:6px 14px;background:rgba(13,19,33,.9);border:1px solid var(--border);border-radius:100px;font-size:.8rem;color:var(--text2);cursor:pointer;transition:all .2s}
.model-chip:hover{border-color:rgba(236,72,153,.4);color:var(--pink)}
.model-chip.active{background:linear-gradient(135deg,rgba(236,72,153,.2),rgba(99,102,241,.15));border-color:var(--pink);color:var(--pink)}

/* Toast */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:12px 24px;background:rgba(13,19,33,.95);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:.85rem;z-index:999;animation:fadeInUp .3s}
@keyframes fadeInUp{from{opacity:0;transform:translateX(-50%) translateY(10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
.nav-btn{color:var(--text2);text-decoration:none;font-size:.85rem;transition:color .2s;padding:4px 0;border-bottom:2px solid transparent;cursor:pointer}
.nav-btn:hover,.nav-btn.active{color:var(--pink);border-bottom-color:var(--pink)}
