/* App E&I · World Gymnaestrada Lisboa 2027 */
:root{box-sizing:border-box}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
body{margin:0;padding:0}
img{max-width:100%}
[hidden]:not([hidden=until-found i]){display:none!important}
/* Layout: operations console — fixed side rail with modules, working surface on the right; on phones the rail becomes a scrolling tab strip. */
:root{
  --bg:#F2F4F7; --surface:#FFFFFF; --surface-2:#E8ECF2; --ink:#111926; --muted:#5B6678; --line:#D6DCE5;
  --accent:#006DB0; --accent-ink:#FFFFFF; --accent-soft:#E1F0FA;
  --good:#15803D; --warn:#B45309; --crit:#B91C1C; --good-soft:#DCF1E3; --warn-soft:#FBEBD6; --crit-soft:#F9E0E0;
  --l-fil:#0082C5; --l-meo:#E07A12; --l-res:#1E9E66; --l-eu:#653090; --l-pal:#C99A06; --l-mas:#667085;
  --f-acesso:#8A97AB; --f-montagem:#2F6FE0; --f-testes:#0E9C98; --f-operacao:#D9822B; --f-desmontagem:#7B45E0; --f-entrega:#3F4A5C;
  --display:"Barlow Condensed", "Archivo", "Helvetica Neue", Arial, sans-serif;
  --wg:linear-gradient(90deg,#0082C5 0 16%,#2AB574 16% 33%,#FDC616 33% 50%,#F69320 50% 66%,#E93F39 66% 83%,#653090 83%);
  --body:"Archivo", "Helvetica Neue", Arial, sans-serif;
  --mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  --r:8px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0C121B; --surface:#141C28; --surface-2:#1C2636; --ink:#E7ECF3; --muted:#95A2B6; --line:#2A3649;
  --accent:#4FB3EC; --accent-ink:#0C121B; --accent-soft:#12304A;
  --good:#4ADE80; --warn:#F5B454; --crit:#F87171; --good-soft:#15301F; --warn-soft:#382A14; --crit-soft:#3A1A1A;
  --l-fil:#6C9EFF; --l-meo:#F08A55; --l-res:#3CC79B; --l-eu:#A98BF5; --l-pal:#E0B43C; --l-mas:#98A4B8;
  --f-acesso:#7D8AA0; --f-montagem:#6C9EFF; --f-testes:#3CC7C2; --f-operacao:#F0A55A; --f-desmontagem:#A98BF5; --f-entrega:#A7B1C2;
  color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0C121B; --surface:#141C28; --surface-2:#1C2636; --ink:#E7ECF3; --muted:#95A2B6; --line:#2A3649;
  --accent:#4FB3EC; --accent-ink:#0C121B; --accent-soft:#12304A;
  --good:#4ADE80; --warn:#F5B454; --crit:#F87171; --good-soft:#15301F; --warn-soft:#382A14; --crit-soft:#3A1A1A;
  --l-fil:#6C9EFF; --l-meo:#F08A55; --l-res:#3CC79B; --l-eu:#A98BF5; --l-pal:#E0B43C; --l-mas:#98A4B8;
  --f-acesso:#7D8AA0; --f-montagem:#6C9EFF; --f-testes:#3CC7C2; --f-operacao:#F0A55A; --f-desmontagem:#A98BF5; --f-entrega:#A7B1C2;
  color-scheme:dark}
*{box-sizing:border-box}
html,body{height:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:14px;line-height:1.45}
button,input,select,textarea{font:inherit;color:inherit}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.app{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100%}
.rail{background:var(--surface);border-right:1px solid var(--line);padding:16px 12px;display:flex;flex-direction:column;gap:18px;position:sticky;top:env(safe-area-inset-top,0px);height:100vh;overflow:auto}
.brand{display:flex;flex-direction:column;gap:8px;padding:0 4px}
.brand .logo{background:#fff;border-radius:10px;padding:10px;display:flex;justify-content:center;border:1px solid var(--line)}
.brand .logo img{width:124px;height:auto;display:block}
.brand .emb{display:none}
.brand .dept{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1px}
.rail{background:var(--wg) top left/100% 5px no-repeat,var(--surface);padding-top:21px}
.brand b{font-family:var(--display);font-weight:700;font-size:18px;line-height:1.1;letter-spacing:.02em}
.brand span{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.navgroup{display:flex;flex-direction:column;gap:2px}
.navgroup h6{margin:0 0 4px;padding:0 8px;font-size:10.5px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}
.nav{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;text-align:left;border:0;background:none;padding:8px 10px;border-radius:6px;cursor:pointer;color:var(--ink);font-weight:500}
.nav:hover{background:var(--surface-2)}
.nav[aria-current="page"]{background:var(--accent-soft);color:var(--accent);font-weight:700}
.nav .tag{font-size:10.5px;font-weight:600;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:0 7px;white-space:nowrap}
.nav:focus-visible,.btn:focus-visible,.chip:focus-visible,.task:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.who{margin-top:auto;display:flex;flex-direction:column;gap:6px;padding:10px 8px 0;border-top:1px solid var(--line)}
.who label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.main{min-width:0;padding-block:20px 48px;padding-inline:28px;display:flex;flex-direction:column;gap:20px}
.sim{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font-size:12.5px;color:var(--muted);border:1px dashed var(--line);border-radius:var(--r);padding:8px 12px;background:var(--surface)}
.sim b{color:var(--ink)}
.head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px}
.head h1{margin:0;font-family:var(--display);font-size:32px;font-weight:700;letter-spacing:.005em;line-height:1.05;text-wrap:balance}
.head p{margin:2px 0 0;color:var(--muted)}
.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.btn{border:1px solid var(--line);background:var(--surface);padding:7px 12px;border-radius:6px;cursor:pointer;font-weight:600;white-space:nowrap}
.btn:hover{border-color:var(--muted)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.danger{color:var(--crit)}
.btn.danger.armed{background:var(--crit);border-color:var(--crit);color:#fff}
.btn:disabled{opacity:.45;cursor:not-allowed}
select,input[type=text],input[type=search],input[type=datetime-local],textarea{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:7px 9px;max-width:100%}
textarea{width:100%;min-height:70px;resize:vertical}
.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:4px 10px;font-size:12.5px;font-weight:600;cursor:pointer}
.chip[aria-pressed="false"]{opacity:.5}
.dot{width:9px;height:9px;border-radius:50%;flex:none;background:var(--c)}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;min-width:0}
.panel h2{margin:0 0 12px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);display:flex;justify-content:space-between;gap:8px}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px}
.kpi b{display:block;font-family:var(--display);font-size:26px;font-weight:800;font-variant-numeric:tabular-nums}
.kpi span{font-size:12.5px;color:var(--muted)}
.kpi.warn b{color:var(--warn)} .kpi.crit b{color:var(--crit)}
.list{display:flex;flex-direction:column;gap:8px}
.task{display:grid;grid-template-columns:4px minmax(0,1fr);gap:10px;text-align:left;width:100%;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:9px 10px 9px 0;cursor:pointer}
.task:hover{border-color:var(--muted)}
.task .bar{background:var(--c);border-radius:0 3px 3px 0}
.task .t1{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.task .t1 strong{font-weight:600;min-width:0}
.task .meta{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:12px;color:var(--muted);margin-top:3px}
.pill{display:inline-block;font-size:11px;font-weight:700;border-radius:999px;padding:1px 8px;white-space:nowrap;background:var(--surface-2);color:var(--muted)}
.pill.curso{background:var(--accent-soft);color:var(--accent)}
.pill.feito{background:var(--good-soft);color:var(--good)}
.pill.bloq{background:var(--crit-soft);color:var(--crit)}
.warnline{font-size:12px;color:var(--warn);font-weight:600;margin-top:3px}
.empty{color:var(--muted);font-size:13px;padding:10px 0}
.phase{display:grid;grid-template-columns:130px minmax(0,1fr) 44px;gap:10px;align-items:center;font-size:13px;padding:5px 0}
.stack{display:flex;height:12px;border-radius:3px;overflow:hidden;background:var(--surface-2)}
.stack i{display:block;height:100%}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.sq{width:10px;height:10px;border-radius:2px;background:var(--c);display:inline-block}
.soon{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.soon div{border:1px dashed var(--line);border-radius:var(--r);padding:12px;color:var(--muted);font-size:12.5px}
.soon b{display:block;color:var(--ink);font-size:13.5px;margin-bottom:2px}
.tabs{display:inline-flex;border:1px solid var(--line);border-radius:7px;overflow:hidden;background:var(--surface)}
.tabs button{border:0;background:none;padding:7px 14px;cursor:pointer;font-weight:600;color:var(--muted)}
.tabs button[aria-selected="true"]{background:var(--accent);color:var(--accent-ink)}
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.day{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:8px;display:flex;flex-direction:column;gap:6px;min-width:0;min-height:160px}
.day.today{border-color:var(--accent);box-shadow:inset 0 3px 0 var(--accent)}
.day h3{margin:0 0 2px;font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;display:flex;justify-content:space-between}
.day h3 b{color:var(--ink);font-size:15px;letter-spacing:0}
.ev{display:block;width:100%;text-align:left;border:0;border-left:3px solid var(--c);background:var(--surface-2);border-radius:4px;padding:5px 7px;cursor:pointer;font-size:12px;line-height:1.3}
.ev:hover{outline:1px solid var(--muted)}
.ev small{display:block;color:var(--muted);font-family:var(--mono);font-size:11px}
.month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line);background:var(--surface);border-radius:var(--r);overflow:hidden}
.month .mh{padding:6px 8px;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface-2)}
.mc{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:104px;padding:6px;display:flex;flex-direction:column;gap:3px;min-width:0;cursor:pointer;background:none;border-top:0;border-left:0;text-align:left}
.mc.out{opacity:.4}
.mc.today .n{background:var(--accent);color:var(--accent-ink);border-radius:999px;padding:0 6px}
.mc.event{background:color-mix(in srgb,var(--f-operacao) 7%,transparent)}
.mc .n{font-weight:700;font-size:12.5px;align-self:flex-start;font-variant-numeric:tabular-nums}
.mc .m{display:flex;align-items:center;gap:5px;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc .more{font-size:11px;color:var(--muted)}
.gwrap{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.gantt{position:relative}
.grow{display:grid;grid-template-columns:250px auto;border-bottom:1px solid var(--line);min-height:30px}
.grow .lab{position:sticky;left:0;z-index:2;background:var(--surface);border-right:1px solid var(--line);padding:6px 10px;font-size:12.5px;display:flex;align-items:center;gap:8px;min-width:0}
.grow .lab span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.grow .lab .mono{color:var(--muted);font-size:11px;flex:none}
.grow.grp .lab{font-weight:800;font-size:13px;background:var(--surface-2)}
.grow.grp{background:var(--surface-2)}
.grow.hd .lab,.grow.hd{background:var(--surface-2)}
.track{position:relative}
.gday{position:absolute;top:0;bottom:0;border-left:1px solid var(--line)}
.gday.wk{background:color-mix(in srgb,var(--muted) 6%,transparent)}
.gday.ev{background:color-mix(in srgb,var(--f-operacao) 8%,transparent)}
.dh{position:absolute;top:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:10.5px;color:var(--muted);line-height:1.1}
.dh b{font-size:12px;color:var(--ink);font-variant-numeric:tabular-nums}
.gbar{position:absolute;top:7px;height:16px;border-radius:4px;background:var(--c);border:0;padding:0;cursor:pointer;min-width:4px}
.gbar:hover{filter:brightness(1.1);outline:2px solid var(--ink)}
.gbar.bl{background:repeating-linear-gradient(45deg,var(--c),var(--c) 4px,var(--crit) 4px,var(--crit) 8px)}
.nowline{position:absolute;top:0;bottom:0;width:0;border-left:2px dashed var(--crit);z-index:1;pointer-events:none}
.twrap{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
table{border-collapse:collapse;width:100%;min-width:940px;font-size:13px}
th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:700;padding:9px 10px;border-bottom:1px solid var(--line);background:var(--surface-2);white-space:nowrap}
td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
td.mono{white-space:nowrap}
tbody tr{cursor:pointer}
tbody tr:hover td{background:var(--surface-2)}
td .sub{color:var(--muted);font-size:12px}
.drawer-bg{position:fixed;inset:0;background:rgba(10,15,25,.45);z-index:20}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(480px,100%);background:var(--surface);z-index:21;border-left:1px solid var(--line);display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.dhd{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.dhd h2{margin:0;font-family:var(--display);font-size:19px;font-weight:800}
.dhd .mono{color:var(--muted);font-size:12px}
.dbody{padding:16px 18px;overflow:auto;display:flex;flex-direction:column;gap:12px;flex:1}
.field{display:flex;flex-direction:column;gap:4px;min-width:0}
.field label{font-size:11.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.field label em{color:var(--crit);font-style:normal}
.field select,.field input{width:100%}
.field input[type=checkbox],.field input[type=file]{width:auto}
.f2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.dft{padding:12px 18px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.notice{font-size:12.5px;border-radius:6px;padding:8px 10px;background:var(--surface-2);color:var(--muted)}
.notice.w{background:var(--warn-soft);color:var(--warn);font-weight:600}
.notice.e{background:var(--crit-soft);color:var(--crit);font-weight:600}
.hist{font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--line);padding-top:10px}
.hist b{color:var(--ink);font-weight:600}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:9px 16px;border-radius:6px;font-weight:600;z-index:30}
.docs{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.doc{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px;display:flex;gap:12px;min-width:0}
.doc .ic{width:38px;height:46px;flex:none;border:1px solid var(--line);border-radius:4px;display:flex;align-items:flex-end;justify-content:center;padding-bottom:5px;font-family:var(--mono);font-size:10px;font-weight:500;color:var(--muted);background:var(--surface-2)}
.doc b{display:block;font-size:13.5px}
.doc span{font-size:12px;color:var(--muted)}
.nav .tag.badge{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.nav .tag.badge.late{background:var(--crit);border-color:var(--crit);color:#fff}
.todo{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:10px 12px}
.todo.late{border-left:4px solid var(--crit)}
.todo.feita{opacity:.6}
.todo.feita strong{text-decoration:line-through}
.chk{width:22px;height:22px;border-radius:50%;border:2px solid var(--muted);background:none;cursor:pointer;margin-top:1px;display:flex;align-items:center;justify-content:center;padding:0;color:var(--accent-ink)}
.chk[aria-pressed="true"]{background:var(--good);border-color:var(--good)}
.chk[aria-pressed="true"]::after{content:"";width:8px;height:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translate(1px,-1px)}
.chk:disabled{cursor:not-allowed;opacity:.5}
.tbtn{border:0;background:none;text-align:left;padding:0;cursor:pointer;min-width:0}
.tbtn .t1{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.tbtn strong{font-weight:600}
.tbtn .meta{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:12px;color:var(--muted);margin-top:3px}
.tbtn .meta .lateTxt{color:var(--crit);font-weight:700}
.pri{font-size:11px;font-weight:700;border-radius:999px;padding:1px 8px;white-space:nowrap;border:1px solid var(--line);color:var(--muted)}
.pri.Alta{color:var(--warn);border-color:var(--warn)}
.pri.Urgente{background:var(--crit);border-color:var(--crit);color:#fff}
.grp h3{margin:6px 0 8px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);display:flex;gap:8px;align-items:center}
.grp h3 .n{font-family:var(--mono);font-weight:500}
.grp.late h3{color:var(--crit)}
.mytasks{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;align-items:center;width:100%;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:10px 14px;cursor:pointer;font-weight:600}
.mytasks:hover{border-color:var(--muted)}
.mytasks .late{color:var(--crit)}
.comments{display:flex;flex-direction:column;gap:8px}
.cmt{background:var(--surface-2);border-radius:6px;padding:8px 10px;font-size:13px}
.cmt small{display:block;color:var(--muted);font-size:11.5px;margin-bottom:2px}
.ph{max-width:680px}
.pick{display:flex;flex-wrap:wrap;gap:6px}
.field label.pchip,.pchip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-size:12.5px;cursor:pointer;text-transform:none;letter-spacing:0;font-weight:500;color:var(--ink);background:var(--surface)}
.pchip:has(input:checked){background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:700}
.pchip input{margin:0}
.bellwrap{padding:0 8px}
.bell{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:7px 10px;cursor:pointer;font-weight:600}
.bell .cnt{background:var(--crit);color:#fff;border-radius:999px;padding:0 7px;font-size:11.5px;font-weight:700}
.bell .cnt.zero{background:var(--surface-2);color:var(--muted)}
.ntf{display:block;width:100%;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:9px 10px;cursor:pointer}
.ntf.unread{border-left:4px solid var(--accent);background:var(--accent-soft)}
.ntf b{display:block;font-size:13.5px;font-weight:600}
.ntf .meta{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:11.5px;color:var(--muted);margin-top:3px}
.qa{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:10px 12px}
.qa b{font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-right:4px}
.pmlines{display:flex;flex-direction:column;gap:6px}
.pmline{display:grid;grid-template-columns:minmax(0,1fr) 80px auto;gap:6px}
.lines-cell div{white-space:nowrap}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media (max-width:1100px){.grid3{grid-template-columns:minmax(0,1fr)}}
table.compact{min-width:560px}
.matrix td,.matrix th{text-align:right;font-variant-numeric:tabular-nums}
.matrix td:first-child,.matrix th:first-child{text-align:left}
.matrix td.z{color:var(--muted)}
.matrix tbody tr{cursor:default}
.matrix tbody tr:hover td{background:none}
.matrix button.cnt{border:0;background:none;font:inherit;font-weight:700;color:var(--accent);cursor:pointer;padding:0;font-variant-numeric:tabular-nums}
.matrix tfoot td{font-weight:700;border-top:2px solid var(--line)}
.code{font-family:var(--mono);font-size:12.5px;white-space:nowrap}
.codes{display:flex;flex-wrap:wrap;gap:4px}
.codes span{font-family:var(--mono);font-size:11.5px;background:var(--surface-2);border-radius:4px;padding:1px 6px;white-space:nowrap}
.codes button{font-family:var(--mono);font-size:11.5px;background:var(--surface-2);border:1px solid var(--line);border-radius:4px;padding:1px 6px;cursor:pointer}
.codes button:hover{border-color:var(--crit);color:var(--crit)}
.lines{display:flex;flex-direction:column;gap:8px}
.line{display:grid;grid-template-columns:minmax(0,1fr) 90px auto;gap:8px;align-items:end}
.line .rng{grid-column:1 / -1;font-family:var(--mono);font-size:11.5px;color:var(--muted);margin-top:-4px}
.fis{font-size:11px;font-weight:700;border-radius:999px;padding:1px 8px;white-space:nowrap;background:var(--surface-2);color:var(--muted)}
.fis.Danificado{background:var(--warn-soft);color:var(--warn)}
.fis.Perdido{background:var(--crit-soft);color:var(--crit)}
.fis.Novo{background:var(--good-soft);color:var(--good)}
.prop{font-size:11px;font-weight:700;border-radius:999px;padding:1px 8px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.prop.Alugado{border-color:var(--l-eu);color:var(--l-eu)}
.recs{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;display:flex;flex-direction:column;gap:8px;min-width:0}
.card h3{margin:0;font-size:15px;display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.card .sub{color:var(--muted);font-size:12.5px}
.card ul{margin:0;padding-left:16px;font-size:13px;display:flex;flex-direction:column;gap:2px}
.scan{display:flex;gap:8px}
.scan input{flex:1;min-width:0;font-family:var(--mono)}
.sel-sum{font-size:12.5px;color:var(--muted)}
.kpis.k5{grid-template-columns:repeat(5,minmax(0,1fr))}
.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(150px,1fr);gap:12px;overflow-x:auto;padding-bottom:4px}
.col{background:var(--surface-2);border-radius:var(--r);padding:10px;display:flex;flex-direction:column;gap:8px;min-width:0}
.col h3{margin:0 0 2px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);display:flex;justify-content:space-between}
.tk{display:block;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--c,var(--line));border-radius:6px;padding:9px 10px;cursor:pointer}
.tk:hover{border-color:var(--muted);border-left-color:var(--c,var(--muted))}
.tk strong{display:block;font-size:13.5px;font-weight:600}
.tk .meta{display:flex;flex-wrap:wrap;gap:4px 8px;font-size:11.5px;color:var(--muted);margin-top:4px}
.sev{font-size:11px;font-weight:700;border-radius:999px;padding:1px 8px;white-space:nowrap;background:var(--surface-2);color:var(--muted)}
.sev.Média{background:var(--warn-soft);color:var(--warn)}
.sev.Alta{background:var(--crit-soft);color:var(--crit)}
.sev.Crítica{background:var(--crit);color:#fff}
.steps{display:flex;flex-wrap:wrap;gap:4px;font-size:11.5px}
.steps span{padding:2px 8px;border-radius:999px;background:var(--surface-2);color:var(--muted)}
.steps span.on{background:var(--accent-soft);color:var(--accent);font-weight:700}
.steps span.done{background:var(--good-soft);color:var(--good)}
.photos{display:flex;flex-wrap:wrap;gap:8px}
.photos img,.photos .ph0{width:84px;height:84px;object-fit:cover;border-radius:6px;border:1px solid var(--line)}
.photos .ph0{display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--muted);background:var(--surface-2);text-align:center;padding:4px}
.split{display:grid;grid-template-columns:280px minmax(0,1fr);gap:16px;align-items:start}
.slist{display:flex;flex-direction:column;gap:8px}
.sitem{display:block;width:100%;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:10px 12px;cursor:pointer}
.sitem[aria-current="true"]{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}
.sitem b{display:block;font-size:13.5px}
.sitem span{font-size:12px;color:var(--muted)}
.need{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;align-items:center;font-size:13px;padding:6px 0;border-bottom:1px solid var(--line)}
.need:last-child{border-bottom:0}
.need .ok{color:var(--good);font-weight:700}
.need .bad{color:var(--crit);font-weight:700}
.check{display:flex;flex-direction:column;gap:6px}
.check label{display:flex;gap:8px;align-items:flex-start;font-size:13.5px;cursor:pointer}
.check input{margin-top:3px}
.scenes{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px;font-size:13.5px}
.alloc{border:1px solid var(--line);border-radius:6px;padding:10px;display:flex;flex-direction:column;gap:6px}
.alloc b{font-size:13px}
.progress{height:8px;border-radius:4px;background:var(--surface-2);overflow:hidden}
.progress i{display:block;height:100%;background:var(--good)}
.dlv{display:flex;flex-direction:column;gap:4px;max-height:320px;overflow:auto;border:1px solid var(--line);border-radius:6px;padding:8px}
.dlv label{display:flex;gap:8px;align-items:center;font-family:var(--mono);font-size:12.5px;cursor:pointer;text-transform:none;letter-spacing:0;font-weight:500;color:var(--ink)}
@media (max-width:900px){.kpis.k5{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:minmax(0,1fr)}.board{grid-auto-columns:minmax(240px,82vw)}}
.ph ul{margin:8px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:4px}
@media (max-width:900px){
  .bellwrap{padding:0;flex:none}
  .bell{width:auto}
  .app{grid-template-columns:minmax(0,1fr)}
  .rail{position:sticky;top:env(safe-area-inset-top,0px);height:auto;z-index:10;flex-direction:row;align-items:center;gap:10px;padding:10px 16px;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}
  .brand{flex:none;padding:0}
  .brand .logo,.brand .dept{display:none}
  .brand .emb{display:block;height:40px;width:auto}
  .meBox div{display:none}
  .rail{padding-top:14px}
  .navgroup{flex-direction:row;flex:none}
  .navgroup h6{display:none}
  .nav{width:auto}
  .nav .tag{display:none}
  .nav .tag.badge{display:inline-block}
  .who{margin:0;border:0;padding:0;flex:none;flex-direction:row;align-items:center}
  .who label{display:none}
  .main{padding-inline:16px}
  .week{grid-template-columns:minmax(0,1fr)}
  .day{min-height:0}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid2,.soon{grid-template-columns:minmax(0,1fr)}
  .grow{grid-template-columns:150px auto}
  .phase{grid-template-columns:100px minmax(0,1fr) 40px}
}
@media (max-width:520px){.f2{grid-template-columns:minmax(0,1fr)}.mc{min-height:64px}.mc .m{display:none}}

.av{--s:22px;width:var(--s);height:var(--s);border-radius:50%;overflow:hidden;flex:none;display:inline-grid;place-items:center;background:var(--avc,#667085);color:#fff;font-size:calc(var(--s) * .4);font-weight:700;line-height:1;box-shadow:0 0 0 2px var(--surface);vertical-align:middle}
.av img{width:100%;height:100%;object-fit:cover;display:block}
.avs{display:inline-flex;align-items:center;gap:6px;vertical-align:middle}
.avs .stk{display:inline-flex}
.avs .stk .av+.av{margin-left:-7px}
.meBox{display:flex;align-items:center;gap:10px}
.meBox b{display:block;font-size:13.5px}
.meBox span.sub{font-size:11.5px}
.gate{position:fixed;inset:0;z-index:100;background:var(--bg);overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px}
.gate::before{content:"";position:fixed;left:0;right:0;top:0;height:6px;background:var(--wg)}
.gbox{width:min(760px,100%);display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center}
.gbox .logo{background:#fff;border-radius:14px;padding:18px 22px;border:1px solid var(--line)}
.gbox .logo img{width:220px;height:auto;display:block}
.gbox h1{margin:0;font-family:var(--display);font-weight:700;font-size:34px;line-height:1.05}
.gbox p{margin:0;color:var(--muted)}
.ggrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;width:100%;margin-top:4px}
.gp{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 8px;border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer}
.gp:hover{border-color:var(--accent)}
.gp:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.gp b{font-size:14px}
.gp span{font-size:12px;color:var(--muted)}
.ghead{width:100%;text-align:left;font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-top:6px}

/* ---- cor WG2027 ---- */
:root{--b1:#0082C5;--b2:#2AB574;--b3:#FDC616;--b4:#F69320;--b5:#E93F39;--b6:#653090}
.app{position:relative;z-index:1}
#bgLogo{position:fixed;top:50%;left:calc(232px + (100vw - 232px) / 2);width:min(46vw,560px);aspect-ratio:233/315;pointer-events:none;z-index:0;
  transform:translate(-50%,-50%) translate3d(var(--mx,0px),var(--my,0px),0) rotate(var(--rot,0deg)) scale(var(--sc,1));transition:transform .5s cubic-bezier(.2,.7,.2,1);will-change:transform}
#bgLogo i{position:absolute;inset:0;background:url(../img/emblema-fundo.png) no-repeat center/contain;opacity:.085;filter:blur(1.2px) saturate(1.35);animation:bgFloat 16s ease-in-out infinite}
@keyframes bgFloat{0%,100%{transform:translateY(0) rotate(0deg) scale(1)}25%{transform:translateY(-14px) rotate(1.5deg) scale(1.015)}50%{transform:translateY(-4px) rotate(-1deg) scale(1.03)}75%{transform:translateY(-16px) rotate(-2deg) scale(1.01)}}
#bgLogo.pulse i{animation:bgFloat 16s ease-in-out infinite,bgPulse .9s ease-out}
@keyframes bgPulse{0%{opacity:.04}40%{opacity:.16}100%{opacity:.085}}
@media (max-width:900px){#bgLogo{left:50%;width:min(86vw,460px)}}
@media (prefers-reduced-motion:reduce){#bgLogo{transform:translate(-50%,-50%)!important}#bgLogo i{animation:none}}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) #bgLogo i{opacity:.12}}
.head h1::after{content:"";display:block;width:72px;height:5px;border-radius:3px;background:var(--wg);margin-top:8px}
.head p{margin-top:8px}
.nav:nth-child(6n+1){--nc:var(--b1)} .nav:nth-child(6n+2){--nc:var(--b2)} .nav:nth-child(6n+3){--nc:var(--b3)} .nav:nth-child(6n+4){--nc:var(--b4)} .nav:nth-child(6n+5){--nc:var(--b5)} .nav:nth-child(6n+6){--nc:var(--b6)}
.nav>span:first-child{display:inline-flex;align-items:center;gap:9px}
.nav>span:first-child::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--nc);flex:none}
.nav:hover{background:color-mix(in srgb,var(--nc) 10%,var(--surface))}
.nav[aria-current="page"]{background:color-mix(in srgb,var(--nc) 16%,var(--surface));color:var(--ink);box-shadow:inset 4px 0 0 var(--nc)}
.kpi,.panel,.card{--kc:var(--b1)}
.kpi:nth-child(6n+2),.panel:nth-child(6n+2),.card:nth-child(6n+2){--kc:var(--b2)}
.kpi:nth-child(6n+3),.panel:nth-child(6n+3),.card:nth-child(6n+3){--kc:var(--b4)}
.kpi:nth-child(6n+4),.panel:nth-child(6n+4),.card:nth-child(6n+4){--kc:var(--b6)}
.kpi:nth-child(6n+5),.panel:nth-child(6n+5),.card:nth-child(6n+5){--kc:var(--b5)}
.kpi:nth-child(6n+6),.panel:nth-child(6n+6),.card:nth-child(6n+6){--kc:var(--b3)}
.kpi{border-top:4px solid var(--kc);background:linear-gradient(180deg,color-mix(in srgb,var(--kc) 11%,var(--surface)),var(--surface) 75%)}
.kpi b{font-size:32px;font-weight:700;line-height:1.05}
.panel{border-top:3px solid var(--kc)}
.panel h2{color:var(--ink)}
.card{border-top:3px solid var(--kc)}
.col{border-top:4px solid var(--cc,var(--b1));background:color-mix(in srgb,var(--cc,var(--b1)) 7%,var(--surface-2))}
.col:nth-child(6n+2){--cc:var(--b4)} .col:nth-child(6n+3){--cc:var(--b3)} .col:nth-child(6n+4){--cc:var(--b2)} .col:nth-child(6n+5){--cc:var(--b5)} .col:nth-child(6n+6){--cc:var(--b6)}
.col h3{color:var(--ink)}
.qa{background:var(--wg) top left/100% 4px no-repeat,var(--surface);padding-top:14px}
.dhd{background:var(--wg) top left/100% 4px no-repeat,var(--surface);padding-top:20px}
th{background:color-mix(in srgb,var(--b1) 9%,var(--surface))}
.btn.primary{background:linear-gradient(135deg,#0082C5,#005E9E);border-color:#006DB0}
.btn.primary:hover{filter:brightness(1.08)}
.sim{background:color-mix(in srgb,var(--b3) 12%,var(--surface));border-color:color-mix(in srgb,var(--b3) 55%,var(--line))}
.meBox .swap{padding:4px 9px;font-size:12px}
.meBox>div{flex:1;min-width:0}
.gp:nth-child(6n+1){--gc:var(--b1)} .gp:nth-child(6n+2){--gc:var(--b2)} .gp:nth-child(6n+3){--gc:var(--b4)} .gp:nth-child(6n+4){--gc:var(--b6)} .gp:nth-child(6n+5){--gc:var(--b5)} .gp:nth-child(6n+6){--gc:var(--b3)}
.gp{border-top:4px solid var(--gc)}
.gp .av{box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--gc)}
.gp:hover{border-color:var(--gc);background:color-mix(in srgb,var(--gc) 8%,var(--surface))}
.gate::after{content:"";position:fixed;left:50%;top:52%;translate:-50% -50%;width:min(560px,80vw);animation:bgFloat 16s ease-in-out infinite;aspect-ratio:233/315;background:url(../img/emblema-fundo.png) no-repeat center/contain;opacity:.11;filter:blur(1.5px) saturate(1.3);pointer-events:none}
.gbox{position:relative;z-index:1}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---- app real ---- */
.login{width:min(380px,100%);display:flex;flex-direction:column;gap:12px;text-align:left;background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--b1);border-radius:12px;padding:18px}
.login input{width:100%}
.login .btn{width:100%;padding:10px}
input[type=email],input[type=password],input[type=number]{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:7px 9px;max-width:100%}
.sync{margin:0 8px;font-size:12px;font-weight:600;border-radius:6px;padding:5px 9px;background:var(--surface-2);color:var(--muted)}
.sync.offline,.sync.error{background:var(--crit-soft);color:var(--crit)}
.sync.saving{background:var(--accent-soft);color:var(--accent)}
button.doc{text-align:left;cursor:pointer;font:inherit;color:inherit}
button.doc:hover{border-color:var(--muted)}
.phbtn{border:0;padding:0;background:none;cursor:pointer;border-radius:6px}
.photos img{background:var(--surface-2)}
@media (max-width:900px){.sync{flex:none;margin:0}}
