.jarvis-shell{--jarvis-chat-height:clamp(500px, calc(100vh - 12rem), 1400px);min-height:var(--jarvis-chat-height);z-index:1;grid-template-columns:minmax(260px,300px) minmax(0,1fr);align-items:stretch;gap:1rem;display:grid;position:relative}.jarvis-history,.jarvis-chat,.jarvis-modal-panel,.jarvis-confirm-card{border-radius:var(--radius-lg);border:2px solid color-mix(in oklab, var(--line) 74%, var(--brand) 26%);box-shadow:0 0 0 1px color-mix(in oklab, var(--bg) 88%, transparent 12%), 0 16px 40px -30px color-mix(in oklab, var(--brand) 56%, transparent 44%);background:linear-gradient(180deg, color-mix(in oklab, var(--surface-1) 94%, transparent 6%), color-mix(in oklab, var(--surface-2) 92%, transparent 8%)), repeating-linear-gradient(0deg, color-mix(in oklab, var(--brand) 7%, transparent 93%) 0, color-mix(in oklab, var(--brand) 7%, transparent 93%) 1px, transparent 1px, transparent 12px)}.jarvis-history{height:var(--jarvis-chat-height);min-height:0;max-height:var(--jarvis-chat-height);top:calc(var(--layout-header-height) + .6rem);grid-template-rows:auto minmax(0,1fr) auto;padding:.8rem;display:grid;position:sticky}.history-head{border-bottom:1px dashed var(--line);justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.6rem;padding-bottom:.55rem;display:flex}.history-head h2{letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.92rem}.history-list{align-content:start;gap:.45rem;padding-right:.1rem;display:grid;overflow:auto}.history-item{border:1px solid color-mix(in oklab, var(--line) 82%, transparent 18%);background:color-mix(in oklab, var(--bg) 90%, transparent 10%);grid-template-columns:minmax(0,1fr) auto;gap:.35rem;padding:.42rem;display:grid}.history-item.is-active{border-color:color-mix(in oklab, var(--brand) 56%, var(--line) 44%);box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--brand) 30%, transparent 70%)}.history-main{text-align:left;color:var(--text);cursor:pointer;background:0 0;border:0;gap:.18rem;min-width:0;padding:0;display:grid}.history-title{text-overflow:ellipsis;white-space:nowrap;font-size:.84rem;font-weight:600;overflow:hidden}.history-time{color:var(--text-muted);font-size:.72rem;font-family:var(--font-tech)}.history-menu-wrap{position:relative}.history-menu-toggle{border:1px solid var(--line);background:color-mix(in oklab, var(--surface-1) 88%, transparent 12%);width:28px;height:28px;color:var(--text-soft);cursor:pointer}.history-menu{border:1px solid var(--line);background:color-mix(in oklab, var(--bg-elev) 94%, transparent 6%);z-index:3;min-width:98px;display:grid;position:absolute;top:calc(100% + 4px);right:0}.history-menu[hidden]{display:none!important}.history-menu button{border:0;border-bottom:1px solid var(--line-soft);color:var(--text);text-align:left;cursor:pointer;background:0 0;padding:.38rem .45rem;font-size:.78rem}.history-menu button:last-child{border-bottom:0}.history-menu button.danger{color:#ef4444}.history-settings-btn{border:1px solid color-mix(in oklab, var(--brand) 48%, var(--line) 52%);background:color-mix(in oklab, var(--brand-soft) 74%, transparent 26%);width:100%;color:color-mix(in oklab, var(--brand) 84%, var(--text) 16%);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;margin-top:.65rem;padding:.54rem .6rem;font-size:.83rem;font-weight:700}.jarvis-chat{height:var(--jarvis-chat-height);grid-template-rows:auto minmax(0,1fr) auto auto;gap:.72rem;min-height:0;padding:.92rem;display:grid;overflow:hidden}.chat-head{border-bottom:1px dashed var(--line);justify-content:space-between;align-items:flex-start;gap:.7rem;padding-bottom:.68rem;display:flex}.chat-title-wrap h1{letter-spacing:.1em;text-transform:uppercase;font-size:clamp(1.2rem,1.2vw + .96rem,1.7rem);line-height:1.1;font-family:var(--font-display);margin:.18rem 0 0}.chat-kicker{color:color-mix(in oklab, var(--brand) 76%, var(--text-soft) 24%);letter-spacing:.16em;text-transform:uppercase;font-size:.68rem;font-family:var(--font-tech);margin:0}.chat-state-wrap{justify-items:end;gap:.42rem;display:grid}.chat-role-select{border:1px solid var(--line);background:color-mix(in oklab, var(--bg) 90%, transparent 10%);min-width:150px;color:var(--text);padding:.32rem .45rem;font-size:.78rem}.chat-active-chip{border:1px solid color-mix(in oklab, var(--brand) 50%, var(--line) 50%);background:color-mix(in oklab, var(--brand-soft) 72%, transparent 28%);color:color-mix(in oklab, var(--brand) 82%, var(--text) 18%);white-space:nowrap;text-overflow:ellipsis;max-width:min(52vw,420px);padding:.22rem .5rem;font-size:.72rem;overflow:hidden}.chat-stream{align-content:start;gap:.74rem;min-height:0;padding-right:.1rem;display:grid;overflow:hidden auto}@keyframes jarvis-blink{0%,to{opacity:1}50%{opacity:0}}.jarvis-cursor{background-color:var(--brand);vertical-align:text-bottom;width:8px;height:1.1em;margin-left:4px;animation:.8s step-end infinite jarvis-blink;display:inline-block}.chat-msg{border:none;flex-direction:column;width:100%;max-width:100%;margin-bottom:1.8rem;padding:0;display:flex}.chat-msg.user{background:0 0;align-items:flex-end}.chat-msg.assistant{background:color-mix(in oklab, var(--surface-1) 96%, transparent 4%);border:1px solid color-mix(in oklab, var(--line) 80%, transparent 20%);border-radius:var(--radius-lg);box-shadow:0 6px 16px color-mix(in oklab, var(--line) 25%, transparent 75%);flex-direction:row;align-items:flex-start;gap:1.2rem;padding:1.4rem}.chat-msg.user .chat-msg-role{display:none}.chat-msg.assistant .chat-msg-role{background-color:color-mix(in oklab, var(--surface-2) 90%, transparent 10%);color:#fff;width:40px;height:40px;box-shadow:0 4px 12px color-mix(in oklab, var(--line) 40%, transparent 60%);border:1px solid color-mix(in oklab, var(--line) 80%, transparent 20%);background-position:50%;background-repeat:no-repeat;background-size:cover;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin:0;font-size:0;display:flex}.chat-msg.assistant .chat-msg-role:before{content:none}.chat-msg-content{color:var(--text);word-break:break-word;font-size:.95rem;line-height:1.68}.chat-msg.user .chat-msg-content{background:color-mix(in oklab, var(--brand-soft) 80%, transparent 20%);border:1px solid color-mix(in oklab, var(--brand) 40%, transparent 60%);color:var(--text);max-width:82%;box-shadow:0 2px 6px color-mix(in oklab, var(--brand) 10%, transparent 90%);border-radius:24px 24px 4px;padding:.85rem 1.4rem}.chat-msg.assistant .chat-msg-content{flex:1;min-width:0;max-width:calc(100% - 36px - 1.2rem);padding:.2rem 0 0}.chat-msg-content>:first-child{margin-top:0}.chat-msg-content>:last-child{margin-bottom:0}.chat-msg-content h1,.chat-msg-content h2,.chat-msg-content h3{font-family:var(--font-display);letter-spacing:.03em;margin:.7rem 0 .45rem;font-size:1rem}.chat-msg-content p,.chat-msg-content li{margin:.42rem 0}.chat-msg-content ul,.chat-msg-content ol{margin:.5rem 0;padding-left:1.2rem}.chat-msg-content pre{border:1px solid var(--line);background:color-mix(in oklab, var(--bg) 88%, transparent 12%);margin:.55rem 0;padding:.52rem;overflow:auto}.chat-msg-content code{font-family:var(--font-tech);background:color-mix(in oklab, var(--code-bg) 82%, transparent 18%);border:1px solid color-mix(in oklab, var(--code-border) 74%, transparent 26%);padding:.08em .34em;font-size:.84em}.chat-msg-content pre code{background:0 0;border:0;padding:0}.chat-msg-content blockquote{border-left:3px solid var(--brand);background:color-mix(in oklab, var(--surface-2) 88%, transparent 12%);margin:.65rem 0;padding:.4rem .58rem}.chat-form{border-top:1px dashed var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:flex-end;gap:.8rem;padding-top:1rem;display:grid}.chat-form textarea{resize:none;border:2px solid color-mix(in oklab, var(--line) 80%, transparent 20%);background:color-mix(in oklab, var(--surface-1) 90%, transparent 10%);width:100%;min-height:56px;max-height:220px;color:var(--text);box-shadow:0 2px 8px color-mix(in oklab, var(--line) 20%, transparent 80%);border-radius:28px;outline:none;padding:.8rem 1.2rem;font-size:.95rem;line-height:1.5;transition:all .2s}.chat-form textarea:focus{border-color:var(--brand);box-shadow:0 0 0 2px color-mix(in oklab, var(--brand) 20%, transparent 80%)}.chat-form .neo-btn{width:56px;height:56px;box-shadow:0 4px 12px color-mix(in oklab, var(--brand) 30%, transparent 70%);border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:0;display:flex}.chat-form .neo-btn:before{content:"🚀";font-size:1.4rem}.chat-status{color:var(--text-muted);min-height:1.2em;font-size:.76rem;font-family:var(--font-tech);margin:0}.chat-status[data-mode=error],.settings-status[data-mode=error]{color:#ef4444}.chat-status[data-mode=success],.settings-status[data-mode=success]{color:#10b981}.chat-status[data-mode=warning],.settings-status[data-mode=warning]{color:#f59e0b}.chat-status[data-mode=info],.settings-status[data-mode=info]{color:color-mix(in oklab, var(--brand) 72%, var(--text-soft) 28%)}.neo-btn{border:1px solid var(--line);background:color-mix(in oklab, var(--surface-1) 90%, transparent 10%);color:var(--text);letter-spacing:.04em;text-transform:uppercase;border-radius:var(--radius-md);cursor:pointer;padding:.6rem 1rem;font-size:.84rem;transition:all .2s}.neo-btn.primary{border-color:color-mix(in oklab, var(--brand) 40%, var(--line) 60%);background:color-mix(in oklab, var(--brand-soft) 40%, var(--surface-1) 60%);color:var(--brand);box-shadow:0 4px 12px color-mix(in oklab, var(--brand) 15%, transparent 85%);font-weight:600}.neo-btn.danger{border-color:color-mix(in oklab, #ef4444 58%, var(--line) 42%);color:#ef4444}.jarvis-modal,.jarvis-confirm{z-index:80;position:fixed;inset:0}.jarvis-modal[hidden],.jarvis-confirm[hidden]{display:none!important}body.jarvis-settings-open main{z-index:85}.jarvis-modal-backdrop,.jarvis-confirm-mask{backdrop-filter:blur(4px);background:oklab(12.8802% -.003754 -.0404292/.52);position:absolute;inset:0}.jarvis-modal-panel{grid-template-columns:196px minmax(0,1fr);width:min(1040px,100vw - 2rem);height:min(82vh,760px);max-height:calc(100dvh - 2rem);display:grid;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 24px 60px -10px oklab(0% none none/.24)}.settings-menu{border-right:1px dashed var(--line);background:color-mix(in oklab, var(--surface-2) 60%, transparent 40%);align-content:start;gap:.6rem;padding:1rem .8rem;display:grid}.settings-menu button{color:var(--text);text-align:left;cursor:pointer;border-radius:var(--radius-md);background:0 0;border:1px solid #0000;padding:.7rem .9rem;font-size:.9rem;font-weight:500;transition:all .2s}.settings-menu button:hover{background:color-mix(in oklab, var(--surface-1) 80%, transparent 20%)}.settings-menu button.is-active{background:var(--brand);color:#fff;border-color:var(--brand);box-shadow:0 4px 12px color-mix(in oklab, var(--brand) 40%, transparent 60%)}.settings-content{grid-template-rows:auto minmax(0,1fr) auto;min-width:0;min-height:0;display:grid}.settings-head{border-bottom:1px dashed var(--line);background:color-mix(in oklab, var(--surface-1) 95%, transparent 5%);justify-content:space-between;align-items:center;gap:.6rem;padding:1rem 1.2rem;display:flex}.settings-head h3{letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:1rem;font-weight:600}.settings-pane{align-content:start;gap:1rem;min-height:0;padding:1.2rem;display:grid;overflow:auto}.settings-pane[hidden]{display:none!important}.settings-pane label{color:var(--text);gap:.4rem;font-size:.85rem;font-weight:500;display:grid}.settings-pane input,.settings-pane select,.settings-pane textarea{border:1px solid var(--line);background:color-mix(in oklab, var(--bg) 90%, transparent 10%);width:100%;color:var(--text);border-radius:var(--radius-md);resize:vertical;outline:none;padding:.6rem .8rem;font-size:.9rem;transition:border-color .2s,box-shadow .2s}.jarvis-avatar-picker{align-items:center;gap:1.2rem;margin:.2rem 0;display:flex}.avatar-preview{background-color:color-mix(in oklab, var(--surface-2) 90%, transparent 10%);border:1px solid color-mix(in oklab, var(--line) 80%, transparent 20%);width:72px;height:72px;box-shadow:0 4px 12px color-mix(in oklab, var(--line) 20%, transparent 80%);background-position:50%;background-repeat:no-repeat;background-size:cover;border-radius:50%;flex-shrink:0}.avatar-controls{flex:1;gap:1rem;display:grid}.settings-pane input:focus,.settings-pane select:focus,.settings-pane textarea:focus{border-color:var(--brand);box-shadow:0 0 0 2px color-mix(in oklab, var(--brand) 20%, transparent 80%)}.settings-actions{flex-wrap:wrap;gap:.42rem;display:flex}.settings-status{border-top:1px dashed var(--line);min-height:1.3em;font-size:.76rem;font-family:var(--font-tech);margin:0;padding:.52rem .75rem .66rem}.selector-list{gap:.5rem;display:grid}.selector-item{border:1px solid var(--line);background:color-mix(in oklab, var(--surface-1) 90%, transparent 10%);grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.58rem;padding:.52rem;display:grid}.selector-item.is-active{border-color:color-mix(in oklab, var(--brand) 58%, var(--line) 42%);box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--brand) 34%, transparent 66%)}.selector-item input{margin-top:.18rem}.selector-body{gap:.18rem;display:grid}.selector-body strong{color:var(--text);font-size:.84rem}.selector-body span{color:var(--text-soft);font-size:.78rem;font-family:var(--font-tech);word-break:break-word}.selector-body small{color:var(--text-muted);word-break:break-word;font-size:.72rem}.jarvis-confirm-card{gap:.62rem;width:min(460px,100vw - 2rem);padding:.82rem;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.jarvis-confirm-card h4{letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:.92rem}.jarvis-confirm-card p{color:var(--text-soft);margin:0;font-size:.8rem}.jarvis-confirm-card label{color:var(--text-soft);gap:.24rem;font-size:.78rem;display:grid}.jarvis-confirm-card input{border:1px solid var(--line);background:color-mix(in oklab, var(--bg) 90%, transparent 10%);color:var(--text);outline:none;padding:.42rem .5rem;font-size:.84rem}.jarvis-toast-root{top:calc(var(--layout-header-height) + .9rem);right:max(.9rem, env(safe-area-inset-right));z-index:120;pointer-events:none;gap:.5rem;width:min(360px,100vw - 1.2rem);display:grid;position:fixed}.jarvis-toast{border:1px solid var(--line);background:color-mix(in oklab, var(--surface-1) 92%, transparent 8%);color:var(--text);box-shadow:0 10px 26px -20px color-mix(in oklab, var(--brand) 56%, transparent 44%);padding:.56rem .62rem;font-size:.82rem;line-height:1.45;animation:.16s ease-out jarvis-toast-in}.jarvis-toast.is-success{border-color:color-mix(in oklab, #10b981 56%, var(--line) 44%);background:color-mix(in oklab, #10b981 14%, var(--surface-1) 86%)}.jarvis-toast.is-error{border-color:color-mix(in oklab, #ef4444 58%, var(--line) 42%);background:color-mix(in oklab, #ef4444 12%, var(--surface-1) 88%)}.jarvis-toast.is-warning{border-color:color-mix(in oklab, #f59e0b 58%, var(--line) 42%);background:color-mix(in oklab, #f59e0b 12%, var(--surface-1) 88%)}@keyframes jarvis-toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (width<=1080px){.jarvis-shell{grid-template-columns:1fr;min-height:0}.jarvis-history{height:auto;min-height:auto;max-height:36dvh;position:static;top:auto}.jarvis-chat{height:clamp(560px, calc(100dvh - var(--layout-header-height) - 10rem - var(--floating-safe-bottom,0px)), 920px)}}@media (width<=900px){.jarvis-modal-panel{top:0;left:0;border:0;grid-template-columns:1fr;width:100vw;height:100dvh;max-height:100dvh;inset:0;transform:none}.settings-menu{border-right:0;border-bottom:1px dashed var(--line);scroll-snap-type:x proximity;grid-auto-columns:minmax(124px,1fr);grid-auto-flow:column;padding:.6rem;overflow:auto}.settings-menu button{white-space:nowrap;text-align:center;scroll-snap-align:start}.settings-status{padding-bottom:calc(.66rem + env(safe-area-inset-bottom))}}@media (width<=760px){.jarvis-chat{height:calc(100dvh - var(--layout-header-height) - 8.1rem - env(safe-area-inset-bottom) - var(--floating-safe-bottom,0px));min-height:460px;padding:.72rem}.chat-head{flex-direction:column;align-items:flex-start}.chat-state-wrap{justify-items:stretch;width:100%}.chat-active-chip{max-width:100%}.chat-form{grid-template-columns:1fr}.chat-form button{width:100%}.chat-msg{max-width:100%}.settings-pane{padding:.62rem}.settings-pane .settings-actions{flex-direction:column}.settings-pane .settings-actions .neo-btn{width:100%}.jarvis-toast-root{top:max(.72rem, env(safe-area-inset-top));right:max(.72rem, env(safe-area-inset-right));width:min(92vw,360px)}}
