/* Character presentation. Data collection and model logic remain independent. */
:root{--accent:#7860b3;--line:#e8e0ee;--muted:#82788e;color:#41384f;background:#f7f3fa}
body{background:radial-gradient(ellipse at 90% 0%,#e8e3fa99,transparent 48%),radial-gradient(ellipse at 0% 80%,#fbe6ee88,transparent 50%),#f7f3fa}
.sidebar{background:#fffcffed;border-color:#e8e1ef;padding-top:30px}.brand{color:#504263;letter-spacing:.04em}.mark{background:linear-gradient(145deg,#c0acd9,#8d77b4);color:#fff;border-radius:15px 5px 15px 5px;box-shadow:0 6px 20px #7860b325}.sub{letter-spacing:.1em;color:#a192ad}nav a{border-radius:10px}nav a.active{background:#ece5f6;color:#715499;box-shadow:inset 3px 0 #aa86c7}.sidebar-note{line-height:2.2;letter-spacing:.06em}.sidebar-note:before{content:'✦';display:block;font-size:20px;color:#c4a6d5;margin-bottom:10px}
h1{letter-spacing:.02em;color:#46394f}button,.button{border-radius:10px;transition:background-color .15s,border-color .15s,box-shadow .15s}button.primary,.button.primary{background:#8064ac;border-color:#8064ac;box-shadow:0 3px 9px #8064ac1f}button:hover,.button:hover{box-shadow:0 3px 12px #8a6aad13}button:focus-visible,a:focus-visible{outline:3px solid #c5ade3;outline-offset:3px}.card{border-radius:16px;border-color:#e8e0ee;box-shadow:0 5px 24px #79618b06}input,textarea,select{border-color:#ded4e7;border-radius:9px}.tag{border-radius:7px;background:#eee6f7;color:#7a589e}.tag.neutral{background:#f2eef5;color:#93839d}.pool-tabs .button{border-radius:20px;padding:7px 18px}
.portrait{width:46px;height:46px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;border-radius:15px;background:#ede5f4;border:2px solid #fff;box-shadow:0 3px 10px #58456d16;color:#9f85b9;font-size:24px}.portrait img{width:100%;height:100%;object-fit:cover;object-position:center 24%;display:block}.portrait.small{width:34px;height:34px;border-radius:12px;font-size:17px;margin-top:3px}.portrait.large{width:100px;height:100px;border-radius:28px;margin-bottom:18px}.portrait.card-avatar{width:94px;height:112px;border-radius:18px 6px 18px 6px}.portrait.identity-avatar{width:110px;height:132px;border-radius:20px 7px 20px 7px}.portrait.list-avatar{width:36px;height:42px;border-radius:10px;margin:0}.character-card{padding:0;overflow:hidden;display:flex;flex-direction:column}.character-card-top{padding:24px 24px 18px;display:flex;gap:18px;align-items:center;background:linear-gradient(120deg,#f0e9f788,#fcf8ff 70%);border-bottom:1px solid #f0e8f5}.character-card-top>div{min-width:0}.character-card-top h2{font-size:18px;margin:3px 0;line-height:1.5}.character-card-body{padding:20px 24px 24px;display:flex;flex-direction:column;flex:1}.character-card-body>.muted{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:13px;line-height:1.8}.character-card-body>.actions{margin-top:auto;padding-top:10px}.character-card .owner-line{font-size:11px}.character-card .stats{flex-wrap:wrap;gap:7px 20px}.character-card .resume-note{box-shadow:none;background:#f6f0fb}.identity-panel{display:flex;align-items:center;gap:24px;padding:25px 28px;background:linear-gradient(115deg,#f4edf9,#fff9fc);margin-bottom:22px;border:1px solid #e9dfee;border-radius:18px}.identity-panel h2{font-size:22px;margin-bottom:8px}.identity-panel p{margin-bottom:8px;max-width:680px;font-size:13px}.identity-panel .actions{margin-top:12px}.portrait-editor{max-width:620px;margin:auto}#portrait-preview{display:block;width:210px;height:210px;border-radius:20px;border:1px solid var(--line);margin:18px auto}#portrait-focus-label{max-width:350px;margin:0 auto 16px}.portrait-editor .file-drop input{margin-top:8px}
.chat-workspace{border-radius:18px;border-color:#e5daed;box-shadow:0 12px 44px #7b648712}.conversation-sidebar{background:#faf6fd}.conversation-header{background:linear-gradient(95deg,#fcf9ff,#fff7fc);border-bottom:1px solid #eee5f3}.conversation-header small{color:#a18dac}.conversation-item{display:flex;align-items:center;gap:10px;border-radius:11px;flex-shrink:0}.conversation-item>span:last-child{min-width:0;flex:1}.conversation-item.selected{background:#eee4f7;border-color:#e1d0ed}.conversation-feed{background:radial-gradient(circle at 85% 8%,#f7effa99,transparent 42%),#fffdfd;scroll-behavior:auto}.chat-row.assistant .chat-bubble{background:#fff;padding:14px 18px;border:1px solid #eee5f2;border-radius:4px 18px 18px 18px;box-shadow:0 3px 16px #82629005}.chat-row.user .chat-bubble{background:#eee5f7;border:1px solid #e5d8f0;color:#554065;box-shadow:0 3px 12px #82629007}.chat-bubble .sender{color:#ad97b9;letter-spacing:.06em}.conversation-composer{background:#fffafd;border-top:1px solid #f5eef8}.conversation-composer form{background:#fff;border-color:#e7dbef}.chat-connection-note{background:#faf2e9;color:#9a7f66;font-size:11px}.chat-person-details{background:#fbf6fd}.chat-welcome h2{font-size:23px;color:#685271}.starter-option{background:#fbf5ff;border:1px dashed #d8c4e7;color:#8c6ba4;padding:12px 18px;box-shadow:none}.chat-welcome small{font-size:11px;color:#ac9ab5}.entry-card{border-radius:16px}.entry-card.recommended{background:#f6effb;border-color:#d5c1e3}.auth-card{background:linear-gradient(135deg,#fffaff,#fff)}.auth-card:before{content:'✦';display:block;color:#b392cc;font-size:30px;margin-bottom:16px}.resume-note,.info{background:#f4eef9;border-color:#e1d3ed}
@media(min-width:1450px){.character-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.character-card-top{padding:20px;gap:14px}.portrait.card-avatar{width:78px;height:96px}}
@media(max-width:800px){.identity-panel{padding:18px;gap:16px}.portrait.identity-avatar{width:80px;height:102px}.identity-panel h2{font-size:19px}.conversation-header .portrait{width:38px;height:42px}.conversation-item{width:190px;min-width:170px;gap:7px}.conversation-item .portrait{width:30px;height:34px;border-radius:9px}.conversation-header .chat-person{min-width:0}.conversation-header h2{max-width:135px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-workspace{border-radius:13px}.chat-row.assistant .chat-bubble{padding:10px 13px}}
@media(max-width:760px){.character-card-top{padding:20px}.character-card-body{padding:18px 20px}.identity-panel{align-items:flex-start}.identity-panel .actions{gap:6px}.sidebar{padding-top:15px}.portrait.card-avatar{width:80px;height:98px}.portrait.large{width:82px;height:82px;border-radius:24px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Personality portrait: quiet motion, editable evidence cards. */
.portrait-hero{display:grid;grid-template-columns:1.4fr 1fr;gap:28px;background:linear-gradient(125deg,#f7f1ff,#edf5ff);border:1px solid #d9ceee;padding:30px!important}.portrait-hero .large{float:right;width:86px;height:86px}.portrait-summary{align-self:center}.portrait-summary strong{font-size:30px;color:#6c4ca4}.portrait-summary strong small{font-size:14px;font-weight:400}.portrait-summary progress{display:block;width:100%;height:8px;accent-color:#8b6bb5;margin:14px 0}.portrait-layout{display:grid;grid-template-columns:170px minmax(0,1fr) 280px;gap:20px;align-items:start}.portrait-outline,.portrait-sources{position:sticky;top:100px}.portrait-outline button{display:block;text-align:left;width:100%;border:0;background:transparent;margin:6px 0;padding:10px 4px}.portrait-outline button span{font-size:11px;color:#9476b7;margin-right:8px}.portrait-outline small{display:block;margin-top:20px;color:var(--muted)}.portrait-body section{scroll-margin-top:100px}.portrait-body section>h2{font-size:19px;margin:20px 0 12px}.portrait-item{animation:portrait-arrive .25s ease-out;transition:border-color .18s,background .18s,box-shadow .18s}.portrait-item[data-status="confirmed"],.portrait-item[data-status="edited"]{border-color:#b9a5d7;background:#fcfaff}.portrait-item[data-status="rejected"]{border-color:#dec5cb}.portrait-item.source-focus{box-shadow:0 0 0 2px #c4b0e4}.portrait-item textarea{resize:vertical;border:1px solid transparent;background:rgba(244,240,249,.55);transition:border-color .18s}.portrait-item textarea:focus{background:#fff;border-color:#a68bc8;outline:2px solid #eee6f8}.portrait-item details{margin:12px 0}.portrait-review button.selected{background:#e9ddf8;border-color:#ac8bcf;color:#5e3f87}.portrait-sources{max-height:calc(100vh - 140px);overflow:auto}.portrait-sources .source-quote{font-size:12px;overflow-wrap:anywhere;white-space:pre-wrap}.portrait-suggestion{background:#f2f5ff;border-radius:10px;padding:12px}.portrait-footer{margin-top:24px}.portrait-generating .portrait-hero{animation:portrait-pulse 1.8s ease-in-out infinite}.portrait-generating #generate-portrait{cursor:wait}@keyframes portrait-arrive{from{opacity:.5;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes portrait-pulse{50%{box-shadow:0 0 22px #dfd0ee}}
@media(max-width:1100px){.portrait-layout{grid-template-columns:145px minmax(0,1fr)}.portrait-sources{position:static;grid-column:2;max-height:400px}}@media(max-width:700px){.portrait-hero,.portrait-layout{display:block}.portrait-outline{position:static;display:flex;overflow:auto;gap:8px}.portrait-outline button{min-width:120px}.portrait-outline small{display:none}.portrait-sources{margin-top:20px}.portrait-summary{margin-top:20px}}
@media(prefers-reduced-motion:reduce){.portrait-item,.portrait-generating .portrait-hero{animation:none;transition:none}}
