.ahk-root .ukeplan-container,
body .ukeplan-container {
    max-width: 1100px;
    margin: 20px auto;
    background: #fff;
    padding: 16px 20px 20px;
    border-radius: 8px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.06);
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: #111;
}

    /* Theme-resilience: some themes force white text on (button/link) elements.
         Keep calendar navigation and UI text readable inside our containers. */
.ahk-root .ukeplan-container button,
.ahk-root .ukeplan-container .ukeplan-nav button,
.ahk-root .ukeplan-container a,
.ahk-root .ukeplan-container .ukeplan-nav a,
.ahk-root .ahk-agenda-container button,
.ahk-root .ahk-agenda-container a,
body .ukeplan-container button,
body .ukeplan-container .ukeplan-nav button,
body .ukeplan-container a,
body .ukeplan-container .ukeplan-nav a,
body .ahk-agenda-container button,
body .ahk-agenda-container a {
        color: #111;
    }

    /* Some themes force strong font-weight on buttons; normalize it for our UI. */
.ahk-root .ukeplan-container button,
.ahk-root .ahk-agenda-container button,
body .ukeplan-container button,
body .ahk-agenda-container button {
        font-weight: 500;
    }

.ahk-root .ukeplan-container button,
.ahk-root .ukeplan-container .ukeplan-nav button,
.ahk-root .ahk-agenda-container button,
body .ukeplan-container button,
body .ukeplan-container .ukeplan-nav button,
body .ahk-agenda-container button {
        border-color: #d0d0d0;
    }

.ahk-root .ahk-agenda-container button svg,
.ahk-root .ukeplan-container button svg,
body .ahk-agenda-container button svg,
body .ukeplan-container button svg {
        fill: currentColor;
    }

.ahk-root .ahk-agenda-container,
body .ahk-agenda-container {
    color: #111;
}

.ahk-root .ukeplan-header,
.ukeplan-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
}

.ahk-root .ukeplan-filter,
.ukeplan-filter {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 10px;
    font-size: 0.85rem;
}


/* Markering av dagens dato (uke + agenda) */
.ahk-root .dag-kolonne.ahk-today,
.dag-kolonne.ahk-today {
    outline: 2px solid rgba(17, 17, 17, 0.12);
    outline-offset: -2px;
    border-radius: 10px;
    background: rgba(34, 197, 94, 0.08);
    border-left: 4px solid rgba(34, 197, 94, 0.55);
}

.ahk-root .ahk-today-badge,
.ahk-today-badge {
    display: inline-block;
    margin-left: 8px;
    padding: 2px 8px;
    font-size: 0.75rem;
    line-height: 1.4;
    border-radius: 999px;
    background: rgba(34, 197, 94, 0.18);
    color: #0f4a22;
    font-weight: 600;
    vertical-align: middle;
}

.ahk-root .ahk-agenda-row.ahk-today,
.ahk-agenda-row.ahk-today {
    border-color: rgba(34, 197, 94, 0.35);
}

.ahk-root .ahk-agenda-date.ahk-today,
.ahk-agenda-date.ahk-today {
    background: rgba(34, 197, 94, 0.12);
    border: 1px solid rgba(34, 197, 94, 0.25);
}
.ahk-root .ahk-filter-label,
.ahk-filter-label {
    font-weight: 500;
}

.ahk-root .ahk-filter-pills,
.ahk-filter-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.ahk-root .ahk-filter-pill,
.ahk-filter-pill {
    border: 2px solid #ccc;
    background: transparent;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 0.8rem;
    cursor: pointer;
}

.ahk-root .ahk-filter-pill:hover,
.ahk-filter-pill:hover {
    background: #f5f5f5;
}

.ahk-root .ahk-filter-pill-active,
.ahk-filter-pill-active {
    background: #000;
    color: #fff !important;
    border-color: #000 !important;
}

.ahk-root .ukeplan-header h2,
.ukeplan-header h2 {
    margin: 0;
    font-size: 1.1rem;
}

.ahk-root .ukeplan-nav button,
.ahk-root .ahk-agenda-nav button,
.ukeplan-nav button,
.ahk-agenda-nav button {
    border: 1px solid #ccc;
    background: #f9f9f9;
    padding: 4px 8px;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.9rem;
}

.ahk-root .ukeplan-nav button:hover,
.ahk-root .ahk-agenda-nav button:hover,
.ukeplan-nav button:hover,
.ahk-agenda-nav button:hover {
    background: #eee;
}

.ahk-root .ukeplan-grid,
.ukeplan-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 8px;
}

/* Når kun mandag–fredag vises (styres av JS som setter .ahk-weekdays på container) */
.ahk-root .ukeplan-container.ahk-weekdays .ukeplan-grid,
.ukeplan-container.ahk-weekdays .ukeplan-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

@media (max-width: 900px) {
    .ahk-root .ukeplan-grid,
    .ukeplan-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .ahk-root .ukeplan-grid,
    .ukeplan-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Responsiv synlighet når både uke- og agenda-visning finnes på samme side */
.ahk-root.ahk-has-both .ukeplan-container,
.ahk-has-both .ukeplan-container {
    display: block;
}

.ahk-root.ahk-has-both .ahk-agenda-container,
.ahk-has-both .ahk-agenda-container {
    display: none;
}

@media (max-width: 1024px) {
    .ahk-root.ahk-has-both .ukeplan-container,
    .ahk-has-both .ukeplan-container {
        display: none;
    }

    .ahk-root.ahk-has-both .ahk-agenda-container,
    .ahk-has-both .ahk-agenda-container {
        display: block;
    }
}

.ahk-root .dag-kolonne,
.dag-kolonne {
    border: 1px solid #ddd;
    border-radius: 6px;
    padding: 6px 8px;
    background: #fafafa;
}

.ahk-root .dag-kolonne h3,
.dag-kolonne h3 {
    margin: 0 0 4px;
    font-size: 0.95rem;
}

.ahk-root .dag-dato,
.dag-dato {
    font-size: 0.8rem;
    color: #666;
    margin-bottom: 6px;
}

.ahk-root .aktivitet,
.aktivitet {
    margin-bottom: 6px;
    padding: 4px 6px;
    background: #fff;
    border-radius: 4px;
    border: 1px solid #e0e0e0;
    cursor: default;
}

.ahk-root .aktivitet-har-detaljer,
.aktivitet-har-detaljer {
    cursor: pointer;
}

/* Stengt-dager (overstyrer aktiviteter) */
.ahk-root .aktivitet.ahk-closed,
.aktivitet.ahk-closed {
    cursor: default;
    border-left: 4px solid #b42318;
}

.ahk-root .aktivitet .ahk-closed-note,
.aktivitet .ahk-closed-note {
    margin-top: 4px;
    font-size: 0.85rem;
    color: #444;
}

/* Fullskjerms detaljvisning for aktivitet */
.ahk-root .ahk-activity-overlay,
.ahk-activity-overlay {
    position: fixed;
    inset: 0;
    display: none;
    z-index: 9999;
}

.ahk-root .ahk-activity-overlay-open,
.ahk-activity-overlay-open {
    display: flex;
    align-items: center;
    justify-content: center;
}

.ahk-root .ahk-activity-overlay-backdrop,
.ahk-activity-overlay-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.4);
}

.ahk-root .ahk-activity-overlay-panel,
.ahk-activity-overlay-panel {
    position: relative;
    max-width: 700px;
    width: 100%;
    margin: 0 16px;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.2);
    padding: 20px 24px 22px;
}

.ahk-root .ahk-activity-overlay-close,
.ahk-activity-overlay-close {
    position: absolute;
    top: 10px;
    right: 12px;
    border: none;
    background: transparent;
    font-size: 1.4rem;
    cursor: pointer;
}

.ahk-root .ahk-activity-overlay-header,
.ahk-activity-overlay-header {
    margin-bottom: 10px;
}

.ahk-root .ahk-activity-overlay-title,
.ahk-activity-overlay-title {
    margin: 0 0 4px;
    font-size: 1.2rem;
}

.ahk-root .ahk-activity-overlay-meta,
.ahk-activity-overlay-meta {
    font-size: 0.9rem;
    color: #555;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 12px;
}

.ahk-root .ahk-activity-overlay-meta-item,
.ahk-activity-overlay-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.ahk-root .ahk-activity-overlay-body,
.ahk-activity-overlay-body {
    margin-top: 10px;
    font-size: 0.9rem;
    color: #333;
    white-space: pre-wrap;
}

.ahk-root .ahk-activity-overlay-extra,
.ahk-activity-overlay-extra {
    margin-top: 14px;
}

.ahk-root .ahk-activity-overlay-section,
.ahk-activity-overlay-section {
    margin-top: 8px;
}

.ahk-root .ahk-activity-overlay-section h3,
.ahk-activity-overlay-section h3 {
    margin: 0 0 2px;
    font-size: 0.95rem;
    font-weight: 600;
}

.ahk-root .ahk-activity-overlay-section-body,
.ahk-activity-overlay-section-body {
    font-size: 0.9rem;
    color: #333;
}

/* Lenker i overlay (f.eks. påmelding) skal være blå og tydelige */
.ahk-root .ahk-activity-overlay a,
.ahk-activity-overlay a {
    color: #0066cc;
    text-decoration: underline;
}

.ahk-root .ahk-activity-overlay a:hover,
.ahk-activity-overlay a:hover {
    color: #004a99;
}

.ahk-root .ahk-icon,
.ahk-icon,
.ahk-activity-overlay-section h3::before {
    font-family: 'Material Symbols Outlined';
    font-weight: normal;
    font-style: normal;
    font-size: 1rem;
    line-height: 1;
    letter-spacing: normal;
    text-transform: none;
    display: inline-block;
    white-space: nowrap;
    word-wrap: normal;
    direction: ltr;
    font-feature-settings: 'liga';
    -webkit-font-feature-settings: 'liga';
    -webkit-font-smoothing: antialiased;
    margin-right: 4px;
    vertical-align: text-bottom;
    color: #000;
}

.ahk-activity-overlay-section.ahk-section-signup h3::before {
    content: 'event_available';
}

.ahk-activity-overlay-section.ahk-section-contact h3::before {
    content: 'person';
}

.ahk-activity-overlay-section.ahk-section-equipment h3::before {
    content: 'backpack';
}

.ahk-activity-overlay-section.ahk-section-cost h3::before {
    content: 'payments';
}

.aktivitet-les-mer {
    margin-top: 4px;
    font-size: 0.75rem;
    color: #0066cc;
    text-decoration: underline;
}

.aktivitet strong {
    font-size: 0.85rem;
}

.aktivitet small {
    font-size: 0.75rem;
    color: #555;
}

.aktivitet-kategori {
    margin-top: 2px;
    font-size: 0.7rem;
    font-weight: 500;
}

.ingen {
    font-size: 0.8rem;
    color: #777;
    font-style: italic;
}

/* Agenda-visning (liste) */
.ahk-root .ahk-agenda-container,
.ahk-agenda-container {
    max-width: 900px;
    margin: 20px auto;
    background: #fff;
    padding: 16px 20px 20px;
    border-radius: 8px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.06);
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* Datakontrakt-guard (vises kun hvis data mangler/er feil) */
.ahk-root .ahk-data-error,
.ahk-data-error {
    margin: 0 0 12px 0;
    padding: 10px 12px;
    border: 2px solid #b42318;
    border-radius: 10px;
    background: #fff1f1;
    color: #551414;
    font-weight: 600;
    font-size: 0.95rem;
}

.ahk-root .ahk-agenda-header,
.ahk-agenda-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}

.ahk-root .ahk-agenda-title h2,
.ahk-agenda-title h2 {
    margin: 0;
    font-size: 1.1rem;
}

.ahk-root .ahk-agenda-export,
.ahk-agenda-export {
    margin-bottom: 10px;
    font-size: 0.85rem;
}

.ahk-root .ahk-export-run,
.ahk-export-run {
    border: 1px solid #ccc;
    background: #f9f9f9;
    padding: 4px 8px;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.85rem;
}

.ahk-root .ahk-export-run:hover,
.ahk-export-run:hover {
    background: #eee;
}

.ahk-root .ahk-agenda-week-header,
.ahk-agenda-week-header {
    margin-top: 12px;
    margin-bottom: 4px;
    font-weight: 600;
    font-size: 0.95rem;
    color: #222;
}

.ahk-root .ahk-agenda-row,
.ahk-agenda-row {
    display: grid;
    grid-template-columns: 185px minmax(0, 1fr);
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid #eee;
}

.ahk-root .ahk-agenda-row:last-child,
.ahk-agenda-row:last-child {
    border-bottom: none;
}

.ahk-root .ahk-agenda-date,
.ahk-agenda-date {
    font-weight: 600;
    font-size: 0.95rem;
    color: #333;
    white-space: nowrap;
}

.ahk-root .ahk-agenda-events,
.ahk-agenda-events {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.ahk-root .ahk-agenda-event,
.ahk-agenda-event {
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    background: #fafafa;
}

.ahk-root .ahk-agenda-event-header,
.ahk-agenda-event-header {
    width: 100%;
    text-align: left;
    border: none;
    background: transparent;
    padding: 6px 8px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    cursor: pointer;
}

/* Agenda: fjern blå "valgt"-highlight fra tema/nettleser.
   Behold en diskret fokus-markering for tastaturbrukere. */
.ahk-root .ahk-agenda-event-header:active,
.ahk-root .ahk-agenda-event-header:focus,
.ahk-agenda-event-header:active,
.ahk-agenda-event-header:focus {
    outline: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

.ahk-root .ahk-agenda-event-header:focus-visible,
.ahk-agenda-event-header:focus-visible {
    outline: 2px solid rgba(0,0,0,0.25);
    outline-offset: 2px;
    border-radius: 6px;
}

/* Mobile Safari / iOS: remove tap highlight (often blue). */
.ahk-root .ahk-agenda-container .ahk-agenda-event-header,
.ahk-agenda-container .ahk-agenda-event-header {
    -webkit-tap-highlight-color: transparent;
}

/*
 * Neve (og enkelte mobile nettlesere) kan legge på "selected"/fokus-styling på
 * klikkbare elementer. Vi overstyrer dette innen agendaen.
 */
.ahk-root .ahk-agenda-container,
.ahk-root .ahk-agenda-container *,
.ahk-agenda-container,
.ahk-agenda-container * {
    -webkit-tap-highlight-color: transparent !important;
}

.ahk-root .ahk-agenda-container .ahk-agenda-event-header,
.ahk-root .ahk-agenda-container .ahk-agenda-event-arrow,
.ahk-root .ahk-agenda-container .ahk-agenda-nav button,
.ahk-agenda-container .ahk-agenda-event-header,
.ahk-agenda-container .ahk-agenda-event-arrow,
.ahk-agenda-container .ahk-agenda-nav button {
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    -webkit-touch-callout: none !important;
    -webkit-user-select: none;
    user-select: none;
}

.ahk-root .ahk-agenda-container .ahk-agenda-event-header:hover,
.ahk-root .ahk-agenda-container .ahk-agenda-event-header:active,
.ahk-root .ahk-agenda-container .ahk-agenda-event-header:focus,
.ahk-root .ahk-agenda-container .ahk-agenda-event-header:focus-within,
.ahk-root .ahk-agenda-container .ahk-agenda-event-header[aria-expanded="true"],
.ahk-agenda-container .ahk-agenda-event-header:hover,
.ahk-agenda-container .ahk-agenda-event-header:active,
.ahk-agenda-container .ahk-agenda-event-header:focus,
.ahk-agenda-container .ahk-agenda-event-header:focus-within,
.ahk-agenda-container .ahk-agenda-event-header[aria-expanded="true"] {
    background-color: transparent !important;
    box-shadow: none !important;
    outline: none !important;
    filter: none !important;
}

.ahk-root .ahk-agenda-container .ahk-agenda-event-header:focus-visible,
.ahk-agenda-container .ahk-agenda-event-header:focus-visible {
    outline: 2px solid rgba(0,0,0,0.35) !important;
    outline-offset: 2px;
}

.ahk-root .ahk-agenda-event-time,
.ahk-agenda-event-time {
    font-size: 0.85rem;
    font-weight: 500;
    color: #333;
}

.ahk-root .ahk-agenda-event-title,
.ahk-agenda-event-title {
    font-size: 0.9rem;
    flex: 1;
}

.ahk-root .ahk-agenda-event-location,
.ahk-agenda-event-location {
    margin-left: 10px;
    font-size: 0.85rem;
    color: #555;
    white-space: nowrap;
}

/* Agenda: ikon-knapper (mobilvennlig) */
.ahk-root .ahk-agenda-nav .ahk-icon-only,
.ahk-agenda-nav .ahk-icon-only {
    padding: 6px 10px;
    min-width: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.ahk-root .ahk-agenda-nav .ahk-icon-only .ahk-icon,
.ahk-agenda-nav .ahk-icon-only .ahk-icon {
    font-size: 1.2rem;
    line-height: 1;
}

.ahk-root .ahk-agenda-event-header-static,
.ahk-agenda-event-header-static {
    cursor: default;
}

.ahk-root .ahk-agenda-event-closed-note,
.ahk-agenda-event-closed-note {
    display: block;
    margin-top: 2px;
    font-size: 0.85rem;
    color: #444;
    white-space: normal;
}

.ahk-root .ahk-agenda-event.ahk-closed,
.ahk-agenda-event.ahk-closed {
    border-left: 4px solid #b42318;
}

.ahk-root .ahk-agenda-toggle-icon,
.ahk-agenda-toggle-icon {
    font-size: 1.1rem;
}

.ahk-root .ahk-agenda-event-body,
.ahk-agenda-event-body {
    display: none;
    padding: 0 8px 8px;
    font-size: 0.85rem;
    color: #333;
}

.ahk-root .ahk-agenda-event.ahk-open .ahk-agenda-event-body,
.ahk-agenda-event.ahk-open .ahk-agenda-event-body {
    display: block;
}

.ahk-root .ahk-agenda-section,
.ahk-agenda-section {
    margin-top: 6px;
}

.ahk-root .ahk-agenda-section h3,
.ahk-agenda-section h3 {
    margin: 0 0 2px;
    font-size: 0.9rem;
    font-weight: 600;
}

.ahk-root .ahk-agenda-section-body,
.ahk-agenda-section-body {
    font-size: 0.85rem;
}

@media (max-width: 700px) {
    .ahk-root .ahk-agenda-row,
    .ahk-agenda-row {
        grid-template-columns: 1fr;
    }

    .ahk-root .ahk-agenda-date,
    .ahk-agenda-date {
        margin-bottom: 4px;
    }
}

/* Agenda: iPad og nedover.
   Agenda-visning er ment for mindre skjermer, så vi viser hver dag som et "kort"
   med en fast datolapp (pill) øverst, for å unngå at dato blir klemt/delt i to linjer. */
@media (max-width: 1024px) {
    .ahk-root .ahk-agenda-row,
    .ahk-agenda-row {
        grid-template-columns: 1fr;
        padding: 12px;
        border: 1px solid #e6e6e6;
        border-radius: 10px;
        background: #fff;
        box-shadow: 0 1px 3px rgba(0,0,0,0.06);
    }

    .ahk-root .ahk-agenda-date,
    .ahk-agenda-date {
        margin-bottom: 8px;
        display: inline-flex;
        align-items: center;
        width: fit-content;
        max-width: 100%;
        padding: 4px 10px;
        border-radius: 999px;
        background: #f3f4f6;
        border: 1px solid #e5e7eb;
        font-size: 0.9rem;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .ahk-root .ahk-agenda-date::before,
    .ahk-agenda-date::before {
        content: 'calendar_month';
        font-family: 'Material Symbols Outlined';
        font-weight: normal;
        font-style: normal;
        font-size: 1.05rem;
        line-height: 1;
        display: inline-block;
        margin-right: 6px;
        color: #555;
    }

    .ahk-root .ahk-agenda-events,
    .ahk-agenda-events {
        gap: 8px;
    }

    .ahk-root .ahk-agenda-empty,
    .ahk-agenda-empty {
        color: #666;
        font-size: 0.9rem;
        padding: 6px 8px;
        background: #fafafa;
        border: 1px dashed #ddd;
        border-radius: 8px;
    }
}