:root{--bg:#060A14;--panel:#0C1322;--panel2:#101A2D;--line:#1C2940;--blue:#2563EB;--cyan:#06B6D4;--violet:#7C3AED;--text:#F4F7FC;--muted:#8795AD;--green:#22C58B;--red:#FB7185;--radius:16px;--font:'DM Sans',system-ui,-apple-system,sans-serif;--display:'Manrope',var(--font)}
*{box-sizing:border-box}html{min-height:100%;background:var(--bg)}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--display);letter-spacing:-.035em}h1{font-size:clamp(25px,3vw,34px);margin-bottom:8px}h2{font-size:20px}h3{font-size:16px}.muted{color:var(--muted)}.small{font-size:12px}.app-shell{min-height:100vh}.sidebar{width:258px;position:fixed;inset:0 auto 0 0;background:#080E1B;border-right:1px solid #172238;display:flex;flex-direction:column;padding:25px 16px 17px;z-index:20}.brand{display:flex;align-items:center;gap:11px;padding:0 10px 28px}.brand-mark{height:43px;width:43px;display:grid;place-items:center;border-radius:13px;background:linear-gradient(145deg,#0E7490,#2563EB 58%,#7C3AED);box-shadow:0 8px 28px #2563eb33;color:#fff;font:800 27px var(--display);font-style:italic}.brand-copy{display:flex;flex-direction:column;line-height:1.05;letter-spacing:.08em}.brand-copy strong{font:800 21px var(--display)}.brand-copy small{color:var(--cyan);font-size:11px;font-weight:700;letter-spacing:.27em;margin-top:5px}.workspace-label,.nav-section{font-size:9px;font-weight:700;letter-spacing:.15em;color:#65738B;padding:12px 12px 9px}.nav{display:flex;flex-direction:column;gap:4px}.nav-link{min-height:43px;display:flex;align-items:center;gap:11px;padding:10px 12px;border:1px solid transparent;border-radius:10px;color:#98A7BE;font-size:12px;font-weight:600;transition:.2s}.nav-link:hover{background:#101A2D;color:#EAF2FF}.nav-link.active{background:linear-gradient(90deg,#17366A99,#10223A);border-color:#244a83;color:#fff;box-shadow:inset 3px 0 #06B6D4}.nav-icon{width:18px;text-align:center;font-size:17px;color:#7288A9}.nav-link.active .nav-icon{color:var(--cyan)}.nav-link.disabled{cursor:default;opacity:.65}.soon{margin-left:auto;font-size:8px;letter-spacing:.04em;color:#8190A8;background:#162135;border-radius:5px;padding:3px 5px}.sidebar-bottom{margin-top:auto}.system-status{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid #1C2A3E;background:#0D1727;border-radius:11px}.status-dot,.system-status .status-dot{height:7px;width:7px;border-radius:50%;background:var(--green);box-shadow:0 0 10px #22c58b77;flex:none}.system-status span:last-child{display:flex;flex-direction:column;gap:3px}.system-status strong{font-size:11px}.system-status small{font-size:9px;color:#71819B;letter-spacing:.06em}.sidebar-footer{padding:17px 5px 0;text-align:center;color:#687790;font-size:10px}.sidebar-footer strong{color:#A7B6CD}.main-area{margin-left:258px;min-height:100vh;display:flex;flex-direction:column}.topbar{height:76px;border-bottom:1px solid #172238;display:flex;align-items:center;justify-content:space-between;padding:0 34px;gap:18px;background:#080E1B99;position:sticky;top:0;z-index:10;backdrop-filter:blur(16px)}.breadcrumb{display:flex;align-items:center;gap:11px;font-size:11px;color:#6F7E96;letter-spacing:.025em}.breadcrumb b{color:#34435A}.breadcrumb strong{color:#E5EBF5;font-weight:600}.top-actions{display:flex;align-items:center;gap:19px}.environment-pill{display:flex;align-items:center;gap:7px;color:#9BAAC0;font-size:9px;letter-spacing:.08em;border:1px solid #22334A;background:#0C1524;border-radius:7px;padding:8px 10px}.environment-pill i,.live-label i{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 8px #22c58b88}.user-chip{display:flex;align-items:center;gap:9px}.avatar{width:35px;height:35px;display:grid;place-items:center;background:linear-gradient(145deg,#164e91,#6d28d9);border-radius:11px;font-weight:800;color:#fff}.user-text{display:flex;flex-direction:column;gap:2px}.user-text strong{font-size:11px}.user-text small{font-size:10px;color:var(--muted);text-transform:capitalize}.icon-button{height:34px;min-width:34px;border:1px solid #23314A;background:#0D1727;border-radius:9px;color:#B6C3D6}.icon-button:hover{border-color:#2563EB;color:#fff}.menu-toggle{display:none}.page-content{width:100%;max-width:1600px;margin:0 auto;padding:30px 34px 25px;flex:1}.welcome-row{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}.welcome-row h1{margin:7px 0 5px}.welcome-row p{margin:0;font-size:12px}.eyebrow{font-size:9px;letter-spacing:.16em;font-weight:700;color:#8FA0BA;display:flex;align-items:center;gap:8px}.pulse-dot{width:6px;height:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 12px #06b6d488}.wave{font-size:21px;color:var(--cyan)}.date-chip{display:flex;align-items:center;gap:8px;border:1px solid #1E2D43;background:#0C1422;padding:10px 13px;border-radius:10px;color:#B5C3D7;font-size:11px;white-space:nowrap}.date-chip span{color:var(--cyan);font-size:16px}.hero-banner{position:relative;overflow:hidden;min-height:228px;border:1px solid #21406A;border-radius:17px;padding:28px 32px;background:radial-gradient(ellipse at 80% 15%,#183C7180,transparent 43%),linear-gradient(112deg,#101E34 0%,#0C172A 58%,#10142A 100%);display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.hero-banner:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 20%,#2563eb0b 50%,#7c3aed0d);pointer-events:none}.hero-copy{position:relative;z-index:2;max-width:640px}.hero-kicker{font-size:9px;font-weight:700;letter-spacing:.15em;color:#9DAEC6}.hero-kicker span{margin-left:8px;padding:4px 6px;background:#2563eb25;color:#7EAAFF;border:1px solid #315AA0;border-radius:5px;letter-spacing:.06em}.hero-copy h2{font-size:clamp(23px,3vw,32px);margin:14px 0 8px}.hero-copy p{font-size:12px;max-width:490px;color:#A1B0C7;margin-bottom:19px}.hero-pills{display:flex;gap:8px;flex-wrap:wrap}.hero-pills span{font-size:9px;color:#B8C8DF;background:#14243B;border:1px solid #253D5D;border-radius:6px;padding:6px 8px}.hero-art{position:absolute;width:300px;height:230px;right:30px;top:50%;transform:translateY(-50%);display:grid;place-items:center;opacity:.95}.orbit{position:absolute;border:1px solid #2D68B866;border-radius:50%;transform:rotate(-24deg)}.orbit-one{width:230px;height:100px}.orbit-two{width:190px;height:160px;transform:rotate(35deg);border-color:#06b6d444}.orbit-three{width:140px;height:140px;border-color:#7c3aed66}.art-core{height:78px;width:78px;display:grid;place-items:center;border-radius:25px;background:linear-gradient(145deg,#174c8a,#2563EB 57%,#7C3AED);box-shadow:0 0 55px #2563eb55, inset 0 1px #ffffff66;transform:rotate(-8deg)}.art-core span{font:800 47px var(--display);font-style:italic;color:#fff}.art-node{position:absolute;width:37px;height:37px;display:grid;place-items:center;background:#12243B;border:1px solid #2C5C8A;border-radius:11px;color:#68DBF2;font-size:18px;box-shadow:0 8px 24px #0004}.node-one{top:31px;left:61px}.node-two{bottom:35px;right:53px;color:#A78BFA;border-color:#6243A5}.node-three{top:42px;right:56px;color:#60A5FA}.section-heading,.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-heading{margin-bottom:14px}.section-heading h2,.panel-heading h3{margin:0 0 3px}.section-heading p,.panel-heading p{font-size:11px;margin:0}.live-label{display:flex;align-items:center;gap:7px;color:#8AA0B9;font-size:9px;letter-spacing:.08em}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:27px}.stat-card{position:relative;overflow:hidden;min-height:146px;background:linear-gradient(145deg,#0E1829,#0B1321);border:1px solid #1D2B41;border-radius:14px;padding:17px}.stat-top{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#9DAEC5;font-size:11px}.stat-icon{width:31px;height:31px;display:grid;place-items:center;border-radius:9px;font-size:16px;flex:none}.stat-icon.blue{color:#70A4FF;background:#2563eb22;border:1px solid #2563eb35}.stat-icon.cyan{color:#57DDF1;background:#06b6d41b;border:1px solid #06b6d42e}.stat-icon.violet{color:#B9A0FF;background:#7c3aed22;border:1px solid #7c3aed35}.stat-icon.green{color:#5DE3B1;background:#22c58b1b;border:1px solid #22c58b35}.stat-value{font:800 29px var(--display);letter-spacing:-.04em;margin:11px 0 5px}.stat-foot{display:flex;align-items:center;gap:5px;font-size:9px;color:#71819A}.accent-blue{color:#77A7FF}.accent-cyan{color:#56DDF1}.accent-violet{color:#B49AFF}.accent-green{color:#5DE3B1}.mini-bars{position:absolute;right:16px;bottom:0;height:36px;display:flex;align-items:end;gap:3px;opacity:.35}.mini-bars i{display:block;width:4px;border-radius:3px 3px 0 0;background:#2563EB;height:20%}.mini-bars i:nth-child(2){height:38%}.mini-bars i:nth-child(3){height:30%}.mini-bars i:nth-child(4){height:70%}.mini-bars i:nth-child(5){height:48%}.mini-bars i:nth-child(6){height:83%}.mini-bars i:nth-child(7){height:60%}.mini-bars i:nth-child(8){height:100%}.cyan-bars i{background:#06B6D4}.violet-bars i{background:#7C3AED}.status-large{font:700 22px var(--display);margin:14px 0 11px;display:flex;align-items:center;gap:9px}.status-large i{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 13px #22c58b88}.status-track{height:3px;background:#1C2B3F;margin-top:17px;border-radius:4px}.status-track span{display:block;width:100%;height:100%;background:linear-gradient(90deg,#06B6D4,#22C58B);border-radius:4px}.content-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:15px}.panel{border:1px solid #1D2B41;background:#0B1321;border-radius:15px;padding:21px;min-width:0}.panel-heading{margin-bottom:18px}.outline-pill{border:1px solid #2A3C57;border-radius:6px;padding:5px 7px;font-size:8px;color:#92A5BF;letter-spacing:.07em;white-space:nowrap}.panel-icon{color:#7488A5;font-size:17px}.module-list{display:flex;flex-direction:column}.module-row{display:flex;align-items:center;gap:11px;padding:12px 0;border-bottom:1px solid #18253A}.module-row:last-child{border-bottom:0;padding-bottom:0}.module-symbol{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;font-size:17px;flex:none;background:#16253A}.module-symbol.blue{color:#78A8FF;background:#2563eb1e}.module-symbol.cyan{color:#59DDEF;background:#06b6d41b}.module-symbol.violet{color:#B6A0FF;background:#7c3aed20}.module-info{display:flex;flex-direction:column;gap:3px;min-width:0}.module-info strong{font-size:11px}.module-info small{font-size:10px;color:#7E8DA5}.module-state{margin-left:auto;white-space:nowrap;font-size:9px;padding:4px 7px;border-radius:6px}.module-state.ready{color:#5DE3B1;background:#22c58b17}.module-state.planned{color:#A0AEC2;background:#243146}.empty-state{min-height:200px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:22px}.empty-icon{height:43px;width:43px;display:grid;place-items:center;border:1px solid #253954;background:#14243A;border-radius:13px;color:var(--cyan);font-size:23px;margin-bottom:13px}.empty-state strong{font-size:12px}.empty-state p{max-width:220px;font-size:10px;color:var(--muted);margin:6px 0 0}.activity-list{display:flex;flex-direction:column}.activity-item{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid #18253A}.activity-item:last-child{border-bottom:0}.activity-dot{width:8px;height:8px;border-radius:50%;background:var(--cyan);box-shadow:0 0 8px #06b6d455;margin-top:5px;flex:none}.activity-copy{display:flex;flex-direction:column;gap:4px;min-width:0}.activity-copy strong{font-size:11px}.activity-copy small{color:#91A0B7;font-size:10px;overflow-wrap:anywhere}.activity-copy time{color:#62728B;font-size:9px}.bottom-note{display:flex;align-items:center;gap:12px;margin-top:17px;padding:15px 17px;background:linear-gradient(90deg,#10233B,#10152A);border:1px solid #233858;border-radius:12px}.note-icon{height:30px;width:30px;display:grid;place-items:center;border-radius:9px;background:#2563eb24;color:#74A8FF;flex:none}.bottom-note strong{font-size:11px}.bottom-note p{font-size:10px;color:#91A2BA;margin:3px 0 0}.version-label{margin-left:auto;font-size:9px;color:#7FAAFF;border:1px solid #2B4C7A;border-radius:5px;padding:5px 7px;white-space:nowrap}.main-footer{display:flex;justify-content:space-between;gap:15px;padding:15px 34px 20px;color:#596982;font-size:9px}.mobile-overlay{display:none}
/* Auth and installer */
.login-body,.install-body{min-height:100vh;background:radial-gradient(ellipse at 16% 20%,#10284A66,transparent 42%),radial-gradient(ellipse at 80% 85%,#311A5C30,transparent 38%),var(--bg)}.login-layout{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(390px,.9fr);max-width:1600px;margin:auto}.login-visual{padding:38px clamp(32px,6vw,95px);display:flex;flex-direction:column;border-right:1px solid #1b2940;position:relative;overflow:hidden}.login-visual:after{content:"";position:absolute;width:520px;height:520px;border:1px solid #1f4c7a44;border-radius:50%;right:-240px;bottom:-220px;box-shadow:0 0 0 42px #123b6110,0 0 0 90px #123b6108;pointer-events:none}.login-visual .brand{padding:0}.visual-copy{margin:auto 0;max-width:640px;position:relative;z-index:1;padding:60px 0}.visual-copy h1{font-size:clamp(36px,4.4vw,62px);line-height:1.14;margin:23px 0 17px;letter-spacing:-.055em}.visual-copy h1 span{background:linear-gradient(90deg,#66DDF0,#5A9AFF 60%,#A78BFA);background-clip:text;-webkit-background-clip:text;color:transparent}.visual-copy>p{font-size:14px;color:#9CAEC8;max-width:490px;line-height:1.8}.visual-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin-top:36px}.visual-stat{display:flex;align-items:center;gap:9px;border:1px solid #20324A;background:#0B1728A8;border-radius:12px;padding:12px 10px}.stat-icon{height:31px;width:31px;display:grid;place-items:center;border-radius:9px;flex:none}.stat-icon.blue{color:#7BAAFF;background:#2563eb25}.stat-icon.cyan{color:#5BE1F3;background:#06b6d421}.stat-icon.violet{color:#C0A9FF;background:#7c3aed25}.visual-stat>span:last-child{display:flex;flex-direction:column;gap:4px;min-width:0}.visual-stat strong{font-size:10px}.visual-stat small{font-size:9px;color:#8191A9}.visual-footer{position:relative;z-index:1;color:#62728A;font-size:10px}.visual-footer span{margin:0 8px;color:#33435A}.login-panel{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:40px clamp(28px,5vw,80px);position:relative}.login-card{width:100%;max-width:420px}.login-card h2{font-size:30px;margin:14px 0 7px}.login-card>p{font-size:12px;margin-bottom:27px}.login-form{display:flex;flex-direction:column;gap:19px}.login-form label,.install-card label{font-size:11px;font-weight:600;color:#C5D0E0;display:flex;flex-direction:column;gap:8px}.input-wrap{display:flex;align-items:center;gap:10px;min-height:48px;border:1px solid #25354E;background:#0A1322;border-radius:10px;padding:0 13px;color:#7186A4}.input-wrap:focus-within{border-color:#3976D9;box-shadow:0 0 0 3px #2563eb1c}.input-wrap input{border:0!important;background:transparent!important;outline:none!important;padding:13px 0!important;min-width:0;flex:1;color:#fff!important;width:100%}.input-wrap input::placeholder{color:#566780}.password-toggle{border:0;background:none;color:#8295B0;padding:5px}.btn{min-height:47px;border-radius:10px;border:1px solid transparent;display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 18px;font-weight:700;font-size:12px;transition:transform .15s,box-shadow .15s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(100deg,#2563EB,#315FE5 55%,#5B46D6);color:white;box-shadow:0 8px 24px #2563eb30}.btn-primary:hover{box-shadow:0 10px 28px #2563eb48}.btn-primary span{font-size:18px;font-weight:400}.btn-full{width:100%;margin-top:5px}.secure-note{display:flex;justify-content:center;gap:8px;color:#7286A0;font-size:10px;margin-top:23px}.secure-note span{color:var(--cyan)}.login-bottom{margin-top:auto;padding-top:35px;color:#73849D;font-size:10px}.login-bottom a{color:#66CDE5;font-weight:700;margin-left:4px}.mobile-brand{display:none}.alert{padding:11px 13px;border-radius:9px;font-size:11px;margin:12px 0}.alert-error{background:#4B1725;border:1px solid #7F263C;color:#FFC0CD}.install-wrap{width:min(760px,calc(100% - 32px));margin:0 auto;padding:35px 0}.install-brand{padding:0 0 22px}.install-card{padding:clamp(22px,4vw,38px);border:1px solid #24334B;border-radius:18px;background:linear-gradient(145deg,#0D1727,#0A111E);box-shadow:0 24px 90px #0003}.install-card h1{font-size:29px;margin:10px 0}.install-card>p{color:#91A0B7;font-size:12px;line-height:1.7}.install-card h2{font-size:14px;margin:25px 0 13px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.install-card input{width:100%;min-height:43px;border:1px solid #263750;border-radius:9px;background:#080F1C;color:#F4F7FC;padding:10px 12px;outline:none}.install-card input:focus{border-color:#3976D9;box-shadow:0 0 0 3px #2563eb1c}.install-card .btn{margin-top:25px}.install-card .muted{margin-top:16px}.install-foot{text-align:center;color:#65748D;font-size:10px;padding:18px}.success-symbol{height:46px;width:46px;border-radius:14px;background:#22c58b20;color:#5DE3B1;display:grid;place-items:center;font-size:25px;margin-bottom:18px;border:1px solid #22c58b45}
@media(max-width:1200px){.sidebar{width:230px}.main-area{margin-left:230px}.topbar{padding:0 24px}.page-content{padding:25px 24px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-art{right:0;opacity:.5}.hero-copy{max-width:75%}.content-grid{grid-template-columns:1fr}.visual-grid{grid-template-columns:1fr}.visual-stat{max-width:300px}}
@media(max-width:820px){.sidebar{transform:translateX(-100%);transition:transform .22s ease;width:270px}.menu-open .sidebar{transform:translateX(0)}.main-area{margin-left:0}.menu-toggle{display:block}.topbar{height:64px;padding:0 16px}.breadcrumb{margin-right:auto}.environment-pill{display:none}.user-text{display:none}.top-actions{gap:8px}.page-content{padding:23px 17px}.main-footer{padding:15px 17px}.hero-banner{padding:25px 22px;min-height:220px}.hero-art{right:-75px;opacity:.24}.hero-copy{max-width:100%}.hero-copy p{max-width:430px}.mobile-overlay{display:block;position:fixed;inset:0;background:#0009;z-index:15;opacity:0;visibility:hidden;transition:.2s}.menu-open .mobile-overlay{opacity:1;visibility:visible}.login-layout{grid-template-columns:1fr}.login-visual{display:none}.login-panel{min-height:100vh;padding:30px 25px}.mobile-brand{display:flex;padding:0 0 42px}.login-card{max-width:440px}.login-bottom{margin-top:45px}.visual-grid{grid-template-columns:1fr}}
@media(max-width:520px){.breadcrumb span,.breadcrumb b{display:none}.breadcrumb{font-size:12px}.welcome-row{align-items:flex-start}.date-chip{font-size:10px;padding:8px}.welcome-row h1{font-size:26px}.hero-banner{min-height:235px}.hero-copy h2{font-size:25px}.hero-pills{gap:6px}.hero-pills span{font-size:8px}.stats-grid{gap:9px}.stat-card{padding:13px;min-height:137px}.stat-top{font-size:10px}.stat-value{font-size:26px}.stat-foot{font-size:8px;flex-wrap:wrap}.status-large{font-size:19px}.panel{padding:16px}.outline-pill{font-size:7px}.module-row{gap:8px}.module-info strong{font-size:10px}.module-info small{font-size:9px}.module-state{font-size:8px;padding:4px 5px}.bottom-note{align-items:flex-start}.version-label{display:none}.main-footer{font-size:8px}.form-grid{grid-template-columns:1fr}.install-card{padding:22px 17px}.install-card h1{font-size:25px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}


/* V1.1.0 product catalog */
.page-intro{margin-bottom:22px}.page-intro h1{margin:8px 0 6px}.page-intro p{font-size:12px;margin-bottom:0}.page-intro-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.page-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.btn-secondary{background:#101A2D;border-color:#2A3A53;color:#C5D2E5}.btn-secondary:hover{border-color:#3B67A5;color:#fff}.btn-small{min-height:34px;padding:8px 11px;font-size:10px}.compact-stats .stat-card{min-height:104px}.compact-stats .stat-value{font-size:25px;margin:8px 0 0}.filter-bar{display:flex;gap:10px;align-items:center;margin-bottom:17px}.search-field{display:flex;align-items:center;gap:9px;flex:1;min-width:180px;background:#080F1C;border:1px solid #25354E;border-radius:9px;padding:0 12px;color:#7186A4}.search-field:focus-within{border-color:#3976D9;box-shadow:0 0 0 3px #2563eb1c}.search-field input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:#fff;padding:12px 0}.filter-bar select,.entity-form select,.entity-form input:not([type=checkbox]){background:#080F1C;border:1px solid #263750;border-radius:9px;color:#E8EFF9;padding:11px 12px;min-height:42px;outline:none;width:100%}.filter-bar select{max-width:230px}.filter-bar select:focus,.entity-form select:focus,.entity-form input:focus{border-color:#3976D9}.table-wrap{overflow-x:auto;width:100%}.data-table{border-collapse:collapse;width:100%;font-size:11px;white-space:nowrap}.data-table th{text-align:left;color:#71839E;font-size:9px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;background:#0D1727;padding:13px 12px;border-bottom:1px solid #233149}.data-table td{padding:13px 12px;border-bottom:1px solid #1A273A;color:#B8C5D8}.data-table tbody tr:hover{background:#111E30}.data-table tbody tr:last-child td{border-bottom:0}.data-table code,.readonly-field code{font-size:9px;color:#83B4FF;background:#14243A;padding:4px 6px;border-radius:5px}.product-name-link{font-size:11px;font-weight:700;color:#ECF3FD}.product-name-link:hover{color:#6DD9F0}.table-sub{display:block;font-size:9px;color:#71829B;margin-top:4px}.category-pill{display:inline-block;background:#142238;border:1px solid #263B58;color:#9EB2CC;border-radius:5px;padding:4px 6px;font-size:9px}.price-cell{font-weight:700;color:#E5EDF8!important}.align-right{text-align:right!important}.row-action{display:inline-grid;place-items:center;width:29px;height:29px;border:1px solid #293A53;background:#111D30;border-radius:8px;color:#8FB6FF;font-size:14px}.row-action:hover{border-color:#3A6EB6;color:#fff}.table-pagination{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #1B2940;padding-top:14px;margin-top:6px;color:#7E8EA6;font-size:10px}.table-pagination>div{display:flex;align-items:center;gap:12px}.table-pagination a{color:#77AFFF}.entity-form{display:flex;flex-direction:column;gap:15px}.entity-form label{display:flex;flex-direction:column;gap:7px;color:#C2CFE0;font-size:11px;font-weight:600}.entity-form label small{font-size:9px;color:#71839B;font-weight:400;line-height:1.5}.entity-form input::placeholder{color:#586B86}.entity-form .btn{align-self:flex-start}.form-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}.form-layout .panel{min-width:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.checkbox-line{display:flex!important;flex-direction:row!important;align-items:center;gap:9px!important}.checkbox-line input{accent-color:#2563EB}.readonly-field{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;background:#0A1322;border:1px solid #202F46;border-radius:9px}.readonly-field span{font-size:10px;color:#8293AC}.variant-list{display:flex;flex-direction:column}.variant-item{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid #1B2940}.variant-item:last-child{border-bottom:0}.variant-main{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.variant-main strong{font-size:11px}.variant-main small{font-size:9px;color:#7C8EA7;overflow-wrap:anywhere}.variant-price{display:flex;flex-direction:column;align-items:flex-end;font-size:11px;font-weight:700;white-space:nowrap}.variant-price small{font-size:9px;color:#8292A9;font-weight:400}.add-variant{border-top:1px solid #203049;margin-top:14px;padding-top:14px}.add-variant summary{color:#70B7FF;font-size:11px;font-weight:700;cursor:pointer;margin-bottom:13px}.add-variant[open] summary{margin-bottom:18px}.add-variant .entity-form{padding:12px;background:#0A1322;border:1px solid #1E2D43;border-radius:10px}.migration-panel{max-width:900px}.migration-result{display:flex;align-items:flex-start;gap:18px;padding:12px 0}.migration-result h2{margin:4px 0 8px}.migration-result p,.migration-result li{color:#9AAAC0;font-size:12px;line-height:1.7}.migration-result ul{padding-left:19px;margin:12px 0 20px}.result-check,.result-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;flex:none;font-size:24px}.result-check{color:#5DE3B1;background:#22c58b1c;border:1px solid #22c58b40}.result-icon{color:#70B7FF;background:#2563eb20;border:1px solid #2563eb40}.alert-success{background:#10352B;border:1px solid #1D6D53;color:#A7F3D0}.import-stats .stat-card{min-height:115px}.import-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:17px;margin-top:10px;border-top:1px solid #1B2940}.import-footer strong{font-size:11px}.import-footer p{font-size:10px;margin:5px 0 0}.import-footer form{flex:none}.panel-actions{padding-top:16px;border-top:1px solid #1B2940;margin-top:16px}.panel-actions .btn{display:inline-flex}.empty-state .btn{margin-top:14px}
@media(max-width:1100px){.form-layout{grid-template-columns:1fr}.compact-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-bar{flex-wrap:wrap}.search-field{flex-basis:100%}.filter-bar select{flex:1;max-width:none}}
@media(max-width:620px){.page-intro-row{align-items:flex-start;flex-direction:column}.page-actions{width:100%}.page-actions .btn{flex:1}.form-grid{grid-template-columns:1fr}.table-pagination{align-items:flex-start;flex-direction:column}.import-footer{align-items:flex-start;flex-direction:column}.import-footer .btn{width:100%}.migration-result{gap:12px}.migration-result .btn{width:100%}.compact-stats .stat-card{padding:13px}.variant-item{gap:7px}.variant-price{font-size:10px}}


/* V1.2.0 Inventory + Kardex */
.inventory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:20px 0}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:18px}
.form-grid label{display:flex;flex-direction:column;gap:7px;color:#a9b8d0;font-size:12px;font-weight:700}
.form-grid input,.form-grid select,.form-grid textarea,.filter-bar input[type=date]{width:100%;min-width:0;background:#080f1d;border:1px solid #263750;border-radius:8px;padding:11px 12px;color:#e9f1ff;font:inherit}
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.filter-bar input:focus{outline:2px solid #2563eb;outline-offset:1px}
.form-grid .full-span{grid-column:1/-1}
.form-grid .form-actions{display:flex;justify-content:flex-end}
.small-note{padding:0 18px 18px;font-size:12px}
.inventory-grid .panel{overflow:hidden}
@media(max-width:980px){.inventory-grid{grid-template-columns:1fr}}
@media(max-width:640px){.form-grid{grid-template-columns:1fr;padding:14px}.form-grid .full-span{grid-column:auto}.inventory-grid{gap:12px}}


/* =========================================================
   V1.2.1 UI PATCH — Inventory and Kardex responsive layout
   ========================================================= */
.inventory-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  align-items:start;
  gap:20px;
  margin:22px 0;
}
.inventory-grid > .panel,
.panel:has(> form.form-grid){
  min-width:0;
  width:100%;
  box-sizing:border-box;
}
.inventory-grid .panel-heading{padding:22px 24px 0}
.inventory-grid .panel-heading h3{margin:0 0 6px}
.inventory-grid .panel-heading p{margin:0}
.form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px 22px;
  padding:22px 24px 18px;
  align-items:start;
  min-width:0;
  box-sizing:border-box;
}
.form-grid > label{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:8px;
  min-width:0;
  width:100%;
  color:#b8c7df;
  font-size:13px;
  line-height:1.4;
  font-weight:600;
  box-sizing:border-box;
}
.form-grid input,
.form-grid select,
.form-grid textarea{
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  min-height:44px;
  box-sizing:border-box;
  background:#0c1322;
  border:1px solid #293a55;
  border-radius:10px;
  padding:11px 13px;
  color:#edf4ff;
  font:inherit;
  font-weight:400;
  line-height:1.4;
}
.form-grid select{
  appearance:auto;
  color-scheme:dark;
}
.form-grid textarea{
  min-height:92px;
  resize:vertical;
}
.form-grid input::placeholder,
.form-grid textarea::placeholder{color:#7487a5}
.form-grid input:focus,
.form-grid select:focus,
.form-grid textarea:focus{
  outline:2px solid rgba(37,99,235,.75);
  outline-offset:1px;
  border-color:#3b82f6;
}
.form-grid .full-span{grid-column:1/-1}
.form-grid .form-actions{
  display:flex;
  justify-content:flex-start;
  align-items:center;
  flex-wrap:wrap;
  gap:12px;
}
.form-grid .btn{min-height:44px;white-space:normal}
.inventory-grid .small-note{
  padding:0 24px 22px;
  font-size:12px;
  line-height:1.6;
}
.inventory-grid .panel{
  border:1px solid #1d2b42;
  border-radius:16px;
  overflow:hidden;
  background:#0c1322;
}
.inventory-grid .panel + .panel{margin-top:0}
.inventory-grid .panel-heading{
  border-bottom:1px solid rgba(148,163,184,.10);
  padding-bottom:18px;
}
.filter-bar{
  display:flex;
  flex-wrap:wrap;
  align-items:end;
  gap:12px;
  padding:18px 22px;
}
.filter-bar > *{min-width:0;max-width:100%}
.filter-bar select,
.filter-bar input[type="date"]{
  min-height:42px;
  box-sizing:border-box;
  border:1px solid #293a55;
  border-radius:9px;
  background:#0c1322;
  color:#edf4ff;
  padding:10px 12px;
}
.search-field{
  display:flex;
  align-items:center;
  gap:8px;
  flex:1 1 240px;
  min-width:180px;
}
.search-field input{width:100%;min-width:0}
.table-wrap{width:100%;overflow-x:auto}
.data-table{width:100%;min-width:760px;border-collapse:collapse}
.empty-state{padding:28px 18px;text-align:center}
.empty-state strong{display:block;margin-bottom:8px;color:#eaf2ff}
.empty-state p{margin:0;color:#91a4c2}
@media(min-width:1200px){
  .inventory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .inventory-grid{grid-template-columns:minmax(0,1fr);gap:14px;margin:14px 0}
  .form-grid{grid-template-columns:minmax(0,1fr);gap:15px;padding:18px}
  .form-grid .full-span{grid-column:1}
  .inventory-grid .panel-heading{padding:18px 18px 15px}
  .inventory-grid .small-note{padding:0 18px 18px}
  .filter-bar{align-items:stretch;padding:14px;flex-direction:column}
  .filter-bar > *, .filter-bar select, .filter-bar input[type="date"]{width:100%}
  .search-field{min-width:0;flex-basis:auto}
}


/* V1.2.2 — force inventory controls to respect grid columns */
.inventory-grid .form-grid,
.panel .form-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  column-gap:22px !important;
  row-gap:18px !important;
  align-items:start !important;
  width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;
}
.inventory-grid .form-grid > label,
.panel .form-grid > label{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  justify-content:flex-start !important;
  gap:8px !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  margin:0 !important;
  box-sizing:border-box !important;
  white-space:normal !important;
}
.inventory-grid .form-grid > label input,
.inventory-grid .form-grid > label select,
.inventory-grid .form-grid > label textarea,
.panel .form-grid > label input,
.panel .form-grid > label select,
.panel .form-grid > label textarea{
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  box-sizing:border-box !important;
  margin:0 !important;
  float:none !important;
  position:static !important;
}
.inventory-grid .form-grid .full-span,
.panel .form-grid .full-span{
  grid-column:1 / -1 !important;
}
.inventory-grid .form-grid .form-actions,
.panel .form-grid .form-actions{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-start !important;
}
.inventory-grid .form-grid select,
.panel .form-grid select,
.inventory-grid .form-grid input,
.panel .form-grid input,
.inventory-grid .form-grid textarea,
.panel .form-grid textarea{
  min-height:44px !important;
  padding:10px 12px !important;
  color:#edf4ff !important;
  background-color:#0c1322 !important;
  border:1px solid #293a55 !important;
  border-radius:9px !important;
  font:inherit !important;
}
.inventory-grid .form-grid select,
.panel .form-grid select{appearance:auto !important;color-scheme:dark}
.inventory-grid .form-grid textarea,
.panel .form-grid textarea{min-height:90px !important}
@media(max-width:760px){
 .inventory-grid .form-grid,
 .panel .form-grid{grid-template-columns:minmax(0,1fr) !important}
 .inventory-grid .form-grid .full-span,
 .panel .form-grid .full-span{grid-column:1 !important}
}


/* V1.2.3 — markup-level inventory and Kardex form layout */
.inventory-grid form.form-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:18px 22px !important;
  padding:22px 24px 18px !important;
  align-items:start !important;
}
.inventory-field{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:8px !important;
  min-width:0 !important;
  width:100% !important;
  margin:0 !important;
}
.inventory-field > label,
.kardex-date-field > label{
  display:block !important;
  width:100% !important;
  margin:0 !important;
  color:#b8c7df !important;
  font-size:12px !important;
  font-weight:600 !important;
  line-height:1.45 !important;
}
.inventory-field > input,
.inventory-field > select,
.inventory-field > textarea{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  min-height:44px !important;
  box-sizing:border-box !important;
  margin:0 !important;
  padding:11px 12px !important;
  border:1px solid #293a55 !important;
  border-radius:9px !important;
  background:#080f1d !important;
  color:#edf4ff !important;
  font:inherit !important;
}
.inventory-field > textarea{min-height:88px!important;resize:vertical}
.inventory-field.full-span{grid-column:1/-1!important}
.inventory-grid form.form-grid .form-actions{grid-column:1/-1!important;display:flex!important;justify-content:flex-start!important}
.kardex-filters{
 display:grid!important;
 grid-template-columns:minmax(200px,1.6fr) minmax(150px,1fr) minmax(160px,1fr) minmax(130px,.8fr) minmax(130px,.8fr) auto!important;
 gap:12px!important;
 align-items:end!important;
}
.kardex-date-field{display:flex;flex-direction:column;gap:7px;min-width:0}
.kardex-date-field input[type=date]{width:100%;min-width:0;box-sizing:border-box;min-height:42px}
.kardex-filters > select{width:100%;min-width:0;max-width:none!important}
@media(max-width:1050px){
 .kardex-filters{grid-template-columns:repeat(3,minmax(0,1fr))!important}
 .kardex-filters .search-field{grid-column:1/-1;min-width:0}
}
@media(max-width:760px){
 .inventory-grid form.form-grid{grid-template-columns:minmax(0,1fr)!important;padding:18px!important}
 .inventory-field.full-span,.inventory-grid form.form-grid .form-actions{grid-column:1!important}
 .kardex-filters{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .kardex-filters .search-field{grid-column:1/-1}
}
@media(max-width:480px){
 .kardex-filters{grid-template-columns:minmax(0,1fr)!important}
 .kardex-filters .search-field{grid-column:1}
}

/* V1.3.0 Inventario PRO */
.inventory-pro-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);margin:18px 0;align-items:stretch}
.inventory-pro-grid .form-grid{margin:0}
.inventory-pro-grid .small-note{margin:14px 0 0;font-size:10px;line-height:1.6}
.inventory-pro-grid .module-list{display:flex;flex-direction:column;gap:0}
.inventory-pro-grid .module-row{display:flex;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid #1B2940}
.inventory-pro-grid .module-row:last-child{border-bottom:0}
.inventory-pro-grid .module-copy{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.inventory-pro-grid .module-copy strong{font-size:11px;color:#E5EDF9}
.inventory-pro-grid .module-copy small{font-size:10px;color:#8798B1;line-height:1.5}
.inventory-pro-grid .module-icon{height:32px;width:32px;display:grid;place-items:center;flex:none;border-radius:9px;background:#162238;color:#8AB4FF;border:1px solid #263D5D}
@media(max-width:980px){.inventory-pro-grid{grid-template-columns:1fr}}

/* V1.4.0 Producción PRO */
.production-grid{grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);align-items:start}
.recipe-card{border:1px solid var(--border,#23324a);border-radius:14px;padding:18px;margin:16px 0;background:rgba(12,19,34,.55)}
.recipe-line-form{margin-top:16px;padding-top:16px;border-top:1px solid var(--border,#23324a)}
.order-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.btn-small{padding:7px 10px;font-size:12px;min-height:30px}
.production-order-summary{display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px;padding:16px;border:1px solid var(--border,#23324a);border-radius:12px;margin-bottom:18px}
.production-order-summary>div{display:flex;flex-direction:column;gap:5px;min-width:0}
.production-order-summary strong{overflow-wrap:anywhere}
.production-order-summary small{color:var(--muted,#9caec8)}
@media(max-width:900px){.production-grid{grid-template-columns:minmax(0,1fr)}.production-order-summary{grid-template-columns:minmax(0,1fr)}}
