/* Bjørnar møteromsbooking 1.1 – ukevisning og høykontrast */
.bjmr-root {
  --bjmr-navy:#071a3d;
  --bjmr-blue:#214c9c;
  --bjmr-ink:#10213f;
  --bjmr-muted:#52627c;
  --bjmr-line:#d6e0ec;
  --bjmr-soft:#f5f7fb;
  --bjmr-round:22px;
  width:100%;max-width:1400px;margin:0 auto;
  color:var(--bjmr-ink);font:inherit;
}
.bjmr-root *, .bjmr-root *::before, .bjmr-root *::after { box-sizing:border-box; }
.bjmr-root button, .bjmr-root input, .bjmr-root select, .bjmr-root textarea { font:inherit; }
.bjmr-root button { cursor:pointer; }
.bjmr-root button:focus-visible, .bjmr-root input:focus-visible,
.bjmr-root select:focus-visible, .bjmr-root textarea:focus-visible { outline:3px solid #4d86d5;outline-offset:3px; }

/* Overskrift kommer fra selve appen; ingen ekstra overskrift trengs i portal. */
.bjmr-root .bjmr-head {
  padding:clamp(20px,2.6vw,30px);
  border:1px solid var(--bjmr-line);border-radius:var(--bjmr-round);
  background:linear-gradient(120deg,#fff 30%,#f2f6fd 100%);
}
.bjmr-root .bjmr-kicker {
  display:block;color:var(--bjmr-blue);font-weight:800;font-size:11px;
  letter-spacing:.08em;text-transform:uppercase;margin-bottom:9px;
}
.bjmr-root .bjmr-head h2 {
  font-size:clamp(26px,3vw,37px);font-weight:800;letter-spacing:-.035em;
  line-height:1.17;color:var(--bjmr-navy);margin:0 0 10px;
}
.bjmr-root .bjmr-head p {margin:0;max-width:900px;color:var(--bjmr-muted);line-height:1.65;font-size:14px;}
.bjmr-root .bjmr-head p strong {color:var(--bjmr-navy);}
.bjmr-root .bjmr-legend {
  display:flex;flex-wrap:wrap;gap:9px 20px;margin:17px 0 14px;
  color:#364761;font-size:12px;font-weight:700;
}
.bjmr-root .bjmr-legend span {display:inline-flex;align-items:center;gap:8px;}
.bjmr-root .bjmr-dot {display:inline-block;width:11px;height:11px;border-radius:3px;flex:0 0 auto;}
.bjmr-root .bjmr-dot-approved {background:#265da8;}
.bjmr-root .bjmr-dot-pending {background:#bc7900;}
.bjmr-root .bjmr-dot-closed {background:#58647a;}
.bjmr-root .bjmr-cal-wrap, .bjmr-root .bjmr-day-card, .bjmr-root .bjmr-form {
  background:#fff;border:1px solid var(--bjmr-line);border-radius:var(--bjmr-round);
  box-shadow:0 12px 25px rgba(7,26,61,.04);
}
.bjmr-root .bjmr-cal-wrap {padding:clamp(14px,2vw,22px);}
.bjmr-root .bjmr-cal-head {display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px;}
.bjmr-root .bjmr-cal-head h3 {
  margin:0;color:var(--bjmr-navy);font-weight:800;
  font-size:clamp(16px,2.2vw,22px);line-height:1.3;
}
.bjmr-root .bjmr-cal-controls {display:flex;align-items:center;gap:6px;flex-shrink:0;}
.bjmr-root .bjmr-cal-controls button {
  background:#eef3fa;border:1px solid #c9d7e9;border-radius:10px;
  min-height:38px;min-width:40px;color:#133c77;font-size:16px;
  font-weight:800;padding:5px 11px;line-height:1.3;
}
.bjmr-root .bjmr-cal-controls button:hover {background:#dae8fa;color:#0c2f63;}
.bjmr-root .bjmr-calendar {display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;min-height:0;}
.bjmr-root .bjmr-calendar.bjmr-loading {opacity:.65;pointer-events:none;}
.bjmr-root .bjmr-date {
  display:flex;flex-direction:column;align-items:stretch;gap:9px;
  position:relative;min-width:0;min-height:142px;overflow:hidden;
  margin:0;padding:11px 9px 10px;border:1px solid #d5e0ee;
  border-radius:13px;background:#fff;color:#142a49!important;
  text-align:left;box-shadow:none;
  transition:background .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.bjmr-root .bjmr-date:hover {background:#f2f7ff;border-color:#729bcf;}
.bjmr-root .bjmr-date.is-selected {
  border:2px solid #214c9c;padding:10px 8px 9px;
  background:#edf4ff;box-shadow:inset 0 0 0 1px rgba(33,76,156,.1);
}
.bjmr-root .bjmr-date.is-past {background:#f6f8fa;}
.bjmr-root .bjmr-date.is-past:not(.is-selected) .bjmr-date-heading {color:#59677a;}
.bjmr-root .bjmr-date-heading {display:flex;justify-content:space-between;align-items:center;gap:4px;color:#243b5e;}
.bjmr-root .bjmr-date-weekday {font-size:12px;font-weight:800;line-height:1.2;color:#354c6f!important;}
.bjmr-root .bjmr-date-number {
  display:inline-flex;align-items:center;justify-content:center;min-width:27px;height:27px;
  padding:1px 5px;border-radius:9px;
  color:#071a3d!important;font-size:16px;font-weight:900;line-height:1.2;
}
.bjmr-root .bjmr-date.is-today .bjmr-date-number {background:#214c9c;color:#fff!important;}
.bjmr-root .bjmr-date-entries {display:flex;flex-direction:column;gap:5px;min-width:0;}
.bjmr-root .bjmr-chip {
  display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  padding:6px 6px;border-radius:7px;border:1px solid transparent;
  font-size:10.5px;line-height:1.25;font-weight:800;
}
.bjmr-root .bjmr-chip-approved {background:#dceafe;color:#143e79!important;border-color:#b5d0f7;}
.bjmr-root .bjmr-chip-pending {background:#fff0bc;color:#684400!important;border-color:#f1cf77;}
.bjmr-root .bjmr-chip-closed {background:#e4e8ed;color:#374457!important;border-color:#c6ced9;}
.bjmr-root .bjmr-extra {display:block;font-size:11px;color:#344660;font-weight:800;padding-left:2px;}
.bjmr-root .bjmr-date-free {font-size:11px;color:#425670!important;font-weight:650;}
.bjmr-root .bjmr-date-mobile {display:none;}
.bjmr-root .bjmr-cal-hint {color:var(--bjmr-muted);font-size:12px;margin:12px 0 0;line-height:1.5;}
.bjmr-root .bjmr-load-error {grid-column:1/-1;border-radius:10px;background:#fff0f1;padding:15px;color:#8a1b30;}

.bjmr-root .bjmr-bottom {
  display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);
  gap:18px;margin-top:20px;align-items:start;scroll-margin-top:90px;
}
.bjmr-root .bjmr-day-card,.bjmr-root .bjmr-form {padding:clamp(19px,2.5vw,27px);}
.bjmr-root .bjmr-day-card h3,.bjmr-root .bjmr-form h3 {
  margin:0 0 13px;color:var(--bjmr-navy);font-weight:800;
  font-size:clamp(20px,2.2vw,24px);line-height:1.35;
}
.bjmr-root .bjmr-day-items {display:flex;flex-direction:column;gap:9px;}
.bjmr-root .bjmr-entry {
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
  padding:12px 13px;border-left:4px solid #265da8;border-radius:11px;
  background:#eaf2ff;font-size:13px;line-height:1.5;
}
.bjmr-root .bjmr-entry strong {color:#142f5b;white-space:nowrap;}
.bjmr-root .bjmr-entry span {text-align:right;color:#234b82;font-weight:650;}
.bjmr-root .bjmr-entry-pending {background:#fff3ce;border-left-color:#bc7900;}
.bjmr-root .bjmr-entry-pending span {color:#684400;}
.bjmr-root .bjmr-entry-closed {background:#e8ebf0;border-left-color:#697488;}
.bjmr-root .bjmr-entry-closed span {color:#374457;}
.bjmr-root .bjmr-empty {padding:15px;border-radius:11px;background:#f5f7fa;color:#485972;font-size:13px;margin:0;}
.bjmr-root .bjmr-form-intro {font-size:13px;line-height:1.65;color:var(--bjmr-muted);margin:0 0 17px;}
.bjmr-root .bjmr-form label {display:block;font-size:13px;font-weight:750;color:var(--bjmr-ink);margin:12px 0 0;}
.bjmr-root .bjmr-form label strong {color:#a31331;}
.bjmr-root .bjmr-form label span {color:var(--bjmr-muted);font-size:12px;font-weight:500;}
.bjmr-root .bjmr-form input,.bjmr-root .bjmr-form select,.bjmr-root .bjmr-form textarea {
  display:block;width:100%;max-width:100%;min-height:43px;margin-top:6px;
  padding:10px 12px;background:#fff!important;border:1px solid #afc0d5;border-radius:10px;
  color:#152743!important;box-shadow:none;
}
.bjmr-root .bjmr-form input::placeholder,.bjmr-root .bjmr-form textarea::placeholder {color:#66768e;opacity:1;}
.bjmr-root .bjmr-form textarea {min-height:84px;resize:vertical;}
.bjmr-root .bjmr-form select:disabled {background:#edf1f5!important;color:#50617b!important;}
.bjmr-root .bjmr-field-row {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.bjmr-root .bjmr-duration {color:#214c9c;font-size:12px;font-weight:800;margin:10px 0 19px;}
.bjmr-root .bjmr-form .bjmr-privacy {font-size:12px;line-height:1.6;color:var(--bjmr-muted);margin:17px 0;}
.bjmr-root .bjmr-submit {
  display:flex;justify-content:center;align-items:center;gap:12px;width:100%;min-height:49px;
  border:0;border-radius:999px;background:#214c9c;color:#fff!important;
  font-size:14px;font-weight:800;padding:12px 18px;
}
.bjmr-root .bjmr-submit:hover:not(:disabled) {background:#133978;color:#fff!important;}
.bjmr-root .bjmr-submit:disabled {background:#7c8faa;color:#fff!important;cursor:not-allowed;}
.bjmr-root .bjmr-message {font-size:13px;line-height:1.55;margin:12px 0 0;}
.bjmr-root .bjmr-message:empty {display:none;}
.bjmr-root .bjmr-success {background:#e6f5ea;padding:12px;border-radius:10px;color:#17572c;}
.bjmr-root .bjmr-error {background:#ffebed;padding:12px;border-radius:10px;color:#8a1b30;}
.bjmr-root .bjmr-spam {position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden;}

@media(max-width:1050px) {
  .bjmr-root .bjmr-date {min-height:133px;padding:9px 6px;}
  .bjmr-root .bjmr-date.is-selected {padding:8px 5px;}
  .bjmr-root .bjmr-chip {font-size:10px;padding:5px 4px;}
}
@media(max-width:800px) {
  .bjmr-root .bjmr-bottom {grid-template-columns:1fr;}
  .bjmr-root .bjmr-date {min-height:95px;}
  .bjmr-root .bjmr-date-entries {display:none;}
  .bjmr-root .bjmr-date-mobile {display:flex;gap:3px;align-items:center;justify-content:center;flex-wrap:wrap;margin-top:5px;}
  .bjmr-root .bjmr-mobile-dot {display:inline-block;width:7px;height:7px;border-radius:50%;background:#265da8;}
  .bjmr-root .bjmr-mobile-dot-pending {background:#bc7900;}
  .bjmr-root .bjmr-mobile-dot-closed {background:#59657a;}
  .bjmr-root .bjmr-date-mobile small {color:#243b5c;font-size:10px;font-weight:800;}
}
@media(max-width:600px) {
  .bjmr-root .bjmr-head {padding:21px 18px;}
  .bjmr-root .bjmr-cal-head {flex-wrap:wrap;}
  .bjmr-root .bjmr-cal-controls button {min-width:35px;min-height:35px;padding:4px 8px;}
  .bjmr-root .bjmr-calendar {gap:4px;}
  .bjmr-root .bjmr-date {min-height:84px;gap:6px;padding:7px 3px 6px;border-radius:9px;}
  .bjmr-root .bjmr-date.is-selected {padding:6px 2px 5px;}
  .bjmr-root .bjmr-date-heading {flex-direction:column;gap:3px;}
  .bjmr-root .bjmr-date-weekday {font-size:10px;}
  .bjmr-root .bjmr-date-number {min-width:25px;height:25px;font-size:13px;}
  .bjmr-root .bjmr-date-mobile {margin-top:0;}
  .bjmr-root .bjmr-mobile-dot {width:6px;height:6px;}
  .bjmr-root .bjmr-legend {gap:8px 13px;font-size:11px;}
  .bjmr-root .bjmr-bottom {gap:13px;margin-top:14px;}
  .bjmr-root .bjmr-field-row {grid-template-columns:1fr;gap:0;}
  .bjmr-root .bjmr-entry {flex-direction:column;gap:2px;}
  .bjmr-root .bjmr-entry span {text-align:left;}
}
