/* =========================================================
   ALAREENSISTEM - MASTER APPLICATION CSS - FINAL THEME CORE
   Layout locked:
   HEADER
   SIDEBAR | CONTENT
   ========================================================= */

*{box-sizing:border-box}
:root{
  /* Fallback only. Runtime value comes from functions.php / Settings. */
  --primary:#6D4AFF;
  --invoice-primary:var(--primary);
  --invoice-text:#172033;
  --font-scale:1;
  --bg:#f5f7fb;
  --surface:#ffffff;
  --surface-soft:#f8fafc;
  --text:#172033;
  --muted:#667085;
  --border:#e4e7ec;
  --sidebar:#15171b;
  --sidebar-text:#cbd5e1;
  --sidebar-muted:#8f9aaa;
  --danger:#b42318;
  --success:#027a48;
  --warning:#b54708;
  --radius:14px;
  --shadow:0 2px 10px rgba(16,24,40,.045);
}

html{min-height:100%;scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  font-size:calc(14px * var(--font-scale));
  line-height:1.5;
  background:var(--bg);
  color:var(--text);
  overflow-x:hidden;
}
button,input,select,textarea{font:inherit}
a{color:inherit}

/* =========================================================
   MASTER HEADER - V7
   Desktop: header branding zone = sidebar width (270px)
   Mobile: hamburger + 50% logo + 50% company name
   ========================================================= */
.app-header{height:64px;width:100%;position:sticky;top:0;z-index:100;background:#fff;border-bottom:1px solid var(--border)}
.app-header-inner{height:100%;width:100%;display:flex;align-items:center;padding:0;gap:0}
.app-header-brand-zone{width:270px;height:64px;flex:0 0 270px;display:flex;align-items:center;justify-content:center;border-right:1px solid var(--border);position:relative}
.app-header-desktop-logo{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:0 18px}
.app-header-logo{display:block;width:min(var(--header-logo-w,150px),calc(100% - 36px));height:var(--header-logo-h,36px);object-fit:contain;object-position:center}
.app-header-menu{display:none;width:40px;height:40px;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:10px;background:#fff;color:#344054;cursor:pointer;padding:0;flex:none}
.hamburger-lines{display:flex;flex-direction:column;gap:5px;width:19px}.hamburger-lines i{display:block;height:2px;width:19px;background:#344054;border-radius:2px}
.app-header-mobile-logo{display:none}
.app-header-logo-mobile{display:block;width:min(var(--header-logo-mobile-w,120px),100%);height:var(--header-logo-h,36px);object-fit:contain;object-position:center}
.app-header-company{display:flex;align-items:center;min-width:0;max-width:430px;padding:0 18px;color:var(--primary);font-weight:800;font-size:calc(15px * var(--font-scale));line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-header-spacer{flex:1 1 auto;min-width:12px}
.app-header-user{font-size:calc(12px * var(--font-scale));color:#344054;background:#fff;border:1px solid var(--border);padding:5px 10px 5px 7px;margin-right:18px;border-radius:999px;white-space:nowrap;display:flex;align-items:center;gap:8px;flex:none}
.app-header-user-avatar{width:30px;height:30px;border-radius:50%;background:#eef0f5;color:#475467;display:grid;place-items:center;font-weight:800}.app-header-chevron{font-size:18px;color:#667085;margin-left:3px}
.brand-mark{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:var(--primary);color:#fff;font-weight:900;flex:none}

/* =========================================================
   3-PART APPLICATION SHELL
   ========================================================= */
.app-shell{display:grid;grid-template-columns:270px minmax(0,1fr);align-items:stretch;min-height:calc(100vh - 64px)}
.app-shell>.sidebar{position:sticky;top:64px;left:auto;bottom:auto;width:auto;height:calc(100vh - 64px);min-width:0;z-index:50;overflow-x:hidden;overflow-y:auto;background:var(--sidebar);color:#fff;padding:18px 12px 16px;box-shadow:none;scrollbar-width:thin;scrollbar-color:#343943 transparent}
.app-shell>.sidebar::-webkit-scrollbar{width:6px}.app-shell>.sidebar::-webkit-scrollbar-thumb{background:#343943;border-radius:999px}
.app-shell>.main{min-width:0;min-height:calc(100vh - 64px);margin-left:0;background:var(--bg)}
.app-shell>.main>.content{width:100%;max-width:1480px;min-height:calc(100vh - 64px);margin:0 auto;padding:28px}
.main{margin-left:0}.topbar{display:none}.menu-toggle{display:none}.mobile-overlay{display:none}

/* Sidebar is navigation only. */
.side-nav{display:block;padding-top:7px}.nav-title{margin:17px 9px 6px;color:var(--sidebar-muted);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.nav-link{display:flex;align-items:center;gap:10px;width:100%;min-height:40px;margin:2px 0;padding:9px 10px;border-radius:9px;color:var(--sidebar-text);text-decoration:none;transition:background .15s ease,color .15s ease}.nav-link:hover{background:#242830;color:#fff}.nav-link.active{background:var(--primary);color:#fff}.nav-icon{width:20px;height:20px;display:grid;place-items:center;flex:none}.nav-icon svg{width:18px;height:18px;display:block}.nav-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:calc(13px * var(--font-scale))}.logout{margin-top:18px;border-top:1px solid rgba(255,255,255,.08);border-radius:0 0 9px 9px;padding-top:14px}

/* Page title belongs inside content. */
.page-heading{margin:0 0 20px}.page-heading h1{margin:0;font-size:calc(25px * var(--font-scale));line-height:1.2;font-weight:800;color:var(--text)}.page-heading-sub{margin-top:5px;color:var(--muted);font-size:calc(13px * var(--font-scale))}

/* =========================================================
   COMMON UI - preserve existing pages
   ========================================================= */
.content{padding:28px}
.page-title{margin:0 0 5px;font-size:calc(24px * var(--font-scale));font-weight:800;line-height:1.2}
.page-subtitle{margin:0;color:var(--muted);font-size:calc(13px * var(--font-scale))}

.cards{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:16px;
}
.card,.panel,.login-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:18px;
  box-shadow:var(--shadow);
}
.card small{display:block;color:var(--muted);margin-bottom:8px}
.card strong{font-size:calc(22px * var(--font-scale))}
.panel{margin-top:20px}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:40px;
  border:1px solid transparent;
  border-radius:9px;
  padding:9px 14px;
  background:#e5e7eb;
  color:#111827;
  text-decoration:none;
  cursor:pointer;
  transition:.15s ease;
}
.btn:hover{filter:brightness(.97);transform:translateY(-1px)}
.btn.primary{background:var(--primary);color:#fff}

label{display:block;font-weight:600;margin:12px 0}
input,select,textarea{
  width:100%;
  margin-top:6px;
  padding:10px 11px;
  border:1px solid #d1d5db;
  border-radius:8px;
  background:#fff;
  color:var(--text);
}
input:focus,select:focus,textarea:focus{
  outline:none;
  border-color:var(--primary);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 12%,transparent);
}
textarea{min-height:100px;resize:vertical}
.alert{padding:10px;border-radius:8px;margin:12px 0}
.danger{background:#fee2e2;color:#991b1b}

/* login/auth pages remain independent from the application shell */
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}
.login-card{width:min(420px,92vw)}
.login-card h1{margin-bottom:5px}

/* Tables commonly used by the modules */
.table-wrap{width:100%;overflow:auto;border:1px solid var(--border);border-radius:12px;background:#fff}
table{width:100%;border-collapse:collapse}
th,td{padding:11px 12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}
th{font-size:12px;color:#475467;background:#f8fafc;font-weight:700;white-space:nowrap}
td{font-size:13px}
tbody tr:last-child td{border-bottom:0}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media(max-width:1050px){
  .app-shell{grid-template-columns:250px minmax(0,1fr)}
  .app-shell>.main>.content{padding:22px}
  .app-header-brand-zone{width:250px;flex-basis:250px}
}
@media(max-width:900px){
  .app-header{height:60px}.app-header-inner{padding:0 10px}.app-header-brand-zone{width:40px;flex:0 0 40px;height:60px;border-right:0;justify-content:flex-start}.app-header-desktop-logo{display:none}.app-header-menu{display:flex;width:38px;height:38px}
  .app-header-mobile-logo{display:flex;align-items:center;justify-content:center;flex:1 1 50%;width:0;min-width:0;height:60px;padding:0 6px;border-right:1px solid var(--border)}
  .app-header-company{flex:1 1 50%;width:0;max-width:none;justify-content:center;padding:0 8px;font-size:calc(11.5px * var(--font-scale));text-align:center}
  .app-header-spacer,.app-header-user{display:none}
  .app-header-logo-mobile{width:min(var(--header-logo-mobile-w,120px),100%);height:min(var(--header-logo-h,36px),36px)}
  .app-shell{display:block;min-height:calc(100vh - 60px)}
  .app-shell>.sidebar{position:fixed;top:60px;left:0;bottom:0;width:min(286px,86vw);height:auto;transform:translateX(-105%);transition:transform .22s ease;z-index:120;box-shadow:12px 0 28px rgba(16,24,40,.18)}
  .app-shell>.sidebar.open{transform:translateX(0)}
  .app-shell>.main{min-height:calc(100vh - 60px)}.app-shell>.main>.content{min-height:calc(100vh - 60px);padding:18px}
  .app-shell>.mobile-overlay{display:none;position:fixed;inset:60px 0 0 0;background:rgba(15,23,42,.34);z-index:110}.app-shell>.mobile-overlay.show{display:block}
}
@media(max-width:600px){
  .app-header-mobile-logo{padding:0 4px}.app-header-company{font-size:calc(11px * var(--font-scale));padding:0 5px}.app-shell>.main>.content{padding:14px}.content{padding:14px}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.card,.panel{padding:14px}th,td{padding:9px 10px}
}
@media(max-width:420px){.cards{grid-template-columns:1fr}.app-header-logo-mobile{width:min(var(--header-logo-mobile-w,120px),100%);height:32px}.app-header-company{font-size:calc(10.5px * var(--font-scale))}}
