:root{
  --ink:#0b0c0a; --ink-2:#161812; --paper:#f4f4f0; --card:#fff; --line:rgba(0,0,0,.08);
  --muted:#8a8c84; --lime:#d6e86a; --olive:#7f9a1f;
  --sans:'Inter Tight',system-ui,sans-serif; --mono:'JetBrains Mono',ui-monospace,monospace;
}
*{box-sizing:border-box;margin:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%;background:#0b0c0a;font-family:var(--sans);color:var(--ink)}
button,input{font:inherit;color:inherit}
button{cursor:pointer;border:0;background:none}
#app{position:relative;width:100%;max-width:430px;height:100dvh;margin:0 auto;overflow:hidden}
@media(min-width:500px){#app{height:min(880px,96dvh);margin-top:2dvh;border-radius:40px;box-shadow:0 30px 80px rgba(0,0,0,.6)}}
.mono{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase}
.view{position:absolute;inset:0;overflow-y:auto;padding:calc(env(safe-area-inset-top) + 28px) 18px 110px}
.view::-webkit-scrollbar{display:none}
.grain::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.16;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}

/* Login */
.login{background:radial-gradient(120% 60% at 15% 5%,rgba(60,110,90,.55),transparent 60%),radial-gradient(90% 50% at 90% 40%,rgba(127,154,31,.3),transparent 65%),#080b09;color:#fff;
  display:flex;flex-direction:column;justify-content:flex-start;gap:14px;padding:max(72px,14dvh) 28px 40px}
.login h1{font-weight:200;font-size:44px;letter-spacing:0}
.login .mono{color:rgba(255,255,255,.5);margin-bottom:10px}
.field{height:52px;border-radius:26px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);padding:0 22px;width:100%;outline:none;font-weight:300}
.field:focus{border-color:var(--lime)}
.btn{height:52px;border-radius:26px;background:var(--lime);color:#111;font-weight:500;width:100%}
.err{color:#ff9b8a;font-size:13px;min-height:18px}

/* Jarvis */
.v-jarvis{background:radial-gradient(120% 60% at 15% 5%,rgba(60,110,90,.55),transparent 60%),radial-gradient(90% 50% at 90% 30%,rgba(127,154,31,.35),transparent 65%),linear-gradient(180deg,#07100d 0%,#18221a 55%,#7d8178 100%);color:#fff;overflow:hidden}
.greet{position:absolute;top:18%;left:28px;right:28px;text-align:center}
.greet .mono{color:rgba(255,255,255,.55);margin-bottom:22px}
.greet p{font-weight:200;font-size:clamp(25px,7vw,30px);line-height:1.22;letter-spacing:0}
.greet p b{font-weight:400;color:var(--lime)}
.greet small{display:block;margin-top:20px;font-size:14px;font-weight:300;color:rgba(255,255,255,.62);line-height:1.5}
.chips{position:absolute;left:18px;right:18px;bottom:calc(env(safe-area-inset-bottom) + 246px);display:flex;gap:8px;justify-content:center}
.chip{height:28px;padding:0 12px;border-radius:14px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);color:#fff;font-size:9px;white-space:nowrap}
.chip.off{opacity:.4}
.capture{position:absolute;left:18px;right:18px;bottom:calc(env(safe-area-inset-bottom) + 176px);height:52px;border-radius:26px;background:rgba(255,255,255,.12);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.18);
  padding:0 22px;color:#fff;outline:none;font-weight:300;width:calc(100% - 36px)}
.capture::placeholder{color:rgba(255,255,255,.6)}
.voice{position:absolute;left:50%;bottom:calc(env(safe-area-inset-bottom) + 92px);transform:translateX(-50%);width:64px;height:64px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;gap:3px;box-shadow:0 10px 30px rgba(0,0,0,.35)}
.voice span{width:2.5px;border-radius:2px;background:var(--ink)}

@media(max-height:780px){.greet{top:9%}.greet .mono{margin-bottom:12px}.greet p{font-size:23px}.greet small{margin-top:12px;font-size:13px}}

/* Painel + Tarefas */
.v-light{background:var(--paper)}
.hd{display:flex;justify-content:space-between;align-items:flex-end;padding:6px 6px 18px}
.hd .mono{color:var(--muted)}
.hd h2{font-weight:200;font-size:40px;letter-spacing:0;line-height:1}
.avatar{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:12px}
.sq{border-radius:30px}
.lime{background:radial-gradient(70% 90% at 80% 100%,#e6f58a 0%,transparent 60%),radial-gradient(80% 80% at 10% 0%,#4d5f12 0%,transparent 65%),linear-gradient(135deg,#6c8419,#b9d04a);color:#fff;position:relative;overflow:hidden}
.hero{height:176px;padding:20px 22px;display:flex;flex-direction:column;justify-content:space-between;width:100%;text-align:left}
.hero .mono{color:rgba(255,255,255,.78)}
.hero .big{font-weight:200;font-size:58px;letter-spacing:0;line-height:1}
.hero .big em{font-style:normal;font-size:24px;opacity:.7;margin-left:4px}
.dots{height:26px;background-image:radial-gradient(circle,rgba(255,255,255,.75) 1.2px,transparent 1.6px);background-size:12px 12px}
.arrow{position:absolute;top:16px;right:16px;width:34px;height:34px;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.mod{background:var(--card);height:150px;padding:16px;display:flex;flex-direction:column;justify-content:space-between;position:relative;text-align:left}
.mod .mono{color:var(--muted)}
.mod .n{font-weight:200;font-size:30px;letter-spacing:0;line-height:1.05}
.mod.dark{background:var(--ink-2);color:#fff}.mod.dark .mono{color:rgba(255,255,255,.5)}
.mod.soon{opacity:.55}

.dock{position:absolute;left:50%;bottom:calc(env(safe-area-inset-bottom) + 18px);transform:translateX(-50%);height:54px;padding:0 8px;border-radius:27px;background:var(--ink);display:flex;align-items:center;gap:4px;box-shadow:0 14px 30px rgba(0,0,0,.3);z-index:5;border:1px solid rgba(255,255,255,.08)}
.dock button{height:38px;padding:0 16px;border-radius:19px;color:rgba(255,255,255,.55)}
.dock button.on{background:#fff;color:var(--ink)}

.add{display:flex;gap:8px;margin-bottom:14px}
.add .field{background:#fff;border-color:var(--line);color:var(--ink)}
.add button{width:52px;height:52px;border-radius:50%;background:var(--ink);color:#fff;font-size:22px;flex:none}
.sec{margin:18px 6px 8px;color:var(--muted)}
.task{display:flex;align-items:center;gap:14px;background:#fff;border-radius:22px;padding:14px 16px;margin-bottom:8px}
.task .ck{width:24px;height:24px;border-radius:50%;border:1.5px solid #c9cbc2;flex:none;display:flex;align-items:center;justify-content:center;font-size:13px;color:transparent}
.task.done .ck{background:var(--olive);border-color:var(--olive);color:#fff}
.task.done .t{text-decoration:line-through;color:var(--muted)}
.task .t{flex:1;font-weight:300;font-size:16px;line-height:1.3}
.task .d{display:block;margin-top:4px;color:var(--muted)}
.task .d.late{color:#d4452c}
.task .x{color:#b5b7ae;font-size:18px;padding:4px}
.empty{color:var(--muted);text-align:center;padding:40px 0;font-weight:300}

#toast{position:fixed;left:50%;bottom:110px;transform:translateX(-50%) translateY(20px);background:#fff;color:#111;padding:10px 18px;border-radius:20px;font-size:13px;opacity:0;transition:.25s;pointer-events:none;z-index:50}
#toast.on{opacity:1;transform:translateX(-50%)}

/* Chips ativos + dock de 4 itens */
.chip.on{background:var(--lime);color:#111;border-color:var(--lime)}
.dock button{padding:0 12px;font-size:9px}
.arrow.sm{width:28px;height:28px;top:12px;right:12px;background:rgba(0,0,0,.08);color:var(--ink)}

/* Finanças */
.v-fin{background:#050607;color:#fff;padding:0}
.fin-top{padding:calc(env(safe-area-inset-top) + 28px) 22px 24px;background:radial-gradient(90% 60% at 50% 100%,rgba(40,70,100,.55),transparent 70%),#050607}
.frow{display:flex;justify-content:space-between;align-items:center}
.months{display:flex;align-items:center;gap:6px}
.months button{color:rgba(255,255,255,.6);font-size:20px;width:26px}
.pill{height:30px;padding:0 14px;border-radius:15px;border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;color:rgba(255,255,255,.7)}
.pill.on{background:#fff;color:var(--ink);border-color:#fff}
.fin-top .l{color:rgba(255,255,255,.5);margin-top:26px}
.amt{font-weight:200;font-size:46px;letter-spacing:0;margin-top:8px}
.amt small{font-size:18px;opacity:.5;vertical-align:top;margin-left:2px}
.bars{display:flex;align-items:flex-end;gap:3px;height:110px;margin-top:22px}
.bars i{flex:1;background:linear-gradient(180deg,#e6f58a,rgba(214,232,106,.25));border-radius:1px}
.axis{display:flex;justify-content:space-between;margin-top:10px;color:rgba(255,255,255,.4)}
.sheet{background:#ecece8;color:var(--ink);border-radius:32px 32px 0 0;padding:14px 14px 130px;min-height:60dvh}
.grab{width:38px;height:4px;border-radius:2px;background:rgba(0,0,0,.18);margin:0 auto 14px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.k{background:#fff;border-radius:22px;padding:14px;height:92px;display:flex;flex-direction:column;justify-content:space-between}
.k .mono{color:var(--muted)}.k b{font-weight:200;font-size:23px;letter-spacing:0}
.next{width:100%;height:96px;margin-top:10px;padding:14px 18px;display:flex;flex-direction:column;justify-content:space-between;border-radius:24px;text-align:left}
.next .mono{color:rgba(255,255,255,.8)}
.next div{display:flex;justify-content:space-between;align-items:flex-end}
.next b{font-weight:300;font-size:26px;letter-spacing:0}
.next .edit{position:absolute;top:12px;right:16px;color:#fff;opacity:.85}
.v-fin .sec{color:var(--muted)}
.li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 4px;border-bottom:1px solid var(--line);font-size:15px;font-weight:300}
.li > span{flex:1}
.li .sub{display:block;margin-top:2px;color:var(--muted)}
.li b{font-weight:400}.li b.income{color:#4d7a12}
.li .x{color:#b5b7ae;font-size:18px;padding:2px 4px}
.cat .bar{height:3px;border-radius:2px;background:rgba(0,0,0,.08);overflow:hidden;margin-bottom:8px}
.cat .bar i{display:block;height:100%;background:var(--olive)}
.ghost{display:block;width:100%;text-align:center;color:var(--muted);padding:14px}
.fab{position:absolute;right:18px;bottom:calc(env(safe-area-inset-bottom) + 84px);width:56px;height:56px;border-radius:50%;background:var(--lime);color:#111;font-size:28px;z-index:6;box-shadow:0 10px 26px rgba(0,0,0,.35)}

/* Modal */
.modal{position:absolute;inset:0;background:rgba(0,0,0,.5);z-index:20;display:flex;align-items:flex-end}
.msheet{width:100%;background:#f4f4f0;color:var(--ink);border-radius:32px 32px 0 0;padding:14px 18px calc(env(safe-area-inset-bottom) + 18px);display:grid;gap:10px;max-height:92%;overflow-y:auto}
.msheet h3{font-weight:300;font-size:22px}
.field.lt{background:#fff;border-color:var(--line);color:var(--ink);height:48px}
.seg{display:grid;grid-template-columns:1fr 1fr;background:#e4e4de;border-radius:22px;padding:3px}
.seg button{height:38px;border-radius:19px;color:var(--muted)}
.seg button.on{background:var(--ink);color:#fff}
.cchips{display:flex;flex-wrap:wrap;gap:6px}
.cchips button{height:30px;padding:0 12px;border-radius:15px;background:#fff;border:1px solid var(--line);font-size:9px}
.cchips button.on{background:var(--ink);color:#fff;border-color:var(--ink)}

/* Notas */
.dock{gap:0;padding:0 5px}.dock button{padding:0 9px;letter-spacing:.06em}
.avatar.plus{font-size:22px;background:var(--ink);color:#fff;border:0}
.srch{margin-bottom:10px}
.tagbar{margin-bottom:12px;flex-wrap:nowrap;overflow-x:auto}
.tagbar::-webkit-scrollbar{display:none}.tagbar button{flex:none}
.note{display:block;width:100%;text-align:left;background:#fff;padding:16px 18px;margin-bottom:8px}
.nt-t{font-size:17px;font-weight:400;display:flex;align-items:center;gap:8px}
.nt-s{margin-top:6px;font-weight:300;font-size:14px;line-height:1.4;color:#5b5d56;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nt-m{margin-top:10px;display:flex;justify-content:space-between;gap:10px;color:var(--muted)}
.pin{width:7px;height:7px;border-radius:50%;background:var(--olive);flex:none}
.pill2{height:30px;padding:0 14px;border-radius:15px;background:#fff;border:1px solid var(--line);color:var(--ink)}
.nact{display:flex;gap:14px;color:var(--muted);align-items:center}
.ntitle{width:100%;border:0;background:none;outline:none;font-weight:200;font-size:32px;letter-spacing:0;margin:6px 0 10px}
.nbody{width:100%;border:0;background:none;outline:none;resize:none;font:300 17px/1.55 var(--sans);min-height:260px}
.ntags{color:var(--olive);margin-top:10px;min-height:14px}

/* Academia */
.dock{max-width:calc(100% - 24px);overflow-x:auto;scrollbar-width:none}.dock::-webkit-scrollbar{display:none}
.dock button{flex:none}
.wk{display:flex;justify-content:space-between;margin-top:26px}
.wd{display:flex;flex-direction:column;align-items:center;gap:8px;color:rgba(255,255,255,.45)}
.wd i{width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.22)}
.wd.on i{background:radial-gradient(circle at 35% 30%,#e6f58a,#8aa12a);border-color:transparent;box-shadow:0 0 18px rgba(214,232,106,.45)}
.wd.on{color:#fff}
.rt{width:100%;text-align:left}
.exc{background:#fff;padding:14px 16px;margin-bottom:10px}
.exh{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px}
.exh b{font-weight:400;font-size:17px}.exh .mono{color:var(--muted);text-align:right}
.setr{display:flex;align-items:center;gap:12px;padding:8px 2px;border-top:1px solid var(--line);font-weight:300}
.setr .mono{color:var(--olive);width:14px}.setr span:nth-child(2){flex:1}
.setr .x{color:#b5b7ae;font-size:18px}
.setin{display:flex;gap:8px;margin-top:8px}
.setin .field{height:44px;padding:0 16px;min-width:0;flex:1}
.addset{width:44px;height:44px;border-radius:50%;background:var(--ink);color:#fff;font-size:22px;flex:none}

/* Estudos */
.chips{flex-wrap:wrap}
.subn{text-align:left;font-size:17px}
.subact{display:flex;gap:8px;margin-top:12px}
.playb,.unitb{height:36px;padding:0 16px;border-radius:18px;background:var(--ink);color:#fff}
.unitb{background:#fff;color:var(--ink);border:1px solid var(--line)}
.playb[disabled]{opacity:.35}
.stopb{height:34px;padding:0 14px;border-radius:17px;background:rgba(0,0,0,.55);color:#fff}
.next b#tm{font-variant-numeric:tabular-nums}
.exc .bar{height:3px;border-radius:2px;background:rgba(0,0,0,.08);overflow:hidden}
.exc .bar i{display:block;height:100%;background:var(--olive)}

/* ===== Mobile: sem menu lateral, sem faixa de resumo ===== */
.side,.strip{display:none}

/* ===== Desktop: layout horizontal (menu lateral + áreas em colunas) ===== */
@media(min-width:900px){
  #app{max-width:none;height:100dvh;margin:0;border-radius:0;box-shadow:none}
  .dock{display:none}
  .side{display:flex;flex-direction:column;position:absolute;inset:0 auto 0 0;width:236px;padding:30px 18px 22px;background:#0b0c0a;color:#fff;border-right:1px solid rgba(255,255,255,.07);z-index:8}
  .side .logo{font-weight:200;font-size:30px;letter-spacing:0;padding:0 10px 28px;display:flex;flex-direction:column;gap:6px}
  .side .logo .mono{color:rgba(255,255,255,.4);font-size:9px}
  .side nav{display:flex;flex-direction:column;gap:4px}
  .side nav button,.sfoot button{height:42px;padding:0 14px;border-radius:21px;text-align:left;color:rgba(255,255,255,.6);font-size:11px}
  .side nav button:hover,.sfoot button:hover{background:rgba(255,255,255,.07);color:#fff}
  .side nav button.on{background:#fff;color:var(--ink)}
  .sfoot{margin-top:auto;display:flex;flex-direction:column;gap:2px;border-top:1px solid rgba(255,255,255,.08);padding-top:14px}
  .view{left:236px;padding:44px 48px 48px}
  .view.login{left:0;align-items:center;justify-content:center;padding-top:44px}
  .login > *{width:min(400px,100%)}

  /* Jarvis */
  .greet{top:11%;left:6%;right:6%}
  .greet p{font-size:clamp(34px,3.4vw,52px)}
  .greet small{font-size:16px}
  .strip{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;position:absolute;left:6%;right:6%;top:50%}
  .strip div{background:rgba(255,255,255,.08);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.14);border-radius:28px;padding:20px 22px;display:flex;flex-direction:column;gap:14px}
  .strip .mono{color:rgba(255,255,255,.55)}
  .strip b{font-weight:200;font-size:30px;letter-spacing:0}
  .chips{bottom:180px;left:50%;right:auto;transform:translateX(-50%)}
  .capture{bottom:110px;left:50%;transform:translateX(-50%);width:min(640px,80%)}
  .voice{bottom:36px;left:50%}

  /* Painel: cartões lado a lado, hero grande à esquerda */
  .pn{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(170px,1fr);gap:14px;align-content:start}
  .pn .hd{grid-column:1/-1;grid-row:auto}
  .pn .hero{grid-column:span 2;grid-row:span 2;height:auto}
  .pn .hero .big{font-size:96px}
  .pn .grid{display:contents}
  .pn .grid .mod{height:auto;margin:0}
  .v-light:not(.pn):not(.nts){padding-left:max(48px,calc((100% - 760px)/2));padding-right:max(48px,calc((100% - 760px)/2))}

  /* Notas em grade */
  .nts #nlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
  .nts .note{margin:0}
  .nts .srch{max-width:520px}

  /* Finanças / Academia / Estudos: painel escuro à esquerda, conteúdo à direita */
  .v-fin{display:grid;grid-template-columns:minmax(380px,42%) 1fr;padding:0;overflow:hidden}
  .fin-top{height:100%;display:flex;flex-direction:column;padding:44px 40px 40px}
  .fin-top .bars{height:auto;flex:1;min-height:140px;max-height:320px;margin-top:auto}
  .amt{font-size:64px}
  .sheet{height:100%;overflow-y:auto;border-radius:36px 0 0 36px;margin:14px 0 14px 0;min-height:0;padding:28px 32px 100px}
  .sheet::-webkit-scrollbar{display:none}
  .grab{display:none}
  .fab{bottom:34px;right:34px}

  /* Modais centralizados */
  .modal{align-items:center;justify-content:center;left:236px}
  .msheet{width:min(480px,92%);border-radius:32px;padding:24px 26px}
  #toast{bottom:40px;left:calc(50% + 118px)}
}

a.ghost{text-decoration:none}

.pwhint{font-size:10px;line-height:1.5;letter-spacing:.06em;text-transform:none;min-height:0}
.pwhint[data-level=fraca]{color:#d4452c}.pwhint[data-level=média]{color:#a87a00}.pwhint[data-level=forte]{color:#4d7a12}

/* ===== Texto mais espaçado nos números com legenda (ex.: "/ 0 abertas") ===== */
.hero .big em,.amt small,.mod .n small,.k b small{letter-spacing:0;word-spacing:.12em;margin-left:.4em}
.hero .big em{font-size:20px;opacity:.8}
.mod .n small,.k b small{font-size:13px}

/* ===== Orbe do Jarvis ===== */
.orb{display:block;width:var(--s,120px);height:var(--s,120px);flex:none}
.orbbtn{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);width:200px;height:200px;border-radius:50%;z-index:2}
.orbbtn .orb{--s:200px}
.login .orb{margin:0 0 4px -4px}
.side .logo{flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 4px}
.chips{bottom:calc(env(safe-area-inset-bottom) + 170px)}
.capture{bottom:calc(env(safe-area-inset-bottom) + 104px)}
@media(max-height:780px){.orbbtn{top:50%;width:160px;height:160px}.orbbtn .orb{--s:160px}}

/* ===== Finanças: entrada/saída, extrato, detalhe, importação ===== */
.eio{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.eb{height:84px;border-radius:26px;padding:14px 18px;display:flex;flex-direction:column;justify-content:space-between;text-align:left}
.eb b{font-weight:200;font-size:34px;line-height:1}
.eb.in{background:linear-gradient(135deg,#6c8419,#c4dd56);color:#fff}
.eb.out{background:var(--ink);color:#fff}
.eb .mono{opacity:.8}
.netr{display:flex;justify-content:space-between;align-items:center;background:#fff;border-radius:22px;padding:14px 16px;margin-top:8px}
.netr .mono{color:var(--muted)}.netr b{font-weight:300;font-size:20px}
.netr b.income,.bigv.income,.trow b.income,.irow b.income{color:#4d7a12}
.netr b.expense,.bigv.expense{color:#c0391f}
.seg.sm{display:inline-grid;padding:2px}.seg.sm button{height:30px;padding:0 14px;font-size:10px;color:rgba(255,255,255,.6)}
.seg.sm button.on{background:#fff;color:var(--ink)}
.fin-top .seg{background:rgba(255,255,255,.08)}
.fnav{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:18px}
.fnav button{color:rgba(255,255,255,.7);font-size:22px;width:34px;height:34px}
.xtools{display:grid;gap:8px;margin-bottom:6px}
.xtools .cchips button{height:30px}
.dayh{display:flex;justify-content:space-between;color:var(--muted);padding:14px 4px 6px}
.trow{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:#fff;border-radius:20px;padding:12px 14px;margin-bottom:6px}
.tdot{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-style:normal;flex:none;font-size:15px}
.tdot.income{background:#e4efc6;color:#4d7a12}.tdot.expense{background:#f1e0dc;color:#c0391f}
.tmain{flex:1;min-width:0;font-weight:300;font-size:15px;line-height:1.3}
.tmain .sub{display:block;margin-top:2px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trow b{font-weight:400;font-size:14px;white-space:nowrap}
.trow b.expense{color:var(--ink)}
.bigv{font-weight:200;font-size:44px;letter-spacing:0;line-height:1.1;margin:2px 0 4px}
.kv{display:flex;justify-content:space-between;gap:16px;padding:9px 2px;border-bottom:1px solid var(--line)}
.kv .mono{color:var(--muted);flex:none}.kv b{font-weight:300;text-align:right;font-size:14px}
.rcpt{width:100%;max-height:240px;object-fit:cover;border-radius:20px;background:#e4e4de}
.ghost.danger{color:#c0391f}
.hintx{color:var(--muted);line-height:1.6;text-transform:none;letter-spacing:.04em}
.filebtn{display:flex;align-items:center;justify-content:center;cursor:pointer}
#implist{max-height:44dvh;overflow-y:auto;margin:0 -6px;padding:0 6px}
.imptot{color:var(--olive);min-height:14px}
.irow{display:flex;gap:10px;align-items:flex-start;background:#fff;border-radius:18px;padding:10px 12px;margin-bottom:6px}
.irow.off{opacity:.45}
.ick{width:24px;height:24px;border-radius:50%;border:1.5px solid #c9cbc2;color:transparent;flex:none;margin-top:2px;font-size:13px}
.ick.on{background:var(--olive);border-color:var(--olive);color:#fff}
.imain{flex:1;min-width:0;font-weight:300;font-size:14px;line-height:1.3}
.imain .sub{display:block;color:var(--muted);margin:2px 0 6px}
.imc{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.mini{height:26px;padding:0 10px;border-radius:13px;background:#eee;font-size:11px}
.mini.on{background:var(--ink);color:#fff}
.imc select{height:26px;border-radius:13px;border:1px solid var(--line);background:#fff;font-size:11px;padding:0 8px;max-width:130px}
.irow b{font-weight:400;font-size:13px;white-space:nowrap}

/* ===== Quadro do Jarvis (diagnóstico + pensamento) ===== */
.jv{background:radial-gradient(120% 90% at 100% 0%,rgba(80,200,110,.22),transparent 60%),#10130e;color:#fff;padding:16px 18px 18px;margin:0 0 12px}
.jvh{display:flex;justify-content:space-between;align-items:center;color:var(--lime);margin-bottom:10px}
.jvh button{color:rgba(255,255,255,.7);font-size:18px;width:28px;height:28px}
.jv ul{list-style:none;padding:0;display:grid;gap:9px}
.jv li{display:grid;grid-template-columns:86px 1fr;gap:10px;font-weight:300;font-size:14px;line-height:1.45;align-items:baseline}
.jv li .mono{color:rgba(255,255,255,.45);font-size:9px}
.jv blockquote{margin:14px 0 0;padding-top:12px;border-top:1px solid rgba(255,255,255,.12);font-weight:200;font-size:17px;line-height:1.4;letter-spacing:0}
.jv cite{display:block;margin-top:6px;font:400 9px/1.5 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.5);font-style:normal}
.pn .jv{margin:0}
@media(max-width:420px){.jv li{grid-template-columns:1fr;gap:2px}}

@media(min-width:900px){
  .pn .jv{grid-column:1/-1}
  .orbbtn{top:calc(50% + 58px);width:270px;height:270px}.orbbtn .orb{--s:270px}
  .strip{grid-template-columns:1fr 1fr 270px 1fr 1fr;top:50%}
  .strip .sp{background:none!important;border:0!important;backdrop-filter:none!important;padding:0!important}
  .chips{bottom:150px}.capture{bottom:84px}
  .eio{max-width:520px}
}

@media(max-height:780px){.bars{height:84px;margin-top:16px}.fin-top{padding-bottom:16px}}

/* =====================================================================
   Revisão de layout: ritmo, margens e grade (referência: apple.com)
   Uma escala de espaço, dois raios, conteúdo centralizado e linhas
   que crescem com o conteúdo (nada fica fora do quadro).
   ===================================================================== */
:root{--g:20px;--gap:12px;--r:28px;--r-sm:20px;--pad:20px}

/* margens e ritmo vertical */
.view{padding:calc(env(safe-area-inset-top) + 32px) var(--g) 128px}
.view.v-fin{padding:0}
.view.login{padding:max(56px,10dvh) 28px 40px}
.view.v-jarvis{padding:0}
.hd{padding:4px 2px 24px}
.sec{margin:28px 4px 10px}
.grid{gap:var(--gap);margin-top:var(--gap)}
.grid + .jv{margin-top:var(--gap)}
.two,.eio{gap:var(--gap)}
.next{margin-top:var(--gap)}
.netr{margin-top:var(--gap)}

/* dois raios: quadros grandes e linhas/itens */
.sq,.hero,.mod,.jv,.eb,.next,.exc,.note,.fin-top .pill.on{border-radius:var(--r)}
.k,.netr,.task,.trow,.irow,.li.rt{border-radius:var(--r-sm)}

/* mesmo respiro interno em todos os quadros */
.mod,.hero{padding:var(--pad)}
.exc,.note{padding:18px var(--pad)}
.jv{padding:var(--pad) 22px 22px}
.k{padding:16px 18px}
.task{padding:15px 18px}

/* botão Conta: cápsula, sem cortar o texto */
.avatar{width:auto;height:34px;padding:0 16px;border-radius:17px;font-size:10px}

/* Painel no celular: o quadro do Jarvis respira */
.pn .jv{margin-top:var(--gap)}

/* ===== Desktop ===== */
@media(min-width:900px){
  :root{--g:48px;--gap:16px;--pad:24px}

  /* conteúdo centralizado e limitado, com margens generosas */
  .view{padding:56px max(var(--g),calc((100% - 1120px)/2)) 64px}
  .v-light:not(.pn):not(.nts){padding-inline:max(var(--g),calc((100% - 760px)/2))}
  .view.login{padding:44px 28px}
  .view.v-fin,.view.v-jarvis{padding:0}
  .hd{padding:0 0 32px}
  .hd h2{font-size:56px;letter-spacing:0}

  /* Painel: linhas pelo conteúdo (corrige texto fora do quadro) */
  .pn{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:auto;gap:var(--gap);align-content:start}
  .pn .hd{grid-column:1/-1}
  .pn .hero{grid-column:span 2;grid-row:span 2;height:auto;min-height:392px}
  .pn .grid{display:contents}
  .pn .mod{min-height:188px;height:auto}
  .pn .jv{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);column-gap:48px;padding:26px 30px;margin:0}
  .pn .jv .jvh{grid-column:1/-1}
  .pn .jv blockquote{margin:0;padding:0 0 0 32px;border-top:0;border-left:1px solid rgba(255,255,255,.14);align-self:center}

  /* painéis de duas colunas: o conteúdo é um quadro flutuante, com margem em volta */
  .v-fin{background:#050607}
  .sheet{height:auto;min-height:0;margin:16px 16px 16px 0;border-radius:var(--r);padding:28px 28px 40px}
  .eio{max-width:none}
  .fin-top{padding:56px 44px 44px}

  /* Notas: grade uniforme */
  .nts #nlist{grid-auto-rows:minmax(132px,auto)}
  .nts .hd{padding-bottom:24px}
}

/* telas intermediárias (900 a 1199 px): resumo da tela Jarvis em duas colunas ao lado do orbe */
@media(min-width:900px) and (max-width:1199px){
  .strip{grid-template-columns:minmax(0,1fr) 220px minmax(0,1fr);grid-template-rows:auto auto;row-gap:var(--gap)}
  .strip > div:nth-child(1){grid-column:1;grid-row:1}
  .strip > div:nth-child(2){grid-column:1;grid-row:2}
  .strip > .sp{grid-column:2;grid-row:1/3}
  .strip > div:nth-child(4){grid-column:3;grid-row:1}
  .strip > div:nth-child(5){grid-column:3;grid-row:2}
  .orbbtn{width:220px;height:220px}.orbbtn .orb{--s:220px}
  .strip{top:44%}.orbbtn{top:calc(44% + 62px)}
  .greet{top:9%}
  .pn{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pn .hero{grid-column:1/-1;grid-row:auto;min-height:240px}
}

@media(min-width:900px){
  /* Notas também usa a largura de 1120 px: diagnóstico à esquerda, pensamento à direita */
  .nts .jv{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);column-gap:48px;padding:26px 30px;margin:0 0 var(--gap)}
  .nts .jv .jvh{grid-column:1/-1}
  .nts .jv blockquote{margin:0;padding:0 0 0 32px;border-top:0;border-left:1px solid rgba(255,255,255,.14);align-self:center}
}

/* ===== Borda embaçada progressiva (topo e rodapé), bem sutil ===== */
.edge{position:absolute;left:0;right:0;pointer-events:none;z-index:3;transition:opacity .25s}
.edge.top{top:0;height:calc(env(safe-area-inset-top) + 64px);opacity:var(--et,0)}
.edge.bot{bottom:0;height:calc(env(safe-area-inset-bottom) + 120px);opacity:var(--eb,0)}
.edge i{position:absolute;inset:0}
.edge.top i{--d:to bottom}.edge.bot i{--d:to top}
.edge i{-webkit-mask-image:linear-gradient(var(--d),#000 0%,transparent 100%);mask-image:linear-gradient(var(--d),#000 0%,transparent 100%)}
.edge i:nth-child(1){-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px)}
.edge i:nth-child(2){-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);-webkit-mask-image:linear-gradient(var(--d),#000 0%,transparent 66%);mask-image:linear-gradient(var(--d),#000 0%,transparent 66%)}
.edge i:nth-child(3){-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);-webkit-mask-image:linear-gradient(var(--d),#000 0%,transparent 34%);mask-image:linear-gradient(var(--d),#000 0%,transparent 34%)}
@media(min-width:900px){
  .edge{left:236px}
  .edge.top{height:44px}.edge.bot{height:56px}
}

/* ===== Finanças compartilhadas ===== */
.shared{display:flex;align-items:center;gap:8px;color:var(--olive);margin:0 4px 12px}
.shared i{width:7px;height:7px;border-radius:50%;background:var(--olive)}

/* ===== Tarefas: categorias, kanban e painel ===== */
.tbtn{text-align:left;display:block}
.task .t.tbtn{flex:1;font-weight:300;font-size:16px;line-height:1.3}
.tchip{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 10px;border-radius:11px;background:color-mix(in srgb,var(--c) 16%,#fff);color:color-mix(in srgb,var(--c) 70%,#000);font:400 9px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;margin-top:6px}
.cdot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;flex:none}
.cchips .cdot{margin-right:6px}
.ttools{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 12px}
.seg.light{background:#e4e4de}.seg.light button{color:var(--muted)}.seg.light button.on{background:var(--ink);color:#fff}
.seg.sm.light{display:inline-grid;grid-auto-flow:column}
.seg.three{grid-template-columns:repeat(3,1fr)}
.seg.three button{font-size:10px}
.view.wide .hd,.view.wide .jv{max-width:none}
.catrow{display:flex;align-items:center;gap:10px}
.catrow .field{flex:1;min-width:0}
.swatch{width:30px;height:30px;border-radius:50%;flex:none;border:2px solid #fff;box-shadow:0 0 0 1px var(--line)}
.catrow .x{color:#b5b7ae;font-size:20px;width:30px}

/* kanban */
.kanban{display:grid;grid-auto-flow:column;grid-auto-columns:84%;gap:var(--gap);overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(var(--g) * -1);padding:0 var(--g) 8px;scrollbar-width:none}
.kanban::-webkit-scrollbar{display:none}
.kcol{scroll-snap-align:start;background:#e9e9e4;border-radius:var(--r);padding:12px;min-height:220px;display:flex;flex-direction:column;gap:10px;transition:background .15s}
.kcol.over{background:#dfe6c8}
.khead{display:flex;align-items:center;gap:8px;padding:2px 4px}
.khead .mono{color:var(--muted);flex:1}.khead b{font-weight:300;font-size:15px}
.khead button{width:26px;height:26px;border-radius:50%;background:var(--ink);color:#fff;font-size:16px;line-height:1}
.klist{display:flex;flex-direction:column;gap:8px;flex:1}
.kcard{background:#fff;border-radius:var(--r-sm);padding:12px 14px;cursor:grab;box-shadow:0 1px 0 rgba(0,0,0,.03)}
.kcard.drag{opacity:.4}
.ktitle{text-align:left;font-weight:300;font-size:15px;line-height:1.35;width:100%}
.kmeta{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}
.kmeta .mono{color:var(--muted);font-size:9px}.kmeta .mono.late{color:#d4452c}
.kmeta .tchip{margin-top:0}
.pri{width:8px;height:8px;border-radius:50%;margin-left:auto;background:#c9cbc2}
.pri.p1{background:#d4452c}.pri.p2{background:#e0a030}.pri.p3{background:#9bb04a}
.kmove{display:flex;justify-content:flex-end;gap:6px;margin-top:8px}
.kmove button{width:30px;height:26px;border-radius:13px;background:#f1f1ec;font-size:16px}
.kmove button[disabled]{opacity:.3}
.kempty{color:var(--muted);text-align:center;padding:18px 0;opacity:.7}

/* painel (dashboard) */
.tnav{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--gap)}
.tnavm{display:flex;align-items:center;gap:6px}.tnavm button{font-size:20px;width:30px;color:var(--muted)}
.kgrid{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap)}
.kgrid .k{height:auto;min-height:92px;gap:6px}
.kgrid .k .sub{color:var(--muted);text-transform:none;letter-spacing:.04em;font-size:10px}
.kgrid .k:last-child{grid-column:1/-1}
.tcard{background:#fff;padding:var(--pad);margin-top:var(--gap)}
.tcardh{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.tcardh .mono{color:var(--muted)}
.lg{display:flex;align-items:center;gap:6px;font-size:9px}
.lg i{width:8px;height:8px;border-radius:2px;display:inline-block;margin-left:8px}
.lg i.c{background:#c9cbc2}.lg i.d{background:var(--olive)}.lg i.o{background:#d9dccf}
.tbars{display:grid;grid-template-columns:repeat(var(--n),1fr);gap:3px;align-items:end;height:120px}
.tb{display:flex;align-items:flex-end;justify-content:center;gap:1px;height:100%}
.tb i{display:block;flex:1;min-height:2px;border-radius:2px 2px 0 0;max-width:12px}
.tb i.c{background:#d3d5cb}.tb i.d{background:var(--olive)}
.axis.dark{color:var(--muted)}
.crow{margin-bottom:12px}
.crowh{display:flex;justify-content:space-between;align-items:center;font-weight:300;font-size:14px;margin-bottom:6px}
.crowh .mono{color:var(--muted)}
.cbar{height:6px;border-radius:3px;background:#e4e6dc;overflow:hidden}
.cbar i{display:block;height:100%;border-radius:3px}

@media(min-width:900px){
  .view.v-light.wide:not(.pn):not(.nts){padding-inline:max(var(--g),calc((100% - 1120px)/2))}
  .kanban{grid-auto-flow:row;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-columns:auto;overflow:visible;margin:0;padding:0}
  .kgrid{grid-template-columns:repeat(5,minmax(0,1fr))}
  .kgrid .k:last-child{grid-column:auto}
  .tdash{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap)}
  .tdash .tnav,.tdash .kgrid{grid-column:1/-1}
  .tdash .tcard{margin-top:0}
  .tdash .tcard.full{grid-column:1/-1}
}

/* ===== Estudos: abas, anotações, flashcards e revisão ===== */
.etabs{margin-bottom:var(--gap)}
.addrow{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap);margin-bottom:var(--gap)}
.addrow .btn,.btn.alt{height:48px;font-size:14px}
.btn.alt{background:#fff;color:var(--ink);border:1px solid var(--line)}
.btn[disabled],.rvgo[disabled]{opacity:.6;pointer-events:none}
.howto{background:#fff;border-radius:var(--r-sm);padding:14px 18px;margin:0 0 var(--gap);font-size:14px;font-weight:300;line-height:1.5}
.howto summary{cursor:pointer;color:var(--muted);list-style:none}
.howto summary::-webkit-details-marker{display:none}
.howto ul{margin:12px 0 8px;padding:0;list-style:none;display:grid;gap:8px}
.howto li b{font-weight:500}.howto li span{display:block;color:var(--muted);font-size:12px}
.howto p{color:var(--muted);font-size:12px;margin:6px 0 0}
.sn .tmain,.cardrow .tmain{font-size:15px}
.cardrow .tmain{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cdue{color:var(--muted);font-size:9px;font-weight:400;white-space:nowrap}
.cstats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:var(--gap)}
.cstats .k{height:auto;min-height:84px;padding:12px 12px;gap:8px}
.cstats .k .mono{font-size:8.5px;line-height:1.3}
.cstats .k b{font-size:24px}
.rvgo{width:100%;text-align:left;margin-top:0;margin-bottom:var(--gap)}

/* sessão de revisão */
.v-review{background:radial-gradient(120% 60% at 15% 0%,rgba(127,154,31,.28),transparent 60%),#070a06;color:#fff;display:flex;flex-direction:column;gap:16px;padding-bottom:36px}
.rvtop{display:flex;justify-content:space-between;align-items:center}
.rvtop .mono{color:rgba(255,255,255,.6)}
.v-review .pill{color:#fff}
.rvbar{height:3px;border-radius:2px;background:rgba(255,255,255,.12);overflow:hidden}
.rvbar i{display:block;height:100%;background:var(--lime);transition:width .3s}
.rvcard{flex:1;min-height:300px;display:flex;flex-direction:column;justify-content:center;gap:14px;text-align:center;padding:28px 24px;border-radius:var(--r);background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(10px);position:relative}
.rvk{position:absolute;top:18px;left:0;right:0;color:var(--lime)}
.rvfront{font-weight:200;font-size:clamp(24px,5vw,34px);line-height:1.25;letter-spacing:0}
.rvsep{height:1px;background:rgba(255,255,255,.16);margin:4px auto;width:60%}
.rvback{font-weight:300;font-size:clamp(17px,3.6vw,22px);line-height:1.45;color:rgba(255,255,255,.88)}
.rvback b,.rvfront b{color:var(--lime);font-weight:500}
.rvhint{color:rgba(255,255,255,.4);position:absolute;bottom:18px;left:0;right:0}
.rvbtns{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.rvbtns.off{opacity:.35}
.rvbtns button{height:64px;border-radius:var(--r-sm);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:rgba(255,255,255,.1);color:#fff}
.rvbtns button b{font-weight:400;font-size:14px}.rvbtns button .mono{font-size:9px;color:rgba(255,255,255,.55)}
.rvbtns .r0{background:rgba(212,69,44,.28)}.rvbtns .r2{background:rgba(127,154,31,.38)}.rvbtns .r3{background:rgba(214,232,106,.3)}
.rvkeys{display:none;text-align:center;color:rgba(255,255,255,.35)}
.rvdone{margin:auto;text-align:center;display:grid;gap:14px;justify-items:center;max-width:380px}
.rvdone h2{font-weight:200;font-size:40px;letter-spacing:0}
.rvdone .mono{color:rgba(255,255,255,.6)}
.rvstats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:6px 0 10px}
.rvstats div{display:grid;gap:4px}.rvstats b{font-weight:200;font-size:30px}.rvstats .mono{font-size:9px}
@media(min-width:900px){
  .v-review{max-width:none;padding:56px max(48px,calc((100% - 760px)/2)) 48px}
  .rvkeys{display:block}
}

/* ===== Relatórios: intervalos, números grandes e gráficos ===== */
.rel .hd{padding-bottom:16px}
.reltabs{display:flex;overflow-x:auto;background:#e4e4de;border-radius:22px;padding:3px;margin-bottom:var(--gap);scrollbar-width:none}
.reltabs::-webkit-scrollbar{display:none}
.reltabs button{flex:1 0 auto;height:38px;padding:0 16px;border-radius:19px;color:var(--muted);white-space:nowrap}
.reltabs button.on{background:var(--ink);color:#fff}
.rangebar{margin-bottom:var(--gap)}
.rchips{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none;flex-wrap:nowrap}
.rchips::-webkit-scrollbar{display:none}
.rchips button{flex:none;height:32px;padding:0 14px;border-radius:16px;background:#fff;border:1px solid var(--line);font-size:10px;color:var(--ink)}
.rchips button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.rcustom{display:flex;gap:10px;margin-top:10px}
.rcustom label{flex:1;display:grid;gap:4px;color:var(--muted)}
.rcustom input{height:44px;border-radius:22px;border:1px solid var(--line);background:#fff;padding:0 16px;font:inherit;color:var(--ink);text-transform:none;letter-spacing:0}
.rlabel{color:var(--muted);margin-top:10px;line-height:1.6;text-transform:none;letter-spacing:.04em}

.rgrid{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap)}
.rk{background:#fff;border-radius:var(--r);padding:var(--pad);display:flex;flex-direction:column;gap:8px;min-height:148px;position:relative;overflow:hidden}
.rk .mono{color:var(--muted)}
.rk b{font-weight:200;font-size:clamp(32px,9vw,44px);letter-spacing:0;line-height:1.05}
.rk b.long{font-size:clamp(24px,7vw,32px)}
.rk b .pos{color:#4d7a12}.rk b .neg{color:#c0391f}
.dl{font-size:9.5px;color:var(--muted);text-transform:none;letter-spacing:.04em}
.dl.up{color:#4d7a12}.dl.down{color:#c0391f}
.spark{position:absolute;left:0;right:0;bottom:0;width:100%;height:34px;opacity:.55}
.rcols{display:grid;grid-template-columns:1fr;gap:var(--gap);margin-top:var(--gap)}
.rcard{background:#fff;padding:var(--pad)}
.rcardh{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px}
.rcardh .mono{color:var(--muted)}
.rleg{display:flex;gap:14px;color:var(--muted);margin-bottom:12px;flex-wrap:wrap}
.rleg span{display:inline-flex;align-items:center;gap:6px}.rleg i{width:9px;height:9px;border-radius:3px;display:inline-block}
.rbars{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:3px;align-items:end;height:150px}
.rb{display:flex;align-items:flex-end;justify-content:center;gap:1px;height:100%}
.rb i{display:block;flex:1;min-height:2px;border-radius:3px 3px 0 0;max-width:22px}
.raxis{display:flex;justify-content:space-between;margin-top:10px;color:var(--muted);font-size:9px}
.raxis.wk span{flex:1;text-align:center}
.rline{position:relative;height:150px}
.rline svg{width:100%;height:100%;display:block}
.rmax,.rmin{position:absolute;right:0;font-size:9px;color:var(--muted);background:rgba(255,255,255,.8);padding:0 4px;border-radius:4px}
.rmax{top:0}.rmin{bottom:0}
.rh{margin:0;display:grid;gap:10px}
.rh li{font-size:15px;font-weight:300;line-height:1.5;padding-left:18px;position:relative;list-style:none}
.rh li::before{content:'';position:absolute;left:0;top:.6em;width:7px;height:7px;border-radius:50%;background:var(--olive)}
.reportlink{width:100%;text-align:center;margin:-4px 0 var(--gap);padding:8px}

@media(min-width:900px){
  .rgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .rcols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rcols .rcard.full{grid-column:1/-1}
  .rk{min-height:160px}
  .rk b{font-size:54px}.rk b.long{font-size:38px}
  .rbars{height:190px}.rline{height:190px}
}

/* impressão / salvar em PDF */
@media print{
  .side,.dock,.edge,.noprint,.rangebar .rchips,.reltabs,#toast{display:none!important}
  html,body{background:#fff}
  #app{position:static;height:auto;max-width:none;overflow:visible;box-shadow:none;border-radius:0}
  .view{position:static!important;padding:20px!important;overflow:visible!important;background:#fff!important}
  .rk,.rcard{break-inside:avoid;border:1px solid #ddd}
  .rgrid{grid-template-columns:repeat(3,1fr)}
}

/* ===== Academia: programa pronto ABCDE ===== */
.rxline{display:flex;justify-content:space-between;gap:10px;color:var(--muted);margin:-2px 0 10px;flex-wrap:wrap;text-transform:none;letter-spacing:.04em}
.rxline .ok{color:var(--olive)}
.prog{display:flex;flex-direction:column;gap:8px;width:100%;text-align:left;background:#14170f;color:#fff;padding:var(--pad);margin:0 0 var(--gap);background-image:radial-gradient(120% 100% at 100% 0%,rgba(127,154,31,.32),transparent 60%)}
.prog .mono{color:var(--lime)}
.prog b{font-weight:300;font-size:22px;line-height:1.2}
.prog b em{font-style:normal;opacity:.65;font-weight:200}
.progs{font-weight:300;font-size:14px;line-height:1.5;color:rgba(255,255,255,.7)}
.progh{display:flex;justify-content:space-between;align-items:center}
.progh button{color:rgba(255,255,255,.7);font-size:10px;letter-spacing:.14em;text-transform:uppercase}
.progm{display:flex;gap:6px 14px;flex-wrap:wrap}.progm span{color:rgba(255,255,255,.55)}

.programa .phero{margin:0 0 var(--gap)}
.programa .phero h2{font-weight:200;font-size:clamp(34px,8vw,56px);line-height:1.08;margin:6px 0 12px}
.programa .phero .mono{color:var(--muted)}
.programa .phero p{font-weight:300;font-size:16px;line-height:1.55;color:#4b4d46;max-width:640px}
.pstats{margin-bottom:6px}
.pstats .k{min-height:84px;height:auto}
.pgrid{display:grid;grid-template-columns:1fr;gap:var(--gap)}
.pcard{background:#fff;padding:var(--pad)}
.pcard .mono{color:var(--muted)}
.pcard > b{display:block;font-weight:300;font-size:21px;margin:6px 0 8px}
.pcard.now{box-shadow:0 0 0 2px var(--olive)}
.pcard p{font-weight:300;font-size:14px;line-height:1.55;margin:8px 0 0;color:#4b4d46}
.pcard .pm{display:flex;gap:6px 12px;flex-wrap:wrap}
.pcard .pf{margin:0 0 10px}
.ptab{width:100%;border-collapse:collapse;font-size:13px;font-weight:300}
.ptab td{padding:9px 0;border-top:1px solid var(--line);vertical-align:top}
.ptab td:first-child{padding-right:10px;font-size:14px}
.ptab td.mono{white-space:nowrap;text-align:right;padding-left:8px;color:var(--ink);font-size:10px}
.plist{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.plist li{font-weight:300;font-size:14px;line-height:1.55;color:#3f413b}
.plist li b{font-weight:500;color:var(--ink)}
.plist.srcs{margin-top:16px;padding-top:16px;border-top:1px solid var(--line);font-size:12px}
.plist.srcs li{font-size:12.5px;color:#5b5d56}
.plist a{color:var(--olive);text-decoration:underline}
.pact{display:grid;grid-template-columns:1fr;gap:var(--gap);margin:20px 0 6px}
.pact .btn{height:54px}
@media(min-width:900px){
  .pgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pgrid.days{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pact{grid-template-columns:repeat(2,minmax(0,280px))}
  .pstats{grid-template-columns:repeat(4,minmax(0,1fr))}
}
.rk b{line-height:1.15}
@media(max-width:899px){.rk.wide{grid-column:1/-1}.pstats .k:last-child{grid-column:auto}}

/* ===== Equilíbrio de tamanhos: caixas crescem com o conteúdo, números se ajustam ===== */
.k{height:auto;min-height:92px}
.strip div{min-width:0}
.strip b,.k b,.rk b,.netr b{white-space:nowrap}
.k,.rk,.mod,.netr,.strip div,.hero{min-width:0}
.cstats{grid-template-columns:repeat(auto-fit,minmax(104px,1fr))}
.cstats .k .mono{overflow-wrap:anywhere}
.cstats .k .mono{letter-spacing:.08em;font-size:8px}
.mod .n{overflow-wrap:anywhere}

/* ===== Folhas de baixo: alça maior, animação de entrada, nada mais largo que a folha ===== */
.msheet{overflow-x:hidden;overscroll-behavior:contain;touch-action:pan-y}
.msheet > *{min-width:0}
.msheet > .grab,.msheet > h3{touch-action:none}
.grab{position:relative;margin-bottom:6px}
.grab::before{content:'';position:absolute;left:50%;top:50%;width:90px;height:40px;transform:translate(-50%,-50%)}   /* área de toque ampla */
.modal.enter{animation:fadeIn .2s ease}
.modal.enter .msheet{animation:sheetUp .3s cubic-bezier(.2,.8,.2,1)}
@keyframes fadeIn{from{background:rgba(0,0,0,0)}}
@keyframes sheetUp{from{transform:translateY(100%)}}
@media(min-width:900px){.modal.enter .msheet{animation:none}}

/* campo de data (iOS faz o campo nativo ficar mais largo que os outros) */
input[type=date]{-webkit-appearance:none;appearance:none;display:block;width:100%;max-width:100%;min-width:0;min-height:48px;text-align:left}
input[type=date]::-webkit-date-and-time-value{text-align:left;min-height:1.2em}
input[type=date]::-webkit-calendar-picker-indicator{opacity:.5}
.field{max-width:100%;min-width:0}
select.field{-webkit-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,#8a8c84 50%),linear-gradient(135deg,#8a8c84 50%,transparent 50%);background-position:calc(100% - 22px) 50%,calc(100% - 16px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:38px}

/* ===== Modo app no celular: travado, sem elasticidade, sem zoom, sem seleção ===== */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{touch-action:manipulation}
@media(hover:none){body{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}}   /* só em telas de toque */
input,textarea,select,.nbody,.ntitle,[contenteditable]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}
.view,.sheet,.msheet,.kanban,.rchips,.reltabs,.dock{overscroll-behavior:none;-webkit-overflow-scrolling:touch}
.view{touch-action:pan-y;overflow-x:hidden}
.kanban,.rchips,.reltabs,.tagbar,.dock{touch-action:pan-x pan-y}
@media(max-width:499px){
  html,body{position:fixed;inset:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}
  #app{position:fixed;top:0;left:0;width:100%;max-width:none;height:100dvh;margin:0;border-radius:0}
  /* 16 px nos campos evita o zoom automático do iOS ao tocar */
  input:not(.ntitle),select,textarea:not(.nbody),.field,.capture{font-size:16px !important}
  .imc select{font-size:16px !important;height:34px}
}
[hidden]{display:none !important}

/* =====================================================================
   Celular: tela Jarvis em coluna (texto no alto, orbe no centro, atalhos embaixo).
   Nada flutua por cima de nada, qualquer que seja o tamanho do texto ou da tela.
   ===================================================================== */
@media(max-width:899px){
  .view.v-jarvis{display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top) + 44px) 24px calc(env(safe-area-inset-bottom) + 98px);overflow:hidden}
  .v-jarvis .greet{position:static;order:0;margin:0;left:auto;right:auto;top:auto;flex:none}
  .v-jarvis .greet .mono{margin-bottom:14px}
  .v-jarvis .greet p{font-size:clamp(24px,7vw,30px)}
  .v-jarvis .greet small{margin-top:14px;font-size:13.5px}
  .v-jarvis .orbbtn{position:static;order:1;transform:none;left:auto;top:auto;flex:1 1 0;min-height:0;width:100%;height:auto;border-radius:0;display:flex;align-items:center;justify-content:center}
  .v-jarvis .orbbtn .orb{--s:min(58vw,clamp(110px,calc(36dvh - 90px),250px))}
  .v-jarvis .chips{position:static;order:2;transform:none;left:auto;right:auto;bottom:auto;margin:0 0 12px;flex:none;justify-content:center}
  .v-jarvis .capture{position:static;order:3;transform:none;left:auto;right:auto;bottom:auto;width:100%;flex:none;margin:0}
}
/* o app ocupa a tela inteira, inclusive a área do indicador de início do iPhone */
@media(max-width:499px){
  #app{inset:0;height:auto;bottom:0}
}
