:root{--navy:#0B2A4A;--blue:#1D6FE0;--blue-dark:#0B4FBF;--cyan:#2AA9E0;--ink:#0F172A;--muted:#64748B;--line:#E2E8F0;--bg:#F5F9FC;--white:#fff;--green:#16A34A;--shadow:0 1px 2px rgba(15,23,42,.06);--shadow-md:0 4px 12px rgba(15,23,42,.08);--radius:12px}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,system-ui,sans-serif;color:var(--ink);background:var(--bg)}button,input{font:inherit}button{cursor:pointer}.hidden{display:none!important}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.18fr .82fr;background:#fff}.login-art{position:relative;overflow:hidden;padding:48px 7vw;color:white;background:radial-gradient(circle at 25% 35%,rgba(32,184,233,.32),transparent 27%),linear-gradient(145deg,#052f54 0%,#075d9d 55%,#063d6c 100%)}.brand{display:flex;align-items:center;gap:15px}.brand img{width:64px;height:64px;object-fit:contain}.brand strong{font-size:27px;letter-spacing:.045em}.brand span{display:block;font-size:10px;letter-spacing:.21em;opacity:.82;margin-top:4px}.hero-copy{max-width:690px;margin-top:22vh}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.18em;color:var(--cyan)}.hero-copy h1{font-size:clamp(38px,4.5vw,70px);line-height:1.04;margin:18px 0}.hero-copy p{max-width:600px;font-size:18px;line-height:1.7;color:#dceefa}.water-lines{position:absolute;left:-8%;right:-5%;bottom:7%;height:180px;transform:rotate(-2deg)}.water-lines i{position:absolute;width:110%;height:65px;border-top:4px solid rgba(86,214,255,.7);border-radius:50%}.water-lines i:nth-child(2){top:34px;border-color:rgba(255,255,255,.5)}.water-lines i:nth-child(3){top:70px;border-color:rgba(33,177,231,.75)}.login-panel{display:grid;place-items:center;padding:45px}.login-card{width:min(430px,100%)}.mobile-brand{display:none}.status-pill,.badge{display:inline-flex;border-radius:999px;padding:7px 11px;background:#EEF2FF;color:var(--blue);font-size:11px;font-weight:700}.login-card h2{font-size:36px;margin:26px 0 8px}.muted{color:var(--muted);line-height:1.6}.login-card>label{display:block;font-size:13px;font-weight:700;margin-top:24px}.login-card input{width:100%;height:52px;margin-top:8px;border:1px solid #d9e5ee;border-radius:12px;padding:0 15px;outline:none;background:#fbfdff}.login-card input:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(8,120,201,.1)}.password-wrap{position:relative}.password-wrap input{padding-right:50px}.password-wrap button{position:absolute;right:7px;top:15px;border:0;background:none;color:var(--muted)}.form-row{display:flex;justify-content:space-between;align-items:center;margin:18px 0}.check{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:8px}.check input{width:auto;height:auto;margin:0}.link-button{border:0;background:none;color:var(--blue);font-weight:700;font-size:13px}.primary-button,.demo-button{width:100%;height:54px;border:0;border-radius:12px;font-weight:800}.primary-button{display:flex;justify-content:space-between;align-items:center;padding:0 20px;background:var(--blue);color:white;box-shadow:0 4px 12px rgba(79,70,229,.25)}.demo-button{margin-top:12px;background:#F1F5F9;color:var(--ink)}.message{min-height:22px;font-size:13px;color:#d14343}.app-shell{min-height:100vh;display:grid;grid-template-columns:270px 1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:264px;background:#0F172A;color:#CBD5E1;padding:20px 14px;display:flex;flex-direction:column;z-index:20;border-right:1px solid #1E293B}.side-brand{display:flex;align-items:center;gap:11px;padding:0 6px 20px;border-bottom:1px solid #1E293B}.side-brand img{width:48px;height:48px;object-fit:contain}.side-brand strong{display:block;color:#fff;font-size:18px}.side-brand span{font-size:9px;letter-spacing:.2em;color:#75d5f2}.sidebar nav{padding-top:20px;flex:1;overflow-y:auto;min-height:0}
.sidebar nav::-webkit-scrollbar{width:5px}
.sidebar nav::-webkit-scrollbar-thumb{background:#334155;border-radius:999px}.sidebar nav p{font-size:9px;letter-spacing:.18em;color:#6fa6c7;margin:25px 13px 9px}.nav-item{width:100%;display:flex;align-items:center;border:0;background:transparent;color:#94A3B8;text-align:left;padding:10px 12px;border-radius:8px;margin:2px 0;font-weight:500;font-size:13.5px;text-decoration:none;box-sizing:border-box}.nav-item span{display:inline-block;width:26px;color:#94A3B8}.nav-item.active{background:linear-gradient(90deg,rgba(29,111,224,.22),rgba(29,111,224,.03));color:#fff;position:relative}
.nav-item.active:before{content:"";position:absolute;left:-14px;top:6px;bottom:6px;width:3px;border-radius:0 3px 3px 0;background:#2AA9E0}.nav-item.active span{color:#6FC5EE}.sidebar-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding:18px 7px 0}
.brand-tagline{display:flex;align-items:flex-start;gap:8px;margin-bottom:14px}
.brand-tagline span{font-size:16px}
.brand-tagline strong{display:block;font-size:12.5px;color:#fff}
.brand-tagline small{display:block;font-size:10.5px;color:#94A3B8;line-height:1.4;margin-top:2px}.system-health{display:flex;align-items:center;gap:10px}.system-health i{width:9px;height:9px;border-radius:50%;background:#32d59a;box-shadow:0 0 0 5px rgba(50,213,154,.13)}.system-health strong,.system-health span{display:block;font-size:11px}.system-health span{color:#83a9c0;margin-top:3px}.main{grid-column:2}.topbar{height:64px;background:#fff;border-bottom:1px solid var(--line);padding:0 28px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10}.top-title span{font-size:9px;letter-spacing:.16em;color:var(--blue);font-weight:800}.top-title h1{font-size:22px;margin:4px 0 0}.top-actions{display:flex;align-items:center;gap:10px}.icon-button{width:42px;height:42px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink)}.menu-button{display:none}.profile-button{display:flex;align-items:center;gap:10px;border:0;background:#f6f9fb;border-radius:12px;padding:6px 11px}.profile-button>span{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;background:var(--blue);color:#fff;font-size:11px;font-weight:700}.profile-button strong,.profile-button small{display:block;text-align:left}.profile-button small{color:var(--muted);font-size:10px;margin-top:2px}.content{padding:30px 34px 60px}.welcome-card{min-height:150px;border-radius:var(--radius);padding:28px 34px;background:linear-gradient(120deg,var(--navy),var(--blue-dark) 60%,var(--blue));color:#fff;display:flex;align-items:center;justify-content:space-between;overflow:hidden;position:relative;box-shadow:0 12px 30px rgba(11,79,191,.25)}.welcome-card:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:34px;background:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 400 40%22 preserveAspectRatio=%22none%22%3E%3Cpath d=%22M0 20 Q50 0 100 20 T200 20 T300 20 T400 20 V40 H0 Z%22 fill=%22rgba(255,255,255,0.08)%22/%3E%3C/svg%3E') repeat-x;background-size:400px 34px;opacity:.9}
.welcome-card:before{content:"";position:absolute;right:-40px;top:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(42,169,224,.35),transparent 70%)}.welcome-card h2{font-size:26px;font-weight:800;margin:4px 0;letter-spacing:-.01em;color:#fff}.welcome-card h2 em{font-style:normal;color:#7FD4F5}.welcome-card p{color:#CFE6FA;max-width:650px;line-height:1.55;font-size:14px;margin:0}.welcome-card img{width:110px;height:110px;object-fit:contain;position:relative;z-index:1;filter:drop-shadow(0 10px 18px rgba(0,0,0,.35))}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:22px 0}.metric{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px;display:flex;gap:14px;box-shadow:var(--shadow)}
.kpi-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:18px}
.stock-alert{background:#FFFBEB;border:1px solid #FDE68A;border-radius:var(--radius);padding:16px 18px;margin-bottom:18px}
.notif-wrap{position:relative}
.search-trigger{margin-left:22px;display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 14px;color:var(--muted);font-size:12.5px;cursor:pointer}
.search-trigger:hover{border-color:var(--blue);color:var(--blue)}
.search-trigger kbd{background:var(--bg);border:1px solid var(--line);border-radius:5px;padding:1px 6px;font-size:10px;font-family:inherit}
.search-modal{position:fixed;inset:0;background:rgba(15,23,42,.5);z-index:200;display:flex;align-items:flex-start;justify-content:center;padding-top:12vh}
.search-modal-box{width:min(560px,92vw);background:#fff;border-radius:14px;box-shadow:0 30px 70px rgba(0,0,0,.35);overflow:hidden}
.search-modal-box input{width:100%;border:0;border-bottom:1px solid var(--line);padding:18px 20px;font-size:16px;outline:none;box-sizing:border-box}
.search-results{max-height:50vh;overflow-y:auto}
.search-group small{display:block;padding:10px 18px 4px;font-size:10.5px;font-weight:800;color:var(--muted);letter-spacing:.06em}
.search-item{display:flex;justify-content:space-between;width:100%;text-align:left;border:0;background:#fff;padding:10px 18px;font-size:13.5px;color:var(--ink);cursor:pointer}
.search-item:hover{background:var(--bg)}
.search-item span{color:var(--muted);font-size:12px}
.notif-badge{position:absolute;top:2px;right:2px;background:#DC2626;color:#fff;font-size:9.5px;font-weight:800;min-width:15px;height:15px;border-radius:999px;display:flex;align-items:center;justify-content:center;padding:0 3px}
.notif-panel{position:absolute;top:calc(100% + 10px);right:0;width:300px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:50;overflow:hidden}
.notif-panel-head{padding:12px 16px;font-weight:800;font-size:13px;border-bottom:1px solid var(--line);color:var(--ink)}
.notif-panel-body{max-height:280px;overflow-y:auto}
.notif-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:0;background:#fff;padding:12px 16px;font-size:12.5px;color:var(--ink);border-bottom:1px solid var(--line);cursor:pointer}
.notif-item:last-child{border-bottom:0}
.notif-item:hover{background:var(--bg)}
.notif-item[data-page=""]{cursor:default}
.notif-item[data-page=""]:hover{background:#fff}
.stock-alert-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.stock-alert-head span{font-size:20px}
.stock-alert-head strong{display:block;font-size:14px;color:#92400E}
.stock-alert-head small{color:#B45309;font-size:12px}
.stock-alert-head .secondary-button{margin-left:auto;background:#fff}
.stock-alert-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.stock-alert-row{display:flex;justify-content:space-between;gap:8px;background:#fff;border:1px solid #FDE68A;border-radius:8px;padding:8px 12px;font-size:12.5px}
.stock-alert-row b{color:#B45309}
.stock-alert-more{display:block;margin-top:8px;color:#92400E;font-size:11.5px}
.kpi-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.kpi-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--kpi-color,var(--blue))}
.kpi-icon{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:14px;background:color-mix(in srgb,var(--kpi-color,var(--blue)) 14%,#fff);color:var(--kpi-color,var(--blue));margin-bottom:8px}
.kpi-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:6px}
.kpi-label{font-size:11.5px;font-weight:700;color:var(--muted);letter-spacing:.01em}
.kpi-trend{font-size:11px;font-weight:800;padding:2px 7px;border-radius:999px;white-space:nowrap}
.kpi-trend.up{background:#DCFCE7;color:#15803D}
.kpi-trend.down{background:#FEE2E2;color:#B91C1C}
.kpi-trend.flat{background:#F1F5F9;color:var(--muted)}
.kpi-value{display:block;font-size:22px;font-weight:800;color:var(--ink);letter-spacing:-.01em;margin-bottom:8px}
.kpi-spark{width:100%;height:32px;display:block}
.kpi-spark-line{fill:none;stroke:var(--kpi-color,var(--blue));stroke-width:2}
.kpi-spark-area{fill:var(--kpi-color,var(--blue));opacity:.1;stroke:none}
.kpi-caption{display:block;margin-top:4px;font-size:10.5px;color:var(--muted)}
@media(max-width:1200px){.kpi-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.kpi-grid{grid-template-columns:1fr}}.metric-icon{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:9px;background:#EEF2FF;color:var(--blue);font-size:17px}.metric span,.metric small{display:block;color:var(--muted);font-size:11px}.metric strong{font-size:28px;display:block;margin:5px 0}.dashboard-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:20px}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}.panel-head{display:flex;justify-content:space-between;align-items:start}.panel h3{margin:5px 0 20px}.badge.success{background:#e7f8f1;color:var(--green)}.progress-list>div{display:grid;grid-template-columns:1fr auto;gap:9px;margin:18px 0}.progress-list span{font-size:13px;font-weight:700}.progress-list b{font-size:11px;color:var(--muted)}.progress-list i{grid-column:1/3;height:7px;background:#edf3f7;border-radius:10px;overflow:hidden}.progress-list u{display:block;height:100%;background:var(--blue);border-radius:10px}.details{margin:0}.details div{padding:13px 0;border-bottom:1px solid var(--line)}.details dt{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.details dd{margin:6px 0 0;font-size:13px;font-weight:700}.data-page{display:grid;gap:20px}.page-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}.page-card h2{margin-top:0}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:14px 12px;border-bottom:1px solid var(--line);text-align:left;font-size:12px}.table th{color:var(--muted);font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;background:#F8FAFC}.empty{padding:45px;text-align:center;color:var(--muted)}.roadmap{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.roadmap article{border:1px solid var(--line);border-radius:var(--radius);padding:18px}.roadmap b{color:var(--blue)}@media(max-width:1050px){.metric-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.roadmap{grid-template-columns:1fr 1fr}}@media(max-width:760px){.login-shell{grid-template-columns:1fr}.login-art{display:none}.login-panel{padding:28px 20px}.mobile-brand{display:flex;align-items:center;gap:10px;margin-bottom:30px;color:var(--navy)}.mobile-brand img{width:48px;height:48px}.app-shell{display:block}.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:none}.main{grid-column:auto}.topbar{height:60px;padding:0 16px}.menu-button{display:block}.top-title span{display:none}.top-title h1{font-size:17px}.profile-button div,.profile-button b,.top-actions>.icon-button{display:none}.content{padding:18px 15px 40px}.welcome-card{padding:20px 22px;min-height:auto}.welcome-card img{display:none}.welcome-card h2{font-size:18px}.metric-grid{grid-template-columns:1fr}.roadmap{grid-template-columns:1fr}.table-wrap{overflow:auto}}
.catalog-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.catalog-filters{display:flex;gap:10px;align-items:center;margin-bottom:18px;flex-wrap:wrap}
.catalog-filters input,.catalog-filters select{border:1px solid var(--line);border-radius:9px;padding:9px 12px;font-size:13px;background:#fff}
.catalog-filters input{flex:1;min-width:220px}
.filter-count{margin-left:auto;color:var(--muted);font-size:12.5px;font-weight:700}.catalog-toolbar h2{margin:0}.primary-action,.secondary-button{border:0;border-radius:10px;padding:11px 16px;font-weight:800}.primary-action{background:var(--blue);color:#fff;border-radius:8px}.secondary-button{background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:8px}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.product-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.product-photo{height:170px;background:#edf7fc;display:grid;place-items:center;position:relative}.product-photo img{width:100%;height:100%;object-fit:cover}.product-photo>span{font-size:52px}.product-photo i{position:absolute;top:12px;right:12px;border-radius:999px;padding:6px 9px;font-size:10px;font-style:normal;font-weight:800}.product-photo i.on{background:#e7f8f1;color:#15976b}.product-photo i.off{background:#fbeaea;color:#b83c3c}.product-body{padding:18px}.product-body small{color:var(--blue);font-weight:800}.product-body h3{margin:8px 0 16px}.product-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.product-meta b{font-size:19px}.product-meta span{font-size:11px;color:var(--muted)}.variant-summary{font-size:11px;color:var(--muted);line-height:1.5;min-height:34px}.product-actions{display:flex;gap:8px}.product-actions button{flex:1}.catalog-form{background:#fff;border:1px solid var(--line);border-radius:17px;padding:25px;margin-bottom:20px}.form-title{display:flex;justify-content:space-between}.form-title h2{margin:5px 0 20px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.form-grid label,.compact-form label{font-size:12px;font-weight:700}.form-grid input,.form-grid select,.form-grid textarea,.compact-form input,.compact-form textarea{width:100%;margin-top:7px;border:1px solid #d9e5ee;border-radius:10px;padding:11px;background:#fbfdff}.form-grid .wide{grid-column:1/-1}.check-field{display:flex;align-items:center;gap:8px}.check-field input{width:auto;margin:0}.split-layout{display:grid;grid-template-columns:340px 1fr;gap:20px;align-items:start}.compact-form{display:grid;gap:15px}.compact-form h2{margin-bottom:0}@media(max-width:1100px){.product-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.catalog-toolbar{align-items:flex-start;gap:12px}.product-grid{grid-template-columns:1fr}.form-grid,.split-layout{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}}

/* FORSOFTWARE 1.2.0 — recuperação e diagnóstico */
.setup-link{display:block;text-align:center;margin-top:16px;color:var(--blue);font-weight:700;text-decoration:none}.reset-page{min-height:100vh;padding:32px}.reset-page .login-card{width:min(100%,560px);margin:auto}.password-wrap{position:relative;display:block}.password-wrap input{padding-right:52px}.password-wrap .eye{position:absolute;right:12px;top:50%;transform:translateY(-50%);border:0;background:transparent;cursor:pointer}.password-rules{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:8px 0 18px;font-size:.86rem;color:#74839d}.password-rules .ok{color:#15976b;font-weight:700}.diagnostics{max-width:680px}.check-list{display:grid;gap:10px;margin:22px 0}.check-item{display:flex;gap:12px;align-items:flex-start;padding:13px 15px;border:1px solid #dce8f2;border-radius:14px;background:#f8fbfe}.check-item>b{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#e7eef5}.check-item div{display:grid;gap:3px}.check-item small{color:#74839d;overflow-wrap:anywhere}.check-item.ok>b{background:#dff6eb;color:#137a56}.check-item.warn>b{background:#fff3cf;color:#936c00}.check-item.error>b{background:#ffe3e3;color:#b22f2f}.check-item.wait>b{background:#EEF2FF;color:var(--blue)}@media(max-width:560px){.reset-page{padding:18px}.password-rules{grid-template-columns:1fr}}

.auth-divider{display:flex;align-items:center;gap:12px;margin:14px 0;color:#8796a8;font-size:12px}.auth-divider:before,.auth-divider:after{content:"";height:1px;background:#dbe5ed;flex:1}.google-button{width:100%;height:52px;border:1px solid #d6e0e8;border-radius:12px;background:#fff;color:#263746;display:flex;align-items:center;justify-content:center;gap:12px;font-weight:700;cursor:pointer}.google-button:hover{background:#f7fafc;border-color:#bfcdd8}.google-button:disabled{opacity:.6;cursor:wait}.google-g{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font:800 18px Arial;color:#4285f4}

/* ---- Modernização 3.6.0: transições, hover states, cartões refinados ---- */
.primary-action,.secondary-button,.nav-item,.product-card,.icon-button,.profile-button{transition:transform .15s ease,box-shadow .15s ease,background .15s ease,border-color .15s ease,opacity .15s ease}
.primary-action{position:relative;box-shadow:none}
.primary-action:hover{background:#4338CA}
.primary-action:active{background:#3730A3}
.secondary-button:hover{background:#F8FAFC;border-color:#CBD5E1}
.product-card{box-shadow:var(--shadow)}
.product-card:hover{box-shadow:var(--shadow-md);border-color:#CBD5E1}
.product-photo{background:#F8FAFC}
.product-photo img{transition:transform .3s ease}
.product-card:hover .product-photo img{transform:scale(1.04)}
.nav-item:hover{background:#1E293B;color:#E2E8F0}
.icon-button:hover{border-color:var(--blue);color:var(--blue)}

/* ---- Gerenciar variações ---- */
.variant-manage-btn{width:100%;margin-top:8px;border:1px dashed #C7D2FE;background:#EEF2FF;color:var(--blue);border-radius:8px;padding:9px;font-weight:700;font-size:12px;cursor:pointer;transition:background .15s ease,border-color .15s ease}
.variant-manage-btn:hover{background:#e5f3fb;border-color:#7fc4e6}
.variants-panel{background:#fff;border:1px solid var(--line);border-radius:17px;padding:22px;margin-bottom:20px;box-shadow:0 10px 26px rgba(5,54,95,.07)}
.variants-panel-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}
.variants-panel-head h3{margin:0 0 4px}
.variants-panel-head p{margin:0;color:var(--muted);font-size:12.5px}
.variant-row{display:grid;grid-template-columns:1fr auto auto auto auto;align-items:center;gap:12px;padding:12px 10px;border-bottom:1px solid var(--line)}
.variant-row:last-child{border-bottom:0}
.variant-row .v-title{font-weight:800;font-size:13.5px}
.variant-row .v-sku{color:var(--muted);font-size:11px;margin-top:2px}
.variant-row .v-price{font-weight:800;font-size:13.5px;color:var(--navy);white-space:nowrap}
.variant-row .v-stock{font-size:11.5px;color:var(--muted);white-space:nowrap}
.variant-row .v-stock.low{color:#b8730b;font-weight:800}
.variant-row .v-stock.zero{color:#c43b3b;font-weight:800}
.vswitch{position:relative;display:inline-block;width:42px;height:24px;flex:none}
.vswitch input{opacity:0;width:0;height:0}
.vswitch .vslider{position:absolute;cursor:pointer;inset:0;background:#d9e3ea;transition:.2s;border-radius:999px}
.vswitch .vslider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background:#fff;transition:.2s;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.vswitch input:checked+.vslider{background:var(--green)}
.vswitch input:checked+.vslider:before{transform:translateX(18px)}
.variant-edit-btn{border:0;background:#EEF2FF;color:var(--blue);border-radius:8px;width:32px;height:32px;font-size:14px}
.variant-edit-btn:hover{background:#dcecf7}
.variant-add-form{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line)}
.variant-add-form label{font-size:11px;font-weight:700;color:var(--muted)}
.variant-add-form input{width:100%;margin-top:5px;border:1px solid #d9e5ee;border-radius:9px;padding:9px;background:#fbfdff}
.variant-add-form button{grid-column:span 5;justify-self:start;margin-top:2px}
@media(max-width:900px){.variant-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}.variant-row>div:first-child{flex:1 1 100%}.variant-add-form{grid-template-columns:1fr 1fr}.variant-add-form button{grid-column:span 2}}

/* Fonte Original ERP 3.9.3 — correção definitiva do Mapa Operacional */
.map-panel{position:relative;overflow:hidden}
.op-map{
  display:block;
  width:100%;
  height:420px;
  min-height:420px;
  margin-top:14px;
  border:1px solid var(--line);
  border-radius:14px;
  overflow:hidden;
  background:#eef3f7;
}
.op-map-empty{
  margin-top:12px;
  padding:14px 16px;
  border:1px dashed var(--line);
  border-radius:12px;
  color:var(--muted);
  text-align:center;
  background:#f8fafc;
}
@media(max-width:760px){
  .op-map{height:360px;min-height:360px}
}
@media(max-width:480px){
  .op-map{height:320px;min-height:320px;border-radius:10px}
}


/* ERP 4.0 — marcadores operacionais ampliados */
.op-map-pin-wrap{background:transparent!important;border:0!important}
.op-map-pin{display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 3px 5px rgba(15,23,42,.35));user-select:none}
.op-map-pin-driver{width:52px;height:52px;font-size:38px;line-height:1;border-radius:50%;background:rgba(255,255,255,.94);border:3px solid #1d6fe0;box-shadow:0 0 0 4px rgba(29,111,224,.18)}
.op-map-destination{display:flex;align-items:center;gap:4px;white-space:nowrap;transform:translateY(-2px)}
.op-map-pin-home{width:44px;height:44px;font-size:36px;line-height:1}
.op-map-destination strong{display:inline-flex;align-items:center;height:30px;padding:0 9px;border-radius:999px;background:#fff;color:#b91c1c;border:2px solid #ef4444;box-shadow:0 3px 8px rgba(15,23,42,.25);font-size:13px;font-weight:900}
@media(max-width:480px){.op-map-pin-driver{width:46px;height:46px;font-size:33px}.op-map-pin-home{width:40px;height:40px;font-size:32px}.op-map-destination strong{font-size:12px;height:28px}}

/* ERP 4.5.0 - Produtos Enterprise */
.product-preview-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.catalog-form textarea{font-family:inherit}.catalog-form input[type=url]{min-width:0}

/* ERP 4.6.0 — Produtos Enterprise */
.product-actions{flex-wrap:wrap}.product-actions>*{flex:1 1 110px}.form-grid select[multiple]{min-height:150px}.form-grid label small{display:block;margin-top:6px;font-weight:500}.media-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.media-item{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fbfdff}.media-item img{width:100%;height:160px;object-fit:contain;background:#fff;border-radius:10px}.media-item>div:nth-child(2){display:flex;justify-content:space-between;gap:8px;padding:10px 0;font-size:12px}.media-item span{color:var(--muted)}.media-actions{display:flex;gap:8px;flex-wrap:wrap}.media-actions button{flex:1}

/* Consolidação Produtos — UX operacional */
.view-switch{display:flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#fff}
.view-button{border:0;background:#fff;padding:9px 12px;cursor:pointer;font-size:17px;color:var(--muted)}
.view-button.active{background:var(--blue);color:#fff}
.stock-pill{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:10.5px;font-weight:800;white-space:nowrap}
.stock-pill.zero{background:#fee2e2;color:#991b1b}.stock-pill.critical{background:#fef3c7;color:#92400e}.stock-pill.healthy{background:#dcfce7;color:#166534}
.promo-badge{position:absolute;left:12px;top:12px;background:#7c3aed;color:#fff;padding:6px 9px;border-radius:999px;font-size:10px;font-style:normal;font-weight:900}
.quick-edit{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:10px;background:#f7fbfe;border:1px solid #e2edf4;border-radius:12px;margin-bottom:12px}
.quick-edit label{font-size:10px;color:var(--muted);font-weight:800}.quick-edit input{width:100%;margin-top:4px;border:1px solid #d6e4ee;border-radius:7px;padding:7px;font-size:12px}.quick-edit button{grid-column:1/-1;padding:8px}
.product-table-host{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.product-table input{width:105px;border:1px solid #d6e4ee;border-radius:8px;padding:8px}.table-product{display:grid;gap:3px}.table-product small{color:var(--muted)}.table-actions{display:flex;gap:6px;flex-wrap:wrap}.table-actions button{padding:8px 10px}
@media(max-width:760px){.quick-edit{grid-template-columns:1fr 1fr}.quick-edit button{grid-column:1/-1}.catalog-filters>*{flex:1 1 160px}.filter-count{flex-basis:100%;margin-left:0}.product-table-host{overflow-x:auto}}

/* Mapa operacional — filtros, lista de entregas, indicador online/offline */
.op-map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.op-map-filter-group,.op-map-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.op-map-filter{border:1px solid var(--line);background:#fff;color:#475569;border-radius:999px;padding:8px 11px;font-weight:800;cursor:pointer}
.op-map-filter b{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;margin-left:6px;padding:0 6px;border-radius:999px;background:#f1f5f9;color:#0f172a;font-size:11px}
.op-map-filter.active{background:#0f172a;color:#fff;border-color:#0f172a}.op-map-filter.active b{background:rgba(255,255,255,.18);color:#fff}
.op-map-actions small{color:#64748b}
.op-map-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr);gap:16px;align-items:stretch}
.op-map-stage{position:relative;min-width:0}.op-delivery-list{max-height:420px;overflow:auto;display:flex;flex-direction:column;gap:10px;padding-right:3px}
.op-delivery-card{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff;box-shadow:0 4px 12px rgba(15,23,42,.05)}
.op-delivery-card.online{border-left:4px solid #16a34a}.op-delivery-card.offline{border-left:4px solid #f59e0b}.op-delivery-card.no-gps,.op-delivery-card.unassigned{border-left:4px solid #ef4444}
.op-delivery-main{display:flex;justify-content:space-between;gap:10px}.op-delivery-main>div{display:grid;gap:3px;min-width:0}.op-delivery-main strong{font-size:14px}.op-delivery-main small{color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.op-order-number{font-size:12px;font-weight:900;color:#2563eb}.op-driver-status{white-space:nowrap;height:25px;padding:0 8px;display:inline-flex;align-items:center;border-radius:999px;font-size:11px;font-weight:900}
.op-driver-status.online{background:#dcfce7;color:#166534}.op-driver-status.offline{background:#fef3c7;color:#92400e}.op-driver-status.no-gps,.op-driver-status.unassigned{background:#fee2e2;color:#991b1b}
.op-delivery-meta{display:grid;gap:5px;margin:10px 0;color:#475569;font-size:12px}.op-delivery-actions{display:flex;gap:8px}.op-delivery-actions>*{flex:1;text-align:center;justify-content:center}
.op-map-pin-driver.is-online{border-color:#16a34a;box-shadow:0 0 0 5px rgba(22,163,74,.18)}.op-map-pin-driver.is-offline{border-color:#f59e0b;box-shadow:0 0 0 5px rgba(245,158,11,.2);filter:grayscale(.18)}
@media(max-width:980px){.op-map-layout{grid-template-columns:1fr}.op-delivery-list{max-height:320px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.op-map-toolbar,.op-map-actions{align-items:stretch}.op-map-actions{width:100%}.op-map-actions small{width:100%}.op-map-actions .secondary-button{flex:1}.op-delivery-list{display:flex;max-height:360px}.op-delivery-main{align-items:flex-start}}


/* v4.11.20 — visual premium aprovado para login administrativo */
.fo-admin-page .login-shell{min-height:100vh;background:#eef7fc;grid-template-columns:minmax(0,1.08fr) minmax(430px,.72fr);padding:26px;gap:0}
.fo-admin-page .login-art{border-radius:28px 0 0 28px;overflow:hidden;position:relative;background:linear-gradient(180deg,rgba(4,35,66,.08),rgba(3,30,58,.82)),url('/assets/ui/fonte-original-login-landscape-4k.png') center/cover no-repeat;box-shadow:0 26px 70px rgba(8,55,92,.18)}
.fo-admin-page .login-art:after{content:'ADMINISTRATIVO';position:absolute;right:28px;top:28px;background:rgba(255,255,255,.92);color:#0757d8;padding:10px 14px;border-radius:999px;font-size:11px;font-weight:900;letter-spacing:.12em}
.fo-admin-page .login-panel{background:#fff;border-radius:0 28px 28px 0;box-shadow:0 26px 70px rgba(8,55,92,.18);padding:42px}.fo-admin-page .login-card{box-shadow:none;border:0;max-width:470px}.fo-admin-page .primary-button{background:linear-gradient(90deg,#0757d8,#43c7f4)}
@media(max-width:900px){.fo-admin-page .login-shell{grid-template-columns:1fr;padding:12px}.fo-admin-page .login-art{min-height:240px;border-radius:24px 24px 0 0}.fo-admin-page .login-panel{border-radius:0 0 24px 24px;padding:24px}.fo-admin-page .hero-copy{padding-bottom:28px}.fo-admin-page .hero-copy h1{font-size:32px}}

/* Build marker — V2.7.5 */
.fo-build-id{display:block;margin-top:8px;font-size:10px;line-height:1.2;letter-spacing:.04em;opacity:.55;text-align:center;user-select:text}
.fo-login-build{display:block;margin-top:10px;text-align:center;font-size:10px;line-height:1.2;letter-spacing:.04em;opacity:.5;user-select:text}

/* FONTE ORIGINAL ANDROID UX V2.9.0 */
@media(max-width:760px){
 html,body{width:100%;max-width:100%;overflow-x:hidden}
 #appView{min-height:100dvh;background:var(--bg)}
 #appView.hidden,#loginView.hidden{display:none!important}
 #loginView{min-height:100dvh!important;height:100dvh!important;padding:0!important;overflow:auto!important}
 #loginView .login-panel{min-height:100dvh!important;height:auto!important;padding:max(20px,env(safe-area-inset-top)) 18px max(20px,env(safe-area-inset-bottom))!important;align-content:center!important}
 #loginView .login-card{padding:22px 18px!important}
 #loginView .mobile-brand{margin-bottom:10px!important}
 #loginView .mobile-brand img{width:min(210px,65vw)!important;height:70px!important}
 #loginView .login-card h2{font-size:23px!important;margin-bottom:6px!important}
 #loginView .login-card .muted{font-size:13px!important;margin-bottom:14px!important}
 #loginView .login-card>label{margin-top:13px!important}
 #loginView .login-card input{min-height:48px!important}
 #loginView .login-card:after{margin-top:18px!important}
 .app-shell{min-height:100dvh}
 .topbar{height:calc(58px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 12px 0;position:sticky;top:0}
 .content{padding:14px 12px calc(28px + env(safe-area-inset-bottom))}
 .welcome-card{padding:17px 18px;border-radius:14px}
 .welcome-card p{font-size:12px;line-height:1.45;margin-bottom:0}
 .kpi-grid{gap:10px!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .kpi-card,.metric,.panel,.page-card{padding:14px!important;border-radius:13px!important}
 .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
 .metric strong{font-size:21px!important}
 .sidebar{padding-top:calc(14px + env(safe-area-inset-top));padding-bottom:calc(14px + env(safe-area-inset-bottom));width:min(86vw,320px)}
 .table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
}
@media(max-width:390px){.kpi-grid,.metric-grid{grid-template-columns:1fr!important}}


/* FONTE ORIGINAL ANDROID UX V2.9.1 — mobile header correction */
@media(max-width:760px){
  .topbar{display:grid!important;grid-template-columns:44px minmax(0,1fr) 92px!important;align-items:center!important;gap:8px!important;height:calc(58px + env(safe-area-inset-top))!important;padding:env(safe-area-inset-top) 10px 0!important;overflow:hidden!important}
  .menu-button{width:42px!important;height:42px!important;margin:0!important;align-self:center!important}
  .top-title{min-width:0!important;overflow:hidden!important}
  .top-title h1{font-size:16px!important;line-height:1.05!important;margin:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .top-title span{display:none!important}
  .search-trigger{width:42px!important;height:42px!important;min-width:42px!important;padding:0!important;margin:0!important;border-radius:12px!important;font-size:0!important;justify-self:end!important;overflow:hidden!important;color:transparent!important}
  .search-trigger::before{content:'🔍';font-size:18px!important;color:var(--navy)!important}
  .search-trigger kbd{display:none!important}
  .top-actions{display:flex!important;justify-content:flex-end!important;gap:6px!important;min-width:0!important}
  .top-actions>.icon-button{display:none!important}
  .profile-button{width:42px!important;height:42px!important;min-width:42px!important;padding:4px!important;border-radius:12px!important;justify-content:center!important}
  .profile-button>span{width:32px!important;height:32px!important;border-radius:9px!important}
  .profile-button div,.profile-button b{display:none!important}
  .content{padding-top:12px!important}
  .welcome-card{min-height:128px!important;padding:16px 18px!important}
  .welcome-card h2{font-size:20px!important;line-height:1.15!important;margin:5px 0 6px!important}
  .welcome-card p{font-size:12px!important;line-height:1.4!important;max-width:92%!important}
}
@media(max-width:390px){
  .topbar{grid-template-columns:42px minmax(0,1fr) 86px!important;gap:6px!important;padding-left:8px!important;padding-right:8px!important}
  .top-title h1{font-size:15px!important}
}

/* FONTE ORIGINAL FORSOFTWARE MOBILE DASHBOARD V2.9.2 */
.fo-mobile-command,.fo-mobile-bottom-nav{display:none}
@media(max-width:760px){
  body.fo-admin-page{background:#061a36}
  #appView{background:linear-gradient(180deg,#061a36 0,#08244a 310px,#f4f8fc 640px)!important}
  .main{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
  .topbar{background:rgba(5,27,57,.96)!important;border-bottom:1px solid rgba(255,255,255,.09)!important;backdrop-filter:blur(16px)}
  .top-title h1{color:#fff!important}.menu-button,.search-trigger,.profile-button{background:rgba(255,255,255,.08)!important;border-color:rgba(255,255,255,.12)!important;color:#fff!important}
  .search-trigger::before{color:#fff!important}
  .content{padding:14px 12px calc(28px + env(safe-area-inset-bottom))!important}
  .welcome-card{background:linear-gradient(135deg,#0757d8,#083a83 58%,#041a45)!important;box-shadow:0 16px 38px rgba(0,0,0,.25)!important;border:1px solid rgba(255,255,255,.09)!important}
  .welcome-card img{width:72px!important;height:72px!important;opacity:.9}.welcome-card .eyebrow{color:#66d7ff!important}
  .kpi-grid{display:flex!important;overflow-x:auto!important;scroll-snap-type:x mandatory;gap:10px!important;margin:12px -12px 14px!important;padding:0 12px 5px!important;scrollbar-width:none}.kpi-grid::-webkit-scrollbar{display:none}.kpi-grid>*{min-width:158px!important;scroll-snap-align:start}
  .fo-mobile-command{display:block;margin:0 0 14px;padding:15px;background:rgba(255,255,255,.98);border:1px solid #dce8f3;border-radius:18px;box-shadow:0 10px 28px rgba(4,26,69,.10)}
  .fo-mobile-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px}.fo-mobile-section-head h3{margin:3px 0 0;font-size:17px}.fo-mobile-section-head>span{font-size:10px;color:#64748b}.fo-mobile-section-head .eyebrow{font-size:9px;color:#1478ff}
  .fo-mobile-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.fo-mobile-actions a,.fo-mobile-actions button{min-width:0;min-height:92px;padding:11px 7px;border:1px solid #e3edf6;border-radius:14px;background:linear-gradient(180deg,#fafdff,#f2f7fc);color:#0b2a4a;text-decoration:none;text-align:left;display:flex;flex-direction:column;justify-content:flex-start;box-shadow:none}.fo-mobile-actions b{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:#e7f2ff;color:#0757d8;font-size:16px;margin-bottom:8px}.fo-mobile-actions span{font-size:12px;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.fo-mobile-actions small{font-size:9px;color:#718096;line-height:1.25;margin-top:3px}
  .stock-alert{border-radius:16px!important}.map-panel{border-radius:18px!important}.metric-grid{margin:14px 0!important}.metric{box-shadow:0 6px 18px rgba(15,23,42,.06)!important}.dashboard-grid{gap:12px!important}.panel{box-shadow:0 6px 18px rgba(15,23,42,.06)!important}
  .fo-mobile-bottom-nav{position:fixed;display:grid;grid-template-columns:repeat(5,1fr);left:0;right:0;bottom:0;z-index:70;height:calc(64px + env(safe-area-inset-bottom));padding:6px 5px env(safe-area-inset-bottom);background:rgba(4,26,69,.97);border-top:1px solid rgba(102,215,255,.2);box-shadow:0 -8px 28px rgba(4,26,69,.22);backdrop-filter:blur(16px)}
  .fo-mobile-bottom-nav a,.fo-mobile-bottom-nav button{border:0;background:transparent;color:#9db3ce;text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:2px;border-radius:11px}.fo-mobile-bottom-nav b{font-size:18px;line-height:1}.fo-mobile-bottom-nav span{font-size:9px;font-weight:750}.fo-mobile-bottom-nav .active{color:#66d7ff;background:rgba(20,120,255,.12)}
  .sidebar{z-index:90!important}
}
@media(max-width:390px){.fo-mobile-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.fo-mobile-actions a,.fo-mobile-actions button{min-height:86px}}


/* FORSOFTWARE MOBILE DRAWER UX V2.9.3 */
.sidebar-close,.sidebar-backdrop{display:none}
@media(max-width:760px){
  html.fo-menu-open,body.fo-menu-open{overflow:hidden!important;overscroll-behavior:none!important}
  .sidebar{
    width:min(88vw,340px)!important;
    max-width:88vw!important;
    height:100dvh!important;
    inset:0 auto 0 0!important;
    transform:translateX(-102%)!important;
    transition:transform .24s ease!important;
    z-index:102!important;
    box-shadow:18px 0 44px rgba(1,12,32,.28)!important;
  }
  .sidebar.open{transform:translateX(0)!important}
  .side-brand{position:relative;padding-right:48px!important}
  .sidebar-close{
    display:grid!important;place-items:center;position:absolute;right:4px;top:50%;transform:translateY(-50%);
    width:40px;height:40px;border:1px solid rgba(255,255,255,.16);border-radius:12px;
    background:rgba(255,255,255,.08);color:#fff;font-size:29px;line-height:1;font-weight:300;z-index:2
  }
  .sidebar-backdrop{
    display:block;position:fixed;inset:0;border:0;padding:0;background:rgba(1,12,32,.46);
    opacity:0;visibility:hidden;pointer-events:none;transition:opacity .24s ease,visibility .24s ease;z-index:101
  }
  .sidebar-backdrop.open{opacity:1;visibility:visible;pointer-events:auto}
  .sidebar nav{overscroll-behavior:contain;padding-bottom:18px}
  .nav-item{min-height:48px}
  .fo-mobile-bottom-nav{z-index:100!important}
  .fo-mobile-bottom-nav [data-mobile-menu].active{color:#66d7ff!important;background:rgba(20,120,255,.18)!important}
}


/* FORSOFTWARE MOBILE STRUCTURAL UX V2.9.4
   - separa definitivamente o shell mobile do header desktop
   - mantém o drawer e a barra inferior como navegação principal do app */
@media(max-width:760px){
  #appView:not(.hidden){display:block!important;min-height:100dvh!important;background:linear-gradient(180deg,#061a36 0,#08244a 310px,#f4f8fc 640px)!important}
  #appView .main{display:block!important;grid-column:auto!important;min-width:0!important;width:100%!important;padding:0 0 calc(72px + env(safe-area-inset-bottom))!important;margin:0!important}
  #appView .topbar{display:none!important;height:0!important;min-height:0!important;padding:0!important;margin:0!important;border:0!important;overflow:hidden!important;visibility:hidden!important;pointer-events:none!important}
  #appView .content{width:100%!important;max-width:100%!important;margin:0!important;padding:max(14px,env(safe-area-inset-top)) 12px calc(28px + env(safe-area-inset-bottom))!important;overflow-x:hidden!important}
  .fo-mobile-bottom-nav{display:grid!important;pointer-events:auto!important}
  .fo-mobile-bottom-nav button{appearance:none;-webkit-appearance:none;touch-action:manipulation;pointer-events:auto!important}
  .fo-mobile-bottom-nav button:active{transform:scale(.97)}
  .fo-mobile-bottom-nav button.active{color:#66d7ff!important;background:rgba(20,120,255,.14)!important}
  .sidebar-backdrop.open{display:block!important}
}
