/* ============================================================
   Assistia — portal / app shell
   Extends assistia.css (same tokens) for the logged-in product
   ============================================================ */

body.portal{background:var(--surface-2);overflow-x:hidden;}

.shell{display:flex;min-height:100vh;min-height:100svh;}

/* ---------- sidebar ---------- */
.side{
  width:248px;flex:none;background:var(--green);color:#F4F1EB;
  display:flex;flex-direction:column;padding:26px 18px;position:sticky;top:0;height:100vh;
  height:100svh;overflow:hidden;
}
.side__logo{color:#F4F1EB;font-weight:800;font-size:22px;letter-spacing:-.03em;display:inline-flex;align-items:center;gap:9px;padding:0 10px;}
.side__logo .mark{width:24px;height:24px;border-radius:7px;background:var(--sand);color:var(--green-700);display:inline-grid;place-items:center;font-size:14px;font-weight:800;}
.side__who{display:flex;align-items:center;gap:11px;margin:22px 10px 24px;padding-bottom:22px;border-bottom:1px solid #ffffff1f;}
.side__avatar{width:38px;height:38px;border-radius:50%;background:#ffffff1f;display:grid;place-items:center;font-weight:700;font-size:15px;color:#F4F1EB;flex:none;}
.side__name{font-weight:600;font-size:15.5px;line-height:1.2;}
.side__role{font-size:13px;color:#F4F1EBaa;}
.side__nav{display:flex;flex:1;flex-direction:column;gap:3px;min-height:0;overflow-y:auto;
  scrollbar-width:thin;scrollbar-color:#ffffff2b transparent;padding-right:3px;}
.navgroup{display:flex;flex-direction:column;gap:3px;}
.navgroup + .navgroup{margin-top:17px;}
.navgroup__label{padding:0 14px 6px;color:#F4F1EB73;font-size:10.5px;font-weight:700;
  letter-spacing:.13em;text-transform:uppercase;line-height:1.25;}
.navlink{
  display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:12px;
  font-size:15.5px;font-weight:500;color:#F4F1EBcc;transition:background .15s,color .15s;cursor:pointer;
}
.navlink:hover{background:#ffffff12;color:#F4F1EB;}
.navlink.on{background:#ffffff1c;color:#F4F1EB;font-weight:600;}
.navlink svg{width:19px;height:19px;flex:none;opacity:.9;}
.side__foot{margin-top:auto;padding-top:14px;border-top:1px solid #ffffff1f;}

/* ---------- main ---------- */
.main{flex:1;min-width:0;}
.topbar{
  position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:16px;
  padding:20px 38px;background:color-mix(in srgb,var(--surface-2) 88%,transparent);
  backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--line);
}
.topbar h1{font-size:27px;font-weight:700;letter-spacing:-.02em;}
.topbar__sub{color:var(--muted);font-size:15.5px;}
.topbar__right{margin-left:auto;display:flex;align-items:center;gap:12px;}
.content{padding:34px 38px 70px;max-width:1080px;}
.sectit{font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 16px;}
.sectit--mt{margin-top:40px;}

/* ---------- status pill ---------- */
.status{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:600;border-radius:var(--r-pill);padding:5px 13px;border:1.5px solid;white-space:nowrap;}
.status::before{content:'';width:8px;height:8px;border-radius:50%;}
.status--ok{color:var(--green);border-color:var(--green-300);background:var(--green-100);}
.status--ok::before{background:var(--green);}
.status--pend{color:#8a6332;border-color:#d9b988;background:var(--sand-100);}
.status--pend::before{background:#c08a3e;}
.status--live{color:var(--green);border-color:var(--green-300);background:var(--surface);}
.status--live::before{background:var(--green);box-shadow:0 0 0 0 rgba(46,67,57,.5);animation:pulse 2s infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(46,67,57,.45);}70%{box-shadow:0 0 0 7px rgba(46,67,57,0);}100%{box-shadow:0 0 0 0 rgba(46,67,57,0);}}
.status--off{color:var(--muted);border-color:var(--line);background:var(--surface-2);}
.status--off::before{background:var(--muted);}

/* ---------- native select (matches .input) ---------- */
select.input{
  -webkit-appearance:none;appearance:none;cursor:pointer;padding-right:42px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='none' stroke='%238a8378' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M1 1.5 6 6.5 11 1.5'/></svg>");
  background-repeat:no-repeat;background-position:right 15px center;
}

/* ---------- order card ---------- */
.ocard{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);
  padding:18px 20px;box-shadow:var(--sh-sm);transition:box-shadow .15s,border-color .15s;
}
.ocard--hl{border-color:var(--green-300);box-shadow:0 0 0 3px var(--green-100);}
.ocard__row{display:flex;align-items:center;gap:14px;}
.ocard__title{font-size:18.5px;font-weight:600;letter-spacing:-.01em;}
.ocard__meta{color:var(--ink-2);font-size:15px;margin-top:2px;}
.ocard__avatar{width:42px;height:42px;border-radius:50%;background:var(--green-100);color:var(--green);display:grid;place-items:center;font-weight:700;flex:none;}
.ocard__actions{display:flex;gap:10px;align-items:center;margin-top:16px;flex-wrap:wrap;}
.ocard__detail{display:grid;grid-template-columns:1.3fr 1fr;gap:18px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line-2);align-items:stretch;}
.ocard__detail[hidden]{display:none;}

/* small buttons for app */
.btn--sm{padding:9px 17px;font-size:14.5px;}
.btn--soft{background:var(--green-100);color:var(--green);border-color:transparent;}
.btn--soft:hover{background:var(--green-300);color:#F4F1EB;}
.btn--danger-ghost{background:transparent;color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,transparent);}
.btn--danger-ghost:hover{background:color-mix(in srgb,var(--danger) 8%,transparent);border-color:var(--danger);}

/* ---------- chips (app) ---------- */
.tag{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:500;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-pill);padding:6px 13px;}

/* ---------- calendar ---------- */
.cal{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:16px;box-shadow:var(--sh-sm);}
.cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;}
.cal__dow{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:center;padding-bottom:4px;}
.cal__cell{border:1px solid var(--line-2);border-radius:10px;min-height:78px;padding:8px 9px;background:var(--surface-2);}
.cal__cell--muted{opacity:.45;}
.cal__cell--today{border-color:var(--green-300);background:var(--green-100);}
.cal__d{font-size:13px;font-weight:600;color:var(--ink-2);}
.evt{font-size:12.5px;font-weight:600;border-radius:7px;padding:4px 7px;margin-top:5px;line-height:1.3;}
.evt--ok{background:var(--green);color:#F4F1EB;}
.evt--pend{background:var(--sand-100);color:#8a6332;border:1px solid #d9b988;}

/* ---------- stat tiles ---------- */
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:28px;}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:20px 22px;box-shadow:var(--sh-sm);}
.tile__n{font-size:34px;font-weight:800;letter-spacing:-.03em;line-height:1;color:var(--green);}
.tile__l{font-size:14.5px;color:var(--ink-2);margin-top:8px;}

/* ---------- booking form panel ---------- */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:26px;box-shadow:var(--sh-sm);}
.panel h2{font-size:22px;font-weight:700;letter-spacing:-.02em;}
.seg{display:flex;gap:8px;}
.seg button{
  flex:1;background:var(--surface-2);border:1.5px solid var(--line);border-radius:var(--r-md);
  font-size:15px;font-weight:600;color:var(--ink-2);padding:11px;transition:all .15s;
}
.seg button.on{background:var(--green);color:#F4F1EB;border-color:var(--green);}
.fieldrow{margin-top:16px;}

/* ---------- map placeholder ---------- */
.mapph{
  border-radius:var(--r-sm);background:var(--surface-2);
  background-image:repeating-linear-gradient(45deg,transparent,transparent 12px,#0000000a 12px,#0000000a 13px);
  border:1px solid var(--line);display:grid;place-items:center;
  color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;min-height:96px;
}

/* ---------- availability row ---------- */
.avail{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;}
.avail__day{text-align:center;}
.avail__day .d{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;}
.avail__toggle{width:100%;border:1.5px solid var(--line);background:var(--surface);border-radius:10px;padding:12px 0;font-size:16px;font-weight:700;color:var(--muted);cursor:pointer;transition:all .15s;}
.avail__toggle.on{background:var(--green);border-color:var(--green);color:#F4F1EB;}

/* ---------- mobile app navigation (stage 1, 08.08.2026) ---------- */
.bottomnav,.mobile-nav-sheet,.mobile-nav-backdrop{display:none;}

.bottomnav__item{
  appearance:none;border:0;background:transparent;color:var(--muted);font:inherit;
}
.bottomnav__label{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.navbadge-mirror{position:absolute;top:5px;left:calc(50% + 7px);min-width:18px;height:18px;
  display:grid;place-items:center;padding:0 5px;border-radius:999px;background:var(--sand);
  color:var(--green-700);font-size:10.5px;font-weight:800;line-height:1;
  box-shadow:0 0 0 2px var(--surface);}
.navbadge-mirror[hidden]{display:none;}
.navbadge-mirror--ok{background:var(--green);color:#F4F1EB;}

@media (prefers-reduced-motion:reduce){
  .mobile-nav-sheet{transition:none!important;}
}

/* ---------- mobile ---------- */
@media (max-width:880px){
  .shell{display:block;min-height:100svh;}
  .side{display:none;}
  .main{width:100%;padding-bottom:calc(68px + env(safe-area-inset-bottom));}

  /* Every pane already owns a topbar. On small screens it becomes the
     compact app bar, so the page title and its contextual action stay
     together without adding a second, competing header. */
  .topbar{
    top:0;z-index:45;display:grid;grid-template-columns:32px minmax(0,1fr) auto;
    grid-template-rows:auto;align-items:center;gap:4px 10px;min-height:62px;
    padding:10px 16px;background:color-mix(in srgb,var(--surface) 94%,transparent);
    border-bottom-color:var(--line);box-shadow:0 1px 0 rgba(33,36,30,.025);
  }
  .topbar::before{
    content:'A';grid-column:1;grid-row:1;width:32px;height:32px;border-radius:9px;
    display:grid;place-items:center;background:var(--green);color:var(--sand);
    font-size:15px;font-weight:800;line-height:1;
  }
  .topbar h1{grid-column:2;grid-row:1;min-width:0;font-size:20px;line-height:1.15;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .topbar__sub{grid-column:2/-1;grid-row:2;min-width:0;font-size:12.5px;line-height:1.25;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .topbar__right{grid-column:3;grid-row:1;margin-left:0;min-width:0;gap:7px;}
  .topbar__right .btn{padding:8px 11px;font-size:13px;min-height:36px;}
  .topbar__right .status{padding:5px 9px;font-size:12px;}
  .topbar__right .agentchip{padding:8px;min-width:34px;justify-content:center;}
  .topbar__right .agentchip #agentChipTxt{position:absolute;width:1px;height:1px;
    padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

  .content{width:100%;padding:24px 18px calc(34px + env(safe-area-inset-bottom));}
  .tiles{grid-template-columns:1fr;}
  .ocard__detail{grid-template-columns:1fr;}

  /* Four high-frequency destinations plus More. The complete desktop menu
     remains available in the sheet, so no function is lost on mobile. */
  .bottomnav{
    position:fixed;left:0;right:0;bottom:0;z-index:80;display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));align-items:start;
    min-height:68px;padding:5px 7px calc(5px + env(safe-area-inset-bottom));
    background:color-mix(in srgb,var(--surface) 96%,transparent);
    border-top:1px solid var(--line);box-shadow:0 -8px 28px rgba(33,36,30,.08);
    backdrop-filter:saturate(140%) blur(14px);
  }
  .bottomnav .navlink,.bottomnav__item{
    position:relative;display:flex;min-width:0;min-height:56px;flex-direction:column;
    align-items:center;justify-content:center;gap:3px;padding:4px 2px;border-radius:12px;
    color:var(--muted);font-size:10.5px;font-weight:600;line-height:1.15;text-align:center;
  }
  .bottomnav .navlink:hover,.bottomnav__item:hover{background:var(--surface-2);color:var(--ink-2);}
  .bottomnav .navlink.on,.bottomnav__item.on{background:var(--green-100);color:var(--green);font-weight:700;}
  .bottomnav .navlink svg,.bottomnav__item svg{display:block;width:22px;height:22px;opacity:1;}

  .mobile-nav-backdrop{
    display:block;position:fixed;inset:0;z-index:88;background:rgba(15,31,29,.42);
    opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;
  }
  .mobile-nav-sheet{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:90;max-height:min(76svh,620px);
    flex-direction:column;background:var(--surface);border-radius:22px 22px 0 0;
    box-shadow:0 -18px 54px rgba(15,31,29,.22);transform:translateY(105%);
    visibility:hidden;transition:transform .24s ease,visibility .24s ease;
    padding-bottom:env(safe-area-inset-bottom);
  }
  body.mobile-nav-open .mobile-nav-backdrop{opacity:1;visibility:visible;}
  body.mobile-nav-open .mobile-nav-sheet{transform:translateY(0);visibility:visible;}
  .mobile-nav-sheet__head{display:flex;align-items:center;gap:14px;padding:18px 18px 13px;
    border-bottom:1px solid var(--line-2);}
  .mobile-nav-sheet__head strong{font-size:18px;letter-spacing:-.015em;}
  .mobile-nav-sheet__head span{display:block;color:var(--muted);font-size:12.5px;line-height:1.3;}
  .mobile-nav-sheet__close{margin-left:auto;width:38px;height:38px;display:grid;place-items:center;
    border:1px solid var(--line);border-radius:50%;background:var(--surface-2);color:var(--ink);
    font-size:22px;line-height:1;}
  .mobile-nav-sheet__body{overflow-y:auto;padding:10px 12px 14px;overscroll-behavior:contain;}
  .mobile-nav-sheet__label{padding:9px 10px 5px;color:var(--muted);font-size:10.5px;
    font-weight:700;letter-spacing:.12em;text-transform:uppercase;}
  .mobile-nav-sheet .navlink,.mobile-nav-sheet__logout{
    position:relative;width:100%;display:flex;align-items:center;gap:13px;padding:12px 12px;
    border:0;border-radius:12px;background:transparent;color:var(--ink-2);font-size:15px;
    font-weight:550;text-align:left;
  }
  .mobile-nav-sheet .navlink:hover,.mobile-nav-sheet__logout:hover{background:var(--surface-2);color:var(--ink);}
  .mobile-nav-sheet .navlink.on{background:var(--green-100);color:var(--green);font-weight:700;}
  .mobile-nav-sheet .navlink svg,.mobile-nav-sheet__logout svg{display:block;width:20px;height:20px;flex:none;}
  .mobile-nav-sheet .navbadge-mirror{position:static;margin-left:auto;box-shadow:none;}
  .mobile-nav-sheet .navbadge-mirror + .navbadge-mirror{margin-left:4px;}
  .mobile-nav-sheet__logout{color:var(--danger);margin-top:7px;border-top:1px solid var(--line-2);border-radius:0;}
  body.mobile-nav-open{overflow:hidden;}

  .bottomnav .navlink:focus-visible,.bottomnav__item:focus-visible,
  .mobile-nav-sheet .navlink:focus-visible,.mobile-nav-sheet__logout:focus-visible,
  .mobile-nav-sheet__close:focus-visible{outline:3px solid var(--sand);outline-offset:1px;}
}

@media (max-width:540px){
  .topbar__sub{display:none;}
  .topbar__right .status{display:none;}
}

@media (max-width:390px){
  .topbar{padding-left:12px;padding-right:12px;gap:4px 8px;}
  .topbar__right .btn{padding-left:9px;padding-right:9px;}
  .content{padding-left:14px;padding-right:14px;}
  .bottomnav{padding-left:3px;padding-right:3px;}
  .bottomnav .navlink,.bottomnav__item{font-size:10px;}
}

/* ---------- delt bestillingsinngang (barnehage + admin) ---------- */
.booking-shell{max-width:980px;margin:0 auto;}
.booking-mode{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;margin-bottom:18px;}
.booking-mode--two{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
.booking-mode__button,.booking-mode__call{min-width:0;min-height:72px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);padding:13px 15px;text-align:left;font:inherit;text-decoration:none;display:flex;flex-direction:column;justify-content:center;cursor:pointer;box-shadow:var(--sh-sm);}
.booking-mode__button strong,.booking-mode__call strong{font-size:14.5px;line-height:1.25;}
.booking-mode__button span,.booking-mode__call span{font-size:11.5px;line-height:1.35;color:var(--muted);margin-top:4px;}
.booking-mode__button.on{border-color:var(--green);background:var(--green-100);box-shadow:0 0 0 2px var(--green-100);}
.booking-mode__call{min-width:155px;background:var(--sand-100);border-color:var(--sand-200);}
.booking-status{font-size:13.5px;line-height:1.45;margin:-5px 2px 14px;color:var(--muted);}
.booking-status:empty{display:none;}
.booking-status--ok{color:var(--green);font-weight:650;}
.booking-status--warn{color:#8a6332;font-weight:650;}
.booking-panel-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.booking-panel-title h2,.booking-panel-title h3{margin:0;}
.booking-help{font-size:12px;color:var(--muted);line-height:1.4;text-align:right;max-width:28ch;}
.bestilling-intake{padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);transition:border-color .15s,box-shadow .15s,background .15s;}
.bestilling-intake[hidden],#noBestillPanel[hidden]{display:none!important;}
.bestilling-filchip{display:flex;align-items:center;gap:10px;margin-top:12px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:9px 13px;font-size:14.5px;}
.bestilling-filchip[hidden]{display:none!important;}
.bestilling-filchip__navn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;}
.bestilling-filchip .vrow__x{height:32px;width:32px;flex:none;}
.dropz{border-color:var(--green)!important;box-shadow:0 0 0 3px var(--green-100)!important;background:var(--green-100)!important;}
.spin{display:inline-block;width:15px;height:15px;border:2.5px solid var(--green-300);border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite;vertical-align:-2px;margin-right:8px;}
@keyframes spin{to{transform:rotate(360deg);}}
.panel--hl{border-color:var(--green-300)!important;box-shadow:0 0 0 3px var(--green-100)!important;animation:hlpulse 1.5s ease 2;}
@keyframes hlpulse{0%,100%{box-shadow:0 0 0 3px var(--green-100);}50%{box-shadow:0 0 0 10px color-mix(in srgb,var(--green-100) 40%,transparent);}}

/* ---------- delt bestillingsbygger (barnehage + admin) ---------- */
.vrow{display:grid;grid-template-columns:140px 96px 96px 1fr 110px 34px;gap:8px;margin-bottom:8px;align-items:start;}
.vrow .input{padding:9px 10px;font-size:14.5px;}
.vrow__x{border:1px solid var(--line);background:var(--surface-2);border-radius:9px;height:40px;cursor:pointer;font-size:16px;color:var(--muted);}
.vrow__x:hover{color:#c0392b;border-color:#c0392b;}
.mangler{border-color:#c0392b!important;background:#c0392b0d;}
.vhead{display:grid;grid-template-columns:140px 96px 96px 1fr 110px 34px;gap:8px;font-size:12.5px;color:var(--muted);font-weight:600;margin:14px 0 6px;}
.vf{display:contents;}
.vf__l{display:none;}
.vkomp{grid-column:1/-1;margin:-2px 0 4px;}
.vkomp__lenke{background:none;border:0;padding:0;font:inherit;font-size:13px;font-weight:600;color:var(--green);text-decoration:underline;cursor:pointer;}
.vkomp__lenke:hover{color:var(--green-700);}
.vkomp__felt{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.vkomp__felt[hidden]{display:none;}
.vkomp__felt .input{max-width:340px;}
.vkomp__l{font-size:12.5px;font-weight:600;color:var(--muted);}
.stdtid{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-top:4px;}
.stdtid__felt{display:flex;gap:9px;align-items:center;flex-wrap:wrap;}
.stdtid__felt[hidden]{display:none;}
.stdtid__felt .input{width:92px;padding:9px 10px;font-size:14.5px;}
.rp{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md);padding:12px;max-width:420px;margin-top:8px;}
.rp__hode{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.rp__mnd{font-weight:600;font-size:15px;text-transform:capitalize;}
.rp__nav{border:1px solid var(--line);background:var(--surface);border-radius:9px;width:36px;height:36px;cursor:pointer;font-size:16px;color:var(--ink-2);}
.rp__nav:hover{border-color:var(--green-300);color:var(--green);}
.rp__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;}
.rp__dow{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:center;padding:3px 0 5px;}
.rp__dag{border:1px solid transparent;background:transparent;border-radius:9px;min-height:38px;font-size:14px;font-weight:500;cursor:pointer;padding:0;}
.rp__dag:hover{border-color:var(--green-300);}
.rp__dag--forbi{color:var(--muted);opacity:.35;cursor:default;}
.rp__dag--forbi:hover{border-color:transparent;}
.rp__dag--idag{border-color:var(--line);font-weight:700;}
.rp__dag--i{background:var(--green-100);border-radius:0;}
.rp__dag--ende{background:var(--green);color:#F4F1EB;font-weight:700;border-radius:9px;}
.samme-stripe{gap:10px;align-items:center;flex-wrap:wrap;margin:14px 0 4px;padding:10px 12px;border:1px solid #cfd8e3;border-radius:10px;background:#f4f7fb;font-size:14.5px;}
.samme-stripe[hidden]{display:none!important;}
.booking-fallback{margin-top:18px;padding:14px;border:1px solid var(--sand-200);border-radius:12px;background:var(--sand-100);}
.booking-fallback__title{font-size:14px;font-weight:750;margin-bottom:4px;}
.booking-fallback__text{font-size:12.5px;color:var(--muted);line-height:1.45;margin-bottom:10px;}
.booking-privacy{font-size:12.5px;color:var(--muted);line-height:1.4;margin:6px 2px 0;}

/* Admins eksplisitte telefonmodus. Ett kort svarer til nøyaktig én
   oppdragslinje fra grupperShifts; ingen skjult kopiering mellom linjer. */
.direkte-panel{margin-top:20px;padding:16px;border:1px solid var(--sand-200);border-radius:14px;background:var(--sand-100);}
.direkte-panel[hidden]{display:none;}
.direkte-panel__hode{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:12px;}
.direkte-panel__hode h3{margin:0;font-size:18px;}
.direkte-linje{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px;margin-top:10px;}
.direkte-linje__tittel{font-weight:700;font-size:15.5px;}
.direkte-linje__meta{color:var(--muted);font-size:13px;line-height:1.45;margin:3px 0 12px;}
.direkte-linje__valg{display:grid;grid-template-columns:minmax(210px,1.35fr) minmax(180px,1fr);gap:12px;align-items:start;}
.direkte-linje__sjekker{display:flex;flex-direction:column;gap:8px;font-size:14px;}
.direkte-linje__sjekker label{display:flex;gap:8px;align-items:flex-start;cursor:pointer;}
.direkte-linje__varsel{color:#c0392b;font-size:13px;line-height:1.4;margin:7px 2px 0;}

@media (max-width:760px){
  .booking-mode,.booking-mode--two{grid-template-columns:1fr 1fr;}
  .booking-mode__call{grid-column:1/-1;min-height:58px;}
  .booking-panel-title{display:block;}
  .booking-help{text-align:left;margin-top:5px;}
  .vhead{display:none;}
  .vrow{display:flex;flex-wrap:wrap;gap:10px;border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--surface);}
  .vf{display:flex;flex-direction:column;gap:4px;}
  .vf__l{display:block;font-size:12px;font-weight:600;color:var(--muted);}
  .vf--dato{flex:1 1 100%;}
  .vf--fra,.vf--til{flex:1 1 calc(50% - 5px);}
  .vf--avd{flex:1 1 60%;}
  .vf--ant{flex:1 1 120px;}
  .vkomp{flex:1 1 100%;}
  .vrow__x{align-self:flex-end;height:42px;width:42px;flex:none;}
  .vrow .input{font-size:16px;min-height:44px;}
  .direkte-linje__valg{grid-template-columns:1fr;}
  .direkte-panel__hode{display:block;}
}

@media (max-width:560px){
  .booking-mode,.booking-mode--two{grid-template-columns:1fr;}
  .booking-mode__call{grid-column:auto;}
  .booking-mode__button,.booking-mode__call{min-height:62px;}
}
