:root{
    --green:#72cf0b;
    --green-dark:#57a504;
    --green-soft:#edf8df;
    --ink:#111711;
    --ink-2:#1d261d;
    --muted:#6d776d;
    --line:#dfe5dd;
    --bg:#f4f7f3;
    --white:#fff;
    --red:#c53c3c;
    --red-soft:#fff0f0;
    --amber:#9b6800;
    --amber-soft:#fff6da;
    --shadow:0 18px 55px rgba(23,36,20,.08);
    --radius:18px;
}
*{box-sizing:border-box}
html{font-size:16px}
body{margin:0;color:var(--ink);background:var(--bg);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}
a{color:inherit}
svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.eyebrow{display:block;margin-bottom:10px;color:var(--green-dark);font-size:.7rem;font-weight:900;letter-spacing:.18em}
.brand-mark{display:grid;width:58px;height:58px;place-items:center;border-radius:17px;color:#10170d;background:var(--green)}
.brand-mark svg{width:31px;height:31px;stroke-width:1.8}
.brand-mark.small{width:42px;height:42px;border-radius:12px}
.brand-mark.small svg{width:25px;height:25px}
.button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border:1px solid transparent;border-radius:10px;text-decoration:none;font-weight:800;line-height:1.15;cursor:pointer;transition:.18s ease}
.button svg{width:18px;height:18px}
.button-primary{color:#10170d;background:var(--green);border-color:var(--green)}
.button-primary:hover{background:#7bdf0a;border-color:#7bdf0a;transform:translateY(-1px)}
.button-secondary{color:#263025;background:var(--white);border-color:#cfd7cc}
.button-secondary:hover{border-color:#9eaa9a;background:#fafcfa}
.button-ghost{color:#45633b;background:#f4f8f1;border-color:#dbe7d5}
.button-ghost:hover{color:#315b22;border-color:#aed195;background:#edf8e5}
.button-block{width:100%;min-height:51px}

/* Login */
.login-body{min-height:100vh;background:#0d120d}
.login-shell{display:grid;min-height:100vh;grid-template-columns:minmax(360px,1.05fr) minmax(430px,.95fr)}
.login-brand{position:relative;display:flex;overflow:hidden;flex-direction:column;justify-content:center;padding:8vw;color:#fff;background:radial-gradient(circle at 10% 90%,rgba(114,207,11,.17),transparent 35%),linear-gradient(145deg,#0d120d,#151e14)}
.login-brand:after{position:absolute;right:-160px;bottom:-160px;width:440px;height:440px;border:1px solid rgba(114,207,11,.16);border-radius:50%;box-shadow:0 0 0 80px rgba(114,207,11,.025),0 0 0 160px rgba(114,207,11,.018);content:""}
.login-brand>span{margin-top:30px;color:var(--green);font-size:.72rem;font-weight:900;letter-spacing:.22em}
.login-brand h1{max-width:620px;margin:17px 0;font-size:clamp(3rem,6vw,6.6rem);line-height:.92;letter-spacing:-.065em}
.login-brand>p{max-width:560px;margin:5px 0;color:#b7c0b5;font-size:1.08rem;line-height:1.65}
.login-benefits{display:flex;flex-wrap:wrap;gap:12px 22px;margin-top:38px;color:#d9e0d7;font-size:.9rem}
.login-benefits div{display:flex;align-items:center;gap:8px}
.login-benefits svg{width:17px;height:17px;color:var(--green)}
.login-card-wrap{display:grid;place-items:center;padding:42px;background:#f6f8f5}
.login-card{width:min(100%,450px);padding:42px;border:1px solid var(--line);border-radius:22px;background:var(--white);box-shadow:var(--shadow)}
.login-card h2{margin:0 0 7px;font-size:2rem;letter-spacing:-.035em}
.login-card>p{margin:0 0 28px;color:var(--muted)}
.login-card label{display:block;margin:18px 0;color:#303930;font-size:.88rem;font-weight:800}
.login-card input{width:100%;height:50px;margin-top:8px;padding:0 14px;border:1px solid #cfd7cd;border-radius:10px;outline:0;background:#fbfcfb}
.login-card input:focus{border-color:var(--green-dark);box-shadow:0 0 0 4px rgba(114,207,11,.12);background:#fff}
.login-card>small{display:block;margin-top:18px;color:#879085;text-align:center;line-height:1.45}
.password-field{position:relative}
.password-field input{padding-right:84px}
.password-toggle{position:absolute;right:8px;bottom:7px;height:36px;border:0;color:#4f5b4d;background:transparent;font-size:.76rem;font-weight:800;cursor:pointer}

/* Estrutura */
.topbar{position:sticky;z-index:20;top:0;border-bottom:1px solid #202820;color:#fff;background:#101510;box-shadow:0 7px 26px rgba(0,0,0,.12)}
.topbar-inner{display:flex;width:min(1220px,calc(100% - 40px));min-height:72px;align-items:center;justify-content:space-between;margin:0 auto}
.panel-logo{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none}
.panel-logo>b{display:block}
.panel-logo span:last-child{display:flex;flex-direction:column}
.panel-logo b{font-size:1.08rem;line-height:1.1}
.panel-logo small{margin-top:4px;color:#9da89a;font-size:.7rem}
.topnav{display:flex;align-items:center;gap:5px}
.topnav>a,.topnav button{display:flex;height:42px;align-items:center;gap:8px;padding:0 13px;border:0;border-radius:9px;color:#c8d0c5;background:transparent;text-decoration:none;font-size:.84rem;font-weight:750;cursor:pointer}
.topnav>a:hover,.topnav button:hover,.topnav>a.active{color:#fff;background:#222b21}
.topnav>a.active{color:var(--green)}
.topnav svg{width:17px;height:17px}
.logout-form{margin:0 0 0 5px;padding-left:5px;border-left:1px solid #30392f}
.mobile-menu-button{display:none;border:1px solid #3a4438;border-radius:8px;color:#fff;background:#202820;font-size:1.25rem}
.panel-main{width:min(1220px,calc(100% - 40px));margin:0 auto;padding:38px 0 70px}
.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:26px}
.page-heading h1{margin:0 0 7px;font-size:2.45rem;line-height:1;letter-spacing:-.045em}
.page-heading p{margin:0;color:var(--muted)}
.form-heading{align-items:center}
.back-link{display:inline-block;margin-bottom:15px;color:#687265;font-size:.82rem;font-weight:750;text-decoration:none}
.back-link:hover{color:var(--green-dark)}

/* Avisos */
.flash{display:flex;align-items:center;gap:12px;margin:0 0 18px;padding:14px 16px;border:1px solid;border-radius:11px;background:#fff}
.flash>span{width:9px;height:9px;flex:0 0 auto;border-radius:50%;background:currentColor}
.flash p{flex:1;margin:0;font-weight:700}
.flash-close{border:0;color:inherit;background:transparent;font-size:1.3rem;cursor:pointer}
.flash-success{border-color:#b8dda1;color:#3d7d1c;background:#f1faeb}
.flash-error{border-color:#efbebe;color:#a72c2c;background:#fff3f3}
.flash-warning{border-color:#edda9d;color:#88600a;background:#fffaea}

/* Listagem */
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px}
.stat-card{position:relative;overflow:hidden;padding:20px 22px;border:1px solid var(--line);border-radius:15px;background:var(--white);box-shadow:0 5px 22px rgba(25,39,21,.035);text-decoration:none;transition:.18s ease}
.stat-card:after{position:absolute;top:0;left:0;width:100%;height:3px;background:transparent;content:""}
.stat-card:hover,.stat-card.active{border-color:#bddbaf;transform:translateY(-2px);box-shadow:0 10px 28px rgba(25,39,21,.07)}
.stat-card.active:after{background:var(--green)}
.stat-card span{display:block;color:#697467;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.stat-card b{display:block;margin:6px 0 3px;font-size:2.05rem;letter-spacing:-.04em}
.stat-card small{color:#8a9388}
.stat-card.available b{color:#4d960d}
.stat-card.sold b{color:#9e4545}
.vehicle-panel{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow)}
.vehicle-panel-head{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:22px 24px;border-bottom:1px solid var(--line)}
.vehicle-panel-head h2{margin:0 0 4px;font-size:1.15rem}
.vehicle-panel-head p{margin:0;color:var(--muted);font-size:.82rem}
.filters{display:flex;align-items:center;gap:8px}
.search-field{position:relative}
.search-field svg{position:absolute;top:12px;left:12px;width:18px;height:18px;color:#7f897c}
.search-field input{width:260px;height:43px;padding:0 13px 0 39px;border:1px solid #d3dad1;border-radius:10px;outline:none;background:#fafbfa}
.search-field input:focus{border-color:var(--green-dark);box-shadow:0 0 0 3px rgba(114,207,11,.1)}
.clear-filter{color:#677265;font-size:.78rem;font-weight:700}
.vehicle-list{display:flex;flex-direction:column}
.vehicle-row{display:grid;grid-template-columns:132px minmax(0,1fr) auto;align-items:center;gap:20px;padding:18px 22px;border-bottom:1px solid #e9ede7}
.vehicle-row:last-child{border-bottom:0}
.vehicle-row:hover{background:#fbfcfb}
.vehicle-photo{display:grid;width:132px;height:91px;overflow:hidden;place-items:center;border-radius:11px;color:#8c9789;background:#edf1eb}
.vehicle-photo img{width:100%;height:100%;object-fit:cover}
.vehicle-photo svg{width:32px;height:32px}
.vehicle-title-line{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.vehicle-title-line h3{margin:0;font-size:1.05rem}
.status-badge{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;font-size:.66rem;font-weight:900;letter-spacing:.03em;text-transform:uppercase}
.status-badge.available{color:#3f800d;background:#eaf7dd}
.status-badge.sold{color:#a03434;background:#f9e7e7}
.status-badge.draft{color:#78600c;background:#fff3c9}
.vehicle-meta{display:flex;gap:25px;margin-top:14px}
.vehicle-meta span{display:flex;min-width:90px;flex-direction:column;gap:3px}
.vehicle-meta small{color:#879085;font-size:.66rem;font-weight:750;text-transform:uppercase;letter-spacing:.05em}
.vehicle-meta b{font-size:.85rem}
.vehicle-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px}
.vehicle-actions form{margin:0}
.vehicle-actions .button{min-height:39px;padding:8px 11px;font-size:.76rem}
.icon-button{display:grid;width:39px;height:39px;place-items:center;border:1px solid #e1e5df;border-radius:9px;background:#fff;cursor:pointer}
.icon-button svg{width:17px;height:17px}
.icon-button.danger{color:#a33939}
.icon-button.danger:hover{border-color:#e8b5b5;background:var(--red-soft)}
.empty-state{display:flex;min-height:360px;align-items:center;justify-content:center;flex-direction:column;padding:50px;text-align:center}
.empty-state>span{display:grid;width:72px;height:72px;place-items:center;border-radius:20px;color:#68b81a;background:#edf7e4}
.empty-state>span svg{width:37px;height:37px}
.empty-state h3{margin:19px 0 6px;font-size:1.3rem}
.empty-state p{margin:0 0 20px;color:var(--muted)}
.pagination{display:flex;justify-content:center;gap:6px;padding:20px;border-top:1px solid var(--line)}
.pagination a{display:grid;width:38px;height:38px;place-items:center;border:1px solid var(--line);border-radius:8px;text-decoration:none;font-weight:800}
.pagination a:hover,.pagination a.active{border-color:var(--green);background:var(--green)}

/* Formulário */
.vehicle-form{display:flex;flex-direction:column;gap:18px}
.form-card{padding:27px;border:1px solid var(--line);border-radius:var(--radius);background:var(--white);box-shadow:0 8px 30px rgba(25,39,21,.045)}
.form-card-title{display:flex;align-items:center;gap:14px;margin-bottom:25px;padding-bottom:19px;border-bottom:1px solid #e8ece6}
.form-card-title>b{display:grid;width:40px;height:40px;flex:0 0 auto;place-items:center;border-radius:12px;color:#4f960f;background:var(--green-soft)}
.form-card-title h2{margin:0 0 4px;font-size:1.17rem}
.form-card-title p{margin:0;color:var(--muted);font-size:.84rem}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px 22px}
.form-grid label,.field-label{display:block;color:#303930;font-size:.82rem;font-weight:800}
.form-grid label.span-2{grid-column:1/-1}
.form-grid em,.field-label em{color:#c73737;font-style:normal}
.form-grid input,.form-grid select,.form-grid textarea{width:100%;margin-top:8px;padding:11px 13px;border:1px solid #ccd5c9;border-radius:10px;color:#121712;outline:0;background:#fbfcfb}
.form-grid input,.form-grid select{height:47px}
.form-grid textarea{min-height:145px;resize:vertical;line-height:1.5}
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:var(--green-dark);box-shadow:0 0 0 4px rgba(114,207,11,.1);background:#fff}
.form-grid label>small{display:block;margin-top:6px;color:#899187;font-size:.7rem;font-weight:500}
.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}
.upload-box{position:relative;display:block;margin-top:8px;cursor:pointer}
.upload-box input{position:absolute;overflow:hidden;width:1px;height:1px;opacity:0}
.upload-preview,.gallery-upload{display:grid;min-height:245px;overflow:hidden;place-items:center;border:2px dashed #cbd5c7;border-radius:14px;color:#5d6959;background:#f8faf7;text-align:center;transition:.18s ease}
.upload-preview:hover,.gallery-upload:hover{border-color:var(--green-dark);background:#f4faee}
.upload-preview>span,.gallery-upload>span{display:flex;align-items:center;justify-content:center;gap:8px;flex-direction:column;padding:25px}
.upload-preview svg{width:40px;height:40px;color:#5ba510}
.gallery-upload svg{width:31px;height:31px;color:#5ba510}
.upload-preview small,.gallery-upload small{color:#8b9588;font-weight:500}
.upload-preview.has-image{border-style:solid}
.upload-preview img{width:100%;height:245px;object-fit:cover}
.help-text{display:block;margin-top:7px;color:#7e887b;font-size:.72rem}
.new-files-list{margin-top:11px;color:#4c5749;font-size:.76rem;line-height:1.5}
.new-gallery-notice{margin-bottom:9px;padding:9px 11px;border:1px solid #bddd9f;border-radius:9px;color:#3e7818;background:#f0f9e8;font-weight:800}
.new-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.new-gallery-item{position:relative;min-width:0;overflow:hidden;border:1px solid #d8e0d5;border-radius:9px;background:#fff}
.new-gallery-item img{display:block;width:100%;height:82px;object-fit:cover}
.new-gallery-item b{position:absolute;top:6px;left:6px;display:grid;width:22px;height:22px;place-items:center;border-radius:50%;color:#111;background:var(--green);font-size:.66rem;box-shadow:0 2px 7px rgba(0,0,0,.2)}
.new-gallery-item span{display:block;overflow:hidden;padding:7px;color:#596356;font-size:.66rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}
.existing-gallery{margin-top:25px;padding-top:21px;border-top:1px solid #e8ece6}
.existing-gallery h3{margin:0 0 13px;font-size:.88rem}
.gallery-thumbs{display:grid;grid-template-columns:repeat(6,1fr);gap:11px}
.gallery-thumb{position:relative;overflow:hidden;border:1px solid #dbe1d8;border-radius:10px;background:#f5f7f4}
.gallery-thumb img{display:block;width:100%;height:95px;object-fit:cover}
.gallery-thumb span{display:flex;align-items:center;justify-content:center;gap:5px;padding:8px;color:#6d3e3e;background:#fff;font-size:.67rem;font-weight:750}
.form-actions{position:sticky;z-index:8;bottom:12px;display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:14px;border:1px solid #d7ded4;border-radius:14px;background:rgba(255,255,255,.94);box-shadow:0 12px 35px rgba(19,32,16,.13);backdrop-filter:blur(10px)}

@media(max-width:1020px){
    .vehicle-row{grid-template-columns:115px minmax(0,1fr)}
    .vehicle-photo{width:115px;height:83px}
    .vehicle-actions{grid-column:1/-1;justify-content:flex-end;padding-top:3px}
    .gallery-thumbs{grid-template-columns:repeat(4,1fr)}
}
@media(max-width:820px){
    .login-shell{grid-template-columns:1fr}
    .login-brand{min-height:380px;padding:55px 7vw}
    .login-brand h1{font-size:3.6rem}
    .login-card-wrap{padding:35px 20px}
    .topbar-inner{position:relative;width:calc(100% - 26px)}
    .mobile-menu-button{display:block;width:42px;height:42px}
    .topnav{position:absolute;top:66px;right:0;display:none;width:min(320px,calc(100vw - 26px));align-items:stretch;flex-direction:column;padding:10px;border:1px solid #313b30;border-radius:12px;background:#121812;box-shadow:0 18px 42px rgba(0,0,0,.25)}
    .topnav.open{display:flex}
    .topnav>a,.topnav button{width:100%;justify-content:flex-start}
    .logout-form{margin:4px 0 0;padding:5px 0 0;border-top:1px solid #30392f;border-left:0}
    .panel-main{width:calc(100% - 26px);padding-top:27px}
    .page-heading{align-items:flex-start;flex-direction:column}
    .page-heading>.button{width:100%}
    .stats-grid{grid-template-columns:1fr 1fr}
    .stats-grid .stat-card:first-child{grid-column:1/-1}
    .vehicle-panel-head{align-items:stretch;flex-direction:column}
    .filters{align-items:stretch}
    .search-field{flex:1}
    .search-field input{width:100%}
    .photo-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
    .login-brand{min-height:340px;padding:42px 24px}
    .login-brand h1{font-size:3rem}
    .login-benefits{align-items:flex-start;flex-direction:column}
    .login-card{padding:30px 22px}
    .page-heading h1{font-size:2rem}
    .stats-grid{grid-template-columns:1fr 1fr;gap:10px}
    .stat-card{padding:16px}
    .stat-card b{font-size:1.65rem}
    .vehicle-panel{overflow:visible;border:0;background:transparent;box-shadow:none}
    .vehicle-panel-head{padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff}
    .filters{flex-wrap:wrap}
    .search-field{flex-basis:100%}
    .vehicle-list{gap:12px;margin-top:12px}
    .vehicle-row{grid-template-columns:94px minmax(0,1fr);gap:14px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 7px 24px rgba(25,39,21,.045)}
    .vehicle-photo{width:94px;height:78px}
    .vehicle-title-line{align-items:flex-start;flex-direction:column;gap:7px}
    .vehicle-title-line h3{font-size:.96rem}
    .vehicle-meta{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
    .vehicle-meta span{min-width:0;padding:8px;border-radius:8px;background:#f6f8f5}
    .vehicle-meta b{overflow:hidden;font-size:.74rem;text-overflow:ellipsis}
    .vehicle-actions{display:grid;grid-template-columns:1fr 1fr auto;grid-column:1/-1}
    .vehicle-actions .button{width:100%}
    .form-card{padding:20px 16px}
    .form-grid{grid-template-columns:1fr}
    .form-grid label.span-2{grid-column:auto}
    .gallery-thumbs{grid-template-columns:repeat(3,1fr)}
    .new-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .gallery-thumb img{height:78px}
    .form-actions{align-items:stretch;flex-direction:column;bottom:7px}
    .form-actions .button{width:100%}
}
@media(max-width:410px){
    .stats-grid{grid-template-columns:1fr}
    .stats-grid .stat-card:first-child{grid-column:auto}
    .vehicle-row{grid-template-columns:82px minmax(0,1fr)}
    .vehicle-photo{width:82px;height:70px}
    .vehicle-actions{grid-template-columns:1fr}
    .vehicle-actions .icon-button{width:100%}
    .gallery-thumbs{grid-template-columns:repeat(2,1fr)}
}
