:root{font-family:Inter,'Segoe UI',Arial,sans-serif;color:#1d3442;background:#f3f6f9;font-size:16px;font-synthesis:none;--navy:#004626;--teal:#005B32;--muted:#627887;--line:#dce5eb;--shadow:0 12px 45px #132f4214}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}a{color:var(--teal)}.shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--navy);color:white;padding:30px 20px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;font-size:23px;font-weight:750;letter-spacing:-.8px}.brand img{width:39px}.brand small{display:block;font-size:12px;letter-spacing:1.8px;color:#9cb8c6;font-weight:500;margin-top:5px}.nav-label{font-size:12px;letter-spacing:1.7px;color:#93afbd;margin:40px 13px 12px}.nav{display:grid;gap:5px}.nav button{background:none;border:0;color:#c0d3dd;text-align:left;border-radius:7px;padding:12px 14px;display:flex;align-items:center;gap:13px;font-size:14px}.nav button:hover{background:#ffffff0c;color:white}.nav button.active{background:#216072;color:white;box-shadow:inset 3px 0 #74e9d3}.nav-icon{font-size:18px;width:21px;text-align:center}.sidebar-bottom{margin-top:auto;border-top:1px solid #ffffff20;padding:21px 9px 0;font-size:13px;color:#9ebac8;line-height:1.7}.sidebar-bottom strong{color:#e9f1f5;display:block;font-size:14px}.workspace{min-width:0}.topbar{height:77px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px;gap:15px}.breadcrumb{font-size:14px;color:var(--muted)}.breadcrumb b{color:#274655;font-weight:550}.account{display:flex;gap:14px;align-items:center;font-size:14px}.avatar{border-radius:50%;width:33px;height:33px;background:#e0f0ee;color:#187268;display:grid;place-items:center;font-weight:700}.account small{display:block;color:var(--muted);font-size:12px;text-transform:capitalize}.content{padding:32px 38px 50px;max-width:1750px;margin:auto}.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:27px}.eyebrow{font-size:12px;letter-spacing:1.7px;font-weight:700;color:var(--teal);margin-bottom:9px;text-transform:uppercase}h1{font-size:29px;letter-spacing:-.8px;margin:0 0 9px;font-weight:700}h2{font-size:19px;letter-spacing:-.3px;margin:0}h3{font-size:16px;margin:0 0 14px}p{line-height:1.65}.sub{margin:0;color:var(--muted);font-size:14px;line-height:1.65}.btn{border:1px solid var(--line);background:white;border-radius:7px;padding:10px 15px;font-size:14px;color:#2d4b5b;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap}.btn:hover{background:#eef5f6;border-color:#b9cdd7}.btn.primary{background:var(--teal);border-color:var(--teal);color:white}.btn.primary:hover{background:#004626}.btn.danger{color:#b63f46;background:#fff6f6;border-color:#eacacc}.btn.small{padding:7px 10px;font-size:13px}.btn.ghost{background:transparent;border-color:transparent}.actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:25px}.metric{padding:22px 23px;background:white;border:1px solid var(--line);border-radius:10px;position:relative}.metric .metric-title{font-size:14px;color:var(--muted);margin-bottom:16px}.metric strong{font-size:33px;letter-spacing:-1px;font-weight:650}.metric small{display:block;color:var(--muted);font-size:12px;margin-top:7px}.metric-icon{position:absolute;right:20px;top:22px;background:#edf6f5;color:var(--teal);width:34px;height:34px;border-radius:8px;display:grid;place-items:center}.panel{background:white;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:24px}.panel-head{padding:21px 24px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px}.panel-body{padding:24px}.cols{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr);gap:24px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}th{font-size:12px;letter-spacing:.65px;text-transform:uppercase;color:#6c818e;background:#f8fafb;padding:14px 21px;white-space:nowrap;font-weight:600}td{padding:17px 21px;border-top:1px solid #edf1f4;vertical-align:middle}tr:hover td{background:#fbfdfd}td strong{font-weight:600;color:#234454}td small{display:block;color:var(--muted);margin-top:6px;font-size:12px}.mono{font-family:'Cascadia Code',Consolas,monospace;font-size:13px}.badge{display:inline-block;padding:5px 9px;border-radius:5px;font-size:12px;font-weight:650;white-space:nowrap;background:#eef1f5;color:#5c7382}.badge.good{background:#e3f5ef;color:#187357}.badge.warn{background:#fff2da;color:#9a671b}.badge.bad{background:#fee9e8;color:#ac3d44}.badge.blue{background:#e9f1fc;color:#416baf}.empty{padding:48px 25px;text-align:center;color:var(--muted)}.empty strong{display:block;font-size:17px;color:#325363;margin-bottom:9px}.empty p{font-size:14px;margin:0 auto 20px;max-width:390px}.workflow{display:flex;gap:0;margin:5px 0 28px;background:white;border:1px solid var(--line);border-radius:10px;padding:21px}.step{flex:1;position:relative;display:flex;align-items:center;gap:11px;font-size:13px;color:#617b88}.step:not(:last-child):after{content:'›';margin-left:auto;margin-right:15px;font-size:24px;color:#adc3cd}.step span{width:29px;height:29px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;background:#e7f3f3;color:#0b7777;font-size:12px;font-weight:700}.step b{display:block;color:#2e505e;margin-bottom:4px;font-size:14px}.stack{display:grid;gap:18px}.queue-item{border-left:3px solid #b8d6dc;padding:0 0 0 15px}.queue-item strong{font-size:14px}.queue-item p{font-size:13px;color:var(--muted);margin:6px 0 11px}.notice{padding:15px 18px;background:#edf6f7;border:1px solid #cde3e6;color:#38636e;font-size:14px;line-height:1.6;border-radius:7px;margin-bottom:20px}.notice.warning{background:#fff8e9;border-color:#eddfb5;color:#7a6023}.toolbar{display:flex;gap:12px;margin-bottom:20px;justify-content:space-between;align-items:center}.search{max-width:350px}.filters{display:flex;gap:9px}input,select,textarea{width:100%;border:1px solid #cad9e1;border-radius:6px;padding:10px 11px;color:#234555;background:white;font-size:14px;min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid #4cb7b3;outline-offset:1px}textarea{resize:vertical;min-height:88px}label{font-size:13px;font-weight:600;color:#466170;display:grid;gap:8px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:19px;margin-bottom:23px}.fields .full{grid-column:1/-1}.hint{font-size:12px;line-height:1.5;color:var(--muted);font-weight:400}.form-section{border-top:1px solid var(--line);padding-top:22px;margin-top:23px}.form-section h3{margin-bottom:9px}.row-fields{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:10px;align-items:end;margin-top:12px}.row-fields.formula-row{grid-template-columns:3fr 1fr auto}.row-fields.test-row{grid-template-columns:1.7fr 1.3fr .8fr .9fr 1fr 1fr auto;background:#f5f8fa;border:1px solid var(--line);padding:12px;border-radius:7px;align-items:start}.row-fields.test-row input,.row-fields.test-row select{font-size:13px}.delete-row{padding:10px;border:0;background:transparent;color:#b5575a;margin-top:23px}.section-top{display:flex;align-items:center;justify-content:space-between}.form-footer{display:flex;justify-content:flex-end;gap:10px;padding-top:24px;margin-top:20px;border-top:1px solid var(--line)}.error{color:#aa363e;background:#ffedef;border:1px solid #efc6ca;padding:12px;border-radius:6px;font-size:14px;margin-bottom:15px}.error:empty{display:none}dialog{padding:0;border:1px solid #d4e1e8;border-radius:13px;box-shadow:0 30px 130px #102a4b55;max-width:1050px;width:calc(100% - 48px);max-height:90vh;color:#244352}dialog::backdrop{background:#102b43a6;backdrop-filter:blur(3px)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:23px 27px;border-bottom:1px solid var(--line);position:sticky;top:0;background:white;z-index:2}.modal-body{padding:25px 27px}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;background:#f4f8fa;border-radius:8px;padding:21px;margin-bottom:25px}.detail-grid span{font-size:12px;color:var(--muted);display:block;margin-bottom:7px;text-transform:uppercase;letter-spacing:.5px}.detail-grid strong{font-size:14px}.detail-section{margin:25px 0}.detail-section h3{padding-bottom:10px}.pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#f5f8fa;border-radius:7px;padding:17px;font-size:14px;line-height:1.7;max-height:360px;overflow:auto}.total{padding:14px;background:#eaf5f3;border-radius:6px;margin-top:15px;font-size:14px;text-align:right}.login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-art{background:#103748;padding:65px;display:flex;flex-direction:column;justify-content:space-between;color:white}.login-art h1{font-size:46px;max-width:510px;line-height:1.18;letter-spacing:-1.5px}.login-art p{color:#a7c3cd;max-width:430px}.login-art .eyebrow{color:#b9dfca}.login-lines{display:flex;gap:12px;margin-top:30px}.login-lines span{width:55px;height:5px;background:#75bd95;border-radius:4px}.login-lines span:nth-child(2){opacity:.5}.login-lines span:nth-child(3){opacity:.2}.login-form{display:flex;align-items:center;justify-content:center;background:#fff;padding:40px}.login-card{width:100%;max-width:385px}.login-card h1{font-size:29px}.login-card form{margin-top:32px;display:grid;gap:21px}.login-card .btn{padding:13px}.loading{display:grid;place-items:center;min-height:70vh;color:var(--muted)}#toast{position:fixed;bottom:25px;right:25px;z-index:100;background:#004626;color:white;max-width:420px;padding:15px 22px;border-radius:9px;box-shadow:var(--shadow);font-size:14px;display:none}.status-line{display:flex;gap:9px;align-items:center}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.text-link{border:0;background:none;color:var(--teal);padding:0;font-size:14px;text-align:left;font-weight:600;cursor:pointer}.result-input{min-width:100px}.mobile-brand{display:none}.rules-ref{font-size:13px;color:var(--muted);margin:12px 0 0}.print-only{display:none}
[hidden]{display:none!important}.metric-title{padding-right:35px}.check-label{display:flex;align-items:center;gap:10px;line-height:1.5}.check-label input{width:18px;height:18px;flex-shrink:0}.alert-button{position:relative;width:38px;height:38px;padding:0}.alert-button svg{width:19px;height:19px}.alert-button span{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;border-radius:999px;background:#a0182f;color:#fff;font-size:11px;line-height:18px;text-align:center;padding:0 5px}.alert-button.has-alerts{color:#a0182f;background:#fff2f4}.alert-panel .panel-body{padding-top:18px}.alert-item{border-left-color:#d99c2b}.alert-item.blue{border-left-color:#256786}.alert-item.bad{border-left-color:#a2303b}.alert-item .actions{margin-top:8px}
@media(max-width:1300px){.cols{grid-template-columns:1fr}}
@media(min-width:1600px){.content{padding-top:40px}.metrics{gap:24px}}
@media(max-width:1150px){.shell{grid-template-columns:210px minmax(0,1fr)}.sidebar{padding:25px 13px}.content{padding:26px 24px}.topbar{padding:0 24px}.cols{grid-template-columns:1fr}.metrics{gap:12px}.metric{padding:18px}.workflow{flex-wrap:wrap;gap:16px}.step{min-width:150px}.row-fields.test-row{grid-template-columns:repeat(3,1fr)}.row-fields.test-row .delete-row{margin-top:0}.login-art{padding:40px}.login-art h1{font-size:37px}}
@media(max-width:760px){.shell{display:block}.sidebar{height:auto;position:relative;padding:17px}.brand{font-size:20px}.brand small,.nav-label,.sidebar-bottom{display:none}.nav{display:flex;overflow-x:auto;margin-top:18px;gap:5px}.nav button{white-space:nowrap;padding:10px;font-size:13px}.nav-icon{display:none}.topbar{height:60px;padding:0 19px}.breadcrumb{font-size:12px}.account{gap:5px}.account>span:not(.avatar){display:none}.content{padding:23px 17px}.page-head{align-items:flex-start;gap:10px}h1{font-size:25px}.metrics{grid-template-columns:1fr 1fr}.metric strong{font-size:29px}.metric-icon{display:none}.workflow{display:none}.page-head>.actions{justify-content:flex-end}.cols,.settings-grid{display:block}.fields{grid-template-columns:1fr}.fields .full{grid-column:auto}.detail-grid{grid-template-columns:1fr 1fr}.row-fields{grid-template-columns:1fr 1fr}.row-fields.test-row{grid-template-columns:1fr 1fr}.row-fields.formula-row{grid-template-columns:2fr 1fr auto}.toolbar{flex-wrap:wrap}.search{max-width:none}dialog{width:calc(100% - 20px)}.modal-body{padding:19px}.modal-head{padding:18px}.login{grid-template-columns:1fr}.login-art{padding:28px;min-height:220px}.login-art h1{font-size:28px;margin-top:28px}.login-art p,.login-art footer,.login-lines{display:none}.login-form{padding:30px 23px}.panel-head{padding:18px}.panel-body{padding:18px}.btn{white-space:normal}td,th{padding:13px 15px}}

/* Module pending alert badge */
.module-card {
    position: relative;
}

.module-alert-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 7px;
    border-radius: 999px;
    background: #a51d32;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    margin-left: auto;
    margin-right: 8px;
    box-shadow: 0 0 0 3px rgba(165,29,50,.08);
}


/* ==========================================================
   FORMULA CONFIGURATION
   ========================================================== */

.formula-config-grid{
 display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));
 gap:18px;
 margin-top:16px;
}

.formula-config-card{
 border:1px solid var(--border,#ddd7d2);
 border-radius:12px;
 background:#fff;
 overflow:hidden;
}

.formula-config-head{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:16px;
 padding:16px 18px;
 border-bottom:1px solid var(--border,#ddd7d2);
 background:#faf9f7;
}

.formula-config-head > div{
 min-width:0;
}

.formula-config-head strong{
 display:block;
 font-size:14px;
 margin-bottom:3px;
}

.formula-config-head small{
 display:block;
 color:#6f6964;
 font-size:12px;
 line-height:1.4;
}

.formula-config-list{
 padding:8px 18px;
 min-height:74px;
}

.formula-config-value{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:16px;
 padding:11px 0;
 border-bottom:1px solid #eee9e5;
}

.formula-config-value:last-child{
 border-bottom:0;
}

.formula-config-value-main{
 display:flex;
 align-items:center;
 gap:11px;
 min-width:0;
}

.formula-config-value-main > span:last-child{
 min-width:0;
}

.formula-config-value-main strong{
 display:block;
 font-size:13px;
 overflow:hidden;
 text-overflow:ellipsis;
 white-space:nowrap;
}

.formula-config-value-main small{
 display:block;
 color:#807873;
 font-size:11px;
 margin-top:2px;
}

.formula-config-dot{
 display:block;
 width:8px;
 height:8px;
 border-radius:50%;
 background:var(--primary,#9f1d2d);
 flex:0 0 auto;
}

.formula-config-note{
 padding:11px 18px;
 border-top:1px solid #eee9e5;
 background:#fcfbfa;
 color:#77706b;
 font-size:11px;
 line-height:1.45;
}

.formula-config-empty{
 padding:18px 0;
 color:#8b837e;
 font-size:12px;
 text-align:center;
}

@media(max-width:900px){

 .formula-config-grid{
   grid-template-columns:1fr;
 }

 .formula-config-head{
   align-items:flex-start;
 }

}

/* ==========================================================
   Edit User - top fields alignment
   ========================================================== */

#edit-user-form > .fields:first-of-type {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 20px;
    row-gap: 18px;
    align-items: start;
}

#edit-user-form > .fields:first-of-type > label {
    display: flex;
    flex-direction: column;
    margin: 0;
    min-width: 0;
    gap: 8px;
}

/* Same control height for Username / Name / Email / Role */
#edit-user-form > .fields:first-of-type input,
#edit-user-form > .fields:first-of-type select {
    width: 100%;
    height: 44px;
    min-height: 44px;
    margin: 0;
}

/* Username helper text should not move Full Name downward */
#edit-user-form > .fields:first-of-type .hint {
    margin-top: 0;
    line-height: 18px;
}

/* Keep first row aligned even though Username has helper text */
#edit-user-form > .fields:first-of-type > label:nth-child(2) {
    align-self: start;
}

@media (max-width: 760px) {
    #edit-user-form > .fields:first-of-type {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================
   Application layout containment - final
   ========================================================== */

.shell {
    width: 100%;
    min-width: 0;
}

.workspace {
    min-width: 0;
    width: 100%;
}

.content {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.content > * {
    min-width: 0;
    max-width: 100%;
}

.panel {
    min-width: 0;
    max-width: 100%;
}

#plant-management,
#users-list {
    min-width: 0;
    max-width: 100%;
    overflow-x: auto;
}

#plant-management table,
#users-list table {
    width: 100%;
    max-width: 100%;
}

#users-list .actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

@media (max-width: 1150px) {
    .content {
        padding-left: 24px;
        padding-right: 24px;
    }
}

@media (max-width: 760px) {
    .content {
        padding-left: 17px;
        padding-right: 17px;
    }
}


/* Manufacturing Organization */
.manufacturing-org {
  display: flex;
  align-items: center;
  gap: 14px;
  padding-right: 14px;
  margin-right: 8px;
  border-right: 1px solid #dbe3ec;
}

.manufacturing-org-info {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}

.manufacturing-org-info small {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .6px;
  color: #64748b;
}

.manufacturing-org-info strong {
  font-size: 13px;
  font-weight: 700;
  color: #17324d;
}

@media (max-width: 1050px) {
  .manufacturing-org {
    flex-wrap: wrap;
    gap: 5px;
  }
}
