*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;background:radial-gradient(circle at 15% 10%,color-mix(in srgb,var(--brand-sidebar,#0B2741) 72%,#123a61) 0,var(--brand-background,#07111D) 42%,#03070d 100%);color:#eef7ff;min-height:100vh}a{text-decoration:none;color:inherit}.layout{display:flex;min-height:100vh}.sidebar{width:250px;background:linear-gradient(180deg,var(--brand-sidebar,#0B2741),#06121f);border-right:1px solid #2c83bb66;padding:22px 15px;position:fixed;inset:0 auto 0 0;z-index:5}.brand{font-weight:900;font-size:20px;letter-spacing:.5px;padding:10px 12px 25px}.brand span{color:inherit}.nav a{display:flex;gap:12px;align-items:center;padding:13px 14px;margin:6px 0;border-radius:12px;color:#b9d4e8}.nav a:hover,.nav a.active{background:linear-gradient(135deg,var(--brand-primary,#0C73AA),var(--brand-sidebar,#12324F));color:#fff;box-shadow:0 0 18px #1ba6df22}.main{margin-left:250px;width:calc(100% - 250px);padding:26px}.top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.top h1{margin:0;font-size:27px}.muted{color:#91adc1}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.card{background:linear-gradient(145deg,#102d46dd,#071522f2);border:1px solid #4ab9ef33;border-radius:17px;padding:19px;box-shadow:0 10px 35px #0007}.stat .icon{font-size:25px}.stat .label{color:#9bb6c9;font-size:13px;margin-top:8px}.stat .value{font-size:29px;font-weight:900;margin-top:4px}.section{margin-top:18px}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.btn{border:0;border-radius:11px;padding:11px 15px;background:linear-gradient(135deg,var(--brand-primary,#0C73AA),var(--brand-accent,#42C9FF));color:#fff;font-weight:800;cursor:pointer;display:inline-block}.btn.secondary{background:#15334d}.btn.danger{background:linear-gradient(135deg,#8d1d2a,#d24c5c)}.btn.success{background:linear-gradient(135deg,#096a64,#16bfae)}input,select,textarea{width:100%;background:#081725;border:1px solid #2c6c91;color:#eaf7ff;border-radius:10px;padding:11px;outline:none}label{display:block;font-size:13px;color:#9eb8c9;margin:0 0 6px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.full{grid-column:1/-1}table{width:100%;border-collapse:collapse}th,td{padding:13px 10px;border-bottom:1px solid #ffffff12;text-align:left}th{color:#86b7d3;font-size:12px;text-transform:uppercase}td{font-size:14px}.badge{padding:6px 9px;border-radius:20px;font-size:11px;font-weight:900}.badge.normal{background:#0e604c}.badge.warning{background:#70560d}.badge.soon,.badge.today{background:#9a4d0d}.badge.expired{background:#8c1f2a}.blink{animation:blink 1s infinite}@keyframes blink{50%{box-shadow:0 0 0 5px #ff5a5a22,0 0 20px #ff5a5a88}}.alert{border:1px solid #ff8c4a66;background:#3c1b0c99}.login{display:grid;place-items:center;min-height:100vh;padding:20px}.login-box{width:min(430px,100%);padding:30px}.logo{font-size:32px;font-weight:1000;text-align:center;margin-bottom:7px}.logo span{color:#65d7ff}.login-box .btn{width:100%;margin-top:8px}.error{color:#ff9a9a;background:#501923;padding:10px;border-radius:9px;margin-bottom:12px}.mobile-menu{display:none}.actions{display:flex;gap:7px;flex-wrap:wrap}.search{display:flex;gap:10px;margin-bottom:15px}.search input{flex:1}@media(max-width:900px){.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:translateX(0)}.main{margin-left:0;width:100%;padding:18px}.mobile-menu{display:inline-flex}.grid{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}table{min-width:850px}.table-wrap{overflow:auto}.top h1{font-size:21px}}@media(max-width:520px){.grid{grid-template-columns:1fr}.card{padding:15px}}


/* Melhorias de fluidez e acessibilidade */
.btn, input, select, textarea, .nav a, .card, tbody tr {
    transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.btn:hover { filter: brightness(1.08); }
.btn:active { transform: translateY(1px); }
input:focus, select:focus, textarea:focus {
    border-color: #42c9ff;
    box-shadow: 0 0 0 3px #42c9ff22;
}
tbody tr:hover { background: #ffffff08; }
button:focus-visible, a:focus-visible {
    outline: 2px solid #73d7ff;
    outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}


/* Personalização de marca */
.brand{display:flex;align-items:center;gap:10px;line-height:1.25;overflow-wrap:anywhere}
.brand-title{color:#f2f9ff;font-size:18px}
.brand-logo{width:auto;max-width:52px;height:auto;max-height:42px;object-fit:contain}
.login-brand{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:8px}
.login-logo{max-width:180px;max-height:100px;width:auto;height:auto;object-fit:contain}
.login-brand .logo{font-size:27px;overflow-wrap:anywhere}
.settings-intro{display:flex;justify-content:space-between;align-items:center;margin:4px 0 18px}
.settings-intro h2{margin:0 0 7px}
.settings-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,1fr);gap:18px;align-items:start}
.settings-card h2,.preview-card h2{margin-top:0}
.settings-card .form-grid{margin-top:18px}
.settings-card input[type=file]{padding:10px}
.settings-card small{display:block;margin-top:7px;font-size:12px;line-height:1.5}
.color-input{display:flex;align-items:center;gap:10px;background:#081725;border:1px solid #2c6c91;border-radius:10px;padding:5px 10px}
.color-input input[type=color]{width:42px;height:34px;padding:2px;border:0;background:transparent;cursor:pointer}
.color-input span{font-size:13px;color:#d6e9f5;font-family:monospace}
.current-logo{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:12px;padding:12px;border:1px solid #ffffff18;border-radius:12px}
.current-logo img{max-width:160px;max-height:70px;object-fit:contain}
.check-label{display:flex;align-items:center;gap:7px;margin:0}
.check-label input{width:auto}
.settings-actions{margin-top:20px}
.reset-form{margin-top:10px}
.notice{padding:13px 15px;border-radius:12px;margin-bottom:16px}
.success-notice{background:#0c503b;border:1px solid #2ba77b}
.error-notice{background:#501923;border:1px solid #a93c4c;color:#ffdfe3}
.brand-preview{display:flex;min-height:235px;border:1px solid #ffffff20;border-radius:13px;overflow:hidden;margin-top:15px;background:#07111d}
.preview-sidebar{width:42%;padding:13px 9px;background:#0b2741;flex-shrink:0}
.preview-brand{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:900;overflow-wrap:anywhere;margin-bottom:17px}
.preview-brand img{max-width:35px;max-height:28px;object-fit:contain}
.preview-nav{padding:8px 7px;border-radius:7px;font-size:10px;color:#c8dce9;margin-top:5px}
.preview-nav.active{background:#0c73aa}
.preview-main{flex:1;padding:15px 10px;background:#07111d;min-width:0}
.preview-heading{display:flex;flex-direction:column;gap:6px;margin-bottom:18px;overflow-wrap:anywhere}
.preview-heading strong{font-size:12px}
.preview-heading small{font-size:9px;color:#91adc1;line-height:1.4}
.preview-stat{height:35px;border-radius:7px;background:#102d46;border:1px solid #ffffff15;margin-bottom:8px}
.preview-stat.short{width:70%}
.preview-main button{font-size:10px;padding:8px 10px;border:0;border-radius:6px;color:#fff;background:#0c73aa;margin-top:8px}
.preview-hint{font-size:12px;color:#91adc1;line-height:1.5;margin-top:12px}
@media(max-width:1050px){.settings-layout{grid-template-columns:1fr}}
@media(max-width:520px){.settings-intro h2{font-size:20px}.preview-sidebar{width:40%}.preview-brand{font-size:9px}.login-brand .logo{font-size:23px}}

/* Desempenho: fundos sólidos reduzem o custo de pintura em telas e máquinas mais simples. */
body{background:var(--brand-background,#07111D);}
.sidebar{background:var(--brand-sidebar,#0B2741);box-shadow:none;}
.card{background:#102236;border-color:#263c50;box-shadow:none;}
.btn{background:var(--brand-primary,#0C73AA);box-shadow:none;filter:none;}
.nav a:hover,.nav a.active{background:var(--brand-primary,#0C73AA);box-shadow:none;}
.btn,.input,select,textarea,.nav a,.card,tbody tr{transition:background-color .12s ease,border-color .12s ease;}
.theme-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:8px;}
.theme-option{display:flex;flex-direction:column;gap:9px;margin:0;padding:11px;border:1px solid #2c4357;border-radius:10px;background:#0b1825;cursor:pointer;transition:border-color .12s ease,background-color .12s ease;}
.theme-option input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;}
.theme-option.selected{border-color:#42c9ff;background:#10283a;}
.theme-option:focus-within{outline:2px solid #73d7ff;outline-offset:2px;}
.theme-swatches{display:flex;height:25px;overflow:hidden;border-radius:6px;}
.theme-swatches i{display:block;flex:1;}
.theme-name{font-size:12px;font-weight:800;color:#eaf7ff;}
@media(max-width:520px){.theme-options{grid-template-columns:repeat(2,minmax(0,1fr));}}


/* Tema dinâmico: todas as áreas principais respondem à paleta salva. */
:root {
  --brand-primary: #0C73AA;
  --brand-accent: #42C9FF;
  --brand-sidebar: #0B2741;
  --brand-background: #07111D;
  --brand-panel: color-mix(in srgb, var(--brand-sidebar) 48%, #08111c);
  --brand-panel-border: color-mix(in srgb, var(--brand-accent) 22%, #26384a);
  --brand-field: color-mix(in srgb, var(--brand-background) 76%, #172638);
}
body { background: var(--brand-background, #07111D); }
.sidebar { background: var(--brand-sidebar, #0B2741); border-right-color: var(--brand-panel-border); }
.card { background: var(--brand-panel); border-color: var(--brand-panel-border); }
.btn { background: var(--brand-primary, #0C73AA); border: 1px solid color-mix(in srgb, var(--brand-accent) 30%, transparent); box-shadow: none; }
.btn:hover { background: var(--brand-accent, #42C9FF); color: #06111a; filter: none; }
.btn.secondary { background: color-mix(in srgb, var(--brand-sidebar) 78%, #26384a); border-color: var(--brand-panel-border); color: #eef7ff; }
.nav a:hover, .nav a.active { background: var(--brand-primary, #0C73AA); box-shadow: none; }
input, select, textarea { background: var(--brand-field); border-color: var(--brand-panel-border); }
input:focus, select:focus, textarea:focus { border-color: var(--brand-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand-accent) 18%, transparent); }
.muted { color: color-mix(in srgb, var(--brand-accent) 32%, #b6c5d2); }
th { color: var(--brand-accent); }

/* Área de ações limpa: botões alinhados, com espaçamento e sem emojis gigantes. */
.settings-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:22px; }
.settings-actions .btn, .reset-form .btn, .settings-card > form .btn { min-height:44px; padding:11px 16px; font-size:13px; letter-spacing:.15px; border-radius:9px; }
.reset-form { margin-top:10px; }
.settings-card .reset-form .btn { background:transparent; border:1px solid #526579; color:#c6d5e2; }
.settings-card .reset-form .btn:hover { background:#26384a; color:#fff; }
.theme-options { grid-template-columns: repeat(3, minmax(0, 1fr)); gap:12px; }
.theme-option { min-height:88px; justify-content:center; border:1px solid #34495c; background:#0b1723; padding:12px; }
.theme-option.selected { border:2px solid var(--brand-accent); background:color-mix(in srgb, var(--brand-primary) 18%, #0b1723); padding:11px; }
.theme-option:hover { border-color:var(--brand-accent); }
.theme-swatches { height:22px; }
.theme-name { font-size:13px; }
.preview-card { min-width:0; }
.brand-preview { box-shadow:none; }
.preview-main button { background:var(--brand-primary); cursor:default; }
@media(max-width:520px) {
  .settings-actions { align-items:stretch; }
  .settings-actions .btn { width:100%; }
  .theme-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
