:root{--cream:#f6f1e6;--paper:#fffdf8;--sage:#7f8d73;--sage-dark:#5f6f57;--ink:#252a25;--muted:#73776f;--line:#ded9cf;--danger:#8e4f47;--warn:#9b7137;--ok:#55725a;--soft:#eef1e9}
*{box-sizing:border-box}html{background:var(--cream)}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--cream);font-size:16px}body.rtl{direction:rtl;font-family:Tahoma,Arial,sans-serif}.hidden{display:none!important}button,input,select,textarea{font:inherit}button{cursor:pointer}.shell{max-width:1220px;margin:0 auto;padding:18px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:16px}.brand{display:flex;align-items:center;gap:12px}.brand img{height:82px;max-width:340px;object-fit:contain}.brand small{color:var(--muted);display:block;margin-top:3px}.actions{display:flex;gap:8px;flex-wrap:wrap}.btn{min-height:44px;border:1px solid var(--line);background:var(--paper);border-radius:12px;padding:10px 14px;color:var(--ink);font-weight:700}.btn.primary{background:var(--sage);border-color:var(--sage);color:white}.btn.ghost{background:transparent}.btn.danger{border-color:#c9aaa6;color:var(--danger)}.btn:disabled{opacity:.5;cursor:not-allowed}.input,.select,.textarea{width:100%;min-height:44px;border:1px solid var(--line);background:white;border-radius:10px;padding:10px 12px;color:var(--ink)}.textarea{min-height:96px;resize:vertical}.input:focus,.select:focus,.textarea:focus{outline:2px solid #b8c2af;border-color:var(--sage)}.card{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:16px}.login-wrap{max-width:440px;margin:42px auto}.login-logo{display:flex;justify-content:center;margin-bottom:16px}.login-logo img{height:165px;max-width:430px;object-fit:contain}.subtle{color:var(--muted);font-size:.9rem}.field{display:grid;gap:6px;margin-bottom:13px}.field label{font-size:.9rem;font-weight:700}.grid{display:grid;gap:12px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.nav{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;margin-bottom:16px}.nav button{white-space:nowrap}.nav button.active{background:var(--sage);border-color:var(--sage);color:white}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.stat{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:15px}.stat .n{font-size:2rem;font-weight:800;margin-top:6px}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.section-title{font-size:1.2rem;font-weight:800}.section-code{font-weight:800;color:var(--sage-dark)}.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.module{min-height:115px;display:flex;flex-direction:column;justify-content:space-between;text-align:start}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;border:1px solid var(--line);font-size:.78rem;font-weight:700;background:white}.badge.ok{color:var(--ok);border-color:#b9c9ba}.badge.warn{color:var(--warn);border-color:#d9c5a8}.badge.danger{color:var(--danger);border-color:#d7b8b3}.notice{border-inline-start:4px solid var(--sage);padding:10px 12px;background:var(--soft);border-radius:8px}.list{display:grid;gap:10px}.row-card{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border:1px solid var(--line);border-radius:12px;padding:12px;background:white;flex-wrap:wrap}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:white}table{width:100%;border-collapse:collapse;min-width:680px}th,td{padding:10px;border-bottom:1px solid var(--line);text-align:start;vertical-align:top}th{background:#f1eee6;font-size:.85rem}tr:last-child td{border-bottom:0}.form-section{border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:12px;background:white}.form-section h3{margin:0;background:#f1eee6;padding:11px 13px;font-size:1rem}.form-body{padding:13px}.inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.toast{position:sticky;top:8px;z-index:20;background:var(--sage-dark);color:white;border-radius:11px;padding:10px 13px;margin-bottom:12px}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.35);display:grid;place-items:center;padding:18px;z-index:50}.modal{max-width:620px;width:100%;max-height:90vh;overflow:auto;background:var(--paper);border-radius:16px;border:1px solid var(--line);padding:16px}.check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.check{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:9px;background:white}.empty{text-align:center;color:var(--muted);padding:24px}.split{display:grid;grid-template-columns:1.2fr .8fr;gap:14px}.bell{position:relative}.bell b{position:absolute;top:-7px;inset-inline-end:-7px;background:var(--danger);color:white;font-size:.7rem;border-radius:999px;padding:2px 6px}.kpi{font-weight:800;font-size:1.25rem}.muted-box{background:#f5f2ea;border:1px dashed var(--line);border-radius:11px;padding:12px}.danger-text{color:var(--danger)}.footer-note{color:var(--muted);font-size:.82rem;margin-top:18px;text-align:center}.sticky-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.perm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.user-title{font-weight:800}.user-meta{font-size:.85rem;color:var(--muted);margin-top:2px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.tabs .btn.active{background:var(--sage);color:white;border-color:var(--sage)}
@media(max-width:860px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:1fr}.grid.four,.grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.perm-grid,.check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.shell{padding:12px}.brand img{height:64px;max-width:250px}.login-logo img{height:132px;max-width:350px}.grid.two,.grid.three,.grid.four,.module-grid,.perm-grid,.check-grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat .n{font-size:1.6rem}.row-card{display:block}.row-card .actions{margin-top:10px}.topbar{align-items:flex-start}.btn{min-height:46px}}
/* V4 owner controls */
.recipe-photo{margin:0 0 14px}.recipe-photo img,.material-photo{width:100%;max-height:280px;object-fit:cover;border-radius:14px;border:1px solid #e4e1d9}.material-photo{height:150px;margin-bottom:10px}.image-preview{margin-top:8px}.image-preview img{max-width:180px;max-height:140px;object-fit:cover;border-radius:10px;border:1px solid #ddd}.thumb{width:38px;height:38px;object-fit:cover;border-radius:8px;vertical-align:middle;margin-inline-end:7px}.card a{color:inherit}
\n/* V4.1 grouped dashboard + approvals + chat */\n.welcome-card{display:flex;justify-content:space-between;align-items:center;gap:12px;background:linear-gradient(135deg,var(--paper),#eef1e9);border:1px solid var(--line);border-radius:18px;padding:18px;margin-bottom:14px}.quick-chat{border:1px solid var(--line);background:white;border-radius:14px;padding:12px 16px;font:inherit;display:flex;gap:8px;align-items:center}.quick-chat span,.chat-user span{background:var(--danger);color:#fff;border-radius:999px;min-width:22px;padding:2px 7px;font-size:.75rem}.approval-hero{background:#fffaf0;border:1px solid #ddcba9;border-radius:18px;padding:16px;margin-bottom:16px}.approval-count{background:var(--warn);color:white;border-radius:999px;padding:6px 11px;font-weight:800}.group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.group-card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:17px}.group-icon{font-size:1.7rem;margin-bottom:7px}.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:13px}.service-btn{display:flex;justify-content:space-between;align-items:center;text-align:start;border:1px solid var(--line);background:white;border-radius:12px;padding:12px;font:inherit;font-weight:700;color:var(--ink)}.service-btn:hover{border-color:var(--sage)}.nav:empty{display:none}.chat-layout{display:grid;grid-template-columns:280px 1fr;gap:12px;min-height:520px}.chat-users,.chat-thread{background:var(--paper);border:1px solid var(--line);border-radius:16px;overflow:hidden}.chat-user{width:100%;border:0;border-bottom:1px solid var(--line);background:white;padding:13px;display:flex;justify-content:space-between;align-items:center;text-align:start;color:var(--ink)}.chat-user.active{background:var(--soft)}.chat-user small,.chat-head small{display:block;color:var(--muted);margin-top:3px}.chat-head{padding:14px;border-bottom:1px solid var(--line)}.messages{height:360px;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:9px}.msg{max-width:78%;background:#f0ede5;border-radius:14px;padding:10px 12px;align-self:flex-start}.msg.mine{background:#dfe7da;align-self:flex-end}.msg small{display:block;color:var(--muted);font-size:.7rem;margin-top:5px}.msg a{display:block;margin-top:6px}.chat-compose{padding:12px;border-top:1px solid var(--line);display:grid;gap:8px}.chat-compose .textarea{min-height:70px}\n@media(max-width:700px){.group-grid{grid-template-columns:1fr}.service-grid{grid-template-columns:1fr 1fr}.chat-layout{grid-template-columns:1fr}.chat-users{max-height:180px;overflow:auto}.messages{height:330px}}\n@media(max-width:430px){.service-grid{grid-template-columns:1fr}.welcome-card{align-items:flex-start;flex-direction:column}.msg{max-width:90%}}\n
/* V4.1.1 mobile English fit + unified owner settings */
.settings-stack{display:grid;gap:10px;margin-bottom:16px}.settings-row{width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;text-align:start;border:1px solid var(--line);background:var(--paper);border-radius:14px;padding:14px;color:var(--ink);font:inherit}.settings-row b,.settings-row small{display:block}.settings-row small{color:var(--muted);margin-top:3px}.service-btn{min-width:0;overflow-wrap:anywhere;word-break:normal;line-height:1.2}.group-card{min-width:0}
@media(max-width:700px){body:not(.rtl) .service-grid{grid-template-columns:1fr}body:not(.rtl) .service-btn{font-size:.94rem}.group-card{padding:14px}.section-title{overflow-wrap:anywhere}}

/* V4.1.2 action center, clickable notifications and mobile chat */
.notification-link{display:block;width:100%;text-align:start;border:0;border-bottom:1px solid var(--line);background:transparent;padding:12px;cursor:pointer;color:var(--ink);font:inherit}.notification-link:hover{background:var(--soft)}.notification-link small{display:block;margin-top:5px;color:var(--muted)}
.action-hero{background:#fff7f0;border:1px solid #e6c7ad;border-radius:18px;padding:16px;margin-bottom:16px}.action-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:start;border:1px solid var(--line);background:white;border-radius:12px;padding:13px;color:var(--ink);font:inherit;cursor:pointer}.action-item:hover{border-color:var(--sage)}.focus-action{outline:3px solid rgba(139,153,125,.28);scroll-margin:100px}.chat-back{display:none;border:0;background:transparent;font-size:2rem;line-height:1;padding:0 8px;color:var(--ink)}
@media(max-width:700px){.chat-layout{display:block;min-height:calc(100vh - 190px)}.chat-users{max-height:none;overflow:visible}.chat-thread{display:none}.chat-layout.thread-open .chat-users{display:none}.chat-layout.thread-open .chat-thread{display:block;min-height:calc(100vh - 190px)}.chat-layout.thread-open .chat-back{display:inline-block}.chat-head{display:flex;align-items:center;gap:6px}.messages{height:calc(100vh - 390px);min-height:300px}.chat-compose{position:sticky;bottom:0;background:var(--paper)}.chat-user{min-height:64px}.quick-chat{max-width:100%}.notification-link{overflow-wrap:anywhere}}

/* V4.2 department dashboard, Smart Costing Assistant & WhatsApp-style chat */
.chat-search-wrap{padding:10px;background:var(--paper);border-bottom:1px solid var(--line)}.chat-user{display:grid;grid-template-columns:46px 1fr;gap:10px}.chat-avatar{width:42px;height:42px;border-radius:50%;background:var(--sage);color:white;display:grid;place-items:center;font-weight:800;flex:0 0 auto}.chat-user-main{min-width:0}.chat-user-top,.chat-user-bottom{display:flex;justify-content:space-between;align-items:center;gap:8px}.chat-user-top time{font-size:.7rem;color:var(--muted);white-space:nowrap}.chat-user-bottom small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:190px}.chat-contact{border:0;background:transparent;text-align:start;color:var(--ink);font:inherit;padding:0;cursor:pointer}.chat-image-btn{border:0;background:transparent;padding:0;margin-top:6px;cursor:zoom-in}.chat-image{display:block;max-width:260px;max-height:280px;border-radius:10px;object-fit:cover}.chat-file{padding:8px;background:rgba(255,255,255,.55);border-radius:8px;text-decoration:none}.chat-compose-row{display:flex;align-items:center;gap:8px}.chat-compose-row .subtle{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-empty-state{min-height:480px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;font-size:2rem;color:var(--muted)}.chat-empty-state b{font-size:1rem}.image-viewer{position:relative;background:#111;border-radius:12px;padding:42px 10px 10px;text-align:center}.image-viewer img{max-width:100%;max-height:76vh;object-fit:contain}.image-close{position:absolute;top:6px;inset-inline-end:6px}.media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.media-tile{border:1px solid var(--line);background:white;border-radius:10px;padding:6px;cursor:pointer}.media-tile img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:7px}.media-tile small{display:block;margin-top:5px}.media-file{display:flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:12px;text-decoration:none;color:var(--ink)}
.cost-steps{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}.cost-steps span{background:var(--soft);border:1px solid var(--line);border-radius:999px;padding:6px 10px;font-size:.78rem;font-weight:700}.scenario-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.scenario{border:1px solid var(--line);border-radius:12px;padding:10px;background:white}.scenario small,.scenario b{display:block}.scenario b{margin-top:4px}.smart-assistant{border:1px solid #d9d0b5;background:#fffaf0;border-radius:14px;padding:14px;margin-bottom:12px}.assistant-questions{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.assistant-questions button{border:1px solid var(--line);background:white;border-radius:999px;padding:8px 10px;font:inherit;cursor:pointer}.assistant-answer{margin-top:10px;background:white;border-radius:10px;padding:12px;line-height:1.6}
@media(max-width:700px){.chat-page{margin:-4px}.chat-layout{min-height:calc(100vh - 150px)}.chat-users,.chat-thread{border-radius:0;border-inline:0}.chat-layout.thread-open .chat-thread{min-height:calc(100vh - 150px)}.messages{height:calc(100vh - 340px);min-height:330px}.chat-compose{padding:8px}.chat-compose .textarea{min-height:52px}.chat-image{max-width:min(72vw,300px)}.media-grid{grid-template-columns:repeat(3,1fr)}.scenario-grid{grid-template-columns:1fr}.cost-steps{overflow-x:auto;flex-wrap:nowrap}.cost-steps span{white-space:nowrap}}

/* V4.3 official La Macine internal operations theme */
:root{--cream:#f3f3f3;--paper:#fffefa;--sage:#7b9c98;--sage-dark:#4f6f6a;--ink:#0b2824;--muted:#75817e;--line:#dfe4e1;--soft:#edf3f1;--danger:#b04d49;--warn:#9a713d;--ok:#557b6c}
html,body{background:#f3f3f3}body{color:var(--ink)}.shell{max-width:none;margin:0;padding:18px 22px 22px 286px}.rtl .shell{padding:18px 286px 22px 22px}.wordmark{font-family:Georgia,"Times New Roman",serif;font-size:2.1rem;letter-spacing:.02em;color:var(--ink);text-align:center}.wordmark small,.side-wordmark small{display:block;font:600 .58rem/1.2 Arial,sans-serif;letter-spacing:.28em;margin-top:3px}.wordmark.compact{font-size:1.55rem;color:var(--sage-dark)}
#appView>.nav{position:fixed;left:0;top:0;bottom:0;width:260px;background:linear-gradient(180deg,#6f8985,#587570);padding:28px 14px;display:flex;flex-direction:column;gap:6px;z-index:30;overflow-y:auto;margin:0;box-shadow:8px 0 28px rgba(11,40,36,.08)}.rtl #appView>.nav{left:auto;right:0;box-shadow:-8px 0 28px rgba(11,40,36,.08)}.side-wordmark{font-family:Georgia,"Times New Roman",serif;color:white;text-align:center;font-size:1.55rem;padding:8px 8px 24px}.side-link{border:0;background:transparent;color:#f6faf9;border-radius:9px;min-height:48px;padding:10px 13px;display:grid;grid-template-columns:28px 1fr;gap:8px;align-items:center;text-align:start;font:inherit}.side-link span{font-size:1.05rem;text-align:center}.side-link b{font-weight:600}.side-link:hover,.side-link.active{background:rgba(255,255,255,.17)}
.topbar{background:rgba(255,255,255,.88);border:1px solid var(--line);border-radius:14px;padding:10px 14px;box-shadow:0 4px 18px rgba(11,40,36,.04);position:sticky;top:8px;z-index:20}.brand{display:none}.card,.group-card,.approval-hero,.action-hero,.chat-users,.chat-thread,.form-section,.table-wrap{box-shadow:0 4px 18px rgba(11,40,36,.035)}.welcome-card{background:linear-gradient(105deg,#647f7a,#829b96);color:white;border:0;min-height:124px;padding:24px}.welcome-card .subtle{color:#edf4f2}.group-card{background:#fffefa}.service-btn{background:#f8faf9}.service-btn:hover{background:var(--soft)}th{background:#eef3f1}.btn{border-radius:9px}.btn.primary{background:var(--sage-dark);border-color:var(--sage-dark)}.input,.select,.textarea{border-radius:8px}.login-wrap{max-width:100%;min-height:calc(100vh - 36px);margin:0;display:grid;place-items:center;background:linear-gradient(110deg,#657e79 0 43%,#ece9e1 43% 100%);border-radius:18px}.login-wrap>.card{width:min(430px,calc(100% - 32px));padding:30px;background:rgba(255,254,250,.96)}.login-logo{margin-bottom:24px}.login-logo .wordmark{color:var(--sage-dark)}.decision-success{text-align:center;padding:24px 10px}.success-mark{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--sage-dark);color:#fff;font-size:2rem;margin:0 auto 14px}.actions.center{justify-content:center;margin-top:18px}
@media(max-width:820px){.shell,.rtl .shell{padding:10px 10px 84px}#appView>.nav,.rtl #appView>.nav{top:auto;left:8px;right:8px;bottom:8px;width:auto;height:66px;padding:6px;background:#5f7c77;border-radius:16px;display:flex;flex-direction:row;overflow-x:auto;box-shadow:0 8px 28px rgba(11,40,36,.22)}.side-wordmark{display:none}.side-link{min-width:72px;min-height:54px;padding:5px 8px;display:flex;flex-direction:column;justify-content:center;gap:2px;text-align:center}.side-link b{font-size:.68rem;white-space:nowrap}.side-link span{font-size:1rem}.topbar{top:4px}.login-wrap{min-height:calc(100vh - 20px);background:linear-gradient(180deg,#667f7a 0 34%,#ece9e1 34% 100%)}.welcome-card{min-height:105px}.footer-note{margin-bottom:10px}}

/* V4.4 mobile parity: preserve desktop information architecture while fitting phones */
@media (max-width: 720px){
  .app-shell{min-width:0}.sidebar{width:100%;max-width:none}.main{min-width:0;width:100%}
  .module-grid,.grid.two,.grid.three,.split{grid-template-columns:1fr!important}
  .section-head{align-items:flex-start;gap:10px}.section-head>.btn{flex:0 0 auto}
  .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-wrap table{min-width:720px}
  .row-card{gap:10px;align-items:flex-start}.modal-card{width:calc(100vw - 20px);max-height:92vh;overflow:auto}
  .chat-layout{height:calc(100dvh - 150px)}.chat-layout.thread-open .chat-thread{width:100%;min-width:0}.chat-compose{padding-bottom:max(10px,env(safe-area-inset-bottom))}
  .side-wordmark{font-size:24px}.input,.select,.textarea,.btn{font-size:16px}
}

/* V4.4 final mobile stack + owner operations */
.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.audit-json{white-space:pre-wrap;overflow-wrap:anywhere;direction:ltr;text-align:left;background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:12px;max-height:360px;overflow:auto}
@media (max-width:720px){
  .group-grid{grid-template-columns:1fr!important;gap:12px}
  .group-card{width:100%;min-width:0}
  .service-grid{grid-template-columns:1fr!important}
  .service-btn{width:100%;min-height:52px;white-space:normal;overflow-wrap:anywhere}
  .detail-grid{grid-template-columns:1fr}
  .section-head{flex-wrap:wrap}
  .section-head .actions{width:100%;display:grid;grid-template-columns:1fr}
  .section-head .actions .btn{width:100%}
}

.product-card{display:grid;gap:10px}.product-cover{width:100%;height:190px;object-fit:cover;border-radius:13px;border:1px solid var(--line);cursor:pointer}.product-cover.placeholder{display:grid;place-items:center;background:var(--soft);font-family:Georgia,serif;font-size:1.5rem;color:var(--sage-dark)}.passkey-btn{width:100%;margin-top:10px;background:var(--soft);border-color:var(--sage);color:var(--sage-dark)}
@media(max-width:560px){.product-cover{height:220px}}

.central-details{display:grid;grid-template-columns:1fr 2fr;gap:12px}.central-details dt{font-weight:700}.central-details dd{margin:0;overflow-wrap:anywhere}.row-card select{max-width:180px}
@media print{#nav,header,.actions,.section-head button,#reportFilter,#reportFilter+div,#reportHome{display:none!important}.report-print-mode #content>*:not(#reportResults){display:none!important}.report-print-mode #reportResults{display:block!important}.table-wrap{overflow:visible!important}table{font-size:9px}body{background:white!important}.app-shell{display:block!important}}

.central-admin-frame{width:100%;height:calc(100vh - 150px);min-height:700px;border:0;border-radius:14px;background:#faf9f5}
.material-category{display:flex;flex-direction:column;gap:12px;text-align:start;font:inherit;color:var(--ink);cursor:pointer;min-height:115px;transition:border-color .15s}
.material-category:hover,.material-category:focus-visible{border-color:var(--sage);outline:2px solid var(--sage)}
.material-search{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:12px;margin-bottom:20px}
.material-search>label:first-child{grid-column:1/-1;font-weight:600}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:560px){.material-search{grid-template-columns:1fr}.material-category{min-height:95px}}

.portal-heading{text-align:center;margin:24px 0 30px}.admin-area-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:1000px;margin:0 auto}.admin-area-card{font:inherit;color:var(--ink,#25443c);text-align:start;background:#fffdf9;border:1px solid #dce2d8;border-radius:24px;padding:32px;cursor:pointer;min-height:280px;box-shadow:0 8px 28px #25443c08}.admin-area-card:hover{border-color:#8ba097;box-shadow:0 10px 30px #25443c12}.admin-area-card:focus-visible{outline:3px solid #8ba097;outline-offset:3px}.admin-area-card .area-icon{display:block;font-size:34px;color:#728e81}.admin-area-card h2{margin:18px 0 8px}.admin-area-card p{margin:0 0 12px}.admin-area-card b{display:block;margin-top:28px}.admin-area-card .subtle{line-height:1.9}@media(max-width:650px){.admin-area-grid{grid-template-columns:1fr;gap:16px}.admin-area-card{padding:24px;min-height:220px}.portal-heading{margin:12px 0 20px}}

/* Unread notification indicator */
.notification-link.is-unread{background:#eef5f0;border-inline-start-color:var(--sage-dark)}
.notification-link.is-read{background:transparent;border-inline-start-color:transparent}
.notification-link.is-unread:hover,.notification-link.is-read:hover{background:var(--soft)}
.notification-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}
.notification-unread-dot{display:inline-block;width:9px;height:9px;flex:0 0 9px;border-radius:50%;background:#408b63;box-shadow:0 0 0 3px rgba(64,139,99,.12)}

/* Raw material prices by supplier */
.material-price-card{min-width:0}.material-supplier-list{display:grid;gap:10px;margin-top:12px}.material-supplier-price{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;align-items:center;border:1px solid var(--line);background:#f8faf8;border-radius:10px;padding:10px}.material-supplier-price .actions{grid-column:1/-1}.material-rate{text-align:end;white-space:nowrap}.material-rate b{display:block;color:var(--sage-dark);font-size:1.12rem}.material-rate small{display:block;color:var(--muted);font-size:.78rem}.material-supplier-price .subtle{line-height:1.5}@media(max-width:520px){.material-supplier-price{grid-template-columns:1fr}.material-rate{text-align:start}}
.material-invoice-history{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.material-invoice-history summary{cursor:pointer;font-weight:700;color:var(--sage-dark)}.material-invoice-row{padding:9px 0;border-bottom:1px solid var(--line);font-size:.88rem}.material-invoice-row:last-child{border-bottom:0}

/* Grouped user permission editor */
.permission-editor{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fafbf8}.permission-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.permission-search{flex:1;min-width:180px}.permission-group{background:var(--paper);border:1px solid var(--line);border-radius:10px;margin-top:9px;overflow:hidden}.permission-group summary{cursor:pointer;padding:12px;font-weight:700;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px}.permission-group summary:before{content:'›';color:var(--sage-dark)}.permission-group[open] summary:before{transform:rotate(90deg)}.permission-group summary>span:first-of-type{flex:1}.permission-group-body{padding:0 12px 12px}.permission-select-group{display:flex;align-items:center;gap:8px;padding:10px 0;color:var(--sage-dark);font-size:.86rem}.permission-editor .perm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.permission-option{align-items:flex-start;line-height:1.5}.permission-option input{flex:0 0 auto;margin-top:5px}.permission-option:has(input:checked){background:#edf4ee;border-color:#a9bfae}.permission-editor input[type=checkbox]{accent-color:var(--sage-dark);width:17px;height:17px}.permission-group summary:focus-visible{outline:2px solid var(--sage-dark);outline-offset:-2px}@media(max-width:520px){.permission-editor .perm-grid{grid-template-columns:1fr}.permission-editor{padding:9px}}

/* Guided costing steps and staff archive */
.costing-modal{max-width:920px}.costing-modal .cost-steps{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}.costing-modal .cost-steps span{border-radius:20px;background:#f1f2ec;color:var(--muted);padding:8px 11px;font-size:.82rem}.costing-modal .cost-steps span.active{background:var(--sage-dark);color:white}.cost-step-help{padding:0 13px;line-height:1.7}.cost-wizard-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--paper);padding:12px 0 0;position:sticky;bottom:0;border-top:1px solid var(--line);margin-top:15px}.costing-modal .cost-material{min-width:190px}.costing-modal .cost-pack-unit{margin-top:6px}.costing-modal .kpi{display:block}.hr-directory-tools{display:grid;gap:8px;margin-bottom:14px}.hr-employee-card .actions{margin-top:10px}.hr-employee-card .btn{font-size:.85rem}
@media(max-width:650px){.costing-modal table{min-width:0}.costing-modal table thead{display:none}.costing-modal #costLines tr[data-idx]{display:grid;grid-template-columns:1fr 1fr;padding:12px;border-bottom:1px solid var(--line);gap:8px}.costing-modal #costLines tr[data-idx] td{display:block;padding:0;border:0}.costing-modal #costLines tr[data-idx] td:first-child,.costing-modal #costLines tr[data-idx] td:nth-child(3){grid-column:1/-1}.costing-modal #costLines tr[data-idx] td:first-child{font-weight:800}.costing-modal #costLines tr[data-idx] td:before{display:block;color:var(--muted);font-size:.76rem;margin-bottom:5px}.costing-modal #costLines td:nth-child(2):before{content:'Recipe quantity'}.costing-modal #costLines td:nth-child(3):before{content:'Material and supplier'}.costing-modal #costLines td:nth-child(4):before{content:'Pack size and unit'}.costing-modal #costLines td:nth-child(5):before{content:'Pack price (QAR)'}.costing-modal #costLines td:nth-child(6):before{content:'Ingredient cost (QAR)'}.rtl .costing-modal #costLines td:nth-child(2):before{content:'كمية الوصفة'}.rtl .costing-modal #costLines td:nth-child(3):before{content:'المادة والمورد'}.rtl .costing-modal #costLines td:nth-child(4):before{content:'حجم العبوة ووحدتها'}.rtl .costing-modal #costLines td:nth-child(5):before{content:'سعر العبوة ر.ق'}.rtl .costing-modal #costLines td:nth-child(6):before{content:'تكلفة المكوّن ر.ق'}.costing-modal .cost-material{min-width:0}.cost-wizard-nav .btn{min-width:82px}}


.sales-period{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:16px 0}.sales-period label{display:grid;gap:5px;min-width:155px}.sales-source-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.sales-source-card{min-width:0;border:1px solid var(--line);border-radius:14px;padding:17px;background:#fffefa;text-align:start;color:var(--ink);font:inherit;cursor:pointer;display:grid;gap:7px}.sales-source-card.active{border:2px solid var(--sage-dark);background:var(--soft);padding:16px}.sales-source-card strong{font-size:1.45rem;overflow-wrap:anywhere}.sales-source-card small{color:var(--muted)}#salesSourceDetails .group-grid{margin:16px 0}#salesSourceDetails .group-grid>div{border:1px solid var(--line);border-radius:10px;padding:12px}#salesSourceDetails .group-grid h2{margin:7px 0}@media(max-width:700px){.sales-source-grid{grid-template-columns:1fr}.sales-period{display:grid;grid-template-columns:1fr 1fr}.sales-period label{min-width:0}.sales-period button{grid-column:1/-1}}
.sales-scroll{max-height:330px;overflow:auto;overscroll-behavior:contain;border:1px solid #e6e2d9;border-radius:12px;margin-top:12px}
.sales-scroll table{min-width:640px}
.sales-scroll thead th{position:sticky;top:0;z-index:1;background:#f5f2eb}
.odoo-auto-toggle{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid #c9d8cd;border-radius:9px;cursor:pointer}
.odoo-auto-toggle input{width:18px;height:18px;accent-color:#33584d}

/* Unified report centre */
.report-filter{margin-bottom:16px}.report-filter label{display:grid;gap:6px}.report-filter .actions{margin-top:12px}.report-downloads{margin:14px 0}.report-stat{display:grid;text-align:center;min-width:85px}.report-stat b{font-size:1.8rem}.report-stat small{color:var(--muted)}#reportResults .table-wrap{max-height:60vh;overflow:auto}#reportResults th{position:sticky;top:0;z-index:1;white-space:nowrap}#reportResults td{max-width:420px;overflow-wrap:anywhere;white-space:pre-wrap}@media print{#reportResults .table-wrap{max-height:none!important;overflow:visible!important}#reportResults th{position:static}#reportResults tr{break-inside:avoid}.report-print-mode .topbar,.report-print-mode .sidebar,.report-print-mode #modalRoot{display:none!important}}
/* Focused, independently scrolling team chat */
.chat-page .section-head{margin-bottom:10px}.chat-page .section-head p{margin:4px 0}.chat-page .chat-layout{height:calc(100dvh - 205px);min-height:420px;max-height:850px;grid-template-columns:minmax(250px,310px) minmax(0,1fr);gap:0;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--paper)}.chat-page .chat-users{border:0;border-inline-end:1px solid var(--line);border-radius:0;display:flex;flex-direction:column;min-height:0}.chat-page #chatPeople{flex:1;overflow:auto;min-height:0}.chat-page .chat-search-wrap{flex:none}.chat-list-filters{display:flex;gap:7px;margin-top:8px}.chat-list-filters .btn{padding:5px 13px;font-size:.85rem}.chat-list-filters .active{background:var(--sage-dark);color:white}.chat-page .chat-user{padding:14px 12px;cursor:pointer}.chat-page .chat-user.active{border-inline-start:3px solid var(--sage-dark);background:#edf4ee}.chat-page .chat-user.has-unread .chat-user-top b,.chat-page .chat-user.has-unread small{font-weight:800;color:var(--ink)}.chat-page .chat-user-bottom small{max-width:200px}.chat-page .chat-unread{background:#42765b;color:white;min-width:21px;height:21px;display:grid;place-items:center;border-radius:50%;font-size:.72rem;flex-shrink:0}.chat-page .chat-thread{position:relative;border:0;border-radius:0;display:flex;flex-direction:column;min-height:0;min-width:0;background:#f2f0e8}.chat-page .chat-head{display:flex;align-items:center;gap:9px;flex:none;background:#fffefa;min-height:69px;padding:10px 14px}.chat-page .chat-contact{flex:1;min-width:0}.chat-page .chat-contact b{overflow-wrap:anywhere}.chat-page .chat-head .chat-avatar{width:38px;height:38px}.chat-thread-search{display:flex;align-items:center;gap:10px;padding:7px 12px;background:#faf9f4;border-bottom:1px solid var(--line)}.chat-thread-search .input{padding:7px 10px;flex:1;min-width:0}.chat-thread-search .subtle{white-space:nowrap;font-size:.7rem}.chat-page .messages{height:auto;min-height:0;flex:1;overflow:auto;overscroll-behavior:contain;padding:16px;gap:10px;scrollbar-gutter:stable}.chat-page .msg{max-width:min(82%,560px);background:white;border:1px solid #e6e4dc;border-radius:14px 14px 14px 3px;padding:10px 13px;box-shadow:0 2px 4px #00000004;flex-shrink:0;min-width:85px}.chat-page .msg.mine{background:#e0eadf;border-color:#d4dfd1;border-radius:14px 14px 3px 14px}.msg-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.96rem;line-height:1.65}.msg-meta{display:flex;align-items:center;justify-content:flex-end;gap:7px;font-size:.68rem;color:var(--muted);margin-top:5px}.msg-receipt{font-weight:bold;letter-spacing:-3px;margin-inline-end:4px}.msg-receipt.is-read{color:#337c80}.msg-actions{display:flex;justify-content:flex-end;gap:10px}.msg-actions:empty{display:none}.msg-actions button{padding:4px 0 0;border:0;background:transparent;color:#456250;font:inherit;font-size:.7rem;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.chat-day{align-self:center;border-radius:20px;background:#e5e6df;padding:4px 12px;color:#59655d;font-size:.72rem;margin:5px 0}.chat-page .chat-compose{position:static;flex:none;padding:10px 12px;background:#fffefa;border-top:1px solid var(--line);gap:5px}.chat-compose-main{display:flex;align-items:flex-end;gap:8px}.chat-page .chat-compose .textarea{min-height:42px;max-height:130px;resize:none;line-height:1.5;padding:10px 12px;flex:1;min-width:0;overflow:auto}.chat-page .chat-send{min-height:43px}.chat-page .chat-attach{min-height:43px;display:flex;align-items:center;padding:8px 10px}.chat-edit-banner{display:flex;justify-content:space-between;gap:10px;align-items:center;background:#edf3e9;border-inline-start:3px solid var(--sage-dark);padding:8px 10px;margin-bottom:5px}.chat-edit-banner small{display:block;color:var(--muted);font-size:.72rem;margin-top:3px}.chat-file-preview{display:flex;gap:8px;align-items:center;justify-content:space-between;font-size:.8rem;padding:3px 7px}.chat-file-preview span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-new{position:absolute;bottom:105px;inset-inline-end:20px;background:#fff;box-shadow:0 3px 15px #0002}.chat-older{align-self:center;flex-shrink:0;padding:5px 13px;font-size:.8rem}.chat-admin-menu{position:relative;z-index:5}.chat-admin-menu summary{cursor:pointer;list-style:none;font-size:.85rem}.chat-admin-options{position:absolute;inset-inline-end:0;top:100%;display:grid;gap:7px;padding:10px;min-width:220px;background:white;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px #0002}.chat-empty-state{flex:1;min-height:0}.chat-empty-state small{font-size:.85rem}.chat-history-list{display:grid;gap:14px}.chat-history-card{padding:13px;border:1px solid var(--line);border-radius:12px}.chat-history-card p{white-space:pre-wrap;overflow-wrap:anywhere;margin:7px 0;font-size:.95rem}.chat-history-before,.chat-history-after{padding:8px 12px;margin-top:10px;border-radius:8px;background:#f7eeea}.chat-history-after{background:#eaf1e5}.chat-history-card small{font-weight:bold;color:var(--muted)}
@media(max-width:820px){.chat-page .chat-layout{height:calc(100dvh - 220px);min-height:360px;max-height:none;display:block}.chat-page .chat-users{height:100%;overflow:hidden;border:0;display:flex}.chat-page .chat-thread{display:none;height:100%}.chat-page .chat-layout.thread-open .chat-thread{display:flex;min-height:0}.chat-page .chat-layout.thread-open .chat-users{display:none}.chat-page .chat-back{display:block}.chat-page .messages{min-height:0;padding:12px}.chat-page .chat-head{padding:8px 10px}.chat-page .chat-compose{padding:8px}.chat-page .msg{max-width:88%}.chat-page .chat-user-bottom small{max-width:60vw}.chat-page .chat-head .chat-avatar{display:none}.chat-page .section-title{font-size:1.1rem}.chat-page .section-head p{font-size:.75rem}.chat-admin-menu summary{font-size:.72rem;padding:8px}.chat-page .chat-compose .textarea{font-size:16px}.chat-thread-search .subtle{max-width:85px;white-space:normal}}
.material-photo-open{display:block;position:relative;width:100%;padding:0;border:0;background:#f5f3ed;border-radius:12px;overflow:hidden;cursor:zoom-in}.material-photo-open .material-photo{display:block;width:100%;height:180px;object-fit:contain;margin:0}.material-photo-open span{display:block;padding:6px 10px;color:var(--sage-dark);font-size:.8rem}.material-photo-add:not(.btn){display:block;width:100%;padding:20px 12px;margin-bottom:12px;background:#f5f6ef;border:1px dashed #9bab94;border-radius:12px;color:var(--sage-dark);font:inherit;cursor:pointer}.material-photo-editor{grid-column:1/-1;padding:15px;border:1px solid var(--line);border-radius:12px;background:#f8f8f2}.material-photo-editor p{margin:6px 0 10px}.material-photo-preview{display:block;max-width:100%;width:250px;height:190px;object-fit:contain;border-radius:10px;background:#fff;margin:12px auto}.material-photo-empty{text-align:center;padding:18px;color:var(--muted)}.material-photo-full{display:block;width:100%;max-height:65vh;object-fit:contain;margin-bottom:14px}.material-photo-editor small{display:block;margin-top:8px}

.corporate-scroll{max-height:440px;overflow:auto;overscroll-behavior:contain}
.activity-layout{display:grid;grid-template-columns:minmax(230px,290px) minmax(0,1fr);gap:18px;align-items:start}
.activity-users{max-height:650px;overflow:auto;position:sticky;top:12px}
.activity-user{display:flex;flex-direction:column;gap:5px;width:100%;text-align:start;border:1px solid #dedbcf;background:transparent;border-radius:12px;padding:12px;margin-top:10px;color:inherit;cursor:pointer}
.activity-user.selected{background:#edf2e9;border-color:#637e6a}
.activity-user small{display:block;overflow-wrap:anywhere}
.activity-table{max-height:520px;overflow:auto}
.activity-table thead th{position:sticky;top:0;background:#f6f3ec;z-index:1}
.activity-diff pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:260px;overflow:auto;max-width:380px;min-width:140px;font:inherit}
#activityExcel.disabled{pointer-events:none;opacity:.45}
.activity-backdrop{z-index:1000;padding:12px}
.activity-backdrop .modal{max-width:850px;max-height:92dvh;padding:0;overscroll-behavior:contain}
.activity-readable{padding:20px;min-width:0}
.activity-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.activity-detail-head h2{font-size:1.1rem;line-height:1.6;margin:5px 0;overflow-wrap:anywhere}
.activity-detail-head p{font-size:.8rem;margin:0;line-height:1.8}
.activity-detail-head>.btn{flex:none;min-width:44px;min-height:44px}
.activity-summary{padding:16px;margin:16px 0;background:#eaf1e7;border-inline-start:4px solid #65846d;border-radius:10px;font-weight:700;line-height:1.9;overflow-wrap:anywhere}
.activity-operation,.activity-change{padding:16px;margin:14px 0;border:1px solid var(--line);border-radius:12px;background:#fffefa;min-width:0}
.activity-operation h3,.activity-change h3{font-size:1rem;line-height:1.7;margin:0 0 12px;overflow-wrap:anywhere}
.activity-data{display:grid;gap:0;margin:0;min-width:0}
.activity-data>div{display:grid;grid-template-columns:minmax(100px,35%) minmax(0,1fr);gap:12px;border-bottom:1px solid #ecebe4;padding:10px 0;min-width:0}
.activity-data>div:last-child{border-bottom:0}
.activity-data dt{color:var(--muted);font-size:.88rem;line-height:1.8;overflow-wrap:anywhere}
.activity-data dd{margin:0;line-height:1.8;overflow-wrap:anywhere;min-width:0}
.activity-data.is-nested{border-inline-start:2px solid #e0e8dc;padding-inline-start:10px}
.activity-value{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.92rem;line-height:1.8}
.activity-value-list{padding-inline-start:22px;margin:0;display:grid;gap:8px}
.activity-explanation{padding:12px;background:#f4f3eb;border-radius:8px;font-size:.85rem;line-height:1.9;color:#59655d;margin-bottom:0}
.activity-before-after{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.activity-before,.activity-after{padding:12px;border-radius:10px;background:#f7eeea;min-width:0}
.activity-after{background:#eaf1e5}
.activity-before>b,.activity-after>b{display:block;font-size:.78rem;color:var(--muted);margin-bottom:8px}
.activity-change-fields{display:grid;gap:14px}
.activity-change-fields h4{font-size:.92rem;margin:0 0 8px}
.activity-file{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}
.activity-file>div{min-width:0;overflow-wrap:anywhere}
.activity-file small{display:block;color:var(--muted);margin-top:5px}
.activity-file .btn{flex:none}
.activity-row-summary{line-height:1.9;min-width:180px;max-width:430px;overflow-wrap:anywhere}
@media(max-width:600px){.activity-readable{padding:14px}.activity-before-after{grid-template-columns:minmax(0,1fr)}.activity-operation,.activity-change{padding:12px}.activity-data>div{grid-template-columns:minmax(0,1fr);gap:3px;padding:9px 0}.activity-file{align-items:flex-start;flex-direction:column}.activity-row-summary{min-width:0;max-width:none}.activity-table{border:0;background:transparent;padding:0;box-shadow:none;max-height:65dvh}.activity-table table,.activity-table tbody{display:block;width:100%}.activity-table thead{display:none}.activity-table tr{display:grid;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:12px;gap:8px}.activity-table td{display:block;padding:0;border:0;overflow-wrap:anywhere}.activity-table td[data-label]::before{content:attr(data-label) ': ';color:var(--muted);font-size:.78rem;margin-inline-end:5px}.activity-table td:last-child .btn{width:100%;margin-top:6px}}
@media(max-width:850px){.activity-layout{grid-template-columns:minmax(0,1fr)}.activity-users{position:static;max-height:270px}.activity-diff pre{max-width:210px}}
.corporate-scroll thead th{position:sticky;top:0;background:#f6f3ec;z-index:1}
#bOrderForm .input{max-width:100%}
#bLines td:first-child{min-width:200px}

/* Compact internal operations overview and direct approval access */
.internal-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:14px 0}
.internal-pending-card{grid-column:1/-1;display:flex;align-items:center;gap:14px;width:100%;min-height:76px;padding:15px 18px;text-align:start;border:1px solid #c5d6cc;border-radius:16px;background:#eef5ef;color:var(--ink);font:inherit;cursor:pointer}
.internal-pending-card:hover,.internal-pending-card:focus-visible{border-color:var(--sage-dark);outline:2px solid transparent;background:#e5f0e7}
.internal-pending-copy{display:grid;gap:4px;flex:1;min-width:0}.internal-pending-copy strong{font-size:1.05rem}.internal-pending-copy small{color:var(--muted);font-size:.8rem}
.internal-pending-number{display:grid;place-items:center;min-width:42px;height:42px;padding:0 8px;border-radius:12px;background:var(--sage-dark);color:white;font-weight:800;font-size:1.2rem}
.internal-stat{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;min-height:76px;padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--paper)}
.internal-stat span{font-size:.87rem;line-height:1.25;overflow-wrap:anywhere}.internal-stat strong{font-size:1.35rem;line-height:1;flex:none}
.internal-approval-inbox{scroll-margin-top:105px}.internal-approval-inbox.internal-highlight{outline:2px solid var(--sage-dark)}
@media(max-width:720px){.internal-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.internal-stat{min-height:78px;padding:11px}.internal-stat span{font-size:.8rem}.internal-pending-card{min-height:72px;padding:12px 14px}
  #appView .topbar{padding:9px;margin-bottom:10px}#appView .topbar .actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:7px}
  #appView .topbar .actions .btn{min-width:0;min-height:42px;padding:6px 7px;font-size:.82rem;line-height:1.1;white-space:normal;text-align:center}
}

/* Keep mobile navigation labels inside each scrollable tab. */
@media(max-width:820px){
  .shell,.rtl .shell{padding-bottom:96px}
  #appView>.nav,.rtl #appView>.nav{height:76px;gap:2px;scrollbar-width:none}
  #appView>.nav::-webkit-scrollbar{display:none}
  #appView>.nav .side-link{box-sizing:border-box;flex:0 0 84px;min-width:84px;min-height:64px;padding:5px 3px;gap:3px}
  #appView>.nav .side-link b{display:block;width:100%;min-width:0;font-size:.66rem;line-height:1.18;white-space:normal;overflow-wrap:anywhere;text-align:center}
}

/* Purchasing hub: show the request, approval, receipt and reporting path together. */
.purchase-hub{margin:14px 0;padding:18px}
.purchase-hub-heading p{margin:5px 0 14px}
.purchase-workflow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.purchase-step{display:flex;align-items:flex-start;gap:10px;min-width:0;min-height:112px;padding:14px;border:1px solid var(--line);border-radius:13px;background:#fffefa;color:var(--ink);font:inherit;text-align:start;cursor:pointer}
.purchase-step:hover,.purchase-step:focus-visible{border-color:var(--sage-dark);background:#f2f7f2}
.purchase-step:disabled{opacity:.55;cursor:not-allowed}
.purchase-step-number{display:grid;place-items:center;flex:none;width:29px;height:29px;border-radius:9px;background:var(--sage-dark);color:white;font-weight:800}
.purchase-step-copy{display:grid;gap:6px;min-width:0}.purchase-step-copy strong{font-size:.94rem;line-height:1.3}.purchase-step-copy small{color:var(--muted);font-size:.78rem;line-height:1.45}
.purchase-step-count{margin-inline-start:auto;font-size:1.12rem}
.purchase-related{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px}
.purchase-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0;scroll-margin-top:95px}
.purchase-tabs button,.purchase-stage-filters button{border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);padding:11px 14px;min-height:44px;font:inherit;font-weight:700;cursor:pointer}
.purchase-tabs button.active,.purchase-stage-filters button.active{background:var(--sage-dark);border-color:var(--sage-dark);color:white}
.purchase-panel[hidden],.purchase-panel .row-card[hidden],.purchase-panel .empty[hidden]{display:none!important}
.purchase-panel{min-width:0}.purchase-panel>.section-head{margin:14px 0 10px}
.purchase-stage-filters{display:flex;gap:7px;flex-wrap:wrap;margin:6px 0 14px}
.purchase-stage-filters button{font-size:.84rem;padding:8px 11px}
@media(max-width:820px){.purchase-workflow{grid-template-columns:repeat(2,minmax(0,1fr))}.purchase-step{min-height:116px;padding:11px;gap:7px}.purchase-step-copy small{font-size:.72rem}.purchase-related .btn{flex:1 1 145px;white-space:normal}.purchase-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.purchase-tabs button{font-size:.87rem;padding:9px}}
@media(max-width:400px){.purchase-step{min-height:132px}}

/* Compact purchase requests; full details open in a side sheet. */
.purchase-request-list{gap:8px}
.purchase-request-row{display:flex;align-items:center;gap:8px;padding:0;min-width:0;overflow:hidden}
.purchase-row-toggle{appearance:none;border:0;background:transparent;color:inherit;cursor:pointer;text-align:start;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:center;flex:1;min-width:0;padding:12px 14px;font:inherit}
.purchase-row-toggle:focus-visible{outline:2px solid var(--sage-dark);outline-offset:-3px}
.purchase-summary-main{display:flex;align-items:center;gap:7px;min-width:0}
.purchase-summary-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.98rem}
.purchase-item-count{flex:none;font-size:.78rem;color:var(--muted);white-space:nowrap}
.purchase-summary-meta{grid-column:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.8rem}
.purchase-summary-end{grid-column:2;grid-row:1 / span 2;display:flex;align-items:center;gap:8px}
.purchase-summary-chevron{font-size:1.5rem;line-height:1;color:var(--sage-dark)}
.purchase-request-row>.edit-purchase{margin-inline-end:10px}
.purchase-detail-drawer.modal-backdrop{display:flex;justify-content:flex-end;align-items:stretch;padding:0}
.purchase-detail-drawer .modal{max-width:620px;width:min(620px,100vw);height:100%;max-height:100dvh;border-radius:18px 0 0 18px;padding:22px;animation:purchase-sheet-in .2s ease-out}
.purchase-detail-drawer .section-head{position:sticky;top:-22px;z-index:1;background:var(--paper);padding:12px 0;gap:12px}
.purchase-detail-drawer .section-head b{overflow-wrap:anywhere}
@keyframes purchase-sheet-in{from{transform:translateX(20px);opacity:.7}to{transform:translateX(0);opacity:1}}
@media(max-width:560px){
 .purchase-request-row{display:block}
 .purchase-row-toggle{width:100%;padding:11px 12px}
 .purchase-request-row>.edit-purchase{margin:0 12px 10px}
 .purchase-summary-end{gap:4px}
 .purchase-detail-drawer.modal-backdrop{align-items:flex-end}
 .purchase-detail-drawer .modal{width:100%;height:auto;max-height:90dvh;border-radius:18px 18px 0 0;padding:16px;animation:purchase-sheet-up .2s ease-out}
 .purchase-detail-drawer .section-head{top:-16px}
 @keyframes purchase-sheet-up{from{transform:translateY(24px);opacity:.7}to{transform:translateY(0);opacity:1}}
}

.customer-filter{display:flex;gap:10px;align-items:center;margin:14px 0}.customer-filter .input{flex:1;min-width:0}.customer-pager{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:14px}.customer-pager button:disabled{opacity:.45}@media(max-width:600px){.customer-filter{flex-wrap:wrap}.customer-filter .input{flex-basis:100%}.customer-pager{justify-content:space-between}}

.barcode-preview{display:inline-flex;max-width:100%;background:#fff;border:1px solid #d8ded5;border-radius:6px;padding:3px;margin:8px 0}.barcode-preview svg{display:block;width:170px;max-width:100%;height:auto}.barcode-preview img{display:block;width:200px;height:200px;max-width:100%;object-fit:contain}.product-card .barcode-preview{margin:6px 0}

/* POS sales: four source cards on desktop, detailed receipts and separate training history. */
.sales-source-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.pos-sales-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.pos-sales-overview>div{min-width:0;background:#fafbf7}
.pos-sales-overview h2{font-size:1.3rem;overflow-wrap:anywhere}
.pos-sales-table{max-height:480px}
.pos-sales-table table{min-width:990px}
.pos-sales-table td{vertical-align:top}
.pos-receipt-detail{min-width:175px}
.pos-receipt-detail summary{cursor:pointer;font-weight:700;color:#33584d;white-space:nowrap}
.pos-receipt-body{background:#f4f6f0;border:1px solid #d7e0d3;border-radius:10px;padding:12px;margin-top:9px;min-width:285px;max-width:560px;white-space:normal;line-height:1.6}
.pos-receipt-body p{margin:3px 0 9px}
.pos-receipt-lines{display:grid;gap:8px;border-top:1px solid #d7e0d3;padding-top:8px}
.pos-receipt-line{display:grid;grid-template-columns:minmax(100px,1fr) auto auto;gap:6px 10px;align-items:start}
.pos-receipt-line small{grid-column:1/-1;color:var(--muted)}
.pos-training-history{margin:18px 0;border:1px solid #d2d8cc;border-radius:12px;padding:12px;background:#fafbf7}
.pos-training-history>summary{cursor:pointer;font-weight:700;color:#47634c}
#salesSourceDetails h3.section-title{margin-top:22px}
@media(max-width:1100px){.sales-source-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pos-sales-overview{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.sales-source-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sales-source-card{padding:10px;gap:5px}.sales-source-card.active{padding:9px}.sales-source-card strong{font-size:1.05rem}.pos-sales-overview{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Operations product catalogue: searchable bilingual category navigation and compact cards. */
.products-browser{margin-top:14px}
.products-browser-toolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:16px;padding:14px;background:var(--paper);border:1px solid var(--line);border-radius:14px}
.products-browser-toolbar label{display:grid;gap:6px;font-size:.88rem;font-weight:700}
.products-search{flex:1 1 290px;min-width:190px}
.products-search input{width:100%}
.products-status-filter{flex:0 1 190px}
.products-status-filter select{width:100%}
.products-layout-control{display:flex;gap:5px;flex-wrap:nowrap}
.products-layout-control .btn{white-space:nowrap}
.products-browser-body{display:grid;grid-template-columns:210px minmax(0,1fr);gap:18px;align-items:start}
.products-category-nav{position:sticky;top:15px;display:flex;flex-direction:column;gap:6px;padding:12px;max-height:calc(100vh - 90px);overflow-y:auto;background:var(--paper);border:1px solid var(--line);border-radius:14px}
.products-nav-title{font-weight:800;font-size:.93rem;padding:5px 9px 9px;color:var(--sage-dark)}
.products-category-choice{width:100%;min-height:42px;background:transparent;color:var(--ink);border:1px solid transparent;border-radius:10px;padding:9px 10px;display:flex;gap:10px;justify-content:space-between;align-items:center;text-align:start;font:inherit;cursor:pointer}
.products-category-choice span{min-width:0;overflow-wrap:anywhere}
.products-category-choice b{flex:none;border-radius:8px;padding:2px 7px;background:#f0f0eb;font-size:.78rem;color:#53624e}
.products-category-choice:hover,.products-category-choice:focus-visible{background:#eff2eb}
.products-category-choice.active{border-color:#9eb3a1;background:#e9f0e7;color:#33584d;font-weight:800}
.products-category-choice.active b{background:#d6e4d3}
.products-browser-results{min-width:0}
.products-result-count{color:var(--muted);font-size:.9rem;font-weight:650;margin:3px 0 12px}
.products-category-section{background:var(--paper);border:1px solid var(--line);border-radius:14px;margin-bottom:15px;overflow:hidden}
.products-category-heading{display:flex;align-items:center;gap:12px;width:100%;border:0;background:#f1f3ed;padding:13px 16px;text-align:start;font:inherit;cursor:pointer;color:var(--ink)}
.products-category-heading:hover{background:#e8eee4}
.products-category-heading strong{font-size:1.02rem}
.products-category-count{font-size:.82rem;color:var(--muted);margin-inline-start:auto}
.products-chevron{color:var(--sage-dark);font-weight:800}
.products-compact-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(195px,1fr));gap:10px;padding:12px}
.product-compact-card{min-width:0;background:#fff;border:1px solid #e2e3dc;border-radius:12px;overflow:hidden;display:flex;flex-direction:column;transition:border-color .15s,box-shadow .15s}
.product-compact-card:hover{border-color:#9bb19a;box-shadow:0 3px 12px #24422d0d}
.product-compact-primary{display:flex;flex-direction:column;align-items:stretch;gap:9px;width:100%;background:transparent;border:0;padding:10px 10px 4px;text-align:start;font:inherit;color:inherit;cursor:pointer;flex:1;min-width:0}
.product-compact-primary:focus-visible{outline:2px solid var(--sage-dark);outline-offset:-2px}
.product-compact-thumb{display:block;width:100%;height:118px;overflow:hidden;background:var(--soft);border-radius:9px}
.product-compact-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.product-compact-empty{width:100%;height:100%;display:grid;place-items:center;color:#6b7d68;font:600 1.4rem Georgia,serif}
.product-compact-info{min-width:0;display:flex;flex-direction:column;gap:3px}
.product-compact-info strong{font-size:.9rem;overflow-wrap:anywhere;line-height:1.4}
.product-compact-info small{font-size:.75rem;white-space:normal;overflow-wrap:anywhere}
.product-compact-footer{padding:9px 10px 10px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px;border-top:1px solid #f0f0ec;margin-top:7px}
.product-compact-actions{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.product-compact-actions .btn{padding:5px 8px;font-size:.75rem;min-height:30px}
.products-compact-grid.list-layout{grid-template-columns:1fr;gap:7px}
.list-layout .product-compact-card{display:flex;flex-direction:row;align-items:center;gap:10px}
.list-layout .product-compact-primary{flex:1;min-width:0;display:flex;flex-direction:row;align-items:center;padding:8px 10px;gap:12px}
.list-layout .product-compact-thumb{flex:none;width:64px;height:64px}
.list-layout .product-compact-info{flex:1}
.list-layout .product-compact-footer{flex:none;border:0;margin:0;padding:7px 10px}
.products-empty{padding:25px;text-align:center}
@media(max-width:1000px){
 .products-browser-body{grid-template-columns:minmax(0,1fr);gap:12px}
 .products-category-nav{position:static;display:flex;flex-direction:row;flex-wrap:nowrap;gap:6px;overflow-x:auto;overflow-y:hidden;max-height:none;padding:9px}
 .products-nav-title{display:none}
 .products-category-choice{flex:none;width:auto;min-height:38px;white-space:nowrap;border:1px solid #e3e7df}
 .products-category-choice span{overflow-wrap:normal}
}
@media(max-width:590px){
 .products-browser-toolbar{gap:10px;padding:11px}
 .products-search{flex-basis:100%}
 .products-status-filter{flex:1 1 135px}
 .products-compact-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px}
 .product-compact-thumb{height:95px}
 .product-compact-primary{padding:8px 8px 4px}
 .product-compact-info strong{font-size:.82rem}
 .product-compact-footer{padding:7px 8px}
 .product-compact-actions .btn{padding:4px 6px;font-size:.69rem}
 .list-layout .product-compact-footer{flex-direction:column;align-items:end}
}
@media(max-width:370px){.products-compact-grid{grid-template-columns:1fr}}

.area-switch{position:sticky;top:calc(env(safe-area-inset-top,0px) + 6px);z-index:32;display:flex;gap:4px;width:max-content;max-width:100%;margin:0 0 12px auto;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--paper);box-shadow:0 4px 18px rgba(41,57,47,.10)}
.rtl .area-switch{margin-right:0;margin-left:auto}
.area-switch button{min-height:36px;max-width:48vw;padding:6px 10px;border:0;border-radius:8px;background:transparent;color:var(--ink);font-weight:700;font-size:.83rem;white-space:nowrap}
.area-switch button[aria-current="page"]{background:var(--soft);color:var(--sage-dark)}
.area-switch button:hover{background:var(--soft)}
@media(max-width:560px){.area-switch{margin-bottom:8px}.area-switch button{font-size:.78rem;padding:6px 8px}}
@media print{.area-switch{display:none!important}}

/* Fast, clear feedback while a section loads. */
.view-loading{display:flex;align-items:center;gap:10px;width:max-content;max-width:100%;padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);font-weight:700}
.view-spinner{width:16px;height:16px;flex:none;border:2px solid var(--line);border-top-color:var(--sage);border-radius:50%;animation:view-spin .8s linear infinite}
.sales-loading{margin:0 0 12px;padding:8px 12px;border-radius:8px;background:var(--soft);color:var(--ink);font-weight:700}
@keyframes view-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.view-spinner{animation:none}}

/* Purchase priority is visible in both the request list and approval queue. */
.purchase-priority-critical{background:#fff0ed!important;border-color:#d56b5c!important;border-inline-start:5px solid #bd3d32!important}
.purchase-priority-urgent{background:#fff4e4!important;border-color:#dfa45b!important;border-inline-start:5px solid #d68024!important}
.purchase-request-row>.remind-purchase{flex:none;margin-inline-end:10px;white-space:nowrap}
@media(max-width:700px){.purchase-request-row>.remind-purchase{margin:0 12px 10px}}
