@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@700;800&display=swap');

:root { --ink:#12233f; --muted:#66758a; --primary:#0b4f9c; --accent:#e8f2ff; --paper:#f4f8fc; --white:#fff; --line:#d8e2ee; --danger:#b54432; }
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:'DM Sans',sans-serif; padding-bottom:96px; }
[hidden] { display:none !important; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
.topbar { height:82px; padding:0 max(24px,calc((100% - 1120px)/2)); display:flex; align-items:center; justify-content:space-between; background:var(--primary); color:white; }
.topbar h1 { margin:2px 0 0; font:800 24px 'Manrope'; }
.eyebrow,.label { letter-spacing:.14em; font-weight:700; font-size:11px; }
.eyebrow { color:white; opacity:.82; }
.avatar { border:1px solid #ffffff35; border-radius:50%; width:42px; height:42px; color:white; background:#ffffff12; font-weight:700; }
main { max-width:1120px; margin:auto; padding:34px 24px; }
.welcome { display:flex; align-items:end; justify-content:space-between; margin-bottom:22px; }
.welcome p { margin:0; color:var(--muted); }
h2 { font:800 26px 'Manrope'; margin:5px 0 0; }
.status { color:#0b4f9c; background:#e1efff; padding:8px 12px; border-radius:99px; font-size:13px; font-weight:600; }
.status i { display:inline-block; width:7px; height:7px; background:#2682df; border-radius:50%; margin-right:6px; }
.trip-card { background:var(--primary); color:white; border-radius:20px; padding:26px; box-shadow:0 12px 30px #0b4f9c26; }
.trip-head,.trip-meta,.section-head,.modal-head,.form-actions { display:flex; justify-content:space-between; gap:16px; }
.trip-head { align-items:flex-start; }
.trip-head .status { display:inline-flex; align-items:center; flex:0 0 auto; min-height:30px; padding:7px 12px; line-height:1; white-space:nowrap; }
.trip-head strong { display:block; font:700 22px 'Manrope'; margin-top:7px; }
.trip-id { color:white; font-weight:700; }
.route { display:flex; align-items:center; margin:25px 0; }
.route i { width:10px; height:10px; border:2px solid white; border-radius:50%; }
.route span { height:2px; flex:1; background:linear-gradient(90deg,white,#ffffff30); }
.trip-meta span { flex:1; font-weight:600; }
.trip-meta small { display:block; color:#c5dcf5; margin-bottom:4px; font-weight:400; }
.summary { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:18px 0 38px; }
.summary article { background:white; border:1px solid var(--line); padding:20px; border-radius:15px; }
.summary span { display:block; color:var(--muted); font-size:13px; }
.summary strong { display:block; font:800 24px 'Manrope'; margin-top:5px; }
.section-head { align-items:end; margin-bottom:17px; }
.primary,.secondary { border:0; border-radius:10px; padding:12px 17px; font-weight:700; }
.primary { background:var(--primary); color:white; }
.secondary { background:#e8eef5; color:var(--ink); }
.expense-list { display:grid; gap:10px; }
.expense { display:grid; grid-template-columns:48px 1fr auto auto; gap:14px; align-items:center; padding:15px; border-radius:14px; background:white; border:1px solid var(--line); }
.expense-icon { display:grid; place-items:center; width:48px; height:48px; border-radius:12px; background:var(--accent); font-size:21px; }
.expense h3 { margin:0 0 3px; font-size:15px; }
.expense p { margin:0; color:var(--muted); font-size:13px; }
.expense strong { font-size:15px; }
.delete { border:0; background:none; color:#9a9e9b; font-size:18px; padding:8px; }
.empty { text-align:center; background:white; border:1px dashed #c9c8c0; border-radius:14px; padding:36px; color:var(--muted); }
.bottom-nav { position:fixed; z-index:5; bottom:0; left:0; right:0; height:72px; background:white; border-top:1px solid var(--line); display:flex; justify-content:center; gap:clamp(15px,8vw,100px); align-items:center; }
.bottom-nav button { border:0; background:none; color:#7c847f; font-size:11px; min-width:48px; }
.bottom-nav button span { display:block; font-size:19px; margin-bottom:3px; }
.bottom-nav .active { color:var(--primary); font-weight:700; }
.bottom-nav .nav-add { min-width:48px; height:48px; margin-top:-28px; border-radius:50%; background:var(--primary); color:white; font-size:27px; box-shadow:0 5px 15px #0b4f9c40; }
dialog { width:min(520px,calc(100% - 24px)); border:0; border-radius:20px; padding:0; box-shadow:0 24px 70px #0005; }
dialog::backdrop { background:#071a35aa; backdrop-filter:blur(3px); }
form { padding:25px; }
.modal-head { align-items:start; margin-bottom:22px; }
.icon-button { border:0; background:#eee; border-radius:50%; width:34px; height:34px; font-size:22px; }
label { display:block; font-size:13px; font-weight:700; margin-top:14px; }
input,select,textarea { width:100%; margin-top:6px; padding:12px; border:1px solid #cfcfc8; border-radius:9px; background:white; }
.currency-input { display:flex; align-items:center; margin-top:6px; border:1px solid #cfcfc8; border-radius:9px; background:white; overflow:hidden; }
.currency-input span { padding:0 0 0 12px; color:var(--muted); font-weight:700; }
.currency-input input { margin:0; border:0; box-shadow:none; }
.percentage-input { display:flex; align-items:center; margin-top:6px; border:1px solid #cfcfc8; border-radius:9px; background:white; overflow:hidden; }
.percentage-input input { min-width:0; margin:0; border:0; box-shadow:none; }
.percentage-input span { padding:0 12px; color:var(--muted); font-weight:700; }
textarea { resize:vertical; }
.form-actions { justify-content:flex-end; margin-top:24px; }
.login-view { min-height:100vh; display:grid; place-items:center; padding:24px; background:linear-gradient(145deg,#07376f,#0b61b8); }
.login-card { width:min(430px,100%); background:white; border-radius:22px; box-shadow:0 25px 70px #031d3c66; }
.login-card h1 { margin:10px 0 4px; font:800 30px 'Manrope'; }
.login-card > p { color:var(--muted); margin:0 0 22px; }
.login-card small { display:block; color:var(--muted); line-height:1.6; margin-top:18px; }
.company-signup { display:flex; align-items:center; justify-content:center; gap:7px; width:100%; margin-top:10px; padding:11px; border:0; color:var(--primary); background:transparent; font-weight:700; }
.company-signup span { display:grid; place-items:center; width:24px; height:24px; border:1px solid #aac6e4; border-radius:50%; }
.brand-mark { display:grid; place-items:center; width:48px; height:48px; border-radius:13px; margin-bottom:18px; color:white; background:var(--primary); font-weight:800; }
.back-to-site { display:inline-block; margin-bottom:22px; color:var(--primary); font-size:13px; font-weight:700; text-decoration:none; }
.wide { width:100%; margin-top:20px; }
.error { color:#b42318 !important; min-height:18px; margin:10px 0 0 !important; font-size:13px; }
.error.success { color:#247044 !important; }
.user-area { display:flex; align-items:center; gap:12px; }
.user-identity { display:grid; justify-items:end; }
.user-identity small { color:#c8dcf2; margin-top:2px; }
.trip-grid { display:grid; gap:12px; }
.trip-summary { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:20px; background:white; border:1px solid var(--line); border-radius:15px; cursor:pointer; transition:.2s; }
.trip-summary:hover { transform:translateY(-2px); box-shadow:0 8px 24px #0b4f9c12; border-color:#9ebfe3; }
.trip-summary h3 { margin:6px 0 3px; }
.trip-summary p { margin:0; color:var(--muted); font-size:13px; }
.trip-side { text-align:right; display:grid; justify-items:end; gap:10px; }
.status-available { color:#0b4f9c; background:#e1efff; }
.status-in_progress { color:#805600; background:#fff0bd; }
.status-submitted { color:#5c3b98; background:#eee5ff; }
.status-closed { color:#27633e; background:#dcefe3; }
.back { margin-bottom:15px; }
.actions,.finish-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; }
.finish-actions { margin-top:20px; }
.finish-actions textarea { max-width:380px; margin:0; }
.notice { padding:13px 16px; margin:14px 0; border-radius:10px; background:#e4f4e9; color:#245c37; }
.notice.error { background:#fde8e5; color:#8f261b; }
.notice.info { background:#e5f0fc; color:#174f89; }
.link { border:0; background:none; color:var(--primary); text-decoration:underline; }
.optional { color:var(--muted); font-weight:400; }
.receipt-modal { padding:18px; position:relative; }
.receipt-modal .icon-button { position:absolute; top:25px; right:25px; }
.receipt-modal img { display:block; max-width:100%; max-height:80vh; border-radius:10px; }
.admin-nav { display:flex; gap:8px; margin:-8px 0 28px; padding:6px; overflow-x:auto; background:white; border:1px solid var(--line); border-radius:13px; }
.admin-nav button { flex:1; min-width:max-content; padding:10px 14px; border:0; border-radius:9px; color:var(--muted); background:transparent; font-weight:700; }
.admin-nav button.active { color:white; background:var(--primary); }
.admin-layout { display:grid; grid-template-columns:minmax(320px,440px) 1fr; gap:24px; align-items:start; }
.trip-manager { display:none; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
#trip-admin-dialog { width:min(760px,calc(100% - 48px)); max-height:calc(100dvh - 48px); overflow:auto; }
#trip-admin-dialog .admin-form { border:0; border-radius:0; padding:32px; }
#trip-admin-dialog h2 { padding-right:36px; }
#close-admin-trip { position:absolute; top:18px; right:18px; }
.trip-manager-heading,.trip-manager-toolbar { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:22px 24px; }
.trip-manager-heading h2 { margin:4px 0 0; }
.trip-manager-toolbar { padding-top:0; }
.trip-manager-toolbar label { margin:0; width:min(460px,70%); }
.trip-manager-toolbar span,.trip-grid-hint { color:var(--muted); font-size:13px; }
.trip-grid-scroll { overflow:auto; max-height:65vh; border-block:1px solid var(--line); }
table.trip-grid { display:table; border-collapse:separate; border-spacing:0; width:100%; min-width:1500px; font-size:13px; }
.trip-grid th,.trip-grid td { text-align:left; padding:16px 14px; border-bottom:1px solid var(--line); max-width:220px; overflow-wrap:anywhere; }
.trip-grid th { position:sticky; top:0; z-index:2; background:#e8f2ff; color:#164475; font-size:12px; }
.trip-grid th:nth-child(5),.trip-grid th:nth-child(6),.trip-grid th:nth-child(7),.trip-grid th:nth-child(8) { text-align:right; }
.trip-grid td { background:white; }
.trip-grid tbody tr:nth-child(even) td { background:#f8fafc; }
.trip-grid tbody tr:hover td,.trip-grid tbody tr:focus-within td { background:#eef5fd; }
.trip-grid small { display:block; color:var(--muted); margin-top:5px; }
.trip-grid .trip-number { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.trip-nowrap { white-space:nowrap; }
.trip-grid-actions,.trip-grid th:last-child { position:sticky; right:0; box-shadow:-5px 0 10px #12233f0a; border-left:1px solid var(--line); }
.trip-grid th:last-child { z-index:3; }
.trip-grid-actions { z-index:1; }
.trip-grid .record-actions { flex-wrap:nowrap; }
.trip-grid .edit-expense { white-space:nowrap; text-decoration:none; }
.trip-grid-hint { margin:0; padding:14px 24px; }
.trip-grid-pagination { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 24px; color:var(--muted); font-size:13px; }
.trip-grid-pagination div { display:flex; align-items:center; gap:16px; }
.trip-grid-pagination button:disabled { opacity:.45; cursor:default; }
@media (min-width:1280px) {
 .workspace-main:has(.trip-admin-layout):has(#admin-view:not([hidden])) { max-width:none; width:100%; }
 .trip-admin-layout { display:block; min-width:0; }
 .trip-admin-layout #trip-inline-form,.trip-admin-layout .trip-mobile-records { display:none; }
 .trip-manager { display:block; min-width:0; background:white; border:1px solid var(--line); border-radius:16px; overflow:hidden; }
}
.admin-form,.records { padding:24px; background:white; border:1px solid var(--line); border-radius:17px; }
.admin-form h2,.records h2 { margin-bottom:20px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 14px; }
.form-grid label:last-child:nth-child(odd) { grid-column:1/-1; }
.field-hint { display:block; margin-top:5px; color:var(--muted); font-weight:400; font-size:11px; }
.location-field { margin-top:14px; padding:14px; border:1px solid var(--line); border-radius:11px; background:var(--paper); }
.location-field label { margin-top:0; }
.location-field button { width:100%; margin-top:9px; }
.location-field small { display:block; margin-top:8px; color:var(--muted); }
.expense-links { display:flex; align-items:center; gap:4px; flex-wrap:wrap; justify-content:flex-end; }
.expense-links a { font-size:13px; }
.edit-expense { border:1px solid #b9cce0; border-radius:7px; padding:6px 9px; color:var(--primary); background:white; font-size:12px; font-weight:700; }
.receipt-field { margin:16px 0 0; padding:14px; border:1px solid var(--line); border-radius:11px; }
.receipt-field legend { padding:0 5px; font-size:13px; font-weight:700; }
.receipt-actions { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.file-button { display:grid; place-items:center; margin:0; padding:12px 10px; border-radius:10px; text-align:center; cursor:pointer; }
.file-button input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.receipt-preview { display:flex; align-items:center; gap:10px; margin-top:12px; padding:9px; border-radius:9px; background:var(--accent); color:var(--primary); font-size:12px; font-weight:700; }
.receipt-preview img { width:52px; height:52px; border-radius:7px; object-fit:cover; }
.camera-modal { padding:20px; }
.camera-frame { overflow:hidden; border-radius:14px; background:#071526; aspect-ratio:3/4; max-height:65vh; }
.camera-frame video { width:100%; height:100%; object-fit:cover; }
.camera-modal > p { color:var(--muted); text-align:center; font-size:13px; }
.record-list { display:grid; gap:9px; max-height:620px; overflow:auto; }
.record { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:14px; border:1px solid var(--line); border-radius:11px; }
.record p { margin:4px 0 0; color:var(--muted); font-size:13px; }
.record > span { color:var(--muted); text-align:right; font-size:13px; }
.record-side { display:flex; align-items:center; justify-content:flex-end; gap:10px; color:var(--muted); text-align:right; font-size:13px; }
.record-actions { display:flex; gap:7px; }
.record-icon-button { display:grid; place-items:center; width:38px; height:38px; padding:0; border:0; border-radius:10px; background:var(--accent); color:var(--primary); cursor:pointer; }
.record-icon-button svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.record-icon-button:hover { background:#d8e9fb; }
.document-row small { color:var(--muted); overflow-wrap:anywhere; }
#document-type-feedback { color:var(--danger, #b42318); overflow-wrap:anywhere; }
#document-type-cancel { margin-top:8px; }
#admin-cancel-edit { margin-top:8px; }
@media (max-width:600px) {
  main { padding:24px 16px; }
  .welcome { align-items:start; gap:12px; }
  .welcome h2 { font-size:22px; }
  .status { white-space:nowrap; font-size:11px; }
  .trip-card { padding:20px; }
  .trip-meta { gap:10px; }
  .trip-meta span { font-size:12px; }
  .summary { gap:10px; margin-bottom:30px; }
  .summary article { padding:15px; }
  .summary strong { font-size:18px; }
  .section-head { align-items:center; }
  .section-head h2 { font-size:21px; }
  #add-expense { display:none; }
  .expense { grid-template-columns:44px 1fr auto; }
  .expense strong { grid-column:3; grid-row:1; }
  .delete { grid-column:3; grid-row:2; padding:0; }
  .bottom-nav { gap:10px; justify-content:space-around; }
  .user-area > span { display:none; }
  .trip-summary { align-items:flex-start; }
  .trip-side strong { font-size:14px; }
  .finish-actions { align-items:stretch; flex-direction:column; }
  .finish-actions textarea { max-width:none; }
  .admin-layout { grid-template-columns:1fr; }
  .admin-form,.records { padding:18px; }
  .form-grid { grid-template-columns:1fr; }
  .form-grid label { grid-column:auto !important; }
  .record { align-items:flex-start; flex-direction:column; }
  .record > span { text-align:left; }
  .record-side { width:100%; justify-content:space-between; text-align:left; }
  .receipt-actions { grid-template-columns:1fr; }
}

.freight-layout { display:grid; grid-template-columns:minmax(320px,440px) 1fr; gap:24px; align-items:start; }
.freight-intro { margin:-8px 0 18px; color:var(--muted); line-height:1.5; }
.freight-result { padding:24px; background:white; border:1px solid var(--line); border-radius:17px; }
.freight-result-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:20px; }
.freight-result-head h2 { margin-top:7px; font-size:21px; }
.map-route-link { display:inline-flex; align-items:center; white-space:nowrap; text-decoration:none; }
.freight-metrics { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-bottom:20px; }
.freight-metrics article { display:grid; gap:4px; padding:15px; border-radius:11px; background:var(--paper); }
.freight-metrics small,.freight-metrics span,.freight-costs span { color:var(--muted); font-size:12px; }
.freight-costs { display:grid; gap:0; border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.freight-costs>div { display:flex; justify-content:space-between; gap:18px; padding:12px 14px; border-bottom:1px solid var(--line); }
.freight-costs>div:last-child { border:0; }
.freight-total { color:white; background:var(--primary); }
.freight-total span { color:#d8e9fb; }
.freight-total strong { font-size:18px; }
@media (max-width:900px) { .freight-layout { grid-template-columns:1fr; } }
@media (max-width:600px) { .freight-result-head { flex-direction:column; } .freight-metrics { grid-template-columns:1fr; } }


/* Estrutura principal do sistema de gestão */
#app-view { min-height:100vh; }
.app-content { min-height:100vh; margin-left:264px; transition:margin-left .25s ease; }
.topbar { position:sticky; top:0; z-index:20; height:82px; padding:0 30px; box-shadow:0 1px 0 #ffffff20; }
.topbar-title { display:flex; align-items:center; gap:14px; }
.workspace-main { max-width:1120px; margin:auto; padding:34px 24px; }
.sidebar { position:fixed; inset:0 auto 0 0; z-index:40; width:264px; padding:22px 16px; overflow-y:auto; color:white; background:linear-gradient(180deg,#073f7c 0%,#062f5e 100%); box-shadow:10px 0 30px #071a3520; }
.sidebar-head,.sidebar-head>div { display:flex; align-items:center; }
.sidebar-head { justify-content:space-between; gap:12px; padding:0 6px 25px; border-bottom:1px solid #ffffff1f; }
.sidebar-head>div { gap:11px; min-width:0; }
.sidebar-head strong,.sidebar-head small { display:block; }
.sidebar-head strong { font:700 14px 'Manrope'; white-space:nowrap; }
.sidebar-head small { margin-top:2px; color:#bfd5ed; font-size:11px; }
.sidebar-brand { display:grid; place-items:center; flex:0 0 auto; width:40px; height:40px; border-radius:11px; color:var(--primary); background:white; font:800 14px 'Manrope'; }
.nav-group-title { display:block; margin:25px 12px 8px; color:#9fc0e1; font-size:10px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.admin-nav { display:grid; gap:5px; margin:0; padding:0; overflow:visible; background:transparent; border:0; border-radius:0; }
.admin-nav button { display:flex; align-items:center; gap:11px; width:100%; min-width:0; padding:11px 12px; color:#d5e5f5; text-align:left; background:transparent; border:0; border-radius:10px; font-weight:600; }
.admin-nav button span { display:grid; place-items:center; flex:0 0 auto; width:22px; font-size:17px; }
.admin-nav button b { font:600 14px 'DM Sans'; }
.admin-nav button:hover { color:white; background:#ffffff12; }
.admin-nav button.active { color:#073f7c; background:white; box-shadow:0 8px 20px #001b3745; }
.menu-toggle,.menu-close { display:none; }
.sidebar-backdrop { display:none; }

@media (max-width:800px) {
  body { padding-bottom:80px; }
  .app-content { margin-left:0; }
  .topbar { height:72px; padding:0 16px; }
  .topbar h1 { font-size:19px; }
  .topbar-title { gap:10px; }
  .menu-toggle { display:grid; place-content:center; gap:4px; width:42px; height:42px; padding:0; color:white; background:#ffffff12; border:1px solid #ffffff35; border-radius:10px; }
  .menu-toggle span { display:block; width:20px; height:2px; border-radius:2px; background:currentColor; }
  .menu-close { display:grid; place-items:center; flex:0 0 auto; width:34px; height:34px; padding:0; color:white; background:#ffffff12; border:0; border-radius:9px; font-size:24px; }
  .sidebar { width:min(290px,84vw); transform:translateX(-105%); transition:transform .25s ease; box-shadow:18px 0 45px #03162f70; }
  .sidebar.open { transform:translateX(0); }
  .sidebar-backdrop { position:fixed; inset:0; z-index:35; width:100%; height:100%; padding:0; background:#071a3599; border:0; opacity:0; pointer-events:none; transition:opacity .25s ease; }
  .sidebar-backdrop.open { display:block; opacity:1; pointer-events:auto; }
  .workspace-main { padding:24px 16px; }
  .user-identity { display:none; }
}


/* Gestão de compras */
.admin-nav .nav-group-inside { margin:19px 12px 5px; padding-top:18px; border-top:1px solid #ffffff1f; }
.purchase-upload { margin-bottom:24px; }
.camera-capture { display:grid; justify-items:center; gap:8px; width:100%; padding:30px 20px; color:var(--primary); background:white; border:2px dashed #9bbada; border-radius:18px; }
.camera-capture:hover { background:#f7fbff; border-color:var(--primary); }
.camera-capture span { display:grid; place-items:center; width:72px; height:72px; color:white; background:var(--primary); border-radius:50%; font-size:34px; box-shadow:0 12px 28px #0b4f9c35; }
.camera-capture strong { font:800 18px 'Manrope'; }
.camera-capture small { color:var(--muted); }
.purchase-records { padding:24px; }
.purchase-records>.section-head>span { color:var(--muted); font-size:13px; }
.purchase-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:15px; }
.purchase-card { overflow:hidden; background:white; border:1px solid var(--line); border-radius:15px; }
.invoice-photo { display:block; width:100%; height:180px; padding:0; background:#dbe7f2; border:0; }
.invoice-photo img { width:100%; height:100%; object-fit:cover; }
.purchase-card-body { display:grid; gap:6px; padding:15px; }
.purchase-card-body>strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.purchase-card-body p { margin:0; color:var(--muted); font-size:12px; }
.purchase-card-body>div { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:8px; }
.purchase-card-body>div>span { font-weight:700; }
.invoice-status { padding:7px 11px; border:0; border-radius:99px; font-size:12px; font-weight:800; }
.invoice-status.pending { color:#704b00; background:#ffd75e; }
.invoice-status.completed { color:#17653b; background:#ccebd9; }
.purchase-dialog { width:min(760px,calc(100% - 24px)); }
.allocation-form { margin-top:20px; padding:18px; background:var(--paper); border:1px solid var(--line); border-radius:13px; }
.allocation-form label:first-child,.allocation-form label:nth-child(2) { margin-top:0; }
.allocation-preview { margin-top:22px; }
.allocation-preview .section-head { align-items:center; }
.allocation-preview .section-head>strong { color:var(--primary); font-size:18px; }
.allocation-row { background:white; }
.delete-allocation { padding:6px 9px; color:var(--danger); background:#fff2ef; border:0; border-radius:7px; font-size:12px; font-weight:700; }

@media (max-width:600px) {
 .camera-capture { padding:24px 14px; }
 .camera-capture span { width:64px; height:64px; font-size:30px; }
 .purchase-records { padding:17px; }
 .purchase-grid { grid-template-columns:1fr; }
 .invoice-photo { height:210px; }
 .purchase-dialog form { padding:18px; }
 .allocation-form { padding:14px; }
}


/* Grupos expansíveis do menu */
.admin-nav .nav-group-toggle { justify-content:space-between; margin-top:17px; padding:9px 11px; color:#9fc0e1; background:transparent; border-radius:8px; letter-spacing:.13em; text-transform:uppercase; }
.admin-nav .nav-group-toggle:first-child { margin-top:12px; }
.admin-nav .nav-group-toggle:hover { color:white; background:#ffffff0b; }
.admin-nav .nav-group-toggle b { font-size:10px; font-weight:700; }
.admin-nav .nav-group-toggle span { width:auto; font-size:17px; transition:transform .2s ease; }
.admin-nav .nav-group-toggle[aria-expanded="false"] span { transform:rotate(-90deg); }
.nav-group-items { display:grid; gap:5px; }
