:root{--navy:#0f4672;--navy2:#315f86;--ink:#123e63;--muted:#6985a0;--bg:#f1f6fa;--card:#fff;--line:#d4e2ee;--orange:#ef7700;--green:#1caf78;--red:#ef4e5d;--purple:#6b47db;--blue:#2697d5;--shadow:0 8px 24px rgba(18,62,99,.06)}
html[data-theme="dark"]{--ink:#edf5fb;--muted:#a7bdcf;--bg:#0d1721;--card:#142433;--line:#2a4255;--navy:#4aa5da;--navy2:#173a56;--shadow:none}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink)}button,input,select{font:inherit}button{cursor:pointer}.app{min-height:100vh}.utility-bar{height:52px;background:#315f86;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 24px;font-size:12px;gap:18px}.utility-left,.utility-right{display:flex;align-items:center;gap:20px;white-space:nowrap}.utility-left strong{font-size:13px}.build-marker{background:#f3eeff;color:#6744ca;padding:6px 13px;border-radius:18px;font-size:11px}.main-header{height:110px;background:var(--card);display:grid;grid-template-columns:350px 300px minmax(320px,1fr) auto;align-items:center;gap:20px;padding:0 24px;border-bottom:1px solid var(--line)}.brand-home{border:0;background:transparent;display:flex;align-items:center;gap:16px;text-align:left;color:var(--ink)}.brand-home img{width:94px;max-height:60px;object-fit:contain;border-right:1px solid var(--line);padding-right:14px}.brand-home div{display:flex;flex-direction:column}.brand-home b{font-size:25px}.brand-home span{font-size:13px;color:var(--muted);margin-top:3px}.scope-switcher{display:grid;grid-template-columns:repeat(3,1fr);background:#eaf1f6;border:1px solid #cfddea;border-radius:16px;padding:5px}.scope-switcher button{border:0;background:transparent;padding:14px 12px;border-radius:12px;color:#526f88;font-weight:800}.scope-switcher button.active{background:#fff;color:#07558e;box-shadow:0 3px 8px rgba(0,0,0,.08)}.global-search{height:55px;display:flex;align-items:center;border:1px solid #caddea;border-radius:14px;background:var(--card);padding:0 12px}.global-search input{width:100%;border:0;outline:0;background:transparent;color:var(--ink);font-size:15px}.global-search kbd{border:1px solid var(--line);border-radius:7px;padding:7px 9px;color:var(--muted);background:var(--bg)}.header-actions{display:flex;align-items:center;gap:9px}.circle{height:52px;min-width:52px;border:1px solid var(--line);border-radius:50%;background:var(--card);color:var(--ink);font-weight:900}.circle.wide{min-width:68px;font-size:11px}.install-app-btn{font-size:22px;line-height:1}.install-app-btn.install-ready{box-shadow:0 0 0 4px rgba(39,149,209,.12);border-color:#6fb7df}.install-app-btn.installed{opacity:.72}.user-chip{display:flex;flex-direction:column;min-width:128px;margin-left:2px}.user-chip b{font-size:16px}.user-chip span{font-size:12px;color:var(--muted);margin-top:3px}.top-nav{height:70px;background:var(--card);display:flex;align-items:stretch;border-bottom:1px solid var(--line);padding:0 14px;overflow:auto}.top-nav button{border:0;background:transparent;color:var(--ink);font-weight:800;font-size:15px;padding:0 20px;border-bottom:3px solid transparent;white-space:nowrap}.top-nav button.active{color:#be5e00;background:#fff9f3;border-bottom-color:var(--orange)}.content{padding:34px 24px 90px;max-width:1900px;margin:0 auto}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}.eyebrow{font-size:12px;letter-spacing:2px;color:var(--orange);font-weight:900;text-transform:uppercase;margin-bottom:10px}.page-head h1{margin:0;font-size:44px;line-height:1.04;color:var(--ink);letter-spacing:-1.6px}.page-head p{margin:10px 0 0;color:var(--muted);font-size:16px}.head-actions{display:flex;gap:10px;align-items:center}.btn{border:1px solid #c8dcec;background:var(--card);color:var(--ink);font-weight:900;border-radius:12px;padding:14px 18px}.btn.primary{background:#0f4a76;color:#fff;border-color:#0f4a76}.btn.orange{background:#ef7700;color:white;border-color:#ef7700}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:18px 0}.kpi{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px 22px 20px;min-height:138px;position:relative;overflow:hidden;box-shadow:var(--shadow)}.kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent,var(--blue))}.kpi small{display:block;color:#59748c;font-weight:900;letter-spacing:1.3px;font-size:11px;text-transform:uppercase}.kpi strong{display:block;font-size:36px;margin:18px 0 8px;color:var(--ink)}.kpi span{font-size:13px;color:var(--muted)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.panel{background:var(--card);border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow);overflow:hidden}.panel-head{padding:19px 21px 12px;display:flex;align-items:center;justify-content:space-between;gap:14px}.panel-head h2{font-size:19px;margin:4px 0 0}.panel-head small{font-size:11px;letter-spacing:1.2px;color:var(--orange);font-weight:900}.panel-body{padding:8px 21px 22px}.chart{height:300px;width:100%;position:relative}.chart svg{width:100%;height:100%;overflow:visible}.legend{display:flex;gap:14px;align-items:center;font-size:12px;color:var(--muted)}.legend i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:5px}.capacity-row{display:grid;grid-template-columns:minmax(170px,1.2fr) 110px 110px 1.8fr 80px;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #e9f0f5;font-size:13px}.capacity-row:last-child{border-bottom:0}.meter{height:12px;background:#e8f0f5;border-radius:999px;overflow:hidden}.meter b{display:block;height:100%;border-radius:999px;background:var(--blue)}.meter b.warning{background:var(--orange)}.meter b.danger{background:var(--red)}.pill{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:900}.pill.good{background:#dcf7ec;color:#087548}.pill.warning{background:#fff0d8;color:#b55d00}.pill.danger{background:#ffe1e5;color:#bd2838}.filters{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr auto;gap:12px;margin-bottom:18px}.filters label{display:flex;flex-direction:column;gap:7px;color:#617d96;font-size:11px;font-weight:900;text-transform:uppercase}.filters input,.filters select{height:46px;border:1px solid var(--line);border-radius:11px;background:var(--card);color:var(--ink);padding:0 13px;outline:0}.table-wrap{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:1100px}.data-table th{background:#f4f8fb;color:#59748c;text-transform:uppercase;letter-spacing:.6px;font-size:11px;text-align:left;padding:14px;border-bottom:1px solid var(--line);position:sticky;top:0}.data-table td{padding:13px 14px;border-bottom:1px solid #e6eef4;font-size:13px;vertical-align:top}.data-table tr:hover td{background:#f9fcfe}.sub{font-size:11px;color:var(--muted);margin-top:4px}.pagination{display:flex;align-items:center;justify-content:space-between;padding:15px 6px;color:var(--muted);font-size:13px}.mini-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.mini-card{border:1px solid var(--line);border-radius:13px;padding:16px;background:var(--card)}.mini-card small{color:var(--muted);font-weight:800}.mini-card strong{display:block;font-size:25px;margin-top:8px}.market-row{display:grid;grid-template-columns:150px 1fr 100px;gap:12px;align-items:center;padding:9px 0}.market-row .meter{height:10px}.month-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.month-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px}.month-card h3{margin:0 0 14px}.month-card .big{font-size:28px;font-weight:900}.month-card .delta{font-size:12px;font-weight:900;margin-top:9px}.delta.up{color:#15945f}.delta.down{color:#d04655}.source-card{display:grid;grid-template-columns:1.3fr 1fr;gap:18px}.source-meta{border:1px solid var(--line);border-radius:14px;padding:18px}.source-meta dt{color:var(--muted);font-size:12px}.source-meta dd{font-weight:900;margin:5px 0 14px}.version-row{display:grid;grid-template-columns:56px 1fr 180px;gap:16px;align-items:center;padding:15px 0;border-bottom:1px solid #e5edf3}.version-row:last-child{border-bottom:0}.version-index{width:42px;height:42px;border-radius:12px;background:#eef5fa;display:flex;align-items:center;justify-content:center;font-weight:900;color:#406782}.forecast-bars{display:grid;grid-template-columns:repeat(5,1fr);align-items:end;gap:22px;height:300px;padding:30px 20px 15px}.forecast-bar{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;gap:9px}.forecast-bar b{width:58%;min-width:50px;background:linear-gradient(180deg,#4da7d7,#176895);border-radius:10px 10px 3px 3px}.forecast-bar strong{font-size:12px}.forecast-bar span{color:var(--muted);font-size:12px}.connection-status{position:fixed;left:14px;bottom:14px;background:#0e2a42;color:#fff;border:0;border-radius:999px;padding:10px 15px;display:flex;gap:7px;align-items:center;box-shadow:0 10px 26px rgba(0,0,0,.18);z-index:30;font-size:11px}.connection-status i{width:11px;height:11px;border-radius:50%;background:#1dd58a;box-shadow:0 0 0 4px rgba(29,213,138,.18)}.connection-status.offline i{background:#ffb020}.connection-status span{opacity:.75}.modal-backdrop{border:0;background:transparent;padding:0;max-width:none;max-height:none;width:100vw;height:100vh}.modal-backdrop::backdrop{background:rgba(3,22,37,.62)}.modal{background:var(--card);width:min(820px,calc(100vw - 28px));margin:8vh auto 0;border-radius:18px;box-shadow:0 25px 80px rgba(0,0,0,.3);overflow:hidden}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;padding:22px 24px;border-bottom:1px solid var(--line)}.modal-head h2{margin:0}.modal-body{padding:22px 24px}.modal-foot{padding:16px 24px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:800;color:var(--muted)}.form-grid input,.form-grid select{height:46px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);padding:0 12px}.toast{position:fixed;right:22px;bottom:22px;background:#0c3555;color:#fff;padding:13px 18px;border-radius:12px;z-index:80;box-shadow:0 14px 32px rgba(0,0,0,.2)}.hidden{display:none!important}footer{text-align:center;padding:28px;color:var(--muted);font-size:12px}



/* Splash screen / loading */
body.booting{overflow:hidden}
body.booting #app{opacity:0;pointer-events:none}
body:not(.booting) #app{opacity:1;transition:opacity .28s ease}
.splash{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at top, #2b5f8f 0%, #173d63 38%, #0b1e34 100%);color:#fff;transition:opacity .45s ease,visibility .45s ease}.splash.hide{opacity:0;visibility:hidden}.splash-shell{width:min(620px,100%);display:flex;flex-direction:column;align-items:center}.splash-kicker{font-size:13px;letter-spacing:2.4px;text-transform:uppercase;font-weight:900;color:#ffd7a7;margin-bottom:20px;text-align:center}.splash-card{width:100%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(10px);border-radius:28px;padding:30px 28px 32px;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.28)}.splash-logo-stack{display:flex;align-items:center;justify-content:center;gap:18px;margin-bottom:16px}.splash-logo-badge{width:108px;height:108px;border-radius:26px;background:rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.18);box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)}.splash-safety-logo{width:78px;height:78px;object-fit:contain}.splash-company-logo{height:82px;width:auto;object-fit:contain;filter:drop-shadow(0 8px 18px rgba(0,0,0,.16))}.splash h1{margin:8px 0 8px;font-size:44px;line-height:1.05;letter-spacing:-1.2px}.splash p{margin:0;color:rgba(255,255,255,.86);font-size:17px}.splash-status-row{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:24px 0 18px}.splash-status-row span{padding:9px 14px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16);font-weight:800;font-size:12px;letter-spacing:.3px}.progress{height:12px;width:100%;border-radius:999px;background:rgba(255,255,255,.12);overflow:hidden;position:relative}.progress i{display:block;height:100%;width:38%;border-radius:999px;background:linear-gradient(90deg,#ef7700 0%, #ffb454 55%, #ffe3b8 100%);animation:splashLoad 1.25s ease-in-out infinite}@keyframes splashLoad{0%{transform:translateX(-100%)}55%{transform:translateX(130%)}100%{transform:translateX(230%)}}

@media(max-width:1200px){.utility-right{display:none}.main-header{grid-template-columns:280px 260px 1fr}.header-actions .user-chip{display:none}.page-head h1{font-size:36px}.kpi-grid{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}.filters{grid-template-columns:1fr 1fr 1fr}.source-card{grid-template-columns:1fr}}
@media(max-width:760px){.utility-bar{height:42px;padding:0 12px}.utility-left span,.build-marker{display:none}.main-header{height:auto;grid-template-columns:1fr auto;padding:12px;gap:11px}.brand-home img{width:70px}.brand-home b{font-size:21px}.brand-home span{font-size:11px}.scope-switcher{grid-column:1/-1;order:3}.global-search{grid-column:1/-1;order:4;height:48px}.header-actions{grid-column:2;grid-row:1;gap:5px}.header-actions .circle{height:44px;min-width:44px}.header-actions .wide{display:none}.top-nav{height:58px;padding:0;overflow-x:auto}.top-nav button{padding:0 14px;font-size:13px}.content{padding:24px 12px 80px}.page-head{align-items:flex-start;flex-direction:column}.page-head h1{font-size:32px}.head-actions{width:100%;overflow:auto}.kpi-grid{grid-template-columns:1fr 1fr;gap:10px}.kpi{padding:16px;min-height:118px}.kpi strong{font-size:28px}.grid-2{gap:12px}.filters{grid-template-columns:1fr}.capacity-row{grid-template-columns:1.3fr .7fr 1.4fr 64px}.capacity-row .capacity-col{display:none}.mini-grid,.month-grid{grid-template-columns:1fr 1fr}.source-card{grid-template-columns:1fr}.forecast-bars{gap:8px;padding-left:4px;padding-right:4px}.forecast-bar b{width:75%}.connection-status span{display:none}}

@media(max-width:760px){.splash{padding:18px}.splash-card{padding:24px 18px 26px;border-radius:22px}.splash-logo-stack{gap:12px}.splash-logo-badge{width:86px;height:86px;border-radius:22px}.splash-safety-logo{width:62px;height:62px}.splash-company-logo{height:64px}.splash h1{font-size:32px}.splash p{font-size:14px}.splash-status-row{gap:8px;margin:18px 0 16px}.splash-status-row span{padding:8px 12px;font-size:11px}.splash-kicker{font-size:11px;letter-spacing:1.6px}}


/* Production plan row actions */
.plan-table{min-width:1280px}.action-head{width:184px}.row-actions{display:flex;gap:7px;align-items:center;white-space:nowrap}.action-btn{border:1px solid #c7dbe9;background:#fff;color:#123f64;border-radius:9px;padding:8px 10px;font-size:11px;font-weight:900;cursor:pointer;transition:.15s ease}.action-btn:hover{transform:translateY(-1px);box-shadow:0 5px 12px rgba(16,65,100,.10)}.action-btn.view{border-color:#b9d8ea;background:#f7fbfe}.action-btn.edit{border-color:#f0c48e;background:#fffaf4;color:#a65700}.action-btn.delete{border-color:#f2b7bf;background:#fff7f8;color:#b92f40}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.detail-field{border:1px solid var(--line);border-radius:12px;padding:14px;background:#f8fbfd;min-height:72px}.detail-field small{display:block;color:var(--muted);font-weight:900;font-size:11px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:7px}.detail-field b{font-size:14px;word-break:break-word}.full-span{grid-column:1/-1}.delete-warning{border:1px solid #f2b7bf;background:#fff7f8;border-radius:14px;padding:18px;color:#8d2634}.delete-warning p{margin:8px 0 0;color:#9d4a56}.danger-btn{background:#c93649!important;border-color:#c93649!important;color:white!important}.danger-text{color:#c93649!important}
@media(max-width:760px){.row-actions{flex-direction:column;align-items:stretch}.action-btn{padding:7px 9px}.detail-grid{grid-template-columns:1fr 1fr}.action-head{width:94px}}


/* V1.1.0 Secure access, administration, audit trail and backup */
body.auth-locked #app{display:none!important}
.auth-screen{position:fixed;inset:0;z-index:9000;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 0,#dfeefa 0,#f5f9fc 38%,#eef4f8 100%)}
.auth-card{width:min(520px,100%);background:#fff;border:1px solid #d4e2ee;border-radius:24px;padding:28px;box-shadow:0 30px 90px rgba(17,62,99,.18);color:#123e63}.auth-card.compact{width:min(560px,100%);text-align:center}.auth-brand{display:flex;align-items:center;gap:16px;margin-bottom:24px}.auth-brand img{width:106px;height:58px;object-fit:contain;border-right:1px solid #d4e2ee;padding-right:16px}.auth-brand div{display:flex;flex-direction:column}.auth-brand b{font-size:22px}.auth-brand span{font-size:12px;color:#6985a0;margin-top:4px}.auth-kicker{font-size:10px;font-weight:900;letter-spacing:1.7px;color:#ef7700}.auth-card h1{font-size:36px;margin:10px 0 8px}.auth-help{color:#6985a0;line-height:1.55;margin:0 0 20px}.auth-card label{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:900;color:#59748c;text-transform:uppercase;margin:13px 0}.auth-card input{height:50px;border:1px solid #cbddea;border-radius:12px;padding:0 14px;outline:0;color:#123e63;background:#fff;text-transform:none}.auth-card input:focus{border-color:#2697d5;box-shadow:0 0 0 3px rgba(38,151,213,.12)}.auth-actions{display:flex;gap:10px;margin-top:18px}.auth-actions .btn{flex:1}.auth-message{min-height:22px;margin-top:8px;color:#b92f40;font-weight:800;font-size:12px}.auth-note{margin-top:16px;padding:12px 14px;border-radius:12px;background:#f4f8fb;color:#6985a0;font-size:12px;line-height:1.5}.pending-icon{font-size:48px;margin-top:8px}.pending-identity{margin:14px 0;padding:12px;border-radius:12px;background:#f4f8fb;font-weight:900}.admin-gap{margin-top:18px}.admin-loading{padding:18px;color:var(--muted)}.access-matrix{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.access-matrix>div{border:1px solid var(--line);border-radius:14px;padding:16px;background:var(--card);display:flex;flex-direction:column;gap:7px}.access-matrix b{font-size:17px}.access-matrix span{font-size:13px}.access-matrix small{color:var(--muted);line-height:1.4}.admin-table{min-width:980px}.admin-table select{height:38px;border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--ink);padding:0 10px}.audit-table{min-width:980px}.compact-btn{padding:9px 12px!important;font-size:11px!important}.backup-list{display:grid;gap:10px;margin-top:16px}.backup-row{border:1px solid var(--line);border-radius:12px;padding:13px 14px;display:flex;justify-content:space-between;align-items:center;gap:16px}.backup-row>div{display:flex;flex-direction:column;gap:5px}.backup-row span{font-size:11px;color:var(--muted)}.empty-admin{padding:16px;border:1px dashed var(--line);border-radius:12px;color:var(--muted)}
@media(max-width:900px){.access-matrix{grid-template-columns:1fr}.auth-screen{padding:12px}.auth-card{padding:22px;border-radius:18px}.auth-actions{flex-direction:column}.admin-gap .panel-head{align-items:flex-start;flex-direction:column}.admin-gap .head-actions{width:100%;flex-wrap:wrap}}

/* V1.1.4 Smart product-linked long-term forecast */
.forecast-control{margin-bottom:18px;overflow:visible}.forecast-control-grid{display:grid;grid-template-columns:minmax(420px,1.15fr) minmax(300px,.85fr);min-height:330px}.forecast-selector{padding:28px 30px;display:flex;flex-direction:column;justify-content:center}.forecast-selector label{display:flex;flex-direction:column;gap:8px;color:#59748c;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.7px}.forecast-selector select{height:54px;border:1px solid var(--line);border-radius:13px;background:var(--card);color:var(--ink);padding:0 14px;font-weight:800;outline:0}.forecast-selector select:focus{border-color:#2697d5;box-shadow:0 0 0 3px rgba(38,151,213,.12)}.forecast-product-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:16px}.forecast-product-meta span{border:1px solid var(--line);border-radius:12px;padding:11px 12px;background:var(--bg);font-size:12px;min-width:0}.forecast-product-meta b{display:block;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:5px}.forecast-data-note{display:inline-flex;align-items:center;gap:7px;width:max-content;max-width:100%;margin-top:15px;padding:9px 12px;border-radius:999px;font-size:11px;font-weight:900}.forecast-data-note.ready{background:#dcf7ec;color:#087548}.forecast-data-note.missing{background:#fff0d8;color:#a95a00}.forecast-product-visual{position:relative;min-height:330px;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 30%,rgba(79,167,215,.20),rgba(79,167,215,.05) 42%,transparent 70%),linear-gradient(145deg,#f8fbfd,#e8f2f8);border-left:1px solid var(--line)}html[data-theme="dark"] .forecast-product-visual{background:radial-gradient(circle at 50% 30%,rgba(79,167,215,.18),rgba(79,167,215,.03) 42%,transparent 70%),linear-gradient(145deg,#142433,#0d1721)}.forecast-product-visual:before{content:"PRODUCT VISUAL";position:absolute;top:22px;right:22px;font-size:10px;letter-spacing:1.4px;color:var(--muted);font-weight:900}.forecast-product-visual.has-image img{position:relative;z-index:2;max-width:82%;max-height:265px;object-fit:contain;filter:drop-shadow(0 24px 24px rgba(15,55,85,.22))}.mock-shadow{position:absolute;left:50%;bottom:35px;width:230px;height:34px;transform:translateX(-50%);border-radius:50%;background:rgba(15,55,85,.16);filter:blur(14px)}.mock-object{position:relative;z-index:2;width:230px;height:150px;border-radius:16px;background:linear-gradient(145deg,#fff 0 54%,#e9f4fa 55% 100%);border:1px solid rgba(18,62,99,.12);box-shadow:18px 22px 30px rgba(15,55,85,.18),inset -12px -10px 20px rgba(30,106,151,.08);padding:22px;transform:perspective(700px) rotateY(-12deg) rotateX(5deg);overflow:hidden}.mock-object:before{content:"";position:absolute;right:-26px;top:0;width:58px;height:100%;background:linear-gradient(180deg,#d8edf8,#a8d6eb);transform:skewY(-10deg)}.mock-brand{position:relative;z-index:2;font-size:10px;font-weight:900;color:#ef4e5d;text-transform:uppercase;letter-spacing:1px}.mock-name{position:relative;z-index:2;margin-top:18px;max-width:165px;font-size:18px;font-weight:900;line-height:1.12;color:#123e63}.mock-code{position:absolute;z-index:2;left:22px;bottom:18px;font-size:10px;color:#6985a0;font-weight:800}.mock-accent{position:absolute;left:0;bottom:0;width:8px;height:100%;background:#2697d5}.forecast-product-visual.bottle .mock-object{width:128px;height:220px;border-radius:28px 28px 18px 18px;padding:44px 16px 18px;transform:perspective(700px) rotateY(-8deg)}.forecast-product-visual.bottle .mock-object:before{right:0;top:-24px;left:30px;width:68px;height:38px;border-radius:8px 8px 2px 2px;background:#174d76;transform:none}.forecast-product-visual.bottle .mock-name{font-size:14px;max-width:100px}.forecast-product-visual.capsule .mock-object{width:142px;height:210px;border-radius:34px 34px 20px 20px;padding-top:38px}.forecast-product-visual.capsule .mock-object:before{right:0;top:-18px;left:19px;width:102px;height:38px;border-radius:12px 12px 4px 4px;background:#e6edf2;transform:none}.forecast-product-visual.capsule .mock-name{font-size:14px}.forecast-product-visual.tube .mock-object{width:120px;height:230px;border-radius:14px 14px 30px 30px;padding:30px 13px;transform:perspective(700px) rotateY(-8deg) rotateZ(4deg)}.forecast-product-visual.tube .mock-name{font-size:14px}.forecast-product-visual.tube .mock-object:before{right:22px;top:auto;bottom:-18px;width:76px;height:34px;border-radius:3px 3px 10px 10px;background:#dfe7ec;transform:none}.forecast-product-visual.vial .mock-object{width:110px;height:210px;border-radius:15px 15px 28px 28px;padding:50px 13px 18px;background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(205,237,250,.72));transform:perspective(700px) rotateY(-7deg)}.forecast-product-visual.vial .mock-object:before{right:18px;left:18px;top:-15px;width:auto;height:42px;border-radius:8px;background:#bfcbd4;transform:none}.forecast-product-visual.vial .mock-name{font-size:13px}.forecast-product-visual.bag .mock-object{width:185px;height:235px;border-radius:22px 22px 32px 32px;padding:42px 18px;background:linear-gradient(145deg,rgba(255,255,255,.84),rgba(199,233,248,.64));transform:perspective(700px) rotateY(-8deg)}.forecast-product-visual.bag .mock-object:before{content:"";right:50%;top:12px;width:32px;height:12px;border-radius:8px;background:#93afbf;transform:translateX(50%)}.forecast-product-visual.bag .mock-name{font-size:14px}.forecast-empty{min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;color:var(--muted)}.forecast-empty-icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--bg);border:1px solid var(--line);font-size:30px;color:#8ca4b7}.forecast-empty h3{margin:16px 0 6px;color:var(--ink)}.forecast-empty p{max-width:520px;line-height:1.55;margin:0}.forecast-chart-panel{margin-top:18px}.forecast-chart-panel .panel-head{padding-bottom:4px}.forecast-bars{animation:forecastIn .38s ease}@keyframes forecastIn{from{opacity:.25;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:980px){.forecast-control-grid{grid-template-columns:1fr}.forecast-product-visual{border-left:0;border-top:1px solid var(--line);min-height:300px}.forecast-product-meta{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.forecast-selector{padding:20px 16px}.forecast-product-meta{grid-template-columns:1fr 1fr}.forecast-control-grid{min-height:0}.forecast-product-visual{min-height:270px}.mock-object{transform:scale(.9) perspective(700px) rotateY(-12deg) rotateX(5deg)}.forecast-kpis{grid-template-columns:1fr 1fr}}


/* V1.1.5 Secure forgot-password and recovery flow */
.auth-link-row{display:flex;justify-content:flex-end;margin-top:-4px;margin-bottom:4px}.auth-link{border:0;background:transparent;color:#155f91;font:inherit;font-size:12px;font-weight:900;padding:4px 0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.auth-link:hover{color:#ef7700}.auth-message.success{color:#087548}.auth-message.info{color:#155f91}.auth-card button:disabled{opacity:.62;cursor:not-allowed}.auth-card input[aria-invalid="true"]{border-color:#c5384b;box-shadow:0 0 0 3px rgba(197,56,75,.10)}

/* V1.1.7 product stream layout hotfix */
/* V1.1.6 animated pharmaceutical product stream */
.product-ribbon{height:68px;display:grid;grid-template-columns:190px minmax(0,1fr);align-items:stretch;background:linear-gradient(90deg,rgba(235,246,253,.94),rgba(255,255,255,.98) 18%,rgba(245,250,253,.98));border-bottom:1px solid var(--line);overflow:hidden;position:relative;z-index:3}
html[data-theme="dark"] .product-ribbon{background:linear-gradient(90deg,#102232,#0e1c28 35%,#112535)}
.product-ribbon-label{display:flex;flex-direction:column;justify-content:center;padding:0 18px;border-right:1px solid var(--line);background:linear-gradient(90deg,rgba(22,83,128,.08),rgba(22,83,128,.02));position:relative;z-index:3}
.product-ribbon-label span{font-size:10px;letter-spacing:1.35px;font-weight:950;color:#ef7700}.product-ribbon-label b{font-size:11px;color:var(--ink);margin-top:4px;white-space:nowrap}
.product-ribbon-window{overflow:hidden;min-width:0;mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent)}
.product-ribbon-track{height:100%;display:flex;align-items:center;width:max-content;gap:10px;padding:7px 12px;animation:planningProductFlow 55s linear infinite;will-change:transform}
.product-ribbon:hover .product-ribbon-track,.product-ribbon:focus-within .product-ribbon-track{animation-play-state:paused}
@keyframes planningProductFlow{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.product-ribbon-item{height:52px;width:250px;flex:0 0 250px;display:grid;grid-template-columns:45px minmax(0,1fr) 18px;align-items:center;gap:9px;padding:5px 9px;border:1px solid rgba(40,111,157,.16);border-radius:13px;background:rgba(255,255,255,.78);color:var(--ink);text-align:left;cursor:pointer;box-shadow:0 6px 16px rgba(17,65,97,.06);transition:.18s ease}
html[data-theme="dark"] .product-ribbon-item{background:rgba(18,43,62,.82);border-color:rgba(93,156,195,.18)}
.product-ribbon-item:hover{transform:translateY(-2px);border-color:#5db4e0;box-shadow:0 10px 22px rgba(17,65,97,.12)}
.ribbon-copy{min-width:0}.ribbon-copy b{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ribbon-copy small{display:block;margin-top:3px;font-size:9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ribbon-arrow{font-size:12px;color:#2b88bd;font-weight:950}
.ribbon-model{width:40px;height:42px;position:relative;display:block;filter:drop-shadow(5px 7px 5px rgba(9,58,90,.16));transform:perspective(180px) rotateY(-12deg)}.ribbon-model i,.ribbon-model em{position:absolute;display:block;box-sizing:border-box}.ribbon-model i{inset:5px 3px 4px 3px;border-radius:5px;background:linear-gradient(145deg,#fff 0 57%,#dceef8 58%);border:1px solid rgba(16,72,108,.16)}.ribbon-model em{left:7px;right:7px;top:17px;height:7px;border-radius:4px;background:linear-gradient(90deg,#ef4e5d,#ef7700)}
.ribbon-model.carton i:before{content:"";position:absolute;right:-5px;top:2px;width:6px;height:29px;background:#bddced;transform:skewY(-18deg);border-radius:0 3px 3px 0}.ribbon-model.bottle i{inset:10px 8px 2px;border-radius:9px 9px 6px 6px}.ribbon-model.bottle i:before{content:"";position:absolute;left:6px;right:6px;top:-8px;height:8px;border-radius:3px 3px 1px 1px;background:#174d76}.ribbon-model.bottle em{left:11px;right:11px;top:23px}.ribbon-model.capsule i{inset:8px 8px 2px;border-radius:11px 11px 7px 7px}.ribbon-model.capsule i:before{content:"";position:absolute;left:4px;right:4px;top:-6px;height:7px;border-radius:4px 4px 2px 2px;background:#d4dde4}.ribbon-model.tube i{inset:3px 9px 4px;border-radius:4px 4px 9px 9px;transform:rotate(3deg)}.ribbon-model.tube i:after{content:"";position:absolute;left:4px;right:4px;bottom:-3px;height:4px;border-radius:1px 1px 3px 3px;background:#c5d0d7}.ribbon-model.vial i{inset:11px 10px 2px;border-radius:5px 5px 9px 9px;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(189,229,248,.72))}.ribbon-model.vial i:before{content:"";position:absolute;left:3px;right:3px;top:-8px;height:8px;border-radius:3px;background:#adbcc8}.ribbon-model.bag i{inset:3px 6px 2px;border-radius:7px 7px 11px 11px;background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(192,228,246,.68))}.ribbon-model.bag i:before{content:"";position:absolute;left:50%;top:3px;width:9px;height:3px;border-radius:2px;background:#93afbf;transform:translateX(-50%)}
@media(max-width:980px){.product-ribbon{grid-template-columns:145px minmax(0,1fr);height:64px}.product-ribbon-label{padding:0 12px}.product-ribbon-label b{font-size:9px}.product-ribbon-item{width:220px;flex-basis:220px}}
@media(max-width:760px){.product-ribbon{grid-template-columns:1fr;height:58px}.product-ribbon-label{display:none}.product-ribbon-track{padding:5px 8px;gap:7px}.product-ribbon-item{height:47px;width:205px;flex-basis:205px}.ribbon-model{transform:scale(.88) perspective(180px) rotateY(-12deg)}}
@media(prefers-reduced-motion:reduce){.product-ribbon-track{animation:none;overflow-x:auto}}


/* ===== V1.1.8 Planning Management System Brand Motion ===== */
.brand-home{min-width:350px!important;overflow:hidden!important}
.planning-brand-copy{display:flex!important;flex-direction:column!important;min-width:0!important;overflow:hidden!important;flex:1 1 auto!important}
.planning-brand-window{display:block!important;width:100%!important;max-width:225px!important;overflow:hidden!important;white-space:nowrap!important}
.planning-brand-marquee{
  display:inline-block!important;
  min-width:max-content!important;
  white-space:nowrap!important;
  font-size:22px!important;
  font-weight:900!important;
  line-height:1.1!important;
  animation:planningBrandTickerV118 11s linear infinite!important;
  will-change:transform;
}
.brand-home:hover .planning-brand-marquee{animation-play-state:paused!important}
.planning-brand-copy>span{font-size:12px!important;color:var(--muted)!important;margin-top:4px!important;white-space:nowrap!important}
@keyframes planningBrandTickerV118{
  0%{transform:translateX(100%)}
  100%{transform:translateX(-100%)}
}
@media(max-width:1100px) and (min-width:761px){
  .main-header{grid-template-columns:310px 260px minmax(260px,1fr) auto!important}
  .brand-home{min-width:310px!important}
  .planning-brand-window{max-width:190px!important}
  .planning-brand-marquee{font-size:20px!important;animation-duration:9.5s!important}
}
@media(max-width:760px){
  .brand-home{min-width:0!important;max-width:100%!important;overflow:hidden!important}
  .planning-brand-window{max-width:165px!important}
  .planning-brand-marquee{font-size:18px!important;animation-duration:8.5s!important}
  .planning-brand-copy>span{font-size:10px!important;max-width:165px!important;overflow:hidden!important;text-overflow:ellipsis!important}
}
@media(prefers-reduced-motion:reduce){
  .planning-brand-marquee{animation:none!important;transform:none!important}
}

/* V1.1.9 — Administration & Access Level Management */
.admin-health{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 18px;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:var(--card)}
.admin-health>div{display:flex;align-items:center;gap:10px}.admin-health span{display:flex;flex-direction:column;gap:3px}.admin-health small{color:var(--muted);font-size:11px}.health-dot{width:10px;height:10px;border-radius:50%;background:#1caf78;box-shadow:0 0 0 5px rgba(28,175,120,.10)}
.admin-session-badge{display:inline-flex!important;flex-direction:row!important;align-items:center;padding:8px 11px;border-radius:999px;background:var(--bg);color:var(--muted);font-size:11px;font-weight:900}
.admin-panel-note{font-size:11px;color:var(--muted);font-weight:800}.admin-user-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 180px 180px;gap:12px;margin:2px 0 14px}.admin-user-toolbar label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.6px}.admin-user-toolbar input,.admin-user-toolbar select{height:42px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);padding:0 12px;outline:0}.admin-user-toolbar input:focus,.admin-user-toolbar select:focus{border-color:#2697d5;box-shadow:0 0 0 3px rgba(38,151,213,.10)}
.admin-dept-input{min-width:170px;height:38px;border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--ink);padding:0 10px}.admin-row-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.danger-soft{color:#b92f40!important;border-color:rgba(185,47,64,.28)!important;background:rgba(185,47,64,.06)!important}.admin-table{min-width:1180px}.admin-empty-state{display:flex;align-items:flex-start;gap:18px;padding:26px;border:1px dashed var(--line);border-radius:16px;background:var(--soft)}.admin-empty-state h3{margin:0 0 7px;font-size:18px}.admin-empty-state p{margin:0 0 14px;color:var(--muted);line-height:1.55;max-width:760px}.admin-empty-icon{font-size:34px;line-height:1}
@media(max-width:900px){.admin-health{align-items:flex-start;flex-direction:column}.admin-user-toolbar{grid-template-columns:1fr}.admin-panel-note{display:none}.admin-empty-state{flex-direction:column}.admin-session-badge{white-space:normal}}


/* V1.1.11 — Admin command center, audit visibility, full backup & recovery */
.admin-command-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:2px 0 18px}.admin-command-tab{min-height:86px;border:1px solid var(--line);border-radius:16px;background:var(--card);color:var(--ink);display:grid;grid-template-columns:38px 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;text-align:left;padding:14px 16px;cursor:pointer;transition:.18s ease}.admin-command-tab>span{grid-row:1/3;font-size:25px}.admin-command-tab>b{font-size:15px}.admin-command-tab>small{color:var(--muted);font-size:11px}.admin-command-tab:hover{transform:translateY(-1px);border-color:#9eccea;box-shadow:0 8px 24px rgba(21,82,124,.07)}.admin-command-tab.active{border-color:#ef7700;box-shadow:inset 0 -3px 0 #ef7700;background:linear-gradient(180deg,var(--card),rgba(239,119,0,.045))}.admin-section{display:none}.admin-section.active{display:block}.audit-toolbar{margin-top:0}.audit-details{max-width:360px;font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-info-line{margin:0 0 14px}.backup-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.backup-action-card{border:1px solid var(--line);border-radius:16px;padding:17px;background:var(--card);display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center}.backup-action-card>span{font-size:28px}.backup-action-card>div:not(.backup-inline-actions){display:flex;flex-direction:column;gap:5px}.backup-action-card b{font-size:15px}.backup-action-card small{font-size:11px;color:var(--muted);line-height:1.45}.backup-inline-actions,.backup-row-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.recovery-scope{margin:16px 0 4px;border:1px dashed var(--line);border-radius:13px;padding:12px 14px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:var(--soft);font-size:11px;color:var(--muted)}.recovery-scope b{color:var(--ink);margin-right:4px}.backup-list-head{margin-top:22px!important;padding-left:0!important;padding-right:0!important;border:0!important}.backup-list-head h2{font-size:18px!important}.backup-row-actions{justify-content:flex-end}
@media(max-width:1000px){.backup-action-grid{grid-template-columns:1fr}.backup-action-card{grid-template-columns:38px 1fr}.backup-action-card>.btn,.backup-action-card>.backup-inline-actions{grid-column:2}.admin-command-tabs{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:700px){.admin-command-tabs{grid-template-columns:1fr}.admin-command-tab{min-height:74px}.backup-action-card{grid-template-columns:34px 1fr;padding:14px}.backup-row{align-items:flex-start;flex-direction:column}.backup-row-actions{width:100%}.backup-row-actions .btn{flex:1}}
