/* MallOne · identidade do parque (tenant Retail Mind Group) · Desenvolvido pela Motometria */
:root { --navy:#0f2440; --navy2:#162f52; --gold:#d4c291; --gold-d:#a8905a; --gold-t:#8b7540; --ink:#1b2733; --mute:#5b6676; --line:#e4dfd3; --ivory:#faf8f3; --sand:#f3efe6; --green:#2a6b4a; --amber:#b2741a; --red:#a00002; --teal:#1f6f78; --r:8px; }
* { box-sizing:border-box; }
html, body { margin:0; padding:0; }
body { font-family:'Inter', system-ui, sans-serif; color:var(--ink); background:var(--ivory); font-size:15px; line-height:1.5; min-height:100vh; display:flex; flex-direction:column; }
a { color:var(--navy); }
h1, h2, h3 { font-family:'Caladea', Georgia, serif; color:var(--navy); margin:0 0 .4rem; line-height:1.15; }
h1 { font-size:1.9rem; } h2 { font-size:1.25rem; margin-bottom:.8rem; } h3 { font-size:1.05rem; margin-top:1rem; }
h1 .tag { vertical-align:middle; font-family:'Inter', sans-serif; }
p { margin:0 0 .6rem; }
.mute { color:var(--mute); } .small { font-size:.85rem; } .mt { margin-top:1.2rem; } .nowrap { white-space:nowrap; }
.caption { font-size:.8rem; color:var(--mute); font-style:italic; margin-top:.5rem; }
.eyebrow { font-size:.72rem; font-weight:600; letter-spacing:2px; text-transform:uppercase; color:var(--gold-t); margin:0 0 .3rem; }
code { font-size:.85em; background:var(--sand); padding:1px 5px; border-radius:4px; }
/* topo */
.imp { background:var(--gold); color:var(--navy); padding:.45rem 1.25rem; display:flex; justify-content:space-between; align-items:center; gap:1rem; font-size:.9rem; }
.topo { background:#fff; border-bottom:1px solid var(--line); display:flex; align-items:center; gap:1rem; padding:.6rem 1.25rem; position:sticky; top:0; z-index:20; flex-wrap:wrap; }
.marca { display:flex; align-items:center; gap:.7rem; text-decoration:none; color:var(--navy); }
.marca img { height:34px; width:auto; } .marca .divisor { width:1px; height:28px; background:var(--line); }
.marca .produto { font-family:'Caladea', serif; font-weight:700; font-size:1.2rem; } .marca .parque { font-size:.78rem; color:var(--mute); }
@media (max-width: 1180px) { .marca .parque { display:none; } }
.menu-btn { display:none; margin-left:auto; background:none; border:1px solid var(--line); border-radius:6px; font-size:1.2rem; padding:.2rem .6rem; cursor:pointer; }
.nav { display:flex; align-items:center; gap:.2rem; flex:1; flex-wrap:wrap; }
.nav a { text-decoration:none; color:var(--ink); padding:.35rem .5rem; border-radius:6px; font-size:.84rem; font-weight:500; white-space:nowrap; }
.nav a:hover { background:var(--sand); } .nav a.on { background:var(--navy); color:#fff; }
.nav .espaco { flex:1; } .nav .lang { color:var(--gold-t); font-weight:700; letter-spacing:1px; }
.nav .mia-link img { height:16px; vertical-align:-3px; margin-right:2px; }
.pill { background:var(--red); color:#fff; border-radius:10px; padding:0 6px; font-size:.75rem; }
.inline { display:inline; }
/* layout */
.conteudo { flex:1; width:100%; max-width:1280px; margin:0 auto; padding:1.25rem; }
.titulo-linha { display:flex; justify-content:space-between; align-items:flex-end; gap:1rem; flex-wrap:wrap; margin-bottom:1.2rem; }
.acoes { display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; }
.card { background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:1.1rem 1.25rem; margin-bottom:1.1rem; }
.grid2 { display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; align-items:start; }
.grid2 > .card { margin-bottom:0; } .grid2 > div > .card { margin-bottom:1.1rem; }
.flash { padding:.7rem 1rem; border-radius:6px; margin-bottom:1rem; border:1px solid; }
.flash.ok { background:#eef7f1; border-color:#bfe0cb; color:var(--green); } .flash.erro { background:#fbeeee; border-color:#efc3c3; color:var(--red); }
/* kpis */
.kpis { display:grid; grid-template-columns:repeat(6, 1fr); gap:.8rem; margin-bottom:1.2rem; }
.kpi { background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:.9rem 1rem; text-decoration:none; color:var(--ink); border-top:3px solid var(--gold); }
.kpi b { display:block; font-family:'Caladea', serif; font-size:2rem; color:var(--navy); line-height:1; } .kpi span { font-size:.78rem; color:var(--mute); }
.kpi.destaque { border-top-color:var(--navy); background:var(--navy); color:#fff; } .kpi.destaque b { color:#fff; } .kpi.destaque span { color:#d8dfe9; }
/* blocos lojista */
.blocos6 { display:grid; grid-template-columns:repeat(3, 1fr); gap:1rem; margin-bottom:1.2rem; }
.bloco { background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:1.1rem 1.25rem; text-decoration:none; color:var(--ink); position:relative; min-height:140px; border-left:4px solid var(--gold); }
.bloco:hover { border-color:var(--navy); } .bloco.alerta { border-left-color:var(--red); }
.bloco .n { position:absolute; right:1rem; top:.8rem; font-family:'Caladea', serif; color:var(--gold-t); } .bloco h3 { margin:0 0 .5rem; }
.bloco .grande { font-family:'Caladea', serif; font-size:1.8rem; color:var(--navy); }
/* tabelas */
.tab { width:100%; border-collapse:collapse; font-size:.9rem; }
.tab th { text-align:left; font-size:.72rem; letter-spacing:1px; text-transform:uppercase; color:var(--gold-t); padding:.5rem .6rem; border-bottom:1px solid var(--gold); }
.tab td { padding:.55rem .6rem; border-bottom:1px solid var(--line); vertical-align:top; }
.tab tr:hover td { background:var(--ivory); } .tab.small { font-size:.82rem; } .tab tr.off td { opacity:.55; }
.tab-ent td.parecer { max-width:320px; }
.barra { display:inline-block; width:80px; height:7px; background:var(--sand); border-radius:4px; vertical-align:middle; margin-right:.4rem; overflow:hidden; } .barra span { display:block; height:100%; background:var(--green); }
.tag { display:inline-block; font-size:.72rem; font-weight:600; padding:.1rem .5rem; border-radius:10px; background:var(--sand); color:var(--ink); white-space:nowrap; }
.tag.green { background:#e3f1e8; color:var(--green); } .tag.amber { background:#fbf0dc; color:var(--amber); } .tag.red { background:#f8e3e3; color:var(--red); } .tag.teal { background:#e0f0f1; color:var(--teal); } .tag.grey { background:var(--sand); color:var(--mute); } .tag.navy { background:var(--navy); color:#fff; }
.lista { list-style:none; margin:0; padding:0; } .lista li { padding:.45rem 0; border-bottom:1px solid var(--line); font-size:.92rem; } .lista li:last-child { border-bottom:none; }
.lista .data { color:var(--mute); font-size:.82rem; margin-right:.4rem; } .lista.small li { font-size:.82rem; }
.linha-disc { display:flex; justify-content:space-between; padding:.45rem 0; border-bottom:1px solid var(--line); font-size:.92rem; }
/* botões e formulários */
.btn { display:inline-block; border:1px solid var(--navy); background:#fff; color:var(--navy); padding:.5rem .95rem; border-radius:6px; font-size:.88rem; font-weight:600; cursor:pointer; text-decoration:none; line-height:1.2; font-family:inherit; }
.btn:hover { background:var(--ivory); } .btn-navy { background:var(--navy); color:#fff; } .btn-navy:hover { background:var(--navy2); }
.btn-gold { background:var(--gold); border-color:var(--gold); color:var(--navy); } .btn-gold:hover { background:#c9b47a; }
.btn-ghost { border-color:var(--line); color:var(--ink); } .btn-sm { padding:.3rem .65rem; font-size:.8rem; } .btn-block { width:100%; }
.btn .ico { height:16px; vertical-align:-3px; } .ico-s { height:14px; vertical-align:-2px; } .ico-h { height:30px; vertical-align:-5px; }
label { display:block; font-size:.82rem; font-weight:600; color:var(--mute); margin-bottom:.7rem; }
input, select, textarea { display:block; width:100%; margin-top:.25rem; padding:.5rem .6rem; border:1px solid var(--line); border-radius:6px; font:inherit; font-size:.92rem; color:var(--ink); background:#fff; }
input:disabled, select:disabled, textarea:disabled { background:var(--ivory); color:var(--mute); }
input:focus, select:focus, textarea:focus { outline:2px solid var(--gold); border-color:var(--gold); }
.acoes select { margin:0; width:auto; display:inline-block; } .check { display:inline-flex; align-items:center; gap:.4rem; margin:0; } .check input { width:auto; margin:0; display:inline; }
.grid-form { display:grid; grid-template-columns:repeat(2, 1fr); gap:0 1rem; }
.form-mini { min-width:280px; }
.pw { position:relative; display:block; } .pw input { padding-right:5.2rem; }
.pw-toggle { position:absolute; right:.4rem; top:50%; transform:translateY(-50%); margin-top:.12rem; background:var(--sand); border:1px solid var(--line); border-radius:4px; font-size:.75rem; padding:.2rem .5rem; cursor:pointer; color:var(--navy); font-weight:600; }
.dropdown { position:relative; } .dropdown summary { list-style:none; } .dropdown summary::-webkit-details-marker { display:none; }
.dropdown .menu, .inline-det .menu { position:absolute; right:0; top:calc(100% + 6px); background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:.9rem 1rem; box-shadow:0 8px 24px rgba(15,36,64,.12); z-index:15; min-width:220px; }
.dropdown.btn-ghost + .menu a, .dropdown .menu a { display:block; padding:.35rem .2rem; text-decoration:none; }
.dropdown:not(details) .menu { display:none; } .dropdown:not(details):hover .menu, .dropdown:not(details):focus-within .menu { display:block; }
.inline-det { position:relative; display:inline-block; } .inline-det summary { list-style:none; } .inline-det summary::-webkit-details-marker { display:none; }
.inline-det .menu { min-width:300px; text-align:left; white-space:normal; }
.mia-nota { margin-top:.4rem; font-size:.8rem; color:var(--navy); background:var(--ivory); border-left:3px solid var(--gold); padding:.35rem .5rem; border-radius:0 4px 4px 0; }
.mia-nota.alerta { border-left-color:var(--red); } .mia-nota img { height:14px; vertical-align:-2px; }
.mia-card { border-color:var(--gold); } .mia-res { background:var(--ivory); border-left:3px solid var(--gold); padding:.7rem .9rem; margin-bottom:.7rem; border-radius:0 6px 6px 0; }
.chave { font-family:monospace; font-size:1.2rem; letter-spacing:1px; background:var(--sand); padding:.6rem; border-radius:6px; }
/* calendário */
.cal-nav { display:flex; justify-content:space-between; align-items:center; margin-bottom:.6rem; } .cal-nav h2 { margin:0; text-transform:capitalize; }
.cal { display:grid; grid-template-columns:repeat(7, 1fr); gap:3px; }
.cal-h { font-size:.7rem; text-transform:uppercase; letter-spacing:1px; color:var(--gold-t); text-align:center; padding:.2rem 0; }
.cal-d { min-height:74px; border:1px solid var(--line); border-radius:5px; padding:.25rem .3rem; font-size:.72rem; background:#fff; overflow:hidden; }
.cal-d.vazio { background:transparent; border-color:transparent; } .cal-d .n { font-weight:600; color:var(--mute); display:block; } .cal-d.hoje { border-color:var(--gold); background:#fffdf6; } .cal-d.hoje .n { color:var(--gold-t); }
.cal-d .ev { display:block; background:var(--sand); border-left:2px solid var(--navy); padding:0 .25rem; margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; border-radius:2px; }
.cal-d .ev.prazo { border-left-color:var(--red); } .cal-d .ev.vistoria { border-left-color:var(--amber); } .cal-d .ev.parque { border-left-color:var(--gold-d); } .cal-d .ev.formacao { border-left-color:var(--teal); } .cal-d .ev.mais { background:none; border:none; color:var(--mute); }
/* login */
body.publico .conteudo { display:flex; align-items:center; justify-content:center; }
.login-wrap { width:100%; display:flex; justify-content:center; padding:2rem 0; }
.login-card { background:#fff; border:1px solid var(--line); border-top:4px solid var(--gold); border-radius:var(--r); padding:2rem 2.2rem; width:100%; max-width:420px; box-shadow:0 10px 30px rgba(15,36,64,.08); }
.login-logo { height:44px; width:auto; margin-bottom:1rem; } .login-card h1 { font-size:2.2rem; margin-bottom:.1rem; } .login-card .sub { color:var(--mute); font-size:.9rem; margin-bottom:1.2rem; }
.login-card .ajuda { font-size:.8rem; color:var(--mute); margin-top:1rem; }
.erro-pagina { max-width:520px; margin:3rem auto; text-align:center; }
/* rodapé */
.rodape { border-top:1px solid var(--line); background:#fff; padding:.9rem 1.25rem; display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; font-size:.78rem; color:var(--mute); }
.rodape .dev { display:flex; align-items:center; gap:.8rem; } .rodape .logo-mtm { height:26px; width:auto; } .rodape .selo { display:flex; align-items:center; gap:.8rem; } .rodape .selo img { height:22px; width:auto; }
.rodape a { color:var(--navy); }
/* telemóvel */
@media (max-width: 900px) {
  .grid2, .cal-grid { grid-template-columns:1fr; } .kpis { grid-template-columns:repeat(3, 1fr); } .blocos6 { grid-template-columns:1fr 1fr; } .grid-form { grid-template-columns:1fr; }
  .menu-btn { display:block; } .nav { display:none; width:100%; flex-direction:column; align-items:stretch; } .nav.aberto { display:flex; } .nav .espaco { display:none; }
  .marca .parque { display:none; } .tab { display:block; overflow-x:auto; } .inline-det .menu, .dropdown .menu { right:auto; left:0; }
}
@media (max-width: 560px) { .kpis { grid-template-columns:1fr 1fr; } .blocos6 { grid-template-columns:1fr; } .conteudo { padding:.9rem; } h1 { font-size:1.5rem; } .cal-d { min-height:52px; } .cal-d .ev { display:none; } .cal-d.tem { background:var(--sand); } .rodape { flex-direction:column; align-items:flex-start; } }
