:root{
  --bg:#101010;
  --panel:#171717;
  --panel-2:#1d1d1d;
  --line:#2b2b2b;
  --muted:#888681;
  --text:#f2f0eb;
  --purple:#9b8afb;
  --lime:#b7f762;
  --chat-column-width:clamp(320px,34vw,680px);
  --inspector-width:270px;
}

*{box-sizing:border-box}
html,body{height:100%;overflow:hidden}
body{margin:0;background:var(--bg);color:var(--text);font-family:Manrope,Arial,sans-serif;font-size:13px}
button,textarea,input,select{font:inherit}
button{color:inherit}
[hidden]{display:none!important}

/* Estrutura desktop: navegação | chat | editor/preview | arquivos */
.app-shell{
  display:grid;
  grid-template-columns:84px minmax(320px,var(--chat-column-width)) minmax(360px,1fr) var(--inspector-width);
  width:100vw;
  height:100vh;
  min-height:0;
  overflow:hidden;
}

.sidebar,.inspector{background:#151515}
.sidebar{
  min-width:0;
  height:100vh;
  padding:18px 10px;
  overflow:hidden;
  border-right:1px solid var(--line);
  display:flex;
  flex-direction:column;
}
.brand{position:relative;font-size:22px;font-weight:800;letter-spacing:-1px;display:flex;align-items:center;gap:9px;justify-content:center;margin:0 0 24px;white-space:nowrap}
#sidebar-toggle{position:absolute;right:-7px;top:50%;transform:translateY(-50%);width:24px;height:28px;border:1px solid #383838;border-radius:6px;background:#222;color:#bbb;font-size:18px;line-height:1;cursor:pointer;display:grid;place-items:center}
.brand-mark,.spark{color:var(--lime)}
.sidebar .brand span:last-child,.sidebar .section-label,.sidebar .new-chat kbd,.sidebar nav a b,.sidebar .profile>div:nth-child(2),.sidebar .profile>button{display:none}
.new-chat{width:48px;height:42px;margin:0 auto;border:1px solid #343434;background:#252525;border-radius:8px;padding:0;text-align:center;font-size:0;cursor:pointer}
.new-chat span{margin:0;font-size:22px}
nav{margin-top:22px;min-height:0}
nav a,.add-project,.sidebar-bottom a{color:#a9a7a3;text-decoration:none;display:flex;align-items:center;height:37px;border-radius:6px;font-weight:500}
.sidebar nav a,.sidebar .sidebar-bottom a{width:48px;margin:0 auto;padding:0;justify-content:center;white-space:nowrap;font-size:0;overflow:hidden}
.sidebar nav a span:first-child,.sidebar .sidebar-bottom a span:first-child{width:auto;font-size:17px;text-align:center;color:#9b9995}
nav a.active{background:#282727;color:#fff}
.project-dot{width:8px!important;height:8px;border-radius:50%;display:inline-block}
.violet{background:#a593ff}.coral{background:#ed8c7f}.blue{background:#7fb5ed}
.sidebar .space,.sidebar .chat-list{display:none}
.chat-list{width:100%}
.chat-item{
  display:grid;
  grid-template-columns:minmax(0,1fr) 28px 28px;
  width:100%;
  min-width:0;
  min-height:38px;
  align-items:center;
  gap:2px;
  margin:2px 0;
  padding:3px 4px 3px 10px;
  border:1px solid transparent;
  border-radius:7px;
  color:#a9a7a3;
  transition:background .15s,border-color .15s,color .15s;
}
.chat-item:hover{background:#202020;color:#e8e5df}
.chat-item.active{background:#2a2830;border-color:#3e3949;color:#fff}
.chat-item button{border:0;background:transparent;color:inherit;cursor:pointer}
.chat-item button[data-open-chat]{
  min-width:0;
  padding:7px 4px 7px 0;
  overflow:hidden;
  text-align:left;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:12px;
  font-weight:500;
}
.chat-item button[data-rename-chat],
.chat-item button[data-delete-chat]{
  display:grid;
  width:28px;
  height:28px;
  padding:0;
  place-items:center;
  border-radius:5px;
  color:#77746f;
  font-size:13px;
  opacity:0;
  transition:background .15s,color .15s,opacity .15s;
}
.chat-item:hover button[data-rename-chat],
.chat-item:hover button[data-delete-chat],
.chat-item:focus-within button[data-rename-chat],
.chat-item:focus-within button[data-delete-chat],
.chat-item.active button[data-rename-chat],
.chat-item.active button[data-delete-chat]{opacity:1}
.chat-item button[data-rename-chat]:hover{background:#38333f;color:#c8baff}
.chat-item button[data-delete-chat]:hover{background:#3b2528;color:#ff9ca7}
.chat-item button:focus-visible{outline:2px solid var(--purple);outline-offset:1px}
.add-project{width:48px;padding:0;border:0;background:none;font-size:0;overflow:hidden;cursor:pointer}
.add-project::first-letter{font-size:18px}
.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding-top:13px}
.profile{border-top:1px solid var(--line);margin-top:13px;padding:15px 0 0;display:flex;justify-content:center;align-items:center}
.avatar{background:linear-gradient(135deg,#f6ae8a,#b077d1);font-weight:700;color:#34241c;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:9px}

/* Chat */
.main{
  display:grid;
  grid-template-rows:70px minmax(0,1fr) auto;
  min-width:0;
  min-height:0;
  height:100vh;
  overflow:hidden;
  border-right:1px solid var(--line);
  background:radial-gradient(circle at 50% 37%,#1d1b20 0,#111 42%);
}
.topbar{height:70px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 20px;min-width:0}
.crumb{display:flex;align-items:center;gap:9px;color:#9d9b97;font-size:12px;min-width:0}
.crumb i{font-style:normal;color:#575757}.crumb strong{font-weight:600;color:#ddd;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.header-actions{margin-left:auto;display:flex;gap:8px}
.icon-btn{flex:0 0 auto;border:0;background:#222;color:#bdbbb7;border-radius:6px;width:30px;height:30px;cursor:pointer}
.mobile-menu{display:none}
.mobile-backdrop,#mobile-files-toggle{display:none}
.chat{min-height:0;overflow-y:auto;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:28px 20px 18px}
.welcome{text-align:center}.orb{display:none}
.eyebrow{color:#73716d;font:500 10px DM Mono;letter-spacing:1.05px;margin:0 0 8px}
.welcome h1{font-size:28px;line-height:1.15;letter-spacing:-1.2px;margin:0;font-weight:700}
.welcome h1 em{font-family:Georgia,serif;color:#c8baff;font-weight:400}
.intro{color:#96938f;margin:10px 0 18px}
.suggestions{display:grid;grid-template-columns:1fr;width:100%;max-width:560px;gap:8px}
.suggestions button{background:#1d1d1d;border:1px solid #2f2f2f;color:#eee;border-radius:10px;text-align:left;padding:11px;display:grid;grid-template-columns:30px 1fr 12px;gap:9px;align-items:center;cursor:pointer;transition:.2s}
.suggestions button:hover{border-color:#6c5cb1;transform:translateY(-1px)}
.suggestion-icon{width:28px;height:28px;border-radius:7px;display:grid;place-items:center;font-size:14px}
.purple{background:#3e3562;color:#baacff}.orange{background:#553528;color:#ffad80}.green{background:#28503b;color:#99efb4}
.suggestions b,.suggestions small{display:block}.suggestions b{font:600 11px Manrope}.suggestions small{color:#85827e;font-size:9px;margin-top:3px}.suggestions i{font-style:normal;color:#777}
.messages{width:100%;max-width:680px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
.message{max-width:90%;line-height:1.65;font-size:13px}
.message.user{align-self:flex-end;background:#373047;border:1px solid #514668;border-radius:12px;padding:10px 13px}
.message.assistant{align-self:flex-start}.message-name{font:600 10px DM Mono;color:#aaa;margin-bottom:4px}.message.user .message-name{color:#cfc2f5}
.message-content{white-space:pre-wrap}.thinking .message-content{color:#aaa;font-style:italic}
.message-content p{margin:0 0 8px}.message-content p:last-child{margin-bottom:0}
.code-block{margin:10px 0;background:#121212;border:1px solid #343434;border-radius:8px;overflow:hidden;white-space:normal}
.code-block header{height:31px;padding:0 9px;display:flex;align-items:center;justify-content:space-between;background:#202020;color:#aaa;font:10px DM Mono}
.copy-code{border:0;background:#333;color:#e2e0dc;border-radius:4px;padding:4px 7px;font:10px Manrope;cursor:pointer}
.code-block pre{overflow:auto;margin:0;padding:12px;color:#ddd;font:12px/1.55 'DM Mono',monospace}
.composer-wrap{min-height:0;padding:12px 16px 14px;background:linear-gradient(0deg,#101010 75%,transparent)}
.composer{border:1px solid #3a3939;border-radius:12px;background:#1d1d1d;padding:13px 13px 9px;max-width:680px;margin:auto;box-shadow:0 10px 30px #0003}
.composer:focus-within{border-color:#665b93}
.composer textarea{display:block;width:100%;resize:none;border:0;outline:0;background:transparent;color:#eee;font:13px Manrope;min-height:28px;max-height:140px}
.composer textarea::placeholder{color:#777572}
.composer-footer{display:flex;justify-content:space-between;align-items:center;margin-top:8px}
.attach,.model-select{border:0;background:none;color:#aaa;cursor:pointer}.attach{font-size:20px;vertical-align:middle}.model-select{font:11px Manrope;margin-left:9px}.model-select span{margin:0 4px}
.composer-submit{display:flex;align-items:center;gap:7px}
.send,.stop{border:0;border-radius:7px;width:29px;height:29px;font-size:18px;font-weight:bold;cursor:pointer}
.send{background:var(--lime);color:#1f2415}
.stop{background:#f2f0eb;color:#191919;font-size:12px}
.send:disabled,.stop:disabled{opacity:.5;cursor:wait}
.disclaimer{text-align:center;color:#5f5d5a;font-size:9px;margin:9px 0 0}

/* Editor e preview compartilham a mesma coluna */
.workspace-view{position:relative;display:grid;grid-template-rows:70px minmax(0,1fr);min-width:0;min-height:0;height:100vh;overflow:visible;border-right:1px solid var(--line);background:#111}
.workspace-view>.workspace-panel{overflow:hidden}
.workspace-resizer{position:absolute;z-index:4;top:0;bottom:0;left:-5px;width:10px;height:100%;padding:0;border:0;background:transparent;cursor:col-resize;touch-action:none}
.workspace-resizer::after{content:"";position:absolute;inset:0 auto 0 4px;width:1px;background:transparent;transition:background .15s,box-shadow .15s}
.workspace-resizer:hover::after,.workspace-resizer:focus-visible::after,.app-shell.is-resizing .workspace-resizer::after{background:var(--purple);box-shadow:0 0 0 2px #9b8afb33}
.workspace-resizer:focus-visible{outline:0}
.app-shell.is-resizing{cursor:col-resize;user-select:none}
.app-shell.is-resizing iframe{pointer-events:none}
.workspace-toolbar{min-height:70px;padding:0 14px;display:grid;grid-template-columns:minmax(100px,1fr) auto auto;gap:12px;align-items:center;border-bottom:1px solid var(--line)}
.workspace-document{min-width:0}.workspace-document .eyebrow{margin:0 0 4px}.workspace-document strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
.workspace-tabs{display:flex;align-self:end;height:42px}
.workspace-tab{border:0;border-bottom:2px solid transparent;background:none;color:#817f7b;padding:0 12px;font:600 11px Manrope;cursor:pointer}
.workspace-tab.active{color:var(--text);border-bottom-color:var(--lime)}
.workspace-actions{display:flex;gap:6px}.workspace-actions button{padding:7px 9px;border-radius:6px;font:600 10px Manrope;cursor:pointer}
.secondary{border:1px solid #444;background:#292929;color:#ddd}.primary{border:1px solid var(--lime);background:var(--lime);color:#242819}.danger{border:1px solid #703c45;background:#392025;color:#ffb6be}
.workspace-panel{min-width:0;min-height:0;height:100%;overflow:hidden}.workspace-panel[hidden]{display:none!important}
.editor-panel{display:flex}.editor-panel textarea{width:100%;height:100%;flex:1;border:0;outline:0;resize:none;padding:18px;background:#111;color:#dedbd4;font:12px/1.65 'DM Mono',monospace}
.preview-panel{display:flex;flex-direction:column;background:#181818}.preview-panel iframe{width:100%;min-height:0;flex:1;border:0;background:#fff}.preview-note{flex:0 0 auto;margin:0;padding:9px 12px;color:#777;font-size:9px}

/* Árvore funcional à direita */
.inspector{display:flex;flex-direction:column;min-width:0;height:100vh;padding:18px 12px;overflow:hidden}
.inspector-header{display:flex;align-items:start;flex:0 0 auto}.inspector-header .eyebrow{margin-left:0}.inspector h2{font-size:12px;margin:0;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inspector-header .icon-btn{margin-left:auto}
#inspector-toggle{font-size:18px;line-height:1}
.app-shell.inspector-collapsed{--inspector-width:54px}
.inspector-collapsed .inspector{padding:18px 10px;align-items:center}
.inspector-collapsed .inspector>.inspector-header{width:100%;justify-content:center}
.inspector-collapsed .inspector>.inspector-header>div,
.inspector-collapsed .inspector>:not(.inspector-header){display:none}
.inspector-collapsed #inspector-toggle{margin:0}
.filetree-toolbar{display:grid;grid-template-columns:1fr 34px;gap:6px;margin:16px 0 10px}.filetree-toolbar button{height:34px;border-radius:6px;font:600 10px Manrope;cursor:pointer}
.tree-actions{height:40px;display:flex;align-items:center;gap:7px;border-bottom:1px solid var(--line);font:10px DM Mono;color:#898681;padding:0 4px}
.tree-actions button{margin-left:auto;border:0;background:none;color:#c0afff;font:10px Manrope;cursor:pointer}.tree-actions button+button{margin-left:0}
.workspace-files{flex:1;min-height:0;padding:8px 2px;overflow:auto}.workspace-files p{color:#777;font-size:11px}
.workspace-entry{padding:6px;color:#b8b5b0;font:11px Manrope;cursor:pointer;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.workspace-entry:hover{background:#292727;color:#fff}.workspace-entry.directory{color:#c6b9ff}.workspace-children{padding-left:12px}
.provider-card{flex:0 0 auto;border:1px solid #333;border-radius:9px;margin-top:12px;padding:10px;background:#1b1b1b}
.provider-top{display:flex;align-items:center;gap:6px;font-size:10px;color:#aaa}.provider-top button{margin-left:auto;background:none;border:0;color:#ae9dff;font:10px Manrope;cursor:pointer}
.online-dot{width:6px;height:6px;border-radius:50%;background:#b7f762}.is-offline{background:#777}
.model-name{display:flex;gap:8px;align-items:center;margin-top:10px;min-width:0}.llama-logo{font-size:20px;color:#c8c4bd}.model-name div{min-width:0}.model-name strong,.model-name small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-name strong{font-size:10px}.model-name small{color:#777;font-size:9px;margin-top:2px}.ready{margin-left:auto;color:#9bd762;background:#26351c;border-radius:4px;padding:3px 5px;font-size:9px}

/* Provedores */
.provider-dialog{width:min(460px,calc(100vw - 30px));padding:0;border:1px solid #414141;border-radius:13px;background:#1d1d1d;color:var(--text);box-shadow:0 20px 80px #000}
.provider-dialog::backdrop{background:#000a}.provider-dialog form{padding:23px}.dialog-heading{display:flex;justify-content:space-between;align-items:start;margin-bottom:22px}.dialog-heading .eyebrow{margin:0 0 6px}.dialog-heading h2{margin:0;font-size:18px}.close-dialog{border:0;background:none;color:#bbb;font-size:25px;line-height:1;cursor:pointer}
.provider-dialog label{display:block;color:#bdbab6;font-size:11px;margin:14px 0}.provider-dialog input,.provider-dialog select{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid #3a3a3a;border-radius:7px;background:#151515;color:#eee;font:12px Manrope}.dialog-note{font-size:10px;line-height:1.5;color:#85817e}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.dialog-actions button{padding:9px 12px;border-radius:7px;font:600 11px Manrope;cursor:pointer}.connection-result{min-height:15px;color:#b7f762;font-size:10px;margin:9px 0 0}
.provider-manager{border:1px solid #373737;border-radius:8px;padding:10px;margin-bottom:15px}.provider-list{max-height:120px;overflow:auto}.provider-row{display:grid;grid-template-columns:1fr auto auto;gap:5px;align-items:center;padding:6px 0;border-bottom:1px solid #2b2b2b}.provider-row:last-child{border:0}.provider-row button{border:0;background:none;color:#bcb8b4;font:10px Manrope;cursor:pointer}.provider-row button:first-child{text-align:left}.provider-row small{display:block;color:#706e69}.provider-row.selected button:first-child{color:#c8baff}.add-provider{margin-top:8px;padding:6px 8px;border-radius:5px;font-size:10px}

/* Modos da aplicação e expansão da navegação. */
.app-shell[data-mode="chat"]{grid-template-columns:84px minmax(0,1fr)}
.app-shell[data-mode="chat"] .workspace-view,
.app-shell[data-mode="chat"] .inspector{display:none}
.app-shell.sidebar-expanded{grid-template-columns:254px minmax(320px,var(--chat-column-width)) minmax(360px,1fr) var(--inspector-width)}
.app-shell[data-mode="chat"].sidebar-expanded{grid-template-columns:254px minmax(0,1fr)}
.app-shell.sidebar-expanded .sidebar{padding:23px 14px;overflow-y:auto}
.app-shell.sidebar-expanded .sidebar .brand{justify-content:flex-start;margin:0 10px 28px}
.app-shell.sidebar-expanded #sidebar-toggle{right:-2px}
.app-shell.sidebar-expanded .sidebar .brand span:last-child,
.app-shell.sidebar-expanded .sidebar .section-label,
.app-shell.sidebar-expanded .sidebar .profile>div:nth-child(2),
.app-shell.sidebar-expanded .sidebar .profile>button{display:block}
.app-shell.sidebar-expanded .sidebar .new-chat{width:100%;margin:0;height:42px;padding:0 12px;text-align:left;font-size:13px}
.app-shell.sidebar-expanded .sidebar .new-chat span{margin-right:7px;font-size:20px}
.app-shell.sidebar-expanded .sidebar .new-chat kbd{display:block;float:right;color:#858585;font:11px DM Mono;background:#303030;padding:3px 5px;border-radius:4px}
.app-shell.sidebar-expanded .sidebar nav{margin-top:27px}
.app-shell.sidebar-expanded .sidebar nav a,
.app-shell.sidebar-expanded .sidebar .sidebar-bottom a{width:100%;margin:0;padding:0 10px;justify-content:flex-start;font-size:12px;overflow:visible}
.app-shell.sidebar-expanded .sidebar nav a span:first-child,
.app-shell.sidebar-expanded .sidebar .sidebar-bottom a span:first-child{width:16px;font-size:16px}
.app-shell.sidebar-expanded .sidebar nav a b{display:block;margin-left:auto;font:10px DM Mono;background:#343333;padding:3px 6px;border-radius:5px}
.app-shell.sidebar-expanded .sidebar .space{display:block;margin-top:25px}
.app-shell.sidebar-expanded .sidebar .chat-list{display:block;max-height:160px;overflow-y:auto}
.app-shell.sidebar-expanded .sidebar .add-project{width:100%;padding:0 10px;font-size:12px}
.app-shell.sidebar-expanded .sidebar .profile{justify-content:flex-start;gap:9px;padding-left:5px;padding-right:5px}
.app-shell.sidebar-expanded .sidebar .profile>button{margin-left:auto;border:0;background:none;color:#aaa}

@media(max-width:1250px){
  .app-shell{--inspector-width:230px}
  .app-shell{grid-template-columns:76px minmax(300px,var(--chat-column-width)) minmax(340px,1fr) var(--inspector-width)}
  .workspace-toolbar{grid-template-columns:auto 1fr}.workspace-document{display:none}.workspace-actions{justify-self:end}
}

@media(max-width:900px){
  .app-shell,
  .app-shell.sidebar-expanded,
  .app-shell[data-mode="chat"],
  .app-shell[data-mode="chat"].sidebar-expanded{
    grid-template-columns:minmax(0,1fr);
    overflow:hidden;
  }
  .app-shell[data-mode="workspace"] .main{display:none}
  .app-shell[data-mode="chat"] .workspace-view,
  .app-shell[data-mode="chat"] .inspector{display:none}
  .main,.workspace-view{grid-column:1;width:100vw;height:100dvh}
  .sidebar{
    position:fixed;
    z-index:7;
    width:min(84vw,300px);
    inset:0 auto 0 0;
    padding:23px 14px;
    transform:translateX(-100%);
    transition:transform .25s ease;
    box-shadow:10px 0 30px transparent;
  }
  .sidebar.open{transform:translateX(0);box-shadow:10px 0 30px #0008}
  .sidebar.open .brand{justify-content:flex-start;margin:0 10px 28px}.sidebar.open .brand span:last-child,.sidebar.open .section-label,.sidebar.open .profile>div:nth-child(2),.sidebar.open .profile>button{display:block}
  .sidebar.open .new-chat{width:100%;font-size:13px;text-align:left;padding:0 12px}.sidebar.open .new-chat span{margin-right:7px}
  .sidebar.open nav a,.sidebar.open .sidebar-bottom a{width:100%;justify-content:flex-start;padding:0 10px;font-size:12px}.sidebar.open .chat-list{display:block}
  .mobile-menu{display:block;border:0;background:none;color:#ddd;font-size:19px;margin-right:10px}
  #mobile-files-toggle{display:block}
  .workspace-toolbar{grid-template-columns:minmax(0,1fr) auto;gap:8px;padding-left:14px}
  .workspace-tabs{justify-self:start}
  .workspace-actions{justify-self:end}
  .workspace-actions #save-file,
  .workspace-actions #delete-file{display:none}
  .inspector{
    display:flex;
    position:fixed;
    z-index:7;
    inset:0 0 0 auto;
    width:min(88vw,360px);
    height:100dvh;
    padding:18px 12px;
    align-items:stretch;
    transform:translateX(100%);
    transition:transform .25s ease;
    box-shadow:-10px 0 30px transparent;
  }
  .app-shell.inspector-mobile-open .inspector{transform:translateX(0);box-shadow:-10px 0 30px #0008}
  .app-shell.inspector-collapsed{--inspector-width:min(88vw,360px)}
  .inspector-collapsed .inspector>.inspector-header{width:auto;justify-content:initial}
  .inspector-collapsed .inspector>.inspector-header>div{display:block}
  .inspector-collapsed .inspector>.filetree-toolbar{display:grid}
  .inspector-collapsed .inspector>.tree-actions{display:flex}
  .inspector-collapsed .inspector>.workspace-files,
  .inspector-collapsed .inspector>.provider-card{display:block}
  .mobile-backdrop{
    display:block;
    position:fixed;
    z-index:6;
    inset:0;
    width:100vw;
    height:100dvh;
    padding:0;
    border:0;
    background:#0009;
  }
  .workspace-resizer{display:none}
}
