:root{
  --blue:#1a73e8;
  --blue-dark:#0b57d0;
  --blue-2:#d2e3fc;
  --blue-3:#e8f0fe;
  --green:#34a853;
  --yellow:#fbbc04;
  --red:#ea4335;
  --text:#202124;
  --muted:#5f6368;
  --line:#c7d2e5;
  --bg:#edf4ff;
  --card:#fff;
  --danger:#d93025;
  --ok:#188038;
}
*{box-sizing:border-box}
body{margin:0;background:linear-gradient(135deg,#e8f0fe 0%,#f8fbff 46%,#e6f4ea 100%);color:var(--text);font:14px/1.45 Arial,Helvetica,sans-serif}
.login-bg{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,#d2e3fc 0,#edf4ff 30%,transparent 52%),linear-gradient(135deg,#e8f0fe,#fff 52%,#e6f4ea)}
.login-card{width:min(420px,92vw);background:#fff;border:1px solid #aecbfa;border-top:5px solid var(--blue);border-radius:18px;padding:34px;box-shadow:0 22px 55px rgba(26,115,232,.18)}
.brand{display:inline-block;color:var(--blue);background:var(--blue-2);border-radius:999px;padding:7px 12px;font-weight:700;margin-bottom:12px}
h1,h2{margin:0 0 12px;color:#174ea6}
p{color:var(--muted)}
label{display:flex;flex-direction:column;gap:7px;font-weight:600;color:#3c4043}
input,select,textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 12px;background:#fff;color:var(--text);font:inherit;box-shadow:0 1px 0 rgba(26,115,232,.04)}
input:focus,select:focus,textarea:focus{outline:2px solid #aecbfa;border-color:var(--blue)}
textarea{min-height:94px;resize:vertical}
.select-with-icon{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:8px;align-items:center;width:100%}
.select-with-icon select{width:100%;min-width:0}
.select-popup-icon{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #aecbfa;border-radius:10px;background:#fff;color:#174ea6;text-decoration:none;font-size:20px;font-weight:700}
.select-popup-icon:hover{background:var(--blue-3)}
.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px;max-height:340px;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:10px;background:#fff}
.checkbox-item{display:flex;flex-direction:row;align-items:center;gap:8px;font-weight:500;border:1px solid #e0e7f5;border-radius:9px;padding:8px;background:#f8fbff}
.checkbox-item input{width:auto;box-shadow:none}
.menu-checkbox-item{display:grid;grid-template-columns:auto minmax(120px,1fr) minmax(130px,.8fr)}
.menu-group-input{width:100%!important;padding:7px 9px;font-size:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid #aecbfa;border-radius:9px;padding:9px 13px;background:#fff;color:#174ea6;text-decoration:none;cursor:pointer;font-weight:600;box-shadow:0 1px 2px rgba(60,64,67,.10)}
.btn:hover{background:var(--blue-3)}
.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}
.btn.primary:hover{background:var(--blue-dark)}
.btn.danger{color:#fff;background:var(--danger);border-color:var(--danger)}
.btn.disabled{opacity:.55;cursor:not-allowed;pointer-events:none}
.btn.chave-alert{color:#fff;background:var(--red);border-color:var(--red);font-size:16px;animation:chave-pulse 1.1s ease-in-out infinite}
.btn.chave-alert:hover{background:var(--danger);border-color:var(--danger);color:#fff}
@keyframes chave-pulse{0%,100%{box-shadow:0 0 0 0 rgba(234,67,53,.55)}50%{box-shadow:0 0 0 8px rgba(234,67,53,0)}}
.vehicle-btn{font-size:16px}
.form-context{grid-column:1/-1;margin:0 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--blue-3);color:#174ea6;font-weight:600}
.alert{margin:0 0 16px;padding:12px 14px;border-radius:12px;background:var(--blue-3);border-left:5px solid var(--blue);color:#174ea6}
.alert.error{background:#fce8e6;border-left-color:var(--red);color:#a50e0e}
.alert.ok{background:#e6f4ea;border-left-color:var(--green);color:#137333}
.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:linear-gradient(180deg,#fff 0%,#f3f8ff 100%);border-right:1px solid #aecbfa;padding:14px 14px;overflow:auto;box-shadow:4px 0 18px rgba(26,115,232,.08)}
.sidebar strong{display:block;font-size:20px;margin-bottom:10px;color:#174ea6}
.condo-switch{margin:0 0 12px}
.condo-switch select{padding:8px 9px;font-size:13px;border-color:#aecbfa;background:#fff;color:#174ea6;font-weight:700}
.sidebar nav{display:flex;flex-direction:column;gap:2px}
.sidebar a{padding:7px 10px;color:#3c4043;text-decoration:none;border-radius:9px;border:1px solid transparent}
.sidebar a.active,.sidebar a:hover{background:var(--blue);border-color:var(--blue-dark);color:#fff;box-shadow:0 2px 8px rgba(26,115,232,.22)}
.sidebar small{display:block;margin:9px 0 5px;padding:5px 10px;border-bottom:2px solid var(--blue);border-radius:8px 8px 0 0;background:linear-gradient(90deg,#d2e3fc,#e6f4ea);color:#174ea6;font-weight:700;text-transform:uppercase;font-size:11px;letter-spacing:.06em}
.sidebar details.menu-group{margin:9px 0 5px}
.sidebar details.menu-group summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 10px;border-bottom:2px solid var(--blue);border-radius:8px;background:linear-gradient(90deg,#d2e3fc,#e6f4ea);color:#174ea6;font-weight:700;text-transform:uppercase;font-size:11px;letter-spacing:.06em;cursor:pointer;list-style:none}
.sidebar details.menu-group summary::-webkit-details-marker{display:none}
.sidebar details.menu-group .menu-group-label{flex:1 1 auto}
.sidebar details.menu-group .menu-group-icon{width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .18s ease;flex:0 0 auto}
.sidebar details.menu-group[open] summary{border-radius:8px 8px 0 0}
.sidebar details.menu-group[open] .menu-group-icon{transform:rotate(45deg)}
.sidebar details.menu-group .menu-group-items{display:flex;flex-direction:column;gap:2px;padding:6px 0 2px}
.content{margin-left:248px;padding:24px;min-height:100vh}
.content > .card,.content > .cards{margin-bottom:20px}
.content > .card:last-child,.content > .cards:last-child{margin-bottom:0}
body.popup .sidebar{display:none}
body.popup .content{margin-left:0}
body.popup .content > .card{margin-bottom:0}
body.popup .topbar-actions{display:none}
body.popup.route-pessoas-entrada{overflow:hidden}
body.popup.route-pessoas-entrada .content{height:100vh;padding:10px;overflow:hidden}
body.popup.route-pessoas-entrada .topbar{display:none}
body.popup.route-pessoas-entrada .card{height:calc(100vh - 20px);display:flex;flex-direction:column;padding:12px;overflow:hidden}
body.popup.route-pessoas-entrada .section-head{margin-bottom:8px;flex:0 0 auto}
body.popup.route-pessoas-entrada .lookup-panel{margin-bottom:10px;padding:10px;flex:0 0 auto}
body.popup.route-pessoas-entrada .lookup-results{max-height:112px}
body.popup.route-pessoas-entrada .grid-form{grid-template-columns:repeat(2,minmax(160px,1fr));gap:10px;flex:1 1 auto;min-height:0;align-content:start}
body.popup.route-pessoas-entrada textarea{min-height:58px;max-height:76px}
body.popup.route-pessoas-entrada input,body.popup.route-pessoas-entrada select,body.popup.route-pessoas-entrada textarea{padding:8px 10px}
.topbar{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:22px;background:rgba(255,255,255,.70);border:1px solid #d2e3fc;border-radius:18px;padding:16px 18px;box-shadow:0 4px 16px rgba(26,115,232,.08)}
.topbar span{color:var(--muted)}
.topbar-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.theme-toggle{font-size:12px;padding:6px 9px;opacity:.72;box-shadow:none}
.theme-toggle:hover{opacity:1}
.card,.metric{background:var(--card);border:1px solid #aecbfa;border-radius:18px;padding:20px;box-shadow:0 10px 28px rgba(26,115,232,.13)}
.card{border-top:4px solid var(--blue);position:relative;overflow:visible}
.card > h2:first-child,.section-head{padding:12px 14px;border:1px solid #d2e3fc;border-radius:14px;background:linear-gradient(90deg,#e8f0fe 0%,#f8fbff 70%);box-shadow:inset 4px 0 0 var(--blue)}
.card > h2:first-child{margin:0 0 16px;color:#174ea6}
.section-head h2{margin:0}
.cards{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr));gap:14px;margin-bottom:18px}
.metric{position:relative;overflow:hidden;border-top:4px solid var(--blue)}
.metric:nth-child(2){border-top-color:var(--green)}
.metric:nth-child(3){border-top-color:var(--yellow)}
.metric:nth-child(4){border-top-color:var(--red)}
.metric span{display:block;color:var(--muted);margin-bottom:8px}
.metric strong{font-size:30px;color:var(--blue-dark)}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.grid-form{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:16px;padding:16px;border:1px solid #e0e7f5;border-radius:16px;background:#f8fbff}
.form-panel-title{grid-column:1/-1;margin:0 0 2px;color:#174ea6;font-size:18px}
.garagem-form{grid-template-columns:minmax(240px,2fr) minmax(180px,1.4fr) minmax(90px,.7fr) minmax(90px,.7fr) 74px;align-items:end}
.garagem-form .field-tipo select{padding-left:8px;padding-right:8px;text-align:center}
.grid-form.uppercase input{text-transform:uppercase}
.grid-form label:has(textarea),.grid-form .field-menu_items{grid-column:1/-1}
.form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;padding-top:12px;border-top:1px solid #e0e7f5}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 1px 0 rgba(26,115,232,.04)}
.card > .table-wrap:not(:last-child){margin-bottom:16px}
table{width:100%;border-collapse:separate;border-spacing:0}
th,td{border-bottom:1px solid var(--line);padding:11px 10px;text-align:left;vertical-align:top}
.op-col{width:42px;text-align:center;padding-left:8px;padding-right:8px}
.op-dot{display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 3px rgba(26,115,232,.16);cursor:help;vertical-align:middle}
html.dark-mode .op-dot{background:#8ab4f8;box-shadow:0 0 0 3px rgba(138,180,248,.18)}
tbody tr:last-child td{border-bottom:0}
th{font-size:12px;color:#174ea6;text-transform:uppercase;letter-spacing:.04em;background:#e8f0fe;border-bottom:1px solid #aecbfa}
tr:hover td{background:#f8fbff}
.actions{white-space:nowrap;display:flex;gap:7px}
.actions form{display:inline}
.quick,.search,.sort-options{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.search,.sort-options{padding:12px;border:1px solid #e0e7f5;border-radius:14px;background:#f8fbff}
.sort-options{margin:0 0 14px}
.list-search{margin:0 0 14px}
.list-search .list-new{margin-left:auto}
.sort-options span{color:var(--muted);font-weight:700}
.btn.active{background:var(--blue);border-color:var(--blue-dark);color:#fff}
.search input{max-width:520px}
.status-filter{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:1px solid #d0d7e2;border-radius:999px;background:#fff;cursor:pointer;font-weight:600;white-space:nowrap}
.status-filter input{margin:0}
html.dark-mode .status-filter{background:#0b1220;border-color:#2f3b52}
input::placeholder,textarea::placeholder{color:#9aa0a6;opacity:.55}
input[type="datetime-local"]:invalid{color:#9aa0a6;opacity:.65}
input[type="datetime-local"]:valid{color:var(--text);opacity:1}
select option[value=""]{color:#9aa0a6}
select:has(option[value=""]:checked){color:#9aa0a6}
select option:not([value=""]){color:var(--text)}
.lookup-panel{margin:0 0 16px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--blue-3)}
.lookup-results{display:grid;gap:7px;margin-top:10px;max-height:220px;overflow:auto}
.lookup-item{width:100%;text-align:left;border:1px solid #aecbfa;border-radius:10px;padding:10px 12px;background:#fff;color:var(--text);cursor:pointer}
.lookup-item:hover{background:#f8fbff}
.lookup-item strong{display:block;color:#174ea6;margin-bottom:3px}
.lookup-item small,.lookup-empty,.lookup-status{color:var(--muted)}
.lookup-status{margin-top:10px;font-weight:700}
body.modal-open{overflow:hidden}
.system-modal{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;padding:22px}
.system-modal.open{display:flex}
.system-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.58);backdrop-filter:blur(2px)}
.system-modal-panel{position:relative;z-index:1;width:min(1100px,96vw);height:min(780px,92vh);display:flex;flex-direction:column;background:var(--card);border:1px solid #aecbfa;border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.35);overflow:hidden}
.system-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line);background:var(--blue-3);color:#174ea6}
.system-modal iframe{width:100%;height:100%;border:0;background:var(--card);flex:1}
html.dark-mode{--text:#f1f3f4;--muted:#bdc1c6;--line:#364152;--bg:#070b12;--card:#111827;--blue-3:#10213d;--blue-2:#143866}
html.dark-mode body{background:#070b12;color:var(--text)}
html.dark-mode .login-bg{background:#070b12}
html.dark-mode .login-card,
html.dark-mode .sidebar,
html.dark-mode .topbar,
html.dark-mode .card,
html.dark-mode .metric{background:#111827;color:var(--text);border-color:#2f3b52;box-shadow:0 10px 28px rgba(0,0,0,.38)}
html.dark-mode input,
html.dark-mode select,
html.dark-mode textarea,
html.dark-mode .btn,
html.dark-mode .lookup-item,
html.dark-mode .select-popup-icon,
html.dark-mode .checkbox-grid,
html.dark-mode .checkbox-item{background:#0b1220;color:var(--text);border-color:#364152;box-shadow:none}
html.dark-mode .sidebar{background:#0b1220}
html.dark-mode .condo-switch select{background:#111827;color:#8ab4f8;border-color:#364152}
html.dark-mode .topbar{background:#111827}
html.dark-mode .card > h2:first-child,html.dark-mode .section-head,html.dark-mode .search,html.dark-mode .sort-options,html.dark-mode .grid-form,html.dark-mode .lookup-panel{background:#0b1220;border-color:#2f3b52}
html.dark-mode .table-wrap{background:#0b1220;border-color:#364152}
html.dark-mode h1,html.dark-mode h2,html.dark-mode .sidebar strong,html.dark-mode .lookup-item strong,html.dark-mode th{color:#8ab4f8}
html.dark-mode label,html.dark-mode .sidebar a{color:var(--text)}
html.dark-mode .sidebar small{background:#111827;color:#8ab4f8;border-bottom-color:#8ab4f8}
html.dark-mode .sidebar details.menu-group summary{background:#111827;color:#8ab4f8;border-bottom-color:#8ab4f8}
html.dark-mode th{background:#10213d;border-bottom-color:#364152}
html.dark-mode tr:hover td{background:#172033}
html.dark-mode .btn:hover,html.dark-mode .lookup-item:hover,html.dark-mode .select-popup-icon:hover{background:#172033}
html.dark-mode .theme-toggle{background:#0b1220;color:#bdc1c6;border-color:#364152}
html.dark-mode .btn.primary,html.dark-mode .btn.active,html.dark-mode .sidebar a.active,html.dark-mode .sidebar a:hover{background:var(--blue);border-color:var(--blue-dark);color:#fff}
html.dark-mode .btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}
html.dark-mode .btn.chave-alert{background:var(--red);border-color:var(--red);color:#fff}
html.dark-mode .btn.chave-alert:hover{background:var(--danger);border-color:var(--danger);color:#fff}
html.dark-mode .alert,html.dark-mode .form-context{background:#0b1220;color:#8ab4f8;border-color:#364152;border-left-color:#8ab4f8}
html.dark-mode .alert.error{background:#1f1111;color:#f28b82;border-left-color:var(--red)}
html.dark-mode .alert.ok{background:#0f1f16;color:#81c995;border-left-color:var(--green)}
@media(max-width:900px){.sidebar{position:static;width:auto;border-right:0;border-bottom:1px solid var(--line)}.content{margin-left:0;padding:16px}.cards{grid-template-columns:repeat(2,1fr)}.grid-form,.garagem-form{grid-template-columns:1fr}.topbar{align-items:flex-start;flex-direction:column}.topbar-actions{justify-content:flex-start}}
@media(max-width:560px){.cards{grid-template-columns:1fr}.login-card{padding:24px}.actions{flex-direction:column}.btn{width:100%}}
tr.row-aberto td,tr.row-retirada td,tr.row-pendente td,tr.row-andamento td{color:var(--red)}
tr.row-aberto:hover td,tr.row-retirada:hover td,tr.row-pendente:hover td,tr.row-andamento:hover td{color:var(--red)}
tr.row-aberto .btn,tr.row-retirada .btn,tr.row-pendente .btn,tr.row-andamento .btn{color:var(--red)}
tr.row-aberto .btn:hover,tr.row-retirada .btn:hover,tr.row-pendente .btn:hover,tr.row-andamento .btn:hover{color:var(--red)}
tr.row-aberto .btn.danger,tr.row-retirada .btn.danger,tr.row-pendente .btn.danger,tr.row-andamento .btn.danger{color:#fff}
html.dark-mode tr.row-aberto td,html.dark-mode tr.row-retirada td,html.dark-mode tr.row-pendente td,html.dark-mode tr.row-andamento td{color:#f28b82}
html.dark-mode tr.row-aberto:hover td,html.dark-mode tr.row-retirada:hover td,html.dark-mode tr.row-pendente:hover td,html.dark-mode tr.row-andamento:hover td{color:#f28b82}
html.dark-mode tr.row-aberto .btn,html.dark-mode tr.row-retirada .btn,html.dark-mode tr.row-pendente .btn,html.dark-mode tr.row-andamento .btn{color:#f28b82}
html.dark-mode tr.row-aberto .btn:hover,html.dark-mode tr.row-retirada .btn:hover,html.dark-mode tr.row-pendente .btn:hover,html.dark-mode tr.row-andamento .btn:hover{color:#f28b82}
html.dark-mode tr.row-aberto .btn.danger,html.dark-mode tr.row-retirada .btn.danger,html.dark-mode tr.row-pendente .btn.danger,html.dark-mode tr.row-andamento .btn.danger{color:#fff}
