:root{
  --red:#d71920;
  --dark:#121212;
  --ink:#202020;
  --muted:#6c6f75;
  --line:#e6e7ea;
  --soft:#f6f7f8;
  --white:#fff;
  --radius:16px;
  --shadow:0 10px 32px rgba(0,0,0,.08);
  --calendar-slot-height:46px;
  --admin-topbar-height:74px;
  --admin-topbar-offset:88px;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--admin-topbar-offset);max-width:100%;overflow-x:hidden}
body{margin:0;background:var(--white);color:var(--ink);max-width:100%;overflow-x:hidden}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
body.hide-purchase-prices .sensitive-purchase-price,
body.hide-purchase-prices #partAveragePurchasePreview,
body.hide-purchase-prices #inventorySummaryValue,
body.hide-purchase-prices #inventorySummaryDeductedValue,
body.hide-purchase-prices #inventorySummaryAverageNet,
body.hide-purchase-prices #inventorySummaryMargin{
  color:transparent!important;
  text-shadow:0 0 9px rgba(32,32,32,.52);
  user-select:none;
}
body.hide-purchase-prices input[name="purchase_price_net"],
body.hide-purchase-prices [data-product-registry-field="purchase_price_net"]{
  color:transparent!important;
  text-shadow:0 0 8px rgba(32,32,32,.55);
  caret-color:var(--red);
}
body.hide-purchase-prices input[name="purchase_price_net"]::placeholder,
body.hide-purchase-prices [data-product-registry-field="purchase_price_net"]::placeholder{
  color:#777;
  text-shadow:none;
}

.topbar{
  position:sticky;
  top:0;
  z-index:50;
  background:#fff;
  border-bottom:1px solid var(--line);
  box-shadow:0 2px 14px rgba(0,0,0,.04);
}
.nav{
  max-width:1220px;
  margin:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:16px 22px;
  gap:22px;
}
.logo{
  display:flex;
  align-items:center;
  gap:10px;
}
.logo-mark{
  width:40px;
  height:40px;
  flex:0 0 40px;
  background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='%23d71920' d='M59.4 36.1v-8.2l-6.5-1.8a21.5 21.5 0 0 0-1.9-4.5l3.5-5.7-5.8-5.8-5.7 3.5a21.5 21.5 0 0 0-4.5-1.9L36.7 4h-8.2l-1.8 6.5a21.5 21.5 0 0 0-4.5 1.9l-5.7-3.5-5.8 5.8 3.5 5.7a21.5 21.5 0 0 0-1.9 4.5L4 27.8v8.2l6.5 1.8a21.5 21.5 0 0 0 1.9 4.5l-3.5 5.7 5.8 5.8 5.7-3.5a21.5 21.5 0 0 0 4.5 1.9l1.8 6.5h8.2l1.8-6.5a21.5 21.5 0 0 0 4.5-1.9l5.7 3.5 5.8-5.8-3.5-5.7a21.5 21.5 0 0 0 1.9-4.5Z'/%3E%3Ccircle cx='32' cy='32' r='10' fill='white'/%3E%3C/svg%3E");
  transform-origin:50% 50%;
  animation:gear-slow-turn 150s ease-in-out infinite alternate;
  will-change:transform;
}
.logo-image{
  width:42px;
  height:42px;
  object-fit:contain;
  flex:0 0 42px;
}
body.has-site-logo-image .topbar .logo-mark,
body.has-site-logo-image .footer .logo-mark{
  display:none;
}
.logo-mark.gear-kick{animation:gear-click-kick .48s cubic-bezier(.2,.82,.18,1) 1}
@keyframes gear-slow-turn{
  from{transform:rotate(-18deg)}
  to{transform:rotate(18deg)}
}
@keyframes gear-click-kick{
  from{transform:rotate(0deg)}
  to{transform:rotate(var(--gear-click-turn, 240deg))}
}
.logo-wordmark{
  display:flex;
  flex-direction:column;
  font-weight:900;
  letter-spacing:.5px;
  line-height:1;
  color:#111;
}
.logo-black{color:#111}
.logo-red{color:var(--red)}
.tagline{
  display:block;
  font-size:11px;
  font-weight:700;
  color:#555;
  letter-spacing:.8px;
  margin-top:2px;
}
.nav-links{
  display:flex;
  gap:22px;
  font-size:13px;
  font-weight:800;
  text-transform:uppercase;
}
.nav-links a.active,.nav-links a:hover{color:var(--red)}
.phone-pill,.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  border:0;
  background:var(--red);
  color:#fff;
  font-weight:850;
  border-radius:7px;
  padding:13px 18px;
  cursor:pointer;
}
.btn.dark{background:#181818}
.btn.ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.7)}
.btn.light{background:#fff;color:#111;border:1px solid var(--line)}
.btn.small{padding:8px 12px;font-size:13px}
.btn.tiny{padding:6px 9px;font-size:12px}
.help-button{
  width:36px;
  min-width:36px;
  height:36px;
  padding:0;
  border-radius:999px;
  font-weight:950;
}

.hero{
  min-height:570px;
  display:flex;
  align-items:center;
  color:#fff;
  background:
    linear-gradient(90deg,rgba(0,0,0,.90) 0%,rgba(0,0,0,.78) 36%,rgba(0,0,0,.42) 68%,rgba(0,0,0,.28) 100%),
    radial-gradient(circle at 76% 32%,rgba(215,25,32,.20),transparent 28%),
    url("/static/media/kosmotors-pysy-kanavilla.jpg") center right/cover no-repeat;
  position:relative;
  overflow:hidden;
}
.hero:after{
  content:"";
  position:absolute;
  right:-80px;
  bottom:-80px;
  width:540px;
  height:300px;
  border-radius:50%;
  background:linear-gradient(135deg,rgba(255,255,255,.1),rgba(255,255,255,0));
  transform:rotate(-12deg);
  z-index:0;
  pointer-events:none;
}
.hero-inner{
  max-width:1220px;
  margin:auto;
  padding:70px 22px 110px;
  position:relative;
  z-index:1;
  width:100%;
}
.hero h1{
  font-size:clamp(42px,6vw,72px);
  line-height:.95;
  text-transform:uppercase;
  margin:0 0 24px;
  font-weight:950;
  letter-spacing:-2px;
}
.hero-stamp{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  margin:0 0 22px;
  padding:8px 18px;
  border:2px solid var(--red);
  border-radius:4px;
  background:rgba(215,25,32,.88);
  color:#fff;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:14px;
  font-weight:950;
  transform:rotate(-2deg);
  box-shadow:0 14px 34px rgba(215,25,32,.25);
}
.hero h1 strong{color:var(--red)}
.hero p{
  max-width:620px;
  color:#eee;
  font-weight:650;
  font-size:18px;
  line-height:1.55;
}
.hero-actions{
  display:flex;
  gap:16px;
  flex-wrap:wrap;
  margin-top:28px;
}

.feature-strip{
  background:#121212;
  color:#fff;
  margin-top:-80px;
  position:relative;
  z-index:4;
}
.feature-strip-inner{
  max-width:1220px;
  margin:auto;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:0;
}
.feature{
  padding:25px 22px;
  border-left:1px solid rgba(255,255,255,.08);
}
.feature:first-child{border-left:0}
.feature-icon{color:var(--red);font-size:26px}
.feature h3{
  font-size:14px;
  text-transform:uppercase;
  margin:8px 0 4px;
}
.feature p{
  font-size:12px;
  color:#c9c9c9;
  margin:0;
  line-height:1.4;
}

.section{
  max-width:1220px;
  margin:auto;
  padding:58px 22px;
}
.section-title{
  font-size:32px;
  margin:0 0 24px;
  font-weight:920;
  letter-spacing:-.6px;
}
.section-title:after{
  content:"";
  display:block;
  width:40px;
  height:3px;
  background:var(--red);
  margin-top:10px;
}
.grid{display:grid;gap:16px}
.grid.cards{grid-template-columns:repeat(4,1fr)}
.grid.services{grid-template-columns:repeat(5,1fr)}
.card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:22px;
  min-height:150px;
}
.card h3{margin:0 0 10px;font-size:18px}
.card p{color:var(--muted);font-size:14px;line-height:1.5}
.icon{font-size:30px;color:var(--red);margin-bottom:12px}
.arrow{font-size:24px;color:var(--red);font-weight:900}
.service-card{padding:0;overflow:hidden}
.image-block{
  height:145px;
  background-color:#2b2f35;
  background-size:cover;
  background-position:center;
  position:relative;
}
.image-block:before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.06),rgba(0,0,0,.32));
}
.image-agri{background-image:url("/static/media/service-agri.webp")}
.image-earthmoving{background-image:url("/static/media/service-earthmoving.webp")}
.image-property{background-image:url("/static/media/service-property.webp")}
.image-fleet{background-image:url("/static/media/service-fleet.webp")}
.image-workshop{background-image:url("/static/media/service-heavy-field.webp")}
.service-card h3{
  font-size:15px;
  text-transform:uppercase;
  padding:15px 17px;
  margin:0;
  display:flex;
  justify-content:space-between;
}
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
}
.gallery-card{
  margin:0;
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  overflow:hidden;
  box-shadow:var(--shadow);
}
.gallery-image{
  display:block;
  width:100%;
  aspect-ratio:4 / 3;
  object-fit:cover;
}
.gallery-card figcaption{
  padding:14px 16px 18px;
  color:var(--muted);
  font-size:14px;
  line-height:1.45;
}
.principal-carousel-section{
  max-width:1220px;
  margin:0 auto;
  padding:36px 22px 54px;
}
.principal-carousel-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:18px;
}
.principal-carousel-track{
  display:flex;
  gap:14px;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;
  padding:2px 2px 12px;
}
.principal-carousel-track::-webkit-scrollbar{height:8px}
.principal-carousel-track::-webkit-scrollbar-thumb{background:#d3d6db;border-radius:999px}
.principal-logo-card{
  flex:0 0 190px;
  height:104px;
  display:grid;
  place-items:center;
  gap:8px;
  scroll-snap-align:start;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  box-shadow:0 8px 24px rgba(0,0,0,.05);
  padding:16px;
  color:#222;
  text-align:center;
  font-size:12px;
  font-weight:900;
}
.principal-logo-card img{
  display:block;
  width:100%;
  height:66px;
  object-fit:contain;
}
.principal-logo-card span{
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.why{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:36px;
  align-items:center;
}
.why-list{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.why-item{display:flex;gap:13px}
.why-item b{display:block;margin-bottom:5px}
.portal-promo{
  background:linear-gradient(135deg,#f0f1f3,#fff);
  border:1px solid var(--line);
  border-radius:22px;
  padding:38px;
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:26px;
  box-shadow:var(--shadow);
}
.phone-mock{
  width:160px;
  height:290px;
  background:#111;
  border-radius:28px;
  margin:auto;
  padding:14px;
}
.phone-screen{
  height:100%;
  background:#fff;
  border-radius:20px;
  color:#111;
  padding:18px;
  font-size:12px;
}
.phone-row{border-bottom:1px solid #eee;padding:9px 0}

.banner{
  background:linear-gradient(90deg,rgba(0,0,0,.86),rgba(0,0,0,.65)),linear-gradient(135deg,#2c2c2c,#111);
  color:#fff;
}
.banner-inner{
  max-width:1220px;
  margin:auto;
  padding:34px 22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}

.footer{
  background:#f3f4f5;
  border-top:1px solid var(--line);
}
.footer-inner{
  max-width:1220px;
  margin:auto;
  padding:42px 22px;
  display:grid;
  grid-template-columns:1.5fr 1fr 1.2fr 1.2fr;
  gap:32px;
}

.muted{color:var(--muted)}
.form{display:grid;gap:12px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.booking-layout{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  align-items:start;
}
.form-row.product-price-row{grid-template-columns:repeat(3,minmax(0,1fr))}
.form-row.phone-entry-row{grid-template-columns:minmax(0,1fr) 150px minmax(0,1fr)}
.input-action-group{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:stretch;
  min-width:0;
}
.input-action-group .btn{
  align-self:stretch;
  white-space:nowrap;
}
input,textarea,select{
  width:100%;
  border:1px solid var(--line);
  border-radius:10px;
  padding:12px;
  background:#fff;
}
textarea{min-height:110px;resize:vertical}
.rental-checkbox-panel{
  border:1px solid var(--line);
  border-radius:10px;
  padding:14px;
  background:#f8fafc;
}
.rental-checkbox-panel legend{
  padding:0 6px;
  color:var(--muted);
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
}
.rental-checkbox-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.rental-checkbox-grid label{
  display:flex;
  align-items:flex-start;
  gap:8px;
  min-width:0;
  padding:10px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  font-weight:800;
  line-height:1.25;
}
.rental-checkbox-grid input{
  width:auto;
  margin-top:2px;
}
.field-wrap,
.product-registry-field{
  display:grid;
  gap:6px;
  width:100%;
  min-width:0;
  color:var(--muted);
  font-size:12px;
  font-weight:900;
  letter-spacing:.035em;
  text-transform:uppercase;
}
.field-wrap input,
.field-wrap textarea,
.field-wrap select,
.product-registry-field input,
.product-registry-field textarea,
.product-registry-field select{
  color:#111;
  font-size:16px;
  font-weight:650;
  letter-spacing:0;
  text-transform:none;
}
.field-label{
  line-height:1.2;
}
.notice{
  padding:12px 14px;
  background:#fff5f5;
  border:1px solid #ffd0d0;
  color:#8b1117;
  border-radius:10px;
}
.notice.success{
  background:#eef8f0;
  border-color:#bee5c8;
  color:#14612d;
}
.notice.warning{
  background:#fff8e8;
  border-color:#f0cf84;
  color:#7a4b00;
}
.import-purpose-note{
  margin:8px 0 0;
}
.consent-line{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#f8fafc;
  font-weight:750;
}
.consent-line input{
  width:auto;
  margin-top:3px;
}
.vehicle-data-import-body{
  display:grid;
  gap:12px;
}
.sheet-field-with-action .input-action-group input{
  min-width:0;
}
.work-action-notice{
  margin:0 0 12px;
}
.invoice-missing-notice{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin:0;
}

.admin-shell{min-height:100vh;background:#f6f7f8}
.admin-login-shell{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:22px;
  background:
    radial-gradient(circle at 20% 10%, rgba(228,16,28,.16), transparent 30%),
    linear-gradient(135deg,#f7f7f7,#e8ecef);
}
.admin-login-card{
  width:min(440px,100%);
  border:1px solid var(--line);
  border-radius:24px;
  background:#fff;
  box-shadow:0 24px 80px rgba(0,0,0,.16);
  padding:26px;
}
.login-brand{
  margin-bottom:20px;
}
.admin-login-card h1{
  margin:0 0 6px;
}
.admin-layout{
  max-width:1400px;
  margin:auto;
  padding:24px;
  display:grid;
  grid-template-columns:260px 1fr;
  gap:22px;
}
.sidebar{
  background:#111;
  color:#fff;
  border-radius:22px;
  padding:24px;
  position:sticky;
  top:92px;
  height:calc(100vh - 120px);
}
.sidebar a{
  display:block;
  padding:12px 10px;
  border-radius:10px;
  color:#ddd;
  font-weight:700;
}
.sidebar a:hover{background:#242424;color:#fff}
.admin-main{display:grid;gap:22px}
.site-admin-body{
  min-height:100vh;
  background:#f4f6f8;
}
@supports (min-height:100dvh){
  .site-admin-body{
    min-height:100dvh;
  }
}
.site-admin-topbar{
  z-index:1200;
}
.site-admin-actions{
  display:flex;
  align-items:center;
  gap:8px;
}
.site-admin-brand{
  position:relative;
  display:flex;
  align-items:center;
  gap:10px;
}
.site-admin-gear-panel{
  position:absolute;
  top:calc(100% + 10px);
  left:0;
  z-index:3200;
  width:min(310px,calc(100vw - 28px));
  display:none;
  gap:6px;
  padding:10px;
  border:1px solid var(--line);
  border-radius:16px;
  background:rgba(255,255,255,.98);
  box-shadow:0 20px 58px rgba(0,0,0,.18);
}
.site-admin-gear-panel.open{
  display:grid;
}
.site-admin-gear-panel a,
.site-admin-gear-panel button{
  border:0;
  border-radius:12px;
  background:transparent;
  color:#111;
  padding:12px 14px;
  text-align:left;
  font-weight:900;
  cursor:pointer;
}
.site-admin-gear-panel a:hover,
.site-admin-gear-panel button:hover{
  background:#111;
  color:#fff;
}
.site-admin-shell{
  max-width:1440px;
  margin:0 auto;
  padding:22px;
  min-height:calc(100dvh - 98px);
  overflow:visible;
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr);
  gap:18px;
  align-items:start;
}
.site-admin-shell-single{
  grid-template-columns:1fr;
}
.site-admin-editor,
.site-admin-preview{
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  box-shadow:var(--shadow);
  padding:18px;
  min-height:0;
}
.site-admin-editor{
  border:0;
  background:transparent;
  box-shadow:none;
  padding:0;
}
.site-admin-editor h1{
  margin:0;
  font-size:clamp(24px,4vw,34px);
}
.site-admin-editor{
  max-height:none;
  overflow:visible;
  display:flex;
  flex-direction:column;
}
.site-admin-editor > div:first-child{
  flex:0 0 auto;
  margin:0 0 10px;
}
.site-admin-editor form{
  min-height:0;
  display:flex;
  flex:0 0 auto;
  flex-direction:column;
}
.site-field-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:16px;
}
.site-field-grid.site-admin-card-stack{
  display:block;
  min-height:min(560px, calc(100dvh - 190px));
  flex:0 0 auto;
}
.site-admin-card-stack{
  min-height:0;
}
.site-admin-view-card{
  min-height:min(520px, calc(100dvh - 190px));
  height:auto;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  padding:14px;
  box-shadow:var(--shadow);
}
.site-admin-view-card.active{
  display:flex;
  flex-direction:column;
}
.site-admin-view-card[hidden]{
  display:none!important;
}
.site-admin-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:12px;
}
.site-admin-card-head h2{
  margin:0;
  font-size:20px;
}
.site-admin-card-controls{
  display:flex;
  gap:6px;
  flex:0 0 auto;
}
.site-admin-card-controls .btn{
  min-width:42px;
  min-height:34px;
  padding:7px 10px;
}
.site-admin-card-body{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  min-height:0;
  flex:1;
  max-height:calc(100dvh - 280px);
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  padding-right:4px;
}
.site-admin-card-body > .section-head.compact{
  grid-column:1/-1;
}
.site-admin-preview.site-admin-view-card{
  display:flex;
  flex-direction:column;
  max-height:none;
}
.site-admin-preview-body{
  display:block;
}
.site-field{
  display:grid;
  gap:6px;
}
.site-field.wide{
  grid-column:1/-1;
}
.site-field label{
  color:#666;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
}
.site-field input[type="text"],
.site-field input[type="password"],
.site-field input[type="number"],
.site-field input[type="date"],
.site-field select,
.site-field textarea{
  width:100%;
  border:1px solid var(--line);
  border-radius:8px;
  padding:11px 12px;
  background:#fff;
  font-weight:650;
}
.site-field textarea{
  resize:vertical;
}
.site-admin-bottom-nav{
  position:fixed;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  z-index:1300;
  display:flex;
  gap:8px;
  align-items:center;
  padding:8px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(255,255,255,.97);
  box-shadow:0 16px 42px rgba(0,0,0,.14);
}
.site-admin-bottom-nav a{
  display:grid;
  place-items:center;
  min-width:118px;
  min-height:42px;
  border-radius:999px;
  color:#222;
  font-weight:900;
}
.site-admin-bottom-nav a.active,
.site-admin-bottom-nav a:hover{
  background:#111;
  color:#fff;
}
.site-admin-bottom-nav.grouped{
  width:min(860px,calc(100vw - 24px));
  min-height:62px;
  display:grid;
  grid-template-columns:1fr 1fr 1fr 72px 1fr 1fr;
  gap:4px;
  align-items:center;
  border-radius:999px;
  padding:7px 10px;
  backdrop-filter:blur(12px);
}
.site-admin-bottom-nav.grouped > button,
.site-admin-bottom-nav.grouped .bottom-nav-group > button{
  min-height:42px;
  width:100%;
  border:0;
  border-radius:999px;
  background:transparent;
  color:#333;
  font-weight:900;
  cursor:pointer;
}
.site-admin-bottom-nav.grouped > button:hover,
.site-admin-bottom-nav.grouped > button.active,
.site-admin-bottom-nav.grouped .bottom-nav-group > button:hover,
.site-admin-bottom-nav.grouped .bottom-nav-group.open > button{
  background:#111;
  color:#fff;
}
.site-admin-bottom-nav.grouped > .fab-main,
.site-admin-bottom-nav.grouped > .fab-main:hover,
.site-admin-bottom-nav.grouped > .fab-main:focus-visible{
  width:58px;
  height:58px;
  justify-self:center;
  transform:translateY(-15px);
  background:var(--red)!important;
  color:#fff!important;
}
.site-admin-bottom-nav.grouped > .save-main{
  display:grid;
  place-items:center;
}
.save-icon{
  position:relative;
  width:24px;
  height:24px;
  display:block;
  border:2px solid currentColor;
  border-radius:4px;
}
.save-icon::before{
  content:"";
  position:absolute;
  left:4px;
  right:4px;
  top:3px;
  height:6px;
  border:2px solid currentColor;
  border-top:0;
}
.save-icon::after{
  content:"";
  position:absolute;
  left:5px;
  right:5px;
  bottom:4px;
  height:7px;
  border:2px solid currentColor;
  border-bottom:0;
  border-radius:2px 2px 0 0;
}
.site-admin-bottom-nav.grouped .bottom-menu{
  z-index:1320;
}
.site-admin-scroll-highlight{
  outline:3px solid rgba(213,0,28,.35);
  outline-offset:4px;
  transition:outline-color .3s ease;
}
.site-upload-row{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
}
.site-admin-savebar{
  position:sticky;
  bottom:0;
  z-index:4;
  display:flex;
  gap:12px;
  align-items:center;
  justify-content:space-between;
  margin-top:14px;
  padding:12px 0 0;
  background:linear-gradient(180deg,rgba(255,255,255,.78),#fff 42%);
}
.site-admin-savebar .notice{
  margin:0;
  flex:1;
}
.calendar-exception-actions{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
}
.site-admin-preview{
  position:sticky;
  top:92px;
}
.site-preview-hero{
  min-height:360px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  gap:12px;
  padding:24px;
  border-radius:14px;
  color:#fff;
  background:#151515 center/cover no-repeat;
  overflow:hidden;
}
.site-preview-hero h2{
  margin:0;
  max-width:620px;
  font-size:40px;
  line-height:1;
  text-transform:uppercase;
}
.site-preview-hero p{
  margin:0;
  max-width:640px;
}
.site-principal-editor{
  margin-top:14px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fbfbfb;
}
.site-principal-editor h2{
  margin:0 0 4px;
  font-size:18px;
}
.principal-logo-admin-list{
  display:grid;
  gap:10px;
}
.principal-logo-admin-row{
  display:grid;
  grid-template-columns:120px minmax(0,1fr);
  gap:12px;
  align-items:start;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  padding:12px;
}
.principal-logo-admin-preview{
  height:86px;
  display:grid;
  place-items:center;
  border:1px dashed #cfd5dc;
  border-radius:10px;
  background:#f8fafc;
  color:var(--muted);
  font-weight:900;
}
.principal-logo-admin-preview img{
  max-width:100%;
  max-height:70px;
  object-fit:contain;
}
.principal-logo-admin-fields{
  display:grid;
  gap:8px;
}
.site-preview-principals{
  margin-top:16px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
}
.site-preview-principals h3{
  margin:0 0 10px;
}
.site-preview-principals .principal-logo-card{
  flex-basis:142px;
  height:88px;
}
.site-preview-principals .principal-logo-card img{
  height:52px;
}
.section-head.compact{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  margin-bottom:16px;
}
.section-head.compact h2{margin:0 0 6px}
.admin-form{max-width:980px}
.admin-form h3,
.admin-section h3{
  margin:0 0 12px;
}
.management-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin-bottom:18px;
}
.management-card{
  max-width:none;
  border:1px solid var(--line);
  border-radius:16px;
  padding:16px;
  background:#fff;
  box-shadow:0 8px 24px rgba(0,0,0,.04);
}
.form-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}
.panel-close-button{
  min-width:86px;
  justify-content:center;
}
.reception-context-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin:12px 0;
}
.reception-context-grid.hidden{display:none}
.reception-context-list{
  display:grid;
  gap:8px;
}
.reception-context-item{
  width:100%;
  border:1px solid var(--line);
  border-radius:12px;
  padding:10px 12px;
  background:#fff;
  text-align:left;
  cursor:pointer;
}
.reception-context-item strong,
.reception-context-item span{
  display:block;
}
.reception-context-item span{
  color:var(--muted);
  font-size:12px;
  margin-top:3px;
}
.reception-context-history{
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px;
  align-items:center;
}
.live-tax-note{
  margin:8px 0 0;
  padding:10px 12px;
  border:1px solid #cfe4ff;
  border-radius:12px;
  background:#f3f8ff;
  color:#27445f;
  font-weight:800;
}
.live-tax-note[data-tax-treatment="margin"]{
  border-color:#f4d58f;
  background:#fff8e6;
  color:#6d4b00;
}
.live-tax-note[data-tax-treatment="zero"]{
  border-color:#d8dde4;
  background:#f6f7f9;
  color:#334155;
}
.inventory-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 14px;
}
.inventory-tabs button{
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
  color:#222;
  padding:10px 14px;
  font-weight:900;
  cursor:pointer;
}
.inventory-tabs button.active{
  border-color:#111;
  background:#111;
  color:#fff;
  box-shadow:0 8px 22px rgba(0,0,0,.12);
}
.inventory-panel{
  display:none;
}
.inventory-panel.active{
  display:block;
}
.form-section{
  border:1px solid var(--line);
  border-radius:14px;
  padding:14px;
  margin:0 0 12px;
  background:#fbfbfb;
}
.form-section h4{
  margin:0 0 10px;
  color:var(--muted);
  font-size:12px;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.parts-toolbar{
  grid-template-columns:minmax(180px,1.15fr) minmax(145px,.7fr) minmax(150px,.8fr) minmax(260px,1.25fr) auto;
}
.part-tracking-summary{
  display:flex;
  flex-direction:column;
  gap:3px;
  min-width:112px;
  color:var(--muted);
  font-size:12px;
  font-weight:800;
  line-height:1.25;
}
.parts-browser-provider-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 10px;
}
.parts-browser-provider-tabs .btn{
  min-width:116px;
}
.parts-browser-provider-tabs .btn.active{
  border-color:var(--brand);
  background:#fff2f2;
  color:var(--brand-dark);
  box-shadow:0 0 0 2px rgba(220,20,31,.08);
}
.parts-browser-toolbar{
  grid-template-columns:minmax(180px,1.4fr) minmax(220px,1fr) 90px auto minmax(160px,.7fr) auto auto auto auto;
}
.parts-browser-agco-assist{
  display:grid;
  grid-template-columns:minmax(180px,.9fr) minmax(240px,1.4fr) auto;
  gap:8px;
  align-items:start;
  margin:8px 0 12px;
}
.parts-browser-agco-status{
  min-height:44px;
  border:1px solid var(--line);
  border-radius:8px;
  padding:10px 12px;
  background:#fff;
  color:var(--muted);
  font-weight:800;
}
.parts-browser-agco-status.blocked{
  border-color:#f0b8b8;
  background:#fff5f5;
  color:#8f1d1d;
}
.parts-browser-agco-status.success{
  border-color:#b9d8b9;
  background:#f5fbf5;
  color:#28632d;
}
.parts-browser-agco-assist textarea{
  min-height:44px;
  resize:vertical;
}
.parts-browser-layout{
  display:grid;
  grid-template-columns:minmax(220px,.35fr) minmax(0,1fr);
  gap:14px;
  min-height:min(68vh, 760px);
}
.parts-browser-models,
.parts-browser-assemblies,
.parts-browser-detail,
.parts-browser-figure{
  min-width:0;
}
.parts-browser-models,
.parts-browser-assemblies{
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  overflow:hidden;
}
.parts-browser-detail{
  display:grid;
  gap:12px;
}
.parts-browser-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-height:44px;
  padding:10px 12px;
  border-bottom:1px solid var(--line);
  background:#f8fafc;
}
.parts-browser-head h3{
  margin:0;
  font-size:14px;
}
.parts-browser-list{
  display:grid;
  gap:0;
  max-height:min(58vh, 640px);
  overflow:auto;
  overscroll-behavior:contain;
}
.parts-browser-list-row{
  display:grid;
  gap:3px;
  width:100%;
  padding:10px 12px;
  border:0;
  border-bottom:1px solid var(--line);
  background:#fff;
  text-align:left;
  cursor:pointer;
}
.parts-browser-list-row:hover,
.parts-browser-list-row.active{
  background:#fff5f5;
}
.parts-browser-list-row strong,
.parts-browser-list-row small{
  overflow-wrap:anywhere;
}
.parts-browser-list-row small{
  color:var(--muted);
  font-weight:800;
}
.parts-browser-meta{
  border:1px solid var(--line);
  border-radius:12px;
  padding:12px;
  background:#fff;
}
.parts-browser-meta h3{
  margin:0 0 4px;
}
.parts-browser-split{
  display:grid;
  grid-template-columns:minmax(220px,.36fr) minmax(0,1fr);
  gap:12px;
}
.parts-browser-figure{
  display:grid;
  align-content:start;
  gap:10px;
  min-height:280px;
  border:1px solid var(--line);
  border-radius:12px;
  padding:12px;
  background:#fff;
}
.parts-browser-figure img{
  display:block;
  width:100%;
  max-height:min(52vh, 580px);
  object-fit:contain;
  background:#f8fafc;
  border:1px solid var(--line);
  border-radius:8px;
}
.parts-browser-figure-head{
  display:flex;
  justify-content:space-between;
  gap:10px;
  color:var(--muted);
}
.parts-browser-empty-figure{
  display:grid;
  place-items:center;
  gap:4px;
  min-height:240px;
  color:var(--muted);
  text-align:center;
  border:1px dashed var(--line);
  border-radius:8px;
  background:#f8fafc;
}
.parts-browser-results{
  max-height:min(48vh, 520px);
  overflow:auto;
}
.parts-browser-results .table thead th{
  position:sticky;
  top:0;
  z-index:2;
  background:#fff;
}
.parts-browser-linked{
  display:inline-flex;
  margin-left:8px;
}
.parts-browser-empty-copy{
  padding:12px;
}
.parts-browser-catalog-row td{
  background:#fff;
}
.parts-browser-stock-card,
.parts-browser-stock-list{
  display:grid;
  gap:10px;
}
.parts-browser-stock-head{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:flex-start;
}
.parts-browser-stock-form{
  display:grid;
  grid-template-columns:minmax(160px,1fr) minmax(130px,.55fr) minmax(150px,.75fr) auto;
  gap:8px;
  align-items:end;
}
.parts-browser-stock-form + .parts-browser-stock-form{
  margin-top:4px;
}
.parts-browser-stock-form textarea{
  min-height:72px;
}
.parts-browser-stock-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
  padding:8px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
}
.parts-browser-stock-row .parts-browser-list-row{
  border:0;
  padding:0;
  background:transparent;
}
.inventory-toolbar{
  grid-template-columns:minmax(180px,1fr) minmax(140px,.55fr) auto;
}
.inventory-hide-intangible{
  grid-column:1 / -1;
  justify-self:start;
}
.inventory-table input{
  width:110px;
}
.inventory-count-card .table-scroll{
  max-height:min(62vh, 720px);
  overflow:auto;
  overscroll-behavior:contain;
}
.inventory-count-card .table-scroll thead th{
  position:sticky;
  top:0;
  z-index:2;
  background:#f8fafc;
}
.inventory-sort-button{
  display:inline-flex;
  align-items:center;
  gap:6px;
  width:100%;
  min-height:34px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--muted);
  font-weight:900;
  text-align:left;
  text-transform:uppercase;
  cursor:pointer;
}
.inventory-sort-button:focus-visible{
  outline:2px solid var(--red);
  outline-offset:3px;
}
.inventory-sort-button.active .inventory-sort-label{
  color:var(--ink);
}
.sort-arrows{
  display:inline-flex;
  flex-direction:column;
  gap:0;
  line-height:.82;
  font-size:10px;
}
.sort-arrow{
  color:#fff;
  -webkit-text-stroke:1px #111;
  text-shadow:0 0 1px #111, 0 1px 0 #111;
}
.sort-arrow.active{
  color:var(--red);
  -webkit-text-stroke:0;
  text-shadow:none;
}
.inventory-suggest-menu button{
  grid-template-columns:minmax(120px,.34fr) minmax(220px,1fr);
}
.inventory-delta{
  font-weight:900;
}
.inventory-delta.changed{
  color:var(--red);
}
.danger-zone-card{
  border-color:#f1c8c8;
  background:#fff8f8;
}
.inventory-print-root{
  display:none;
}
.inventory-print-sheet{
  color:#111;
  font-family:Arial, sans-serif;
}
.inventory-print-head{
  display:flex;
  justify-content:space-between;
  gap:18px;
  border-bottom:2px solid #111;
  padding-bottom:8px;
  margin-bottom:10px;
}
.inventory-print-head h1{
  margin:0;
  font-size:22px;
}
.inventory-print-meta{
  display:grid;
  gap:2px;
  text-align:right;
  font-size:11px;
}
.inventory-print-summary{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:6px;
  margin-bottom:10px;
}
.inventory-print-summary div{
  border:1px solid #cbd5e1;
  border-radius:4px;
  padding:5px 6px;
}
.inventory-print-summary span{
  display:block;
  color:#475569;
  font-size:8px;
  font-weight:800;
  text-transform:uppercase;
}
.inventory-print-summary strong{
  display:block;
  font-size:12px;
}
.inventory-print-table{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
}
.inventory-print-table th,
.inventory-print-table td{
  border:1px solid #cbd5e1;
  padding:4px;
  font-size:9px;
  line-height:1.2;
  vertical-align:top;
}
.inventory-print-table th{
  background:#f1f5f9;
  font-size:8px;
  text-transform:uppercase;
}
.inventory-print-table .count-cell{
  height:18px;
}
.workday-card{
  margin-bottom:16px;
}
.workday-toolbar{
  grid-template-columns:minmax(120px,.55fr) minmax(190px,.75fr) auto auto minmax(220px,1fr);
  align-items:stretch;
}
.workday-start-field{
  display:grid;
  gap:5px;
  margin:0;
  color:var(--muted);
  font-size:12px;
  font-weight:900;
  line-height:1.25;
  text-transform:uppercase;
}
.workday-start-field input{
  width:100%;
  min-width:0;
}
.workday-start-field small{
  color:var(--muted);
  font-size:11px;
  font-weight:800;
  line-height:1.25;
  text-transform:none;
}
.workday-toolbar textarea{
  min-height:48px;
  resize:vertical;
}
.workday-switch-form{
  display:grid;
  gap:8px;
  margin:10px 0 12px;
  padding:10px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
}
.timer-quick-row,
.timer-detail-row{
  display:grid;
  gap:8px;
}
.timer-quick-row{
  grid-template-columns:minmax(110px,.7fr) minmax(220px,1.6fr) minmax(130px,.8fr) minmax(90px,.55fr) auto;
}
.timer-detail-row{
  grid-template-columns:minmax(0,.75fr) minmax(0,.75fr) minmax(0,1.25fr);
  align-items:end;
}
.timer-detail-row > *{min-width:0}
#historicalTimeDialog .workday-edit-grid > *{min-width:0}
#historicalTimeDialog input,
#historicalTimeDialog select,
#historicalTimeDialog textarea{max-width:100%;min-width:0;box-sizing:border-box}
#historicalTimeDialog{font-family:Arial,sans-serif}
#historicalTimeDialog .workday-edit-grid{display:grid}
#historicalTimeDialog .workday-edit-grid label{display:grid;gap:6px;font-size:13px;font-weight:700}
#historicalTimeDialog .workday-edit-grid .checkbox-row{display:flex;align-items:center}
#historicalTimeDialog .workday-edit-grid [hidden]{display:none}
#historicalTimeDialog .modal-head{
  display:flex;flex-direction:row;align-items:center;gap:8px;
  border:0;border-radius:0;box-shadow:none;padding:0 0 12px;
}
#historicalTimeDialog .modal-head h3{flex:1;font-size:20px}
#historicalTimeDialog .modal-head .icon-button{
  width:36px;height:36px;flex:0 0 36px;padding:0;
  border:1px solid var(--line);border-radius:6px;background:#fff;font-size:22px;
}
#historicalTimeDialog .dialog-layer-nav{display:none}
#historicalTimeDialog .dialog-layer-nav:has(button:enabled){display:flex}
.timer-latest-work{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:8px 10px;
  border:1px solid #d9eadf;
  border-radius:8px;
  background:#f3fbf6;
}
.timer-latest-work[hidden]{
  display:none;
}
.timer-latest-work span{
  min-width:0;
  color:#254c35;
  font-size:13px;
  font-weight:800;
  overflow-wrap:anywhere;
}
.workday-history-card{
  margin-top:14px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fbfbfb;
}
.workday-history-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.workday-history-head h4{
  margin:0;
}
.workday-history-controls{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:flex-end;
}
.workday-history-controls input{
  min-height:38px;
  border:1px solid var(--line);
  border-radius:8px;
  padding:8px 10px;
  background:#fff;
}
.workday-history-list{
  gap:7px;
}
.workday-history-day{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 12px;
  padding:2px 2px 4px;
  color:var(--muted);
  font-size:13px;
  font-weight:850;
}
.workday-history-day strong{
  color:#111;
}
.workday-action-badge{
  appearance:none;
}
.workday-action-badge > strong,
.workday-action-badge > span,
.workday-report-main strong,
.workday-report-main span{
  pointer-events:none;
}
.workday-report-item{
  display:grid;
  gap:8px;
}
.workday-report-main{
  appearance:none;
  display:grid;
  gap:4px;
  width:100%;
  padding:0;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.workday-report-main:focus-visible{
  outline:2px solid var(--red);
  outline-offset:4px;
  border-radius:8px;
}
.workday-report-actions{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.workday-edit-dialog .admin-modal-card{
  width:min(720px,calc(100vw - 28px));
}
.workday-edit-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.workday-edit-grid .wide{
  grid-column:1/-1;
}
.dialog-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin-top:14px;
}
.dialog-action-spacer{
  flex:1 1 auto;
}
.workday-summary{
  grid-template-columns:1fr 1.15fr .8fr 1fr;
}
.admin-toolbar{
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr auto auto;
  gap:10px;
  align-items:center;
  margin:14px 0;
}
.checkbox-row{
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:800;
  color:#333;
  white-space:nowrap;
}
.checkbox-row input{
  width:auto;
  margin:0;
}
.metric-strip{
  display:grid;
  grid-template-columns:1.6fr 1fr 1fr 1fr;
  gap:10px;
  margin:14px 0 18px;
}
.metric-strip div,
.metric-strip .timeline-metric-button{
  border:1px solid var(--line);
  border-radius:12px;
  padding:12px;
  background:#fafafa;
}
.metric-strip .timeline-metric-button{
  width:100%;
  color:inherit;
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.metric-strip .timeline-metric-button:hover,
.metric-strip .timeline-metric-button:focus-visible{
  border-color:#d71920;
  box-shadow:0 0 0 2px rgba(215,25,32,.12);
  outline:none;
}
.metric-strip span{
  display:block;
  color:var(--muted);
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
}
.metric-strip strong{
  display:block;
  margin-top:4px;
}
.table-scroll{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.kpi{
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:20px;
  box-shadow:var(--shadow);
}
.kpi span{font-size:13px;color:var(--muted);font-weight:800;text-transform:uppercase}
.kpi b{display:block;font-size:32px;margin-top:8px}
.workbench-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin:10px 0 18px;
}
.workbench-card{
  min-width:0;
  margin:0;
}
.workbench-card h3,
.work-queue-head h3{
  margin:0 0 9px;
}
.workbench-list{
  display:grid;
  gap:8px;
}
.workbench-item{
  display:grid;
  gap:3px;
  width:100%;
  border:1px solid var(--line);
  border-radius:10px;
  padding:10px 11px;
  background:#fff;
  color:#111;
  text-align:left;
  cursor:pointer;
}
.workbench-item:hover,
.workbench-item:focus-visible{
  border-color:var(--red);
  box-shadow:0 10px 22px rgba(0,0,0,.08);
  outline:none;
}
.workbench-item strong{
  font-size:13px;
  line-height:1.25;
}
.workbench-item span,
.workbench-empty{
  color:var(--muted);
  font-size:12px;
  font-weight:800;
}
.work-queue-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  margin-top:4px;
}
.quote-toolbar{
  grid-template-columns:minmax(240px,1fr) minmax(180px,.45fr) auto;
}
.quote-line-rows{
  display:grid;
  gap:8px;
}
.quote-line-row{
  position:relative;
  display:grid;
  grid-template-columns:minmax(92px,.6fr) minmax(150px,1fr) minmax(230px,1.6fr) repeat(2,minmax(92px,.65fr));
  gap:8px;
  align-items:end;
}
.quote-line-row datalist{display:none}
.line-field{
  display:grid;
  gap:4px;
  min-width:0;
}
.line-field-label{
  min-width:0;
  color:var(--muted);
  font-size:10px;
  font-weight:900;
  letter-spacing:.035em;
  line-height:1.15;
  overflow:hidden;
  text-overflow:ellipsis;
  text-transform:uppercase;
  white-space:nowrap;
}
.line-field input,
.line-field select{
  min-width:0;
}
.quote-line-row > .btn,
.work-sheet-line-adder > .btn{
  min-height:40px;
  align-self:end;
}
.quote-line-row .quote-line-description,
.work-sheet-line-adder .work-line-description{
  grid-column:span 2;
}
.quote-product-suggest-menu{
  position:fixed;
  z-index:2147483000;
  display:grid;
  gap:2px;
  max-height:min(340px,42vh);
  overflow:auto;
  padding:6px;
  border:1px solid #30343b;
  border-radius:8px;
  background:#242424;
  box-shadow:0 18px 42px rgba(0,0,0,.28);
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
.quote-product-suggest-menu button{
  display:grid;
  grid-template-columns:minmax(90px,.35fr) minmax(180px,1fr);
  gap:12px;
  align-items:center;
  width:100%;
  border:0;
  border-radius:6px;
  padding:7px 9px;
  background:transparent;
  color:#eef2f4;
  text-align:left;
  cursor:pointer;
}
.quote-product-suggest-menu button:hover,
.quote-product-suggest-menu button:focus-visible{
  background:#343434;
  outline:none;
}
.quote-product-suggest-menu strong{
  font-size:13px;
}
.quote-product-suggest-menu span{
  color:#bfc7cf;
  font-size:12px;
  text-align:right;
}
.quote-product-suggest-empty{
  color:#d5dce3;
  padding:8px;
  font-size:12px;
  font-weight:800;
}
.quote-customer-suggest-menu button{
  grid-template-columns:minmax(180px,1fr);
}
.quote-customer-suggest-menu strong,
.quote-customer-suggest-menu span{
  text-align:left;
}
.generic-registry-suggest-menu button{
  grid-template-columns:minmax(140px,.42fr) minmax(190px,1fr);
}
.generic-registry-suggest-menu strong,
.generic-registry-suggest-menu span{
  text-align:left;
}
.quote-line-row-note{
  grid-template-columns:minmax(130px,.4fr) minmax(280px,1fr) auto;
}
.quote-line-hidden,
.quote-line-row-note input[disabled]{
  display:none;
}
.quote-line-row-note .quote-line-description{
  grid-column:auto;
}
.context-help-card{
  max-width:620px;
}
.context-help-body{
  display:grid;
  gap:10px;
  color:var(--muted);
  line-height:1.5;
}
.context-help-body p{
  margin:0;
}
.quote-total-box{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fafafa;
  font-weight:900;
}
.panel{
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  padding:22px;
  box-shadow:var(--shadow);
}
.table{width:100%;border-collapse:collapse}
.table th,.table td{
  text-align:left;
  border-bottom:1px solid var(--line);
  padding:12px 8px;
  font-size:14px;
}
.table th{font-size:12px;color:var(--muted);text-transform:uppercase}
.table tr.is-open td{
  background:#fffdf0;
}
.status{
  display:inline-flex;
  border-radius:999px;
  padding:5px 9px;
  background:#f1f1f1;
  font-size:12px;
  font-weight:800;
}
.badge-button{
  border:0;
  cursor:pointer;
  font:inherit;
}
.badge-button:hover{
  filter:brightness(.96);
  box-shadow:0 0 0 2px rgba(215,25,32,.12);
}
.status.in_progress,.status.running,.status.confirmed{background:#e7f5ec;color:#126b32}
.status.open{background:#e8f0ff;color:#1c50a3}
.status.ready,.status.approved,.status.processed,.status.ready_for_finvoice,.status.accepted{background:#e8f0ff;color:#1c50a3}
.status.finvoice_sent{background:#e7f5ec;color:#126b32}
.status.converted{background:#e7f5ec;color:#126b32}
.status.pending,.status.requested,.status.new,.status.fennoa_imported,.status.partly_processed,.status.sent{background:#fff4db;color:#8a5a00}
.status.expired{background:#f1f1f1;color:#555}
.status.error,.status.rejected{background:#ffe8e8;color:#a71919}
.status.active{background:#e7f5ec;color:#126b32}
.status.planned{background:#fff4db;color:#8a5a00}
.status.paused{background:#f1f1f1;color:#555}
.status.matched{background:#e7f5ec;color:#126b32}
.status.ordered{background:#fff4db;color:#8a5a00}
.status.arrived{background:#e8f0ff;color:#1c50a3}
.status.in_stock{background:#e7f5ec;color:#126b32}
.status.out{background:#ffe8e8;color:#a71919}
.work-link{
  border-radius:999px;
  padding:5px 9px;
  background:#111;
  color:#fff;
  font-size:12px;
  font-weight:900;
}
.purchase-toolbar{
  margin-bottom:10px;
}
.purchase-import-card{
  margin-bottom:12px;
}
.purchase-import-card .incoming-delivery-head{
  align-items:end;
}
.purchase-import-info{
  margin:0 0 12px;
}
.supplier-toolbar{
  grid-template-columns:minmax(220px,1fr) minmax(160px,.45fr) auto;
  margin-top:16px;
}
.invoice-toolbar{
  grid-template-columns:minmax(220px,1.2fr) minmax(180px,.8fr) minmax(140px,.55fr) minmax(140px,.55fr) minmax(120px,.5fr) minmax(120px,.5fr) auto;
}
.work-sheet-toolbar{
  grid-template-columns:minmax(240px,1fr) minmax(150px,.35fr) minmax(180px,.45fr) auto;
}
.finvoice-toolbar{
  grid-template-columns:minmax(180px,.8fr) minmax(140px,.45fr) minmax(140px,.45fr) auto auto;
}
.accounting-grid{
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(320px,.8fr);
  gap:14px;
  align-items:start;
}
.accounting-card{
  margin-bottom:14px;
}
.accounting-card .compact-results{
  max-height:390px;
}
.readiness-list{
  display:grid;
  gap:8px;
}
.readiness-item{
  display:grid;
  gap:4px;
  border:1px solid var(--line);
  border-radius:12px;
  padding:11px 12px;
  background:#fafafa;
  width:100%;
  text-align:left;
  color:inherit;
  cursor:pointer;
}
.readiness-item:hover,
.readiness-item:focus-visible,
.actionable-metric:hover,
.actionable-metric:focus-visible{
  border-color:var(--red);
  box-shadow:0 10px 24px rgba(0,0,0,.08);
  outline:none;
}
.readiness-item strong{
  font-size:13px;
}
.readiness-item span{
  color:var(--muted);
  font-size:13px;
  font-weight:750;
}
.readiness-item.good{
  border-color:#bfe6ca;
  background:#f3fbf5;
}
.readiness-item.warn{
  border-color:#ffe0a6;
  background:#fff9ed;
}
.readiness-item.block{
  border-color:#ffd0d0;
  background:#fff4f4;
}
.actionable-metric{
  cursor:pointer;
  transition:border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.actionable-metric:active{
  transform:translateY(1px);
}
.accounting-actions,
.accounting-scope{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
}
.accounting-scope{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.accounting-scope div{
  border:1px solid var(--line);
  border-radius:12px;
  padding:12px;
  background:#fafafa;
}
.accounting-scope strong,
.accounting-scope span{
  display:block;
}
.accounting-scope strong{
  margin-bottom:6px;
}
.accounting-scope span{
  color:var(--muted);
  font-size:13px;
  line-height:1.45;
  font-weight:700;
}
.purchase-line-table select,
.purchase-line-table input{
  min-width:120px;
}
.purchase-line-table tr.is-processed td{
  background:#f8fbf9;
}
.purchase-line-actions{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
}
.btn:disabled,
.purchase-line-table select:disabled,
.purchase-line-table input:disabled{
  cursor:not-allowed;
  opacity:.55;
}

.admin-topbar{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:3000;
  background:rgba(255,255,255,.48);
  border-bottom:1px solid rgba(230,231,234,.48);
  box-shadow:0 2px 12px rgba(0,0,0,.025);
  pointer-events:none;
}
.admin-shell{
  padding-top:74px;
}
.admin-topbar .nav{
  position:relative;
  justify-content:space-between;
}
.admin-topbar button,
.admin-topbar .gear-menu,
.admin-topbar .gear-menu *{
  pointer-events:auto;
}
.admin-brand{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  position:relative;
}
.admin-top-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.admin-clock{
  display:grid;
  gap:2px;
  min-width:104px;
  padding:6px 10px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  color:#222;
  font-weight:900;
}
.admin-clock-row{
  display:flex;
  align-items:center;
  gap:7px;
  line-height:1.1;
}
.admin-clock-row:last-child{
  color:var(--muted);
  font-size:12px;
}
.admin-clock-icon{
  position:relative;
  display:inline-block;
  width:15px;
  height:15px;
  flex:0 0 15px;
}
.admin-clock-icon.calendar{
  border:2px solid #111;
  border-radius:3px;
}
.admin-clock-icon.calendar::before{
  content:"";
  position:absolute;
  left:2px;
  right:2px;
  top:3px;
  border-top:2px solid #111;
}
.admin-clock-icon.time{
  border:2px solid #111;
  border-radius:50%;
}
.admin-clock-icon.time::before,
.admin-clock-icon.time::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:2px;
  background:#111;
  transform-origin:bottom center;
}
.admin-clock-icon.time::before{
  height:5px;
  transform:translate(-50%,-100%) rotate(0deg);
}
.admin-clock-icon.time::after{
  height:4px;
  transform:translate(-50%,-100%) rotate(90deg);
}
.top-order-reminders{
  display:flex;
  align-items:center;
  gap:6px;
  max-width:360px;
  overflow:hidden;
}
.top-order-reminders[hidden]{
  display:none;
}
.top-order-reminder{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.12);
  font-size:12px;
  font-weight:900;
  line-height:1.1;
  white-space:nowrap;
  cursor:pointer;
}
.top-order-reminder.warn{
  background:#ffe28a;
  color:#111;
}
.top-order-reminder.urgent{
  background:#d71920;
  color:#fff;
  border-color:rgba(215,25,32,.42);
  box-shadow:0 6px 18px rgba(215,25,32,.2);
}
.view-time-chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-left:10px;
  padding:4px 8px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
  color:var(--muted);
  font-size:12px;
  font-weight:900;
  vertical-align:middle;
  white-space:nowrap;
}
.view-time-chip strong{
  color:#111;
}
.admin-top-actions button{
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  padding:10px 12px;
  color:#222;
  font-size:13px;
  font-weight:900;
  cursor:pointer;
}
.admin-top-actions .admin-logout-button{
  display:flex;
  align-items:center;
  gap:7px;
  min-height:48px;
}
.top-workday-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  border-radius:999px;
  padding:4px 7px;
  background:#d71920;
  color:#fff;
  box-shadow:0 6px 18px rgba(215,25,32,.22);
  min-height:38px;
  border:1px solid rgba(215,25,32,.28);
  white-space:nowrap;
  cursor:default;
  user-select:none;
}
.top-workday-chip[hidden]{
  display:none;
}
.clock-flag{
  width:9px;
  height:14px;
  border-radius:3px 3px 2px 2px;
  background:#fff;
  position:relative;
  flex:0 0 9px;
}
.clock-flag::after{
  content:"";
  position:absolute;
  left:2px;
  bottom:-4px;
  border-left:3px solid transparent;
  border-right:3px solid transparent;
  border-top:5px solid #fff;
}
.top-workday-chip strong{
  font-size:12px;
  line-height:1;
  letter-spacing:0;
}
.admin-top-actions button:hover,
.admin-top-actions button.active{
  background:#111;
  color:#fff;
}
.brand-menu-button{
  width:46px;
  height:46px;
  padding:3px;
  border:0;
  background:transparent;
  border-radius:50%;
  cursor:pointer;
  flex:0 0 46px;
}
.brand-menu-button .logo-mark{
  display:block;
  width:40px;
  height:40px;
}
.brand-menu-button:focus-visible{
  outline:3px solid rgba(215,25,32,.25);
  outline-offset:3px;
}
.gear-menu{
  position:absolute;
  top:calc(100% + 8px);
  left:0;
  z-index:3100;
  width:min(360px,calc(100vw - 44px));
  max-height:calc(100dvh - 88px);
  overflow:auto;
  border:1px solid var(--line);
  border-radius:18px;
  padding:10px;
  background:rgba(255,255,255,.98);
  box-shadow:0 24px 60px rgba(0,0,0,.18);
  display:grid;
  gap:6px;
}
.gear-menu[hidden]{display:none}
.gear-menu button{
  border:0;
  border-radius:12px;
  background:transparent;
  padding:13px 14px;
  text-align:left;
  font-weight:900;
  cursor:pointer;
}
.gear-menu button:hover,
.gear-menu button.active{
  background:#111;
  color:#fff;
}
.admin-tabs button{
  border:0;
  background:transparent;
  color:inherit;
  cursor:pointer;
  font-weight:850;
  text-transform:uppercase;
}
.admin-tabs button:hover{color:var(--red)}
.admin-app{
  max-width:1400px;
  margin:0 auto;
  padding:18px 22px 92px;
  min-width:0;
}
.kpi-strip{
  display:flex;
  gap:10px;
  align-items:center;
  overflow:auto;
  padding:0 0 10px;
}
.kpi-chip{
  flex:0 0 auto;
  border:1px solid var(--line);
  background:#fff;
  border-radius:999px;
  padding:10px 14px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  box-shadow:0 6px 18px rgba(0,0,0,.05);
  cursor:pointer;
}
.kpi-chip span{
  color:var(--muted);
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
}
.kpi-chip b{font-size:20px}
.admin-section{
  display:none;
  padding:14px 16px;
  border-radius:14px;
  min-width:0;
  scroll-margin-top:var(--admin-topbar-offset);
}
.admin-section .section-head.compact{
  margin-bottom:0;
  align-items:center;
}
.admin-section .section-head h2{font-size:22px}
.admin-section .section-head p{margin:0}
.admin-section .section-body{
  display:block;
  margin-top:18px;
}
.admin-section.active,
.admin-section.expanded{
  display:block;
  min-height:calc(100vh - 190px);
}
.admin-section.active .section-head.compact,
.admin-section.expanded .section-head.compact{margin-bottom:14px}
.admin-section .section-head.compact > .btn[data-open-panel]{
  display:none;
}
.admin-section .table{
  min-width:780px;
}
.time-stack{
  display:grid;
  gap:5px;
  min-width:130px;
}
.time-stack-manual strong{
  color:#12524b;
}
.time-pill,
.worker-pill,
.progress-pill{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  border-radius:999px;
  padding:5px 9px;
  background:#edf4ff;
  color:#16447d;
  font-size:12px;
  font-weight:900;
}
.progress-pill{
  background:#fff4db;
  color:#8a5a00;
}
.worker-list{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  min-width:120px;
}
.worker-pill.running{
  background:#e7f5ec;
  color:#126b32;
}
.work-actions{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.work-one-click-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  width:min(100%,420px);
}
.work-one-click-actions .btn{
  width:100%;
  min-width:0;
}
.work-calendar-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
  margin:0 0 12px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#f8fafc;
}
.work-calendar-actions .muted{
  font-size:12px;
  font-weight:800;
}
.floating-calendar-bar{
  position:fixed;
  right:16px;
  bottom:calc(96px + env(safe-area-inset-bottom));
  z-index:1200;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:2px 10px;
  align-items:center;
  width:min(320px, calc(100vw - 24px));
  padding:10px 12px;
  border:1px solid rgba(12,20,33,.16);
  border-radius:12px;
  background:#fff;
  box-shadow:0 18px 45px rgba(12,20,33,.22);
  color:var(--text);
  cursor:grab;
  touch-action:none;
  user-select:none;
  text-align:left;
}
.floating-calendar-bar:active{
  cursor:grabbing;
}
.floating-calendar-bar span{
  color:var(--muted);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
}
.floating-calendar-bar strong{
  justify-self:end;
  font-size:14px;
}
.floating-calendar-bar small{
  grid-column:1 / -1;
  overflow:hidden;
  color:var(--muted);
  font-size:12px;
  font-weight:800;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.action-floating-notice{
  position:fixed;
  z-index:2147483600;
  max-width:min(360px, calc(100vw - 24px));
  padding:12px 14px;
  border:1px solid rgba(12,90,50,.22);
  border-radius:10px;
  background:#eefbf2;
  color:#0a5f37;
  box-shadow:0 18px 36px rgba(15,23,42,.18);
  font-weight:800;
  line-height:1.25;
  pointer-events:none;
  transition:opacity .24s ease, transform .24s ease;
}
.action-floating-notice.error{
  border-color:rgba(180,24,35,.26);
  background:#fff0f1;
  color:#a71919;
}
.action-floating-notice.is-hiding{
  opacity:0;
  transform:translateY(-8px);
}
.lunch-reminder-overlay{
  position:fixed;
  z-index:2147483601;
  right:14px;
  top:88px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:4px 12px;
  width:min(390px, calc(100vw - 28px));
  padding:14px 16px;
  border:1px solid rgba(5,95,70,.25);
  border-left:6px solid #087a58;
  border-radius:12px;
  background:#ecfff6;
  color:#0b4f3c;
  box-shadow:0 24px 52px rgba(15,23,42,.22);
  font-weight:850;
  transition:opacity .28s ease, transform .28s ease;
}
.lunch-reminder-overlay strong,
.lunch-reminder-overlay span,
.lunch-reminder-overlay small{
  grid-column:1;
}
.lunch-reminder-overlay small{
  color:#43675a;
  font-size:12px;
}
.lunch-reminder-overlay .icon-button{
  grid-column:2;
  grid-row:1;
  width:34px;
  height:34px;
  background:#fff;
}
.lunch-reminder-overlay.is-hiding{
  opacity:0;
  transform:translateY(-8px);
}
.context-help-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}
.context-help-actions .btn{
  flex:1 1 150px;
}
.calendar-floating-toggle{
  padding:8px 10px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
}
body.calendar-layer-open{
  overflow:hidden;
}
body.calendar-layer-open .admin-topbar,
body.calendar-layer-open .admin-bottom-bar{
  display:none !important;
}
body.calendar-layer-open #ajanvaraus.calendar-layer-panel{
  position:fixed;
  inset:0;
  z-index:2147483400;
  display:flex !important;
  flex-direction:column;
  margin:0;
  padding:calc(12px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left));
  overflow:hidden;
  border:0;
  border-radius:0;
  background:#fff;
  box-shadow:none;
}
body.calendar-layer-open #ajanvaraus.calendar-layer-panel .section-body{
  display:flex;
  min-height:0;
  flex:1;
  flex-direction:column;
}
body.calendar-layer-open #ajanvaraus.calendar-layer-panel > .section-head,
body.calendar-layer-open #ajanvaraus.calendar-layer-panel .table-scroll,
body.calendar-layer-open #ajanvaraus.calendar-layer-panel .calendar-memo-panel{
  display:none !important;
}
body.calendar-layer-open #ajanvaraus.calendar-layer-panel .calendar-toolbar{
  position:sticky;
  top:0;
  z-index:2;
  justify-content:flex-end;
  margin-bottom:12px;
  padding-bottom:10px;
  border-bottom:1px solid var(--line);
  background:#fff;
}
body.calendar-layer-open #ajanvaraus.calendar-layer-panel .calendar-exception-actions #blockSelectedDay,
body.calendar-layer-open #ajanvaraus.calendar-layer-panel .calendar-exception-actions #markWorkingDayOverride,
body.calendar-layer-open #ajanvaraus.calendar-layer-panel .calendar-exception-actions #markAbsenceRange,
body.calendar-layer-open #ajanvaraus.calendar-layer-panel .calendar-exception-actions .calendar-floating-toggle{
  display:none;
}
body.calendar-layer-open #ajanvaraus.calendar-layer-panel #bookingCalendar{
  min-height:0;
  flex:1;
  overflow:auto;
}
.work-title-stack{
  display:grid;
  gap:4px;
}
.work-title-stack strong{
  font-size:14px;
}
.work-detail-row td{
  background:#fbfcfd;
  border-bottom:1px solid var(--line);
}
.work-detail-card{
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  padding:14px;
  display:grid;
  gap:14px;
  box-shadow:0 8px 24px rgba(0,0,0,.05);
}
.work-order-dialog .work-order-modal-card{
  width:min(calc(210mm + 48px),calc(100vw - 16px));
  max-height:92vh;
  overflow:auto;
  background:#eef1f4;
}
.work-order-dialog-content{
  display:grid;
  gap:12px;
  justify-items:center;
  padding:0;
}
.work-sheet-toolbar{
  width:min(100%,210mm);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  padding:10px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
}
.work-sheet-toolbar-title{
  display:grid;
  gap:4px;
  min-width:0;
}
.work-sheet-toolbar-title strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.work-order-extra-panel{
  width:min(100%,210mm);
  display:grid;
  gap:10px;
  align-items:start;
}
.mobile-print-preview-card{
  width:min(calc(210mm + 48px),calc(100vw - 16px));
  max-height:92vh;
  overflow:auto;
  background:#eef1f4;
}
.mobile-print-preview-sheet{
  display:grid;
  justify-items:center;
  gap:12px;
  padding:0 0 12px;
}
.mobile-print-preview-sheet .work-sheet-print{
  margin-top:0;
}
.work-detail-grid{
  display:grid;
  grid-template-columns:minmax(160px,1fr) minmax(130px,180px) minmax(140px,220px);
  gap:10px;
  align-items:end;
}
.inline-field{
  display:grid;
  gap:6px;
  font-weight:900;
  color:var(--muted);
  font-size:12px;
  text-transform:uppercase;
}
.inline-field input,
.inline-field select,
.inline-field textarea{
  width:100%;
  min-width:0;
  border:1px solid var(--line);
  border-radius:10px;
  padding:11px 12px;
  background:#fff;
  color:#111;
  text-transform:none;
  font-weight:700;
}
.inline-field textarea{
  min-height:112px;
  resize:vertical;
}
.work-order-form-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
}
.work-order-form-head h3{
  margin:0;
}
.work-detail-grid.wide{
  grid-template-columns:1.5fr .9fr .9fr .95fr 110px 130px 170px;
}
.work-detail-grid.notes{
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:stretch;
}
.toggle-row{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
}
.work-time-list{
  display:grid;
  gap:8px;
}
.work-time-reference{
  padding:10px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fbfbfb;
}
.work-time-reference summary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:8px 11px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
}
.work-time-reference summary::-webkit-details-marker{
  display:none;
}
.work-time-reference[open] summary{
  margin-bottom:8px;
}
.work-quick-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.work-quick-card{
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px;
  background:#fbfbfb;
}
.work-quick-card h4{
  margin:0 0 10px;
}
.work-quick-row{
  display:grid;
  grid-template-columns:minmax(180px,1.4fr) 78px 115px auto auto;
  gap:8px;
  align-items:center;
}
.work-quick-row.travel{
  grid-template-columns:90px 86px 110px minmax(150px,1fr) auto;
}
.work-quick-row input,
.work-quick-row select{
  width:100%;
  min-width:0;
  border:1px solid var(--line);
  border-radius:10px;
  padding:10px 11px;
  background:#fff;
}
.work-time-list h4{
  margin:0;
}
.workday-live{
  display:grid;
  gap:4px;
  margin:12px 0;
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#101010;
  color:#fff;
}
.workday-live span{
  color:#f0f0f0;
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
}
.workday-live strong{
  font-size:clamp(30px,6vw,52px);
  line-height:1;
  letter-spacing:0;
}
.workday-live small{
  color:#d9d9d9;
  font-weight:800;
}
.workday-live.running{
  background:#0f4f46;
  border-color:#16736f;
}
.workday-live.stopped{
  background:#f7f7f7;
  color:#111;
}
.workday-live.stopped span,
.workday-live.stopped small{
  color:var(--muted);
}
.work-time-entry{
  display:grid;
  grid-template-columns:minmax(90px,140px) minmax(70px,110px) minmax(180px,1fr);
  gap:8px;
  align-items:center;
  padding:9px 10px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
}
.work-time-entry small{
  grid-column:1/-1;
  color:var(--muted);
}
.work-billing-editor{
  display:grid;
  gap:10px;
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px;
  background:#fbfbfb;
}
.work-billing-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
}
.work-billing-head h4{
  margin:0 0 4px;
}
.labor-line-list{
  display:grid;
  gap:8px;
}
.labor-line-editor{
  display:grid;
  grid-template-columns:minmax(180px,1.3fr) minmax(110px,.6fr) minmax(120px,.7fr) 86px 110px 90px minmax(132px,.7fr) auto auto auto;
  gap:8px;
  align-items:center;
}
.labor-line-editor input{
  width:100%;
  min-width:0;
  border:1px solid var(--line);
  border-radius:10px;
  padding:10px 11px;
  background:#fff;
}
.labor-line-editor.new-line{
  border-top:1px solid var(--line);
  padding-top:10px;
}
.btn.danger{
  color:#a71919;
}
.time-entry-actions{
  grid-column:1/-1;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:flex-end;
}
.detail-actions{
  justify-content:flex-end;
}
.work-sheet-print{
  width:min(100%,210mm);
  min-height:297mm;
  margin:4px auto 6px;
  border:1px solid #d8dde3;
  border-radius:8px;
  padding:16mm 14mm;
  background:#fff;
  color:#111;
  box-shadow:0 10px 28px rgba(0,0,0,.08);
  overflow:hidden;
}
.print-only-stage{
  display:none;
}
.sheet-head{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
  border-bottom:2px solid #111;
  padding-bottom:10px;
  margin-bottom:12px;
}
.sheet-head h2{
  margin:2px 0;
  font-size:28px;
}
.sheet-status{
  display:grid;
  justify-items:end;
  gap:6px;
  font-weight:900;
}
.sheet-status-edit{
  min-width:180px;
}
.sheet-status-edit select,
.sheet-number-input,
.sheet-title-input,
.work-sheet-print input,
.work-sheet-print textarea,
.work-sheet-print select{
  width:100%;
  border:1px solid #cfd6de;
  border-radius:5px;
  background:#fff;
  color:#111;
  font:inherit;
}
.sheet-number-input{
  max-width:220px;
  margin:2px 0;
  padding:4px 6px;
  font-size:28px;
  font-weight:900;
}
.sheet-title-input{
  max-width:420px;
  padding:5px 6px;
  font-weight:800;
}
.sheet-meta-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin-bottom:10px;
}
.sheet-meta,
.sheet-text-block{
  border:1px solid #dde2e7;
  border-radius:6px;
  padding:8px;
}
.sheet-meta span,
.sheet-text-block span{
  display:block;
  color:#606a76;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
}
.sheet-meta strong{
  display:block;
  margin-top:3px;
  font-size:12px;
}
.sheet-edit-field{
  cursor:text;
}
.sheet-edit-field input,
.sheet-edit-field select,
.sheet-edit-field textarea{
  margin-top:4px;
  padding:6px;
  font-size:12px;
  font-weight:800;
}
.sheet-check-field{
  display:flex;
  align-items:center;
  gap:8px;
  cursor:pointer;
}
.sheet-check-field input{
  width:auto;
  margin:0;
}
.sheet-two-col{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-bottom:10px;
}
.sheet-text-block p{
  min-height:42px;
  margin:5px 0 0;
  font-size:12px;
  line-height:1.35;
}
.sheet-text-block textarea{
  min-height:74px;
  margin-top:5px;
  padding:7px;
  resize:vertical;
  font-size:12px;
  line-height:1.35;
}
.sheet-lines-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin:10px 0 6px;
}
.sheet-lines h3,
.sheet-lines-head h3{
  margin:10px 0 6px;
  font-size:15px;
}
.sheet-lines-head h3{
  margin:0;
}
.sheet-lines-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.time-billing-auto-toggle{
  display:flex;
  align-items:center;
  gap:6px;
  min-height:34px;
  padding:6px 9px;
  border:1px solid #d8dde3;
  border-radius:8px;
  background:#fff;
  font-size:12px;
  font-weight:800;
  white-space:nowrap;
}
.time-billing-auto-toggle input{
  width:auto;
  margin:0;
}
.work-sheet-line-adder{
  display:grid;
  grid-template-columns:minmax(92px,.6fr) minmax(150px,1fr) minmax(220px,1.5fr) repeat(2,minmax(86px,.62fr));
  gap:6px;
  align-items:end;
  margin:0 0 8px;
  padding:8px;
  border:1px solid #d8dde3;
  border-radius:8px;
  background:#f8fafc;
}
.work-sheet-line-adder.hidden{
  display:none;
}
.work-sheet-line-adder input,
.work-sheet-line-adder select{
  min-width:0;
  padding:7px;
  font-size:12px;
  font-weight:800;
}
.work-sheet-line-adder .work-line-visible{
  min-height:34px;
  align-self:end;
}
.work-sheet-line-adder .work-line-show-date{
  min-height:34px;
  align-self:end;
}
.work-sheet-line-adder > .btn{
  width:100%;
}
.sheet-table{
  width:100%;
  border-collapse:collapse;
  margin-bottom:10px;
}
.sheet-table th,
.sheet-table td{
  border:1px solid #d8dde3;
  padding:6px 7px;
  font-size:11px;
  text-align:left;
}
.sheet-table th{
  background:#f5f7f9;
  text-transform:uppercase;
  font-size:9px;
}
.editable-sheet-table input,
.editable-sheet-table textarea{
  min-width:0;
  padding:5px;
  font-size:11px;
}
.editable-sheet-table textarea{
  min-height:44px;
  resize:vertical;
}
.editable-sheet-table small{
  display:block;
  margin-top:4px;
  color:#606a76;
  font-weight:800;
}
.sheet-line-actions{
  min-width:132px;
}
.sheet-mini-check{
  display:flex;
  align-items:center;
  gap:5px;
  margin-bottom:6px;
  font-size:10px;
  font-weight:800;
}
.sheet-mini-check input{
  width:auto;
}
.line-entry-date-controls{
  display:grid;
  gap:5px;
  min-width:0;
}
.line-entry-date-controls .line-field{
  gap:2px;
}
.line-entry-date-controls input[type="date"],
.line-entry-date-controls input[type="datetime-local"]{
  min-width:0;
}
.checkbox-row.compact{
  min-height:auto;
  padding:0;
  border:0;
  background:transparent;
  font-size:11px;
}
.sheet-summary{
  display:grid;
  grid-template-columns:1.2fr repeat(3,.8fr);
  gap:8px;
  margin-bottom:10px;
}
.sheet-signatures{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-top:18px;
}
.sheet-signatures div{
  border-top:1px solid #111;
  padding-top:6px;
}
.sheet-signatures span,
.sheet-signatures strong{
  display:block;
  font-size:11px;
}
.compact-adder{
  margin-top:10px;
}
.work-event-image{
  display:block;
  width:min(100%,520px);
  max-height:320px;
  object-fit:contain;
  margin-top:8px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
}
.work-event-video{
  display:block;
  width:min(100%,520px);
  max-height:360px;
  margin-top:8px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#111;
}
.work-event-attachment{
  display:grid;
  gap:4px;
  margin-top:8px;
  color:inherit;
  text-decoration:none;
}
.work-event-attachment span,
.work-event-attachment a{
  color:var(--muted);
  font-size:12px;
  font-weight:800;
}
.work-photo-form input[type="file"]{
  border:1px solid var(--line);
  border-radius:8px;
  padding:8px;
  background:#fff;
}
.portal-access-list{
  display:grid;
  gap:8px;
}
.portal-access-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  border:1px solid var(--line);
  border-radius:8px;
  padding:10px;
  background:#f8fafc;
}
.portal-access-row strong,
.portal-access-row span,
.portal-access-row a{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.change-review-list{
  display:grid;
  gap:12px;
}
.change-review-items{
  max-height:min(52vh,520px);
  overflow:auto;
  display:grid;
  gap:8px;
  padding-right:4px;
}
.change-review-item{
  border:1px solid var(--line);
  border-radius:6px;
  padding:9px 10px;
  background:#f8fafc;
}
.change-review-item strong,
.change-review-item span{
  display:block;
}
.change-review-item span{
  margin-top:3px;
  color:#4d5965;
  font-size:13px;
}
.section-actions{
  display:flex;
  justify-content:flex-end;
  margin-bottom:10px;
}
.compact-results{
  max-height:430px;
  overflow:auto;
  overscroll-behavior:contain;
  border:1px solid var(--line);
  border-radius:12px;
}
.compact-results .table thead th{
  position:sticky;
  top:0;
  z-index:2;
  background:#fff;
}
.employee-results{
  max-height:min(60vh, 680px);
}
.employee-name-stack{
  display:grid;
  gap:3px;
  min-width:0;
}
.employee-name-stack strong,
.employee-name-stack span{
  min-width:0;
  overflow-wrap:anywhere;
}
.employee-sub{
  color:var(--muted);
  font-size:12px;
  font-weight:800;
}
.employee-payroll-warning{
  border-color:#f59e0b;
  background:#fff7ed;
  color:#92400e;
}
.employee-editor-card{
  width:min(980px, calc(100vw - 24px));
  max-width:min(980px, calc(100vw - 24px));
}
.employee-dialog-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  align-items:start;
}
.employee-dialog-grid .span-2{
  grid-column:1 / -1;
}
.employee-dialog-grid .form-section{
  display:grid;
  gap:10px;
  align-content:start;
}
.employee-dialog-grid .form-section h4{
  margin:0;
  color:var(--muted);
  font-size:13px;
  font-weight:900;
  text-transform:uppercase;
}
.employee-dialog-grid textarea{
  min-height:90px;
  resize:vertical;
}
.employee-assignment-card{
  width:min(760px, calc(100vw - 24px));
  max-width:min(760px, calc(100vw - 24px));
}
.assignment-list{
  display:grid;
  gap:10px;
  max-height:min(52vh, 520px);
  overflow:auto;
  overscroll-behavior:contain;
  padding-right:4px;
}
.assignment-row{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:10px;
  align-items:start;
  border:1px solid var(--line);
  border-radius:12px;
  padding:10px;
  background:#fff;
}
.assignment-row input{
  margin-top:4px;
}
.assignment-row span{
  display:grid;
  gap:3px;
  min-width:0;
}
.assignment-row small{
  color:var(--muted);
  font-weight:800;
  overflow-wrap:anywhere;
}
.assignment-current{
  color:#0f766e;
}
.vehicle-registry-results{
  max-height:min(62vh, 720px);
}
.parts-results{
  max-height:min(62vh, 640px);
  overflow:auto;
}
.parts-results .table thead th{
  position:sticky;
  top:0;
  z-index:2;
  background:#fff;
}
.calendar-toolbar{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:12px;
}
.calendar-view-tabs{
  display:inline-flex;
  gap:6px;
  padding:4px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
}
.calendar-view-tabs .btn{
  border-radius:999px;
}
.calendar-view-tabs .btn.active{
  background:#111;
  color:#fff;
  border-color:#111;
}
.calendar-step-controls{
  display:inline-grid;
  grid-template-columns:repeat(3,max-content);
  gap:8px;
  align-items:center;
}
.mobile-label{
  display:none;
}
.calendar-range-controls{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.calendar-range-controls label{
  display:flex;
  align-items:center;
  gap:6px;
  color:var(--muted);
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
}
.calendar-range-controls select{
  width:auto;
  min-width:82px;
  padding:8px 10px;
  border-radius:999px;
}
.booking-calendar{
  border:1px solid var(--line);
  border-radius:14px;
  overflow:auto;
  background:#fff;
  margin-bottom:16px;
  max-width:100%;
}
.booking-calendar-head,
.booking-calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
}
.booking-calendar-head div{
  background:#f5f7f8;
  border-right:1px solid var(--line);
  padding:10px;
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  text-align:center;
}
.booking-calendar-head div:last-child{border-right:0}
.booking-day{
  min-height:150px;
  border-top:1px solid var(--line);
  border-right:1px solid var(--line);
  padding:10px;
  display:grid;
  gap:8px;
  align-content:start;
  cursor:pointer;
}
.booking-day:nth-child(7n){border-right:0}
.booking-day.selected{box-shadow:inset 0 0 0 2px var(--red)}
.booking-day.today{background:#fffdf0}
.booking-day.blocked{background:#fff5f5}
.booking-date{
  font-size:13px;
  font-weight:900;
  color:#30343a;
  pointer-events:none;
}
.booking-card{
  border:1px solid var(--line);
  border-left:4px solid var(--red);
  border-radius:10px;
  background:#fff;
  padding:8px;
  font-size:12px;
  cursor:grab;
}
.booking-card.blocked{
  border-left-color:#8b1117;
  background:#fff0f0;
}
.booking-card:active{cursor:grabbing}
.booking-month-grid{
  display:grid;
  grid-template-columns:74px repeat(7,minmax(112px,1fr));
  min-width:900px;
}
.booking-month-head{
  padding:10px;
  background:#f5f7f8;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  color:var(--muted);
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  text-align:center;
}
.booking-month-head.week-number{text-align:left}
.booking-week-number{
  border:0;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:#f8fafb;
  color:#22364c;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
}
.booking-week-number:hover{
  background:#111;
  color:#fff;
}
.booking-month-day{
  position:relative;
  min-height:116px;
  border:0;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:#fff;
  padding:9px;
  display:grid;
  align-content:start;
  gap:5px;
  text-align:left;
  cursor:pointer;
}
.booking-month-day:hover{background:#fff8f8}
.booking-month-day.outside{background:#fafafa;color:#9a9da3}
.booking-month-day.today{
  background:#eafff0;
  box-shadow:inset 0 0 0 2px #59d684;
}
.booking-month-day.blocked{background:#fff4f4}
.booking-month-day.drop-target{
  background:#fff1f1;
  box-shadow:inset 0 0 0 2px var(--red);
}
.booking-month-day.range-selected{
  background:#eaf4ff;
  box-shadow:inset 0 0 0 2px #2f7fd0;
}
.booking-month-day strong{
  font-size:16px;
}
.booking-day-add{
  position:absolute;
  top:7px;
  right:7px;
  width:28px;
  height:28px;
  border:0;
  border-radius:50%;
  background:var(--red);
  color:#fff;
  font-size:20px;
  line-height:1;
  font-weight:900;
  box-shadow:0 8px 18px rgba(215,25,32,.25);
  cursor:pointer;
}
.booking-day-add:hover{
  background:#111;
}
.booking-month-day span,
.booking-month-card{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  border-radius:999px;
  background:#f0f3f7;
  padding:4px 6px;
  font-size:11px;
  font-weight:800;
}
.booking-month-card{
  display:block;
  border:1px solid transparent;
  border-left:4px solid var(--booking-border, transparent);
  background:var(--booking-bg, #f0f3f7);
  cursor:grab;
}
.booking-month-card.blocked{
  background:var(--booking-bg, #ffe4e4);
  color:#8b1117;
}
.booking-month-card:active{cursor:grabbing}
.booking-month-day small{
  color:var(--muted);
  font-weight:800;
}
.booking-time-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(128px,1fr));
  min-width:920px;
}
.booking-time-grid.day{
  grid-template-columns:minmax(220px,1fr);
  min-width:0;
}
.booking-time-day{
  position:relative;
  border-right:1px solid var(--line);
  background:#fff;
}
.booking-time-day:nth-child(7n){border-right:0}
.booking-time-heading{
  position:sticky;
  top:0;
  z-index:2;
  min-height:54px;
  padding:9px;
  background:#f5f7f8;
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  font-size:12px;
  font-weight:900;
}
.booking-time-heading span{color:var(--muted)}
.booking-time-day.today .booking-time-heading,
.booking-time-heading.today{
  background:#eafff0;
  border-bottom-color:#59d684;
  box-shadow:inset 0 -2px 0 #59d684;
}
.booking-slot{
  height:var(--calendar-slot-height);
  min-height:var(--calendar-slot-height);
  border-bottom:1px solid #eff0f2;
  padding:4px;
  display:grid;
  align-content:start;
  gap:4px;
  cursor:pointer;
  touch-action:auto;
}
.booking-slot:hover{background:#fff8f8}
.booking-slot.selected{box-shadow:inset 0 0 0 2px var(--red)}
.booking-slot.current-time{
  background:linear-gradient(90deg,rgba(215,25,32,.16),rgba(255,248,232,.82));
  box-shadow:inset 4px 0 0 var(--red), inset 0 0 0 1px rgba(215,25,32,.22);
}
.booking-slot.current-time .slot-time{
  color:#a20f17;
  font-weight:950;
}
.booking-slot.current-time .slot-time::after{
  content:" nyt";
  display:inline-block;
  margin-left:4px;
  padding:1px 5px;
  border-radius:999px;
  background:var(--red);
  color:#fff;
  font-size:10px;
  line-height:1.3;
  vertical-align:1px;
}
.booking-slot.checked-selected{
  background:#fff8e8;
  box-shadow:inset 0 0 0 2px #d69722;
}
.booking-slot.range-selected{
  background:#eaf4ff;
  box-shadow:inset 0 0 0 2px #2f7fd0;
}
body.calendar-selecting,
body.calendar-selecting .booking-time-grid,
body.calendar-selecting .booking-month-grid,
body.calendar-selecting .booking-slot{
  user-select:none;
  -webkit-user-select:none;
}
body.calendar-selecting .booking-slot,
body.calendar-selecting .booking-month-day{
  touch-action:none;
}
.booking-slot.blocked{background:#fff4f4}
.slot-check-toggle{
  justify-self:end;
  width:24px;
  height:24px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
  color:#111;
  font-size:12px;
  font-weight:900;
  line-height:1;
  cursor:pointer;
}
.booking-slot.checked-selected .slot-check-toggle{
  border-color:#d69722;
  background:#d69722;
  color:#fff;
}
.calendar-selection-bar{
  position:fixed;
  z-index:2147482500;
  pointer-events:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  width:min(620px,calc(100vw - 28px));
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:14px;
  background:rgba(255,255,255,.68);
  backdrop-filter:blur(8px);
  box-shadow:var(--shadow);
}
.calendar-selection-bar.hidden{display:none}
.calendar-selection-bar button{
  pointer-events:auto;
}
.calendar-selection-bar strong,
.calendar-selection-bar span{
  display:block;
}
.calendar-selection-bar span{
  color:var(--muted);
  font-size:12px;
  font-weight:800;
}
.calendar-range-preview{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:10px 0 0;
}
.booking-ranges-rows{
  display:grid;
  gap:8px;
}
.booking-range-row{
  display:grid;
  grid-template-columns:auto minmax(150px,1fr) minmax(120px,.8fr) minmax(120px,.8fr) auto;
  gap:8px;
  align-items:end;
  padding:8px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
}
.booking-range-row > strong{
  align-self:center;
  min-width:32px;
}
.booking-range-row label{
  display:grid;
  gap:4px;
}
.booking-range-row label span{
  color:var(--muted);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
}
.booking-range-row input{
  width:100%;
}
#ajoneuvokanta .vehicle-registry-results{
  max-height:min(560px,54vh);
  overflow:auto;
  overscroll-behavior:contain;
}
.vehicle-registry-suggest-menu{
  overscroll-behavior:contain;
}
.calendar-memo-panel{
  display:grid;
  gap:10px;
  margin-top:14px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
}
.calendar-memo-list{
  display:grid;
  gap:8px;
}
.calendar-memo-row{
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px;
  align-items:center;
  padding:10px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fafafa;
}
.calendar-memo-row strong,
.calendar-memo-row span{
  display:block;
}
.calendar-memo-row span{
  color:var(--muted);
  font-size:12px;
  font-weight:800;
}
.calendar-memo-thumb{
  display:block;
  width:72px;
  height:54px;
  object-fit:cover;
  border-radius:8px;
  border:1px solid var(--line);
}
.file-drop{
  display:grid;
  gap:8px;
  padding:12px;
  border:1px dashed #cfd5dc;
  border-radius:12px;
  background:#fafafa;
  color:var(--muted);
  font-size:13px;
  font-weight:900;
}
.file-drop input{
  width:100%;
}
.note-attachment{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
}
.note-attachment img{
  width:72px;
  height:54px;
  object-fit:cover;
  border-radius:8px;
  border:1px solid var(--line);
}
.note-attachment a{
  display:flex;
  align-items:center;
  gap:10px;
  color:inherit;
  text-decoration:none;
}
.slot-time{
  color:#7a7d83;
  font-size:11px;
  font-weight:900;
}
.booking-time-card{
  position:absolute;
  z-index:3;
  top:calc(54px + (var(--booking-top-slots, 0) * var(--calendar-slot-height)) + 4px);
  left:30px;
  right:6px;
  height:calc((var(--booking-duration-slots, 1) * var(--calendar-slot-height)) - 8px);
  min-height:34px;
  overflow:hidden;
  border:1px solid var(--line);
  border-left:4px solid var(--booking-border, var(--red));
  border-radius:9px;
  background:var(--booking-bg, #fff);
  padding:6px;
  font-size:12px;
  cursor:grab;
}
.booking-time-card.blocked{
  border-left-color:var(--booking-border, #8b1117);
  background:var(--booking-bg, #fff0f0);
}
.booking-time-card.parallel{
  padding-inline:5px;
  box-shadow:0 0 0 1px rgba(20, 38, 66, .04);
}
.booking-time-card strong{
  display:block;
  line-height:1.2;
}
.booking-time-card small{
  display:block;
  color:var(--muted);
  font-weight:800;
  margin-top:2px;
}
.input-label{
  display:grid;
  gap:5px;
}
.input-label span{
  color:var(--muted);
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
}
.booking-color-row input[type="color"]{
  min-height:44px;
  padding:4px;
}
.work-timeline-card{
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  padding:14px;
  margin:0 0 16px;
}
.work-timeline-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.work-timeline-head h4{
  margin:0;
}
.work-timeline-track{
  display:flex;
  min-height:42px;
  overflow:hidden;
  border-radius:11px;
  border:1px solid #dde3ea;
  background:#f6f8fa;
}
.work-timeline-segment{
  min-width:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 10px;
  border:0;
  color:#fff;
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
  cursor:pointer;
}
.work-timeline-segment:hover,
.work-timeline-segment:focus-visible{
  filter:brightness(.96);
  outline:2px solid rgba(0,0,0,.28);
  outline-offset:-2px;
}
.work-timeline-segment.planned{background:#d9b94e;color:#18150a}
.work-timeline-segment.running{background:#16736f}
.work-timeline-segment.travel{background:#2f6fbc}
.work-timeline-segment.waiting{background:#b6692d}
.work-timeline-segment.ready{background:#3d7f52}
.work-timeline-segment.invoice{background:#626b7d}
.work-timeline-segment.draft{background:#8b98a8}
.work-timeline-legend{
  display:flex;
  flex-wrap:wrap;
  gap:8px 14px;
  margin-top:10px;
}
.timeline-legend-item{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:#4f5660;
  font-size:12px;
  font-weight:900;
}
.timeline-legend-button{
  border:0;
  background:transparent;
  padding:2px 0;
  cursor:pointer;
}
.timeline-legend-button:hover,
.timeline-legend-button:focus-visible{
  color:#111;
  text-decoration:underline;
  outline:none;
}
.timeline-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  background:#8b98a8;
}
.timeline-dot.planned{background:#d9b94e}
.timeline-dot.running{background:#16736f}
.timeline-dot.travel{background:#2f6fbc}
.timeline-dot.waiting{background:#b6692d}
.timeline-dot.ready{background:#3d7f52}
.timeline-dot.invoice{background:#626b7d}
.timeline-detail-card{
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  padding:14px;
}
.timeline-edit-form{
  display:grid;
  gap:12px;
}
.incoming-delivery-card{
  margin-top:14px;
}
.inline-upload-form{
  display:grid;
  grid-template-columns:minmax(220px,1fr) auto;
  align-items:end;
  gap:10px;
}
.incoming-delivery-toolbar{
  display:flex;
  align-items:end;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.incoming-delivery-toolbar label{
  display:grid;
  gap:3px;
  color:var(--muted);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
}
.incoming-delivery-toolbar select{
  min-width:92px;
  padding:8px 10px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  color:var(--text);
  font-size:13px;
  font-weight:800;
  text-transform:none;
}
.attention-dot{
  display:inline-grid;
  place-items:center;
  min-width:18px;
  height:18px;
  margin-left:6px;
  border-radius:999px;
  background:var(--red);
  color:#fff;
  font-size:11px;
  font-weight:900;
  line-height:1;
}
.attention-dot.hidden{display:none}
.incoming-delivery-alert{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:12px;
  min-width:0;
  padding:12px 16px;
  border-radius:8px;
  background:#b90e19;
  color:#fff;
}
.incoming-delivery-alert[hidden]{display:none}
.incoming-delivery-alert strong{min-width:0;overflow-wrap:anywhere;font-size:16px}
.incoming-delivery-alert .btn{flex-shrink:0;max-width:100%;white-space:normal}
.incoming-delivery-list{
  display:grid;
  gap:12px;
  margin-top:12px;
}
.incoming-training-panel{
  display:grid;
  gap:12px;
  margin-top:12px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
}
.incoming-training-panel.hidden{display:none}
.incoming-training-form{
  display:grid;
  gap:12px;
}
.incoming-training-head,
.incoming-training-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
}
.incoming-training-head h4{
  margin:0;
}
.incoming-training-grid,
.incoming-training-map{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.incoming-training-grid label,
.incoming-training-map label{
  display:grid;
  gap:5px;
  min-width:0;
  color:var(--muted);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
}
.incoming-training-grid input,
.incoming-training-grid select,
.incoming-training-map select{
  width:100%;
  min-height:40px;
  padding:9px 10px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  color:var(--text);
  font:inherit;
  font-weight:800;
  text-transform:none;
}
.incoming-training-check{
  align-self:end;
}
.incoming-training-preview{
  max-height:280px;
  overflow:auto;
}
.incoming-delivery-item{
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  padding:12px;
}
.incoming-delivery-item.approved{
  background:#f3fbf6;
}
.incoming-delivery-head,
.incoming-delivery-meta,
.incoming-delivery-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.incoming-delivery-head{
  justify-content:space-between;
}
.incoming-delivery-meta{
  color:var(--muted);
  font-size:13px;
  font-weight:800;
  margin:8px 0;
}
.incoming-delivery-lines{
  max-height:260px;
  overflow:auto;
}
.part-inquiry-item{
  overflow-wrap:anywhere;
}
.work-request-item{
  overflow-wrap:anywhere;
}
.part-inquiry-item.new{
  background:#fffaf0;
  border-color:#f3d27a;
}
.work-request-item.new{
  background:#fffaf0;
  border-color:#f3d27a;
}
.part-inquiry-item.in_progress,
.part-inquiry-item.waiting_customer,
.part-inquiry-item.ordered,
.work-request-item.in_progress,
.work-request-item.waiting_customer,
.work-request-item.scheduled{
  background:#f6fbff;
}
.part-inquiry-item.completed,
.work-request-item.completed,
.work-request-item.converted{
  background:#f3fbf6;
}
.part-inquiry-detail-grid,
.work-request-detail-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:10px 0;
}
.part-inquiry-detail-grid div,
.work-request-detail-grid div{
  min-width:0;
  border:1px solid var(--line);
  border-radius:10px;
  padding:10px;
  background:rgba(255,255,255,.74);
}
.part-inquiry-detail-grid span,
.work-request-detail-grid span,
.part-inquiry-admin-grid label{
  display:grid;
  gap:5px;
  color:var(--muted);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
}
.part-inquiry-detail-grid strong,
.work-request-detail-grid strong{
  display:block;
  margin-top:5px;
  color:var(--text);
  font-size:14px;
  line-height:1.35;
  white-space:pre-wrap;
}
.part-inquiry-admin-grid{
  display:grid;
  grid-template-columns:minmax(180px,240px) minmax(0,1fr);
  gap:10px;
  align-items:start;
  margin:10px 0;
}
.part-inquiry-admin-grid select,
.part-inquiry-admin-grid textarea{
  width:100%;
}
.part-inquiry-toolbar,
.work-request-toolbar{
  grid-template-columns:minmax(220px,1fr) minmax(160px,220px) auto;
}
.incoming-stock-correction{
  display:grid;
  gap:3px;
  min-width:112px;
  color:var(--muted);
  font-size:11px;
  font-weight:900;
}
.incoming-stock-correction input{
  width:100%;
  min-height:34px;
  padding:7px 8px;
  border:1px solid var(--line);
  border-radius:8px;
  color:var(--text);
  font-size:14px;
  font-weight:900;
}
.incoming-stock-correction small{
  color:var(--muted);
  font-size:11px;
  font-weight:800;
}
@media(max-width:760px){
  .inline-upload-form,
  .part-inquiry-detail-grid,
  .work-request-detail-grid,
  .part-inquiry-admin-grid,
  .incoming-training-grid,
  .incoming-training-map{
    grid-template-columns:1fr;
  }
  .incoming-training-head,
  .incoming-training-actions{
    align-items:stretch;
  }
  .incoming-training-actions .btn{
    width:100%;
  }
}
.price-vat-pair{
  display:grid;
  gap:2px;
  min-width:96px;
}
.price-vat-pair strong{
  color:var(--text);
  font-size:13px;
  font-weight:900;
  line-height:1.15;
}
.price-vat-pair small{
  color:var(--muted);
  font-size:11px;
  font-weight:800;
  line-height:1.15;
}
.empty-inline{
  border:1px dashed var(--line);
  border-radius:12px;
  padding:12px;
  color:var(--muted);
  font-weight:800;
}
.delete-hub-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:10px;
}
.delete-type-badge{
  min-height:72px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  font-weight:900;
  cursor:pointer;
}
.delete-type-badge:hover{
  border-color:var(--red);
  box-shadow:0 10px 24px rgba(0,0,0,.08);
}
.slot-action-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:10px;
}
.slot-action-badge{
  display:grid;
  align-content:center;
  gap:6px;
  min-height:82px;
  padding:12px;
  text-align:left;
}
.slot-action-badge strong,
.slot-action-badge span{
  display:block;
}
.slot-action-badge span{
  color:var(--muted);
  font-size:12px;
}
.calendar-work-order-picker{
  display:grid;
  gap:12px;
}
.calendar-work-order-preview{
  display:grid;
  gap:4px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
}
.calendar-work-order-actions{
  gap:10px;
  flex-wrap:wrap;
}
.delete-list-toolbar{
  display:grid;
  grid-template-columns:minmax(180px,1fr) auto;
  gap:10px;
  margin-bottom:12px;
}
.delete-row{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:10px;
  align-items:center;
  padding:10px 0;
  border-bottom:1px solid var(--line);
}
.delete-row:last-child{
  border-bottom:0;
}
.delete-row strong{
  display:block;
}
.delete-row small{
  display:block;
  color:var(--muted);
  font-weight:800;
  margin-top:2px;
}
.cash-receipt-print .sheet-head h2{
  text-transform:uppercase;
}
.admin-bottom-bar{
  position:fixed;
  left:50%;
  bottom:14px;
  transform:translateX(-50%);
  z-index:80;
  width:min(980px,calc(100vw - 24px));
  min-height:62px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(255,255,255,.95);
  box-shadow:0 18px 42px rgba(0,0,0,.18);
  display:grid;
  grid-template-columns:1fr 1fr 1fr 82px 1fr 1fr 1fr;
  align-items:center;
  gap:4px;
  padding:7px 10px;
  backdrop-filter:blur(12px);
}
.admin-bottom-bar > button,
.bottom-nav-group > button{
  min-height:42px;
  border:0;
  border-radius:999px;
  background:transparent;
  font-weight:900;
  cursor:pointer;
  color:#333;
}
.admin-bottom-bar > button.active,
.bottom-nav-group > button.active,
.bottom-nav-group.open > button{
  background:#111;
  color:#fff;
}
.bottom-nav-group{
  position:relative;
  display:flex;
  justify-content:center;
}
.bottom-nav-group > button{
  width:100%;
}
.bottom-menu{
  position:absolute;
  left:50%;
  bottom:56px;
  z-index:120;
  display:grid;
  gap:6px;
  min-width:190px;
  padding:8px;
  border:1px solid var(--line);
  border-radius:16px;
  background:rgba(255,255,255,.98);
  box-shadow:0 18px 46px rgba(0,0,0,.20);
  transform:translateX(-50%);
}
.bottom-menu[hidden]{display:none}
.bottom-menu button{
  border:0;
  border-radius:10px;
  background:transparent;
  padding:11px 12px;
  text-align:left;
  font-size:13px;
  font-weight:900;
  cursor:pointer;
  white-space:nowrap;
}
.bottom-menu button:hover,
.bottom-menu button.active{
  background:#111;
  color:#fff;
}
.fab-wrap{position:relative;display:flex;justify-content:center}
.fab-main{
  width:66px;
  height:66px;
  border-radius:50%;
  border:0;
  background:var(--red);
  color:#fff;
  font-size:36px;
  font-weight:900;
  box-shadow:0 14px 28px rgba(215,25,32,.32);
  cursor:pointer;
  transform:translateY(-18px);
}
.admin-bottom-bar > .fab-main,
.admin-bottom-bar > .fab-main.active,
.admin-bottom-bar > .fab-main:focus-visible{
  background:var(--red)!important;
  color:#fff!important;
  box-shadow:0 14px 34px rgba(215,25,32,.38);
}
.fab-menu{
  position:absolute;
  left:50%;
  bottom:58px;
  width:300px;
  height:170px;
  transform:translateX(-50%);
  pointer-events:none;
}
.fab-menu button{
  position:absolute;
  left:50%;
  bottom:0;
  border:1px solid var(--line);
  border-radius:999px;
  padding:9px 12px;
  background:#111;
  color:#fff;
  font-size:13px;
  font-weight:900;
  opacity:0;
  transform:translate(-50%,20px) scale(.9);
  transition:.16s ease;
  cursor:pointer;
  white-space:nowrap;
}
.fab-wrap.open .fab-menu{pointer-events:auto}
.fab-wrap.open .fab-menu button{opacity:1}
.fab-wrap.open .fab-menu button:nth-child(1){transform:translate(-148px,-18px)}
.fab-wrap.open .fab-menu button:nth-child(2){transform:translate(-116px,-82px)}
.fab-wrap.open .fab-menu button:nth-child(3){transform:translate(-50%,-124px)}
.fab-wrap.open .fab-menu button:nth-child(4){transform:translate(36px,-124px)}
.fab-wrap.open .fab-menu button:nth-child(5){transform:translate(70px,-82px)}
.fab-wrap.open .fab-menu button:nth-child(6){transform:translate(92px,-18px)}
.kosmo-messenger{
  display:grid;
  grid-template-columns:minmax(240px,.42fr) minmax(0,1fr);
  min-height:min(720px,calc(100vh - 230px));
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
  background:#fff;
}
.messenger-sidebar{
  display:grid;
  grid-template-rows:auto 1fr;
  border-right:1px solid var(--line);
  background:#f8f9fa;
  min-width:0;
}
.messenger-search{
  padding:12px;
  border-bottom:1px solid var(--line);
}
.messenger-search input{
  width:100%;
}
.messenger-thread-list{
  display:grid;
  align-content:start;
  gap:6px;
  max-height:calc(100vh - 320px);
  overflow:auto;
  padding:10px;
}
.messenger-thread{
  display:grid;
  gap:4px;
  width:100%;
  border:1px solid transparent;
  border-radius:12px;
  background:#fff;
  padding:10px;
  text-align:left;
  cursor:pointer;
}
.messenger-thread:hover,
.messenger-thread.active{
  border-color:#a8d4c2;
  background:#eefaf4;
}
.messenger-thread strong,
.messenger-thread span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.messenger-thread span{
  color:var(--muted);
  font-size:12px;
}
.messenger-chat{
  display:grid;
  grid-template-rows:auto 1fr auto;
  min-width:0;
  min-height:0;
}
.messenger-chat-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:14px;
  border-bottom:1px solid var(--line);
  background:#fff;
}
.messenger-chat-head h3{
  margin:0;
}
.messenger-work-pills{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.messenger-work-pills button{
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
  padding:7px 10px;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
}
.messenger-work-pills button.active{
  background:#111;
  color:#fff;
}
.messenger-message-list{
  display:flex;
  flex-direction:column;
  gap:10px;
  overflow:auto;
  padding:16px;
  background:linear-gradient(180deg,#f7faf8,#fff);
}
.messenger-bubble{
  max-width:min(620px,84%);
  align-self:flex-start;
  border-radius:14px 14px 14px 4px;
  padding:10px 12px;
  background:#fff;
  border:1px solid var(--line);
  box-shadow:0 4px 14px rgba(0,0,0,.05);
}
.messenger-bubble.outgoing{
  align-self:flex-end;
  border-color:#bde4ca;
  border-radius:14px 14px 4px 14px;
  background:#e7f8ed;
}
.messenger-bubble small{
  display:block;
  margin-top:6px;
  color:var(--muted);
  font-weight:800;
}
.messenger-compose{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(180px,280px) auto;
  gap:8px;
  padding:12px;
  border-top:1px solid var(--line);
  background:#fff;
}
.messenger-compose textarea{
  min-height:52px;
  resize:vertical;
}
.messenger-compose input[type="file"]{
  border:1px solid var(--line);
  border-radius:8px;
  padding:8px;
  min-width:0;
  background:#fff;
}
.portal-admin-overview,
.voucher-overview,
.receipt-overview{
  display:grid;
  gap:12px;
}
.portal-admin-row,
.voucher-row,
.receipt-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
}
.modal{
  border:0;
  padding:0;
  background:transparent;
}
.modal::backdrop{background:rgba(0,0,0,.42)}
.modal-card{
  width:min(760px,calc(100vw - 28px));
  max-height:86vh;
  overflow:auto;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  box-shadow:0 22px 70px rgba(0,0,0,.22);
  padding:20px;
}
.modal-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
}
.modal-head h3{margin:0}
.dialog-layer-nav{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-left:auto;
}
.dialog-layer-nav .btn{
  min-width:42px;
  padding-inline:10px;
}
.dialog-layer-nav .btn:disabled{
  opacity:.42;
  cursor:not-allowed;
}
.dialog-layer-current .modal-card{
  outline:1px solid rgba(224,18,31,.16);
}
.eyebrow{
  margin:0 0 4px;
  color:var(--muted);
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
}
.modal-actions{
  display:flex;
  justify-content:flex-end;
  margin-top:16px;
}
.customer-registry-modal-card{
  width:min(980px,calc(100vw - 28px));
}
.customer-registry-layout{
  display:grid;
  grid-template-columns:minmax(260px,.9fr) minmax(320px,1.1fr);
  gap:14px;
}
.customer-registry-list,
.customer-registry-editor{
  min-width:0;
}
.customer-registry-search{
  margin-bottom:10px;
}
.registry-list-actions{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:start;
  margin-bottom:10px;
}
.registry-list-actions .customer-registry-search{
  margin-bottom:0;
}
.customer-registry-results{
  display:grid;
  gap:8px;
  max-height:58vh;
  overflow:auto;
  padding-right:4px;
}
.customer-registry-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  border:1px solid var(--line);
  border-radius:8px;
  padding:8px;
  background:#fff;
}
.customer-registry-row.current{
  border-color:#b9d8b9;
  background:#f5fbf5;
}
.customer-registry-row.selected{
  border-color:#111;
}
.customer-registry-main{
  min-width:0;
  border:0;
  background:transparent;
  text-align:left;
  padding:0;
  color:#111;
  cursor:pointer;
}
.customer-registry-main strong,
.customer-registry-main span{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.customer-registry-main span{
  color:var(--muted);
  font-size:12px;
  margin-top:2px;
}
.customer-registry-edit-card{
  border:1px solid var(--line);
  border-radius:10px;
  padding:12px;
  background:#fbfbfb;
}
.customer-results small{
  display:block;
  color:var(--muted);
  font-size:12px;
  margin-top:2px;
}
.customer-registry-edit-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  margin-bottom:12px;
}
.customer-registry-edit-head h4{
  margin:0;
}
.customer-machine-section,
.customer-machine-report,
.customer-machine-media,
.customer-machine-history{
  display:grid;
  gap:10px;
  margin-top:12px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
}
.customer-machine-head,
.customer-machine-row-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.customer-machine-head.compact h4{
  margin:0;
}
.customer-machine-rows,
.customer-machine-work-list,
.customer-machine-due-list{
  display:grid;
  gap:10px;
}
.customer-machine-row{
  display:grid;
  gap:10px;
  padding:10px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fbfcfd;
}
.customer-machine-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
}
.customer-machine-field{
  display:grid;
  gap:4px;
  min-width:0;
  color:var(--muted);
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
}
.customer-machine-field input,
.customer-machine-field textarea,
.customer-machine-media-upload input,
.customer-machine-media-upload select{
  width:100%;
  min-width:0;
}
.customer-machine-field.wide{
  text-transform:none;
}
.customer-machine-notes{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.customer-machine-media-upload{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(120px,.4fr) minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
}
.customer-machine-media-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(140px, 1fr));
  gap:10px;
}
.customer-machine-media-item{
  margin:0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
}
.customer-machine-media-item img{
  display:block;
  width:100%;
  aspect-ratio:4 / 3;
  object-fit:cover;
  background:#f4f6f8;
}
.customer-machine-media-item figcaption{
  display:grid;
  gap:4px;
  padding:8px;
}
.customer-machine-media-item figcaption span,
.customer-machine-work-row span,
.customer-machine-due span{
  color:var(--muted);
  font-size:12px;
}
.customer-machine-work-row,
.customer-machine-due{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
  padding:8px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fbfcfd;
}
.customer-machine-due{
  grid-template-columns:1fr;
  border-color:#ffd0d0;
  background:#fff7f7;
}
.sheet-machine-summary{
  gap:6px;
}
.sheet-machine-summary .work-actions{
  margin-top:2px;
}
.machine-detail-layer{
  display:grid;
  gap:12px;
}

.portal-shell{background:#f7f7f7;min-height:100vh}
.portal-wrap{max-width:1100px;margin:auto;padding:32px 22px}
.portal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}
.timeline{
  border-left:3px solid var(--line);
  margin-left:10px;
  padding-left:20px;
}
.timeline-item{margin-bottom:18px}
.timeline-item:before{
  content:"";
  width:12px;
  height:12px;
  background:var(--red);
  border-radius:50%;
  display:inline-block;
  margin-left:-28px;
  margin-right:14px;
}
.billing-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #eee}
.portal-message-panel,
.work-message-panel{
  margin-top:14px;
  border-top:1px solid var(--line);
  padding-top:14px;
}
.portal-message-list{
  display:grid;
  gap:8px;
  margin:10px 0;
}
.portal-message{
  border:1px solid var(--line);
  border-radius:8px;
  padding:10px 12px;
  background:#fff;
}
.portal-message-meta{
  display:flex;
  justify-content:space-between;
  gap:10px;
  color:#5f6872;
  font-size:12px;
}
.portal-message p{
  margin:6px 0 0;
  white-space:pre-wrap;
}
.portal-message-compose{
  display:grid;
  gap:8px;
}
.portal-message-compose textarea{
  width:100%;
  min-height:86px;
  border:1px solid var(--line);
  border-radius:8px;
  padding:10px;
  resize:vertical;
}
.public-bottom-nav{
  display:none;
}

.part-inquiry-page{
  padding-top:34px;
  width:100%;
  max-width:100vw;
  overflow-x:hidden;
}
.part-inquiry-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,440px);
  gap:24px;
  align-items:stretch;
  margin-bottom:22px;
  min-width:0;
}
.part-inquiry-head h1{
  margin:0 0 14px;
  font-size:clamp(36px,6vw,58px);
  line-height:1;
  letter-spacing:0;
}
.part-inquiry-head p:not(.hero-stamp){
  max-width:680px;
  color:var(--muted);
  font-size:18px;
  font-weight:650;
  line-height:1.55;
  overflow-wrap:anywhere;
}
.part-inquiry-head .hero-stamp{
  margin-bottom:18px;
}
.part-inquiry-photo{
  min-height:260px;
  border-radius:16px;
  border:1px solid var(--line);
  background:
    linear-gradient(180deg,rgba(0,0,0,.02),rgba(0,0,0,.18)),
    url("/static/media/gallery-tractor.webp") center/cover no-repeat;
  box-shadow:var(--shadow);
}
.part-inquiry-layout{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);
  gap:18px;
  align-items:start;
  width:100%;
  min-width:0;
}
.part-inquiry-form,
.part-inquiry-checklist{
  min-height:0;
  min-width:0;
  max-width:100%;
  overflow:hidden;
}
.part-inquiry-form .section-title{
  margin-bottom:10px;
}
.part-inquiry-form .tall{
  min-height:160px;
}
.part-inquiry-form .checkbox-row,
.part-inquiry-checkbox{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:52px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  color:#111;
  font-weight:750;
  line-height:1.35;
  min-width:0;
  max-width:100%;
  overflow-wrap:anywhere;
  white-space:normal;
}
.part-inquiry-form .checkbox-row input{
  width:auto;
  min-width:18px;
  flex:0 0 auto;
}
.part-inquiry-form .form-row{
  grid-template-columns:repeat(2,minmax(0,1fr));
  min-width:0;
}
.part-inquiry-form input,
.part-inquiry-form textarea,
.part-inquiry-form select{
  min-width:0;
  max-width:100%;
}
.part-inquiry-form input[type="file"]{
  width:100%;
  max-width:100%;
  overflow:hidden;
}
.part-inquiry-form .file-field{
  min-width:0;
  max-width:100%;
  overflow:hidden;
}
.part-inquiry-honeypot{
  position:absolute;
  left:-10000px;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}
.file-hint{
  margin-top:-6px;
}
.part-inquiry-checklist{
  position:sticky;
  top:96px;
  display:grid;
  gap:16px;
}
.part-inquiry-checklist h2{
  margin:0;
}
.part-inquiry-checklist ul{
  margin:0;
  padding-left:20px;
  color:var(--muted);
  line-height:1.55;
  font-weight:650;
  min-width:0;
}
.part-inquiry-checklist li,
.part-inquiry-callout,
.part-inquiry-callout p,
.part-inquiry-checklist .btn{
  min-width:0;
  max-width:100%;
  overflow-wrap:anywhere;
}
.part-inquiry-checklist li + li{
  margin-top:8px;
}
.part-inquiry-callout{
  border:1px solid #bfdccf;
  border-radius:12px;
  padding:14px;
  background:#eefaf4;
}
.part-inquiry-callout p{
  margin:6px 0 0;
}

.rental-hero{
  background:linear-gradient(90deg,rgba(0,0,0,.82),rgba(0,0,0,.48)),url("/static/media/rental-hero.webp") center/cover no-repeat;
  color:#fff;
  padding:86px 22px;
}
.rental-hero-inner{max-width:1220px;margin:auto}
.rental-hero h1{font-size:54px;line-height:1;margin:0 0 16px}
.rental-grid{grid-template-columns:repeat(3,1fr)}
.rental-filters{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(190px,280px);
  gap:10px;
  margin:18px 0;
}
.rental-filters input,
.rental-filters select{
  width:100%;
  border:1px solid var(--line);
  border-radius:10px;
  padding:12px 14px;
  background:#fff;
  font-weight:750;
}
.rental-machine-card{
  overflow:hidden;
  display:flex;
  flex-direction:column;
  gap:0;
  padding:0;
}
.rental-machine-image,
.rental-machine-placeholder{
  width:100%;
  aspect-ratio:4/3;
  border-radius:0;
}
.rental-machine-image{
  display:block;
  object-fit:cover;
}
.rental-machine-placeholder{
  display:grid;
  place-items:center;
  background:#f2f4f7;
  color:#667085;
  font-weight:900;
}
.rental-machine-body{
  display:grid;
  gap:12px;
  padding:16px;
}
.rental-card-head{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:flex-start;
}
.rental-card-head h3{
  margin:0;
}
.rental-price-list{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.rental-price-list b{
  display:inline-flex;
  border:1px solid var(--line);
  border-radius:999px;
  padding:7px 10px;
  background:#f8fafc;
  font-size:13px;
}
.rental-detail-list{
  margin:0;
  padding-left:18px;
  color:var(--muted);
}
.rental-terms-card{
  margin-top:18px;
}
.site-rental-editor{
  margin-top:14px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fbfbfb;
}
.site-rental-head-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
}
.site-rental-summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:16px 0 4px;
}
.site-rental-summary-badge{
  display:grid;
  gap:3px;
  min-width:0;
  min-height:76px;
  padding:13px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  color:#111;
  text-align:left;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(0,0,0,.04);
}
.site-rental-summary-badge:hover,
.site-rental-summary-badge:focus-visible{
  border-color:#111;
}
.site-rental-summary-badge strong{
  font-size:26px;
  line-height:1;
}
.site-rental-summary-badge span{
  color:var(--muted);
  font-size:12px;
  font-weight:900;
  line-height:1.2;
}
.site-rental-admin-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:14px;
  align-items:start;
}
.site-rental-panel{
  display:grid;
  gap:10px;
  min-width:0;
  grid-column:1/-1;
}
.site-rental-panel h3{
  margin:0;
}
.site-rental-list{
  display:grid;
  gap:12px;
  max-height:calc(100vh - 260px);
  overflow:auto;
  padding-right:4px;
}
.site-rental-list-tools{
  position:sticky;
  top:0;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  box-shadow:0 8px 18px rgba(0,0,0,.04);
}
.site-rental-list-tool-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
}
.site-rental-row{
  display:grid;
  gap:10px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  padding:12px;
}
.site-rental-row.open{
  border-color:#c8d4e6;
  box-shadow:0 10px 24px rgba(0,0,0,.05);
}
.site-rental-row-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.site-rental-row-head.compact{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:start;
}
.site-rental-row-title{
  display:grid;
  gap:4px;
  min-width:0;
}
.site-rental-row-title strong,
.site-rental-row-title span{
  overflow-wrap:anywhere;
}
.site-rental-row-statuses{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:6px;
}
.site-rental-row-details[hidden]{
  display:none;
}
.site-rental-row-details{
  display:grid;
  gap:10px;
}
.site-rental-fields{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.site-rental-fields label,
.site-rental-fields .wide{
  min-width:0;
}
.site-rental-fields label{
  display:grid;
  gap:5px;
  color:#666;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
}
.site-rental-fields .wide{
  grid-column:1/-1;
}
.site-rental-fields input,
.site-rental-fields select,
.site-rental-fields textarea{
  width:100%;
  border:1px solid var(--line);
  border-radius:8px;
  padding:10px 11px;
  background:#fff;
  color:#111;
  font:inherit;
  font-weight:650;
  text-transform:none;
}
.site-rental-fields textarea{
  resize:vertical;
}
.site-rental-fields .checkbox-row{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:42px;
}
.site-rental-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
}

.hidden{display:none!important}

.brand-splash{
  position:fixed;
  inset:0;
  z-index:200;
  display:grid;
  place-items:center;
  pointer-events:none;
  padding:24px;
  background:
    radial-gradient(circle at 50% 42%, rgba(228,16,28,.20), transparent 34%),
    linear-gradient(145deg,#050707,#111715 58%,#050606);
  color:#f6ead1;
  animation:splashFadeOut .7s ease 2.2s forwards;
}
.brand-splash.is-hidden{
  opacity:0;
  pointer-events:none;
}
.brand-splash-card{
  width:min(520px,88vw);
  text-align:center;
  animation:splashRise .9s cubic-bezier(.2,.8,.2,1) both;
}
.brand-splash-card img{
  display:block;
  width:100%;
  max-height:62vh;
  object-fit:contain;
  border-radius:28px;
  box-shadow:0 34px 90px rgba(0,0,0,.45);
}
.brand-splash-card p{
  margin:16px 0 0;
  color:#f6ead1;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
@keyframes splashRise{
  from{opacity:0;transform:translateY(18px) scale(.96)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes splashFadeOut{
  to{opacity:0;visibility:hidden;pointer-events:none}
}

@media(max-width:1100px){
  .site-admin-shell{
    grid-template-columns:1fr;
  }
  .site-admin-preview{
    position:static;
  }
  .site-rental-admin-grid{
    grid-template-columns:1fr;
  }
}

@media(max-width:980px){
  body:not(.admin-shell){
    padding-bottom:78px;
  }
  .nav{align-items:flex-start}
  .admin-topbar .nav{
    align-items:center;
    gap:10px;
  }
  .admin-top-actions{
    justify-content:flex-end;
  }
  .admin-top-actions button{
    padding:8px 9px;
    font-size:12px;
  }
  .admin-clock{
    min-width:92px;
    padding:5px 8px;
    font-size:12px;
  }
  .nav-links{display:none}
  .phone-pill{display:none}
  .public-bottom-nav{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:80;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:1px;
    padding:8px max(10px,env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-right));
    background:rgba(255,255,255,.97);
    border-top:1px solid var(--line);
    box-shadow:0 -10px 24px rgba(0,0,0,.08);
  }
  .public-bottom-nav a{
    display:grid;
    place-items:center;
    gap:3px;
    min-height:50px;
    border-radius:8px;
    color:#111;
    font-size:11px;
    font-weight:900;
  }
  .public-bottom-nav span{
    color:var(--red);
    font-size:18px;
    line-height:1;
  }
  .public-bottom-nav a.active,
  .public-bottom-nav a:active{
    background:#fff1f1;
  }
  .feature-strip{margin-top:0}
  .feature-strip-inner,
  .part-inquiry-head,
  .part-inquiry-layout,
  .booking-layout,
  .why-list,
  .portal-promo,
  .grid.cards,
  .grid.services,
  .gallery-grid,
  .why,
  .footer-inner,
  .admin-layout,
  .admin-app,
  .kpi-grid,
  .admin-toolbar,
  .metric-strip,
  .workbench-grid,
  .quote-line-row,
  .rental-grid{grid-template-columns:1fr}
  .rental-filters,
  .site-field-grid,
  .site-rental-fields{
    grid-template-columns:1fr;
  }
  .part-inquiry-checklist{
    position:static;
  }
  .part-inquiry-page{
    padding:28px 12px;
  }
  .part-inquiry-form .form-row{
    grid-template-columns:1fr;
  }
  .part-inquiry-photo{
    min-height:190px;
  }
  .site-admin-shell{
    padding:12px;
    padding-bottom:96px;
    min-height:calc(100dvh - 92px);
    height:auto;
    overflow:visible;
  }
  .site-admin-editor,
  .site-admin-preview.site-admin-view-card{
    max-height:none;
  }
  .site-admin-view-card{
    min-height:calc(100dvh - 170px);
    height:auto;
  }
  .site-admin-card-head{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
  }
  .site-admin-card-controls{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    width:100%;
  }
  .site-admin-card-controls .btn{
    width:100%;
  }
  .site-admin-card-body{
    grid-template-columns:1fr;
    max-height:none;
    overflow:visible;
    padding-right:0;
  }
  .calendar-exception-actions{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    width:100%;
  }
  .site-admin-topbar .nav{
    align-items:center;
  }
  .site-admin-actions{
    gap:6px;
  }
  .site-admin-actions .btn{
    padding:9px 10px;
    font-size:12px;
  }
  .site-admin-bottom-nav{
    left:8px;
    right:8px;
    bottom:8px;
    transform:none;
    justify-content:space-between;
  }
  .site-admin-bottom-nav a{
    min-width:0;
    flex:1 1 0;
    min-height:40px;
    font-size:12px;
  }
  .site-admin-bottom-nav.grouped{
    left:4px;
    right:4px;
    bottom:calc(6px + env(safe-area-inset-bottom));
    width:auto;
    min-height:56px;
    grid-template-columns:repeat(3,minmax(0,1fr)) 56px repeat(2,minmax(0,1fr));
    padding:5px;
    gap:3px;
  }
  .site-admin-bottom-nav.grouped > button,
  .site-admin-bottom-nav.grouped .bottom-nav-group > button{
    min-height:42px;
    padding:5px 4px;
    font-size:10px;
  }
  .site-admin-bottom-nav.grouped > .fab-main{
    width:54px;
    height:54px;
    font-size:22px;
    transform:translateY(-14px);
  }
  .site-rental-list{
    max-height:none;
  }
  .site-rental-summary{
    grid-template-columns:1fr;
  }
  .site-rental-list-tools,
  .site-rental-row-head.compact{
    grid-template-columns:1fr;
  }
  .site-rental-list-tools{
    display:grid;
  }
  .site-rental-list-tool-actions,
  .site-rental-row-statuses{
    justify-content:stretch;
  }
  .site-rental-list-tool-actions .btn,
  .site-rental-row-statuses .btn{
    flex:1 1 140px;
  }
  .site-rental-head-actions,
  .site-rental-actions{
    justify-content:stretch;
  }
  .site-rental-head-actions .btn,
  .site-rental-actions .btn{
    flex:1 1 140px;
  }
  .booking-range-row{grid-template-columns:1fr}
  .admin-app{padding:14px 10px 92px;width:100%;max-width:100%}
  .panel{padding:16px 12px}
  .admin-section{padding:12px 10px}
  .admin-toolbar{display:grid}
  .calendar-toolbar{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    align-items:stretch;
    gap:8px;
  }
  .calendar-view-tabs{
    grid-column:1/-1;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    border-radius:14px;
  }
  .calendar-step-controls{
    grid-column:1/-1;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
  }
  .calendar-step-controls .btn{
    width:100%;
    min-height:38px;
    padding:8px 6px;
  }
  .calendar-step-controls .desktop-label{
    display:none;
  }
  .calendar-step-controls .mobile-label{
    display:inline;
  }
  .calendar-toolbar > .btn,
  .calendar-toolbar > strong{
    width:100%;
  }
  #calendarWeekLabel{
    grid-column:1/-1;
    display:block;
    padding:9px 10px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fff;
    text-align:center;
  }
  .calendar-range-controls{
    grid-column:1/-1;
    display:grid;
    grid-template-columns:1fr 1fr auto;
    gap:8px;
  }
  .calendar-range-controls label{
    display:grid;
    align-items:end;
    gap:4px;
    font-size:11px;
  }
  .calendar-range-controls select{
    width:100%;
    min-width:0;
  }
  #calendarFullDay{
    align-self:end;
    min-height:38px;
  }
  #blockSelectedDay{
    grid-column:1/-1;
    min-height:44px;
    padding:10px 12px;
  }
  .modal-card{
    width:calc(100vw - 16px);
    max-height:92vh;
    padding:14px;
    border-radius:16px;
  }
  .work-order-dialog .work-order-modal-card{
    width:calc(100vw - 16px);
    max-width:calc(100vw - 16px);
  }
  .work-order-dialog-content{
    width:100%;
    justify-items:stretch;
  }
  .work-sheet-toolbar,
  .work-order-extra-panel{
    width:100%;
  }
  .work-sheet-toolbar{
    display:grid;
    grid-template-columns:1fr;
    align-items:start;
  }
  .work-sheet-toolbar .work-actions,
  .mobile-print-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
  }
  .work-sheet-toolbar .work-actions .btn,
  .mobile-print-actions .btn{
    width:100%;
    min-width:0;
    white-space:normal;
  }
  .modal-head{
    gap:10px;
  }
  .work-order-form-head{
    flex-direction:column;
  }
  .work-order-form-head .work-actions,
  .detail-actions,
  .section-actions,
  .time-entry-actions{
    width:100%;
    justify-content:stretch;
  }
  .work-actions .btn,
  .detail-actions .btn,
  .section-actions .btn,
  .time-entry-actions .btn{
    flex:1 1 120px;
  }
  .inventory-tabs{
    display:grid;
    grid-template-columns:1fr;
  }
  .inventory-tabs button{
    width:100%;
  }
  .form-section{
    padding:12px;
  }
  .booking-calendar-head{display:none}
  .booking-calendar-grid{grid-template-columns:1fr}
  .booking-month-grid{grid-template-columns:54px repeat(7,minmax(82px,1fr));min-width:660px}
  .booking-month-day{min-height:92px;padding:7px}
  .booking-time-grid{grid-template-columns:1fr;min-width:0}
  .booking-time-day{border-right:0}
  .booking-day{border-right:0;min-height:110px}
  .admin-section .table{min-width:680px}
  #tyot .table{
    min-width:0;
  }
  #tyot .table thead{
    display:none;
  }
  #tyot .table,
  #tyot .table tbody,
  #tyot .work-order-row,
  #tyot .work-order-row td{
    display:block;
    width:100%;
  }
  #tyot .work-order-row{
    border:1px solid var(--line);
    border-radius:16px;
    margin:0 0 12px;
    padding:8px 10px;
    background:#fff;
    box-shadow:0 8px 24px rgba(0,0,0,.05);
  }
  #tyot .work-order-row td{
    border-bottom:0;
    padding:8px 0;
  }
  #tyot .work-order-row td::before{
    content:attr(data-label);
    display:block;
    margin-bottom:3px;
    color:var(--muted);
    font-size:11px;
    font-weight:900;
    text-transform:uppercase;
  }
  #tyot .work-detail-row,
  #tyot .work-detail-row td{
    display:block;
    width:100%;
  }
  #tyot .work-detail-row td{
    padding:0 0 12px;
  }
  #varasto .table,
  #henkilosto .table{
    min-width:0;
  }
  #varasto .table thead,
  #henkilosto .table thead{
    display:none;
  }
  #varasto .table,
  #varasto .table tbody,
  #varasto .mobile-card-row,
  #varasto .mobile-card-row td,
  #henkilosto .table,
  #henkilosto .table tbody,
  #henkilosto .mobile-card-row,
  #henkilosto .mobile-card-row td{
    display:block;
    width:100%;
  }
  #varasto .mobile-card-row,
  #henkilosto .mobile-card-row{
    border:1px solid var(--line);
    border-radius:16px;
    margin:0 0 12px;
    padding:8px 10px;
    background:#fff;
    box-shadow:0 8px 24px rgba(0,0,0,.05);
  }
  #varasto .mobile-card-row td,
  #henkilosto .mobile-card-row td{
    border-bottom:0;
    padding:8px 0;
  }
  #varasto .mobile-card-row td::before,
  #henkilosto .mobile-card-row td::before{
    content:attr(data-label);
    display:block;
    margin-bottom:3px;
    color:var(--muted);
    font-size:11px;
    font-weight:900;
    text-transform:uppercase;
  }
  #ajanvaraus .table,
  #tarjoukset .table,
  #ostot .table,
  #ajoneuvokanta .table{
    min-width:0;
  }
  #ajanvaraus .table thead,
  #tarjoukset .table thead,
  #ostot .table thead,
  #ajoneuvokanta .table thead{
    display:none;
  }
  #ajanvaraus .table,
  #ajanvaraus .table tbody,
  #ajanvaraus .mobile-card-row,
  #ajanvaraus .mobile-card-row td,
  #tarjoukset .table,
  #tarjoukset .table tbody,
  #tarjoukset .mobile-card-row,
  #tarjoukset .mobile-card-row td,
  #ostot .table,
  #ostot .table tbody,
  #ostot .mobile-card-row,
  #ostot .mobile-card-row td,
  #ajoneuvokanta .table,
  #ajoneuvokanta .table tbody,
  #ajoneuvokanta .mobile-card-row,
  #ajoneuvokanta .mobile-card-row td{
    display:block;
    width:100%;
  }
  #ajanvaraus .mobile-card-row,
  #tarjoukset .mobile-card-row,
  #ostot .mobile-card-row,
  #ajoneuvokanta .mobile-card-row{
    border:1px solid var(--line);
    border-radius:16px;
    margin:0 0 12px;
    padding:8px 10px;
    background:#fff;
    box-shadow:0 8px 24px rgba(0,0,0,.05);
  }
  #ajanvaraus .mobile-card-row td,
  #tarjoukset .mobile-card-row td,
  #ostot .mobile-card-row td,
  #ajoneuvokanta .mobile-card-row td{
    border-bottom:0;
    padding:8px 0;
  }
  #ajanvaraus .mobile-card-row td::before,
  #tarjoukset .mobile-card-row td::before,
  #ostot .mobile-card-row td::before,
  #laskutus .mobile-card-row td::before,
  #varasto .mobile-card-row td::before,
  #henkilosto .mobile-card-row td::before,
  #ajoneuvokanta .mobile-card-row td::before{
    content:attr(data-label);
    display:block;
    margin-bottom:3px;
    color:var(--muted);
    font-size:11px;
    font-weight:900;
    text-transform:uppercase;
  }
  .kosmo-messenger{
    grid-template-columns:1fr;
  }
  .messenger-sidebar{
    border-right:0;
    border-bottom:1px solid var(--line);
  }
  .messenger-thread-list{
    max-height:240px;
  }
  .messenger-compose{
    grid-template-columns:1fr;
  }
  .management-grid,
  .accounting-grid,
  .accounting-scope,
  .customer-machine-grid,
  .customer-machine-notes,
  .customer-machine-media-upload,
  .work-quick-grid,
  .work-quick-row,
  .work-quick-row.travel,
  .work-sheet-line-adder,
  .labor-line-editor,
  .work-detail-grid.wide,
  .work-detail-grid.notes{grid-template-columns:1fr}
  .employee-dialog-grid{
    grid-template-columns:1fr;
  }
  .employee-dialog-grid .span-2{
    grid-column:auto;
  }
  .employee-editor-card,
  .employee-assignment-card{
    width:calc(100vw - 16px);
    max-width:calc(100vw - 16px);
  }
  .assignment-list{
    max-height:48vh;
  }
  .quote-line-row .quote-line-description,
  .work-sheet-line-adder .work-line-description{
    grid-column:auto;
  }
  .sheet-lines-head{
    align-items:flex-start;
    flex-wrap:wrap;
  }
  .sheet-lines-actions{
    width:100%;
    justify-content:stretch;
  }
  .sheet-lines-actions .btn{
    flex:1 1 110px;
  }
  .time-billing-auto-toggle{
    flex:1 1 100%;
    white-space:normal;
  }
  .work-detail-grid,
  .work-time-entry{grid-template-columns:1fr}
  .work-billing-head,
  .sheet-head{flex-direction:column}
  .sheet-meta-grid,
  .sheet-two-col,
  .sheet-summary,
  .sheet-signatures{grid-template-columns:1fr}
  .work-sheet-print{
    width:100%;
    min-width:0;
    min-height:auto;
    margin:0;
    padding:10px;
    overflow:visible;
  }
  .sheet-status-edit{
    width:100%;
    min-width:0;
    justify-items:stretch;
  }
  .sheet-number-input,
  .sheet-title-input{
    max-width:none;
  }
  .sheet-number-input{
    font-size:22px;
  }
  .sheet-table.mobile-card-table tbody tr td{
    grid-template-columns:1fr;
    gap:3px;
    align-items:start;
  }
  .editable-sheet-table input,
  .editable-sheet-table textarea,
  .editable-sheet-table select{
    width:100%;
    min-height:38px;
  }
  .sheet-table{
    table-layout:fixed;
  }
  .sheet-table th,
  .sheet-table td{
    overflow-wrap:anywhere;
  }
  .admin-bottom-bar{
    width:calc(100vw - 10px);
    grid-template-columns:repeat(3,minmax(0,1fr)) 68px repeat(3,minmax(0,1fr));
    gap:2px;
    padding:6px;
  }
  .admin-bottom-bar > button,
  .bottom-nav-group > button{
    font-size:11px;
    padding:0 4px;
  }
  .fab-main{
    width:58px;
    height:58px;
    font-size:32px;
  }
  .bottom-menu{
    min-width:168px;
  }
  .hero{min-height:520px}
  .hero-inner{padding-bottom:55px}
  .banner-inner{flex-direction:column;align-items:flex-start}
  .sidebar{position:static;height:auto}
  .form-row{grid-template-columns:1fr}
  .form-row.product-price-row{grid-template-columns:1fr}
  .form-row.phone-entry-row{grid-template-columns:1fr}
  .workday-toolbar,
  .timer-quick-row,
  .timer-detail-row{
    grid-template-columns:1fr;
  }
  .timer-latest-work{
    align-items:stretch;
    flex-direction:column;
  }
  .timer-latest-work .btn{
    width:100%;
  }
  .rental-checkbox-grid{grid-template-columns:1fr}
  .customer-registry-layout{grid-template-columns:1fr}
  .registry-list-actions{grid-template-columns:1fr}
  .customer-registry-results{max-height:36vh}
}

@media(max-width:760px){
  body.admin-shell{
    overflow-x:hidden;
    background:#f4f5f6;
  }
  body.admin-shell .nav{
    display:grid;
    grid-template-columns:minmax(100px,1fr) auto;
    gap:6px;
    padding:7px 8px;
  }
  body.admin-shell .admin-brand{
    min-width:0;
    gap:6px;
  }
  body.admin-shell .admin-brand .logo-mark,
  body.admin-shell .admin-brand .logo-image{
    width:32px;
    height:32px;
    flex-basis:32px;
  }
  body.admin-shell .brand-menu-button{
    width:38px;
    height:38px;
    flex-basis:38px;
    padding:3px;
  }
  body.admin-shell .brand-menu-button .logo-mark{
    width:32px;
    height:32px;
  }
  body.admin-shell .logo-wordmark{
    font-size:13px;
    letter-spacing:.2px;
  }
  body.admin-shell .logo-wordmark .tagline{
    display:none;
  }
  body.admin-shell .admin-top-actions{
    flex-wrap:nowrap;
    justify-content:flex-end;
    overflow:visible;
    max-width:100%;
    padding-bottom:4px;
    -webkit-overflow-scrolling:touch;
    gap:4px;
  }
  body.admin-shell .admin-top-actions button{
    flex:0 0 auto;
    min-height:38px;
    padding:7px 8px;
    font-size:10px;
  }
  body.admin-shell .top-workday-chip{
    min-height:36px;
    padding:4px 6px;
  }
  body.admin-shell .top-workday-chip strong{
    font-size:11px;
  }
  body.admin-shell .gear-menu{
    position:fixed;
    top:54px;
    left:8px;
    right:auto;
    width:min(272px,calc(100vw - 16px));
    max-height:calc(100dvh - 68px);
    border-radius:16px;
    z-index:3600;
  }
  body.admin-shell .admin-clock{
    flex:0 0 auto;
    min-width:84px;
    padding:5px 6px;
    font-size:10px;
  }
  body.admin-shell .admin-clock-row{
    gap:4px;
  }
  body.admin-shell .admin-clock-row:last-child{
    font-size:10px;
  }
  body.admin-shell .admin-clock-icon{
    width:12px;
    height:12px;
    flex-basis:12px;
  }
  body.admin-shell .top-order-reminders{
    max-width:112px;
    gap:3px;
  }
  body.admin-shell .top-order-reminder{
    min-height:34px;
    padding:4px 6px;
    font-size:10px;
  }
  body.admin-shell .view-time-chip{
    display:flex;
    width:max-content;
    margin:5px 0 0;
    font-size:11px;
  }
  body.admin-shell .admin-app{
    padding:8px 6px calc(112px + env(safe-area-inset-bottom));
  }
  body.admin-shell .admin-section{
    border-radius:16px;
    padding:10px 8px;
  }
  body.admin-shell .admin-section.active,
  body.admin-shell .admin-section.expanded{
    min-height:calc(100dvh - 145px);
  }
  body.admin-shell .admin-section .section-head.compact{
    position:sticky;
    top:calc(var(--admin-topbar-height) + 8px);
    z-index:38;
    align-items:flex-start;
    gap:10px;
    padding:10px;
    margin:-10px -8px 12px;
    border-bottom:1px solid var(--line);
    border-radius:16px 16px 0 0;
    background:rgba(255,255,255,.96);
    backdrop-filter:blur(12px);
  }
  body.admin-shell .admin-section .section-head.compact h2{
    font-size:21px;
    line-height:1.1;
  }
  body.admin-shell .section-head.compact .work-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
  }
  body.admin-shell .section-head.compact .work-actions .btn{
    min-height:40px;
  }
  body.admin-shell #tyot > .section-head.compact,
  body.admin-shell #ajanvaraus > .section-head.compact{
    position:static;
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
    margin:0 0 8px;
    padding:8px;
    border:1px solid var(--line);
    border-radius:16px;
    box-shadow:0 8px 22px rgba(0,0,0,.04);
  }
  body.admin-shell #ajanvaraus > .section-head.compact{
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
  }
  body.admin-shell #ajanvaraus > .section-head.compact p{
    display:none;
  }
  body.admin-shell #tyot > .section-head.compact h2,
  body.admin-shell #ajanvaraus > .section-head.compact h2{
    margin:0;
    font-size:22px;
  }
  body.admin-shell #tyot > .section-head.compact .work-actions,
  body.admin-shell #ajanvaraus > .section-head.compact .work-actions{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  body.admin-shell #ajanvaraus > .section-head.compact .work-actions{
    width:auto;
  }
  body.admin-shell #tyot > .section-body,
  body.admin-shell #ajanvaraus > .section-body{
    margin-top:8px;
  }
  body.admin-shell .table-scroll{
    overflow:visible;
    max-height:none;
  }
  body.admin-shell .mobile-card-table{
    display:block;
    min-width:0!important;
    width:100%;
    border-collapse:separate;
  }
  body.admin-shell .mobile-card-table thead{
    display:none!important;
  }
  body.admin-shell .mobile-card-table tbody{
    display:grid;
    gap:10px;
  }
  body.admin-shell .mobile-card-table tbody tr{
    display:block!important;
    width:100%!important;
    padding:10px;
    border:1px solid var(--line);
    border-radius:16px;
    background:#fff;
    box-shadow:0 10px 24px rgba(0,0,0,.05);
  }
  body.admin-shell .mobile-card-table tbody tr td{
    display:grid!important;
    grid-template-columns:minmax(92px,.38fr) minmax(0,1fr);
    gap:8px;
    align-items:center;
    width:100%!important;
    min-width:0;
    padding:7px 0!important;
    border:0!important;
    overflow-wrap:anywhere;
  }
  body.admin-shell .mobile-card-table tbody tr td::before{
    content:attr(data-label);
    color:var(--muted);
    font-size:11px;
    font-weight:900;
    text-transform:uppercase;
  }
  body.admin-shell .mobile-card-table tbody tr td[data-label="Toiminnot"],
  body.admin-shell .mobile-card-table tbody tr td:last-child{
    display:block!important;
  }
  body.admin-shell .mobile-card-table .work-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
  }
  body.admin-shell .mobile-card-table .work-actions .btn{
    width:100%;
    min-height:40px;
  }
  body.admin-shell .admin-form,
  body.admin-shell .form,
  body.admin-shell .form-section{
    gap:10px;
  }
  body.admin-shell input,
  body.admin-shell select,
  body.admin-shell textarea{
    min-height:44px;
    font-size:16px;
  }
  body.admin-shell textarea{
    min-height:104px;
  }
  body.admin-shell dialog[open]{
    width:100vw;
    height:100dvh;
    max-width:none;
    max-height:none;
    margin:0;
    border:0;
    background:transparent;
    padding:0;
  }
  body.admin-shell dialog[open] .modal-card,
  body.admin-shell dialog[open] .admin-modal-card,
  body.admin-shell dialog[open] .work-order-modal-card,
  body.admin-shell dialog[open] .customer-registry-modal-card{
    width:100vw;
    max-width:100vw;
    height:100dvh;
    max-height:100dvh;
    border-radius:0;
    padding:14px;
    overflow:auto;
    -webkit-overflow-scrolling:touch;
  }
  body.admin-shell dialog[open] .modal-head,
  body.admin-shell dialog[open] .work-order-form-head{
    position:sticky;
    top:0;
    z-index:12;
    padding:8px 0 10px;
    background:rgba(255,255,255,.97);
    backdrop-filter:blur(12px);
  }
  body.admin-shell .work-sheet-print{
    width:100%;
    min-width:0;
    padding:12px;
    border-radius:12px;
    overflow:visible;
  }
  body.admin-shell .sheet-meta-grid,
  body.admin-shell .sheet-two-col,
  body.admin-shell .sheet-summary,
  body.admin-shell .sheet-signatures{
    grid-template-columns:1fr;
  }
  body.admin-shell .booking-time-grid.week{
    display:grid;
    grid-template-columns:repeat(7,minmax(132px,1fr));
    grid-auto-flow:row;
    grid-auto-columns:auto;
    min-width:924px;
    width:max-content;
    max-width:none;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
  }
  body.admin-shell .booking-time-grid.week .booking-time-day{
    min-width:132px;
    scroll-snap-align:start;
  }
  body.admin-shell .booking-slot{
    min-height:48px;
  }
  body.admin-shell .slot-check-toggle,
  body.admin-shell .booking-day-add{
    width:34px;
    height:34px;
  }
  body.admin-shell .calendar-selection-bar{
    opacity:.68;
    pointer-events:none;
  }
  body.admin-shell .calendar-selection-bar .btn,
  body.admin-shell .calendar-selection-bar button{
    pointer-events:auto;
    opacity:1;
  }
  body.admin-shell .mobile-inventory-counter{
    display:grid;
  }
  body.admin-shell .inventory-count-card .table-scroll{
    max-height:calc(100dvh - 330px);
    overflow:auto;
    padding-right:2px;
    -webkit-overflow-scrolling:touch;
  }
  body.admin-shell .inventory-count-card .mobile-card-table tbody{
    gap:8px;
  }
  body.admin-shell .inventory-count-card .mobile-card-table tbody tr{
    padding:9px;
  }
  body.admin-shell .inventory-count-card .mobile-card-table input[data-inventory-count]{
    width:100%;
    min-width:0;
  }
  body.admin-shell .kosmo-messenger{
    min-height:calc(100dvh - 220px);
  }
  body.admin-shell .messenger-thread-list{
    display:flex;
    gap:8px;
    max-height:none;
    overflow-x:auto;
    padding:8px;
  }
  body.admin-shell .messenger-thread{
    flex:0 0 78%;
  }
  body.admin-shell .messenger-message-list{
    min-height:44dvh;
  }
  body.admin-shell .admin-bottom-bar{
    left:6px;
    right:6px;
    bottom:calc(8px + env(safe-area-inset-bottom));
    transform:none;
    width:auto;
    max-width:none;
    min-width:0;
    grid-template-columns:repeat(3,minmax(0,1fr)) 62px repeat(3,minmax(0,1fr));
    border-radius:28px;
    gap:0;
  }
  body.admin-shell .admin-bottom-bar > button,
  body.admin-shell .bottom-nav-group > button{
    min-height:48px;
    font-size:10px;
    line-height:1.1;
    overflow-wrap:anywhere;
    padding:0 3px;
    white-space:normal;
  }
  body.admin-shell .fab-main{
    width:56px;
    height:56px;
  }
}

@media(max-width:420px){
  :root{
    --admin-topbar-height:62px;
    --admin-topbar-offset:76px;
  }
  body.admin-shell{
    padding-top:62px;
  }
  body.admin-shell .admin-brand .logo-wordmark{
    max-width:118px;
  }
  body.admin-shell .admin-top-actions{
    gap:3px;
  }
  body.admin-shell .admin-top-actions button{
    min-height:34px;
    padding:6px 6px;
    font-size:9px;
  }
  body.admin-shell .top-workday-chip strong{
    font-size:10px;
  }
  body.admin-shell .admin-logout-button .logout-label{
    font-size:0;
  }
  body.admin-shell .admin-logout-button .logout-label::after{
    content:"Ulos";
    font-size:9px;
  }
  body.admin-shell .admin-clock{
    min-width:78px;
    padding:4px 5px;
    font-size:9px;
  }
  body.admin-shell .top-order-reminders{
    max-width:86px;
  }
  body.admin-shell .top-order-reminder{
    min-height:32px;
    padding:4px 5px;
    font-size:9px;
  }
  body.admin-shell .gear-menu{
    top:50px;
    left:6px;
    width:min(250px,calc(100vw - 12px));
  }
  body.admin-shell .admin-bottom-bar{
    left:4px;
    right:4px;
    bottom:calc(6px + env(safe-area-inset-bottom));
    padding:5px;
    grid-template-columns:repeat(3,minmax(0,1fr)) 52px repeat(3,minmax(0,1fr));
  }
  body.admin-shell .admin-bottom-bar > button,
  body.admin-shell .bottom-nav-group > button{
    min-height:42px;
    font-size:9px;
  }
  body.admin-shell .fab-main{
    width:52px;
    height:52px;
    font-size:28px;
  }
}

.mobile-inventory-counter{
  display:none;
  gap:12px;
  margin:12px 0;
  padding:14px;
  border:1px solid #ffd7d7;
  border-radius:18px;
  background:linear-gradient(180deg,#fff,#fff7f7);
  box-shadow:0 14px 34px rgba(215,25,32,.08);
}
.mobile-inventory-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.mobile-inventory-head .eyebrow{
  display:block;
  color:var(--muted);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
}
.mobile-inventory-product{
  display:grid;
  gap:6px;
}
.mobile-inventory-product > strong{
  font-size:20px;
}
.mobile-inventory-product h3{
  margin:0;
  font-size:18px;
}
.mobile-inventory-meta{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;
  color:#4b5563;
  font-size:13px;
  font-weight:750;
}
.mobile-inventory-count-row{
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px;
  align-items:end;
}
.mobile-inventory-count-row label{
  display:grid;
  gap:5px;
  color:var(--muted);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
}
.mobile-inventory-count-row input{
  width:100%;
  min-height:54px;
  border:2px solid #111;
  border-radius:12px;
  padding:10px 12px;
  font-size:22px;
  font-weight:900;
}
.inventory-delta-wrap{
  min-width:88px;
  padding-bottom:6px;
}
.mobile-inventory-actions{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}
.mobile-inventory-actions [data-mobile-inventory-save]{
  grid-column:1/-1;
}
.mobile-inventory-empty{
  display:grid;
  gap:3px;
}

.inventory-list-head,
.supplier-list-head{
  align-items:center;
  margin-bottom:12px;
}
.parts-only-stock{
  min-height:44px;
  align-self:stretch;
  justify-content:flex-start;
}
.supplier-editor-dialog .admin-form{
  margin:0;
  padding:0;
  border:0;
  box-shadow:none;
  background:transparent;
}
.supplier-editor-dialog .modal-body{
  padding-top:0;
}
.supplier-ledger-dialog{
  width:min(1180px,96vw);
}
.supplier-ledger-body{
  max-height:78vh;
  overflow:auto;
}
.supplier-ledger{
  display:grid;
  gap:14px;
}
.supplier-ledger-summary{
  grid-template-columns:repeat(6,minmax(120px,1fr));
}
.supplier-ledger-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.supplier-ledger-checks{
  display:grid;
  gap:8px;
}
.supplier-ledger-checks h4,
.supplier-ledger-section h4{
  margin:0;
  font-size:15px;
}
.supplier-ledger-check-list{
  display:grid;
  gap:6px;
}
.supplier-ledger-check-list .notice{
  margin:0;
}
.supplier-ledger-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.supplier-ledger-section{
  min-width:0;
}
.supplier-ledger-section .compact-results{
  max-height:280px;
}
body.calendar-selecting .booking-time-card{
  pointer-events:none;
}

@media (max-width:760px){
  .section-head.compact{
    min-height:0;
    padding:12px;
  }
  .section-head.compact h2{
    font-size:20px;
  }
  .inventory-list-head,
  .supplier-list-head{
    align-items:flex-start;
    gap:8px;
  }
  .parts-toolbar{
    grid-template-columns:1fr;
  }
  .parts-only-stock{
    min-height:42px;
  }
  .supplier-ledger-summary,
  .supplier-ledger-grid{
    grid-template-columns:1fr;
  }
}

@media print{
  @page{
    size:A4;
    margin:12mm;
  }
  html,
  body{
    width:auto;
    min-width:0;
    overflow:visible!important;
  }
  body.printing-work-order{
    background:#fff;
  }
  body.printing-inventory{
    background:#fff;
  }
  body.printing-work-order *{
    visibility:hidden!important;
  }
  body.printing-inventory *{
    visibility:hidden!important;
  }
  body.printing-work-order .print-only-stage,
  body.printing-work-order .print-only-stage *,
  body.printing-inventory .inventory-print-root,
  body.printing-inventory .inventory-print-root *{
    visibility:visible!important;
  }
  body.printing-work-order .print-only-stage{
    display:block!important;
    position:absolute;
    left:0;
    top:0;
    width:100%;
    margin:0;
    padding:0;
  }
  body.printing-work-order > :not(.print-only-stage){
    display:none!important;
  }
  body.printing-inventory > :not(.inventory-print-root){
    display:none!important;
  }
  body.printing-inventory .inventory-print-root{
    display:block!important;
    position:absolute;
    left:0;
    top:0;
    width:100%;
    margin:0;
    padding:0;
  }
  body.printing-inventory .inventory-print-sheet{
    display:block!important;
    width:186mm;
    margin:0;
    padding:0;
    page-break-after:avoid;
  }
  body.printing-work-order .work-sheet-print:not(.print-target){
    display:none!important;
  }
  body.printing-work-order .print-only-stage .work-sheet-print.print-target{
    display:block!important;
    position:static;
    width:186mm;
    min-height:auto;
    margin:0;
    padding:0;
    border:0;
    border-radius:0;
    box-shadow:none;
    overflow:visible;
    page-break-after:avoid;
    font-size:10px;
    line-height:1.22;
    color:#111;
  }
  body.printing-work-order .print-only-stage .sheet-head{
    display:flex!important;
    flex-direction:row!important;
    align-items:flex-start;
    gap:8mm;
    padding-bottom:5mm;
    margin-bottom:4mm;
  }
  body.printing-work-order .print-only-stage .sheet-head h2{
    margin:1mm 0;
    font-size:20pt;
    line-height:1.05;
  }
  body.printing-work-order .print-only-stage .sheet-status{
    justify-items:end;
    gap:2mm;
    font-size:9pt;
  }
  body.printing-work-order .print-only-stage .sheet-meta-grid{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:2mm!important;
    margin-bottom:3mm;
  }
  body.printing-work-order .print-only-stage .sheet-two-col{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:2mm!important;
    margin-bottom:3mm;
  }
  body.printing-work-order .print-only-stage .sheet-summary{
    display:grid!important;
    grid-template-columns:1.2fr repeat(3,.8fr)!important;
    gap:2mm!important;
    margin-bottom:3mm;
  }
  body.printing-work-order .print-only-stage .sheet-signatures{
    display:grid!important;
    grid-template-columns:repeat(3,1fr)!important;
    gap:4mm!important;
    margin-top:5mm;
  }
  body.printing-work-order .print-only-stage .sheet-meta,
  body.printing-work-order .print-only-stage .sheet-text-block{
    padding:2mm;
    border-radius:2mm;
    break-inside:avoid;
  }
  body.printing-work-order .print-only-stage .sheet-meta span,
  body.printing-work-order .print-only-stage .sheet-text-block span{
    font-size:7pt;
  }
  body.printing-work-order .print-only-stage .sheet-meta strong,
  body.printing-work-order .print-only-stage .sheet-text-block p{
    font-size:9pt;
    line-height:1.22;
  }
  body.printing-work-order .print-only-stage .sheet-text-block p{
    min-height:12mm;
    margin-top:1mm;
  }
  body.printing-work-order .print-only-stage .sheet-lines h3{
    margin:3mm 0 1.5mm;
    font-size:12pt;
  }
  body.printing-work-order .print-only-stage .sheet-table{
    display:table!important;
    width:100%!important;
    table-layout:fixed;
    border-collapse:collapse;
    margin-bottom:3mm;
  }
  body.printing-work-order .print-only-stage .sheet-table thead{
    display:table-header-group!important;
  }
  body.printing-work-order .print-only-stage .sheet-table tbody{
    display:table-row-group!important;
  }
  body.printing-work-order .print-only-stage .sheet-table tr{
    display:table-row!important;
    break-inside:avoid;
  }
  body.printing-work-order .print-only-stage .sheet-table th,
  body.printing-work-order .print-only-stage .sheet-table td{
    display:table-cell!important;
    width:auto!important;
    padding:1.5mm;
    font-size:8pt;
    line-height:1.15;
    vertical-align:top;
  }
  body.printing-work-order .print-only-stage .sheet-table th{
    font-size:7pt;
  }
  body.printing-work-order .sheet-line-actions .btn{
    display:none!important;
  }
  body.printing-work-order .admin-topbar,
  body.printing-work-order .modal-head,
  body.printing-work-order .work-sheet-toolbar,
  body.printing-work-order .work-order-extra-panel,
  body.printing-work-order .work-actions,
  body.printing-work-order .work-billing-editor,
  body.printing-work-order .work-quick-grid,
  body.printing-work-order .work-time-list,
  body.printing-work-order .detail-actions{
    display:none!important;
  }
}

@media screen{
  body.admin-shell .admin-section .section-head.compact,
  body.admin-shell .modal-head,
  body.admin-shell .work-order-form-head,
  body.admin-shell .work-billing-head,
  body.admin-shell .inventory-list-head,
  body.admin-shell .supplier-list-head,
  body.admin-shell .messenger-chat-head{
    min-height:0;
    padding:8px 10px;
    gap:8px;
    margin-bottom:8px;
    align-items:center;
  }
  body.admin-shell .admin-section .section-head.compact h2,
  body.admin-shell .modal-head h3,
  body.admin-shell .work-order-form-head h3,
  body.admin-shell .work-billing-head h3,
  body.admin-shell .inventory-list-head h3,
  body.admin-shell .supplier-list-head h3{
    margin:0;
    line-height:1.08;
  }
  body.admin-shell .admin-section .section-head.compact p,
  body.admin-shell .modal-head p.muted,
  body.admin-shell .work-billing-head p.muted,
  body.admin-shell .inventory-list-head p.muted,
  body.admin-shell .supplier-list-head p.muted{
    display:none;
  }
  body.admin-shell .section-body{
    margin-top:10px;
  }
  body.admin-shell .work-actions{
    gap:6px;
  }
  body.admin-shell .work-actions .btn,
  body.admin-shell .work-actions button,
  body.admin-shell .modal-head .btn,
  body.admin-shell .section-head.compact .btn{
    min-height:34px;
    padding:8px 12px;
  }
  .accounting-period-card{
    display:grid;
    gap:12px;
  }
  .accounting-period-actions{
    flex-wrap:wrap;
    justify-content:flex-end;
  }
  .accounting-period-actions select{
    min-height:36px;
    min-width:132px;
    border:1px solid var(--line);
    border-radius:8px;
    padding:0 10px;
    background:#fff;
    font-weight:700;
  }
  .accounting-period-preview{
    display:grid;
    gap:12px;
  }
  .accounting-period-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
    gap:10px;
  }
  .accounting-period-metric{
    border:1px solid var(--line);
    border-radius:8px;
    padding:12px;
    background:#fff;
    display:grid;
    gap:4px;
  }
  .accounting-period-metric span,
  .accounting-period-metric small{
    color:var(--muted);
    font-size:12px;
    font-weight:700;
  }
  .accounting-period-metric strong{
    font-size:18px;
  }
  .accounting-period-table{
    table-layout:fixed;
  }
  .accounting-tax-payment{
    display:grid;
    gap:4px;
    border:1px solid #fed7aa;
    border-radius:8px;
    padding:12px;
    background:#fff7ed;
  }
  .net-price-toggle-host{
    position:relative;
  }
  .net-price-toggle{
    display:none;
    border:1px solid var(--line);
    border-radius:999px;
    width:28px;
    height:28px;
    align-items:center;
    justify-content:center;
    background:#fff;
    color:#111;
    font-weight:900;
    line-height:1;
    box-shadow:0 4px 12px rgba(15,23,42,.12);
  }
  .net-price-toggle.active{
    background:#111;
    color:#fff;
    border-color:#111;
  }
}

@media screen and (max-width:760px){
  body.admin-shell .admin-section .section-head.compact{
    position:static;
    top:auto;
    z-index:auto;
    display:grid;
    grid-template-columns:1fr;
    align-items:start;
    margin:0 0 8px;
    padding:8px;
    border:1px solid var(--line);
    border-radius:14px;
    box-shadow:0 8px 22px rgba(0,0,0,.04);
  }
  body.admin-shell .admin-section .section-head.compact h2{
    font-size:18px;
    line-height:1.05;
  }
  body.admin-shell .admin-section .section-head.compact .work-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
    justify-content:stretch;
  }
  body.admin-shell .admin-section .section-head.compact .work-actions .btn,
  body.admin-shell .admin-section .section-head.compact .work-actions button{
    width:100%;
    min-width:0;
    white-space:normal;
  }
  body.admin-shell .work-order-dialog .work-order-modal-card{
    width:calc(100vw - 12px);
    max-width:calc(100vw - 12px);
  }
  body.admin-shell .work-order-dialog-content .metric-strip.compact-metrics,
  body.admin-shell .timeline-detail-card .metric-strip.compact-metrics{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  body.admin-shell .timeline-metric-button{
    min-width:0;
    overflow-wrap:anywhere;
  }
}

@media screen and (max-width:430px){
  body.admin-shell .work-order-dialog-content .metric-strip.compact-metrics,
  body.admin-shell .timeline-detail-card .metric-strip.compact-metrics{
    grid-template-columns:1fr;
  }
  body.admin-shell .admin-section .section-head.compact .work-actions{
    grid-template-columns:1fr;
  }
}

@media screen and (max-width:760px){
  body.admin-shell .admin-section .section-head.compact,
  body.admin-shell .modal-head,
  body.admin-shell .work-order-form-head,
  body.admin-shell .work-billing-head,
  body.admin-shell .inventory-list-head,
  body.admin-shell .supplier-list-head,
  body.admin-shell .messenger-chat-head{
    position:sticky;
    top:52px;
    z-index:45;
    padding:8px;
    margin:-8px -6px 8px;
    border-bottom:1px solid var(--line);
    border-radius:14px 14px 0 0;
    background:rgba(255,255,255,.97);
  }
  body.admin-shell .admin-section .section-head.compact{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
  }
  body.admin-shell .section-head.compact h2,
  body.admin-shell .modal-head h3{
    font-size:20px;
  }
  body.admin-shell .section-head.compact .work-actions,
  body.admin-shell .modal-head .work-actions{
    justify-content:flex-end;
  }
  .accounting-period-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    width:100%;
  }
  .accounting-period-actions .btn,
  .accounting-period-actions button{
    width:100%;
  }
  .net-price-toggle{
    display:inline-flex;
    position:absolute;
    right:6px;
    top:6px;
    z-index:3;
  }
  .net-price-toggle-host{
    padding-right:38px!important;
  }
  body.admin-shell .admin-section .section-head.compact{
    position:static;
    top:auto;
    z-index:auto;
    display:grid;
    grid-template-columns:1fr;
    align-items:start;
    margin:0 0 8px;
    padding:8px;
    border:1px solid var(--line);
    border-radius:14px;
    box-shadow:0 8px 22px rgba(0,0,0,.04);
  }
  body.admin-shell .admin-section .section-head.compact h2{
    font-size:18px;
    line-height:1.05;
  }
  body.admin-shell .admin-section .section-head.compact .work-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
    justify-content:stretch;
  }
  body.admin-shell .admin-section .section-head.compact .work-actions .btn,
  body.admin-shell .admin-section .section-head.compact .work-actions button{
    width:100%;
    min-width:0;
    white-space:normal;
  }
  body.admin-shell .work-order-dialog .work-order-modal-card{
    width:calc(100vw - 12px);
    max-width:calc(100vw - 12px);
  }
  body.admin-shell .work-order-dialog-content .metric-strip.compact-metrics,
  body.admin-shell .timeline-detail-card .metric-strip.compact-metrics{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  body.admin-shell .timeline-metric-button{
    min-width:0;
    overflow-wrap:anywhere;
  }
}

@media screen and (max-width:430px){
  body.admin-shell .work-order-dialog-content .metric-strip.compact-metrics,
  body.admin-shell .timeline-detail-card .metric-strip.compact-metrics{
    grid-template-columns:1fr;
  }
  body.admin-shell .admin-section .section-head.compact .work-actions{
    grid-template-columns:1fr;
  }
}

@media print{
  body.printing-accounting{
    background:#fff;
  }
  body.printing-accounting *{
    visibility:hidden!important;
  }
  body.printing-accounting .accounting-print-root,
  body.printing-accounting .accounting-print-root *{
    visibility:visible!important;
  }
  body.printing-accounting > :not(.accounting-print-root){
    display:none!important;
  }
  body.printing-accounting .accounting-print-root{
    display:block!important;
    position:absolute;
    inset:0 auto auto 0;
    width:100%;
    margin:0;
    padding:0;
  }
  body.printing-accounting .accounting-print-sheet{
    width:186mm;
    margin:0;
    padding:0;
    color:#111;
    font-size:10pt;
    line-height:1.35;
  }
  body.printing-accounting .accounting-print-sheet h1{
    margin:0 0 8mm;
    font-size:18pt;
  }
  body.printing-accounting .accounting-print-sheet pre{
    white-space:pre-wrap;
    font:inherit;
  }
}

/* KOSMOTORS_MOBILE_CONTAINMENT_20260522
   Final screen-only guardrail for live mobile overflow regressions. */
@media screen and (max-width:860px){
  html,
  body{
    max-width:100%;
    overflow-x:hidden;
  }

  body.admin-shell{
    padding-bottom:calc(110px + env(safe-area-inset-bottom, 0px));
  }

  body.admin-shell .admin-shell-main,
  body.admin-shell main,
  body.admin-shell .admin-section,
  body.admin-shell .section-body,
  body.admin-shell .management-card,
  body.admin-shell .timeline-detail-card,
  body.admin-shell .work-order-dialog-content{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    overflow-x:hidden;
  }

  body.admin-shell .admin-section{
    margin:8px auto;
    padding:10px;
    border-radius:14px;
  }

  body.admin-shell .parts-browser-toolbar,
  body.admin-shell .parts-browser-provider-tabs,
  body.admin-shell .parts-browser-agco-assist,
  body.admin-shell .parts-browser-layout,
  body.admin-shell .parts-browser-split,
  body.admin-shell .parts-browser-stock-form,
  body.admin-shell .parts-browser-stock-row{
    grid-template-columns:1fr;
  }

  body.admin-shell .parts-browser-list,
  body.admin-shell .parts-browser-results{
    max-height:min(48vh, 520px);
  }

  body.admin-shell .admin-section .section-head.compact,
  body.admin-shell .modal-head,
  body.admin-shell .work-order-form-head,
  body.admin-shell .work-billing-head,
  body.admin-shell .inventory-list-head,
  body.admin-shell .supplier-list-head,
  body.admin-shell .messenger-chat-head{
    position:static;
    top:auto;
    z-index:auto;
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
    align-items:start;
    min-height:0;
    margin:0 0 8px;
    padding:8px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fff;
    box-shadow:0 8px 22px rgba(0,0,0,.04);
  }

  body.admin-shell .section-head.compact h2,
  body.admin-shell .modal-head h3{
    font-size:20px;
    line-height:1.08;
  }

  body.admin-shell .section-head.compact p,
  body.admin-shell .modal-head p.muted{
    display:none;
  }

  body.admin-shell .section-head.compact .work-actions,
  body.admin-shell .modal-head .work-actions,
  body.admin-shell .work-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px;
    width:100%;
    max-width:100%;
    justify-content:stretch;
  }

  body.admin-shell .work-actions .btn,
  body.admin-shell .work-actions button,
  body.admin-shell .section-head.compact .work-actions .btn,
  body.admin-shell .section-head.compact .work-actions button,
  body.admin-shell .modal-head .work-actions .btn,
  body.admin-shell .modal-head .work-actions button{
    width:100%;
    min-width:0;
    max-width:100%;
    white-space:normal;
    overflow-wrap:anywhere;
  }

  body.admin-shell dialog[open]{
    width:100vw;
    max-width:100vw;
    height:100dvh;
    max-height:100dvh;
    margin:0;
    padding:0;
    overflow:hidden;
  }

  body.admin-shell dialog[open] .modal-card,
  body.admin-shell dialog[open] .admin-modal-card,
  body.admin-shell dialog[open] .work-order-modal-card,
  body.admin-shell dialog[open] .customer-registry-modal-card{
    width:calc(100vw - 8px)!important;
    max-width:calc(100vw - 8px)!important;
    max-height:calc(100dvh - 8px);
    margin:4px auto;
    box-sizing:border-box;
    overflow:auto;
    border-radius:14px;
  }

  body.admin-shell .grid.two,
  body.admin-shell .grid.three,
  body.admin-shell .form-grid,
  body.admin-shell .compact-form-grid,
  body.admin-shell .settings-grid,
  body.admin-shell .rental-grid,
  body.admin-shell .site-admin-grid,
  body.admin-shell .work-order-form-head,
  body.admin-shell .work-billing-summary,
  body.admin-shell .metric-strip.compact-metrics,
  body.admin-shell .timeline-detail-card .metric-strip.compact-metrics{
    grid-template-columns:1fr!important;
  }

  body.admin-shell input,
  body.admin-shell select,
  body.admin-shell textarea,
  body.admin-shell label{
    max-width:100%;
    box-sizing:border-box;
  }

  body.admin-shell .quote-line-row,
  body.admin-shell .work-order-line-entry,
  body.admin-shell .product-form-row,
  body.admin-shell .inventory-form-row{
    display:grid;
    grid-template-columns:1fr!important;
    width:100%;
    max-width:100%;
    overflow:visible;
  }

  body.admin-shell .table-scroll,
  body.admin-shell .accounting-table-wrap,
  body.admin-shell .inventory-count-card .table-scroll,
  body.admin-shell .work-order-lines-table,
  body.admin-shell .responsive-table-wrap{
    max-width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }

  body.admin-shell .bottom-nav{
    position:fixed;
    left:6px;
    right:6px;
    bottom:calc(6px + env(safe-area-inset-bottom, 0px));
    width:auto;
    max-width:none;
    transform:none;
    display:flex;
    justify-content:flex-start;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }

  body.admin-shell .bottom-nav > button,
  body.admin-shell .bottom-nav-group > button{
    min-width:72px;
    flex:0 0 auto;
  }
}

@media screen and (max-width:430px){
  body.admin-shell .section-head.compact .work-actions,
  body.admin-shell .modal-head .work-actions,
  body.admin-shell .work-actions{
    grid-template-columns:1fr;
  }

  body.admin-shell .section-head.compact h2,
  body.admin-shell .modal-head h3{
    font-size:18px;
  }

  body.admin-shell .bottom-nav > button,
  body.admin-shell .bottom-nav-group > button{
    min-width:58px;
    padding:8px 6px;
    font-size:11px;
  }
}


/* Incoming-delivery in-place teaching, 2026-10-23 */
.incoming-delivery-teach-button.status.needs_rule{
  cursor:pointer;font:inherit;text-decoration:underline;text-underline-offset:2px;
  border:1px solid #d1a754;background:#fff1cf;color:#674400;
  border-radius:999px;padding:5px 10px;white-space:nowrap
}
.incoming-delivery-teach-button:hover{background:#ffe2a2}
.incoming-delivery-teach-button:focus-visible{outline:3px solid #b60017;outline-offset:2px}
body.delivery-teaching-active{overflow:hidden}
.delivery-teaching-overlay{
  position:fixed;z-index:12000;inset:0;background:rgba(17,24,39,.68);
  display:flex;align-items:center;justify-content:center;padding:clamp(6px,2vw,24px)
}
.delivery-teaching-dialog{
  width:min(1100px,100%);max-height:calc(100dvh - 12px);overflow:auto;
  overscroll-behavior:contain;background:#fff;color:#222;border-radius:16px;
  padding:0 20px 20px;box-shadow:0 20px 60px rgba(0,0,0,.35)
}
.delivery-teaching-header{
  display:flex;justify-content:space-between;align-items:flex-start;gap:12px;
  background:#fff;position:sticky;top:0;z-index:2;padding:18px 0 12px;
  border-bottom:1px solid #e1e1e1
}
.delivery-teaching-header h3{margin:0;font-size:clamp(20px,2vw,26px)}
.delivery-teaching-header .muted{margin:4px 0}
.delivery-teaching-pdf{border:1px solid #d8dde1;border-radius:10px;background:#f8fafb;margin:12px 0;padding:10px}
.delivery-teaching-pdf summary{cursor:pointer;font-weight:600}
.delivery-teaching-pdf iframe{display:block;width:100%;min-height:440px;border:1px solid #ddd;margin-top:10px;border-radius:8px}
.delivery-teaching-dialog .incoming-training-panel{max-width:100%;margin-top:12px}
.delivery-teaching-dialog .incoming-training-panel.hidden{display:none}
.delivery-teaching-dialog .incoming-training-form{max-width:100%}
.delivery-teaching-dialog .incoming-training-preview{max-height:310px;overflow:auto}
@media(max-width:600px){
  .delivery-teaching-overlay{align-items:stretch;padding:4px}
  .delivery-teaching-dialog{max-height:calc(100dvh - 8px);padding:0 12px 20px;border-radius:10px}
  .delivery-teaching-header{padding:12px 0}
  .delivery-teaching-pdf iframe{min-height:300px}
  .delivery-teaching-dialog .incoming-training-grid{grid-template-columns:minmax(0,1fr)}
}


/* Multi-line training and live parsed-results preview, 2026-10-23 */
.incoming-training-grouping{border:1px solid var(--line);border-radius:12px;padding:12px;margin:12px 0;}
.incoming-training-grouping legend{font-weight:800;font-size:14px;padding:0 6px;}
.incoming-training-grouping .muted{margin:0 0 10px;}
.incoming-training-field-map{min-width:0;border:1px solid var(--line);border-radius:9px;padding:9px;display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.incoming-training-field-map label{min-width:0;display:grid;gap:4px;font-size:11px;}
.incoming-training-live-preview{margin:14px 0;border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--soft);}
.incoming-training-live-preview h4{margin:0 0 6px;}
.incoming-training-live-table{max-height:380px;overflow:auto;background:var(--white);border-radius:8px;}
.incoming-training-live-preview .notice{margin:8px 0;}
@media(max-width:720px){.incoming-training-field-map{grid-template-columns:1fr;}.incoming-training-map{grid-template-columns:1fr;}}

/* /shallinta: huoltopakettien hallinta */
.service-package-admin{
  margin-top:20px;padding:18px;border:1px solid var(--line);border-radius:16px;
  background:#fff;box-shadow:var(--shadow);scroll-margin-top:90px;
}
.service-package-admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.service-package-admin-head h2{margin:0 0 6px;font-size:22px}
.service-package-admin-head p:last-child{margin:0;color:var(--muted);max-width:760px}
.service-package-admin-list{display:grid;gap:10px;margin:14px 0 18px}
.service-package-admin-card{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fbfbfb}
.service-package-admin-card-main{min-width:0;flex:1}
.service-package-admin-card-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.service-package-admin-card-title strong{font-size:16px}
.service-package-admin-status{font-size:12px;color:var(--muted);font-weight:700}
.service-package-admin-status.is-active{color:#18734a}
.service-package-admin-meta{margin-top:5px;color:var(--muted);font-size:13px}
.service-package-admin-card-main p{margin:8px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.service-package-admin-card-actions{display:flex;gap:6px;flex:0 0 auto;flex-wrap:wrap}
.service-package-admin-card-actions button:disabled{opacity:.4;cursor:not-allowed}
.site-admin-editor .service-package-admin-form{display:grid;flex:0 0 auto;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding-top:16px;border-top:1px solid var(--line)}
.service-package-admin-form label{display:grid;gap:6px;font-weight:700;font-size:13px}
.service-package-admin-form input:not([type="checkbox"]),.service-package-admin-form textarea{
  width:100%;min-width:0;border:1px solid var(--line);border-radius:9px;padding:10px 11px;
  font:inherit;font-weight:400;background:#fff;
}
.service-package-admin-form textarea{resize:vertical}
.service-package-admin-wide{grid-column:1/-1}
.service-package-admin-form .service-package-admin-toggle{display:flex;align-items:center;gap:9px;align-self:end;min-height:42px}
.service-package-admin-toggle input{width:18px;height:18px}
.service-package-admin-actions{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:720px){
  .service-package-admin{padding:13px}
  .service-package-admin-head{display:grid;grid-template-columns:1fr}
  .service-package-admin-card{display:grid}
  .service-package-admin-card-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
  .service-package-admin-card-actions .btn{width:100%}
  .service-package-admin-form{grid-template-columns:1fr}
  .service-package-admin-wide{grid-column:1}
}
