:root{--green:#12a548;--green-dark:#087c34;--green-soft:#edf9f1;--ink:#142033;--muted:#718096;--line:#e8edf2;--surface:#fff;--bg:#f7f9fb;--sidebar:270px}*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:'Cairo',sans-serif;font-size:14px}.app-shell{display:flex;min-height:100vh}.app-sidebar{position:fixed;top:0;right:0;width:var(--sidebar);height:100vh;background:#fff;border-left:1px solid var(--line);z-index:1040;overflow-y:auto;transition:.25s}.sidebar-brand{height:108px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--line);padding:14px}.brand-logo{width:155px;height:75px;object-fit:contain}.sidebar-nav{padding:14px 12px 30px}.nav-entry,.module-links>a,.sub-toggle{display:flex;align-items:center;gap:12px;width:100%;border:0;background:transparent;color:#465267;text-decoration:none;border-radius:11px;padding:11px 14px;margin:3px 0;font-weight:600;text-align:right}.nav-entry:hover,.module-links>a:hover,.sub-toggle:hover{background:#f2faf5;color:var(--green-dark)}.nav-entry i,.module-links>a i,.sub-toggle i{font-size:18px}.nav-entry small{margin-right:auto;background:#f0f3f6;color:#8b96a6;border-radius:20px;padding:2px 7px;font-size:9px}.module-toggle{width:100%;border:0;background:linear-gradient(135deg,#effaf3,#e3f7ea);color:var(--green-dark);border-radius:12px;padding:13px 14px;display:flex;justify-content:space-between;align-items:center;font-weight:800}.module-toggle span{display:flex;gap:12px;align-items:center}.module-links{padding:6px 9px 4px;border-right:2px solid #d9f2e2;margin:4px 13px 8px 0}.module-links>a{padding:9px 12px;font-size:13px}.sub-toggle{justify-content:space-between;padding:9px 12px}.sub-toggle span{display:flex;gap:10px}.sub-links{padding-right:28px}.sub-links a{display:block;color:#697587;text-decoration:none;padding:7px 10px;border-radius:8px;font-size:13px}.sub-links a:hover{background:#f3f7f4;color:var(--green-dark)}.disabled-link{opacity:.58;cursor:not-allowed}.nav-divider{height:1px;background:var(--line);margin:14px 4px}.future-title{font-size:11px;color:#9aa5b3;padding:0 14px 6px;font-weight:700}.app-main{width:calc(100% - var(--sidebar));margin-right:var(--sidebar);min-height:100vh;transition:.25s}.topbar{height:74px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:1020}.topbar-tools{display:flex;align-items:center;gap:12px}.icon-button{width:42px;height:42px;border:1px solid var(--line);border-radius:11px;background:#fff;color:#435066;font-size:21px}.icon-button:hover{color:var(--green);border-color:#bde4ca}.notify-dot{position:absolute;top:-4px;left:-3px;width:19px;height:19px;background:var(--green);color:#fff;border-radius:50%;font-size:10px;display:flex;align-items:center;justify-content:center}.language-chip{display:flex;align-items:center;gap:8px;padding:9px 12px;border-left:1px solid var(--line);color:#48566c}.user-box{display:flex;align-items:center;gap:9px;padding:0 8px}.user-box strong,.user-box small{display:block}.user-box strong{font-size:12px}.user-box small{font-size:10px;color:var(--muted)}.user-avatar{width:38px;height:38px;border-radius:50%;background:#edf5ef;color:var(--green);display:flex;align-items:center;justify-content:center;font-size:20px}.logout-button{border:0;background:#fff;color:#687386;display:flex;gap:7px;align-items:center}.logout-button:hover{color:#dc3545}.content-area{padding:28px;max-width:1900px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px}.page-heading h1,.page-title{font-size:27px;font-weight:800;color:#152033;margin:6px 0}.page-heading p{color:var(--muted);margin:0}.module-badge{display:inline-flex;gap:7px;align-items:center;background:var(--green-soft);color:var(--green-dark);padding:6px 10px;border-radius:20px;font-size:11px;font-weight:700}.heading-actions{display:flex;align-items:center;gap:12px}.date-chip{background:#fff;border:1px solid var(--line);border-radius:10px;padding:11px 14px;color:#596579}.btn{border-radius:10px;font-weight:700}.btn-primary{background:var(--green);border-color:var(--green)}.btn-primary:hover{background:var(--green-dark);border-color:var(--green-dark)}.card,.dashboard-card,.kpi-card{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 5px 18px rgba(27,46,71,.045)}.kpi-card{padding:20px;display:flex;align-items:center;gap:16px;height:100%}.kpi-icon,.quick-icon{display:flex;align-items:center;justify-content:center;border-radius:16px}.kpi-icon{width:62px;height:62px;font-size:26px}.green{background:#e6f7eb;color:#12a548}.blue{background:#e9f2ff;color:#2d7cf6}.purple{background:#f0eafe;color:#7656d6}.orange{background:#fff0e7;color:#ff6c2f}.kpi-card span,.kpi-card small{display:block;color:var(--muted)}.kpi-card strong{font-size:27px;display:block;margin:2px 0}.kpi-card small{font-size:11px}.dashboard-card{padding:22px}.card-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.card-heading h3{font-size:17px;font-weight:800;margin:0 0 4px}.card-heading p{font-size:12px;color:var(--muted);margin:0}.quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.quick-action{display:grid;grid-template-columns:48px 1fr;column-gap:12px;align-items:center;border:1px solid var(--line);padding:14px;border-radius:13px;color:var(--ink);text-decoration:none;transition:.2s}.quick-action:hover{border-color:#a8dcb9;box-shadow:0 6px 16px rgba(18,165,72,.08);transform:translateY(-1px)}.quick-icon{width:48px;height:48px;font-size:21px;grid-row:1/3}.quick-action strong,.quick-action small{display:block}.quick-action small{color:var(--muted);font-size:11px}.progress-list>div:first-child{}.progress-list>div:nth-of-type(odd){display:flex;justify-content:space-between;margin:15px 0 7px}.progress-list b{color:var(--green);font-size:11px}.progress-list b.muted{color:#9aa5b3}.progress{height:7px;background:#edf1f4}.progress-bar{background:var(--green)}.progress-bar.pending{background:#cdd5dc}.module-map{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.module-node{text-align:center;border:1px dashed #d9e0e7;border-radius:13px;padding:15px 8px;color:#8590a0}.module-node i{font-size:24px;display:block;margin-bottom:7px}.module-node span,.module-node small{display:block}.module-node span{font-weight:700}.module-node small{font-size:9px}.module-node.active{border-style:solid;border-color:#a9dfba;background:var(--green-soft);color:var(--green-dark)}.alert-list{display:grid;gap:10px}.system-alert{display:flex;gap:10px;align-items:flex-start;padding:12px;border-radius:11px;font-size:12px}.system-alert.info{background:#edf5ff;color:#3269aa}.system-alert.warning{background:#fff7e7;color:#9b6a00}.system-alert.success{background:#edf9f1;color:#15773a}.table{--bs-table-bg:transparent}.table thead th{background:#f5f8f6;color:#526071;font-weight:700;border-bottom:1px solid var(--line);white-space:nowrap;padding:13px}.table td{padding:13px;vertical-align:middle;border-color:#edf0f3}.form-control,.form-select{border-color:#dfe5eb;border-radius:9px;padding:10px 12px}.form-control:focus,.form-select:focus{border-color:#73c58e;box-shadow:0 0 0 .2rem rgba(18,165,72,.12)}.form-label{font-weight:700;color:#435066}.badge-draft{background:#f0ad4e}.badge-posted{background:#198754}.sidebar-collapsed .app-sidebar{transform:translateX(100%)}.sidebar-collapsed .app-main{width:100%;margin-right:0}@media(max-width:991px){.app-sidebar{transform:translateX(100%);box-shadow:-15px 0 35px rgba(16,31,50,.12)}.app-main{width:100%;margin-right:0}.sidebar-collapsed .app-sidebar{transform:translateX(0)}.content-area{padding:18px}.topbar{padding:0 15px}.user-box,.language-chip,.logout-button span{display:none}.page-heading{align-items:flex-start;flex-direction:column}.heading-actions{width:100%;flex-wrap:wrap}.quick-grid{grid-template-columns:1fr}.module-map{grid-template-columns:repeat(2,1fr)}}@media(max-width:575px){.dashboard-kpis .col-12{width:100%}.module-map{grid-template-columns:1fr}.content-area{padding:14px}.page-heading h1,.page-title{font-size:22px}}@media print{.app-sidebar,.topbar,.heading-actions{display:none!important}.app-main{width:100%;margin:0}.content-area{padding:0}.card,.dashboard-card{box-shadow:none}}
.login-page{min-height:100vh;background:#f3f7f4;display:flex;align-items:center;justify-content:center;padding:25px}.login-shell{width:min(1020px,100%);min-height:610px;background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 25px 70px rgba(20,40,60,.13);display:grid;grid-template-columns:1fr 1.05fr}.login-panel{padding:55px 65px;display:flex;flex-direction:column;justify-content:center}.login-logo{width:175px;height:90px;object-fit:contain;margin-bottom:15px}.login-panel h1{font-size:32px;font-weight:800;margin:20px 0 7px}.login-panel>p{color:var(--muted);margin-bottom:27px}.input-icon{position:relative}.input-icon i{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:#8b96a6;z-index:2}.input-icon .form-control{padding-right:42px}.login-visual{background:linear-gradient(150deg,rgba(7,114,46,.95),rgba(21,169,75,.78)),url('/images/origa-logo.jpg') center/cover;display:flex;align-items:flex-end;padding:55px;color:#fff}.login-visual span{font-size:12px;letter-spacing:2px}.login-visual h2{font-weight:800;font-size:32px;line-height:1.5;margin:12px 0}.login-visual p{opacity:.86}@media(max-width:850px){.login-shell{grid-template-columns:1fr}.login-visual{display:none}.login-panel{padding:40px 28px}}

/* Active sidebar item */
.sidebar-nav a.active,
.sidebar-nav .module-links > a.active,
.sidebar-nav .sub-links > a.active {
    background: #e8f7ee !important;
    color: #087a38 !important;
    font-weight: 700 !important;
    border-radius: 12px;
    box-shadow: inset -4px 0 0 #0a8f45;
}

/* Compact typography across the application */
html { font-size: 14px; }
body { font-size: 12.5px; }
.page-heading h1,
.page-title { font-size: 24px; }
.page-heading p,
.text-muted { font-size: 12px; }
.sidebar-nav .nav-entry,
.sidebar-nav .module-toggle,
.sidebar-nav .sub-toggle { font-size: 12.5px; }
.module-links > a,
.sub-links a { font-size: 12px; }
.card-header h5,
.card-header .h5 { font-size: 15px; }
.form-label { font-size: 12px; }
.form-control,
.form-select,
.btn,
.table { font-size: 12px; }
.table thead th { padding: 10px 11px; }
.table td { padding: 10px 11px; }
.alert { font-size: 12px; }
@media (max-width: 575px) {
    body { font-size: 12px; }
    .page-heading h1,
    .page-title { font-size: 20px; }
}
