:root{--navy:#062a56;--blue:#0878ef;--bg:#f4f7fb;--text:#13233d;--muted:#718096;--line:#dbe4ef;--green:#18a866;--red:#ef4444;--card:#fff;--shadow:0 4px 18px rgba(15,38,68,.07)}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}.hidden{display:none!important}.app{min-height:100vh;display:flex}.sidebar{width:235px;background:linear-gradient(180deg,#062a56,#021d3e);color:#fff;padding:18px 12px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;padding:4px 12px 24px}.brand-icon,.brand-mark{font-size:30px;color:#fff}.brand b{font-size:22px;display:block}.brand span{font-size:12px;opacity:.8}.nav-item{display:flex;align-items:center;gap:11px;color:#dce9f8;padding:13px 14px;border-radius:10px;margin:3px 0;text-decoration:none}.nav-item.active,.nav-item:hover{background:#0878ef;color:#fff}.nav-item small{margin-left:auto}.sidebar-bottom{margin-top:auto}.sidebar-bottom button{width:100%;padding:11px;background:#103b69;color:#fff;border:1px solid #2a5787;border-radius:10px}.main{flex:1;min-width:0}header{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 24px;gap:14px}.iconbtn{background:none;font-size:22px;color:var(--navy)}.spacer{flex:1}header select{padding:10px 14px;border:1px solid var(--line);border-radius:9px}.userbox{display:flex;align-items:center;gap:8px}.userbox span:first-child{font-weight:700}.userbox span:nth-child(2){font-size:12px;color:var(--muted)}.linkbtn{background:none;font-size:20px}.content{padding:22px}.page{padding:24px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.page-head h2{margin:0}.toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.toolbar input,.toolbar select,.form input,.form select,.form textarea{border:1px solid var(--line);border-radius:8px;padding:10px 11px;background:#fff}.primary{background:var(--blue);color:#fff;padding:10px 16px;border-radius:8px}.secondary{background:#fff;border:1px solid var(--line);padding:10px 14px;border-radius:8px}.danger{background:#fee2e2;color:#b91c1c;padding:9px 12px;border-radius:8px}.table-card,.card{background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:auto}.table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{padding:11px 10px;border-bottom:1px solid #edf2f7;text-align:left;white-space:nowrap}.table th{background:#f7f9fc;color:#4a5568}.badge{padding:4px 8px;border-radius:99px;font-size:11px;font-weight:700}.pass{background:#dcfce7;color:#15803d}.ng{background:#fee2e2;color:#b91c1c}.active{background:#e0f2fe;color:#0369a1}.inactive{background:#edf2f7;color:#718096}.cards{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.kpi{padding:18px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.kpi .label{font-size:12px;color:#58657a}.kpi .value{font-size:29px;font-weight:800;margin:8px 0}.kpi.green .value{color:var(--green)}.kpi.red .value{color:var(--red)}.grid2{display:grid;grid-template-columns:2fr 1fr;gap:14px;margin-top:14px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:14px}.card{padding:16px}.card h3{margin:0 0 14px;font-size:15px}.bar{height:10px;background:#e8eef5;border-radius:99px;overflow:hidden}.bar span{display:block;height:100%;background:var(--blue)}.donut{width:180px;height:180px;border-radius:50%;margin:auto;background:conic-gradient(var(--green) var(--p),#ef4444 0);display:grid;place-items:center}.donut:after{content:attr(data-label);width:115px;height:115px;background:#fff;border-radius:50%;display:grid;place-items:center;font-weight:800}.modal{position:fixed;inset:0;background:rgba(2,18,37,.55);display:grid;place-items:center;padding:20px;z-index:20}.modal-card{background:#fff;border-radius:14px;max-width:1100px;width:100%;max-height:92vh;overflow:auto}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}.modal-head h3{margin:0}.form{padding:20px}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.form label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#4a5568}.form textarea{min-height:90px}.section-title{margin:20px 0 10px;font-weight:800;color:var(--navy)}.std-table input,.std-table select{width:100%;padding:7px;border:1px solid var(--line);border-radius:6px}.actions{display:flex;gap:8px;justify-content:flex-end;margin-top:18px}.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#031e3c,#0878ef)}.login-card{width:390px;background:#fff;border-radius:18px;padding:36px;box-shadow:0 20px 60px rgba(0,0,0,.25);text-align:center}.login-card h1{margin:5px 0 0;color:var(--navy)}.login-card p{margin:0 0 25px;color:var(--muted)}.login-card input{width:100%;margin:7px 0;padding:12px;border:1px solid var(--line);border-radius:9px}.login-card button{width:100%;margin-top:10px}.err{color:#c53030;margin-top:8px;font-size:12px}.small{font-size:12px}.chart-row{display:flex;align-items:end;gap:7px;height:180px}.chart-col{flex:1;text-align:center;font-size:10px;color:var(--muted)}.chart-col i{display:block;background:var(--blue);border-radius:4px 4px 0 0;min-height:4px}.footer{text-align:center;color:#718096;font-size:12px;padding:22px}.filebox{border:1px dashed #9bb0c8;padding:12px;border-radius:8px}.switch{display:flex;align-items:center;gap:8px}.notice{padding:10px 12px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;color:#1e40af;margin:10px 0}@media(max-width:1000px){.sidebar{width:200px}.cards{grid-template-columns:repeat(2,1fr)}.grid3{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr 1fr}}@media(max-width:700px){.sidebar{display:none}.grid2{grid-template-columns:1fr}.cards{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.page{padding:14px}header{padding:0 12px}.userbox span:nth-child(2){display:none}}
.nav-group>.nav-item{cursor:default}.nav-item.sub{padding-left:34px;font-size:13px;background:transparent}.nav-item.sub.active,.nav-item.sub:hover{background:#0b5db7}
@media print{.sidebar,header,.toolbar,.page-head button,.actions{display:none!important}.main{width:100%}.page{padding:0}.table-card{box-shadow:none;border:0}.table{font-size:10px}.footer{display:none}}

/* ELENSYS UI refinement: compact tables, full grid lines, language pill and subtle header colors */
.lang-pill{display:flex;align-items:stretch;height:46px;border:1px solid #b8c9df;border-radius:24px;overflow:hidden;background:#fff;box-shadow:0 2px 8px rgba(15,38,68,.08)}
.lang-pill button{min-width:76px;padding:0 13px;border:0;border-right:1px solid #d7e1ee;background:#fff;color:#193452;display:flex;align-items:center;justify-content:center;gap:7px;font-weight:700;font-size:13px;transition:.15s ease}
.lang-pill button:last-child{border-right:0}
.lang-pill button:hover{background:#eef6ff;color:#056fe8}
.lang-pill button.active{background:#0878ef;color:#fff;box-shadow:inset 0 -2px 0 rgba(255,255,255,.18)}
.lang-pill .flag{font-size:22px;line-height:1}
header{background:linear-gradient(90deg,#fff 0%,#fafdff 70%,#f1f7ff 100%);box-shadow:0 1px 8px rgba(15,38,68,.04)}
header .iconbtn{color:#126fd4;background:#eef6ff;border-radius:8px;width:36px;height:36px;display:grid;place-items:center}
.userbox{padding:6px 8px 6px 12px;border-left:1px solid #dce7f3}
.userbox span:first-child{color:#123b68}
.linkbtn{color:#0878ef;border-radius:8px;padding:7px 9px}
.linkbtn:hover{background:#eaf4ff}
.table{border-collapse:collapse}
.table th,.table td{padding:7px 9px;height:38px;border-right:1px solid #dfe7f0;border-bottom:1px solid #dfe7f0;vertical-align:middle}
.table th{height:34px;padding-top:7px;padding-bottom:7px;background:#f3f7fc;border-top:1px solid #dfe7f0}
.table th:last-child,.table td:last-child{border-right:0}
.table tbody tr:last-child td{border-bottom:0}
.table tbody tr:hover{background:#f8fbff}
.std-table{border-collapse:collapse}
.std-table th,.std-table td{border-right:1px solid #dfe7f0;border-bottom:1px solid #dfe7f0}
.std-table th:last-child,.std-table td:last-child{border-right:0}
.nav-item{padding-top:9px;padding-bottom:9px}
.nav-item.sub{padding-top:7px;padding-bottom:7px}

/* Menu color-only correction: keep layout/spacing unchanged */
.sidebar{background:linear-gradient(180deg,#0b3f78 0%,#082f5f 52%,#06274f 100%);color:#fff}
.sidebar .nav-item{color:#f4f8ff;background:transparent}
.sidebar .nav-item:hover{background:#146fd1;color:#fff}
.sidebar .nav-item.active{background:#1683f7;color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.10)}
.sidebar .nav-group>.group-link{background:transparent !important;color:#f4f8ff !important}
.sidebar .nav-group>.group-link:hover,.sidebar .nav-group>.group-link.group-open{background:#125fae !important;color:#fff !important}
.sidebar .nav-item.sub{background:transparent !important;color:#f1f6fd !important}
.sidebar .nav-item.sub:hover,.sidebar .nav-item.sub.active{background:#0e5cae !important;color:#fff !important}
.sidebar .nav-chevron{color:#d8e9fb !important}
.sidebar .nav-group .nav-icon,.sidebar .nav-group .sub-icon{opacity:1}


/* Theme toggle */
html[data-theme='light']{--navy:#123b68;--blue:#0878ef;--bg:#eef4fa;--text:#1b2f49;--muted:#64748b;--line:#cfdbea;--card:#ffffff;--shadow:0 4px 18px rgba(15,38,68,.08)}
html[data-theme='light'] body{background:var(--bg);color:var(--text)}
html[data-theme='light'] .sidebar{background:linear-gradient(180deg,#1d6fbd 0%,#155c9e 52%,#104b84 100%);color:#fff}
html[data-theme='light'] .sidebar .nav-item{color:#fff}
html[data-theme='light'] .sidebar .nav-item:hover{background:#0b7df0;color:#fff}
html[data-theme='light'] .sidebar .nav-item.active{background:#0878ef;color:#fff}
html[data-theme='light'] .sidebar .nav-group>.group-link{color:#fff !important}
html[data-theme='light'] .sidebar .nav-group>.group-link:hover,
html[data-theme='light'] .sidebar .nav-group>.group-link.group-open{background:#0b67b8 !important;color:#fff !important}
html[data-theme='light'] .sidebar .nav-item.sub{color:#fff !important}
html[data-theme='light'] .sidebar .nav-item.sub:hover,
html[data-theme='light'] .sidebar .nav-item.sub.active{background:#0b67b8 !important;color:#fff !important}
html[data-theme='light'] .sidebar-bottom button{background:#eaf4ff;color:#123b68;border-color:#b8d3ef}
html[data-theme='light'] header{background:#fff;border-bottom-color:var(--line)}
html[data-theme='light'] .toolbar input,
html[data-theme='light'] .toolbar select,
html[data-theme='light'] .form input,
html[data-theme='light'] .form select,
html[data-theme='light'] .form textarea{background:#fff;color:var(--text)}
html[data-theme='light'] .secondary{background:#fff;color:var(--text)}

/* Global table row standard: match Report table compact density */
.table th,.table td{height:38px!important;padding:6px 9px!important;line-height:1.2;vertical-align:middle}
.table th{height:34px!important;padding-top:6px!important;padding-bottom:6px!important}
.table td button,.table td .secondary,.table td .primary,.table td .danger{padding:5px 9px!important;min-height:28px;height:28px;line-height:16px}
.std-table th,.std-table td{height:38px!important;padding:6px 9px!important}
.std-table input,.std-table select{padding:5px 7px!important;height:28px}

/* Part Master: single horizontal row layout */
.part-one-row-wrap{width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:#fff}.part-one-row-table{min-width:2450px;table-layout:auto}.part-one-row-table th,.part-one-row-table td{border-right:1px solid #dfe7f0;border-bottom:1px solid #dfe7f0;padding:7px 8px;height:38px;vertical-align:middle}.part-one-row-table th{position:sticky;top:0;z-index:1;background:#f3f7fc}.part-one-row-table th:last-child,.part-one-row-table td:last-child{border-right:0}.part-one-row-table input,.part-one-row-table select{width:100%;min-width:88px;height:30px;padding:5px 7px;border:1px solid var(--line);border-radius:6px;background:#fff}.part-one-row-table input[data-pk="partNo"]{min-width:110px}.part-one-row-table input[data-pk="partName"]{min-width:145px}.part-one-row-table input[data-pk="specification"]{min-width:130px}.part-one-row-table input[data-pk="customer"],.part-one-row-table input[data-pk="supplier"]{min-width:120px}.part-one-row-table .approval-readonly{min-width:105px;background:#f7f9fc}.part-one-actions{margin-top:10px}.part-one-row-table .small{display:block;white-space:nowrap;margin-top:3px;color:var(--muted);font-size:10px}

/* Part Master action buttons - visual distinction only */
.part-add-item-btn{background:#e8f2ff!important;color:#0868d9!important;border:1px solid #9fc9f7!important;padding:10px 14px;border-radius:8px;font-weight:600}
.part-add-item-btn:hover{background:#d7eaff!important}
.part-attach-btn{background:#e8f7ff!important;color:#0878ef!important;border:1px solid #9dd7f7!important;padding:10px 14px;border-radius:8px;font-weight:600}
.part-attach-btn:hover{background:#d9f0ff!important}
.part-camera-btn{background:#f1eaff!important;color:#7048d8!important;border:1px solid #c9b5f5!important;padding:10px 14px;border-radius:8px;font-weight:600}
.part-camera-btn:hover{background:#e8ddff!important}
.part-cancel-btn{background:#f1f3f5!important;color:#59636f!important;border:1px solid #d5dbe1!important;padding:10px 14px;border-radius:8px;font-weight:600}
.part-cancel-btn:hover{background:#e5e9ed!important}
.part-save-btn{background:#0878ef!important;color:#fff!important;border:1px solid #0878ef!important;padding:10px 16px;border-radius:8px;font-weight:700}
.part-save-btn:hover{background:#066bd5!important}
