
:root{
  --bg:#f5f7f9;
  --surface:#ffffff;
  --surface-soft:#f8fafc;
  --line:#e1e6eb;
  --line-strong:#d4dae1;
  --text:#34373b;
  --muted:#777f88;
  --navy:#214a82;
  --navy-deep:#173966;
  --cyan:#2fa0b9;
  --cyan-soft:#e8f7fa;
  --charcoal:#4b4d50;
  --success:#318b5b;
  --warning:#c47a1a;
  --danger:#b94b4b;
  --shadow:0 8px 28px rgba(24,48,75,.07);
  --shadow-soft:0 3px 16px rgba(24,48,75,.05);
  --radius:18px;
}
*{box-sizing:border-box}
html{background:var(--bg)}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font:15px/1.5 "Segoe UI",Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
button,input,select{font:inherit}
button{transition:.16s ease}
.hidden{display:none!important}
a{color:var(--navy)}
h1,h2,h3,.eyebrow{
  font-family:"Hightower Text",Georgia,"Times New Roman",serif;
  color:var(--charcoal);
  letter-spacing:.08em;
}
h1{font-size:32px;margin:0;font-weight:500}
h2{font-size:21px;margin:0 0 14px;font-weight:500}
p{color:var(--muted);margin:5px 0}

/* LOGIN */
.authgate{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px;
  background:
    radial-gradient(circle at 18% 16%,rgba(47,160,185,.08),transparent 28%),
    radial-gradient(circle at 85% 80%,rgba(33,74,130,.06),transparent 30%),
    #fff;
}
.authcard{
  width:min(490px,100%);
  background:rgba(255,255,255,.98);
  border:1px solid var(--line);
  border-radius:24px;
  padding:34px;
  box-shadow:0 24px 80px rgba(20,45,72,.12);
}
.brand-lockup img{display:block;max-width:100%;object-fit:contain}
.authbrand.brand-lockup img{width:270px;max-height:145px;margin:0 auto 8px}
.os-chip{
  display:inline-block;
  border:1px solid rgba(33,74,130,.18);
  background:#f3f7fb;
  color:var(--navy);
  padding:4px 10px;
  border-radius:999px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.12em;
}
.authbrand{text-align:center;margin-bottom:28px}
.authcard h2{text-align:center;font-size:27px;margin-top:10px}
.authcard p{text-align:center;margin-bottom:20px}
.authcard label{display:block;margin:14px 0 6px;color:#626971;font-size:12px;font-weight:600}
.authcard input{
  width:100%;
  border:1px solid var(--line-strong);
  background:#fff;
  color:var(--text);
  border-radius:12px;
  padding:12px 13px;
  outline:none;
}
.authcard input:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(47,160,185,.12)}
.wide{width:100%;margin-top:18px}
.error{color:var(--danger);margin-top:12px;min-height:18px}

/* APP SHELL */
.app{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}
.sidebar{
  background:var(--surface);
  border-right:1px solid var(--line);
  padding:22px 15px;
  position:sticky;
  top:0;
  height:100vh;
  box-shadow:3px 0 18px rgba(20,45,72,.03);
  z-index:3;
}
.sidebar-brand{
  text-align:center;
  margin:2px 6px 24px;
  padding-bottom:18px;
  border-bottom:1px solid var(--line);
}
.sidebar-brand img{width:195px;max-height:105px;margin:0 auto 7px}
.sidebar-brand .os-chip{font-size:10px}
.sidebar nav button{
  display:flex;
  align-items:center;
  width:100%;
  border:0;
  background:transparent;
  color:#545b63;
  padding:11px 14px;
  text-align:left;
  border-radius:12px;
  margin:4px 0;
  font-weight:500;
}
.sidebar nav button:hover{background:#f4f8fb;color:var(--navy)}
.sidebar nav button.active{
  background:linear-gradient(90deg,#eaf2fb,#f1f7fb);
  color:var(--navy-deep);
  font-weight:700;
}
.foot{
  position:absolute;
  bottom:18px;
  left:16px;
  right:16px;
  color:#6f7780;
  font-size:12px;
  border-top:1px solid var(--line);
  padding-top:14px;
}
.logout,.install-btn{width:100%;margin-top:9px}
.install-btn{background:var(--cyan-soft);border-color:#c8e9ef;color:#187c90}

main{padding:26px 30px 42px;min-width:0}
.top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}
.card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:19px;
  margin-bottom:16px;
  box-shadow:var(--shadow-soft);
}
.hero-card{
  min-height:190px;
  background:
    linear-gradient(112deg,#fff 0%,#fff 56%,#f6fbfd 100%);
  border:1px solid var(--line);
  border-radius:22px;
  padding:28px 32px;
  margin-bottom:18px;
  position:relative;
  overflow:hidden;
  box-shadow:var(--shadow);
  display:flex;
  align-items:center;
}
.hero-card:after{
  content:"";
  position:absolute;
  right:-30px;bottom:-65px;
  width:420px;height:200px;
  border:1px solid rgba(47,160,185,.12);
  border-radius:50%;
  transform:rotate(-8deg);
}
.hero-copy{position:relative;z-index:2;max-width:640px}
.eyebrow{
  font-size:15px;
  color:var(--navy);
  letter-spacing:.25em;
  margin-bottom:7px;
}
.hero-card h1{font-size:38px;color:#46484b}
.hero-card #todayDate{font-size:14px;margin-top:10px}
.hero-subline{
  font-family:"Microsoft Himalaya","Segoe Script",Georgia,serif;
  color:#62676d;
  font-size:24px;
  letter-spacing:.06em;
  margin-top:4px;
}
.hero-mark{
  position:absolute;
  right:40px;
  width:265px;
  max-height:165px;
  object-fit:contain;
  opacity:.95;
  z-index:1;
}
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.kpi{min-height:112px}
.kpi span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.kpi strong{font-size:31px;font-weight:500;display:block;margin-top:8px;color:var(--navy-deep)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.week{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:10px;overflow:auto;padding-bottom:4px}
.day{
  min-height:310px;
  border:1px solid var(--line);
  background:var(--surface-soft);
  border-radius:14px;
  padding:11px;
}
.day.today{outline:2px solid rgba(47,160,185,.28);background:#fbfeff}
.dayhead{
  font-family:"Hightower Text",Georgia,serif;
  letter-spacing:.05em;
  color:#4c5055;
  font-weight:600;
  margin-bottom:9px
}
.date{display:block;color:var(--muted);font:11px "Segoe UI",Arial,sans-serif;margin-top:2px}
.shift{
  background:#fff;
  border:1px solid var(--line);
  border-left:4px solid var(--cyan);
  border-radius:10px;
  padding:9px 10px;
  margin-bottom:8px;
  cursor:pointer;
  box-shadow:0 2px 9px rgba(25,55,83,.04);
}
.shift:hover{transform:translateY(-1px);box-shadow:0 5px 16px rgba(25,55,83,.07)}
.shift strong{color:#3f464c}
.shift .time{font-size:12px;color:var(--muted);margin-top:3px}
.shift .flex{font-size:11px;color:var(--cyan);margin-top:4px}
button,.button{
  border:1px solid var(--line-strong);
  background:#fff;
  color:#545c64;
  padding:9px 13px;
  border-radius:10px;
  cursor:pointer;
  text-decoration:none;
  display:inline-block;
}
button:hover,.button:hover{border-color:#bfcbd6;background:#f8fafc}
.primary{
  background:linear-gradient(180deg,#285b99,#214a82);
  border-color:var(--navy);
  color:#fff;
  font-weight:700;
}
.primary:hover{background:var(--navy-deep);color:#fff}
.danger{color:var(--danger)}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:12px 9px;border-bottom:1px solid var(--line);vertical-align:top}
th{color:#737b84;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em}
tbody tr:hover{background:#fbfcfd}
.tableScroll,.auditwrap{overflow:auto}
.modalbg{
  position:fixed;inset:0;background:rgba(20,31,42,.45);
  display:flex;align-items:center;justify-content:center;padding:20px;z-index:10;
  backdrop-filter:blur(3px)
}
.modalbox{
  width:min(590px,100%);
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  padding:22px;
  box-shadow:0 25px 80px rgba(20,31,42,.18)
}
.form{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.field{display:flex;flex-direction:column;gap:6px}
.full{grid-column:1/-1}
label{font-size:12px;color:#6d747c;font-weight:600}
input,select{
  background:#fff;border:1px solid var(--line-strong);color:var(--text);
  padding:10px;border-radius:10px;width:100%;outline:none
}
input:focus,select:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(47,160,185,.1)}
.modalactions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
.statusbox{
  padding:13px;border:1px solid #dbe6ed;background:#f8fbfd;
  border-radius:12px;color:#626b74;line-height:1.7
}
.hint{font-size:12px;line-height:1.5}
.switchrow{margin:14px 0}.switchrow input{width:auto;margin-right:8px}
.empty{color:#98a0a8;padding:20px;text-align:center}
.sectionhead{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.rolepill{
  font-size:10px;padding:3px 8px;border:1px solid #cfe5eb;border-radius:999px;
  color:#1b8297;background:#effafd;text-transform:uppercase;letter-spacing:.05em
}
.auditdetails{max-width:440px;font-size:11px;color:var(--muted);white-space:pre-wrap;word-break:break-word}
.public-footer{background:transparent!important}

/* PWA/standalone polish */
@media (display-mode: standalone){
  body{overscroll-behavior:none}
  .sidebar{padding-top:26px}
}
@media(max-width:1050px){
  .kpis{grid-template-columns:repeat(2,1fr)}
  .hero-mark{width:210px;opacity:.35}
}
@media(max-width:900px){
  .app{grid-template-columns:1fr}
  .sidebar{height:auto;position:static;border-right:0;border-bottom:1px solid var(--line)}
  .sidebar-brand{display:none}
  .sidebar nav{display:flex;overflow:auto;gap:4px}
  .sidebar nav button{width:auto;white-space:nowrap}
  .foot{position:static;margin-top:12px}
  main{padding:18px}
  .grid2{grid-template-columns:1fr}
  .kpis{grid-template-columns:1fr 1fr}
  .hero-card{padding:24px;min-height:160px}
  .hero-card h1{font-size:30px}
}
@media(max-width:600px){
  .kpis{grid-template-columns:1fr}
  .form{grid-template-columns:1fr}
  .full{grid-column:auto}
  .hero-mark{display:none}
  .hero-subline{font-size:21px}
  .authcard{padding:25px 20px}
}


/* =========================================================
   V2.2.2 - LEBENSWERK BRANDING POLISH
   ========================================================= */
:root{
  --lw-blue:#214a82;
  --lw-blue-dark:#173966;
  --lw-cyan:#2e9eb8;
  --lw-charcoal:#505154;
  --lw-white:#ffffff;
  --lw-offwhite:#f7f9fb;
}

/* Real LEBENSWERK vector assets */
.sidebar-brand img{
  width:210px;
  max-height:116px;
  object-fit:contain;
}
.authbrand.brand-lockup img{
  width:285px;
  max-height:190px;
  object-fit:contain;
}

/* Typography */
h1,h2,h3,.eyebrow,.dayhead{
  font-family:"Hightower Text","Baskerville","Times New Roman",serif;
}
.hero-subline{
  font-family:"Microsoft Himalaya","Segoe Print","Baskerville",serif;
  font-size:27px;
  letter-spacing:.105em;
  color:#606266;
}
.hero-intro{
  font-size:15px;
  color:#656c73;
  margin:10px 0 4px;
}

/* Dashboard hero */
.hero-card{
  background:
    radial-gradient(circle at 78% 28%,rgba(46,158,184,.07),transparent 28%),
    linear-gradient(112deg,#fff 0%,#fff 58%,#f8fbfd 100%);
  min-height:205px;
}
.hero-card h1{
  font-size:41px;
  letter-spacing:.15em;
  color:var(--lw-charcoal);
}
.hero-mark{
  width:300px;
  max-height:185px;
  right:48px;
  filter:drop-shadow(0 8px 12px rgba(35,53,70,.06));
}

/* More refined card system */
.card,.kpi,.hero-card,.day{
  transition:transform .22s cubic-bezier(.2,.7,.3,1),box-shadow .22s ease,border-color .22s ease;
}
.card:hover{
  border-color:#d5dfe7;
  box-shadow:0 12px 34px rgba(26,53,79,.075);
}
.kpi:hover{
  transform:translateY(-2px);
}
.kpi{
  position:relative;
  overflow:hidden;
}
.kpi:before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--lw-cyan),var(--lw-blue));
  opacity:.65;
}
.kpi strong{
  font-variant-numeric:tabular-nums;
}

/* Navigation refinement */
.sidebar nav button{
  position:relative;
  overflow:hidden;
}
.sidebar nav button.active:before{
  content:"";
  position:absolute;
  left:0;top:8px;bottom:8px;width:3px;
  border-radius:5px;
  background:var(--lw-cyan);
}
.sidebar nav button:hover{
  transform:translateX(2px);
}

/* Buttons */
.primary{
  box-shadow:0 5px 14px rgba(33,74,130,.14);
}
.primary:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 20px rgba(33,74,130,.18);
}
button:active,.button:active{
  transform:translateY(0) scale(.985);
}

/* Tables and shifts */
tbody tr{
  transition:background-color .15s ease;
}
.shift{
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;
}

/* Subtle page entrance */
main > section:not(.hidden){
  animation:lwPageIn .28s ease both;
}
.card,.hero-card{
  animation:lwCardIn .34s ease both;
}
.kpis .card:nth-child(2){animation-delay:.035s}
.kpis .card:nth-child(3){animation-delay:.07s}
@keyframes lwPageIn{
  from{opacity:0;transform:translateY(5px)}
  to{opacity:1;transform:none}
}
@keyframes lwCardIn{
  from{opacity:0;transform:translateY(8px)}
  to{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce){
  *,*:before,*:after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
  }
}

/* Modal polish */
.modalbox{
  animation:lwModalIn .18s ease both;
}
@keyframes lwModalIn{
  from{opacity:0;transform:translateY(7px) scale(.99)}
  to{opacity:1;transform:none}
}

/* Mobile hero */
@media(max-width:1050px){
  .hero-mark{right:22px;width:235px}
}
@media(max-width:600px){
  .hero-card h1{font-size:31px;letter-spacing:.11em}
  .hero-intro{font-size:14px}
  .hero-subline{font-size:22px}
}


/* =========================================================
   V2.2.3 - MOBILE / SMARTPHONE RESPONSIVENESS
   Desktop is intentionally unchanged.
   ========================================================= */

.mobile-header,
.mobile-nav-backdrop,
.mobile-drawer-close{
  display:none;
}

/* Give touch devices friendlier hit areas without changing desktop layout */
@media (pointer:coarse){
  button,.button,input,select{
    min-height:44px;
  }
}

/* Tablet + smartphone app shell */
@media(max-width:900px){
  html,body{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
  }

  body{
    padding-top:env(safe-area-inset-top,0px);
    padding-left:env(safe-area-inset-left,0px);
    padding-right:env(safe-area-inset-right,0px);
  }

  .app{
    display:block;
    min-height:100dvh;
  }

  /* Native-app-like mobile top bar */
  .mobile-header{
    display:flex;
    position:fixed;
    z-index:30;
    top:env(safe-area-inset-top,0px);
    left:0;
    right:0;
    height:64px;
    align-items:center;
    justify-content:space-between;
    padding:8px 14px 8px 16px;
    background:rgba(255,255,255,.96);
    border-bottom:1px solid var(--line);
    box-shadow:0 5px 22px rgba(28,49,70,.06);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
  }
  .mobile-header img{
    width:182px;
    height:43px;
    object-fit:contain;
    object-position:left center;
  }
  .mobile-menu-btn{
    width:46px;
    height:46px;
    min-height:46px;
    padding:0;
    display:grid;
    place-items:center;
    border:1px solid var(--line);
    border-radius:13px;
    background:#fff;
    color:var(--lw-blue-dark);
    font-size:24px;
    line-height:1;
    box-shadow:0 3px 12px rgba(25,50,76,.05);
  }

  /* Sidebar becomes an off-canvas app drawer */
  .sidebar{
    display:flex;
    flex-direction:column;
    position:fixed;
    z-index:50;
    top:0;
    bottom:0;
    left:0;
    width:min(86vw,330px);
    height:100dvh;
    padding:
      calc(18px + env(safe-area-inset-top,0px))
      16px
      calc(16px + env(safe-area-inset-bottom,0px));
    border-right:1px solid var(--line);
    border-bottom:0;
    background:#fff;
    box-shadow:18px 0 55px rgba(15,33,52,.15);
    transform:translateX(-105%);
    transition:transform .24s cubic-bezier(.2,.75,.25,1);
    overflow-y:auto;
  }
  .app.mobile-nav-open .sidebar{
    transform:translateX(0);
  }

  .mobile-nav-backdrop{
    display:block;
    position:fixed;
    z-index:40;
    inset:0;
    background:rgba(18,29,40,.38);
    opacity:0;
    pointer-events:none;
    transition:opacity .2s ease;
    backdrop-filter:blur(2px);
    -webkit-backdrop-filter:blur(2px);
  }
  .app.mobile-nav-open .mobile-nav-backdrop{
    opacity:1;
    pointer-events:auto;
  }

  .sidebar-brand{
    display:block;
    position:relative;
    margin:0 2px 18px;
    padding:3px 38px 18px 0;
  }
  .sidebar-brand img{
    width:210px;
    margin:0;
  }
  .sidebar-brand .os-chip{
    margin-top:6px;
  }
  .mobile-drawer-close{
    display:grid;
    place-items:center;
    position:absolute;
    top:0;
    right:0;
    width:38px;
    height:38px;
    min-height:38px;
    padding:0;
    border-radius:11px;
    font-size:27px;
    font-weight:300;
    line-height:1;
    color:#69717a;
    background:#f7f9fb;
  }

  .sidebar nav{
    display:block;
    overflow:visible;
    flex:1 0 auto;
  }
  .sidebar nav button{
    width:100%;
    min-height:48px;
    margin:4px 0;
    padding:12px 14px;
    white-space:normal;
    font-size:15px;
  }
  .sidebar nav button:hover{
    transform:none;
  }

  .foot{
    position:static;
    margin-top:auto;
    padding-top:15px;
  }
  .foot .logout,
  .foot .install-btn{
    min-height:46px;
  }

  main{
    width:100%;
    min-width:0;
    padding:
      calc(82px + env(safe-area-inset-top,0px))
      14px
      calc(28px + env(safe-area-inset-bottom,0px));
  }

  /* Headings/buttons stack cleanly */
  .top{
    align-items:flex-start;
    flex-direction:column;
    gap:12px;
    margin-bottom:14px;
  }
  .top > button,
  .top > .primary{
    width:100%;
  }
  h1{
    font-size:27px;
    line-height:1.14;
  }
  h2{
    font-size:19px;
  }

  /* Dashboard */
  .hero-card{
    min-height:auto;
    padding:22px 20px;
    border-radius:18px;
    margin-bottom:13px;
  }
  .hero-card h1{
    font-size:30px;
    letter-spacing:.11em;
  }
  .hero-intro{
    margin-top:8px;
    max-width:92%;
  }
  .hero-subline{
    font-size:21px;
    line-height:1.1;
    letter-spacing:.06em;
    margin-top:8px;
  }
  .hero-mark{
    display:none;
  }

  .kpis{
    grid-template-columns:1fr 1fr;
    gap:10px;
  }
  .kpi{
    min-height:96px;
    padding:15px;
  }
  .kpi strong{
    font-size:27px;
  }
  .kpi.adminOnly:not(.hidden){
    grid-column:1/-1;
  }

  .card{
    border-radius:16px;
    padding:16px;
    margin-bottom:12px;
  }

  /* Schichtplan: actual mobile day cards instead of 7 squeezed columns */
  .toolbar{
    flex-direction:column;
    align-items:stretch;
    gap:11px;
  }
  .toolbar > strong{
    order:-1;
    text-align:center;
    color:var(--lw-blue-dark);
    font-size:14px;
  }
  .toolbar > div{
    display:grid;
    grid-template-columns:48px 1fr 48px;
    gap:7px;
  }
  .toolbar > div button{
    width:100%;
    min-width:0;
    padding:9px 7px;
  }

  .week{
    display:block;
    overflow:visible;
    padding:0;
  }
  .day{
    min-height:0;
    margin:0 0 11px;
    padding:13px;
    border-radius:14px;
  }
  .day.today{
    outline:2px solid rgba(47,160,185,.32);
  }
  .dayhead{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    margin-bottom:10px;
    padding-bottom:8px;
    border-bottom:1px solid var(--line);
    font-size:17px;
  }
  .dayhead .date{
    display:inline;
    margin:0;
    font-size:12px;
  }
  .day > button:last-child{
    width:100%;
    min-height:42px;
    margin-top:3px;
    color:var(--lw-blue);
    border-style:dashed;
    background:#fbfdff;
  }

  .shift{
    padding:12px;
    margin-bottom:8px;
    border-radius:11px;
  }
  .shift strong{
    font-size:15px;
  }
  .shift .time{
    font-size:13px;
  }

  /* System page */
  .grid2{
    grid-template-columns:1fr;
    gap:0;
  }
  .actions{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
  }
  .actions > *{
    width:100%;
    text-align:center;
  }
  .switchrow label{
    display:flex;
    align-items:flex-start;
    gap:8px;
    line-height:1.4;
  }
  .switchrow input{
    flex:0 0 auto;
    margin-top:3px;
  }
}

/* Narrow phones */
@media(max-width:600px){
  /* Prevent mobile browsers from zooming form fields */
  input,select,textarea{
    font-size:16px;
  }

  .authgate{
    align-items:flex-start;
    padding:
      calc(30px + env(safe-area-inset-top,0px))
      14px
      calc(20px + env(safe-area-inset-bottom,0px));
  }
  .authcard{
    width:100%;
    padding:24px 18px;
    border-radius:20px;
  }
  .authbrand.brand-lockup img{
    width:245px;
    max-height:158px;
  }

  .mobile-header img{
    width:165px;
  }

  main{
    padding-left:10px;
    padding-right:10px;
  }

  .hero-card{
    padding:19px 17px;
  }
  .hero-card h1{
    font-size:27px;
  }
  .eyebrow{
    font-size:12px;
  }
  .hero-intro{
    max-width:100%;
  }

  .kpis{
    grid-template-columns:1fr 1fr;
  }
  .kpi{
    padding:13px;
    min-height:90px;
  }
  .kpi span{
    font-size:10px;
  }
  .kpi strong{
    font-size:25px;
  }

  /* Mobile tables become readable cards */
  .mobile-table-card{
    padding:0;
    background:transparent;
    border:0;
    box-shadow:none;
    overflow:visible;
  }
  .responsive-table{
    display:block;
    width:100%;
  }
  .responsive-table thead{
    display:none;
  }
  .responsive-table tbody{
    display:block;
  }
  .responsive-table tr{
    display:block;
    margin:0 0 10px;
    padding:8px 13px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:14px;
    box-shadow:var(--shadow-soft);
  }
  .responsive-table td{
    display:grid;
    grid-template-columns:110px minmax(0,1fr);
    gap:10px;
    align-items:start;
    width:100%;
    padding:9px 0;
    border-bottom:1px solid #edf0f3;
    overflow-wrap:anywhere;
  }
  .responsive-table td:last-child{
    border-bottom:0;
  }
  .responsive-table td::before{
    color:#7b838b;
    font-size:11px;
    line-height:1.45;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.045em;
  }

  .employees-table td:nth-child(1)::before{content:"Name"}
  .employees-table td:nth-child(2)::before{content:"Rolle"}
  .employees-table td:nth-child(3)::before{content:"Wochenstd."}
  .employees-table td:nth-child(4)::before{content:"Aktiv"}
  .employees-table td:nth-child(5)::before{content:"Aktion"}

  .tasks-table td:nth-child(1)::before{content:"Tätigkeit"}
  .tasks-table td:nth-child(2)::before{content:"Kategorie"}
  .tasks-table td:nth-child(3)::before{content:"Rhythmus"}
  .tasks-table td:nth-child(4)::before{content:"Zuständig"}

  .users-table td:nth-child(1)::before{content:"Name"}
  .users-table td:nth-child(2)::before{content:"Benutzer"}
  .users-table td:nth-child(3)::before{content:"Rolle"}
  .users-table td:nth-child(4)::before{content:"Aktiv"}
  .users-table td:nth-child(5)::before{content:"Aktion"}

  .audit-table td:nth-child(1)::before{content:"Zeit"}
  .audit-table td:nth-child(2)::before{content:"Benutzer"}
  .audit-table td:nth-child(3)::before{content:"Aktion"}
  .audit-table td:nth-child(4)::before{content:"Bereich"}
  .audit-table td:nth-child(5)::before{content:"Details"}

  .responsive-table td button{
    width:100%;
  }
  .auditdetails{
    max-width:none;
    font-size:11px;
  }
  .tableScroll,.auditwrap{
    overflow:visible;
  }

  /* Forms as native-feeling bottom sheets */
  .modalbg{
    align-items:flex-end;
    padding:0;
  }
  .modalbox{
    width:100%;
    max-width:none;
    max-height:91dvh;
    overflow-y:auto;
    border-radius:22px 22px 0 0;
    padding:20px 16px calc(16px + env(safe-area-inset-bottom,0px));
  }
  .modalbox h2{
    font-size:21px;
    margin-bottom:16px;
  }
  .form{
    grid-template-columns:1fr;
    gap:11px;
  }
  .full{
    grid-column:auto;
  }
  .field input,
  .field select{
    min-height:47px;
  }
  .modalactions{
    position:sticky;
    bottom:calc(-16px - env(safe-area-inset-bottom,0px));
    z-index:2;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin:18px -4px -4px;
    padding:12px 4px calc(4px + env(safe-area-inset-bottom,0px));
    background:linear-gradient(to bottom,rgba(255,255,255,.88),#fff 18%);
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
  }
  .modalactions button{
    width:100%;
    min-height:46px;
  }
  .modalactions .danger:first-child{
    grid-column:1/-1;
  }

  .statusbox{
    overflow-wrap:anywhere;
  }
}

/* Very small devices */
@media(max-width:380px){
  .mobile-header img{width:145px}
  .kpis{grid-template-columns:1fr}
  .kpi.adminOnly:not(.hidden){grid-column:auto}
  .hero-card h1{font-size:25px;letter-spacing:.08em}
  .responsive-table td{grid-template-columns:96px minmax(0,1fr)}
}

/* Landscape phones: keep header compact */
@media(max-height:520px) and (max-width:900px) and (orientation:landscape){
  .mobile-header{height:54px}
  .mobile-header img{height:36px}
  main{padding-top:70px}
  .sidebar-brand img{width:175px}
}

/* Don't animate drawer if user asks for reduced motion */
@media (prefers-reduced-motion:reduce){
  .sidebar,.mobile-nav-backdrop{transition:none!important}
}


/* =========================================================
   V2.2.3a - MOBILE SCROLL HOTFIX
   Reliable scrolling in installed Android/desktop PWAs.
   ========================================================= */
@media(max-width:900px){
  /* The application gets a dedicated scrollable content area.
     This avoids mobile/PWA body-scroll lock problems. */
  .app:not(.hidden){
    height:100dvh;
    min-height:0;
    overflow:hidden;
  }

  .app:not(.hidden) main{
    height:100dvh;
    min-height:0;
    overflow-x:hidden;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-y:auto;
    touch-action:pan-y;
    scroll-behavior:smooth;
    scrollbar-gutter:stable;
  }

  /* Make sure active pages can grow naturally inside main. */
  .app:not(.hidden) main > section:not(.hidden){
    display:block;
    min-height:min-content;
    overflow:visible;
  }

  /* Drawer itself remains independently scrollable. */
  .sidebar{
    overflow-x:hidden;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-y:contain;
    touch-action:pan-y;
  }
}

@media(max-width:600px){
  .app:not(.hidden) main{
    padding-bottom:calc(36px + env(safe-area-inset-bottom,0px));
  }
}

/* =========================================================
   V2.3 – TEAM & OPERATIONS
   ========================================================= */
:root{
  --lw-blue:#214a82;
  --lw-blue-dark:#173966;
  --lw-cyan:#2e9eb8;
  --lw-charcoal:#505154;
  --lw-green:#2f835a;
  --lw-green-soft:#edf8f2;
  --lw-yellow:#aa7416;
  --lw-yellow-soft:#fff7e7;
  --lw-red:#ad4545;
  --lw-red-soft:#fff0f0;
  --lw-info:#3c6f9e;
  --lw-info-soft:#eef5fb;
}
textarea{width:100%;min-height:88px;resize:vertical;background:#fff;border:1px solid var(--line-strong);color:var(--text);padding:10px;border-radius:10px;font:inherit;outline:none}
textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(47,160,185,.1)}
small{display:block;color:var(--muted);font-size:11px;line-height:1.4;margin-top:3px}
.lead{font-size:14px;color:#606870;line-height:1.6;margin:-3px 0 18px}
.text-btn,.ghost,.more-btn{background:transparent;border-color:transparent;color:var(--navy);box-shadow:none}
.text-btn:hover,.ghost:hover,.more-btn:hover{background:#f2f7fb;border-color:transparent}
.icon-btn{position:relative;padding:0}
.top-actions{display:flex;gap:8px;flex-wrap:wrap}
.linked-pill{display:inline-block;margin-left:6px;padding:2px 6px;border-radius:999px;background:var(--cyan-soft);color:#207b8e;font-size:9px;text-transform:uppercase;letter-spacing:.04em}

/* Toasts */
.toast-root{position:fixed;z-index:200;top:18px;right:18px;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.toast{max-width:min(390px,calc(100vw - 28px));padding:12px 15px;border-radius:12px;background:#fff;border:1px solid var(--line);box-shadow:0 15px 44px rgba(20,40,60,.16);color:#49515a;opacity:0;transform:translateY(-6px);transition:.2s ease}
.toast.show{opacity:1;transform:none}.toast.success{border-left:4px solid var(--lw-green)}.toast.error{border-left:4px solid var(--lw-red)}

/* Navigation */
.sidebar nav button{gap:10px}.nav-icon{display:inline-grid;width:18px;place-items:center;color:#71808d;font-size:15px}.sidebar nav button.active .nav-icon{color:var(--lw-cyan)}
.nav-badge{display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:auto;padding:0 5px;border-radius:999px;background:var(--lw-red);color:#fff;font-size:10px;line-height:1}
.mobile-head-actions{display:flex;align-items:center;gap:7px}.mobile-head-actions .notification-trigger{width:40px;height:40px;min-height:40px;border-radius:11px}.mobile-head-actions .notification-trigger>span{font-size:11px;color:var(--lw-blue)}.mobile-head-actions .nav-badge{position:absolute;top:-3px;right:-3px;margin:0}

/* Dashboard */
.dashboard-hero{margin-bottom:12px}.kpi small{min-height:16px}.compact-kpis{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:16px}.compact-kpis .kpi{min-height:90px}.compact-kpis .kpi strong{font-size:25px}
.coverage-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 14px;padding:14px 17px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:var(--shadow-soft)}
.coverage-banner>div{display:flex;flex-direction:column;gap:2px}.coverage-banner b{font-size:14px}.coverage-banner span{font-size:12px;color:var(--muted)}.coverage-banner .coverage-icon{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:50%;font-size:18px;font-weight:700}
.coverage-banner.ok{border-color:#d2eadc;background:var(--lw-green-soft)}.coverage-banner.ok .coverage-icon{background:#d8efe1;color:var(--lw-green)}.coverage-banner.acknowledged{border-color:#f0dfb9;background:var(--lw-yellow-soft)}.coverage-banner.acknowledged .coverage-icon{background:#f8e7ba;color:var(--lw-yellow)}.coverage-banner.critical{border-color:#edcaca;background:var(--lw-red-soft)}.coverage-banner.critical .coverage-icon{background:#f5d6d6;color:var(--lw-red)}
.light-on-danger{background:#fff;border-color:#e0b4b4;color:var(--lw-red);font-weight:600;white-space:nowrap}
.dashboard-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:15px}.dashboard-panel{min-height:235px}.sectionhead{align-items:center}.sectionhead h2{margin-bottom:2px}.sectionhead p{margin:0}
.own-strip{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:center;padding:15px 18px;margin:0 0 14px;border:1px solid #d8e4ed;border-radius:15px;background:linear-gradient(90deg,#f9fcfe,#fff);box-shadow:var(--shadow-soft)}.own-strip>div:not(.own-actions){display:flex;flex-direction:column}.own-strip span{text-transform:uppercase;letter-spacing:.06em;font-size:10px;color:var(--muted)}.own-strip strong{font-size:18px;color:var(--lw-blue-dark)}.own-strip small{max-width:390px}.own-actions{display:flex;gap:7px}
.action-row,.forecast-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.action-row:last-child,.forecast-row:last-child{border-bottom:0}.action-row>div,.forecast-row>div{display:flex;flex-direction:column}.action-row span,.forecast-row span{font-size:12px;color:var(--muted)}.forecast-row>strong{color:var(--lw-blue-dark);font-size:16px}

/* Shift / coverage */
.schedule-toolbar-card{padding:16px}.week-controls{display:flex;gap:6px}.legend{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:5px}.dot{width:7px;height:7px;border-radius:50%;display:inline-block}.dot.ok{background:var(--lw-green)}.dot.warning{background:var(--lw-yellow)}.dot.critical{background:var(--lw-red)}
.coverage-pill{display:block;margin:0 0 9px;padding:5px 7px;border-radius:8px;font-size:10px;font-family:"Segoe UI",Arial,sans-serif;white-space:normal}.coverage-pill.ok{background:var(--lw-green-soft);color:var(--lw-green)}.coverage-pill.warning{background:var(--lw-yellow-soft);color:var(--lw-yellow)}.coverage-pill.critical{background:var(--lw-red-soft);color:var(--lw-red);font-weight:700}.coverage-pill.neutral{background:#f0f2f4;color:#89919a}.day-shifts{min-height:160px}
.shift{border-left-width:4px}.shift.clickable{cursor:pointer}.shift-type-cleaning{border-left-color:#735e9c}.shift-type-admin{border-left-color:#7c8691}.shift-type-coaching{border-left-color:var(--lw-blue)}.shift-type-education{border-left-color:#b08943}.shift-type-meeting{border-left-color:#6d7780}.shift-top{display:flex;align-items:flex-start;justify-content:space-between;gap:5px}.shift-type-badge{font-size:8px;text-transform:uppercase;letter-spacing:.04em;background:#f1f5f7;color:#77818a;padding:2px 5px;border-radius:999px}.operational-alert{margin-top:6px;padding:4px 6px;border-radius:6px;background:var(--lw-yellow-soft);color:#8b651e;font-size:10px;font-weight:600}.noncoverage{margin-top:5px;color:#8e7299;font-size:9px;text-transform:uppercase;letter-spacing:.04em}.shift-note{font-size:10px;color:var(--muted);margin-top:4px}.add-day-shift,.gap-action{width:100%;margin-top:5px}.gap-action{color:var(--lw-red);background:var(--lw-red-soft);border-color:#efcccc;font-size:10px;padding:6px}
.shift-detail-large{font-family:"Hightower Text",Georgia,serif;font-size:26px;letter-spacing:.04em;color:var(--lw-blue-dark);margin:10px 0 0}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px}.quick-grid button:last-child{grid-column:1/-1}.delay-presets{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:14px 0}.delay-presets button{background:#f5fafc;color:var(--lw-blue);border-color:#d8e8ef;font-weight:600}
.warning-callout{padding:13px 14px;margin:8px 0 16px;border-radius:12px;background:var(--lw-yellow-soft);border:1px solid #eeddb7}.warning-callout p{margin:3px 0 0;font-size:12px}

/* Tasks */
.segmented{display:inline-flex;padding:3px;margin:0 0 13px;border:1px solid var(--line);border-radius:11px;background:#f3f5f7}.segmented button{min-height:34px;border:0;background:transparent;padding:6px 16px}.segmented button.active{background:#fff;color:var(--lw-blue);box-shadow:0 2px 8px rgba(30,55,80,.07)}
.task-summary{display:flex;align-items:center;gap:18px;margin-bottom:14px}.task-summary>div:first-child{display:flex;align-items:baseline;gap:8px}.task-summary strong{font-size:25px;color:var(--lw-blue-dark)}.task-summary span{font-size:12px;color:var(--muted)}.progress{height:8px;flex:1;background:#e9edf0;border-radius:999px;overflow:hidden}.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--lw-cyan),var(--lw-blue));border-radius:inherit;transition:width .3s ease}.task-list{display:flex;flex-direction:column}.task-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:11px 4px;border-bottom:1px solid var(--line)}.task-item:last-child{border-bottom:0}.task-check{display:grid;place-items:center;width:30px;height:30px;min-height:30px;padding:0;border-radius:9px;border:1px solid #cfd8df;background:#fff;color:#fff;font-weight:700}.task-item.done .task-check{background:var(--lw-green);border-color:var(--lw-green)}.task-item.done .task-copy b{text-decoration:line-through;color:#8c9399}.task-copy{display:flex;flex-direction:column}.task-copy span{font-size:11px;color:var(--muted)}.task-copy small{color:#7a8c83}.priority-badge{font-size:9px;padding:3px 7px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em;background:#eef1f3;color:#78818a}.priority-badge.important{background:var(--lw-yellow-soft);color:var(--lw-yellow)}.priority-badge.critical{background:var(--lw-red-soft);color:var(--lw-red)}.more-btn{width:28px;height:28px;min-height:28px;padding:0}.success-empty{color:var(--lw-green)}
.tasks-table td:first-child small{max-width:500px}

/* Team */
.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.team-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:16px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-soft);cursor:pointer;transition:.18s ease}.team-card:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(24,48,75,.08);border-color:#d2dde5}.team-card.inactive{opacity:.6}.avatar{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:linear-gradient(145deg,#e8f5f7,#edf2f8);color:var(--lw-blue);font-family:"Hightower Text",Georgia,serif;font-size:17px}.team-card-copy h3{margin:0;font-size:17px;letter-spacing:.035em}.team-card-copy p{margin:1px 0 6px;font-size:12px}.team-tags{display:flex;flex-wrap:wrap;gap:5px}.team-tags span{padding:2px 6px;border-radius:999px;background:#f0f3f5;color:#74808a;font-size:9px}.team-tags span.positive{background:var(--lw-green-soft);color:var(--lw-green)}.chevron{font-size:28px;color:#b3bbc2;font-weight:300}
.profile-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0 0 18px}.profile-metrics>div{display:flex;flex-direction:column;padding:10px 11px;border-radius:11px;background:#f7f9fa;border:1px solid #edf0f2}.profile-metrics span{font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.profile-metrics strong{font-size:13px;color:#4b555f;margin-top:2px}.wide-modal{width:min(830px,100%)}.weekday-checks{display:flex;flex-wrap:wrap;gap:6px}.weekday-checks label{display:flex;align-items:center;gap:4px;padding:6px 9px;border:1px solid var(--line);border-radius:9px;background:#fafbfc}.weekday-checks input{width:auto}.detail-section{margin:15px 0 0;border-top:1px solid var(--line);padding-top:12px}.detail-section summary{cursor:pointer;color:var(--lw-blue);font-weight:600}.comp-list{margin-top:9px}.comp-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:9px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.comp-row>div{display:flex;flex-direction:column}.comp-row span{font-size:11px;color:var(--muted)}.comp-row>strong{color:var(--lw-blue-dark)}.danger.ghost{color:var(--lw-red);padding:4px 7px;min-height:30px}

/* Time & absences */
.own-time-kpis{grid-template-columns:repeat(3,1fr)}.absence-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.absence-row:last-child{border-bottom:0}.absence-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#f2f6f9;color:var(--lw-blue)}.absence-row>div:nth-child(2){display:flex;flex-direction:column}.absence-row span{font-size:11px;color:var(--muted)}.status-badge{padding:3px 7px;border-radius:999px;background:#eef1f3;color:#74808a;font-size:9px;text-transform:uppercase;letter-spacing:.04em}.status-badge.approved{background:var(--lw-green-soft);color:var(--lw-green)}.status-badge.pending{background:var(--lw-yellow-soft);color:var(--lw-yellow)}.status-badge.rejected{background:var(--lw-red-soft);color:var(--lw-red)}.decision-summary{display:flex;flex-direction:column;gap:3px;padding:15px;margin:10px 0 4px;border:1px solid var(--line);border-radius:13px;background:#fafbfc}.decision-summary strong{font-size:25px;color:var(--lw-blue-dark)}.decision-summary span{color:var(--muted);font-size:12px}.decision-summary p{margin-top:7px}

/* Reports */
.month-picker{display:flex;align-items:center;gap:8px}.month-picker strong{min-width:130px;text-align:center;text-transform:capitalize}.reports-table .pos{color:var(--lw-green)}.reports-table .neg{color:var(--lw-red)}.minijob-card{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 0;border-bottom:1px solid var(--line)}.minijob-card:last-child{border-bottom:0}.minijob-card h3{margin:0;font-size:17px}.minijob-card p{font-size:12px}.minijob-number{text-align:right}.minijob-number span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.minijob-number strong{font-size:20px;color:var(--lw-blue-dark)}.copy-summary{min-height:160px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}

/* Notifications */
.notification-list{display:flex;flex-direction:column;gap:8px}.notification{display:grid;grid-template-columns:5px minmax(0,1fr) auto;gap:12px;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-soft)}.notification.unread{border-color:#cfdde8}.notif-mark{width:5px;border-radius:999px;background:#bcc4ca}.notification.info .notif-mark{background:var(--lw-info)}.notification.action .notif-mark{background:var(--lw-yellow)}.notification.warning .notif-mark,.notification.critical .notif-mark{background:var(--lw-red)}.notif-head{display:flex;justify-content:space-between;gap:15px}.notif-head span{font-size:10px;color:var(--muted)}.notification p{font-size:12px;margin:4px 0 0}.notif-actions{display:flex;align-items:center;gap:4px}.notif-actions button{font-size:10px;min-height:32px;padding:5px 8px}

/* System */
.permission-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.permission-grid label{display:grid;grid-template-columns:minmax(0,1fr) 135px;gap:8px;align-items:center;padding:5px 0}.permission-grid label span{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;color:#68737d}.permission-grid select{padding:7px;font-size:11px}.coverage-rule-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.coverage-rule-row:last-child{border-bottom:0}.coverage-rule-row>div{display:flex;flex-direction:column}.coverage-rule-row span{font-size:11px;color:var(--muted)}

/* Modal / forms refinements */
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:13px}.modal-head h2{margin:0}.modal-x{display:grid;place-items:center;width:36px;height:36px;min-height:36px;padding:0;border-radius:10px;font-size:24px;line-height:1;background:#f5f7f8}.compact-modal{width:min(520px,100%)}.checkrow{display:flex;align-items:center;gap:8px;font-size:13px}.checkrow input{width:auto}.date-wrap,.time-wrap{display:flex;width:100%;min-width:0;border:1px solid var(--line-strong);border-radius:10px;padding:10px;background:#fff}.date-wrap input,.time-wrap input{display:block;width:100%;min-width:0;border:0!important;background:transparent!important;padding:0!important;box-shadow:none!important}.employee-form{margin-top:4px}
.authlinks{text-align:center;margin-top:18px;font-size:10px;color:#929aa2}.authlinks a{color:#798690;text-decoration:none}

@media(max-width:1180px){.team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}.profile-metrics{grid-template-columns:repeat(2,1fr)}}

@media(max-width:900px){
  .dashboard-grid{grid-template-columns:1fr}.compact-kpis{grid-template-columns:repeat(3,1fr)}.own-strip{grid-template-columns:1fr 1fr}.own-actions{grid-column:1/-1}.own-actions button{flex:1}.team-grid{grid-template-columns:1fr 1fr}.own-time-kpis{grid-template-columns:1fr 1fr}.own-time-kpis .kpi:last-child{grid-column:1/-1}.legend{display:none}.week-controls{display:grid!important;grid-template-columns:48px 1fr 48px!important}.quick-grid{grid-template-columns:1fr 1fr}
  .toast-root{top:calc(74px + env(safe-area-inset-top,0px));left:12px;right:12px}.toast{max-width:none;width:100%}
}

@media(max-width:600px){
  .coverage-banner{align-items:flex-start;padding:12px 13px}.coverage-banner>button{width:100%;margin-top:5px}.coverage-banner{flex-wrap:wrap}.coverage-banner .coverage-icon{display:none}
  .compact-kpis{grid-template-columns:1fr 1fr}.compact-kpis .kpi:last-child{grid-column:1/-1}.own-strip{grid-template-columns:1fr;padding:13px}.own-actions{grid-column:auto;display:grid;grid-template-columns:1fr 1fr}.dashboard-panel{min-height:0}.sectionhead{align-items:flex-start}.sectionhead .text-btn{font-size:10px;padding:4px}
  .team-grid{grid-template-columns:1fr}.team-card{padding:13px}.profile-metrics{grid-template-columns:1fr 1fr}.profile-metrics>div{padding:8px}.wide-modal{width:100%}.weekday-checks{display:grid;grid-template-columns:repeat(4,1fr)}.weekday-checks label{justify-content:center;padding:7px 4px}
  .own-time-kpis{grid-template-columns:1fr}.own-time-kpis .kpi:last-child{grid-column:auto}.top-actions{display:grid;width:100%;grid-template-columns:1fr 1fr}.top-actions button{width:100%}
  .task-item{grid-template-columns:auto minmax(0,1fr) auto}.task-item .more-btn{grid-column:3}.priority-badge{display:none}.task-summary{align-items:flex-start;flex-direction:column;gap:7px}.progress{width:100%;flex:none}
  .delay-presets{grid-template-columns:1fr 1fr}.quick-grid{grid-template-columns:1fr}.quick-grid button:last-child{grid-column:auto}.permission-grid{grid-template-columns:1fr}.permission-grid label{grid-template-columns:minmax(0,1fr) 125px}.notif-head{flex-direction:column;gap:2px}.notification{grid-template-columns:4px minmax(0,1fr)}.notif-actions{grid-column:2;justify-content:flex-end}.minijob-card{align-items:flex-start}.minijob-number strong{font-size:17px}
  .modalbox{padding-top:17px}.modal-head{position:sticky;top:-20px;z-index:5;padding:5px 0 10px;background:#fff}.comp-row{grid-template-columns:minmax(0,1fr) auto auto}
  .responsive-table.reports-table td:nth-child(1)::before{content:"Mitarbeiter"}.responsive-table.reports-table td:nth-child(2)::before{content:"Modell"}.responsive-table.reports-table td:nth-child(3)::before{content:"Plan/Soll"}.responsive-table.reports-table td:nth-child(4)::before{content:"Stunden"}.responsive-table.reports-table td:nth-child(5)::before{content:"Differenz"}.responsive-table.reports-table td:nth-child(6)::before{content:"Prognose"}
  .tasks-table td:nth-child(4)::before{content:"Priorität"}.tasks-table td:nth-child(5)::before{content:"Aktion"}
  .users-table td:nth-child(4)::before{content:"Mitarbeiter"}.users-table td:nth-child(5)::before{content:"Aktion"}
}

/* V2.3.0 final polish: patterns, availability, activation */
.pattern-list{display:grid;gap:9px;margin:12px 0 4px}
.pattern-row,.availability-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 13px;border:1px solid var(--line);border-radius:12px;background:#fbfcfd}
.pattern-row>div:first-child,.availability-row>div:first-child{display:flex;flex-direction:column;min-width:0}
.pattern-row b,.availability-row b{color:#43494f}
.pattern-row span,.availability-row span,.pattern-row small,.availability-row small{color:var(--muted);font-size:12px;margin-top:2px}
.pattern-row>div:last-child{display:flex;gap:6px;flex:0 0 auto}
.availability-row .danger{width:38px;min-width:38px;padding:5px}
#activateBox h2{margin-top:12px}
#activateBox p{margin-bottom:18px}
.time-account-note{font-size:12px;color:var(--muted)}
@media(max-width:600px){
  .pattern-row,.availability-row{align-items:stretch;flex-direction:column}
  .pattern-row>div:last-child{display:grid;grid-template-columns:1fr 48px}
  .pattern-row>div:last-child button{width:100%}
}


/* V2.3.3 – Jahresübersicht & sichtbarer Arbeitszustand */
.report-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.report-view-toggle{display:flex;padding:3px;border:1px solid var(--line);border-radius:12px;background:#fff}.report-view-toggle button{border:0;background:transparent;min-height:38px;padding:7px 14px}.report-view-toggle button.active{background:var(--lw-blue);color:#fff;box-shadow:0 3px 10px rgba(33,74,130,.15)}
.annual-report-list{display:grid;gap:16px}.annual-employee{margin-bottom:0}.annual-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;margin-bottom:16px}.annual-head h2{margin-bottom:2px}.annual-year{padding:5px 10px;border:1px solid var(--line);border-radius:999px;color:var(--lw-blue);font-size:12px;font-weight:700}.annual-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.annual-kpis>div{padding:14px;border:1px solid var(--line);border-radius:13px;background:var(--surface-soft)}.annual-kpis span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.annual-kpis strong{display:block;margin-top:5px;font-size:21px;color:var(--lw-blue-dark)}.annual-kpis small{display:block;margin-top:4px;color:var(--muted);font-size:11px}.annual-kpis .annual-free{background:#f3f9f6;border-color:#d6e9dd}.annual-opening{margin-top:12px;padding:10px 12px;border-left:3px solid var(--lw-cyan);background:#f8fbfd;color:#68717a;font-size:12px}.annual-details{margin-top:13px}.annual-details summary{cursor:pointer;color:var(--lw-blue);font-weight:600}.annual-month-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:10px}.annual-month{display:flex;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:12px}.annual-month.muted{color:var(--muted);grid-column:span 2}.annual-month .pos,.annual-kpis .pos{color:var(--lw-green)}.annual-month .neg,.annual-kpis .neg{color:var(--lw-red)}
.pattern-working{text-align:center}.indeterminate-progress{position:relative;overflow:hidden;height:10px;margin:22px 0 12px;border-radius:999px;background:#e7edf2}.indeterminate-progress span{position:absolute;top:0;bottom:0;width:38%;border-radius:999px;background:linear-gradient(90deg,var(--lw-cyan),var(--lw-blue));animation:lwIndeterminate 1.15s ease-in-out infinite}.working-note{font-size:12px;color:var(--muted)}@keyframes lwIndeterminate{0%{left:-40%}50%{left:42%}100%{left:104%}}
@media(max-width:900px){.report-controls{width:100%;justify-content:space-between}.annual-kpis{grid-template-columns:1fr 1fr}.annual-month-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.report-controls{display:grid;grid-template-columns:1fr}.report-view-toggle{width:100%}.report-view-toggle button{flex:1}.month-picker{justify-content:space-between}.annual-kpis{grid-template-columns:1fr 1fr}.annual-kpis .annual-free{grid-column:1/-1}.annual-month-grid{grid-template-columns:1fr 1fr}.annual-month.muted{grid-column:1/-1}}


/* =========================================================
   V2.3.4 – klare Informationsarchitektur der Navigation
   ========================================================= */
.structured-nav{display:flex;flex-direction:column;gap:3px}.structured-nav button{margin:0}.nav-home-block{padding-bottom:3px}.sidebar nav .nav-home{font-weight:700;color:var(--lw-blue-dark)}.nav-divider{height:1px;background:var(--line);margin:10px 7px}.nav-divider-bottom{margin-top:12px}.nav-group{border-radius:13px}.sidebar nav .nav-group-toggle{display:flex;justify-content:space-between;align-items:center;font-weight:700;color:#434b54;padding:11px 14px}.nav-group-toggle>span:first-child{display:flex;align-items:center}.nav-chevron{font-size:15px;color:#8a929a;transition:transform .18s ease}.nav-group-toggle[aria-expanded="true"] .nav-chevron{transform:rotate(180deg)}.nav-group-items{display:grid;gap:2px;padding:0 0 5px 17px;max-height:250px;opacity:1;overflow:hidden;transition:max-height .2s ease,opacity .16s ease,padding .2s ease}.nav-group-items.collapsed{max-height:0;opacity:0;padding-top:0;padding-bottom:0;pointer-events:none}.sidebar nav .nav-group-items button{padding:9px 12px 9px 16px;font-size:14px;font-weight:500;border-radius:10px;color:#5e6670}.nav-submark{width:5px;height:5px;flex:0 0 5px;border-radius:50%;background:#b6c0c9;margin-right:9px}.sidebar nav .nav-group-items button.active{background:#eef5fb;color:var(--lw-blue-dark);font-weight:700}.sidebar nav .nav-group-items button.active .nav-submark{background:var(--lw-cyan)}.nav-group.contains-active>.nav-group-toggle{color:var(--lw-blue-dark);background:#f8fbfd}.nav-primary-item{font-weight:700!important}.nav-settings-group{margin-top:auto}.nav-notifications-secondary{font-size:13px!important;color:#737b84!important;margin-top:3px!important}.nav-notifications-secondary .nav-badge{margin-left:auto}.foot{background:#fff}
@media(min-width:901px){.structured-nav{height:calc(100vh - 250px);min-height:430px}.nav-settings-group{margin-top:auto}.nav-notifications-secondary{margin-bottom:3px!important}}
@media(max-width:900px){.structured-nav{display:flex!important;overflow:visible!important;gap:4px}.sidebar nav .nav-group-toggle{width:100%;min-height:48px}.nav-group-items{padding-left:12px}.sidebar nav .nav-group-items button{width:100%;min-height:44px}.nav-settings-group{margin-top:8px}.nav-notifications-secondary{width:100%!important}.nav-divider{margin:9px 4px}}


/* =========================================================
   V2.3.5 – Navigation Polish
   ========================================================= */
.nav-svg,.nav-chevron-svg{width:20px;height:20px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nav-chevron-svg{width:16px;height:16px}
.nav-icon{display:grid;place-items:center;width:24px;height:24px;margin-right:10px;color:#71808d;flex:0 0 24px}
.sidebar nav button.active .nav-icon,.nav-group.contains-active>.nav-group-toggle .nav-icon,.sidebar nav button:hover .nav-icon{color:var(--lw-cyan)}
.sidebar{background:#fff}
.structured-nav{gap:5px}
.sidebar nav button{border-radius:13px}
.sidebar nav .nav-home{min-height:52px;font-size:15px;padding:12px 14px}
.nav-divider{margin:12px 9px;background:#e7ebef}
.sidebar nav .nav-group-toggle{min-height:50px;padding:12px 14px;font-size:15px;background:transparent}
.nav-group.contains-active>.nav-group-toggle{background:#f5f9fc;color:var(--lw-blue-dark)}
.sidebar nav .nav-group-items button{min-height:43px;padding:9px 12px 9px 17px;font-size:14px}
.nav-submark{width:4px;height:4px;flex-basis:4px;margin-right:12px;background:#c3ccd4}
.sidebar nav .nav-group-items button.active .nav-submark{width:6px;height:6px;flex-basis:6px;background:var(--lw-cyan)}
.sidebar nav .nav-group-items button.active{box-shadow:inset 3px 0 0 var(--lw-cyan)}
.nav-primary-item{min-height:50px;font-size:15px!important}
.nav-notifications-secondary{min-height:44px;padding:9px 14px!important;font-size:13px!important}
.nav-notifications-secondary .nav-badge{margin-left:auto}
.nav-chevron{display:grid;place-items:center;color:#8d98a2;transition:transform .18s ease}
.nav-group-toggle[aria-expanded="true"] .nav-chevron{transform:rotate(180deg)}
.sidebar-brand{position:relative;display:grid;justify-items:center;align-items:center;text-align:center;padding:4px 44px 20px;margin:0 0 18px}
.sidebar-brand img{width:min(205px,100%);max-height:110px;margin:0 auto 7px;object-fit:contain;object-position:center}
.sidebar-brand .os-chip{justify-self:center}
.mobile-drawer-close{position:absolute!important;top:4px!important;right:2px!important;z-index:2}
.foot{margin-top:14px;padding-top:16px;border-top:1px solid #e7ebef;background:#fff}
#userBadge{line-height:1.35}
@media(max-width:900px){
  .sidebar{width:min(84vw,350px);padding:calc(16px + env(safe-area-inset-top,0px)) 18px calc(16px + env(safe-area-inset-bottom,0px))}
  .sidebar-brand{padding-left:46px;padding-right:46px;min-height:154px}
  .sidebar-brand img{width:190px;max-height:112px}
  .sidebar-brand .os-chip{margin-top:2px}
  .structured-nav{gap:5px}
  .nav-group-items{padding-left:9px;padding-right:1px}
  .sidebar nav .nav-group-items button{padding-left:18px}
}
@media(max-width:390px){
  .sidebar{width:88vw;padding-left:14px;padding-right:14px}
  .sidebar-brand{padding-left:42px;padding-right:42px}
  .sidebar-brand img{width:172px}
}


/* =========================================================
   V2.4 – Tätigkeiten & Studiobetrieb
   ========================================================= */
.task-page-top{margin-bottom:14px}
.task-tabs{margin-bottom:15px}
.task-hero{padding:20px 22px}
.task-hero-title{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}
.task-hero-title h2{margin-top:3px;margin-bottom:0}
.task-big-status{min-width:90px;text-align:right}
.task-big-status strong{display:block;font-size:26px;color:var(--lw-blue-dark)}
.task-big-status span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.task-summary{display:flex;align-items:center;gap:14px;margin-top:18px}
.task-summary .progress{flex:1;height:10px;background:#e9eef2;border-radius:999px;overflow:hidden}
.task-summary .progress i{display:block;height:100%;background:linear-gradient(90deg,var(--lw-cyan),var(--lw-blue));border-radius:inherit;transition:width .22s ease}
.task-summary-number{min-width:74px}.task-summary-number strong{font-size:21px;color:var(--lw-blue-dark)}.task-summary-number span{display:block;font-size:11px;color:var(--muted)}
.task-summary-mini{font-size:12px}.task-summary-mini.warning{color:#a16616}
.task-overdue-callout{display:flex;flex-direction:column;gap:2px;margin:0 0 12px;padding:12px 15px;border:1px solid #ecd6b4;background:#fffaf2;border-radius:14px;color:#82581f}.task-overdue-callout span{font-size:12px;color:#8a7253}
.productive-task-list{display:grid;gap:9px}
.task-item-v24{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:start;background:#fff;border:1px solid var(--line);border-radius:15px;padding:13px 14px;box-shadow:var(--shadow-soft);transition:.16s ease}
.task-item-v24:hover{border-color:#d1dce4;box-shadow:0 7px 22px rgba(25,52,77,.07)}
.task-item-v24.done{opacity:.66;background:#f9fbfa}
.task-item-v24.blocked{border-color:#e6c98e;background:#fffdf8}
.task-check-v24{width:44px;height:44px;min-height:44px;padding:0;border-radius:50%;border:2px solid #c8d2da;background:#fff;color:#fff;font-size:20px;font-weight:700;display:grid;place-items:center}
.task-item-v24.done .task-check-v24{background:#3e9464;border-color:#3e9464}
.task-item-v24.blocked .task-check-v24{background:#c6923c;border-color:#c6923c}
.task-copy-v24{min-width:0}
.task-title-line{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.task-title-line b{font-size:15px;color:#3f474f}
.clean-level{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:7px;font-size:11px;font-weight:800;border:1px solid}
.clean-level.level-1{color:#267d91;background:#eef9fb;border-color:#cce8ed}
.clean-level.level-2{color:#315f8d;background:#f0f5fb;border-color:#d3dfec}
.clean-level.level-3{color:#6d587d;background:#f6f1f8;border-color:#e3d8e8}
.task-meta-line{display:flex;gap:7px;flex-wrap:wrap;margin-top:4px}.task-meta-line span{font-size:11px;color:#7c858e}.task-meta-line span+span:before{content:"·";margin-right:7px;color:#bbc2c8}
.task-meta-line .overdue-label{color:#a66322;font-weight:700}.task-meta-line .missed-label{color:#a66322}
.task-details{margin-top:7px}.task-details summary{font-size:12px;color:var(--lw-blue);cursor:pointer}.task-details p{font-size:12px;margin:6px 0 3px}.task-details small{color:var(--muted)}
.completed-line{display:block;margin-top:7px;color:#548064}
.task-blocked-note{margin-top:8px;padding:7px 9px;background:#fff6df;border-radius:9px;font-size:12px;color:#805e28}
.task-actions-v24{display:flex;align-items:center;gap:5px}.task-secondary-action{padding:7px 9px;min-height:36px;font-size:11px;color:#7b6c58}
.task-week-toolbar{display:grid;grid-template-columns:46px 1fr 46px;align-items:center;gap:10px;text-align:center}.task-week-toolbar button{height:42px;padding:0}.task-week-toolbar strong{display:block;color:var(--lw-blue-dark)}.task-week-toolbar small{display:block;color:var(--muted);margin-top:2px}
.task-week-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.task-week-day{padding:13px;margin:0}.task-week-day.today{outline:2px solid rgba(47,160,185,.25)}
.task-week-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;padding-bottom:9px;border-bottom:1px solid var(--line)}.task-week-head span{display:block;font-size:11px;color:var(--muted);text-transform:uppercase}.task-week-head strong{display:block;font-size:14px}.task-week-head b{color:var(--lw-blue);font-size:13px}
.task-week-list{display:grid;gap:6px;margin-top:9px}.task-week-row{display:grid;grid-template-columns:24px 1fr 16px;gap:7px;align-items:center;padding:7px;border-radius:9px;background:#f8fafb}.task-week-row.done{opacity:.55}.task-week-row b{display:block;font-size:11px;font-weight:600}.task-week-row small{display:block;font-size:9px;color:var(--muted)}.task-week-row i{font-style:normal;color:#3d8f61}
.catalog-intro{display:flex;justify-content:space-between;gap:20px;align-items:center}.catalog-intro h2{margin-bottom:2px}.clean-level-legend{display:flex;gap:6px;flex-wrap:wrap}.clean-level-legend span{padding:5px 8px;border-radius:8px;background:#f4f7f9;color:#6f7982;font-size:10px}
.task-catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.task-catalog-card{margin:0;display:flex;flex-direction:column}.catalog-card-head{display:flex;justify-content:space-between;gap:10px}.catalog-card-head h3{margin:3px 0 0;font-size:16px;letter-spacing:.02em}.task-category{font-size:10px;color:var(--lw-cyan);text-transform:uppercase;letter-spacing:.07em;font-weight:700}.task-catalog-card>p{font-size:12px;min-height:36px}.catalog-meta{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}.catalog-meta span{padding:4px 7px;border-radius:999px;background:#f3f6f8;color:#67717a;font-size:10px}.catalog-tools{display:block;margin-top:8px;color:var(--muted)}.catalog-card-footer{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:12px}
@media(max-width:1100px){.task-week-grid{grid-template-columns:1fr 1fr}.task-catalog-grid{grid-template-columns:1fr}}
@media(max-width:700px){
  .task-hero{padding:17px}.task-big-status strong{font-size:23px}
  .task-item-v24{grid-template-columns:44px minmax(0,1fr);padding:12px;gap:10px}.task-actions-v24{grid-column:2;justify-content:flex-start}.task-secondary-action{padding-left:0;border:0;background:transparent}
  .task-week-grid{grid-template-columns:1fr}.task-week-day{padding:12px}.task-week-row{grid-template-columns:24px 1fr 16px;padding:9px}
  .catalog-intro{display:block}.clean-level-legend{margin-top:10px}.task-catalog-grid{grid-template-columns:1fr}
}


/* =========================================================
   V2.4 FINAL – vollständiger Tätigkeits-Rhythmus-Editor
   ========================================================= */
.recurrence-editor-grid{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.recurrence-box{padding:13px;border:1px solid var(--line);border-radius:13px;background:#f8fafb}
.weekday-picker{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
.weekday-chip,.month-chip{position:relative;cursor:pointer}
.weekday-chip input,.month-chip input{position:absolute;opacity:0;pointer-events:none}
.weekday-chip span,.month-chip span{display:grid;place-items:center;min-width:40px;height:38px;padding:0 9px;border:1px solid var(--line-strong);border-radius:10px;background:#fff;color:#68717a;font-size:12px;font-weight:600;transition:.15s ease}
.weekday-chip input:checked+span,.month-chip input:checked+span{background:#eaf5f8;border-color:#8fc9d6;color:#176f82;box-shadow:inset 0 0 0 1px #8fc9d6}
.month-picker-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-top:7px}
.month-chip span{min-width:0;width:100%}
.rule-mode-row{display:flex;gap:14px;flex-wrap:wrap;margin:8px 0 10px}
.rule-mode-row label{display:flex;align-items:center;gap:6px;font-size:12px;color:#646d75}
.rule-mode-row input{width:auto;min-height:0}
.rule-subfields{display:grid;grid-template-columns:auto minmax(90px,1fr) auto minmax(140px,1fr);gap:8px;align-items:center}
.rule-subfields input,.rule-subfields select{min-width:0}
.recurrence-box small{display:block;margin-top:6px;color:var(--muted)}
.task-editor-modal{max-height:92dvh;overflow-y:auto}
@media(max-width:700px){
  .recurrence-editor-grid{grid-template-columns:1fr}
  .month-picker-grid{grid-template-columns:repeat(4,1fr)}
  .weekday-picker{display:grid;grid-template-columns:repeat(4,1fr)}
  .weekday-chip span{width:100%;min-width:0}
  .rule-mode-row{display:grid;grid-template-columns:1fr}
  .rule-subfields{grid-template-columns:1fr 1fr}
  .task-editor-modal{max-height:92dvh}
}
@media(max-width:390px){
  .month-picker-grid{grid-template-columns:repeat(3,1fr)}
  .weekday-picker{grid-template-columns:repeat(3,1fr)}
}


/* =========================================================
   V2.4.1 – Tätigkeiten Praxis-Hotfix
   ========================================================= */
.task-status-section{margin-top:12px}
.task-status-section+.task-status-section{margin-top:22px}
.task-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 5px 8px}
.task-section-title h3{margin:0;font-size:16px;letter-spacing:.04em;color:#4f565d}
.task-section-title>span{display:grid;place-items:center;min-width:28px;height:25px;padding:0 8px;border-radius:999px;background:#eef3f6;color:#65717b;font-size:11px;font-weight:700}
.completed-section{padding-top:4px;border-top:1px solid var(--line)}
.completed-task-list .task-item-v24{background:#f7faf8;border-color:#dce8e0;opacity:1}
.task-item-v24.done .task-title-line b{text-decoration:line-through;text-decoration-thickness:1.5px;text-decoration-color:#83918a;color:#7e8882}
.task-item-v24.done .task-meta-line,.task-item-v24.done .task-details{opacity:.65}
.task-item-v24.done .task-check-v24{box-shadow:0 0 0 3px rgba(62,148,100,.08)}
.completed-line{font-size:11px;color:#4f7e60;margin-top:7px}
.task-actions-v24{position:relative;align-self:start}
.task-overflow{position:relative}
.task-overflow>summary{list-style:none;width:38px;height:38px;display:grid;place-items:center;border:1px solid transparent;border-radius:10px;color:#737c85;font-size:21px;cursor:pointer;user-select:none}
.task-overflow>summary::-webkit-details-marker{display:none}
.task-overflow>summary:hover,.task-overflow[open]>summary{background:#f3f6f8;border-color:var(--line)}
.task-overflow-menu{position:absolute;z-index:12;top:42px;right:0;width:190px;padding:6px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 35px rgba(20,42,62,.14)}
.task-overflow-menu button{display:block;width:100%;min-height:40px;padding:8px 10px;text-align:left;border:0;background:transparent;border-radius:8px;font-size:12px}
.task-overflow-menu button:hover{background:#f5f7f9}
.task-overflow-menu .danger-text{color:#aa4e4e}
.success-empty{border-color:#dce8e0;background:#f8fbf9;color:#5c7967}
@media(max-width:700px){
  .task-item-v24{grid-template-columns:44px minmax(0,1fr) 38px}
  .task-actions-v24{grid-column:auto}
  .task-overflow-menu{right:0;width:185px}
  .completed-line{line-height:1.45}
}


/* V2.4.2 – reine Wochenvorschau */
.task-week-row.planned{background:#fbfcfd}
.task-week-row.planned small{color:#88929a}


/* =========================================================
   V2.5 – Dashboard Betriebs-Cockpit
   ========================================================= */
.compact-dashboard-hero{min-height:180px}
.dashboard-priority-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:13px 0}
.priority-mini-card{display:block;text-align:left;padding:14px 16px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:var(--shadow-soft);min-height:96px}
.priority-mini-card span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.priority-mini-card strong{display:block;margin:6px 0 2px;font-size:27px;color:var(--lw-blue-dark)}
.priority-mini-card small{color:#7a838b;font-size:11px}
.priority-mini-card.needs-attention{border-color:#e6c79e;background:#fffaf3}
.priority-mini-card.needs-attention strong{color:#a46325}

.dashboard-coverage-weeks{display:grid;gap:13px;margin-bottom:13px}
.dashboard-week-card{margin:0;padding:18px}
.dashboard-week-card.next-week{border-style:dashed}
.coverage-week-heading{margin-bottom:12px}
.coverage-week-days{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}
.coverage-day-cell{padding:10px;border:1px solid var(--line);border-radius:12px;background:#f9fbfc;min-width:0}
.coverage-day-top{display:flex;justify-content:space-between;gap:5px;align-items:baseline}
.coverage-day-top strong{font-size:12px;text-transform:uppercase}
.coverage-day-top span{font-size:10px;color:var(--muted)}
.coverage-day-cell>b{display:block;margin:8px 0 4px;font-size:18px}
.coverage-day-cell small{display:block;font-size:10px;line-height:1.25;color:#75808a;overflow-wrap:anywhere}
.coverage-day-cell.state-ok{border-color:#d8e9df;background:#f5faf7}
.coverage-day-cell.state-ok>b{color:#3e8d5f}
.coverage-day-cell.state-gap{border-color:#edcaca;background:#fff7f7}
.coverage-day-cell.state-gap>b{color:#b95757}
.coverage-day-cell.state-gap small{color:#9d5252}
.coverage-day-cell.state-acknowledged{border-color:#ead9b9;background:#fffaf1}
.coverage-day-cell.state-acknowledged>b{color:#ae7828}

.coverage-week-problem{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:11px;padding:12px 14px;border-radius:12px;background:#fff4f4;border:1px solid #ebcccc}
.coverage-week-problem strong,.coverage-week-calm strong{display:block;font-size:13px}
.coverage-week-problem span,.coverage-week-calm span{display:block;margin-top:2px;font-size:11px;color:#7f6767}
.coverage-week-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.coverage-week-actions button{min-height:38px;padding:7px 10px;font-size:11px}
.coverage-week-calm{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:10px;padding:9px 12px;border-radius:11px;background:#f5faf7;color:#477258}
.coverage-week-calm span{color:#6e8377}
.coverage-week-calm.acknowledged{background:#fffaf2;color:#8a672c}
.coverage-week-calm.acknowledged span{color:#8a7652}

.cockpit-main-grid{margin-top:0}
.compact-shift-list .shift-card,.compact-shift-list .shift{margin-bottom:8px}
.dashboard-management-stack{display:grid;gap:13px;margin-top:13px}
.dashboard-management-stack .dashboard-panel{margin:0}
.dashboard-done-mini{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.dashboard-done-mini span{padding:5px 8px;border-radius:999px;background:#f2f8f4;color:#5d8069;font-size:10px}
.dashboard-system-notice{margin:13px 0 0;padding:10px 13px;border-radius:11px;border:1px solid #ead9b9;background:#fffaf1;color:#79643e;font-size:11px}
.dashboard-system-notice button{padding:0;margin-left:5px;border:0;background:transparent;color:var(--lw-blue);text-decoration:underline;min-height:0}

@media(max-width:900px){
  .coverage-week-days{grid-template-columns:repeat(5,minmax(92px,1fr));overflow-x:auto;padding-bottom:4px}
  .coverage-day-cell{min-width:92px}
}
@media(max-width:650px){
  .compact-dashboard-hero{min-height:auto}
  .dashboard-priority-strip{grid-template-columns:1fr 1fr}
  .priority-mini-card:nth-child(3){grid-column:1/-1}
  .priority-mini-card{min-height:88px;padding:12px 13px}
  .priority-mini-card strong{font-size:24px}
  .dashboard-week-card{padding:15px}
  .coverage-week-days{display:flex;overflow-x:auto;scroll-snap-type:x proximity}
  .coverage-day-cell{flex:0 0 112px;scroll-snap-align:start}
  .coverage-week-problem{align-items:flex-start;flex-direction:column}
  .coverage-week-actions{width:100%;justify-content:flex-start}
  .coverage-week-actions button{flex:1}
}


/* =========================================================
   V2.5.2 – Dashboard Loading & Performance
   ========================================================= */
.dashboard-skeleton-card{
  min-height:220px;
  overflow:hidden;
  position:relative;
}
.dashboard-skeleton-card:after,
.dashboard-inline-skeleton:after{
  content:"";
  position:absolute;
  inset:0;
  transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.72),transparent);
  animation:dashboardShimmer 1.25s infinite;
  pointer-events:none;
}
.skeleton-line{height:12px;border-radius:999px;background:#edf1f4;margin-bottom:10px}
.skeleton-kicker{width:115px;height:9px}
.skeleton-title{width:190px;height:24px;margin-bottom:24px}
.skeleton-status{width:72%;height:36px;margin-top:16px}
.skeleton-days{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.skeleton-days i{display:block;height:86px;border-radius:12px;background:#edf1f4}
.dashboard-inline-skeleton{position:relative;display:grid;gap:8px;overflow:hidden;min-height:112px}
.dashboard-inline-skeleton i{display:block;height:50px;border-radius:11px;background:#edf1f4}
.dashboard-loading-shell{min-height:220px}
@keyframes dashboardShimmer{100%{transform:translateX(100%)}}
@media(max-width:650px){
  .dashboard-skeleton-card{min-height:245px}
  .skeleton-days{display:flex;overflow:hidden}
  .skeleton-days i{flex:0 0 112px}
}
@media(prefers-reduced-motion:reduce){
  .dashboard-skeleton-card:after,.dashboard-inline-skeleton:after{animation:none}
}


/* =========================================================
   V2.5.3 – Fast Dashboard + echte horizontale Wochenleiste
   ========================================================= */
.coverage-week-days{
  display:flex!important;
  gap:8px;
  width:100%;
  max-width:100%;
  overflow-x:auto!important;
  overflow-y:hidden;
  padding:2px 2px 10px;
  scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-x:contain;
  touch-action:pan-x;
  scrollbar-width:thin;
}
.coverage-day-cell{
  flex:0 0 clamp(112px,22vw,145px)!important;
  min-width:112px!important;
  scroll-snap-align:start;
}
.coverage-day-cell.state-no_rule{
  border-color:#e2e6e9;
  background:#f7f8f9;
  color:#8a9299;
}
.coverage-day-cell.state-no_rule>b{color:#a1a8ae}
.coverage-day-cell.state-no_rule small{color:#92999f}
.dashboard-week-card{
  min-width:0;
  overflow:hidden;
}
.dashboard-week-card .sectionhead,
.coverage-week-problem,
.coverage-week-calm{
  max-width:100%;
}
.dashboard-loading-shell{
  min-height:235px;
}
.skeleton-days{
  display:flex!important;
  gap:8px;
  overflow:hidden;
}
.skeleton-days i{
  flex:0 0 clamp(112px,22vw,145px)!important;
}
.dashboard-week-error{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  min-height:80px;
}
@media(max-width:650px){
  .coverage-day-cell{flex-basis:118px!important}
  .coverage-week-days{margin-right:-4px}
}

/* V2.5.4 – Abwesenheiten Jahresansicht */
.absence-year-head{align-items:center}
.absence-year-controls{display:grid;grid-template-columns:42px minmax(62px,auto) 42px;align-items:center;gap:7px}
.absence-year-controls button{height:40px;padding:0}.absence-year-controls strong{text-align:center;color:var(--lw-blue-dark)}
.absence-employee-filter{display:grid;grid-template-columns:auto minmax(180px,300px);align-items:center;gap:10px;margin:0 0 14px;padding:10px 12px;border-radius:11px;background:#f7f9fa}
.absence-employee-filter label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.absence-year-summary{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}
.absence-year-summary span{padding:5px 8px;border-radius:999px;background:#f2f6f8;color:#66717a;font-size:10px}
@media(max-width:650px){.absence-year-head{display:block}.absence-year-controls{margin-top:10px;width:100%;grid-template-columns:46px 1fr 46px}.absence-employee-filter{grid-template-columns:1fr}.absence-employee-filter select{width:100%}}














/* ===== LEOS STATIC RESPONSIVE 2308 START ===== */

.sidebar-brand img,
.authbrand img {
  object-fit: contain !important;
}
.sidebar-brand img {
  content: url("/static/brand/logos/leos-sidebar.png?v=2308");
}

/* Desktop / Windows PWA */
@media (min-width: 901px) {
  html, body {
    height: 100%;
    overflow: hidden !important;
  }

  #appShell.app:not(.hidden) {
    display: grid !important;
    grid-template-columns: 250px minmax(0, 1fr) !important;
    height: 100dvh !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  #appShell.app:not(.hidden) > .sidebar {
    position: relative !important;
    inset: auto !important;
    width: 250px !important;
    height: 100dvh !important;
    min-height: 0 !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    border-right: 1px solid var(--line);
  }

  .sidebar-brand {
    flex: 0 0 auto !important;
    min-height: 176px !important;
    padding: 10px 12px 6px !important;
  }

  .sidebar-brand img {
    width: 140px !important;
    height: 140px !important;
    max-width: 72% !important;
    max-height: 140px !important;
    margin: 0 auto 2px !important;
  }

  #mainNav {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-y: contain !important;
    scrollbar-gutter: stable;
    padding-bottom: 10px !important;
  }

  .sidebar > #mainNav ~ * {
    flex: 0 0 auto !important;
    position: static !important;
    transform: none !important;
  }

  #appShell.app:not(.hidden) > #mainContent {
    width: auto !important;
    min-width: 0 !important;
    height: 100dvh !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-y: contain !important;
  }

  #mainContent > section:not(.hidden),
  #mainContent .card,
  #mainContent [class*="grid"] {
    min-width: 0 !important;
    max-width: 100%;
  }

  .hero-card h1,
  .dashboard-hero h1 {
    font-size: clamp(42px, 5vw, 72px) !important;
    line-height: 1.03 !important;
    overflow-wrap: anywhere;
  }
}

/* Mobile portrait: preserve existing working drawer behavior */
@media (max-width: 900px) and (orientation: portrait) {
  #appShell.app:not(.hidden) > .sidebar {
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-y: contain !important;
    touch-action: pan-y !important;
  }
}

/* Android landscape / small window */
@media (max-width: 900px) and (orientation: landscape) {
  html, body {
    height: 100%;
    overflow: hidden !important;
  }

  #appShell.app:not(.hidden) {
    height: 100dvh !important;
    min-height: 0 !important;
  }

  #appShell.app:not(.hidden) > .sidebar {
    height: 100dvh !important;
    max-height: 100dvh !important;
    min-height: 0 !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    padding-bottom: max(6px, env(safe-area-inset-bottom)) !important;
  }

  .sidebar-brand {
    flex: 0 0 auto !important;
    min-height: 96px !important;
    padding: 3px 8px 1px !important;
  }

  .sidebar-brand img {
    width: 76px !important;
    height: 76px !important;
    max-width: 58% !important;
    max-height: 76px !important;
    margin: 0 auto !important;
  }

  .sidebar-brand .os-chip {
    margin: 0 auto 2px !important;
    transform: scale(.82);
    transform-origin: center top;
  }

  #mainNav {
    display: block !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: auto !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-y: contain !important;
    touch-action: pan-y !important;
    padding-bottom: 8px !important;
  }

  .sidebar > #mainNav ~ * {
    flex: 0 0 auto !important;
    position: static !important;
    transform: none !important;
    margin-top: 0 !important;
  }

  #mainNav .nav-group,
  #mainNav .nav-home-block,
  #mainNav .nav-group-items,
  #mainNav .nav-primary-item,
  #mainNav .nav-settings-group {
    position: static !important;
    min-height: 0 !important;
  }

  #mainNav .nav-group-items {
    overflow: visible !important;
  }

  #mainNav button {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    min-height: 40px !important;
    margin: 0 !important;
    transform: none !important;
  }

  #appShell.app:not(.hidden) > #mainContent {
    min-width: 0 !important;
    width: 100% !important;
    height: 100dvh !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    padding-bottom: calc(16px + env(safe-area-inset-bottom)) !important;
  }

  #mainContent > section:not(.hidden),
  #mainContent .card,
  #mainContent [class*="grid"] {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .hero-card,
  .dashboard-hero {
    min-height: 0 !important;
  }

  .hero-card h1,
  .dashboard-hero h1 {
    font-size: clamp(32px, 5vw, 50px) !important;
    line-height: 1.03 !important;
    overflow-wrap: anywhere;
  }
}

@media (max-width: 900px) and (orientation: landscape) and (max-height: 520px) {
  .sidebar-brand {
    min-height: 82px !important;
  }
  .sidebar-brand img {
    width: 62px !important;
    height: 62px !important;
    max-height: 62px !important;
  }
  #mainNav button {
    min-height: 36px !important;
  }
}

/* ===== LEOS STATIC RESPONSIVE 2308 END ===== */


/* ===== LEOS HEADER 2309 START ===== */
/* Restore the approved horizontal LEOS lockup in the top header only.
   Do not touch sidebar, icons or responsive layout. */
.mobile-header img {
  content: url("/static/brand/logos/leos-header-horizontal.png?v=2309") !important;
  display: block !important;
  width: 185px !important;
  max-width: 42vw !important;
  height: 46px !important;
  max-height: 46px !important;
  object-fit: contain !important;
  object-position: left center !important;
  margin: 0 !important;
}

@media (orientation: landscape) and (max-width: 900px) {
  .mobile-header img {
    width: 170px !important;
    max-width: 34vw !important;
    height: 38px !important;
    max-height: 38px !important;
  }
}
/* ===== LEOS HEADER 2309 END ===== */







/* ===== LEOS LIGHT REFINE 2312 START ===== */

:root {
  --leos-offwhite: #f2f5f4;
  --leos-offwhite-2: #f7f9f8;
  --leos-card: #fbfcfb;
  --leos-border: #d7e4e7;
  --leos-border-strong: #bfd7dc;
  --leos-navy: #12375a;
  --leos-navy-deep: #0d2a46;
  --leos-teal: #1695a7;
  --leos-teal-bright: #2bb6c4;
  --leos-text: #34434d;
  --leos-muted: #75848c;
  --leos-shadow: 0 10px 28px rgba(18,55,90,.07);

  --text: var(--leos-text);
  --muted: var(--leos-muted);
  --line: var(--leos-border);
  --line-strong: var(--leos-border-strong);
  --lw-cyan: var(--leos-teal);
  --lw-blue: var(--leos-navy);
  --lw-blue-dark: var(--leos-navy-deep);
  --shadow-soft: var(--leos-shadow);
}

html,
body {
  background: var(--leos-offwhite) !important;
  color: var(--leos-text) !important;
  color-scheme: light;
}

body {
  background:
    radial-gradient(circle at 88% 7%, rgba(22,149,167,.055), transparent 30rem),
    linear-gradient(145deg, #edf2f2, var(--leos-offwhite)) !important;
}

.mobile-header img {
  content: url("/static/brand/logos/leos-header-original.png?v=2313") !important;
  background: transparent !important;
  box-shadow: none !important;
}

.sidebar-brand img {
  content: url("/static/brand/logos/leos-sidebar-original.png?v=2313") !important;
  background: transparent !important;
  box-shadow: none !important;
}

.sidebar {
  background: linear-gradient(180deg, #f7faf9, #eef5f6) !important;
  border-right-color: var(--leos-border) !important;
  color: var(--leos-text) !important;
}

.mobile-header {
  background: rgba(247,249,248,.97) !important;
  border-bottom-color: var(--leos-border) !important;
  box-shadow: 0 6px 20px rgba(18,55,90,.05);
}

.card,
.kpi,
.hero-card,
.dashboard-hero,
.coverage-banner,
.dashboard-panel,
.schedule-toolbar-card,
.team-card,
.profile-metrics > div,
#mainContent .compact-kpis > * {
  background: linear-gradient(145deg, var(--leos-card), #f6f9f8) !important;
  color: var(--leos-text) !important;
  border-color: var(--leos-border) !important;
  box-shadow: var(--leos-shadow) !important;
}

.hero-card,
.dashboard-hero {
  background:
    radial-gradient(circle at 92% 18%, rgba(22,149,167,.07), transparent 18rem),
    linear-gradient(145deg, #f9fbfa, #eef5f6) !important;
}

.card:hover,
.team-card:hover {
  border-color: rgba(22,149,167,.25) !important;
}

h1,
h2,
h3,
.hero-card h1,
.dashboard-hero h1,
.sectionhead h2,
.team-card-copy h3 {
  color: #34414a !important;
}

p,
small,
.lead,
.kpi small,
.sectionhead p,
.task-copy span,
.forecast-row span,
.action-row span {
  color: var(--leos-muted) !important;
}

.kpi strong,
.task-summary strong,
.profile-metrics strong {
  color: var(--leos-navy) !important;
}

.sidebar nav button {
  color: #596a74 !important;
  background: transparent !important;
  border-color: transparent !important;
}

.sidebar nav button:hover {
  background: rgba(22,149,167,.07) !important;
  color: var(--leos-navy) !important;
  border-color: rgba(22,149,167,.10) !important;
}

.sidebar nav button.active {
  background: linear-gradient(90deg, rgba(22,149,167,.12), rgba(18,55,90,.055)) !important;
  color: var(--leos-navy) !important;
  border-color: rgba(22,149,167,.20) !important;
  box-shadow: inset 3px 0 0 var(--leos-teal-bright) !important;
}

.nav-icon,
.nav-chevron,
.sidebar nav button.active .nav-icon {
  color: var(--leos-teal) !important;
}

.nav-divider {
  background: var(--leos-border) !important;
  border-color: var(--leos-border) !important;
}

#mainContent .week > *,
#mainContent .day,
#mainContent [class*="day-card"] {
  background: #f6f9f8 !important;
  border-color: var(--leos-border) !important;
  color: var(--leos-text) !important;
}

#mainContent .week > *.ok,
#mainContent .day.ok,
#mainContent [class*="day-card"].ok {
  background: #edf7f1 !important;
  border-color: #c7e2d2 !important;
}

#mainContent .week > *.warning,
#mainContent .day.warning,
#mainContent [class*="day-card"].warning {
  background: #faf5e9 !important;
  border-color: #e7d7b3 !important;
}

#mainContent .week > *.critical,
#mainContent .day.critical,
#mainContent [class*="day-card"].critical {
  background: #f9eeee !important;
  border-color: #e9caca !important;
}

input,
select,
textarea {
  background: #fbfcfb !important;
  color: var(--leos-text) !important;
  border-color: var(--leos-border-strong) !important;
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--leos-teal) !important;
  box-shadow: 0 0 0 3px rgba(22,149,167,.09) !important;
}

.mobile-header .icon-btn,
.icon-btn,
.sidebar > #mainNav ~ * button {
  background: #f7f9f8 !important;
  color: #566770 !important;
  border-color: var(--leos-border-strong) !important;
}

button.primary,
.primary,
.install-btn {
  background: linear-gradient(135deg, var(--leos-teal), #267da0) !important;
  color: #ffffff !important;
  border-color: rgba(22,149,167,.30) !important;
}

.sidebar > #mainNav ~ * {
  background: transparent !important;
  color: var(--leos-muted) !important;
  border-color: var(--leos-border) !important;
}

.sidebar,
#mainNav,
#mainContent,
.tableScroll,
.auditwrap {
  scrollbar-color: rgba(22,149,167,.42) rgba(215,228,231,.50);
  scrollbar-width: thin;
}

/* Keep edge-to-edge fill, now in the light/off-white theme. */
@media (max-width: 900px) {
  html,
  body,
  #appShell {
    background: var(--leos-offwhite) !important;
  }

  .mobile-header {
    padding-left: max(14px, env(safe-area-inset-left)) !important;
    padding-right: max(14px, env(safe-area-inset-right)) !important;
  }

  #mainContent {
    padding-left: max(16px, env(safe-area-inset-left)) !important;
    padding-right: max(16px, env(safe-area-inset-right)) !important;
  }
}

@media (max-width: 900px) and (orientation: landscape) {
  html,
  body,
  #appShell,
  #mainContent {
    background: var(--leos-offwhite) !important;
  }

  #appShell.app:not(.hidden) > .sidebar {
    padding-left: max(8px, env(safe-area-inset-left)) !important;
  }

  #appShell.app:not(.hidden) > #mainContent {
    padding-right: max(16px, env(safe-area-inset-right)) !important;
  }
}

/* ===== LEOS LIGHT REFINE 2312 END ===== */



/* ===== LEO V1 ALPHA STYLES START ===== */
.nav-leo {
  margin-top: 7px !important;
  border: 1px solid rgba(22,149,167,.28) !important;
  background: linear-gradient(90deg, rgba(22,149,167,.11), rgba(18,55,90,.045)) !important;
  color: var(--leos-navy, #12375a) !important;
  position: relative;
}
.nav-leo:hover {
  background: linear-gradient(90deg, rgba(22,149,167,.16), rgba(18,55,90,.075)) !important;
  border-color: rgba(22,149,167,.38) !important;
}
.nav-leo.active {
  background: linear-gradient(90deg, rgba(22,149,167,.18), rgba(18,55,90,.08)) !important;
  border-color: rgba(22,149,167,.42) !important;
  box-shadow: inset 3px 0 0 var(--leos-teal-bright, #2bb6c4), 0 6px 18px rgba(18,55,90,.06) !important;
}
.leo-nav-icon { color: var(--leos-teal, #1695a7) !important; }
.leo-nav-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  line-height: 1.05;
}
.leo-nav-copy b { font-size: 14px; letter-spacing: .08em; }
.leo-nav-copy small {
  margin: 3px 0 0 !important;
  font-size: 8px !important;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #77929b !important;
}
.leo-alpha-pill {
  margin-left: auto;
  padding: 2px 6px;
  border-radius: 999px;
  background: rgba(22,149,167,.10);
  color: #14879a;
  font-size: 7px;
  letter-spacing: .08em;
  font-weight: 700;
}
.leo-page { max-width: 1180px; margin: 0 auto; }
.leo-shell { display: grid; gap: 14px; }
.leo-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 25px 28px;
  overflow: hidden;
  position: relative;
}
.leo-hero::after {
  content: "";
  position: absolute;
  width: 340px;
  height: 340px;
  right: -160px;
  top: -190px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(22,149,167,.12), transparent 68%);
  pointer-events: none;
}
.leo-eyebrow { color: var(--leos-teal, #1695a7) !important; }
.leo-hero h1 {
  margin: 3px 0 7px;
  font-size: clamp(32px, 5vw, 54px);
  line-height: 1.05;
}
.leo-hero p { max-width: 700px; margin: 0; }
.leo-status {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  flex: 0 0 auto;
  padding: 7px 10px;
  border: 1px solid rgba(22,149,167,.18);
  border-radius: 999px;
  background: rgba(22,149,167,.055);
  color: #60757e;
  font-size: 10px;
  letter-spacing: .04em;
  white-space: nowrap;
}
.leo-status-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #55b987;
  box-shadow: 0 0 0 4px rgba(85,185,135,.10);
}
.leo-chat-card {
  min-height: 530px;
  padding: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.leo-messages {
  flex: 1 1 auto;
  min-height: 330px;
  max-height: 56vh;
  overflow-y: auto;
  padding: 24px 24px 12px;
  scroll-behavior: smooth;
}
.leo-message {
  display: flex;
  gap: 10px;
  margin: 0 0 15px;
  align-items: flex-start;
}
.leo-message-user { justify-content: flex-end; }
.leo-message-user .leo-bubble {
  order: 1;
  background: linear-gradient(135deg, rgba(22,149,167,.12), rgba(18,55,90,.055));
  border-color: rgba(22,149,167,.22);
}
.leo-avatar {
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: linear-gradient(145deg, #e8f5f6, #eaf0f5);
  border: 1px solid #d1e3e6;
  color: #117f91;
  font-family: "Hightower Text", Georgia, serif;
  font-weight: 700;
}
.leo-bubble {
  max-width: min(760px, 82%);
  padding: 11px 13px;
  border-radius: 15px;
  background: #f8faf9;
  border: 1px solid #dce7e8;
  color: #40515a;
  box-shadow: 0 5px 16px rgba(18,55,90,.045);
}
.leo-bubble b {
  display: block;
  margin-bottom: 3px;
  color: #12375a;
  font-size: 11px;
  letter-spacing: .08em;
}
.leo-bubble p { margin: 0; white-space: pre-wrap; line-height: 1.55; }
.leo-typing { opacity: .7; }
.leo-suggestions {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  padding: 8px 20px 10px;
}
.leo-prompt-chip {
  min-height: 34px !important;
  padding: 6px 10px !important;
  border: 1px solid #d6e5e7 !important;
  border-radius: 999px !important;
  background: #f4f8f7 !important;
  color: #57717b !important;
  font-size: 10px !important;
  width: auto !important;
}
.leo-prompt-chip:hover {
  background: #eaf5f5 !important;
  color: #12375a !important;
  border-color: rgba(22,149,167,.24) !important;
}
.leo-composer {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 9px;
  padding: 12px 16px 8px;
  border-top: 1px solid #dbe5e7;
  background: rgba(246,249,248,.88);
}
#leoInput {
  min-height: 46px !important;
  max-height: 140px;
  resize: vertical;
  border-radius: 14px;
  padding: 12px 13px;
}
.leo-send-btn {
  align-self: end;
  min-height: 46px !important;
  padding: 10px 15px !important;
  border-radius: 13px !important;
  display: inline-flex;
  align-items: center;
  gap: 7px;
}
.leo-send-btn svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
}
.leo-footnote {
  padding: 0 18px 12px;
  color: #8a999f;
  font-size: 9px;
  text-align: center;
}
@media (max-width: 700px) {
  .leo-hero { padding: 20px 18px; flex-direction: column; gap: 11px; }
  .leo-hero h1 { font-size: 35px; }
  .leo-status { align-self: flex-start; }
  .leo-chat-card { min-height: 520px; }
  .leo-messages { padding: 18px 14px 9px; max-height: 55vh; }
  .leo-bubble { max-width: 88%; }
  .leo-suggestions { padding-left: 14px; padding-right: 14px; }
  .leo-composer { padding-left: 12px; padding-right: 12px; }
  .leo-send-btn span { display: none; }
  .leo-send-btn { width: 48px !important; justify-content: center; padding: 8px !important; }
}
/* ===== LEO V1 ALPHA STYLES END ===== */


/* ===== LEO V1.1 STYLES START ===== */
.leo-status-dot.leo-status-warn {
  background: #d9a64a !important;
  box-shadow: 0 0 0 4px rgba(217,166,74,.12) !important;
}
.leo-answer-meta {
  display: block !important;
  margin-top: 7px !important;
  color: #8a9aa1 !important;
  font-size: 8px !important;
  letter-spacing: .03em;
}
.leo-footnote { line-height: 1.5; }
/* ===== LEO V1.1 STYLES END ===== */















/* ===== LEO 2.0 OPERATOR STYLES START ===== */
.leo-composer {
  grid-template-columns: minmax(0,1fr) auto auto !important;
}

.leo-mic-btn {
  align-self: end;
  display: grid !important;
  place-items: center;
  width: 46px !important;
  min-width: 46px !important;
  height: 46px !important;
  min-height: 46px !important;
  padding: 0 !important;
  border-radius: 13px !important;
  border: 1px solid #bfd7dc !important;
  background: #f5f8f7 !important;
  color: #1695a7 !important;
}

.leo-mic-btn svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.leo-mic-btn.listening {
  background: rgba(22,149,167,.13) !important;
  border-color: #1695a7 !important;
  box-shadow: 0 0 0 4px rgba(22,149,167,.10);
}

.leo-mic-btn.unsupported {
  opacity: .55;
}

.leo-action-row {
  display: flex;
  margin: 3px 0 20px 42px;
}

.leo-action-card {
  width: min(700px, 92%);
  padding: 15px;
  border: 1px solid rgba(22,149,167,.30);
  border-radius: 17px;
  background: linear-gradient(145deg, #edf7f7, #f9fbfa);
  box-shadow: 0 10px 28px rgba(18,55,90,.07);
}

.leo-action-card.destructive {
  border-color: #dfc2bc;
  background: linear-gradient(145deg, #fbf3f1, #fbfaf8);
}

.leo-action-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 9px;
}

.leo-action-head strong {
  color: #12375a;
  font-size: 14px;
}

.leo-action-badge {
  padding: 3px 7px;
  border-radius: 999px;
  background: rgba(22,149,167,.11);
  color: #14879a;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .08em;
}

.leo-action-card.destructive .leo-action-badge {
  color: #a85648;
  background: #f4dfdb;
}

.leo-action-preview {
  white-space: pre-line;
  padding: 9px 11px;
  margin-bottom: 10px;
  border-radius: 11px;
  background: rgba(255,255,255,.58);
  border: 1px solid #d5e4e6;
  color: #455a64;
  line-height: 1.5;
  font-size: 12px;
}

.leo-action-diff {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 9px;
}

.leo-action-snapshot {
  min-width: 0;
  padding: 10px;
  border: 1px solid #dbe6e8;
  border-radius: 12px;
  background: rgba(255,255,255,.52);
}

.leo-action-snapshot-title {
  display: block;
  margin-bottom: 7px;
  color: #7a8b92;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.leo-action-field {
  display: grid;
  grid-template-columns: minmax(78px,.8fr) minmax(0,1.2fr);
  gap: 7px;
  padding: 4px 0;
  border-bottom: 1px solid rgba(216,228,230,.7);
}

.leo-action-field:last-child {
  border-bottom: 0;
}

.leo-action-field span {
  color: #8a989e;
  font-size: 9px;
}

.leo-action-field strong {
  overflow-wrap: anywhere;
  color: #475961;
  font-size: 10px;
  font-weight: 600;
}

.leo-action-empty {
  color: #8b999f;
  font-size: 10px;
}

.leo-action-warning {
  margin-top: 9px;
  padding: 8px 10px;
  border-radius: 10px;
  background: #faf5e9;
  border: 1px solid #e7d7b3;
  color: #8a6a2a;
  font-size: 10px;
  line-height: 1.45;
}

.leo-action-expiry {
  display: block !important;
  margin: 9px 0 0 !important;
  color: #99a4a9 !important;
  font-size: 8px !important;
}

.leo-action-buttons {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 11px;
}

.leo-action-buttons button {
  width: auto !important;
  min-height: 39px !important;
  padding: 7px 13px !important;
  border-radius: 10px !important;
}

.leo-action-cancel {
  background: #f7f9f8 !important;
  color: #65757d !important;
  border: 1px solid #cddcdf !important;
}

.leo-action-confirm-danger {
  background: #9f5448 !important;
  color: #fff !important;
  border: 1px solid #9f5448 !important;
}

.leo-action-processing {
  opacity: .62;
}

.leo-action-completed {
  border-color: #bcdccb;
  background: #eef8f2;
}

.leo-action-cancelled {
  opacity: .68;
  filter: grayscale(.08);
}

.leo-action-state {
  margin-top: 9px;
  color: #3f9468;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .09em;
}

.leo-action-cancelled .leo-action-state {
  color: #8a969c;
}



.leo-action-failed {
  border-color: #d7b59f;
  background: #fbf3ed;
}

.leo-action-state-failed {
  color: #9a5a32 !important;
}

@media (max-width: 700px) {
  .leo-mic-btn {
    width: 48px !important;
    min-width: 48px !important;
    height: 48px !important;
    min-height: 48px !important;
  }

  .leo-action-row {
    margin-left: 0;
  }

  .leo-action-card {
    width: 100%;
  }

  .leo-action-diff {
    grid-template-columns: 1fr;
  }

  .leo-action-buttons {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .leo-action-buttons button {
    width: 100% !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .leo-mic-btn,
  .leo-action-card {
    transition: none !important;
  }
}
/* ===== LEO 2.0 OPERATOR STYLES END ===== */



/* ===== LEOS TASK CATALOG V2 STYLES START ===== */
.leo-catalog-v2-hidden {
  display: none !important;
}

.leo-task-catalog-v2 {
  margin-top: 18px;
}

.leo-catalog-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}

.leo-catalog-summary span {
  display: inline-flex;
  align-items: baseline;
  gap: 5px;
  padding: 7px 10px;
  border: 1px solid #dbe5e7;
  border-radius: 999px;
  background: rgba(255,255,255,.68);
  color: #718087;
  font-size: 10px;
}

.leo-catalog-summary strong {
  color: #12375a;
  font-size: 14px;
}

.leo-catalog-toolbar {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 10px;
  align-items: end;
  padding: 14px;
  border: 1px solid #d9e4e6;
  border-radius: 15px;
  background: rgba(255,255,255,.72);
  box-shadow: 0 5px 20px rgba(20,50,70,.045);
}

.leo-catalog-search {
  display: grid;
  gap: 5px;
}

.leo-catalog-search > span,
.leo-catalog-filter-panel label {
  color: #7b898f;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.leo-catalog-search input,
.leo-catalog-toolbar select,
.leo-catalog-filter-panel select {
  width: 100%;
  min-height: 42px;
  border: 1px solid #ccdadd;
  border-radius: 11px;
  background: #fbfcfb;
  color: #42545c;
  padding: 8px 11px;
  font: inherit;
  outline: none;
}

.leo-catalog-search input:focus,
.leo-catalog-toolbar select:focus,
.leo-catalog-filter-panel select:focus {
  border-color: #2aa2b2;
  box-shadow: 0 0 0 3px rgba(42,162,178,.09);
}

.leo-catalog-toolbar-actions {
  display: flex;
  gap: 7px;
}

.leo-catalog-toolbar-actions button,
.leo-catalog-toolbar-actions select {
  width: auto;
}

.leo-catalog-filter-panel {
  display: none;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 9px;
  margin: 10px 0 0;
  padding: 13px;
  border: 1px solid #dce6e7;
  border-radius: 14px;
  background: rgba(247,250,249,.9);
}

.leo-catalog-filter-panel.open {
  display: grid;
}

.leo-catalog-filter-panel label {
  display: grid;
  gap: 5px;
}

.leo-catalog-filter-panel button {
  align-self: end;
  min-height: 42px;
}

.leo-catalog-result-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
  margin: 15px 2px 9px;
}

.leo-catalog-result-head b {
  color: #43545c;
  font-size: 13px;
}

.leo-catalog-result-head span {
  color: #89969b;
  font-size: 9px;
  text-align: right;
}

.leo-catalog-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 11px;
}

.leo-catalog-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 10px;
  padding: 15px;
  border: 1px solid #dbe5e7;
  border-radius: 15px;
  background: rgba(255,255,255,.78);
  box-shadow: 0 6px 20px rgba(25,50,70,.045);
}

.leo-catalog-card.paused {
  opacity: .68;
}

.leo-catalog-card-top {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: flex-start;
}

.leo-catalog-title-row {
  display: flex;
  gap: 8px;
  align-items: flex-start;
}

.leo-catalog-title-row h3 {
  margin: 0;
  color: #43525a;
  font-size: 15px;
  line-height: 1.28;
}

.leo-catalog-level {
  display: grid;
  place-items: center;
  flex: 0 0 25px;
  width: 25px;
  height: 25px;
  border-radius: 8px;
  font-size: 10px;
  font-weight: 700;
}

.leo-catalog-level.level-1 {
  background: #eef9fa;
  color: #21899a;
  border: 1px solid #cbe6ea;
}

.leo-catalog-level.level-2 {
  background: #f0f5fa;
  color: #365d86;
  border: 1px solid #d1deeb;
}

.leo-catalog-level.level-3 {
  background: #f6f0f8;
  color: #745d87;
  border: 1px solid #e3d7e8;
}

.leo-catalog-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 5px;
}

.leo-catalog-meta span {
  color: #839097;
  font-size: 9px;
}

.leo-catalog-status {
  flex: 0 0 auto;
  padding: 4px 7px;
  border-radius: 999px;
  font-size: 8px;
  font-weight: 700;
}

.leo-catalog-status.active {
  background: #edf7f2;
  color: #4d8b6c;
}

.leo-catalog-status.paused {
  background: #f0f2f3;
  color: #899298;
}

.leo-catalog-schedule {
  padding: 7px 9px;
  border-radius: 9px;
  background: linear-gradient(90deg,rgba(42,162,178,.09),rgba(18,55,90,.035));
  color: #255770;
  font-size: 10px;
  font-weight: 600;
}

.leo-catalog-card p {
  margin: 0;
  color: #6c787e;
  font-size: 10px;
  line-height: 1.45;
}

.leo-catalog-card p.muted {
  color: #9aa3a7;
}

.leo-catalog-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.leo-catalog-tags span {
  padding: 4px 7px;
  border-radius: 999px;
  background: #f1f5f5;
  color: #75848a;
  font-size: 8px;
}

.leo-catalog-card-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: auto;
}

.leo-catalog-card-actions button {
  min-height: 34px !important;
  padding: 5px 10px !important;
  font-size: 10px;
}

.leo-catalog-loading,
.leo-catalog-error,
.leo-catalog-empty {
  grid-column: 1 / -1;
  padding: 30px 18px;
  border: 1px dashed #d5e0e2;
  border-radius: 14px;
  text-align: center;
  color: #839096;
  background: rgba(255,255,255,.45);
  font-size: 11px;
}

.leo-catalog-error {
  color: #9a5e53;
  border-color: #e2cbc6;
  background: #fbf5f2;
}

.leo-catalog-dialog-backdrop {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(13,32,47,.34);
  backdrop-filter: blur(4px);
}

.leo-catalog-dialog-backdrop[hidden] {
  display: none;
}

.leo-catalog-dialog {
  position: relative;
  width: min(660px,100%);
  max-height: min(88dvh,760px);
  overflow-y: auto;
  padding: 20px;
  border: 1px solid #d6e2e4;
  border-radius: 18px;
  background: #f7f9f8;
  box-shadow: 0 28px 80px rgba(20,40,60,.22);
}

.leo-catalog-dialog-close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 38px !important;
  min-height: 38px !important;
  padding: 0 !important;
  border-radius: 10px !important;
  font-size: 22px;
}

.leo-catalog-dialog-head {
  padding-right: 48px;
}

.leo-catalog-dialog-head .eyebrow {
  color: #2698a8;
  font-size: 9px;
  letter-spacing: .13em;
}

.leo-catalog-dialog-head h2 {
  margin: 4px 0 0;
  color: #3f5057;
  font-size: 23px;
}

.leo-catalog-detail-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 8px;
  margin: 18px 0;
}

.leo-catalog-detail-grid > div {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 9px 10px;
  border-radius: 10px;
  border: 1px solid #e0e8e9;
  background: rgba(255,255,255,.62);
}

.leo-catalog-detail-grid span {
  color: #879399;
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.leo-catalog-detail-grid strong {
  color: #4b5d64;
  font-size: 11px;
}

.leo-catalog-dialog-section {
  margin-top: 16px;
}

.leo-catalog-dialog-section h3 {
  margin: 0 0 7px;
  color: #4a5a61;
  font-size: 12px;
}

.leo-catalog-dialog-section p {
  margin: 0;
  color: #68767c;
  font-size: 11px;
  line-height: 1.55;
}

.leo-catalog-next-dates {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.leo-catalog-next-dates span {
  padding: 6px 8px;
  border-radius: 9px;
  background: #eef6f6;
  border: 1px solid #d4e7e8;
  color: #3c6873;
  font-size: 9px;
}

@media (max-width: 850px) {
  .leo-catalog-grid {
    grid-template-columns: 1fr;
  }

  .leo-catalog-filter-panel {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
}

@media (max-width: 620px) {
  .leo-catalog-toolbar {
    grid-template-columns: 1fr;
  }

  .leo-catalog-toolbar-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .leo-catalog-toolbar-actions button,
  .leo-catalog-toolbar-actions select {
    width: 100%;
  }

  .leo-catalog-filter-panel {
    grid-template-columns: 1fr;
  }

  .leo-catalog-result-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .leo-catalog-result-head span {
    text-align: left;
  }

  .leo-catalog-detail-grid {
    grid-template-columns: 1fr;
  }

  .leo-catalog-dialog {
    padding: 17px;
  }
}

.leo-catalog-card-actions {
  gap: 7px;
}

.leo-catalog-toggle.activate {
  border-color: #bcdccb !important;
  background: #eff8f3 !important;
  color: #4b8969 !important;
}

.leo-catalog-toggle.pause {
  color: #738188 !important;
}

.leo-catalog-toggle:disabled {
  opacity: .55;
  cursor: wait;
}

/* ===== LEOS TASK CATALOG V2 STYLES END ===== */

/* ===== LEO BUILDER 0.2 WORKSPACE CODER STYLES START ===== */
.nav-builder {
  position: relative;
}

.nav-builder .builder-nav-icon {
  color: #1594a6;
}

.builder-page {
  min-width: 0;
}

.builder-shell {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.builder-hero {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 24px;
  align-items: center;
  min-height: 190px;
  padding: 27px 30px;
  overflow: hidden;
  background:
    radial-gradient(circle at 86% 20%, rgba(34,160,177,.10), transparent 31%),
    linear-gradient(145deg, rgba(255,255,255,.93), rgba(239,247,247,.88));
  border-color: rgba(36,145,160,.20);
}

.builder-eyebrow {
  color: #168fa1;
}

.builder-hero h1 {
  max-width: 870px;
  margin: 6px 0 10px;
  color: #3e4d54;
  font-family: "Hightower Text", Georgia, serif;
  font-size: clamp(34px, 4.4vw, 58px);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: .035em;
}

.builder-hero p {
  max-width: 850px;
  margin: 0;
  color: #6f7b81;
  line-height: 1.55;
}

.builder-mode-badge {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 190px;
  padding: 11px 13px;
  border: 1px solid #c9e0e2;
  border-radius: 14px;
  background: rgba(244,250,249,.8);
}

.builder-mode-dot {
  display: block;
  flex: 0 0 11px;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: #58bc8d;
  box-shadow: 0 0 0 5px rgba(88,188,141,.11);
}

.builder-mode-badge div {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.builder-mode-badge b {
  color: #256379;
  font-size: 10px;
  letter-spacing: .08em;
}

.builder-mode-badge small {
  margin: 0;
  color: #819097;
  font-size: 9px;
}

.builder-capability-banner {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 12px 15px;
  border: 1px solid #d8e5e6;
  border-radius: 13px;
  background: rgba(248,251,250,.86);
}

.builder-capability-banner b {
  color: #1d7888;
  white-space: nowrap;
}

.builder-capability-banner span {
  color: #76848a;
  font-size: 11px;
}

.builder-kpis {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 11px;
}

.builder-kpi {
  display: flex;
  flex-direction: column;
  min-height: 105px;
  padding: 15px 16px;
  border: 1px solid #dbe5e7;
  border-radius: 15px;
  background: rgba(255,255,255,.76);
  box-shadow: 0 6px 22px rgba(23,52,70,.045);
}

.builder-kpi > span {
  color: #8a969b;
  font-size: 9px;
  letter-spacing: .07em;
}

.builder-kpi strong {
  margin-top: 6px;
  color: #123b62;
  font-size: 28px;
}

.builder-kpi small {
  margin-top: auto;
  color: #909a9f;
  font-size: 9px;
}

.builder-main-grid {
  display: grid;
  grid-template-columns: minmax(340px,.82fr) minmax(460px,1.18fr);
  gap: 14px;
  align-items: start;
}

.builder-column {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 14px;
}

.builder-detail-column {
  position: sticky;
  top: 12px;
}

.builder-create-card,
.builder-jobs-card,
.builder-detail-card,
.builder-architecture-card {
  padding: 18px;
}

.builder-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.builder-card-head h2,
.builder-detail-card h2 {
  margin: 3px 0 0;
  color: #43535a;
  font-family: "Hightower Text", Georgia, serif;
  font-weight: 400;
  letter-spacing: .035em;
}

.builder-safe-chip {
  padding: 5px 8px;
  border-radius: 999px;
  background: #edf7f4;
  color: #4b8d70;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.builder-field {
  display: grid;
  gap: 6px;
  margin-bottom: 11px;
}

.builder-field > span {
  color: #708087;
  font-size: 10px;
  font-weight: 700;
}

.builder-field > span small {
  display: inline;
  margin-left: 4px;
  color: #9ba4a8;
  font-size: 9px;
  font-weight: 400;
}

.builder-field input,
.builder-field textarea,
.builder-field select {
  width: 100%;
  border: 1px solid #cedbdd;
  border-radius: 11px;
  background: #fbfcfb;
  color: #44565e;
  padding: 10px 11px;
  font: inherit;
  outline: none;
}

.builder-field textarea {
  min-height: 130px;
  resize: vertical;
  line-height: 1.5;
}

.builder-field input:focus,
.builder-field textarea:focus,
.builder-field select:focus {
  border-color: #299fb0;
  box-shadow: 0 0 0 3px rgba(41,159,176,.09);
}

.builder-budget-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 0 9px;
}

.builder-checkbox {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 3px 0 13px;
  color: #718087;
  font-size: 10px;
}

.builder-checkbox input {
  width: auto;
}

.builder-create-btn {
  width: 100%;
  min-height: 45px;
}

.builder-job-filters {
  display: flex;
  gap: 5px;
  overflow-x: auto;
  margin: 0 0 10px;
  padding-bottom: 3px;
}

.builder-job-filters button {
  flex: 0 0 auto;
  min-height: 32px;
  padding: 5px 9px;
  border: 1px solid #dde6e7;
  border-radius: 999px;
  background: #f7f9f8;
  color: #7a888e;
  font-size: 9px;
}

.builder-job-filters button.active {
  border-color: #b8dfe3;
  background: #eaf6f7;
  color: #137f90;
}

.builder-job-list {
  display: flex;
  flex-direction: column;
  gap: 7px;
  max-height: 640px;
  overflow-y: auto;
  padding-right: 2px;
}

.builder-job-row {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 8px;
  width: 100%;
  min-height: 0;
  padding: 12px;
  border: 1px solid #e0e8e9;
  border-radius: 12px;
  background: rgba(251,252,251,.86);
  color: inherit;
  text-align: left;
}

.builder-job-row:hover,
.builder-job-row.selected {
  border-color: #bcdde1;
  background: #f0f8f8;
}

.builder-job-row-title {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}

.builder-job-row-title b {
  color: #46575e;
  line-height: 1.3;
}

.builder-job-row p {
  display: -webkit-box;
  overflow: hidden;
  margin: 5px 0;
  color: #77858b;
  font-size: 10px;
  line-height: 1.4;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.builder-job-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  color: #909a9f;
  font-size: 8px;
}

.builder-job-chevron {
  align-self: center;
  color: #a5b0b4;
  font-size: 25px;
  font-weight: 300;
}

.builder-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 7px;
  border-radius: 999px;
  background: #f0f3f4;
  color: #78868c;
  font-size: 8px;
  font-weight: 700;
  white-space: nowrap;
}

.builder-status.large {
  padding: 6px 9px;
  font-size: 9px;
}

.builder-status.status-queued,
.builder-status.status-discovery {
  background: #edf6f8;
  color: #287d91;
}

.builder-status.status-spec_ready {
  background: #faf4e5;
  color: #94712c;
}

.builder-status.status-spec_approved {
  background: #edf7f2;
  color: #4b8969;
}

.builder-status.status-failed,
.builder-status.status-blocked {
  background: #faeeeb;
  color: #a55c50;
}

.builder-status.status-cancelled {
  background: #eff1f2;
  color: #8b9397;
}

.builder-module-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 7px;
}

.builder-module-tags span {
  padding: 3px 6px;
  border-radius: 999px;
  background: #eef3f4;
  color: #76858b;
  font-size: 8px;
}

.builder-detail-card {
  min-height: 350px;
}

.builder-empty-detail,
.builder-empty-list {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  min-height: 230px;
  text-align: center;
}

.builder-empty-list {
  min-height: 150px;
}

.builder-empty-detail h2,
.builder-empty-list b {
  color: #5c6b71;
}

.builder-empty-detail p,
.builder-empty-list span {
  max-width: 430px;
  color: #879297;
  line-height: 1.5;
}

.builder-empty-icon {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  margin-bottom: 8px;
  border: 1px solid #d7e5e7;
  border-radius: 14px;
  background: #eff7f7;
  color: #248e9d;
  font-size: 25px;
}

.builder-detail-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.builder-detail-head h2 {
  font-size: 25px;
}

.builder-detail-head p {
  margin: 7px 0 0;
  color: #718087;
  font-size: 11px;
  line-height: 1.5;
}

.builder-timeline {
  display: grid;
  grid-template-columns: repeat(5,minmax(0,1fr));
  gap: 0;
  margin: 17px 0;
  overflow-x: auto;
}

.builder-timeline-step {
  position: relative;
  display: flex;
  align-items: center;
  min-width: 105px;
  gap: 6px;
  color: #9aa3a7;
  font-size: 8px;
}

.builder-timeline-step:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 13px;
  right: -2px;
  top: 5px;
  height: 1px;
  background: #dce5e6;
  z-index: 0;
}

.builder-timeline-step i {
  position: relative;
  z-index: 1;
  display: block;
  flex: 0 0 11px;
  width: 11px;
  height: 11px;
  border: 2px solid #d2dcde;
  border-radius: 50%;
  background: #f9fbfa;
}

.builder-timeline-step.done i {
  border-color: #4cb0bc;
  background: #4cb0bc;
}

.builder-timeline-step.current {
  color: #227e8d;
  font-weight: 700;
}

.builder-governance-strip {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 7px;
  padding: 10px;
  border: 1px solid #dfe8e9;
  border-radius: 12px;
  background: #f7faf9;
}

.builder-governance-strip > div {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 3px;
}

.builder-governance-strip span {
  color: #939da1;
  font-size: 7px;
  letter-spacing: .06em;
}

.builder-governance-strip strong {
  overflow-wrap: anywhere;
  color: #52636a;
  font-size: 9px;
}

.risk-r0,
.risk-r1 {
  color: #4b8969 !important;
}

.risk-r2 {
  color: #337892 !important;
}

.risk-r3 {
  color: #9a792f !important;
}

.risk-r4,
.risk-r5 {
  color: #a2584c !important;
}

.builder-section {
  margin-top: 15px;
  padding-top: 14px;
  border-top: 1px solid #e1e8e9;
}

.builder-section h3 {
  margin: 0 0 7px;
  color: #526269;
  font-size: 13px;
}

.builder-section p,
.builder-section li {
  color: #6e7b81;
  font-size: 10px;
  line-height: 1.55;
}

.builder-section ul {
  margin: 0;
  padding-left: 18px;
}

.builder-section li + li {
  margin-top: 4px;
}

.builder-two-col {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 13px;
}

.builder-test-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 8px;
}

.builder-test-group {
  padding: 9px 10px;
  border: 1px solid #e1e9ea;
  border-radius: 10px;
  background: #fafcfb;
}

.builder-test-group > b {
  color: #4d6871;
  font-size: 10px;
}

.builder-test-group ul {
  margin-top: 5px;
}

.builder-none {
  color: #9aa4a8;
  font-size: 9px;
}

.builder-count-chip {
  display: inline-grid;
  place-items: center;
  min-width: 20px;
  height: 20px;
  margin-left: 4px;
  border-radius: 999px;
  background: #eaf5f6;
  color: #237f8e;
  font-size: 9px;
}

.builder-questions {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.builder-question {
  padding: 11px;
  border: 1px solid #dce7e8;
  border-radius: 11px;
  background: #f9fbfa;
}

.builder-question.blocking {
  border-color: #e4cbbd;
  background: #fbf5ef;
}

.builder-question.answered {
  border-color: #d4e7dd;
  background: #f3faf6;
}

.builder-question-head {
  display: flex;
  justify-content: space-between;
  gap: 8px;
}

.builder-question-head b,
.builder-question > b {
  color: #53656c;
  font-size: 10px;
}

.builder-question-head span {
  color: #8b989d;
  font-size: 7px;
  font-weight: 700;
}

.builder-question p {
  margin: 5px 0;
}

.builder-question small {
  color: #909b9f;
  font-size: 8px;
}

.builder-question textarea {
  width: 100%;
  min-height: 70px;
  margin-top: 8px;
  border: 1px solid #d2dfe1;
  border-radius: 9px;
  background: #fff;
  padding: 8px;
  font: inherit;
}

.builder-question button {
  width: auto;
  min-height: 34px;
  margin-top: 7px;
  padding: 5px 9px;
  font-size: 9px;
}

.builder-run-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px solid #e5ebec;
}

.builder-run-row:last-child {
  border-bottom: 0;
}

.builder-run-row > div {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.builder-run-row b,
.builder-run-row strong {
  color: #56676e;
  font-size: 9px;
}

.builder-run-row span {
  color: #909b9f;
  font-size: 8px;
}

.builder-warning,
.builder-error {
  display: flex;
  gap: 8px;
  margin-top: 12px;
  padding: 9px 10px;
  border: 1px solid #e5d1b3;
  border-radius: 10px;
  background: #fbf6eb;
  color: #856b35;
  font-size: 9px;
  line-height: 1.45;
}

.builder-error {
  border-color: #e2c7c2;
  background: #fbf1ef;
  color: #9a5c52;
}

.builder-waiting-spec {
  min-height: 160px;
}

.builder-detail-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 17px;
  padding-top: 13px;
  border-top: 1px solid #e1e8e9;
}

.builder-detail-actions button {
  width: auto;
  min-height: 38px;
  padding: 7px 11px;
}

.builder-loading {
  padding: 25px 12px;
  color: #859298;
  text-align: center;
  font-size: 10px;
}

.builder-architecture-kpis {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 7px;
}

.builder-architecture-kpis > div {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 9px;
  border: 1px solid #e0e8e9;
  border-radius: 10px;
  background: #f9fbfa;
}

.builder-architecture-kpis strong {
  color: #1b4968;
  font-size: 18px;
}

.builder-architecture-kpis span {
  color: #90999e;
  font-size: 8px;
}

.builder-architecture-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 10px 0;
  color: #8a969b;
  font-size: 8px;
}

.builder-architecture-meta code {
  color: #426774;
  font-size: 8px;
}

.builder-architecture-modules {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.builder-architecture-modules span {
  padding: 5px 7px;
  border-radius: 8px;
  background: #edf4f5;
  color: #667a82;
  font-size: 8px;
}

.builder-architecture-modules b {
  margin-left: 3px;
  color: #278596;
}

.builder-toast-area {
  position: fixed;
  z-index: 20000;
  right: 18px;
  bottom: 18px;
  display: flex;
  width: min(380px,calc(100vw - 36px));
  flex-direction: column;
  gap: 8px;
}

.builder-toast {
  padding: 11px 13px;
  border: 1px solid #d8e4e5;
  border-radius: 12px;
  background: #f9fbfa;
  color: #56676e;
  box-shadow: 0 14px 40px rgba(25,45,60,.16);
  font-size: 10px;
}

.builder-toast.success {
  border-color: #cce4d6;
  background: #f1f9f4;
  color: #4d8063;
}

.builder-toast.error {
  border-color: #e4c9c4;
  background: #fbf1ef;
  color: #975b51;
}

@media (max-width: 1180px) {
  .builder-main-grid {
    grid-template-columns: 1fr;
  }

  .builder-detail-column {
    position: static;
  }

  .builder-job-list {
    max-height: 420px;
  }
}

@media (max-width: 780px) {
  .builder-hero {
    grid-template-columns: 1fr;
    padding: 22px;
  }

  .builder-mode-badge {
    width: fit-content;
  }

  .builder-kpis {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }

  .builder-governance-strip,
  .builder-architecture-kpis {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }

  .builder-two-col,
  .builder-test-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 540px) {
  .builder-hero h1 {
    font-size: 37px;
  }

  .builder-capability-banner {
    align-items: flex-start;
    flex-direction: column;
  }

  .builder-budget-grid,
  .builder-kpis {
    grid-template-columns: 1fr;
  }

  .builder-create-card,
  .builder-jobs-card,
  .builder-detail-card,
  .builder-architecture-card {
    padding: 14px;
  }

  .builder-detail-head {
    flex-direction: column;
  }

  .builder-detail-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .builder-detail-actions button {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .builder-job-row,
  .builder-toast {
    transition: none !important;
  }
}

.builder-resume-box {
  display: grid;
  gap: 7px;
  margin: 12px 0;
  padding: 13px;
  border: 1px solid rgba(27,154,169,.28);
  border-radius: 14px;
  background: rgba(231,247,248,.72);
}
.builder-resume-box b { color: #245a65; }
.builder-resume-box span { color: #64777d; font-size: 11px; line-height: 1.45; }
.builder-resume-box button { justify-self: start; }




.builder-sandbox-card {
  border: 1px solid rgba(25,151,169,.28);
  border-radius: 16px;
  background: linear-gradient(145deg,rgba(236,248,248,.86),rgba(255,255,255,.76));
  box-shadow: 0 10px 28px rgba(20,55,80,.055);
}
.builder-sandbox-card > p { color:#66777e; line-height:1.5; }
.builder-sandbox-limits { display:flex; flex-wrap:wrap; gap:6px; margin:10px 0 14px; }
.builder-sandbox-limits span { padding:5px 8px; border-radius:999px; background:#f2f6f6; color:#64777e; font-size:9px; border:1px solid #dde8e9; }
.builder-build-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin:12px 0; }
.builder-build-metrics > div { display:flex; flex-direction:column; gap:4px; padding:10px; border:1px solid #dbe7e9; border-radius:11px; background:rgba(255,255,255,.62); }
.builder-build-metrics span { color:#87959b; font-size:8px; letter-spacing:.06em; }
.builder-build-metrics strong { color:#234f68; font-size:12px; }
.builder-build-summary { padding:9px 10px; border-radius:10px; background:rgba(255,255,255,.58); }
.builder-build-subsection { margin-top:16px; }
.builder-build-subsection h4 { margin:0 0 8px; color:#4d6067; font-size:12px; }
.builder-change-list { display:grid; gap:5px; }
.builder-change-list > div { display:flex; justify-content:space-between; gap:8px; padding:7px 9px; border:1px solid #e0e9ea; border-radius:9px; background:rgba(255,255,255,.56); }
.builder-change-list code { overflow-wrap:anywhere; color:#315d72; font-size:9px; }
.builder-change-list span { color:#87949a; font-size:8px; text-transform:uppercase; }
.builder-check-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
.builder-check { padding:9px; border:1px solid #dfe8e9; border-radius:10px; background:rgba(255,255,255,.58); }
.builder-check b,.builder-check span,.builder-check small { display:block; }
.builder-check b { color:#495c64; font-size:10px; }
.builder-check span,.builder-check small { color:#86949a; font-size:8px; margin-top:2px; }
.builder-check p { margin:5px 0 0; color:#6a797f; font-size:9px; line-height:1.4; }
.builder-check.status-fail { border-color:#e2c6c0; background:#fbf3f1; }
.builder-check.status-warn,.builder-check.status-pending { border-color:#ead9b7; background:#fbf7ed; }
.builder-finding-list { display:grid; gap:7px; }
.builder-finding { padding:10px; border-left:4px solid #9cb5bd; border-radius:9px; background:rgba(255,255,255,.62); }
.builder-finding.severity-critical,.builder-finding.severity-high { border-left-color:#aa5a4d; background:#fbf1ef; }
.builder-finding.severity-medium { border-left-color:#c49a45; }
.builder-finding b,.builder-finding span,.builder-finding small { display:block; }
.builder-finding b { color:#46575f; font-size:10px; }
.builder-finding span,.builder-finding small { color:#839198; font-size:8px; margin-top:2px; }
.builder-finding p { margin:6px 0; font-size:9px; color:#65757c; }
.builder-artifact-actions { display:flex; flex-wrap:wrap; gap:7px; margin-top:14px; }
.builder-artifact-link { text-decoration:none; display:inline-flex; align-items:center; justify-content:center; padding:8px 11px; border:1px solid #cddcdf; border-radius:10px; color:#315e72; background:#f8faf9; font-size:9px; }
.builder-static-boundary { margin-top:14px; padding:9px 10px; border:1px solid #e6d5b1; border-radius:10px; background:#fbf7eb; color:#765f32; font-size:9px; line-height:1.45; }
@media (max-width:760px) { .builder-build-metrics,.builder-check-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:520px) { .builder-build-metrics,.builder-check-grid { grid-template-columns:1fr; } }

.builder-owner-context {
  margin-top: 10px;
  padding: 10px 12px;
  border: 1px solid #c9dfe2;
  border-radius: 12px;
  background: rgba(238,248,249,.76);
  display: grid;
  gap: 5px;
}
.builder-owner-context b { color: #28576b; font-size: 10px; }
.builder-owner-context span { color: #5e747d; font-size: 9px; line-height: 1.45; white-space: pre-wrap; }
/* ===== LEO BUILDER 0.2 WORKSPACE CODER STYLES END ===== */

/* ===== LEO BUILDER 0.3 CONTROLLED DEVELOPMENT LOOP ===== */
.builder-control-overview {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.5fr);
  gap: 8px;
  margin: 12px 0;
}
.builder-control-card {
  padding: 11px 12px;
  border: 1px solid #d9e6e7;
  border-radius: 12px;
  background: rgba(255,255,255,.68);
}
.builder-control-card h4 { margin: 2px 0 0; color: #3e5a64; font-size: 12px; }
.builder-control-card p { margin: 7px 0 2px; color: #63767d; font-size: 9px; line-height: 1.48; }
.builder-control-card small { color: #87959b; font-size: 8px; }
.builder-control-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.builder-control-state { flex: 0 0 auto; padding: 4px 7px; border: 1px solid #d2e1e3; border-radius: 999px; background: #f4f8f8; color: #647a82; font-size: 8px; text-transform: uppercase; letter-spacing: .05em; }
.builder-control-state.ok { border-color: #c7dfd0; background: #f1f8f3; color: #4e7f60; }
.builder-control-state.warn { border-color: #ead8b4; background: #fbf6ea; color: #8a6b2e; }
.builder-agent-card { display: flex; flex-direction: column; justify-content: center; min-height: 92px; }
.builder-agent-card > div { display: flex; align-items: center; gap: 6px; }
.builder-agent-card strong { margin-top: 8px; color: #295e70; font-size: 15px; }
.builder-agent-card > span:last-child { margin-top: 3px; color: #74858c; font-size: 9px; }
.builder-live-dot { width: 8px; height: 8px; border-radius: 50%; background: #9aa9ae; box-shadow: 0 0 0 0 rgba(31,154,171,.28); }
.builder-agent-card.working .builder-live-dot { background: #2598aa; animation: builderPulse 1.8s infinite; }
@keyframes builderPulse { 0% { box-shadow: 0 0 0 0 rgba(31,154,171,.3); } 70% { box-shadow: 0 0 0 8px rgba(31,154,171,0); } 100% { box-shadow: 0 0 0 0 rgba(31,154,171,0); } }
.builder-blocker-card { border-left: 4px solid #c0943d; }
.builder-blocker-card.clear { border-left-color: #76a889; }
.builder-blocker-card.blocker-security_blocker,
.builder-blocker-card.blocker-technical_error { border-left-color: #ae5e50; background: #fcf4f2; }
.builder-blocker-card.blocker-test_blocker,
.builder-blocker-card.blocker-spec_amendment_required,
.builder-blocker-card.blocker-owner_decision_required { background: #fbf7ed; }

.builder-spec-control { margin: 12px 0; }
.builder-spec-history { display: grid; gap: 6px; margin-top: 10px; }
.builder-spec-history > div { display: grid; grid-template-columns: 36px 1fr auto; align-items: center; gap: 8px; padding: 7px 9px; border: 1px solid #e0e8e9; border-radius: 9px; background: #fafcfc; }
.builder-spec-history > div.active { border-color: #bddde1; background: #f0f8f9; }
.builder-spec-history b { color: #2d5e70; font-size: 10px; }
.builder-spec-history span { color: #60747c; font-size: 9px; line-height: 1.35; }
.builder-spec-history small { color: #88979c; font-size: 8px; text-align: right; }
.builder-amendment-list { display: grid; gap: 6px; margin-top: 8px; padding-top: 8px; border-top: 1px solid #e0e8e9; }
.builder-amendment-list > div { display: grid; gap: 3px; padding: 7px 9px; border-radius: 9px; background: rgba(237,246,247,.7); }
.builder-amendment-list b { color: #386674; font-size: 9px; }
.builder-amendment-list span { color: #657981; font-size: 9px; line-height: 1.4; }
.builder-amendment-list small { color: #8b999e; font-size: 8px; }

.builder-ticket-list { display: grid; gap: 8px; }
.builder-ticket { padding: 11px; border: 1px solid #dfe8e9; border-left: 4px solid #9bb2b9; border-radius: 10px; background: rgba(255,255,255,.65); }
.builder-ticket.severity-critical,
.builder-ticket.severity-high { border-left-color: #ad5d50; }
.builder-ticket.severity-medium { border-left-color: #c39a48; }
.builder-ticket.status-resolved { opacity: .68; border-left-color: #75a286; }
.builder-ticket-head { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; }
.builder-ticket-head > div { min-width: 0; display: grid; gap: 3px; }
.builder-ticket-head code { color: #7d9097; font-size: 7px; overflow-wrap: anywhere; }
.builder-ticket-head b { color: #465d65; font-size: 10px; }
.builder-ticket-head > span { flex: 0 0 auto; color: #7e8f95; font-size: 8px; }
.builder-ticket p { margin: 7px 0; color: #66777e; font-size: 9px; line-height: 1.45; }
.builder-ticket small { display: block; color: #7f8f95; font-size: 8px; line-height: 1.4; }
.builder-ticket-meta { display: flex; flex-wrap: wrap; gap: 5px 9px; margin: 6px 0; color: #87959a; font-size: 8px; }

.builder-usage-wrap { display: grid; gap: 8px; }
.builder-usage-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
.builder-usage-summary > div { display: grid; gap: 3px; padding: 9px; border: 1px solid #dde8e9; border-radius: 10px; background: rgba(255,255,255,.62); }
.builder-usage-summary span { color: #89969b; font-size: 8px; }
.builder-usage-summary strong { color: #285a6e; font-size: 13px; }
.builder-usage-summary small { color: #7c8d93; font-size: 8px; }
.builder-role-costs { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 6px; }
.builder-role-costs > div { display: grid; gap: 2px; padding: 7px 8px; border-radius: 9px; background: #f5f8f8; }
.builder-role-costs b { color: #546b74; font-size: 9px; }
.builder-role-costs span { color: #2f6072; font-size: 10px; }
.builder-role-costs small { color: #89969b; font-size: 7px; }
.builder-budget-policy { margin: 0 !important; padding: 7px 9px; border-radius: 8px; background: #f5f8f8; color: #74858b !important; font-size: 8px !important; }

.builder-trace-list { display: grid; gap: 6px; }
.builder-trace-row { border: 1px solid #dfe8e9; border-radius: 10px; background: rgba(255,255,255,.62); overflow: hidden; }
.builder-trace-row summary { display: grid; grid-template-columns: 46px 1fr auto; gap: 8px; align-items: center; padding: 9px 10px; cursor: pointer; list-style: none; }
.builder-trace-row summary::-webkit-details-marker { display: none; }
.builder-trace-row summary > span { color: #2c6475; font-size: 8px; font-weight: 700; }
.builder-trace-row summary > b { color: #52666e; font-size: 9px; line-height: 1.35; }
.builder-trace-row summary > em { color: #87959a; font-size: 8px; font-style: normal; }
.builder-trace-body { display: grid; gap: 5px; padding: 9px 10px 10px; border-top: 1px solid #e4ebec; background: #fafcfc; }
.builder-trace-body p { margin: 0; color: #66787f; font-size: 8px; line-height: 1.45; }
.builder-trace-body code { display: inline-block; margin: 2px 2px 0 0; padding: 2px 4px; border-radius: 5px; background: #edf3f4; color: #426774; font-size: 7px; overflow-wrap: anywhere; }

.builder-resume-form { display: grid; gap: 11px; margin: 15px 0 2px; padding: 14px; border: 1px solid rgba(31,151,169,.33); border-radius: 14px; background: linear-gradient(145deg,rgba(235,248,249,.92),rgba(249,252,252,.9)); }
.builder-resume-form > p { margin: 0; color: #64787f; font-size: 9px; line-height: 1.48; }
.builder-resume-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.builder-resume-form label { display: grid; gap: 5px; color: #536b74; font-size: 9px; }
.builder-resume-form label > span { font-weight: 650; }
.builder-resume-form input[type="number"],
.builder-resume-form textarea { width: 100%; box-sizing: border-box; padding: 8px 9px; border: 1px solid #cfdfe1; border-radius: 9px; background: rgba(255,255,255,.88); color: #40555d; font: inherit; outline: none; }
.builder-resume-form textarea { resize: vertical; min-height: 52px; line-height: 1.45; }
.builder-resume-form input:focus,
.builder-resume-form textarea:focus { border-color: #79b5bf; box-shadow: 0 0 0 2px rgba(38,149,166,.09); }
.builder-resume-form label small { color: #87969b; font-size: 8px; font-weight: 400; line-height: 1.4; }
.builder-resume-confirmations { display: grid; gap: 7px; padding: 9px 10px; border: 1px solid #d8e5e6; border-radius: 10px; background: rgba(255,255,255,.55); }
.builder-resume-confirmations label { display: grid; grid-template-columns: auto 1fr; gap: 8px; align-items: start; }
.builder-resume-confirmations input { margin-top: 2px; }
.builder-resume-confirmations span { font-weight: 500 !important; line-height: 1.4; }
.builder-resume-submit-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.builder-resume-submit-row button { width: auto; }
.builder-resume-submit-row small { color: #7d8e94; font-size: 8px; }
.builder-resume-submit-row button:disabled { opacity: .6; cursor: wait; }

@media (max-width: 900px) {
  .builder-role-costs { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .builder-control-overview,
  .builder-resume-grid,
  .builder-usage-summary { grid-template-columns: 1fr; }
  .builder-spec-history > div { grid-template-columns: 34px 1fr; }
  .builder-spec-history small { grid-column: 2; text-align: left; }
  .builder-trace-row summary { grid-template-columns: 38px 1fr; }
  .builder-trace-row summary > em { grid-column: 2; }
}
@media (max-width: 520px) {
  .builder-role-costs { grid-template-columns: 1fr; }
  .builder-ticket-head,
  .builder-control-card-head { flex-direction: column; }
  .builder-resume-submit-row button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .builder-agent-card.working .builder-live-dot { animation: none; }
}
/* ===== LEO BUILDER 0.3 CONTROLLED DEVELOPMENT LOOP END ===== */

/* ===== LEO BUILDER 0.3B ISOLATED DYNAMIC RUNNER ===== */
.builder-dynamic-card {
  display: grid;
  gap: 10px;
  margin-top: 16px;
  padding: 13px;
  border: 1px solid #d5e4e6;
  border-left: 4px solid #8da5ad;
  border-radius: 13px;
  background: linear-gradient(145deg,rgba(246,250,250,.96),rgba(255,255,255,.8));
}
.builder-dynamic-card.status-ready { border-left-color: #3d91a0; background: linear-gradient(145deg,rgba(237,248,249,.95),rgba(255,255,255,.82)); }
.builder-dynamic-card.status-running { border-left-color: #2d95a5; box-shadow: 0 0 0 3px rgba(37,151,169,.07); }
.builder-dynamic-card.status-passed { border-left-color: #6e9f7d; background: linear-gradient(145deg,rgba(241,249,244,.96),rgba(255,255,255,.82)); }
.builder-dynamic-card.status-failed { border-left-color: #aa5d51; background: linear-gradient(145deg,rgba(252,243,241,.96),rgba(255,255,255,.82)); }
.builder-dynamic-card.status-offline { border-left-color: #c49a48; background: linear-gradient(145deg,rgba(251,247,237,.96),rgba(255,255,255,.82)); }
.builder-dynamic-card h4 { margin: 2px 0 0; color: #3d5963; font-size: 12px; }
.builder-dynamic-card > p { margin: 0; color: #61747c; font-size: 9px; line-height: 1.48; }
.builder-dynamic-card > small { color: #7d8e94; font-size: 8px; line-height: 1.45; }
.builder-dynamic-boundaries { display: flex; flex-wrap: wrap; gap: 5px; }
.builder-dynamic-boundaries span { padding: 4px 7px; border: 1px solid #d7e4e6; border-radius: 999px; background: rgba(255,255,255,.7); color: #55717a; font-size: 8px; }
.builder-dynamic-meta { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; }
.builder-dynamic-meta > span { min-width: 0; display: grid; gap: 3px; padding: 8px 9px; border: 1px solid #dce7e8; border-radius: 9px; background: rgba(255,255,255,.63); color: #62767d; font-size: 8px; }
.builder-dynamic-meta b { color: #87969b; font-size: 7px; text-transform: uppercase; letter-spacing: .05em; }
.builder-dynamic-meta code { color: #315f70; font-size: 8px; overflow-wrap: anywhere; }
.builder-dynamic-steps { display: grid; gap: 7px; }
.builder-dynamic-step { border: 1px solid #dce7e8; border-radius: 10px; background: rgba(255,255,255,.65); overflow: hidden; }
.builder-dynamic-step.status-pass { border-color: #d2e4d8; }
.builder-dynamic-step.status-fail,
.builder-dynamic-step.status-error { border-color: #e4c8c3; background: #fcf5f3; }
.builder-dynamic-step.status-skip { border-color: #ead9b8; background: #fcf8ef; }
.builder-dynamic-step summary { display: flex; justify-content: space-between; gap: 9px; padding: 9px 10px; cursor: pointer; color: #4d626a; font-size: 9px; }
.builder-dynamic-step summary span { min-width: 0; overflow-wrap: anywhere; }
.builder-dynamic-step summary b { flex: 0 0 auto; color: #6d858d; font-size: 8px; }
.builder-dynamic-step p { margin: 0; padding: 0 10px 8px; color: #65777e; font-size: 8px; line-height: 1.45; }
.builder-dynamic-step pre { max-height: 260px; margin: 0 9px 9px; padding: 9px; overflow: auto; border-radius: 8px; background: #20333d; color: #e9f0f1; font: 8px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.builder-dynamic-actions { display: flex; align-items: center; justify-content: space-between; gap: 9px; flex-wrap: wrap; }
.builder-dynamic-actions button { width: auto; }
.builder-dynamic-handoff { display: grid; gap: 3px; padding: 8px 10px; border: 1px solid #dfc8c2; border-radius: 9px; background: rgba(255,255,255,.68); color: #65777e; font-size: 8px; line-height: 1.45; }
.builder-dynamic-handoff b { color: #8b554d; font-size: 8px; letter-spacing: .02em; }
.builder-dynamic-live { display: inline-flex; align-items: center; gap: 7px; color: #41727e; font-size: 8px; }
.builder-dynamic-live i { width: 8px; height: 8px; border-radius: 50%; background: #2d95a5; animation: builderDynamicPulse 1.6s infinite; }
@keyframes builderDynamicPulse { 0% { box-shadow: 0 0 0 0 rgba(45,149,165,.35); } 70% { box-shadow: 0 0 0 8px rgba(45,149,165,0); } 100% { box-shadow: 0 0 0 0 rgba(45,149,165,0); } }
@media (max-width: 760px) { .builder-dynamic-meta { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 520px) {
  .builder-dynamic-meta { grid-template-columns: 1fr; }
  .builder-dynamic-actions { align-items: stretch; flex-direction: column; }
  .builder-dynamic-actions button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .builder-dynamic-live i { animation: none; } }
/* ===== LEO BUILDER 0.3B ISOLATED DYNAMIC RUNNER END ===== */


/* ===== LEO BUILDER 0.3B.3 OWNER SPEC AMENDMENT UI ===== */
.builder-spec-actions { display:flex; align-items:center; gap:9px; flex-wrap:wrap; margin:8px 0 2px; }
.builder-spec-actions small { flex:1 1 220px; line-height:1.4; }
.builder-spec-amend-form { display:grid; gap:11px; margin-top:12px; padding:13px; border:1px solid rgba(195,154,72,.35); border-radius:13px; background:linear-gradient(145deg,rgba(252,248,238,.96),rgba(248,252,252,.94)); }
.builder-spec-amend-form > p { margin:0; color:#667a81; font-size:9px; line-height:1.48; }
.builder-amend-preview { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
.builder-amend-preview h4 { margin:2px 0 0; font-size:13px; color:#3e626c; }
.builder-spec-amend-form label { display:grid; gap:5px; color:#536b74; font-size:9px; }
.builder-spec-amend-form label > span { font-weight:650; }
.builder-spec-amend-form textarea { width:100%; box-sizing:border-box; padding:8px 9px; border:1px solid #d7dfe0; border-radius:9px; background:rgba(255,255,255,.9); color:#40555d; font:inherit; line-height:1.45; resize:vertical; outline:none; }
.builder-spec-amend-form textarea:focus { border-color:#c1a55f; box-shadow:0 0 0 2px rgba(195,154,72,.10); }
.builder-spec-amend-form label small { color:#87969b; font-size:8px; font-weight:400; line-height:1.4; }
.builder-amend-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.builder-spec-invariants { display:grid; gap:4px; padding:9px 10px; border:1px solid #d4e4d8; border-radius:10px; background:#f2f8f3; }
.builder-spec-invariants b { color:#4e7459; font-size:9px; }
.builder-spec-invariants span { color:#617a69; font-size:8px; overflow-wrap:anywhere; }
.builder-amend-tests { border:1px solid #dce6e7; border-radius:10px; padding:8px 10px; background:rgba(255,255,255,.55); }
.builder-amend-tests summary { cursor:pointer; color:#526e76; font-size:9px; font-weight:650; margin-bottom:8px; }
@media(max-width:760px){ .builder-amend-grid{grid-template-columns:1fr;} .builder-amend-preview{flex-direction:column;} .builder-spec-actions button{width:100%;} }
/* ===== LEO BUILDER 0.3B.3 OWNER SPEC AMENDMENT UI END ===== */


/* ===== LEO BUILDER 0.3B.3 UX1 — OWNER COCKPIT / COLLAPSIBLE DETAIL ===== */
.builder-owner-cockpit{margin:12px 0 10px;padding:12px;border:1px solid #cfe2e4;border-radius:14px;background:linear-gradient(145deg,rgba(238,249,250,.96),rgba(255,255,255,.9));box-shadow:0 5px 18px rgba(49,93,105,.06)}
.builder-owner-cockpit-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.builder-owner-cockpit-top>div{display:grid;gap:3px}.builder-owner-cockpit-top strong{font-size:15px;color:#285f70}.builder-owner-cockpit-top small{font-size:9px;color:#75868d}.builder-owner-cockpit .primary.compact{padding:8px 10px;font-size:9px;min-height:auto}
.builder-owner-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin-top:10px}.builder-owner-kpis span{display:grid;gap:2px;padding:7px 8px;border-radius:9px;background:rgba(255,255,255,.72);border:1px solid #dce9ea}.builder-owner-kpis b{font-size:10px;color:#365f6c}.builder-owner-kpis small{font-size:7px;color:#87979c}
.builder-job-jumpnav{display:flex;gap:6px;overflow-x:auto;padding-top:9px;margin-top:9px;border-top:1px solid #dce9ea;scrollbar-width:none}.builder-job-jumpnav::-webkit-scrollbar{display:none}.builder-job-jumpnav button{flex:0 0 auto;border:1px solid #cadfe2;background:#fff;color:#3d6c79;border-radius:999px;padding:6px 9px;font-size:8px}
.builder-ux-collapse{margin:9px 0;border:1px solid #dce7e8;border-radius:12px;background:rgba(255,255,255,.54);overflow:hidden;scroll-margin-top:78px}.builder-ux-collapse>summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:10px 11px;cursor:pointer;list-style:none;background:rgba(247,250,250,.94)}.builder-ux-collapse>summary::-webkit-details-marker{display:none}.builder-ux-collapse>summary span{font-size:10px;font-weight:700;color:#46616a}.builder-ux-collapse>summary small{font-size:8px;color:#87969b;text-align:right}.builder-ux-collapse>summary i{font-style:normal;color:#6e858d;transition:transform .18s}.builder-ux-collapse[open]>summary i{transform:rotate(180deg)}.builder-ux-collapse-body{padding:0 10px 10px}.builder-ux-collapse-body>.builder-build-subsection,.builder-ux-collapse-body>.builder-dynamic-card,.builder-ux-collapse-body>.builder-resume-form{margin:10px 0 0}
.builder-job-context-collapse{margin-top:12px}.builder-job-context-collapse .builder-section,.builder-job-context-collapse .builder-two-col{margin-top:9px}
.builder-spec-history-collapse{margin-top:8px;border:1px solid #e1e9ea;border-radius:9px;overflow:hidden}.builder-spec-history-collapse>summary{padding:8px 9px;cursor:pointer;list-style:none;font-size:9px;font-weight:650;color:#60757d;background:#f8fafa;display:flex;justify-content:space-between}.builder-spec-history-collapse>summary::-webkit-details-marker{display:none}.builder-spec-history-collapse>div{padding:0 8px 8px}
.builder-floating-nav{position:sticky;bottom:10px;z-index:8;display:flex;justify-content:flex-end;gap:6px;pointer-events:none;margin-top:8px}.builder-floating-nav button{pointer-events:auto;width:36px;height:36px;border-radius:50%;border:1px solid #b8d8dd;background:#f5fbfb;color:#2b7080;box-shadow:0 5px 15px rgba(45,86,97,.16);font-size:16px;font-weight:700}
.builder-sandbox-card>.builder-build-subsection{margin-top:9px}
@media(max-width:760px){.builder-owner-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.builder-owner-kpis span:last-child{grid-column:1/-1}.builder-owner-cockpit-top{align-items:stretch;flex-direction:column}.builder-owner-cockpit .primary.compact{width:100%}.builder-ux-collapse>summary{grid-template-columns:minmax(0,1fr) auto}.builder-ux-collapse>summary small{display:none}.builder-floating-nav{bottom:8px}}
/* ===== LEO BUILDER 0.3B.3 UX1 END ===== */
.builder-ux-collapse-body>.builder-build-subsection>h4{display:none}
.builder-resolved-findings{margin-top:8px;border-top:1px solid #e2eaea;padding-top:7px}.builder-resolved-findings>summary{cursor:pointer;list-style:none;font-size:9px;font-weight:650;color:#70848b;display:flex;justify-content:space-between;padding:6px 2px}.builder-resolved-findings>summary::-webkit-details-marker{display:none}.builder-resolved-findings[open]>summary i{transform:rotate(180deg)}.builder-resolved-findings>.builder-ticket-list{margin-top:6px}.builder-none.success{color:#59826a;background:#f2f8f4;border-color:#d5e7da}

/* LEO Builder 0.3C.1 — Controlled Resume reliability feedback */
.builder-resume-feedback{padding:9px 10px;border-radius:9px;font-size:9px;line-height:1.45;border:1px solid #d7e3e5;background:#f7fafb;color:#536b74}
.builder-resume-feedback.is-error{border-color:#e7b9b5;background:#fff3f1;color:#8b433d}
.builder-resume-feedback.is-success{border-color:#b9d9c6;background:#f2fbf6;color:#356a4b}
.builder-resume-feedback.is-info{border-color:#bdd9df;background:#f2f9fa;color:#426b74}


/* LEOS Pilot R3 – Knowledge & SOP Foundation */
.knowledge-page-top{align-items:flex-end}
.knowledge-toolbar{display:grid;grid-template-columns:minmax(220px,2fr) minmax(150px,1fr) minmax(150px,1fr) auto;gap:12px;align-items:end;margin-bottom:16px}
.knowledge-toolbar label{display:grid;gap:6px;font-size:.78rem;color:var(--muted)}
.knowledge-toolbar input,.knowledge-toolbar select{width:100%}
.knowledge-layout{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(360px,1.5fr);gap:16px;align-items:start}
.knowledge-list{display:grid;gap:10px}
.knowledge-list-meta{font-size:.8rem;color:var(--muted);margin:0 0 8px 4px}
.knowledge-list-item{width:100%;text-align:left;border:1px solid var(--line);background:rgba(255,255,255,.78);border-radius:18px;padding:15px;display:grid;gap:7px;box-shadow:0 7px 20px rgba(15,44,57,.04)}
.knowledge-list-item:hover,.knowledge-list-item.active{border-color:rgba(35,151,164,.45);box-shadow:0 9px 24px rgba(15,94,106,.09);transform:translateY(-1px)}
.knowledge-list-item strong{font-size:1rem;color:var(--ink)}
.knowledge-list-item>span:not(.knowledge-status){color:var(--muted);font-size:.86rem;line-height:1.45}
.knowledge-list-item small{color:var(--muted);font-size:.72rem}
.knowledge-list-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.knowledge-category{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--teal-dark)}
.knowledge-status{font-size:.68rem;border-radius:999px;padding:4px 8px;background:#edf1f2;color:var(--muted)}
.knowledge-status.status-published{background:#e7f5ef;color:#27765a}
.knowledge-status.status-draft{background:#fff4d9;color:#8a661d}
.knowledge-status.status-archived{background:#edf0f1;color:#66757b}
.knowledge-detail{min-height:360px;position:sticky;top:18px}
.knowledge-detail-empty{min-height:280px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:8px;color:var(--muted)}
.knowledge-detail-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:16px}
.knowledge-detail-head h2{margin:5px 0 5px}
.knowledge-detail-head p{margin:0;color:var(--muted)}
.knowledge-detail-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.knowledge-detail-meta{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.knowledge-detail-meta span{font-size:.72rem;background:#eef3f3;border-radius:999px;padding:5px 9px;color:var(--muted)}
.knowledge-body{font-size:.95rem;line-height:1.7;white-space:normal;color:var(--ink);overflow-wrap:anywhere}
.knowledge-empty{text-align:center;padding:32px 20px}
.knowledge-empty h3{margin:0 0 6px}
.knowledge-empty p{margin:0;color:var(--muted)}
.knowledge-editor-modal{width:min(820px,calc(100vw - 28px))}
.knowledge-editor-modal textarea#knowledgeBody{font-family:inherit;line-height:1.5;min-height:260px}
.info-banner{border:1px solid #e7d5a4;background:#fff8e6;color:#795e24;border-radius:12px;padding:10px 12px;margin-bottom:12px;font-size:.84rem}
@media(max-width:900px){
  .knowledge-toolbar{grid-template-columns:1fr 1fr}
  .knowledge-layout{grid-template-columns:1fr}
  .knowledge-detail{position:static;min-height:0}
}
@media(max-width:620px){
  .knowledge-toolbar{grid-template-columns:1fr}
  .knowledge-detail-head{display:grid}
  .knowledge-detail-actions{justify-content:flex-start}
  .knowledge-list-item{border-radius:15px}
}


/* LEOS Knowledge Center UX */
.knowledge-summary{margin-bottom:14px}
.knowledge-summary .kpi{min-height:108px}
.knowledge-revision-modal{width:min(720px,calc(100vw - 28px))}
.knowledge-revision-list{display:grid;gap:10px;max-height:58vh;overflow:auto;padding-right:3px}
.knowledge-revision-item{border:1px solid var(--line);border-radius:14px;padding:12px;background:rgba(255,255,255,.72)}
.knowledge-revision-item>div{display:flex;align-items:center;justify-content:space-between;gap:12px}
.knowledge-revision-item p{margin:7px 0;color:var(--ink)}
.knowledge-revision-item small{color:var(--muted)}


/* LEOS Knowledge Polish v1 */
.knowledge-editor-modal{
  width:min(820px,100%);
  max-height:min(90dvh,900px);
  overflow:auto;
  overscroll-behavior:contain;
}
.knowledge-editor-form{margin-top:2px}
.knowledge-editor-form .field{min-width:0}
.knowledge-editor-modal textarea#knowledgeBody{min-height:260px;line-height:1.55}
.knowledge-editor-actions{
  position:sticky;
  bottom:-22px;
  z-index:4;
  padding:14px 0 2px;
  margin-top:18px;
  background:linear-gradient(180deg,rgba(255,255,255,.88),#fff 28%);
  border-top:1px solid var(--line);
}
.knowledge-category-modal .eyebrow,
.knowledge-editor-modal .eyebrow{display:block;margin-bottom:3px}
.knowledge-detail.hidden{display:none!important}

@media(max-width:600px){
  .knowledge-modal-bg{align-items:flex-end;justify-content:stretch;padding:0}
  .knowledge-modal-bg .modalbox{
    width:100%;
    max-width:none;
    max-height:calc(100dvh - env(safe-area-inset-top,0px) - 10px);
    border-radius:22px 22px 0 0;
    border-left:0;
    border-right:0;
    border-bottom:0;
    padding:18px 16px calc(14px + env(safe-area-inset-bottom,0px));
    overflow:auto;
  }
  .knowledge-modal-bg .modal-head{
    top:-18px;
    margin:0 -2px 12px;
    padding:8px 2px 12px;
    background:rgba(255,255,255,.97);
    backdrop-filter:blur(8px);
  }
  .knowledge-modal-bg .modal-head h2{font-size:1.45rem;line-height:1.15}
  .knowledge-editor-form{grid-template-columns:1fr;gap:12px}
  .knowledge-editor-form .full,.knowledge-editor-spacer{grid-column:auto}
  .knowledge-editor-modal textarea#knowledgeBody{min-height:38dvh;max-height:none}
  .knowledge-editor-actions{
    bottom:calc(-14px - env(safe-area-inset-bottom,0px));
    margin:18px -16px calc(-14px - env(safe-area-inset-bottom,0px));
    padding:12px 16px calc(14px + env(safe-area-inset-bottom,0px));
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .knowledge-editor-actions button{width:100%}
  .knowledge-revision-modal .knowledge-revision-list{max-height:none;overflow:visible}
}


/* LEOS Knowledge Polish v1.1 – mobile header clearance + summary-id fix */
@media(max-width:600px){
  .knowledge-modal-bg{
    /* Keep the sheet entirely below the fixed 64px LEOS mobile header. */
    padding:
      calc(64px + env(safe-area-inset-top,0px))
      0
      0;
  }
  .knowledge-modal-bg .modalbox{
    max-height:100%;
  }
  .knowledge-modal-bg .modal-head{
    /* Never pull the Knowledge header underneath the fixed app header. */
    top:0;
    margin:0 -2px 12px;
    padding:4px 2px 12px;
  }
}


/* LEOS Pilot-R4 – Onboarding & Readiness */
.onboarding-hero{display:flex;align-items:center;justify-content:space-between;gap:24px}
.onboarding-hero h2{margin:.25rem 0 .35rem}
.onboarding-hero p{margin:0;color:var(--muted)}
.onboarding-progress{min-width:220px;text-align:right}
.onboarding-progress strong{font-size:2rem;color:var(--navy)}
.onboarding-progress>div{height:8px;border-radius:999px;background:#e9eef0;overflow:hidden;margin-top:8px}
.onboarding-progress i{display:block;height:100%;background:var(--accent);border-radius:999px}
.onboarding-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:18px 0}
.onboarding-checklist{display:grid;gap:10px}
.onboarding-check{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:12px;border:1px solid var(--line);border-radius:16px;padding:13px 14px;background:#fff}
.onboarding-check.ok{background:#f4faf7}
.onboarding-check.open{background:#fffaf0}
.onboarding-check-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;font-weight:800;background:#e9f5ef;color:#267f59}
.onboarding-check.open .onboarding-check-icon{background:#fff0cf;color:#9a6a10}
.onboarding-check p,.onboarding-next-content p{margin:3px 0 0;color:var(--muted);font-size:.92rem}
.onboarding-next-content{display:flex;align-items:center;justify-content:space-between;gap:18px}
@media(max-width:760px){
  .onboarding-hero{align-items:flex-start;flex-direction:column}
  .onboarding-progress{width:100%;min-width:0;text-align:left}
  .onboarding-grid{grid-template-columns:1fr}
  .onboarding-check{grid-template-columns:34px 1fr}
  .onboarding-check button{grid-column:2;width:max-content}
  .onboarding-next-content{align-items:flex-start;flex-direction:column}
}


/* LEOS Internal – Studio & System Center */
.system-center-grid{display:grid;grid-template-columns:1.1fr 1fr 1.2fr;gap:18px;margin-bottom:18px}
.system-center-card{min-width:0}
.system-center-content{margin-top:10px}
.system-center-title{display:flex;align-items:center;justify-content:space-between;gap:12px}
.system-center-title strong{font-size:1.2rem}
.instance-mode-chip{font-size:.72rem;letter-spacing:.08em;font-weight:800;padding:6px 9px;border-radius:999px;background:#edf3f5;color:var(--navy)}
.instance-mode-chip.mode-pilot{background:#e8f7f7;color:#147f8b}
.system-center-dl{display:grid;gap:8px;margin:14px 0 0}
.system-center-dl div{display:grid;grid-template-columns:88px 1fr;gap:10px}
.system-center-dl dt{color:var(--muted);font-size:.82rem}
.system-center-dl dd{margin:0;font-weight:650;overflow-wrap:anywhere}
.system-count-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.system-count-grid div{padding:11px;border:1px solid var(--line);border-radius:14px;background:#fafcfc}
.system-count-grid strong{display:block;font-size:1.45rem;color:var(--navy)}
.system-count-grid span{display:block;color:var(--muted);font-size:.8rem;margin-top:2px}
.feature-chip-list{display:flex;flex-wrap:wrap;gap:8px}
.feature-chip{padding:7px 9px;border-radius:999px;border:1px solid var(--line);font-size:.78rem;background:#fafcfc}
.feature-chip.on{background:#f1faf6;color:#24724f}
.feature-chip.off{background:#f5f5f5;color:#7b858a}
@media(max-width:900px){.system-center-grid{grid-template-columns:1fr 1fr}.system-center-card:last-child{grid-column:1/-1}}
@media(max-width:600px){.system-center-grid{grid-template-columns:1fr}.system-center-card:last-child{grid-column:auto}}
