/* Complementos da aplicação web: login, usuário logado, administração */
body.locked .toolbar, body.locked .tabs{display:none}
.hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.userbar{display:flex;flex-direction:column;align-items:flex-end;gap:8px;text-align:right}
.userbar .who{display:flex;flex-direction:column;gap:2px;font-size:13px}
.userbar .who b{color:#fff;font-weight:700}
.userbar .who span{color:#7A8BA3;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.ub-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.ub-btn{background:transparent;border:1px solid #1E3A5F;color:#C9D4E0;border-radius:6px;padding:6px 10px;font-size:12.5px;font-weight:600;cursor:pointer}
.ub-btn:hover{border-color:#06B6D4;color:#fff}
.ub-btn:focus-visible{outline:2px solid #06B6D4;outline-offset:2px}
@media (max-width:600px){.userbar{align-items:flex-start;text-align:left}.ub-actions{justify-content:flex-start}}

.login{display:flex;justify-content:center;padding:48px 16px 80px}
.login-card{width:min(420px,100%);display:flex;flex-direction:column;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:28px}
.login-card h2{margin:0;font-size:22px}
.login-card .btn{justify-content:center}
.form-err{color:var(--err);font-size:13px;min-height:1em}
.form-err:empty{display:none}

.scope{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.scope span{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border:1px solid #1E3A5F;color:#A5F3FC;border-radius:999px;padding:4px 10px}

.hist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:12.5px;color:var(--text-2)}
.hist b{color:var(--text-3);font-weight:600}
.sub-h{font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);margin-top:6px}

.ulist{display:flex;flex-direction:column;gap:8px}
.urow{border:1px solid var(--line);border-radius:10px;padding:12px;display:flex;justify-content:space-between;gap:10px;align-items:center;cursor:pointer;background:var(--surface);text-align:left;width:100%}
.urow:hover{border-color:var(--cyan-200)}
.urow .u-n{font-weight:700;font-size:14px}
.urow .u-m{font-size:12px;color:var(--text-2)}
.urow .u-f{font-size:11px;color:var(--accent-text);font-weight:600;margin-top:4px}
.badge{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:3px 8px;white-space:nowrap}
.badge.adm{background:var(--plan-bg);color:var(--plan)}
.badge.off{background:var(--idle-bg);color:var(--idle)}
.checks{display:flex;flex-direction:column;gap:8px}
.checks label{display:flex;gap:8px;align-items:center;font-size:14px;text-transform:none;letter-spacing:0;font-weight:500;color:var(--text)}
.checks input{width:auto}
.secret{font-family:ui-monospace,Consolas,monospace;font-size:15px;background:var(--hl-bg);border:1px solid var(--hl-line);border-radius:6px;padding:10px 12px;user-select:all}
.ro-note{font-size:12.5px;color:var(--text-2)}

/* ---------- v2: cliente, checklist, atualizações, anexos, arquivo ---------- */
.sel{border:1px solid var(--line);border-radius:6px;padding:8px 10px;background:var(--field);font-size:13px;font-weight:600;color:var(--text-3);max-width:220px}
.sel:focus-visible{outline:2px solid var(--cyan-500);outline-offset:2px}
.btn.sm{padding:5px 10px;font-size:12.5px}
.btn:disabled{opacity:.6;cursor:default}
.cli{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-text);margin-bottom:3px;margin-right:6px}
td.item .cli{display:block}
.metas{display:flex;gap:10px;margin-top:6px;flex-wrap:wrap}
.mi{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:600;color:var(--text-2);font-variant-numeric:tabular-nums}
.mi svg{width:13px;height:13px}
.mi.done{color:var(--ok)}
.muted{color:var(--text-2);font-size:13px}

.dw-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.icon-btn{background:none;border:1px solid transparent;border-radius:6px;padding:6px;cursor:pointer;color:var(--text-2);display:inline-flex;align-items:center;justify-content:center}
.icon-btn:hover{border-color:var(--line);color:var(--text)}
.icon-btn svg{width:18px;height:18px}
.icon-btn.sm{padding:4px}.icon-btn.sm svg{width:15px;height:15px}
.icon-btn.warn{color:var(--err);border-color:var(--err)}
.icon-btn:focus-visible,.linkbtn:focus-visible,.dtab:focus-visible,.drop:focus-visible{outline:2px solid var(--cyan-500);outline-offset:2px}
.dw-sub{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:-4px}
.dw-sub .cli{margin:0}
.dtabs{display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto;margin:0 -4px}
.dtab{background:none;border:0;border-bottom:3px solid transparent;padding:10px 8px 8px;font-weight:700;font-size:13px;color:var(--text-2);cursor:pointer;white-space:nowrap;display:inline-flex;gap:6px;align-items:center}
.dtab[aria-selected="true"]{color:var(--text);border-bottom-color:var(--cyan-500)}
.cnt-b{font-size:11px;font-weight:700;background:var(--card);color:var(--text-3);border-radius:999px;padding:1px 7px;font-variant-numeric:tabular-nums}
#pane{display:flex;flex-direction:column;gap:14px}
.dform{display:flex;flex-direction:column;gap:14px}

.prog{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--text-2)}
.prog:empty{display:none}
.pbar{flex:1;height:8px;border-radius:4px;background:var(--line);overflow:hidden}
.pbar span{display:block;height:100%;background:var(--ok-big)}
.chk{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.chk li{display:flex;align-items:center;gap:8px;padding:8px 2px;border-bottom:1px solid var(--line)}
.chk li label{flex:1;display:flex;gap:10px;align-items:flex-start;cursor:pointer;font-size:14px}
.chk li input{margin-top:3px;width:16px;height:16px;accent-color:#059669;flex:none}
.chk li.done label span{color:var(--text-2);text-decoration:line-through}
.chk .by{font-size:11.5px;color:var(--text-2);white-space:nowrap}
.addline{display:flex;gap:8px}
.addline input{flex:1;min-width:0;border:1px solid var(--line);border-radius:6px;padding:9px 10px;background:var(--field);font-size:14px}

.cform textarea{width:100%;min-height:90px;border:1px solid var(--line);border-radius:6px;padding:10px;background:var(--field);font-size:14px;resize:vertical}
.cform .actions{margin-top:8px;align-items:center}
.feed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.feed li{border-left:3px solid var(--cyan-200);padding:4px 0 4px 12px}
.feed .fh{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;font-size:12.5px;color:var(--text-2)}
.feed .fh b{color:var(--text);font-size:13px}
.feed .ft{white-space:pre-line;font-size:14px;margin-top:4px}
.linkbtn{background:none;border:0;padding:0;color:var(--err);font-size:12px;font-weight:600;cursor:pointer;margin-left:auto}

.drop{border:2px dashed var(--line);border-radius:10px;padding:18px;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;cursor:pointer;color:var(--text-3);font-size:13.5px}
.drop svg{width:22px;height:22px;color:var(--accent-text)}
.drop.over,.drop:hover{border-color:var(--cyan-500);background:var(--hl-bg)}
.up-status{font-size:13px;color:var(--text-2)}
.up-status:empty{display:none}
.files{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.files li{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:8px}
.thumb{width:48px;height:48px;border-radius:6px;overflow:hidden;flex:none;background:var(--card);display:flex;align-items:center;justify-content:center}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb.ic svg{width:22px;height:22px;color:var(--text-2)}
.fi{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.fi a{font-weight:600;font-size:13.5px;color:var(--text);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fi a:hover{color:var(--accent-text);text-decoration:underline}
.fi span{font-size:11.5px;color:var(--text-2)}
.alert-box{border:1px solid var(--line);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.alert-box .sub-h{margin:0}
.badge.off{display:inline-block}
.drawer>*{flex-shrink:0}

/* ---------- v3: Timesheet e Indicadores ---------- */
.tabs .wrap{overflow-x:auto}
.kpi.static{cursor:default}
.kpi .ksub{font-size:11.5px;color:var(--text-2)}
.kpi .l{color:var(--text-3)}
.ts-kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:16px 0 24px}
.ind-kpis{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-bottom:20px}
.ind-kpis .n,.ts-kpis .n{font-size:28px}
.timer{display:flex;flex-wrap:wrap;gap:10px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:14px;background:var(--surface)}
.timer.on{border-color:var(--hl-line);background:var(--hl-bg)}
.timer .sel{max-width:none;flex:1 1 200px}
.tm-desc{flex:2 1 220px;min-width:0;border:1px solid var(--line);border-radius:6px;padding:9px 10px;background:var(--field);font-size:14px}
.tm-fat{display:flex;gap:6px;align-items:center;font-size:13px;font-weight:600;color:var(--text-3)}
.tm-info{display:flex;flex-direction:column;gap:2px;flex:1 1 220px}
.tm-info b{font-size:15px}.tm-info span:last-child{font-size:12.5px;color:var(--text-2)}
.tm-clock{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums;min-width:110px;text-align:right}
.ts-week{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:20px}
.wk-nav{display:flex;align-items:center;gap:8px}
.wk-nav .icon-btn{font-size:20px;line-height:1;width:32px;height:32px;border-color:var(--line)}
.ts-day{margin-bottom:18px}
.ts-dh{display:flex;justify-content:space-between;font-size:13px;color:var(--text-2);padding:0 2px 6px;border-bottom:1px solid var(--line);text-transform:capitalize}
.ts-dh b{color:var(--text)}
.ts-list{list-style:none;margin:0;padding:0}
.ts-list li{display:grid;grid-template-columns:120px 1fr auto;gap:12px;align-items:start;padding:10px 2px;border-bottom:1px solid var(--line)}
.tl-t{display:flex;flex-direction:column;font-size:12.5px;color:var(--text-2);font-variant-numeric:tabular-nums}
.tl-t b{font-size:15px;color:var(--text)}
.tl-m{font-size:13.5px;display:flex;flex-direction:column;gap:3px;min-width:0}
.tl-a{color:var(--text-2);margin-left:6px}
.tl-d{color:var(--text-3);white-space:pre-line}
.tl-r{color:var(--err);font-size:12.5px}
.tl-s{display:flex;align-items:center;gap:4px}
@media (max-width:600px){.ts-list li{grid-template-columns:1fr auto}.tl-t{flex-direction:row;gap:8px;grid-column:1/-1}}
.ts-filters,.ind-fil{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:14px}
.ts-filters label{display:flex;flex-direction:column;gap:4px;font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3)}
.ts-filters input,.ts-filters select{border:1px solid var(--line);border-radius:6px;padding:7px 9px;background:var(--field);font-size:13.5px;text-transform:none;letter-spacing:0;font-weight:500;color:var(--text)}
.ind-fil{align-items:center}
.ind-fil .sel{max-width:260px}
.ts-tbl{min-width:900px}
.rep-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;margin-bottom:14px}
.rep-grid.two-col{grid-template-columns:repeat(auto-fit,minmax(420px,1fr))}
@media (max-width:520px){.rep-grid.two-col{grid-template-columns:1fr}}
.rep-card{border:1px solid var(--line);border-radius:10px;padding:16px;background:var(--surface);display:flex;flex-direction:column;gap:12px;min-width:0;margin-bottom:14px}
.rep-grid .rep-card{margin-bottom:0}
.rep-card h3{margin:0;font-size:14.5px}
.rc-h{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.hb{display:flex;flex-direction:column;gap:8px}
.hb-r{display:grid;grid-template-columns:minmax(90px,38%) 1fr auto auto;gap:10px;align-items:center;font-size:13px}
.hb-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-3)}
.hb-t{height:12px;background:transparent;display:block}
.hb-t span{display:block;height:100%;background:#0891B2;border-radius:0 4px 4px 0;min-width:2px}
.hb-v{font-weight:700;font-variant-numeric:tabular-nums;min-width:44px;text-align:right}
.hb-x{font-size:12px;color:var(--text-2);min-width:70px;text-align:right;font-variant-numeric:tabular-nums}
.hb-x.over{color:var(--err);font-weight:700}
.cad{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.cad li{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;padding:9px 4px;border-bottom:1px solid var(--line);cursor:pointer;font-size:13.5px}
.cad li:hover{background:var(--hl-bg)}
.cad li span:last-child{margin-left:auto;font-size:12px;color:var(--text-2)}
.lgd{display:flex;gap:14px;font-size:12.5px;color:var(--text-2)}
.lgd i,.tip i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:-1px}
.chart{position:relative;width:100%;overflow:hidden}
.chart svg{display:block;max-width:100%}
.chart .grid{stroke:var(--line);stroke-width:1}
.chart .ax{fill:var(--text-2);font-size:11px;font-family:inherit}
.chart .cross{stroke:var(--muted);stroke-width:1}
.chart .ring{stroke:var(--surface);stroke-width:2}
.tip{position:absolute;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:8px 10px;font-size:12.5px;display:flex;flex-direction:column;gap:3px;pointer-events:none;white-space:nowrap;color:var(--text-3)}
.tip b{color:var(--text)}
.tview summary{cursor:pointer;font-size:12.5px;color:var(--accent-text);font-weight:600}
.tview table{min-width:0;margin-top:8px;font-size:12.5px}
.tview td,.tview th{padding:4px 10px}
table.mini{min-width:520px;font-size:13px}
table.mini td{padding:8px 10px}
table.mini td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
table.mini tbody tr{cursor:default}
table.mini a{color:var(--accent-text);font-weight:600}
.mini-stats{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:12.5px;color:var(--text-2);border-top:1px solid var(--line);padding-top:10px}
.mini-stats b{color:var(--text)}
#indDash.loading{opacity:.55;transition:opacity .2s}
