:root{--paper: #f6f7f5;--surface: #ffffff;--line: #e1e4df;--ink: #17242e;--ink-soft: #5b6a74;--ok: #2f7e6d;--warn: #c9821f;--over: #b5462e;--accent: #17242e;--radius: 10px;--font-display: "Archivo", system-ui, sans-serif;--font-body: "Inter", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-stretch:110%;margin:0}h1{font-size:1.5rem;font-weight:700}h2{font-size:1.1rem;font-weight:600}a{color:inherit}button{font:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:4px}.num{font-variant-numeric:tabular-nums}.shell{display:flex;min-height:100dvh;flex-direction:column}.shell-main{flex:1;padding:16px 16px 84px;max-width:1080px;width:100%;margin:0 auto}.nav{position:fixed;bottom:0;left:0;right:0;z-index:10;display:flex;justify-content:space-around;background:var(--surface);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}.nav-brand{display:none}.nav-link{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 14px;border-radius:8px;text-decoration:none;color:var(--ink-soft);font-size:.72rem;font-weight:500}.nav-link svg{width:22px;height:22px}.nav-link.active{color:var(--ink);background:var(--paper)}.nav-user{display:none}@media (min-width: 880px){.shell{flex-direction:row}.shell-main{padding:32px 40px}.nav{position:sticky;top:0;bottom:auto;height:100dvh;width:216px;flex-direction:column;justify-content:flex-start;gap:4px;border-top:none;border-right:1px solid var(--line);padding:24px 16px}.nav-brand{display:block;font-family:var(--font-display);font-weight:700;font-size:1.05rem;letter-spacing:.02em;margin:0 8px 24px}.nav-brand small{display:block;color:var(--ink-soft);font-family:var(--font-body);font-weight:400;font-size:.72rem}.nav-link{flex-direction:row;gap:10px;font-size:.9rem;padding:10px 12px;width:100%}.nav-user{display:block;margin-top:auto;padding:12px 8px 0;border-top:1px solid var(--line);font-size:.8rem;color:var(--ink-soft)}.nav-user strong{display:block;color:var(--ink);font-weight:600}.nav-user button{margin-top:8px;background:none;border:1px solid var(--line);border-radius:6px;padding:4px 10px;font-size:.78rem;color:var(--ink-soft)}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.grid{display:grid;gap:14px}@media (min-width: 720px){.grid-2{grid-template-columns:1fr 1fr}}.page-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 16px;margin-bottom:18px}.page-head p{margin:0;color:var(--ink-soft);font-size:.88rem}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:16px}.kpi{padding:14px 16px}.kpi .label{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);line-height:1.3;margin-bottom:2px}.kpi .value{display:block;font-family:var(--font-display);font-size:1.6rem;font-weight:700;line-height:1.15}.ruler{margin-top:12px}.ruler-track{position:relative;height:26px;border:1px solid var(--line);border-radius:6px;background:repeating-linear-gradient(to right,transparent 0 calc(10% - 1px),var(--line) calc(10% - 1px) 10%);overflow:hidden}.ruler-fill{position:absolute;inset:0 auto 0 0;border-radius:5px 0 0 5px;transition:width .6s ease}.ruler-fill.ok{background:color-mix(in srgb,var(--ok) 85%,white)}.ruler-fill.warn{background:color-mix(in srgb,var(--warn) 85%,white)}.ruler-fill.over{background:color-mix(in srgb,var(--over) 85%,white)}.ruler-legend{display:flex;justify-content:space-between;font-size:.78rem;color:var(--ink-soft);margin-top:6px}.ruler-legend strong{color:var(--ink)}@media (prefers-reduced-motion: reduce){.ruler-fill{transition:none}}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.74rem;font-weight:600;border:1px solid transparent}.badge.ok{color:var(--ok);background:#ecf5f2;border-color:#cfe5df}.badge.warn{color:var(--warn);background:#faf3e6;border-color:#eedfc2}.badge.over{color:var(--over);background:#f9ece8;border-color:#eccfc6}.badge.neutral{color:var(--ink-soft);background:var(--paper);border-color:var(--line)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:.82rem;font-weight:600}.field input,.field textarea{font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}.field input:focus,.field textarea:focus{outline:2px solid var(--ink);outline-offset:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--ink);color:#fff;border:none;border-radius:8px;padding:11px 18px;font-weight:600;width:100%}.btn:disabled{opacity:.6;cursor:default}@media (min-width: 720px){.btn.fit{width:auto}}.error{color:var(--over);font-size:.85rem;margin:8px 0 0}.empty{color:var(--ink-soft);text-align:center;padding:32px 12px}.login-wrap{min-height:100dvh;display:grid;place-items:center;padding:20px}.login-card{width:100%;max-width:380px;padding:28px}.login-card h1{margin-bottom:4px}.login-card>p{margin:0 0 22px;color:var(--ink-soft);font-size:.88rem}.table{width:100%;border-collapse:collapse;font-size:.87rem}.table th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);padding:8px 10px;border-bottom:1px solid var(--line)}.table td{padding:10px;border-bottom:1px solid var(--line);vertical-align:top}.table tr:last-child td{border-bottom:none}.table-scroll{overflow-x:auto}.login-logo{width:180px;max-width:60%;margin:0 auto 18px;display:block}.nav-logo{width:140px;display:block;margin-bottom:10px}.topbar{position:sticky;top:0;z-index:9;display:flex;align-items:center;justify-content:space-between;background:var(--surface);border-bottom:1px solid var(--line);padding:10px 16px}.topbar-logo{height:26px}.topbar-empresa{font-size:.78rem;color:var(--ink-soft);font-weight:500}@media (min-width: 880px){.topbar{display:none}}.select,.field select{font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);width:100%}.link-btn{background:none;border:none;padding:0;color:var(--ink);text-decoration:underline;font-size:.82rem}.editing-row td{background:var(--paper)}.editing-row input{font:inherit;font-size:.85rem;width:100%;min-width:110px;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink)}.nav-user-empresa{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-user button{display:block;width:100%}.ruler-note{margin:4px 0 0;font-size:.74rem;color:var(--ink-soft);font-style:italic}.ruler-note{margin:4px 0 0;font-size:.75rem;color:var(--ink-soft)}.link-btn.danger{color:var(--over)}.toast{position:fixed;z-index:50;left:50%;transform:translate(-50%);bottom:88px;max-width:92vw;padding:12px 18px;border-radius:10px;font-size:.9rem;font-weight:600;cursor:pointer;box-shadow:0 6px 20px #17242e2e;animation:toast-in .2s ease}.toast.ok{background:var(--ok);color:#fff}.toast.erro{background:var(--over);color:#fff}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}@media (min-width: 880px){.toast{bottom:28px}}@media (prefers-reduced-motion: reduce){.toast{animation:none}}.filter-tabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:12px;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:3px;width:100%}.filter-tab{flex:1 1 auto;display:flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap;background:none;border:none;border-radius:6px;padding:8px 6px;font-size:.85rem;font-weight:500;color:var(--ink-soft)}@media (max-width: 560px){.filter-tabs{gap:2px;padding:2px}.filter-tab{flex-direction:column;gap:1px;font-size:.76rem;padding:6px 4px;line-height:1.25}.filter-count{font-size:.68rem;padding:0 6px}}.filter-tab.active{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 1px 2px #17242e14}.filter-count{font-size:.72rem;padding:1px 7px;border-radius:999px;background:var(--line);color:var(--ink-soft)}.filter-tab.active .filter-count{background:var(--paper);color:var(--ink)}.kpis{grid-template-columns:repeat(auto-fit,minmax(132px,1fr))}.kpi{min-width:0}.kpi .value{font-size:clamp(1.15rem,6.5vw,1.6rem);line-height:1.15;overflow-wrap:anywhere}@media (min-width: 560px){.kpi .value{font-size:1.6rem}}@media (max-width: 719px){.table-cards,.table-cards tbody,.table-cards tr,.table-cards td{display:block;width:100%}.table-cards thead{display:none}.table-cards tr{border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-bottom:10px;background:var(--surface)}.table-cards tr:last-child{margin-bottom:0}.table-cards td{border:none;padding:3px 0;display:flex;align-items:baseline;justify-content:space-between;gap:12px}.table-cards td:before{content:attr(data-label);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);flex:none}.table-cards td.cell-title{display:block;font-weight:600;margin-bottom:6px;padding-bottom:6px;border-bottom:1px solid var(--line)}.table-cards td.cell-title:before{content:none}}.nav-link-btn{background:none;border:none;font:inherit;cursor:pointer}@media (min-width: 880px){.nav-link-btn{text-align:left}}@media (max-width: 719px){.table-cards td.cell-title{overflow-wrap:anywhere}.table-cards td{gap:16px}.table-cards td:not(.cell-title)>*{text-align:right}}.print-only{display:none}@media print{body *{visibility:hidden}#relatorio-redmine,#relatorio-redmine *{visibility:visible}#relatorio-redmine{position:absolute;left:0;top:0;width:100%;background:#fff;color:#000}.no-print,.nav,.topbar,.toast{display:none!important}.print-only{display:block}.print-head h1{font-size:18pt;margin:0 0 2mm}.print-head p{font-size:9pt;color:#444;margin:0 0 6mm}#relatorio-redmine .table{font-size:9pt;width:100%}#relatorio-redmine .table th{border-bottom:1px solid #999;color:#000;font-size:8pt}#relatorio-redmine .table td{border-bottom:1px solid #ddd}#relatorio-redmine .table-scroll{overflow:visible}#relatorio-redmine tr{page-break-inside:avoid}@page{margin:12mm}}.upload-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.upload-area{display:flex;flex-direction:column;align-items:center;gap:4px;padding:18px 14px;cursor:pointer;text-align:center;background:var(--paper);border:1.5px dashed var(--line);border-radius:10px;transition:border-color .15s,background .15s}.upload-area:hover,.upload-input:focus-visible+.upload-area{border-color:var(--ink);background:var(--surface)}.upload-area.dragging{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 8%,white)}.upload-area.cheio{cursor:default;opacity:.65}.upload-area.cheio:hover{border-color:var(--line);background:var(--paper)}.upload-area svg{width:26px;height:26px;color:var(--ink-soft)}.upload-titulo{font-size:.88rem;font-weight:600}.upload-dica{font-size:.75rem;color:var(--ink-soft);line-height:1.35}.anexo-contador{float:right;font-weight:500;font-size:.74rem;color:var(--ink-soft)}@media (prefers-reduced-motion: reduce){.upload-area{transition:none}}.anexo-lista{list-style:none;margin:8px 0 0;padding:0}.anexo-lista li{display:flex;align-items:center;gap:10px;padding:6px 10px;margin-bottom:4px;background:var(--paper);border:1px solid var(--line);border-radius:6px;font-size:.82rem}.anexo-nome{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.anexo-tam{color:var(--ink-soft);font-size:.76rem;flex:none}.badge.tom-aguardando{color:var(--warn);background:#faf3e6;border-color:#eedfc2}.badge.tom-andamento{color:#1f4a5f;background:#eaf1f5;border-color:#cfdde5}.badge.tom-concluido{color:var(--ok);background:#ecf5f2;border-color:#cfe5df}.badge.tom-neutro{color:var(--ink-soft);background:var(--paper);border-color:var(--line)}@media (min-width: 720px){.grid-chamados{align-items:start}.card-abrir-chamado{position:sticky;top:20px}}.lbl-curto{display:none}@media (max-width: 559px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi{padding:12px 14px}.kpi .label{font-size:.68rem;letter-spacing:.03em}.lbl-longo{display:none}.lbl-curto{display:inline}}
