/*
 * Padilink interface foundation.
 * Loaded after the legacy styles so every role shares one clear visual system.
 */
:root {
  --ink:#10243e;
  --muted:#617087;
  --blue:#155eef;
  --blue-hover:#0f4fd1;
  --orange:#e8683f;
  --line:#dfe6ef;
  --paper:#fff;
  --canvas:#f4f7fb;
  --soft-blue:#edf4ff;
  --green:#147a55;
  --amber:#946113;
  --radius:12px;
  --shadow-sm:0 1px 2px rgba(16,36,62,.04),0 5px 16px rgba(16,36,62,.035);
  --shadow-md:0 16px 40px rgba(16,36,62,.09);
}

body { color:var(--ink); background:var(--paper); font-size:15px; text-rendering:optimizeLegibility; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
h1,h2,h3 { letter-spacing:-.025em; }
h1 { font-size:clamp(32px,3vw,42px); }
p { line-height:1.72; }
.workspace { background:var(--canvas); }
.app-shell { grid-template-columns:248px minmax(0,1fr); }
.app-content { min-height:100vh; }
.app-main { max-width:1540px; padding:38px clamp(24px,3vw,48px) 64px; }
.app-topbar { min-height:72px; padding-inline:clamp(24px,3vw,48px); }
.app-footer { padding-inline:clamp(24px,3vw,48px); }
.sidebar { padding:26px 18px 20px; }
.sidebar .nav-item { min-height:46px; border-radius:10px; font-size:14px; }
.sidebar .nav-item.active { box-shadow:inset 3px 0 0 var(--blue); }
.sidebar .profile { padding:20px 9px 0; }
.paper,.booking-form,.booking-record,.metrics,.tracking-search,.tracking-item {
  border-color:var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow-sm);
}
.paper { padding:clamp(22px,2.2vw,30px); }
.button { border-radius:9px; font-size:14px; min-height:46px; padding:11px 20px; }
.button.compact { min-height:42px; padding:9px 15px; font-size:13px; }
.button.primary { box-shadow:0 7px 16px rgba(21,94,239,.18); }
.button.primary:hover { box-shadow:0 9px 20px rgba(21,94,239,.24); }
.button.secondary { box-shadow:0 1px 2px rgba(16,36,62,.04); }
input,select,textarea { border-color:#ccd6e3; border-radius:9px; min-height:47px; font-size:14px; }
input:hover,select:hover,textarea:hover { border-color:#a9b7ca; }
input:focus,select:focus,textarea:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(21,94,239,.1); outline:0; }
.status { border-radius:999px; padding:6px 10px; font-size:11px; }
.eyebrow { font-size:10px; letter-spacing:.14em; margin-bottom:12px; }
.page-heading { margin-bottom:32px; align-items:flex-start; }
.page-heading h1 { font-size:clamp(30px,3vw,40px); margin-bottom:10px; }
.page-heading p { font-size:14px; }
.heading-actions { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.success-message,.error-message,.commercial-warning { border-radius:10px; box-shadow:var(--shadow-sm); }
.queue-table { border-radius:12px; box-shadow:var(--shadow-sm); }
.queue-table th { color:#6a778a; font-size:10px; letter-spacing:.08em; }
.queue-table td { padding-block:18px; }
.table-link { width:38px; height:38px; border-radius:9px; }
.empty-state { border-radius:14px; padding:48px 24px; }

@media (min-width:768px) and (max-width:1180px) {
  .app-shell { grid-template-columns:210px minmax(0,1fr); }
  .app-main { padding:32px 28px 52px; }
  .sidebar { padding-inline:12px; }
}

@media (max-width:767px) {
  body { font-size:15px; }
  .app-experience .app-main { padding:24px 18px 34px; }
  .mobile-header { min-height:72px; padding-inline:max(16px,env(safe-area-inset-left,0px)); }
  .mobile-page-title { font-size:16px; }
  .mobile-nav { min-height:calc(76px + env(safe-area-inset-bottom,0px)); }
  .mobile-nav>a { font-size:11px; min-height:60px; }
  .page-heading { margin-bottom:24px; }
  .page-heading h1 { font-size:31px; }
  .heading-actions { justify-content:flex-start; margin-top:18px; }
  .paper { padding:22px 18px; }
  .button { min-height:48px; }
  .queue-table { overflow-x:auto; }
}

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; animation-iteration-count:1!important; }
}
