:root{
  --ouro:#A58546; --ouro-btn:#906E2B; --ouro-deep:#7A5A23; --ouro-claro:#EBC65E; --ouro-suave:#C5A572;
  --preto:#0E0E0E; --text-strong:#0E0E0E; --tinta:#1A1A1A; --c700:#555; --c300:#999;
  --creme:#FAF8F5; --creme2:#F5F0E8; --floral:#FFF9E8; --branco:#FFF; --linha:#ECE6DC;
  color-scheme:light;
}
/* ===== Modo escuro (ouro sobre grafite) ===== */
[data-theme="dark"]{
  --ouro-btn:#A07C34; --ouro-deep:#E0BC72;
  --text-strong:#F4EFE4; --tinta:#E9E3D6; --c700:#AEA491; --c300:#7C7362;
  --creme:#141009; --creme2:#0D0B06; --floral:#241D11; --branco:#1B1710; --linha:#2C261B;
  color-scheme:dark;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:'Montserrat',-apple-system,BlinkMacSystemFont,sans-serif;color:var(--tinta);background:var(--creme2);line-height:1.6;-webkit-font-smoothing:antialiased;transition:background-color .2s,color .2s}
img{max-width:100%;display:block}
[hidden]{display:none !important}
svg{display:block}

/* boot splash */
.boot{position:fixed;inset:0;background:var(--creme);display:grid;place-items:center;z-index:50}
.boot img{width:150px;opacity:.9;animation:pulse 1.4s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.5}50%{opacity:1}}

/* ============ LOGIN ============ */
.login{min-height:100%;display:grid;grid-template-columns:1.05fr .95fr;background:var(--branco)}
.login-art{background:radial-gradient(120% 120% at 20% 10%,#20160a,#0E0E0E 60%);position:relative;padding:56px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}
.login-art::after{content:"";position:absolute;inset:0;background:radial-gradient(60% 50% at 70% 82%,rgba(165,133,70,.28),transparent 70%)}
.login-art>*{position:relative;z-index:1}
.wordmark{width:210px;filter:brightness(0) invert(1);opacity:.96}
.quote{color:#E9E2D4;font-weight:300;font-size:20px;line-height:1.7;max-width:360px}
.quote b{color:var(--ouro-claro);font-weight:600}
.art-foot{color:#8a7f6b;font-size:11px;letter-spacing:.14em;text-transform:uppercase}

.login-form{display:flex;align-items:center;justify-content:center;padding:40px}
.form-inner{width:100%;max-width:380px}
.form-inner h1{font-weight:700;font-size:26px;color:var(--preto);letter-spacing:-.01em;color:var(--text-strong)}
.form-inner .sub{color:var(--c700);font-size:14px;margin:6px 0 30px}
.field{display:block;margin-bottom:18px}
.field .lbl{display:block;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--c700);margin-bottom:8px}
.field .inp{display:flex;align-items:center;gap:10px;border:1px solid var(--linha);border-radius:12px;padding:0 16px;background:var(--creme);transition:border-color .3s,background .3s}
.field .inp:focus-within{border-color:var(--ouro);background:var(--branco)}
.field .inp .ic{color:var(--ouro);display:inline-flex;align-items:center}
.field .inp .ic svg{width:18px;height:18px}
.field .inp input{flex:1;border:none;outline:none;background:transparent;font-family:inherit;font-size:14px;color:var(--tinta);padding:13px 0}
/* Autofill (iOS/Safari) não pode forçar fundo claro no dark */
input:-webkit-autofill,input:-webkit-autofill:focus{-webkit-text-fill-color:var(--tinta);-webkit-box-shadow:0 0 0 1000px var(--branco) inset;caret-color:var(--tinta);transition:background-color 9999s}
.error{background:#fdeceb;color:#a3312a;border-radius:10px;padding:11px 14px;font-size:13px;font-weight:500;margin-bottom:16px}
.btn-ouro{width:100%;border:none;background:var(--ouro-btn);color:#fff;text-transform:uppercase;letter-spacing:.06em;font-weight:700;font-size:14px;padding:16px;border-radius:999px;cursor:pointer;transition:all .9s ease;font-family:inherit;margin-top:6px}
.btn-ouro:hover{background:var(--ouro);transform:translateY(-1px)}
.btn-ouro:disabled{opacity:.6;cursor:default;transform:none}
.aux{margin-top:20px;font-size:12.5px;color:var(--c300);text-align:center}
.aux a{color:var(--ouro);text-decoration:none;font-weight:600}

/* ============ SHELL ============ */
.shell{height:100vh;height:100dvh;overflow:hidden;display:grid;grid-template-columns:220px 1fr;background:var(--creme);transition:grid-template-columns .24s ease}
.shell.collapsed{grid-template-columns:76px 1fr}
.side{background:var(--branco);border-right:1px solid var(--linha);display:flex;flex-direction:column;padding:20px 0 0;overflow:hidden}

.side-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 18px 18px;border-bottom:1px solid var(--linha);margin-bottom:12px}
.side-logo{width:113px;transition:opacity .18s}
.collapse-btn{flex:none;width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--linha);border-radius:9px;background:var(--branco);color:var(--c700);cursor:pointer;transition:background .2s,color .2s}
.collapse-btn:hover{background:var(--creme);color:var(--ouro-deep)}
.collapse-btn svg{width:18px;height:18px;transition:transform .24s ease}
.shell.collapsed .collapse-btn svg{transform:rotate(180deg)}
.shell.collapsed .side-logo{display:none}
.shell.collapsed .side-head{justify-content:center;padding:0 0 18px}

.nav{flex:1;min-height:0;overflow-y:auto;padding:0 12px;display:flex;flex-direction:column;gap:2px}
.nav-lbl{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--c300);padding:10px 12px 6px}
.nav-item{position:relative;display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:10px;color:var(--tinta);text-decoration:none;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s;white-space:nowrap}
.nav-item .ic{flex:none;color:var(--c700);display:inline-flex}
.nav-item .ic svg{width:17px;height:17px}
.nav-item:hover{background:var(--creme)}
.nav-item.on{background:none;color:var(--ouro-deep)}
.nav-item.on::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:17px;border-radius:3px;background:var(--ouro)}
.nav-item.on .ic{color:var(--ouro)}
.nav-item.soon{opacity:.5;cursor:default}
.nav-item.soon:hover{background:none}
.nav-item .tag{margin-left:auto;font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--c300);border:1px solid var(--linha);padding:2px 6px;border-radius:6px}

.side-foot{display:flex;align-items:center;gap:6px;padding:12px 12px 6px;margin:0;border-top:1px solid var(--linha);background:var(--branco)}
.user{display:flex;align-items:center;gap:9px;padding:8px;flex:1;min-width:0;border:none;background:none;font-family:inherit;text-align:left;cursor:pointer;border-radius:11px;transition:background .2s}
.user:hover{background:var(--creme)}
.user .meta{min-width:0;overflow:hidden}
.user .meta .nm,.user .meta .rl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.logout-btn{flex:none;width:34px;height:34px;border-radius:10px;border:none;background:none;color:#E05656;display:grid;place-items:center;cursor:pointer;transition:background .2s}
.logout-btn:hover{background:rgba(224,86,86,.12)}
.logout-btn svg{width:19px;height:19px}
.user.on{background:var(--floral)}
.user .av{width:34px;height:34px;border-radius:50%;background:var(--preto);color:var(--ouro-claro);display:grid;place-items:center;font-weight:600;font-size:13px;flex:none;overflow:hidden}
.user .av img,.avatar-big img{width:100%;height:100%;object-fit:cover;display:block}
.user .nm{font-size:13px;font-weight:600;color:var(--tinta);white-space:nowrap}
.user .rl{font-size:11px;color:var(--c300)}
.foot-item{display:flex;align-items:center;gap:13px;padding:11px 14px;border-radius:11px;color:var(--c700);text-decoration:none;font-size:13.5px;font-weight:500;cursor:pointer;transition:background .2s;white-space:nowrap}
.foot-item .ic{flex:none;display:inline-flex}
.foot-item .ic svg{width:18px;height:18px}
.foot-item:hover{background:var(--creme)}
.foot-item.exit{color:var(--ouro-deep)}

/* estado colapsado: só ícones */
.shell.collapsed .nav{padding:0 12px}
.shell.collapsed .nav-item,.shell.collapsed .foot-item{justify-content:center;padding:12px}
.shell.collapsed .nav-item .txt,.shell.collapsed .nav-item .tag,.shell.collapsed .nav-lbl,
.shell.collapsed .foot-item .txt,.shell.collapsed .user .meta{display:none}
.shell.collapsed .user{justify-content:center;padding:12px 0;flex:none}
.shell.collapsed .side-foot{flex-direction:column;gap:6px;margin:0;padding:12px 8px}

.main{height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}
.topbar{flex:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:26px 34px 18px}
.topbar-left{display:flex;align-items:baseline;gap:12px;min-width:0}
.crumb{font-size:12px;color:var(--c300);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}
.topbar h2{font-weight:700;font-size:22px;color:var(--text-strong);letter-spacing:-.01em;white-space:nowrap}
.subnav{display:flex;gap:4px;border:1px solid var(--linha);border-radius:999px;padding:4px;background:var(--creme);flex:none}
.subtab{border:none;background:none;font-family:inherit;font-size:13px;font-weight:600;color:var(--c700);padding:8px 16px;border-radius:999px;cursor:pointer;transition:color .2s,background .2s}
.subtab.on{background:var(--branco);color:var(--ouro-deep)}
.subtab:hover:not(.on){color:var(--tinta)}

/* ---- views / módulos ---- */
.view{flex:1;min-height:0;overflow-y:auto;padding:6px 34px 30px}
/* saudação do Dashboard (premium) */
.greeting{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.greet-hi{font-weight:300;font-size:clamp(17px,2.5vw,24px);color:var(--c700);letter-spacing:.04em;animation:greetIn .9s cubic-bezier(.22,1,.36,1) both}
.greet-name{font-weight:500;font-size:clamp(34px,6.2vw,64px);letter-spacing:-.01em;line-height:1.05;color:var(--ouro-deep);margin-top:6px;animation:greetIn .9s cubic-bezier(.22,1,.36,1) .12s both}
.greet-divider{width:46px;height:1px;background:var(--ouro-suave);margin:30px 0 26px;animation:greetIn .9s ease .24s both}
.clock{animation:greetIn .9s cubic-bezier(.22,1,.36,1) .32s both}
.clock-time{font-weight:200;font-size:clamp(28px,4.4vw,44px);color:var(--tinta);letter-spacing:.08em;font-variant-numeric:tabular-nums}
.clock-date{font-weight:300;font-size:clamp(10.5px,1.3vw,12.5px);color:var(--c700);text-transform:uppercase;letter-spacing:.2em;margin-top:10px}
@keyframes greetIn{from{opacity:0;transform:translateY(18px);filter:blur(4px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
.subview{max-width:none}
.empty-card{background:var(--branco);border:1px solid var(--linha);border-radius:16px;padding:60px 30px;text-align:center;display:flex;flex-direction:column;align-items:center}
.empty-card .ring{width:64px;height:64px;border-radius:50%;background:var(--floral);color:var(--ouro);display:grid;place-items:center;margin-bottom:16px}
.empty-card .ring svg{width:28px;height:28px}
.empty-card h3{color:var(--text-strong);font-size:17px;font-weight:700}
.empty-card p{color:var(--c700);font-size:13.5px;margin-top:8px;max-width:420px}
.card{background:var(--branco);border:1px solid var(--linha);border-radius:16px;padding:28px 30px}
.card-title{font-weight:700;font-size:17px;color:var(--text-strong)}
.card-sub{color:var(--c700);font-size:13px;margin-top:3px;margin-bottom:24px}
.profile-top{display:flex;align-items:center;gap:20px;margin-bottom:26px}
.avatar-big{width:82px;height:82px;border-radius:50%;background:var(--preto);color:var(--ouro-claro);display:grid;place-items:center;font-weight:600;font-size:26px;flex:none;overflow:hidden}
.avatar-actions{display:flex;flex-direction:column;gap:8px}
.avatar-btns{display:flex;gap:8px}
.btn-line{border:1px solid var(--linha);background:var(--branco);color:var(--tinta);font-family:inherit;font-weight:600;font-size:12.5px;padding:9px 16px;border-radius:999px;cursor:pointer;transition:border-color .2s,color .2s}
.btn-line:hover{border-color:var(--ouro);color:var(--ouro-deep)}
.btn-line.danger{color:#a3312a}
.btn-line.danger:hover{border-color:#a3312a}
.hint{font-size:11.5px;color:var(--c300)}
.form-row{margin-bottom:18px}
.lbl2{display:block;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--c700);margin-bottom:8px}
.inp2{width:100%;border:1px solid var(--linha);border-radius:12px;padding:13px 16px;background:var(--creme);font-family:inherit;font-size:14px;color:var(--tinta);outline:none;transition:border-color .3s,background .3s}
.inp2:focus{border-color:var(--ouro);background:var(--branco)}
.inp2:disabled{color:var(--c300);cursor:not-allowed}
/* olhinho de mostrar/ocultar senha */
.eye{flex:none;border:none;background:none;color:var(--c300);cursor:pointer;display:inline-flex;align-items:center;padding:4px;border-radius:8px}
.eye:hover{color:var(--ouro)}
.eye svg{width:19px;height:19px}
.eye .eye-closed{display:none}
.eye.on .eye-open{display:none}
.eye.on .eye-closed{display:block}
.pw-field{position:relative}
.pw-field .inp2{width:100%;padding-right:46px}
.pw-field .eye{position:absolute;right:8px;top:50%;transform:translateY(-50%)}
.prof-msg{font-size:13px;font-weight:500;border-radius:10px;padding:11px 14px;margin-bottom:8px}
.prof-msg.ok{background:#e8f5ee;color:#1f7a4d}
.prof-msg.err{background:#fdeceb;color:#a3312a}
.card-actions{margin-top:22px}
.btn-ouro.sm{width:auto;padding:13px 28px;font-size:13px}
.view .card + .card{margin-top:18px}
.pref-row{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.pref-row .pref-info .t{font-size:14px;font-weight:600;color:var(--tinta)}
.pref-row .pref-info .d{font-size:12.5px;color:var(--c700);margin-top:2px}
.seg{display:inline-flex;border:1px solid var(--linha);border-radius:999px;padding:4px;gap:4px;background:var(--creme)}
.seg button{border:none;background:none;font-family:inherit;font-size:13px;font-weight:600;color:var(--c700);padding:9px 16px;border-radius:999px;cursor:pointer;transition:color .2s,background .2s}
.seg button.on{background:var(--branco);color:var(--ouro-deep)}
.seg button:hover:not(.on){color:var(--tinta)}

/* ---- Chat de IA ---- */
.view-chat{padding:0;overflow:hidden;display:flex;flex-direction:column;max-width:none}
.chat-msgs{flex:1;min-height:0;overflow-y:auto;padding:8px 34px 18px;display:flex;flex-direction:column;gap:12px}
.chat-empty{margin:auto;text-align:center;color:var(--c700);max-width:420px;display:flex;flex-direction:column;align-items:center}
.chat-empty .ring{width:64px;height:64px;border-radius:50%;background:var(--floral);color:var(--ouro);display:grid;place-items:center;margin-bottom:16px}
.chat-empty .ring svg{width:28px;height:28px}
.chat-empty h3{color:var(--text-strong);font-size:17px;font-weight:700}
.chat-empty p{font-size:13.5px;margin-top:8px}
.msg{max-width:76%;padding:12px 16px;border-radius:14px;font-size:14px;line-height:1.6;white-space:pre-wrap;word-break:break-word}
.msg.me{align-self:flex-end;background:var(--floral);color:var(--tinta);border-bottom-right-radius:4px}
.msg.bot{align-self:flex-start;background:var(--branco);border:1px solid var(--linha);color:var(--tinta);border-bottom-left-radius:4px}
.msg.note{align-self:center;max-width:100%;background:none;border:1px dashed var(--linha);color:var(--c700);font-size:12.5px;text-align:center;border-radius:10px}
.composer{flex:none;border-top:1px solid var(--linha);padding:14px 34px 20px;background:var(--creme)}
.attach-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.chip{display:inline-flex;align-items:center;gap:8px;background:var(--branco);border:1px solid var(--linha);border-radius:10px;padding:6px 10px;font-size:12.5px;color:var(--tinta);max-width:240px}
.chip .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chip button{border:none;background:none;color:var(--c300);cursor:pointer;display:inline-flex;padding:0}
.chip button:hover{color:var(--ouro-deep)}
.chip svg{width:14px;height:14px}
.composer-box{display:flex;flex-direction:column;gap:8px;border:1px solid var(--linha);border-radius:18px;background:var(--branco);padding:12px 14px;transition:border-color .2s}
.composer-box:focus-within{border-color:var(--ouro)}
.composer-box textarea{border:none;outline:none;background:transparent;resize:none;font-family:inherit;font-size:14px;color:var(--tinta);line-height:1.5;max-height:180px;padding:2px}
.composer-tools{display:flex;align-items:center;justify-content:space-between;gap:10px}
.composer-left{display:flex;align-items:center;gap:6px}
.tool-btn{width:36px;height:36px;border-radius:10px;border:none;background:none;color:var(--c700);display:grid;place-items:center;cursor:pointer;transition:background .2s,color .2s}
.tool-btn:hover{background:var(--creme);color:var(--ouro-deep)}
.tool-btn svg{width:19px;height:19px}
.tool-btn.rec{color:#c0392b}
.model-dd{position:relative}
.model-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--linha);background:var(--branco);color:var(--tinta);font-family:inherit;font-size:13px;font-weight:600;padding:8px 12px;border-radius:999px;cursor:pointer;transition:border-color .2s}
.model-btn:hover{border-color:var(--ouro)}
.model-btn svg{width:15px;height:15px;color:var(--c700)}
.model-menu{position:absolute;bottom:calc(100% + 8px);left:0;min-width:150px;background:var(--branco);border:1px solid var(--linha);border-radius:12px;padding:6px;box-shadow:0 12px 32px -12px rgba(0,0,0,.4);z-index:10}
.model-menu button{display:flex;align-items:center;width:100%;border:none;background:none;font-family:inherit;font-size:13px;font-weight:500;color:var(--tinta);padding:9px 12px;border-radius:8px;cursor:pointer;text-align:left}
.model-menu button:hover{background:var(--creme)}
.model-menu button.on{color:var(--ouro-deep);background:var(--floral)}
.send-btn{flex:none;width:40px;height:40px;border-radius:12px;border:none;background:var(--ouro-btn);color:#fff;display:grid;place-items:center;cursor:pointer;transition:background .2s}
.send-btn:hover{background:var(--ouro)}
.send-btn svg{width:18px;height:18px}

/* ============ responsivo ============ */
@media(max-width:860px){
  .login{grid-template-columns:1fr}
  .login-art{display:none}
  .shell,.shell.collapsed{grid-template-columns:1fr}
  .side{flex-direction:row;flex-wrap:wrap;align-items:center;padding:14px 16px;border-right:none;border-bottom:1px solid var(--linha);gap:10px;overflow:visible}
  .side-head{padding:0;border:none;margin:0;flex:0 0 auto}
  .side-logo{width:118px;display:block}
  .collapse-btn{display:none}
  .nav{flex-direction:row;flex:1;justify-content:flex-end;padding:0;gap:2px}
  .nav-lbl{display:none}
  .nav-item .txt,.nav-item .tag{display:none}
  .nav-item{padding:12px}
  .side-foot{display:flex;align-items:center;gap:6px;border:none;margin:0;padding:0;width:100%;justify-content:space-between;margin-top:6px}
  .foot-item .txt{display:none}
  .foot-item{padding:11px}
  .shell,.shell.collapsed{height:auto;min-height:100vh;overflow:visible}
  .side{height:auto}
  .nav{min-height:0;overflow:visible}
  .main{height:auto;overflow:visible;display:block}
  .topbar{flex-wrap:wrap;padding:18px 18px 14px}
  .view{flex:none;overflow:visible;padding:6px 18px 24px}
  .view-chat{overflow:visible;display:block}
  .chat-msgs{overflow:visible;padding:8px 18px}
  .composer{padding:14px 18px 20px}
}
