/* Sierra/Jones in the Fast Lane inspired design tokens */
:root,
[data-fax-theme="blekk"] {
    --beige-plastic: #d6cebf;
    --beige-light: #eae5db;
    --beige-dark: #a89e8c;
    --beige-shadow: #5c5548;
    --lcd-green-bg: #141b15;
    --lcd-green-text: #39ff14;
    --lcd-amber-bg: #1a1510;
    --lcd-amber-text: #ffb000;
    --paper-color: #faf8f0;
    --folder-card: #ece5d3;
    --theme-body-bg: #2b3a4a;
    --theme-body-dot: #394c61;
    --theme-viewport-bg: #d6cebf;
    --theme-screen-header-bg: #b5ad9e;
    --theme-screen-header-border: #9e9584;
    --theme-screen-title: #292524;
    --theme-screen-desc: #57534e;
    --theme-session-bar-bg: #27272a;
    --theme-session-bar-border: #3f3f46;
    --theme-session-text: #d4d4d8;
    --theme-nav-bg: #3d3830;
    --theme-nav-border: #1a1814;
    --theme-btn-bg: #c0b7a6;
    --theme-btn-border-hi: #eee5d5;
    --theme-btn-border-lo: #7a7162;
    --theme-btn-text: #292524;
    --theme-btn-active-bg: #a49a88;
    --theme-btn-active-border-hi: #554e43;
    --theme-btn-active-border-lo: #dfd7c9;
    --theme-text-muted: #57534e;
    --theme-text-body: #292524;
    --theme-dialer-keypad-bg: #c6beaf;
    --theme-dialer-keypad-border: #a49a88;
    --theme-send-overlay-bg: #6b6358;
    --theme-send-paper-zone-bg: #8a8178;
    --theme-meta-color: #78716c;
    --theme-accent: #92400e;
    --theme-picker-bg: #d6cebf;
    --theme-picker-panel-bg: #d6cebf;
}

[data-fax-theme="laser"] {
    --beige-plastic: #262626;
    --beige-light: #404040;
    --beige-dark: #141414;
    --beige-shadow: #000000;
    --paper-color: #e7e5e4;
    --folder-card: #2d2d2d;
    --theme-body-bg: #0a0a0a;
    --theme-body-dot: #1a1a1a;
    --theme-viewport-bg: #141414;
    --theme-screen-header-bg: #1a1a1a;
    --theme-screen-header-border: #333333;
    --theme-screen-title: #f5f5f4;
    --theme-screen-desc: #a8a29e;
    --theme-session-bar-bg: #0f0f0f;
    --theme-session-bar-border: #2a2a2a;
    --theme-session-text: #e7e5e4;
    --theme-nav-bg: #171717;
    --theme-nav-border: #333333;
    --theme-btn-bg: #3f3f3f;
    --theme-btn-border-hi: #525252;
    --theme-btn-border-lo: #262626;
    --theme-btn-text: #fafaf9;
    --theme-btn-active-bg: #525252;
    --theme-btn-active-border-hi: #737373;
    --theme-btn-active-border-lo: #404040;
    --theme-text-muted: #a8a29e;
    --theme-text-body: #f5f5f4;
    --theme-dialer-keypad-bg: #262626;
    --theme-dialer-keypad-border: #404040;
    --theme-send-overlay-bg: #0f0f0f;
    --theme-send-paper-zone-bg: #1f1f1f;
    --theme-meta-color: #a8a29e;
    --theme-accent: #d4d4d8;
    --theme-picker-bg: #141414;
    --theme-picker-panel-bg: #1a1a1a;
}

[data-fax-theme="matrise"] {
    --beige-plastic: #e8c4c4;
    --beige-light: #f5d4d4;
    --beige-dark: #b84040;
    --beige-shadow: #5c1010;
    --paper-color: #fff8f8;
    --folder-card: #f0cccc;
    --theme-body-bg: #3a0a0a;
    --theme-body-dot: #5c1414;
    --theme-viewport-bg: #e4b8b8;
    --theme-screen-header-bg: #d49090;
    --theme-screen-header-border: #b83838;
    --theme-screen-title: #280808;
    --theme-screen-desc: #6b1818;
    --theme-session-bar-bg: #280808;
    --theme-session-bar-border: #5c1414;
    --theme-session-text: #ffe8e8;
    --theme-nav-bg: #4a1010;
    --theme-nav-border: #280808;
    --theme-btn-bg: #c82828;
    --theme-btn-border-hi: #e85858;
    --theme-btn-border-lo: #7a0a0a;
    --theme-btn-text: #ffffff;
    --theme-btn-active-bg: #9f1818;
    --theme-btn-active-border-hi: #5c0808;
    --theme-btn-active-border-lo: #d84848;
    --theme-text-muted: #8b3030;
    --theme-text-body: #280808;
    --theme-dialer-keypad-bg: #d49090;
    --theme-dialer-keypad-border: #a83030;
    --theme-send-overlay-bg: #3a1010;
    --theme-send-paper-zone-bg: #c88888;
    --theme-meta-color: #8b2828;
    --theme-accent: #dc2626;
    --theme-picker-bg: #4a1010;
    --theme-picker-panel-bg: #e8c4c4;
}

[data-fax-theme="satellitt"] {
    --beige-plastic: #f5c0dc;
    --beige-light: #fce4f0;
    --beige-dark: #d472a8;
    --beige-shadow: #8b3870;
    --paper-color: #fff8fc;
    --folder-card: #fce8f4;
    --theme-body-bg: #5c2060;
    --theme-body-dot: #742878;
    --theme-viewport-bg: #f0b8d4;
    --theme-screen-header-bg: #e898c8;
    --theme-screen-header-border: #d070a8;
    --theme-screen-title: #4a1040;
    --theme-screen-desc: #7a3068;
    --theme-session-bar-bg: #3a1238;
    --theme-session-bar-border: #6b2870;
    --theme-session-text: #fce8f4;
    --theme-nav-bg: #6b2870;
    --theme-nav-border: #3a1238;
    --theme-btn-bg: #e8a8cc;
    --theme-btn-border-hi: #f5d0e8;
    --theme-btn-border-lo: #b86898;
    --theme-btn-text: #4a1040;
    --theme-btn-active-bg: #d080b0;
    --theme-btn-active-border-hi: #8b3870;
    --theme-btn-active-border-lo: #f0c0dc;
    --theme-text-muted: #8b3870;
    --theme-text-body: #4a1040;
    --theme-dialer-keypad-bg: #e8b0d0;
    --theme-dialer-keypad-border: #c878a8;
    --theme-send-overlay-bg: #4a1840;
    --theme-send-paper-zone-bg: #d898c0;
    --theme-meta-color: #9f5088;
    --theme-accent: #db2777;
    --theme-picker-bg: #4a1840;
    --theme-picker-panel-bg: #f5c0dc;
}

[data-fax-theme="overhead"] {
    --beige-plastic: #b8e0c8;
    --beige-light: #d4f0dc;
    --beige-dark: #5a9e6f;
    --beige-shadow: #1a3d2e;
    --paper-color: #f4faf6;
    --folder-card: #d4f0dc;
    --theme-body-bg: #1a3d2e;
    --theme-body-dot: #245a40;
    --theme-viewport-bg: #b8e0c8;
    --theme-screen-header-bg: #9fd4b0;
    --theme-screen-header-border: #5a9e6f;
    --theme-screen-title: #143322;
    --theme-screen-desc: #2d6a4a;
    --theme-session-bar-bg: #143322;
    --theme-session-bar-border: #245a40;
    --theme-session-text: #e8f8ef;
    --theme-nav-bg: #1e5631;
    --theme-nav-border: #143322;
    --theme-btn-bg: #4ade80;
    --theme-btn-border-hi: #86efac;
    --theme-btn-border-lo: #15803d;
    --theme-btn-text: #143322;
    --theme-btn-active-bg: #22c55e;
    --theme-btn-active-border-hi: #14532d;
    --theme-btn-active-border-lo: #86efac;
    --theme-text-muted: #2d6a4a;
    --theme-text-body: #143322;
    --theme-dialer-keypad-bg: #9fd4b0;
    --theme-dialer-keypad-border: #5a9e6f;
    --theme-send-overlay-bg: #143322;
    --theme-send-paper-zone-bg: #7ec89a;
    --theme-meta-color: #2d6a4a;
    --theme-accent: #16a34a;
    --theme-picker-bg: #143322;
    --theme-picker-panel-bg: #b8e0c8;
}

[data-fax-theme="personsoker"] {
    --beige-plastic: #fde047;
    --beige-light: #fef9c3;
    --beige-dark: #ca8a04;
    --beige-shadow: #3d3200;
    --paper-color: #fffbeb;
    --folder-card: #fef3c7;
    --theme-body-bg: #3d3200;
    --theme-body-dot: #5c4a0a;
    --theme-viewport-bg: #fde047;
    --theme-screen-header-bg: #facc15;
    --theme-screen-header-border: #ca8a04;
    --theme-screen-title: #422006;
    --theme-screen-desc: #854d0e;
    --theme-session-bar-bg: #422006;
    --theme-session-bar-border: #5c4a0a;
    --theme-session-text: #fef9c3;
    --theme-nav-bg: #713f12;
    --theme-nav-border: #422006;
    --theme-btn-bg: #eab308;
    --theme-btn-border-hi: #fde047;
    --theme-btn-border-lo: #a16207;
    --theme-btn-text: #422006;
    --theme-btn-active-bg: #ca8a04;
    --theme-btn-active-border-hi: #713f12;
    --theme-btn-active-border-lo: #fde047;
    --theme-text-muted: #854d0e;
    --theme-text-body: #422006;
    --theme-dialer-keypad-bg: #facc15;
    --theme-dialer-keypad-border: #ca8a04;
    --theme-send-overlay-bg: #422006;
    --theme-send-paper-zone-bg: #fbbf24;
    --theme-meta-color: #92400e;
    --theme-accent: #ca8a04;
    --theme-picker-bg: #422006;
    --theme-picker-panel-bg: #fde047;
}

[data-fax-theme="rorpost"] {
    --beige-plastic: #fb923c;
    --beige-light: #ffedd5;
    --beige-dark: #c2410c;
    --beige-shadow: #7c2d12;
    --paper-color: #fff7ed;
    --folder-card: #ffedd5;
    --theme-body-bg: #7c2d12;
    --theme-body-dot: #9a3412;
    --theme-viewport-bg: #fdba74;
    --theme-screen-header-bg: #fb923c;
    --theme-screen-header-border: #c2410c;
    --theme-screen-title: #431407;
    --theme-screen-desc: #7c2d12;
    --theme-session-bar-bg: #431407;
    --theme-session-bar-border: #7c2d12;
    --theme-session-text: #ffedd5;
    --theme-nav-bg: #9a3412;
    --theme-nav-border: #431407;
    --theme-btn-bg: #f97316;
    --theme-btn-border-hi: #fdba74;
    --theme-btn-border-lo: #c2410c;
    --theme-btn-text: #431407;
    --theme-btn-active-bg: #ea580c;
    --theme-btn-active-border-hi: #7c2d12;
    --theme-btn-active-border-lo: #fdba74;
    --theme-text-muted: #9a3412;
    --theme-text-body: #431407;
    --theme-dialer-keypad-bg: #fb923c;
    --theme-dialer-keypad-border: #c2410c;
    --theme-send-overlay-bg: #431407;
    --theme-send-paper-zone-bg: #fb8a3c;
    --theme-meta-color: #9a3412;
    --theme-accent: #ea580c;
    --theme-picker-bg: #431407;
    --theme-picker-panel-bg: #fb923c;
}

[data-fax-theme="telex"] {
    --beige-plastic: #d4af37;
    --beige-light: #f7ecc9;
    --beige-dark: #a67c00;
    --beige-shadow: #3b2f0a;
    --paper-color: #fdf9ec;
    --folder-card: #f3e6bf;
    --theme-body-bg: #3b2f0a;
    --theme-body-dot: #5c4a12;
    --theme-viewport-bg: #d4af37;
    --theme-screen-header-bg: #c9a227;
    --theme-screen-header-border: #a67c00;
    --theme-screen-title: #2a2205;
    --theme-screen-desc: #6b5410;
    --theme-session-bar-bg: #2a2205;
    --theme-session-bar-border: #5c4a12;
    --theme-session-text: #f7ecc9;
    --theme-nav-bg: #6b5410;
    --theme-nav-border: #2a2205;
    --theme-btn-bg: #d4af37;
    --theme-btn-border-hi: #f0d878;
    --theme-btn-border-lo: #a67c00;
    --theme-btn-text: #2a2205;
    --theme-btn-active-bg: #b8901f;
    --theme-btn-active-border-hi: #6b5410;
    --theme-btn-active-border-lo: #f0d878;
    --theme-text-muted: #6b5410;
    --theme-text-body: #2a2205;
    --theme-dialer-keypad-bg: #cda835;
    --theme-dialer-keypad-border: #a67c00;
    --theme-send-overlay-bg: #2a2205;
    --theme-send-paper-zone-bg: #c9a227;
    --theme-meta-color: #6b5410;
    --theme-accent: #b8860b;
    --theme-picker-bg: #2a2205;
    --theme-picker-panel-bg: #d4af37;
}

html {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    -webkit-text-size-adjust: 100%;
}

body,
.mobile-body {
    background-color: var(--theme-body-bg);
    background-image: radial-gradient(var(--theme-body-dot) 20%, transparent 20%),
                      radial-gradient(var(--theme-body-dot) 20%, transparent 20%);
    background-size: 16px 16px;
    background-position: 0 0, 8px 8px;
    font-family: 'Courier Prime', monospace;
    image-rendering: pixelated;
}

/* Mobil: fyll hele skjermen (inkl. safe area / notch) */
.mobile-body {
    position: fixed;
    inset: 0;
    margin: 0;
    padding: 0;
    width: 100%;
    max-width: 100vw;
    height: var(--app-vh, 100svh);
    min-height: -webkit-fill-available;
    overflow: hidden;
    overscroll-behavior: none;
    touch-action: manipulation;
}

.login-screen {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    height: 100dvh;
    height: 100svh;
    min-height: -webkit-fill-available;
    padding: 0;
    box-sizing: border-box;
    overflow-x: hidden;
    overflow-y: auto;
    display: flex;
    align-items: stretch;
    justify-content: center;
    background: #1e2530;
    font-family: 'Share Tech Mono', monospace;
    color: #111;
    -webkit-tap-highlight-color: transparent;
}

.login-screen ::selection {
    background: #ad2323;
    color: #fff;
}

.auth-chassis {
    position: relative;
    width: 100%;
    max-width: 400px;
    height: 100%;
    height: 100dvh;
    height: 100svh;
    min-height: -webkit-fill-available;
    max-height: 100dvh;
    max-height: 100svh;
    margin: 0 auto;
    background: #d2cab8;
    border-left: 4px solid #4e4537;
    border-right: 4px solid #4e4537;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.55);
    overflow: hidden;
    box-sizing: border-box;
}

@media (min-width: 640px) {
    .login-screen {
        align-items: center;
        padding: 16px;
        overflow-y: auto;
    }

    .auth-chassis {
        height: auto;
        min-height: 820px;
        max-height: none;
        border: 8px solid #4e4537;
        border-radius: 36px;
    }

    .auth-panel-lower {
        flex: 1 1 auto;
        justify-content: space-between;
        padding: 24px;
    }
}

.auth-chassis-notch {
    display: none;
    position: absolute;
    top: 10px;
    left: 0;
    right: 0;
    justify-content: center;
    align-items: center;
    gap: 6px;
    z-index: 40;
}

@media (min-width: 640px) {
    .auth-chassis-notch {
        display: flex;
    }
}

.auth-notch-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #1c1813;
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.5);
}

.auth-notch-slot {
    width: 56px;
    height: 6px;
    border-radius: 999px;
    background: #2d2820;
    border: 1px solid rgba(255, 255, 255, 0.05);
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.5);
}

.auth-screen {
    flex: 1 1 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    margin: 12px;
    border: 4px solid #3e362a;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.35);
    background: #3a4856;
    position: relative;
}

@media (min-width: 640px) {
    .auth-screen {
        margin: 16px;
    }
}

.auth-panel-upper {
    background: #f0ebd3;
    padding: 32px 24px 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    border-bottom: 4px solid #3e362a;
    position: relative;
}

.auth-back-link {
    align-self: flex-start;
    position: sticky;
    top: 0;
    z-index: 5;
    display: inline-flex;
    align-items: center;
    margin: 0 0 10px;
    padding: 8px 12px;
    font-family: 'Share Tech Mono', monospace;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    color: #1a1713;
    background: #c0b7a6;
    border: 3px solid #221d15;
    border-color: #eee5d5 #7a7162 #7a7162 #eee5d5;
    box-shadow: 1px 1px 0 #000;
    cursor: pointer;
    transition: transform 0.05s ease;
}

.auth-back-link:active {
    border-color: #7a7162 #eee5d5 #eee5d5 #7a7162;
    transform: translate(1px, 1px);
    box-shadow: none;
}

.auth-back-link--lower {
    position: static;
    width: 100%;
    box-sizing: border-box;
    justify-content: center;
    margin: 12px 0 0;
    padding: 10px 12px;
    font-size: 11px;
    color: #f0ebd3;
    background: #2e3a47;
    border-color: #1a2229 #4a5c6e #4a5c6e #1a2229;
}

.auth-lens {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #111;
    border: 2px solid #555;
    position: absolute;
    top: 8px;
    left: 50%;
    transform: translateX(-50%);
}

.auth-fax-art-wrap {
    display: flex;
    justify-content: center;
    margin: 8px 0 4px;
}

.auth-fax-art {
    width: 125px;
    height: auto;
}

.auth-title {
    margin: 0 0 16px;
    font-family: 'Share Tech Mono', monospace;
    font-size: 2.925rem;
    font-weight: 900;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #1a1713;
    line-height: 1;
    user-select: none;
}

.auth-form-view {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.auth-form-view.hidden {
    display: none;
}

.auth-form-hint {
    margin: 0 0 4px;
    font-family: 'Share Tech Mono', monospace;
    font-size: 10px;
    line-height: 1.4;
    color: #4e4537;
    text-align: center;
    text-transform: uppercase;
}

.auth-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
    text-align: left;
}

.auth-label {
    font-family: 'Share Tech Mono', monospace;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.15em;
    color: #2e261a;
    text-transform: uppercase;
}

.bevel-input-custom,
.auth-input {
    width: 100%;
    box-sizing: border-box;
    padding: 12px;
    background: #fbf9eb;
    border: 3px solid #221d15;
    box-shadow: inset 3px 3px 0 #5e574c, inset -1px -1px 0 #fff;
    color: #111;
    font-family: 'Share Tech Mono', monospace;
    font-size: 1rem;
    font-weight: 700;
    text-align: center;
    letter-spacing: 0.05em;
    outline: none;
    transition: background-color 0.15s ease;
}

.auth-input::placeholder {
    color: rgba(78, 69, 55, 0.5);
    text-transform: uppercase;
}

.auth-input:focus {
    background: #fffae0;
}

.auth-msg {
    margin: 0;
    font-family: 'Share Tech Mono', monospace;
    font-size: 11px;
    line-height: 1.35;
    text-transform: uppercase;
}

.auth-msg--error {
    color: #ad2323;
}

.auth-msg--ok {
    color: #2d6a4f;
}

.auth-register-actions {
    flex-shrink: 0;
    width: 100%;
    margin: 0;
    padding: 10px 12px 12px;
    box-sizing: border-box;
    background: #3a4856;
    border-top: 4px solid #3e362a;
    position: relative;
    z-index: 3;
}

.auth-register-actions.hidden {
    display: none;
}

.auth-screen--register {
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    min-height: 0;
    overflow: hidden;
}

.auth-screen--register .auth-panel-upper {
    grid-row: 1;
    flex: none;
    min-height: 0;
    max-height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    border-bottom: 0;
    padding: 12px 14px 10px;
    align-items: stretch;
}

.auth-screen--register .auth-back-link {
    position: static;
    margin-bottom: 8px;
    padding: 6px 10px;
    font-size: 9px;
}

.auth-form-view--register {
    gap: 14px;
}

.auth-form-view--register .auth-field {
    gap: 5px;
}

.auth-form-view--register .auth-label {
    font-size: 10px;
    letter-spacing: 0.1em;
}

.auth-form-view--register .auth-input {
    padding: 14px 17px;
    font-size: 0.875rem;
    line-height: 1.2;
    min-height: 67px;
    box-sizing: border-box;
}

.auth-chassis--register .auth-televerket-stamp {
    margin-bottom: max(8px, env(safe-area-inset-bottom));
}

.auth-panel-lower {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 8px;
    padding: 16px;
    background: #3a4856;
    position: relative;
}

.auth-action-zone {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 8px 0;
}

.auth-action-set {
    width: 100%;
    max-width: 280px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
}

.auth-action-set.hidden {
    display: none;
}

.auth-back-link.hidden {
    display: none;
}

.auth-bolt {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.25rem;
    color: #ffd33d;
    font-weight: 700;
    filter: drop-shadow(0 2px 0 rgba(0, 0, 0, 0.5));
    animation: auth-bolt-pulse 1.5s ease-in-out infinite;
    user-select: none;
    pointer-events: none;
}

.auth-bolt--left {
    left: 4px;
}

.auth-bolt--right {
    right: 4px;
    animation-delay: 0.2s;
}

@keyframes auth-bolt-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.55; }
}

.bevel-btn-red-custom,
.auth-btn-login {
    width: 100%;
    padding: 14px 16px;
    font-family: 'VT323', monospace;
    font-size: 1.25rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #fff;
    background: #cb2020;
    border: 3px solid #221d15;
    border-radius: 12px;
    box-shadow: inset 0 3px 0 #ff7676, inset 0 -4px 0 #4d0909;
    text-shadow: 1px 2px 0 #3c0606;
    filter: drop-shadow(0 4px 0 rgba(0, 0, 0, 0.4));
    cursor: pointer;
    transition: transform 0.05s ease;
}

.bevel-btn-red-custom:active,
.auth-btn-login:active {
    box-shadow: inset 0 2px 0 #4d0909, inset 0 -2px 0 #ff7676;
    transform: translateY(2px);
}

.auth-btn-login:disabled {
    opacity: 0.75;
    cursor: wait;
}

.auth-btn-forgot-submit {
    width: 100%;
    padding: 12px 16px;
    font-family: 'Share Tech Mono', monospace;
    font-size: 0.875rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #111;
    background: #e5b83b;
    border: 3px solid #221d15;
    border-top-color: #f7e1a0;
    border-left-color: #f7e1a0;
    border-bottom-color: #8c6d1d;
    border-right-color: #8c6d1d;
    border-radius: 12px;
    filter: drop-shadow(0 3px 0 rgba(0, 0, 0, 0.4));
    cursor: pointer;
    transition: transform 0.05s ease;
}

.auth-btn-forgot-submit:active {
    transform: translateY(2px);
}

.auth-btn-forgot-submit:disabled {
    opacity: 0.75;
    cursor: wait;
}

.auth-nav-links {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 16px 0;
    text-align: center;
}

.auth-link-row {
    margin: 0;
}

.auth-link-row.hidden {
    display: none;
}

.auth-link {
    display: inline;
    padding: 0;
    border: 0;
    background: none;
    font-family: 'Share Tech Mono', monospace;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: #ebcb5b;
    text-decoration: none;
    cursor: pointer;
    filter: drop-shadow(0 1.5px 1px rgba(0, 0, 0, 0.7));
}

.auth-link:hover {
    color: #fff;
    text-decoration: underline;
}

.auth-link--back {
    color: #fff;
}

.auth-link--back:hover {
    color: #ebcb5b;
}

.auth-link--register {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    font-size: 15px;
    letter-spacing: 0.1em;
    line-height: 1.3;
    text-decoration: none;
    animation: auth-register-text-blink 1.1s ease-in-out infinite;
}

.auth-link--register:hover {
    text-decoration: none;
}

.auth-link--register-text {
    text-transform: uppercase;
    font-size: 30px;
    line-height: 1.2;
}

.auth-register-led {
    flex-shrink: 0;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: #39ff14;
    border: 1.5px solid #1a3d12;
    box-shadow: 0 0 6px #39ff14, 0 0 12px rgba(57, 255, 20, 0.55);
    animation: auth-register-led-blink 1.1s ease-in-out infinite;
}

.auth-register-led:last-child {
    animation-delay: 0.55s;
}

@keyframes auth-register-text-blink {
    0%, 100% {
        opacity: 1;
        color: #ebcb5b;
    }
    50% {
        opacity: 0.5;
        color: #fff89a;
    }
}

@keyframes auth-register-led-blink {
    0%, 100% {
        opacity: 1;
        background: #39ff14;
        box-shadow: 0 0 8px #39ff14, 0 0 14px rgba(57, 255, 20, 0.75);
    }
    50% {
        opacity: 0.2;
        background: #1a5c12;
        box-shadow: 0 0 2px rgba(57, 255, 20, 0.3);
    }
}

@keyframes auth-register-blink {
    0%, 100% {
        background-color: #facc15;
    }
    50% {
        background-color: #fde047;
    }
}

.auth-paper-slot {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 8px;
}

.auth-paper-slot-rim {
    width: 84%;
    height: 20px;
    background: #251f18;
    border: 2.5px solid #3e362a;
    border-bottom: 3px solid #111;
    border-radius: 8px 8px 0 0;
    box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
}

.auth-paper-slot-rim::after {
    content: '';
    width: 94%;
    height: 3px;
    background: #111;
    border-radius: 999px;
}

.auth-paper-strip {
    width: 78%;
    min-height: 50px;
    background: #faf8ee;
    border: 3px solid #3e362a;
    border-top: 0;
    padding: 8px;
    text-align: center;
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.35);
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.auth-paper-strip::before,
.auth-paper-strip::after {
    content: '';
    position: absolute;
    top: 4px;
    bottom: 4px;
    width: 1px;
    background: rgba(168, 162, 158, 0.25);
}

.auth-paper-strip::before {
    left: 8px;
}

.auth-paper-strip::after {
    right: 8px;
}

.auth-paper-strip-title {
    margin: 0;
    font-family: 'Share Tech Mono', monospace;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: none;
    color: #221c15;
}

.auth-notification {
    position: absolute;
    top: 50%;
    left: 24px;
    right: 24px;
    transform: translateY(-50%);
    z-index: 50;
    background: #faf9e5;
    border: 4px double #ad2323;
    padding: 16px;
    border-radius: 4px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.55);
    text-align: center;
    animation: auth-notification-bounce 0.8s ease infinite;
}

.auth-notification.hidden {
    display: none;
}

@keyframes auth-notification-bounce {
    0%, 100% { transform: translateY(-50%); }
    50% { transform: translateY(calc(-50% - 4px)); }
}

.auth-notification-title {
    margin: 0 0 8px;
    padding-bottom: 4px;
    border-bottom: 1px solid rgba(173, 35, 35, 0.25);
    font-family: 'Share Tech Mono', monospace;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    color: #ad2323;
}

.auth-notification-msg {
    margin: 0;
    font-family: 'Share Tech Mono', monospace;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
    line-height: 1.5;
    color: #111;
}

.auth-televerket-stamp {
    flex-shrink: 0;
    text-align: center;
    font-family: 'Share Tech Mono', monospace;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: none;
    color: #4e4537;
    border: 1px solid rgba(78, 69, 55, 0.35);
    border-radius: 4px;
    background: rgba(210, 202, 184, 0.5);
    margin: 0 16px max(12px, env(safe-area-inset-bottom));
    padding: 4px 12px;
    width: fit-content;
    align-self: center;
}

/* Mobil: øvre panel ruller, rød knapp + bunntekst alltid synlig */
@media (max-width: 639px) {
    .login-screen {
        overflow: hidden;
        padding-top: env(safe-area-inset-top);
        padding-bottom: env(safe-area-inset-bottom);
        box-sizing: border-box;
    }

    .auth-chassis {
        height: 100%;
        max-height: 100%;
    }

    .auth-screen {
        margin: 8px;
    }

    .auth-panel-upper {
        flex: 1 1 0;
        min-height: 0;
        overflow-x: hidden;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        padding: 20px 16px 12px;
    }

    .auth-panel-lower {
        padding: 10px 12px 12px;
    }

    .auth-fax-art {
        width: 96px;
    }

    .auth-fax-art-wrap {
        margin: 4px 0 2px;
    }

    .auth-title {
        font-size: 2.1rem;
        margin-bottom: 10px;
    }

    .auth-form-view {
        gap: 10px;
    }

    .auth-form-hint {
        font-size: 9px;
        margin-bottom: 2px;
    }

    .bevel-input-custom,
    .auth-input {
        padding: 10px;
        font-size: 0.9375rem;
    }

    .auth-nav-links {
        margin: 6px 0;
        gap: 6px;
    }

    .auth-paper-slot {
        margin-top: 2px;
    }

    .auth-paper-strip {
        min-height: 36px;
        padding: 6px;
    }

    .auth-paper-strip-title {
        font-size: 11px;
    }

    .auth-btn-login {
        padding: 12px 14px;
        font-size: 1.125rem;
    }

    .auth-screen--register {
        margin: 6px;
    }

    .auth-chassis--register .auth-televerket-stamp {
        display: none;
    }

    .auth-screen--register .auth-panel-upper {
        padding: 10px 12px 8px;
    }

    .auth-form-view--register {
        gap: 12px;
    }

    .auth-form-view--register .auth-input {
        padding: 13px 14px;
        font-size: 0.8125rem;
        min-height: 67px;
    }

    .auth-screen--register .auth-register-actions {
        padding: 8px 10px 10px;
    }

    .auth-screen--register .auth-btn-login {
        padding: 10px 12px;
        font-size: 1rem;
    }
}

/* Legacy aliases for register page */
.auth-register-link {
    display: inline-block;
    color: #3f3a33;
    text-decoration: none;
    padding: 10px 12px;
    background-color: #c0b7a6;
    border: 3px solid;
    border-color: #eee5d5 #7a7162 #7a7162 #eee5d5;
    box-shadow: 1px 1px 0 #000;
    transition: all 0.05s ease;
    line-height: 1.4;
}

.auth-register-link:hover {
    color: #1c1917;
    background-color: #d4cbb8;
}

.auth-register-link:active {
    border-color: #7a7162 #eee5d5 #eee5d5 #7a7162;
    transform: translate(1px, 1px);
    box-shadow: none;
}

.auth-register-link--create {
    display: block;
    width: 100%;
    color: #1c1917;
    background-color: #facc15;
    border-color: #fef08a #ca8a04 #ca8a04 #fef08a;
    animation: auth-register-blink 1.1s ease-in-out infinite;
}

.auth-register-link--create:hover {
    color: #0c0a09;
    background-color: #fde047;
}

.register-success-panel {
    width: 100%;
}

.register-success-fax-block {
    margin: 8px 0 16px;
    padding: 16px 12px;
    text-align: center;
    background: #fbf9eb;
    border: 3px solid #221d15;
    box-shadow: inset 3px 3px 0 #5e574c, inset -1px -1px 0 #fff;
}

.register-success-fax-label {
    display: block;
    margin-bottom: 8px;
}

.register-success-fax-number {
    display: block;
    font-family: 'Share Tech Mono', monospace;
    font-size: 3rem;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.08em;
    color: #ad2323;
    text-shadow: 1px 2px 0 rgba(60, 6, 6, 0.15);
}

.register-success-checklist {
    list-style: none;
    padding: 0;
    margin: 0 0 16px;
    text-align: left;
    font-family: 'Share Tech Mono', monospace;
    font-size: 10px;
    line-height: 1.45;
    color: #4e4537;
    text-transform: uppercase;
}

.register-success-checklist li {
    padding-left: 1.1rem;
    position: relative;
    margin-bottom: 10px;
}

.register-success-checklist li::before {
    content: '▸';
    position: absolute;
    left: 0;
    color: #ad2323;
}

.register-success-checklist strong {
    color: #2e261a;
}

.register-success-login-btn {
    display: block;
    text-align: center;
    text-decoration: none;
}

.auth-install-help-btn {
    width: 100%;
    margin-top: 4px;
    padding: 10px 12px;
    font-family: 'Share Tech Mono', monospace;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-align: center;
    color: #1a1713;
    background: #eae5db;
    border: 3px solid #221d15;
    border-color: #eee5d5 #7a7162 #7a7162 #eee5d5;
    box-shadow: 1px 1px 0 #000;
    cursor: pointer;
    transition: transform 0.05s ease;
}

.auth-install-help-btn:active {
    border-color: #7a7162 #eee5d5 #eee5d5 #7a7162;
    transform: translate(1px, 1px);
    box-shadow: none;
}

.auth-feedback-btn {
    color: #422006;
    background: #fde047;
    border-color: #fef9c3 #ca8a04 #ca8a04 #fef9c3;
    animation: auth-feedback-blink 1.1s ease-in-out infinite;
}

.auth-feedback-btn:active {
    border-color: #ca8a04 #fef9c3 #fef9c3 #ca8a04;
}

@keyframes auth-feedback-blink {
    0%, 100% {
        opacity: 1;
        background: #fde047;
        box-shadow: 1px 1px 0 #000, 0 0 6px rgba(250, 204, 21, 0.35);
    }
    50% {
        opacity: 0.45;
        background: #facc15;
        box-shadow: 1px 1px 0 #000, 0 0 14px rgba(234, 179, 8, 0.75);
    }
}

@media (prefers-reduced-motion: reduce) {
    .auth-feedback-btn {
        animation: none;
    }
}

.auth-install-dialog-overlay {
    position: fixed;
    inset: 0;
    z-index: 200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    background: rgba(0, 0, 0, 0.55);
}

.auth-install-dialog-overlay.hidden {
    display: none;
}

.auth-install-dialog {
    width: 100%;
    max-width: 22rem;
    padding: 18px 16px 16px;
    background: #d6cebf;
    border: 4px solid #221d15;
    box-shadow:
        inset 0 0 18px rgba(0, 0, 0, 0.12),
        4px 6px 0 rgba(0, 0, 0, 0.35);
    text-align: center;
}

.auth-install-dialog-title {
    margin: 0 0 12px;
    font-family: 'Share Tech Mono', monospace;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #1a1713;
}

.auth-install-dialog-msg {
    margin: 0 0 16px;
    font-family: 'Courier Prime', monospace;
    font-size: 11px;
    line-height: 1.5;
    color: #292524;
    text-align: left;
}

.auth-install-dialog-close {
    width: 100%;
    font-size: 11px;
    padding: 10px 12px;
}

.auth-feedback-dialog {
    max-width: 26rem;
    text-align: left;
}

.auth-feedback-list {
    list-style: none;
    margin: 0 0 16px;
    padding: 0;
    max-height: min(50vh, 320px);
    overflow-y: auto;
}

.auth-feedback-item {
    padding: 10px 0;
    border-bottom: 1px solid rgba(34, 29, 21, 0.18);
}

.auth-feedback-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.auth-feedback-item:first-child {
    padding-top: 0;
}

.auth-feedback-quote {
    margin: 0 0 4px;
    font-family: 'Courier Prime', monospace;
    font-size: 11px;
    line-height: 1.45;
    color: #292524;
}

.auth-feedback-quote::before {
    content: '«';
}

.auth-feedback-quote::after {
    content: '»';
}

.auth-feedback-author {
    margin: 0;
    font-family: 'Share Tech Mono', monospace;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #5a5142;
}

.inbox-pending-notice {
    border: 2px solid #5a5142;
    background: #1a1510;
}

.inbox-pending-notice-title {
    text-shadow: 0 0 8px rgba(251, 191, 36, 0.35);
}

.start-station-settings-btn {
    flex-shrink: 0;
}

.mobile-app {
    position: fixed;
    inset: 0;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 100vw;
    height: var(--app-vh, 100svh);
    min-height: -webkit-fill-available;
    max-height: var(--app-vh, 100svh);
    margin: 0;
    overflow: hidden;
    box-sizing: border-box;
    isolation: isolate;
}

.app-session-bar {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 8px max(10px, env(safe-area-inset-right)) 8px max(10px, env(safe-area-inset-left));
    padding-top: max(8px, env(safe-area-inset-top));
    background: var(--theme-session-bar-bg);
    border-bottom: 2px solid var(--theme-session-bar-border);
    color: var(--theme-session-text);
    font-size: 11px;
}

.app-session-user {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.app-home-btn {
    flex-shrink: 0;
    background: var(--theme-btn-bg);
    border: 2px solid var(--theme-btn-border-lo);
    color: var(--theme-btn-text);
    width: 32px;
    height: 32px;
    padding: 0;
    cursor: pointer;
    font-size: 14px;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
}

.app-home-btn:active {
    transform: translate(1px, 1px);
}

.app-session-user strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 11px;
}

.app-session-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #22c55e;
    box-shadow: 0 0 6px #22c55e;
    flex-shrink: 0;
}

.app-session-actions {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

.app-inbox-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    min-width: 6.75rem;
    background: var(--theme-btn-bg);
    border: 3px solid var(--theme-btn-border-lo);
    padding: 9px 18px;
    color: var(--theme-btn-text);
    cursor: pointer;
    font-family: 'Share Tech Mono', monospace;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.03em;
}

.app-inbox-btn i {
    font-size: 16px;
}

.app-inbox-label {
    white-space: nowrap;
}

.app-logout-btn {
    padding: 9px 14px;
    min-height: 36px;
    font-size: 12px;
    letter-spacing: 0.03em;
    white-space: nowrap;
}

.app-inbox-badge {
    position: absolute;
    top: -6px;
    right: -6px;
    min-width: 24px;
    height: 24px;
    padding: 0 6px;
    border-radius: 12px;
    background: #dc2626;
    color: #fff;
    font-size: 14px;
    font-weight: bold;
    line-height: 24px;
    text-align: center;
}

.app-inbox-badge.hidden {
    display: none;
}

.app-inbox-btn--alert,
.app-session-actions button.app-inbox-btn.app-inbox-btn--alert {
    background-color: #dc2626 !important;
    animation: inbox-alert-blink 0.45s ease-in-out infinite alternate !important;
    border-color: #7f1d1d !important;
    color: #fff !important;
    position: relative;
    z-index: 1;
}

.app-inbox-btn--alert::before,
.app-session-actions button.app-inbox-btn.app-inbox-btn--alert::before {
    content: '';
    position: absolute;
    inset: -4px;
    border-radius: 2px;
    border: 2px solid #fca5a5;
    animation: inbox-alert-ring 0.9s ease-in-out infinite;
    pointer-events: none;
}

.app-inbox-btn--alert i,
.app-inbox-btn--alert .app-inbox-label,
.app-session-actions button.app-inbox-btn.app-inbox-btn--alert i,
.app-session-actions button.app-inbox-btn.app-inbox-btn--alert .app-inbox-label {
    color: #fff !important;
    position: relative;
    z-index: 1;
}

.app-inbox-btn--alert .app-inbox-badge,
.app-session-actions button.app-inbox-btn.app-inbox-btn--alert .app-inbox-badge {
    animation: inbox-badge-pulse 0.45s ease-in-out infinite alternate;
    background: #fff !important;
    color: #dc2626 !important;
    border: 2px solid #7f1d1d;
    display: block !important;
    z-index: 2;
}

.app-session-bar--fax-alert {
    box-shadow: inset 0 -4px 0 #ef4444;
    animation: session-fax-alert-bar 1.2s ease-in-out infinite alternate;
}

@keyframes inbox-alert-ring {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.35; transform: scale(1.06); }
}

@keyframes session-fax-alert-bar {
    from { box-shadow: inset 0 -4px 0 #b91c1c; }
    to { box-shadow: inset 0 -4px 0 #f87171; }
}

@keyframes inbox-alert-blink {
    from {
        background-color: #991b1b !important;
        box-shadow: 0 0 0 2px #fca5a5, 0 0 14px rgba(239, 68, 68, 0.9);
    }
    to {
        background-color: #ef4444 !important;
        box-shadow: 0 0 0 3px #fecaca, 0 0 24px rgba(239, 68, 68, 1);
    }
}

@keyframes inbox-badge-pulse {
    from { transform: scale(1); }
    to { transform: scale(1.12); }
}

.app-main-nav {
    flex-shrink: 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 3px;
    padding: 6px 8px;
    background: var(--theme-nav-bg);
    border-bottom: 3px solid var(--theme-nav-border);
}

.app-nav-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    padding: 8px 4px;
    min-height: 52px;
    background: var(--theme-btn-bg);
    border: 2px solid;
    border-color: var(--theme-btn-border-hi) var(--theme-btn-border-lo) var(--theme-btn-border-lo) var(--theme-btn-border-hi);
    color: var(--theme-btn-text);
    font-family: 'Courier Prime', monospace;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: background 0.1s, transform 0.05s;
}

.app-nav-btn i {
    font-size: 16px;
}

.app-nav-btn.active {
    background: var(--theme-btn-active-bg);
    border-color: var(--theme-btn-active-border-hi) var(--theme-btn-active-border-lo) var(--theme-btn-active-border-lo) var(--theme-btn-active-border-hi);
    box-shadow: inset 1px 1px 4px rgba(0, 0, 0, 0.35);
    color: var(--theme-btn-text);
}

.app-nav-btn:active {
    transform: translate(1px, 1px);
}

.app-screen-viewport {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    margin: 0;
    overflow: hidden;
    background-color: var(--theme-viewport-bg);
}

.app-screen {
    display: none;
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

.app-screen.is-active {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    grid-template-columns: 1fr;
    height: 100%;
}

#screenStart.app-screen.is-active {
    grid-template-rows: minmax(0, 1fr);
}

.app-screen-header {
    grid-row: 1;
    flex-shrink: 0;
    padding: 10px 12px 8px;
    border-bottom: 2px solid var(--theme-screen-header-border);
    background: var(--theme-screen-header-bg);
}

.app-screen-header--compact {
    padding: 8px 10px 6px;
}

.app-screen-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--theme-screen-title);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 4px;
}

.app-screen-desc {
    font-size: 10px;
    color: var(--theme-screen-desc);
    font-family: 'Courier Prime', monospace;
}

#screenKartotek .app-screen-title {
    text-transform: none;
}

#screenDialer .app-screen-desc {
    font-size: calc(10px * 1.3);
}

#screenSend .app-screen-header--compact .app-screen-title {
    font-size: calc(13px * 1.3);
}

#screenSend .app-screen-header--compact .send-header-paper-meta {
    font-size: calc(10px * 1.3);
}

#screenSend .app-screen-header--compact .btn-reload-paper {
    font-size: calc(11px * 1.3);
}

#screenSend .app-screen-header--compact .btn-reload-paper i {
    font-size: calc(14px * 1.3);
}

#telefaxDestIdSend {
    font-size: calc(10px * 1.5);
}

/* SKRIV-fanen: 125 % av standard (50 % + 50 % til) */
.app-screen--compose .app-screen-title {
    font-size: 29.25px;
}

.app-screen--compose .compose-meta-text {
    font-size: 22.5px;
}

.app-screen--compose .compose-textarea {
    font-size: 43.2px;
    line-height: 1.5;
}

.app-screen--compose .compose-goto-send-btn {
    font-size: 18px;
    padding: 12px 16px;
    min-height: 54px;
    letter-spacing: 0.04em;
}

.compose-attach-row {
    border-top: 1px dotted #d4cca9;
    padding-top: 0.5rem;
}

.compose-attach-link {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0;
    border: 0;
    background: none;
    color: #44403c;
    font-family: 'Share Tech Mono', monospace;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.compose-attach-link:hover {
    color: #1c1917;
}

.compose-attach-link:active {
    opacity: 0.75;
}

.compose-attach-icon {
    font-size: 1.1rem;
    color: #1c1917;
    text-decoration: none;
}

.compose-floppy-icon {
    width: 1.35rem;
    height: 1.35rem;
    flex-shrink: 0;
    display: block;
}

.compose-attach-label {
    text-transform: none;
}

.compose-image-preview {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.compose-image-preview-img {
    width: 44px;
    height: 44px;
    object-fit: cover;
    border: 2px solid #1c1917;
    image-rendering: pixelated;
    filter: contrast(1.15);
    background: #fff;
}

.compose-image-remove {
    width: 22px;
    height: 22px;
    border: 1px solid #a8a29e;
    background: #f5f0e6;
    color: #7f1d1d;
    font-size: 10px;
    line-height: 1;
    cursor: pointer;
}

.compose-image-status {
    flex: 1;
    min-width: 0;
    text-transform: uppercase;
}

.dialer-recipients {
    background: #c6beaf;
    border: 2px solid #a49a88;
    border-radius: 2px;
    padding: 0.5rem 0.6rem;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15);
}

.dialer-keypad {
    flex: 1 1 0;
    min-height: 0;
    grid-template-rows: repeat(4, minmax(0, 1fr));
    gap: calc(0.5rem * 0.65);
    padding: calc(0.5rem * 0.65);
    align-content: stretch;
    overflow: hidden;
}

.dialer-keypad .btn-retro {
    min-height: 0;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.2rem 0.35rem;
}

.dialer-keypad .btn-retro.text-xl {
    font-size: clamp(0.95rem, 4.2vw, 1.1rem);
}

.dialer-keypad .btn-retro.text-sm {
    font-size: clamp(0.65rem, 2.8vw, 0.75rem);
}

#screenDialer .app-screen-body {
    overflow: hidden;
    gap: 8px;
    padding: 8px 12px;
}

#screenDialer .lcd-display {
    padding: 10px 12px;
    flex-shrink: 0;
}

#screenDialer #dialNumberDisplay {
    font-size: clamp(1.35rem, 6.5vw, 1.75rem);
}

#screenDialer .dialer-recipients {
    flex-shrink: 0;
    max-height: min(18svh, 88px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.recipient-add-btn {
    display: inline-flex;
    align-items: center;
    gap: calc(0.35rem * 1.4);
    padding: calc(0.3rem * 1.4) calc(0.55rem * 1.4);
    border: 2px solid #92400e;
    background: linear-gradient(180deg, #f59e0b 0%, #b45309 100%);
    color: #1c1917;
    font-family: 'Share Tech Mono', monospace;
    font-size: calc(10px * 1.4);
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: none;
    cursor: pointer;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 2px 0 #78350f;
}

.recipient-add-btn:active:not(:disabled) {
    transform: translateY(1px);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4);
}

.recipient-chip-list {
    min-height: 1.5rem;
}

.recipient-empty-hint {
    font-family: 'Share Tech Mono', monospace;
    font-size: calc(9px * 1.3);
    color: #6b6457;
    font-style: italic;
}

.recipient-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.2rem 0.2rem 0.2rem 0.45rem;
    background: #1c1917;
    color: #f5f0e6;
    border: 1px solid #44403c;
    border-radius: 2px;
    font-family: 'Share Tech Mono', monospace;
    font-size: 10px;
    font-weight: 700;
}

.recipient-chip-text {
    white-space: nowrap;
}

.recipient-chip-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    border: none;
    background: #7f1d1d;
    color: #fef2f2;
    font-size: 9px;
    line-height: 1;
    cursor: pointer;
    border-radius: 1px;
}

.recipient-chip-remove:active {
    transform: translateY(1px);
}

.fax-image-frame {
    margin: 0 0 0.75rem;
    padding: 4px;
    border: 3px double #1c1917;
    background:
        linear-gradient(90deg, #d6d3d1 1px, transparent 1px) 0 0 / 8px 8px,
        linear-gradient(#d6d3d1 1px, transparent 1px) 0 0 / 8px 8px,
        #fafaf9;
    box-shadow: inset 0 0 0 1px #78716c, 2px 2px 0 rgba(0, 0, 0, 0.12);
}

.fax-image-pixel {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    image-rendering: pixelated;
    image-rendering: crisp-edges;
    filter: contrast(1.2);
    background: #fff;
}

.fax-sheet-text + .fax-image-frame,
.fax-image-frame + .fax-sheet-text {
    margin-top: 0.5rem;
}

.fax-sheet-text--placeholder {
    color: #78716c;
    font-style: italic;
}

.app-screen--compose .compose-goto-send-btn i {
    font-size: 18px;
}

/* Innboks: handlingsknapper 50 % større */
.inbox-action-btn,
.inbox-toolbar-chip {
    font-size: 15px;
    padding: 6px 12px;
    min-height: 39px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-weight: 700;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    border-radius: 0.125rem;
    background-color: rgba(68, 64, 60, 0.9);
    color: rgb(231, 229, 228);
    border: none;
    box-sizing: border-box;
    white-space: nowrap;
}

.inbox-action-btn {
    cursor: pointer;
}

.inbox-action-btn i {
    font-size: 18px;
}

.inbox-toolbar {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
    width: 100%;
    box-sizing: border-box;
}

.inbox-toolbar-chip {
    order: -1;
    flex: 1 1 100%;
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    box-sizing: border-box;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.inbox-toolbar .inbox-action-btn {
    flex: 1 1 0;
    min-width: 0;
}

.app-screen-body {
    grid-row: 2;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
}

#screenStart .app-screen-body {
    grid-row: 1;
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    grid-template-columns: 1fr;
    overflow: hidden;
    min-height: 0;
    height: 100%;
    align-content: stretch;
    padding: 8px 10px max(8px, env(safe-area-inset-bottom));
}

#screenDialer .app-screen-body,
#screenKartotek .app-screen-body,
#screenCompose .app-screen-body,
#screenSend .app-screen-body,
#screenInbox .app-screen-body,
#screenFaxbruker .app-screen-body {
    overflow: hidden;
}

#screenSettings .app-screen-body {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 12px;
    box-sizing: border-box;
}

.start-screen-body {
    align-items: stretch;
    gap: 0;
    overflow: hidden;
    min-height: 0;
}

.start-screen-chrome {
    grid-row: 2;
    flex-shrink: 0;
    width: 100%;
    max-width: 571px;
    margin-inline: auto;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
}

#screenStart .start-jitfl-scene {
    grid-row: 1;
    min-height: 0;
    height: 70%;
    max-height: 70%;
    align-self: start;
}

.start-jitfl-scene {
    position: relative;
    width: 100%;
    max-width: 571px;
    margin-inline: auto;
    min-height: 0;
    height: 100%;
    box-sizing: border-box;
    display: grid;
    grid-template-rows: minmax(0, 1fr);
    grid-template-columns: 1fr;
    border: 5px solid #1a1814;
    box-shadow: 5px 12px 0 rgba(0, 0, 0, 0.35);
    overflow: hidden;
    container-type: size;
}

.start-jitfl-scene .jitfl-room-bg {
    position: absolute;
    inset: 0;
}

.start-jitfl-machine-wrap {
    position: relative;
    z-index: 2;
    grid-row: 1;
    width: 100%;
    min-height: 0;
    height: 100%;
    display: grid;
    grid-template-rows: minmax(0, 1fr);
    overflow: hidden;
    box-sizing: border-box;
}

.start-jitfl-machine-wrap .start-jitfl-machine {
    grid-row: 1;
    width: 100%;
    min-height: 0;
    height: 100%;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    grid-template-columns: 1fr;
    overflow: hidden;
}

.start-jitfl-machine-wrap .start-jitfl-machine .jitfl-machine-bezel {
    grid-row: 1;
    min-height: 0;
}

.start-jitfl-machine-wrap .start-jitfl-machine .jitfl-chassis-body {
    grid-row: 2;
    min-height: 0;
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    grid-template-columns: 1fr;
    overflow: hidden;
}

.app-screen-body--center {
    display: flex;
    flex-direction: column;
}

.start-switch-fax-btn,
.start-incoming-link,
.start-station-settings-btn,
#screenStart .pwa-setup-banner {
    flex-shrink: 0;
    width: 100%;
    max-width: none;
}

#startScreenChrome .start-station-settings-btn {
    width: auto;
    max-width: 240px;
    margin-inline: auto;
    padding-top: 5px;
    padding-bottom: 5px;
    font-size: 8px;
    letter-spacing: 0.04em;
    opacity: 0.6;
    border-width: 2px;
    box-shadow: none;
}

#startScreenChrome .start-station-settings-btn:hover {
    opacity: 0.85;
}

.start-jitfl-scene .jitfl-lcd {
    flex: 0 0 auto;
    min-width: 0;
    width: 100%;
    max-width: 100%;
    min-height: 0;
    height: auto;
    padding: 6px 8px;
    justify-content: center;
    overflow: hidden;
    box-sizing: border-box;
}

.start-jitfl-scene .jitfl-lcd-text {
    display: grid;
    grid-template-areas: "word";
    grid-template-columns: 1fr;
    place-items: center;
    font-size: clamp(1.6rem, 8.5vw, 3rem);
    line-height: 1.05;
    letter-spacing: 0.12em;
    text-align: center;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    word-break: keep-all;
    overflow-wrap: normal;
}

.start-jitfl-scene .jitfl-lcd-word {
    grid-area: word;
    font-size: inherit;
    white-space: nowrap;
}

/* De to ordene blinker annenhver gang (FaxChat, så maskinnavnet) */
.start-jitfl-scene .jitfl-lcd-word--a {
    animation: start-jitfl-word-a 2.4s ease-in-out infinite;
}

.start-jitfl-scene .jitfl-lcd-word--b {
    animation: start-jitfl-word-b 2.4s ease-in-out infinite;
}

@keyframes start-jitfl-word-a {
    0%, 44%   { opacity: 1; }
    50%, 94%  { opacity: 0; }
    100%      { opacity: 1; }
}

@keyframes start-jitfl-word-b {
    0%, 44%   { opacity: 0; }
    50%, 94%  { opacity: 1; }
    100%      { opacity: 0; }
}

.start-jitfl-scene .jitfl-brand,
.start-jitfl-brand {
    grid-row: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 0;
    height: 100%;
    margin: 0;
    text-align: center;
    overflow: hidden;
}

.start-jitfl-fax-machine-img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    min-height: 0;
    margin-inline: auto;
    object-fit: contain;
    object-position: center center;
    image-rendering: pixelated;
    image-rendering: crisp-edges;
}

.start-jitfl-televerket-caption {
    font-family: 'VT323', monospace;
    font-size: clamp(0.95rem, 3.8vw, 1.15rem);
    color: #44403c;
    letter-spacing: 0.04em;
    line-height: 1.15;
    margin: 0;
    text-align: center;
}

.start-jitfl-scene .jitfl-led {
    width: clamp(14px, 4vw, 26px);
    height: clamp(14px, 4vw, 26px);
    border-width: 2px;
}

.start-jitfl-scene .jitfl-leds {
    gap: clamp(5px, 1.8vw, 10px);
    flex: 0 0 100%;
    width: 100%;
    margin-left: 0;
    justify-content: center;
}

.start-jitfl-scene .jitfl-led--green.lit {
    box-shadow: 0 0 18px #00ff00, 0 0 30px rgba(0, 255, 0, 0.45), inset 0 0 6px #fff;
}

.start-jitfl-scene .jitfl-led--yellow.lit {
    box-shadow: 0 0 18px #facc15, 0 0 30px rgba(250, 204, 21, 0.5), inset 0 0 6px #fff;
}

.start-jitfl-scene .jitfl-led--red.lit {
    box-shadow: 0 0 18px #ff2d2d, 0 0 30px rgba(255, 45, 45, 0.5), inset 0 0 6px #fff;
}

/* Alle seks lysene blinker i et tilsynelatende tilfeldig mønster:
   ulike (ikke-harmoniske) varigheter og negative forsinkelser gjør at
   de aldri synkroniserer, uansett farge. */
.start-jitfl-scene .jitfl-leds .jitfl-led.lit {
    animation-name: start-jitfl-led-flicker;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out;
    animation-direction: alternate;
}

.start-jitfl-scene .jitfl-leds .jitfl-led:nth-child(1) { animation-duration: 0.7s;  animation-delay: -0.20s; }
.start-jitfl-scene .jitfl-leds .jitfl-led:nth-child(2) { animation-duration: 1.3s;  animation-delay: -0.90s; }
.start-jitfl-scene .jitfl-leds .jitfl-led:nth-child(3) { animation-duration: 0.5s;  animation-delay: -0.35s; }
.start-jitfl-scene .jitfl-leds .jitfl-led:nth-child(4) { animation-duration: 1.1s;  animation-delay: -0.55s; }
.start-jitfl-scene .jitfl-leds .jitfl-led:nth-child(5) { animation-duration: 0.9s;  animation-delay: -0.15s; }
.start-jitfl-scene .jitfl-leds .jitfl-led:nth-child(6) { animation-duration: 1.7s;  animation-delay: -1.10s; }
.start-jitfl-scene .jitfl-leds .jitfl-led:nth-child(7) { animation-duration: 0.8s;  animation-delay: -0.65s; }
.start-jitfl-scene .jitfl-leds .jitfl-led:nth-child(8) { animation-duration: 1.5s;  animation-delay: -0.40s; }

@keyframes start-jitfl-led-flicker {
    0%   { opacity: 1; }
    100% { opacity: 0.12; }
}

.start-jitfl-scene .jitfl-machine-bezel {
    padding: 8px 10px;
    gap: 6px;
    align-items: stretch;
}

.start-jitfl-scene .jitfl-chassis-body {
    padding: 4px 8px 0;
}

.start-jitfl-machine {
    animation: none;
}

.start-jitfl-fax-machine-img {
    animation: start-jitfl-idle-hum 2.8s ease-in-out infinite;
}

.start-jitfl-scene.start-fax--incoming {
    animation: start-jitfl-incoming-blink 1.1s ease-in-out infinite alternate;
}

.start-jitfl-scene.start-fax--incoming .start-jitfl-fax-machine-img {
    animation:
        start-jitfl-idle-hum 2.8s ease-in-out infinite,
        jitfl-machine-rumble 0.18s steps(2) infinite;
}

@keyframes start-jitfl-idle-hum {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-2px); }
}

@keyframes start-jitfl-incoming-blink {
    from {
        box-shadow: 5px 12px 0 rgba(0, 0, 0, 0.35), 0 0 0 rgba(245, 158, 11, 0);
    }
    to {
        box-shadow:
            5px 12px 0 rgba(0, 0, 0, 0.35),
            0 0 34px rgba(245, 158, 11, 0.55),
            inset 0 0 24px rgba(251, 191, 36, 0.12);
    }
}

.start-jitfl-output-slot {
    grid-row: 2;
    position: relative;
    min-height: 0;
    height: clamp(2rem, 11cqh, 3rem);
    margin-top: 0;
    background: linear-gradient(180deg, #0d0c0a 0%, #2a2620 45%, #0d0c0a 100%);
    border: 4px inset #0d0c0a;
    overflow: hidden;
    box-sizing: border-box;
}

.start-jitfl-slot-glow {
    position: absolute;
    inset: 4px;
    z-index: 1;
    border-radius: 1px;
    pointer-events: none;
    animation: start-fax-slot-blink 1.15s ease-in-out infinite alternate;
}

@keyframes start-fax-slot-blink {
    from {
        background: rgba(34, 197, 94, 0.28);
        box-shadow: inset 0 0 16px rgba(34, 197, 94, 0.55), 0 0 8px rgba(34, 197, 94, 0.35);
    }
    to {
        background: rgba(250, 204, 21, 0.28);
        box-shadow: inset 0 0 16px rgba(250, 204, 21, 0.55), 0 0 8px rgba(234, 179, 8, 0.35);
    }
}

.start-jitfl-status-strip {
    display: none;
}

.start-jitfl-status-strip span {
    flex: 1;
    height: clamp(8px, 2vh, 12px);
    min-width: 0;
    border: 1px solid #1a1814;
    background: #57534e;
    animation: start-fax-status-blink 1.1s ease-in-out infinite alternate;
}

.start-jitfl-status-strip span:nth-child(1) { animation-delay: 0s; }
.start-jitfl-status-strip span:nth-child(2) { animation-delay: 0.08s; }
.start-jitfl-status-strip span:nth-child(3) { animation-delay: 0.16s; }
.start-jitfl-status-strip span:nth-child(4) { animation-delay: 0.24s; }
.start-jitfl-status-strip span:nth-child(5) { animation-delay: 0.32s; }
.start-jitfl-status-strip span:nth-child(6) { animation-delay: 0.4s; }
.start-jitfl-status-strip span:nth-child(7) { animation-delay: 0.48s; }
.start-jitfl-status-strip span:nth-child(8) { animation-delay: 0.56s; }
.start-jitfl-status-strip span:nth-child(9) { animation-delay: 0.64s; }
.start-jitfl-status-strip span:nth-child(10) { animation-delay: 0.72s; }
.start-jitfl-status-strip span:nth-child(11) { animation-delay: 0.8s; }
.start-jitfl-status-strip span:nth-child(12) { animation-delay: 0.88s; }
.start-jitfl-status-strip span:nth-child(13) { animation-delay: 0.96s; }
.start-jitfl-status-strip span:nth-child(14) { animation-delay: 1.04s; }

@keyframes start-fax-status-blink {
    from {
        background: #22c55e;
        box-shadow: 0 0 5px #22c55e, inset 0 0 3px rgba(255, 255, 255, 0.35);
    }
    to {
        background: #eab308;
        box-shadow: 0 0 5px #facc15, inset 0 0 2px rgba(0, 0, 0, 0.25);
    }
}

.start-jitfl-output-rim {
    position: absolute;
    inset: 0;
    z-index: 3;
    border-top: 2px solid rgba(255, 255, 255, 0.08);
    pointer-events: none;
}

.start-jitfl-output-ticker {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    overflow: hidden;
}

.start-jitfl-ticker-track {
    display: flex;
    flex-shrink: 0;
    animation: start-jitfl-ticker-scroll 8s linear infinite;
}

.start-jitfl-ticker-text {
    flex-shrink: 0;
    padding: 0 1.5rem;
    font-family: 'VT323', monospace;
    font-size: clamp(0.95rem, 4.5cqw, 1.25rem);
    color: #e7e5e4;
    letter-spacing: 0.08em;
    white-space: nowrap;
    text-shadow: 0 0 6px rgba(255, 255, 255, 0.35);
    animation: start-jitfl-ticker-blink 0.9s ease-in-out infinite alternate;
}

@keyframes start-jitfl-ticker-scroll {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

@keyframes start-jitfl-ticker-blink {
    from { opacity: 1; }
    to { opacity: 0.25; }
}

.start-switch-fax-btn,
.start-incoming-link {
    font-family: 'Courier Prime', monospace;
    font-size: clamp(0.85rem, 3.5vw, 1rem);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--theme-btn-text);
    background: var(--theme-btn-bg);
    border: 3px solid var(--theme-btn-border-lo);
    padding: 14px 18px;
    cursor: pointer;
    text-align: center;
    max-width: 320px;
    width: 100%;
    margin-inline: auto;
    box-shadow: 2px 2px 0 #000;
}

.start-switch-fax-btn:active,
.start-incoming-link:active {
    transform: translate(1px, 1px);
    box-shadow: none;
}

.start-switch-fax-btn.hidden,
.start-incoming-link.hidden {
    display: none;
}

.start-incoming-link--active {
    color: #92400e;
    border-color: #d97706;
    animation: start-link-gentle-pulse 2.6s ease-in-out infinite alternate;
}

.fax-machine-picker {
    position: fixed;
    inset: 0;
    z-index: 95;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    background: rgba(0, 0, 0, 0.72);
}

.fax-machine-picker.hidden {
    display: none;
}

.fax-machine-picker-panel {
    width: min(100%, 520px);
    max-height: min(calc(100dvh - 32px), 720px);
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 16px;
    box-sizing: border-box;
    overflow: hidden;
    background: var(--theme-picker-panel-bg);
    border: 4px solid var(--theme-nav-border);
    box-shadow: 6px 6px 0 rgba(0, 0, 0, 0.45);
}

.fax-machine-picker-title,
.fax-machine-picker-label,
.fax-machine-picker-counter {
    font-family: 'Share Tech Mono', monospace;
    text-align: center;
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.fax-machine-picker-title {
    font-size: clamp(1rem, 4vw, 1.2rem);
    color: var(--theme-screen-title);
}

.fax-machine-picker-label {
    font-size: clamp(0.85rem, 3.5vw, 1rem);
    color: var(--theme-text-body);
}

.fax-machine-picker-counter {
    font-size: 0.8rem;
    color: var(--theme-text-muted);
}

.fax-machine-picker-viewport {
    flex: 0 0 auto;
    width: 100%;
    height: clamp(160px, 34vh, 240px);
    max-height: 240px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px;
    box-sizing: border-box;
    overflow: hidden;
    background: var(--theme-btn-bg);
    border: 3px solid var(--theme-btn-border-lo);
    touch-action: pan-y;
}

.fax-machine-picker-img {
    display: block;
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    object-position: center;
    image-rendering: pixelated;
    image-rendering: crisp-edges;
}

.fax-machine-picker-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
}

.fax-machine-picker-dots span {
    width: 10px;
    height: 10px;
    border: 2px solid #57534e;
    background: #a8a29e;
}

.fax-machine-picker-dots span.is-active {
    background: #44403c;
    box-shadow: 0 0 0 1px #1c1917;
}

.fax-machine-picker-specs {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3px;
    margin: 0;
    padding: 8px 10px;
    border: 2px solid var(--theme-btn-border-lo);
    background: rgba(0, 0, 0, 0.06);
    font-family: 'Courier Prime', monospace;
}

.fax-machine-picker-spec {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 10px;
    font-size: clamp(0.72rem, 3vw, 0.85rem);
}

.fax-machine-picker-spec dt {
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    font-weight: 700;
    color: var(--theme-text-muted);
}

.fax-machine-picker-spec dd {
    margin: 0;
    text-align: right;
    font-weight: 700;
    color: var(--theme-text-body);
}

.fax-machine-picker-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.fax-machine-picker-nav,
.fax-machine-picker-select,
.fax-machine-picker-cancel {
    font-family: 'Courier Prime', monospace;
    font-size: clamp(0.75rem, 3vw, 0.9rem);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 12px 10px;
    border: 3px solid #7a7162;
    cursor: pointer;
}

.fax-machine-picker-nav {
    background: var(--theme-btn-bg);
    color: var(--theme-btn-text);
}

#faxMachinePickerNext {
    grid-column: 1 / -1;
}

.fax-machine-picker-nav.hidden {
    visibility: hidden;
    pointer-events: none;
}

.fax-machine-picker-select {
    grid-column: 1 / -1;
    background: #166534;
    color: #ecfdf5;
    border-color: #14532d;
    box-shadow: 2px 2px 0 #000;
}

.fax-machine-picker-cancel {
    grid-column: 1 / -1;
    background: #78716c;
    color: #fafaf9;
    border-color: #57534e;
}

.fax-machine-picker-nav:active,
.fax-machine-picker-select:active,
.fax-machine-picker-cancel:active {
    transform: translate(1px, 1px);
    box-shadow: none;
}

.pwa-setup-banner {
    width: 100%;
    max-width: 320px;
    margin-top: 10px;
    padding: 12px 14px;
    background: #1a1510;
    border: 2px solid #5a5142;
    box-shadow: inset 0 0 0 1px rgba(251, 191, 36, 0.15), 2px 2px 0 #000;
    text-align: left;
}

.pwa-setup-banner--warn {
    border-color: #92400e;
}

.pwa-setup-banner.hidden {
    display: none;
}

.pwa-setup-banner-title {
    font-family: 'Share Tech Mono', monospace;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #fbbf24;
    margin: 0 0 6px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.pwa-setup-banner-text {
    font-family: 'Courier Prime', monospace;
    font-size: 11px;
    line-height: 1.45;
    color: #d6d3d1;
    margin: 0 0 10px;
}

.pwa-setup-banner-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.pwa-setup-btn {
    flex: 1;
    min-width: 120px;
    padding: 8px 10px;
    border: 2px solid #78716c;
    background: #44403c;
    color: #f5f5f4;
    font-family: 'Share Tech Mono', monospace;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    cursor: pointer;
}

.pwa-setup-btn--primary {
    border-color: #b45309;
    background: linear-gradient(180deg, #f59e0b 0%, #b45309 100%);
    color: #1c1917;
}

.pwa-setup-btn:active {
    transform: translateY(1px);
}

.pwa-setup-btn:disabled {
    cursor: not-allowed;
}

@keyframes start-link-gentle-pulse {
    from {
        background: #fde68a;
        box-shadow: 2px 2px 0 #000, 0 0 0 rgba(245, 158, 11, 0);
    }
    to {
        background: #fcd34d;
        box-shadow: 2px 2px 0 #000, 0 0 14px rgba(245, 158, 11, 0.35);
    }
}

.app-screen-body--send {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 0;
}

.app-kartotek-full {
    min-height: 0;
    flex: 1;
}

/* Katalog: kort fyller halve skjermen */
.kartotek-card-container {
    height: 50dvh;
    height: 50vh;
    min-height: 50dvh;
    max-height: 50dvh;
}

.kartotek-card--catalog {
    width: 92%;
    max-width: 100%;
    min-height: 48dvh;
    min-height: 48vh;
    height: 48dvh;
    height: 48vh;
    padding: 12px 16px 16px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-sizing: border-box;
}

.kartotek-card--catalog .kartotek-card-meta {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-shrink: 0;
    gap: 8px;
}

.kartotek-card--catalog .kartotek-card-label {
    background: #9e937d;
    color: #f5f5f4;
    padding: 4px 8px;
    font-size: clamp(10px, 2.5vw, 12px);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.kartotek-card--catalog .kartotek-card-own {
    font-size: clamp(9px, 2.2vw, 11px);
    font-weight: 700;
    color: #2b251f;
}

.kartotek-card-main {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 0;
    padding: 8px 4px;
    text-align: center;
}

.kartotek-card-name {
    font-size: clamp(2rem, 12vw, 3.75rem);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #1c1917;
    word-break: break-word;
    hyphens: auto;
}

.kartotek-card-desc {
    margin-top: 10px;
    font-size: clamp(11px, 3.2vw, 14px);
    color: #57534e;
    text-transform: uppercase;
    line-height: 1.35;
    max-width: 95%;
}

.kartotek-card-station {
    flex-shrink: 0;
    align-self: center;
    background: #1c1917;
    color: #facc15;
    font-size: clamp(1.25rem, 6vw, 2rem);
    font-weight: 800;
    padding: 8px 20px;
    letter-spacing: 0.12em;
}

.app-screen-footer {
    grid-row: 3;
    flex-shrink: 0;
    display: flex;
    gap: 8px;
    padding: 10px 12px;
    padding-bottom: max(10px, env(safe-area-inset-bottom));
    border-top: 2px solid #9e9584;
    background: #b8b0a1;
    align-items: center;
    position: relative;
    z-index: 2;
}

/* Faxmaskin: 50 % av skjermhøyde, samme bredde ved send */
.fax-machine-slot {
    width: 100%;
    max-width: 100%;
    height: 50dvh;
    height: 50vh;
    max-height: 50dvh;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    margin: 0 auto;
}

.fax-machine-slot--overlay {
    flex-shrink: 0;
}

.fax-machine-animated {
    position: relative;
    width: 100%;
    height: 100%;
    max-width: 100%;
    line-height: 0;
    filter: drop-shadow(0 10px 22px rgba(0, 0, 0, 0.45));
    animation: fax-machine-idle-hum 2.8s ease-in-out infinite;
}

.fax-machine-animated--tx,
.fax-machine-animated.fax-machine-animated--tx {
    animation: fax-machine-tx-vibrate 0.12s steps(2) infinite;
}

@keyframes fax-machine-idle-hum {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-1px); }
}

@keyframes fax-machine-tx-vibrate {
    0% { transform: translate(0, 0); }
    50% { transform: translate(-1px, 1px); }
    100% { transform: translate(1px, 0); }
}

.fax-machine-animated .fax-machine-photo {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    object-fit: contain;
    object-position: center center;
}

.fax-anim-lcd-flicker {
    position: absolute;
    top: 11%;
    left: 52%;
    width: 22%;
    height: 7%;
    background: rgba(20, 30, 20, 0.85);
    box-shadow: inset 0 0 8px rgba(57, 255, 20, 0.15);
    animation: fax-lcd-flicker 3s steps(4) infinite;
    pointer-events: none;
    z-index: 2;
}

@keyframes fax-lcd-flicker {
    0%, 88%, 100% { opacity: 0.92; }
    90% { opacity: 0.65; }
    94% { opacity: 1; }
}

.fax-anim-status-bar {
    position: absolute;
    top: 11.5%;
    left: 53%;
    width: 18%;
    height: 2px;
    background: #39ff14;
    box-shadow: 0 0 6px #39ff14;
    animation: fax-status-scan 2s linear infinite;
    z-index: 3;
    pointer-events: none;
}

@keyframes fax-status-scan {
    0% { transform: scaleX(0.2); opacity: 0.5; }
    50% { transform: scaleX(1); opacity: 1; }
    100% { transform: scaleX(0.2); opacity: 0.5; }
}

.fax-anim-motor-glow {
    position: absolute;
    left: 35%;
    right: 5%;
    top: 44%;
    height: 20%;
    background: radial-gradient(ellipse at center, rgba(255, 120, 0, 0.06) 0%, transparent 70%);
    opacity: 0;
    pointer-events: none;
    z-index: 1;
}

.fax-machine-animated--tx .fax-anim-motor-glow,
.fax-machine-animated.fax-machine-animated--tx .fax-anim-motor-glow {
    opacity: 1;
    animation: fax-motor-glow-pulse 0.5s ease-in-out infinite alternate;
}

@keyframes fax-motor-glow-pulse {
    from { opacity: 0.4; }
    to { opacity: 1; }
}

.fax-anim-green-pulse.lit,
.fax-send-green-btn.lit {
    animation: fax-green-pulse 0.45s ease-in-out infinite alternate;
}

.fax-machine-animated--idle .fax-send-green-btn {
    animation: fax-green-standby 2.5s ease-in-out infinite;
}

@keyframes fax-green-standby {
    0%, 70%, 100% {
        background: rgba(40, 160, 60, 0.25);
        box-shadow: none;
    }
    85% {
        background: rgba(60, 200, 80, 0.45);
        box-shadow: 0 0 8px #33ff55;
    }
}

#screenInbox .app-screen-body {
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
    padding-bottom: 0;
}

#screenInbox #paperStackContainer {
    flex: 1 1 auto;
    min-height: 0;
    height: auto;
    max-height: none;
    position: relative;
    z-index: 1;
    overflow: hidden;
    margin-bottom: 0;
}

#screenInbox #stackNavBar {
    position: relative;
    z-index: 20;
    margin-top: 0;
    padding: 0.5rem 12px;
    flex-shrink: 0;
    background: var(--beige-plastic, #d6cebf);
    border-top: 2px solid #9e9584;
    box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.08);
}

#screenInbox #stackNavBar .btn-retro {
    min-width: 44px;
    min-height: 44px;
}

#screenInbox .fax-paper-sheet {
    left: 1%;
    right: 1%;
    top: 0;
    height: calc(100% - 8px);
    min-height: 0;
    max-height: calc(100% - 8px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    box-sizing: border-box;
}

.pt-safe {
    padding-top: max(8px, env(safe-area-inset-top));
}

.pb-safe {
    padding-bottom: max(8px, env(safe-area-inset-bottom));
}

/* =========================================================================
   DESKTOP «PREVIEW-SKALL»: simulerer en fysisk iPhone 17 (402 x 874) på PC.
   På ekte mobil (< 768px) finnes IKKE dette skallet i det hele tatt – da
   fyller dashboardet 100 % av skjermen (se basestilene over med
   position: fixed; inset: 0; height: var(--app-vh, 100svh)).
   ========================================================================= */
@media (min-width: 768px) {
    html {
        height: auto;
        min-height: 100%;
    }

    /* PC-skjermen (body) blir en nøytral, mørk «pult» å kode mot */
    .mobile-body {
        position: static;
        inset: auto;
        display: flex;
        flex-direction: column;
        align-items: center;
        width: 100%;
        max-width: none;
        min-height: 100dvh;
        height: auto;
        margin: 0;
        padding: 24px;
        box-sizing: border-box;
        background-color: #121212;
        background-image: none;
        overflow: auto;
    }

    /* Selve telefonen: eksakt iPhone 17-flate + fysisk ramme og skygge.
       Kun ett av skjermlagene (login ELLER app) vises om gangen, så hver
       av dem opptrer som «telefonen» når det er aktivt. */
    .login-screen,
    .mobile-app {
        position: relative;
        inset: auto;
        flex: 0 0 auto;
        width: 402px;
        max-width: 402px;
        height: 874px;
        min-height: 874px;
        max-height: 874px;
        margin: auto;
        border: 12px solid #1a1a1a;
        border-radius: 48px;
        /* Låst: absolutt ingenting skal kunne scrolle ut av telefonrammen */
        overflow: hidden;
        overscroll-behavior: contain;
        box-sizing: border-box;
        box-shadow:
            0 0 0 1px rgba(255, 255, 255, 0.04) inset,
            0 2px 4px rgba(0, 0, 0, 0.65),
            0 40px 70px -20px rgba(0, 0, 0, 0.8);
    }

    /* Innloggingschassiet skal fylle telefonflaten helt ut (ingen dobbel ramme) */
    .login-screen {
        padding: 0;
        align-items: stretch;
        justify-content: stretch;
        background: #1e2530;
    }

    .login-screen .auth-chassis {
        width: 100%;
        max-width: 100%;
        height: 100%;
        min-height: 100%;
        max-height: 100%;
        margin: 0;
        border: none;
        border-radius: 0;
        box-shadow: none;
    }
}

.bevel-out {
    border: 4px solid;
    border-color: var(--beige-light) var(--beige-dark) var(--beige-dark) var(--beige-light);
    background-color: var(--beige-plastic);
}

.bevel-in {
    border: 4px solid;
    border-color: var(--beige-dark) var(--beige-light) var(--beige-light) var(--beige-dark);
    background-color: #24201a;
}

.btn-retro {
    background-color: var(--theme-btn-bg);
    border: 3px solid;
    border-color: var(--theme-btn-border-hi) var(--theme-btn-border-lo) var(--theme-btn-border-lo) var(--theme-btn-border-hi);
    box-shadow: 1px 1px 0px #000;
    transition: all 0.05s ease;
    image-rendering: pixelated;
    cursor: pointer;
    pointer-events: auto;
}

.btn-retro:active {
    border-color: var(--theme-btn-border-lo) var(--theme-btn-border-hi) var(--theme-btn-border-hi) var(--theme-btn-border-lo);
    transform: translate(1px, 1px);
    box-shadow: none;
}

.btn-retro.active {
    background-color: var(--theme-btn-active-bg);
    border-color: var(--theme-btn-active-border-hi) var(--theme-btn-active-border-lo) var(--theme-btn-active-border-lo) var(--theme-btn-active-border-hi);
    box-shadow: inset 1px 1px 3px rgba(0,0,0,0.5);
}

.btn-hardware-red {
    background-color: #a11d1d;
    border: 3px solid;
    border-color: #d64747 #4f0a0a #4f0a0a #d64747;
    box-shadow: 2px 2px 0px #000;
    color: #fff;
    text-shadow: 1px 1px 2px #000;
    cursor: pointer;
    pointer-events: auto;
}

.btn-hardware-red:active {
    border-color: #4f0a0a #d64747 #d64747 #4f0a0a;
    transform: translate(1px, 1px);
    box-shadow: none;
}

.btn-reload-paper {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 10px 14px;
    min-height: 40px;
    font-size: 11px;
    font-weight: bold;
    font-family: 'Courier Prime', monospace;
    white-space: nowrap;
    flex-shrink: 0;
}

.btn-reload-paper i {
    font-size: 14px;
}

.paper-indicators {
    display: flex;
    gap: 2px;
    width: 54px;
    flex-shrink: 0;
}

.paper-indicators .paper-led {
    flex: 1;
    height: 8px;
    border: 1px solid #1c1917;
}

.lcd-display {
    background-color: var(--lcd-amber-bg);
    color: var(--lcd-amber-text);
    font-family: 'VT323', monospace;
    text-shadow: 0 0 6px rgba(255, 176, 0, 0.7);
    letter-spacing: 1px;
    box-shadow: inset 0 0 15px rgba(0,0,0,0.9);
    border: 4px solid #5a5142;
}

/* Kvitterings-/alert-boks (+40 %) */
.custom-alert-panel {
    width: 100%;
    max-width: 33.6rem;
    padding: 1.75rem;
    gap: 1.4rem;
    border: 6px solid #9e9584;
    box-sizing: border-box;
}

.custom-alert-title {
    font-size: 2.45rem; /* +40% */
}

.custom-alert-msg {
    font-size: 1.47rem; /* +40% */
}

.custom-alert-btn {
    font-size: 1.47rem; /* +40% */
    padding: 0.7rem 1.75rem;
}

#alertActionsConfirm {
    gap: 1.05rem;
}

.custom-alert-panel--themed,
.custom-alert-panel--fax-error,
.app-themed-panel {
    border: 6px solid var(--theme-accent);
    background-color: var(--theme-body-bg);
    color: var(--theme-session-text);
    text-shadow: none;
    box-shadow:
        inset 0 0 20px rgba(0, 0, 0, 0.45),
        0 0 0 3px var(--theme-body-dot);
}

#screenSettings .app-themed-panel {
    width: 100%;
    max-width: 32rem;
    margin-left: auto;
    margin-right: auto;
}

.settings-label {
    display: block;
    margin-bottom: 0.25rem;
    font-size: 10px;
    font-weight: 700;
    font-family: 'Courier Prime', monospace;
    text-transform: uppercase;
    color: var(--theme-session-text);
}

.settings-panel-text,
.settings-panel-heading {
    font-size: 10px;
    font-family: 'Courier Prime', monospace;
    color: var(--theme-session-text);
}

.settings-panel-text {
    opacity: 0.92;
    line-height: 1.45;
}

.settings-panel-heading {
    font-weight: 700;
    text-transform: uppercase;
    margin: 0;
}

.settings-input {
    width: 100%;
    box-sizing: border-box;
    padding: 0.5rem 0.75rem;
    font-family: 'Share Tech Mono', monospace;
    font-size: 0.875rem;
    background: rgba(0, 0, 0, 0.35);
    border: 2px solid var(--theme-btn-border-lo);
    color: var(--theme-session-text);
    outline: none;
}

.settings-input:focus {
    border-color: var(--theme-accent);
    box-shadow: 0 0 0 1px var(--theme-accent);
}

.settings-feedback {
    font-size: 0.75rem;
    font-family: 'Share Tech Mono', monospace;
    margin: 0;
}

.settings-feedback--error {
    color: #f87171;
}

.settings-feedback--success {
    color: #86efac;
}

.custom-alert-panel--themed .custom-alert-title,
.custom-alert-panel--fax-error .custom-alert-title {
    color: var(--theme-session-text);
}

.custom-alert-panel--themed .custom-alert-msg,
.custom-alert-panel--fax-error .custom-alert-msg {
    color: var(--theme-session-text);
    opacity: 1;
}

.custom-alert-panel--themed .custom-alert-btn.btn-retro,
.custom-alert-panel--fax-error .custom-alert-btn.btn-retro {
    color: var(--theme-btn-text) !important;
}

[data-fax-theme="laser"] .custom-alert-panel--themed,
[data-fax-theme="laser"] .custom-alert-panel--fax-error,
[data-fax-theme="laser"] .app-themed-panel {
    border-color: #525252;
    box-shadow:
        inset 0 0 20px rgba(0, 0, 0, 0.7),
        0 0 0 3px #404040;
}

[data-fax-theme="matrise"] .custom-alert-panel--themed,
[data-fax-theme="matrise"] .custom-alert-panel--fax-error,
[data-fax-theme="matrise"] .app-themed-panel {
    border-color: #dc2626;
}

[data-fax-theme="satellitt"] .custom-alert-panel--themed,
[data-fax-theme="satellitt"] .custom-alert-panel--fax-error,
[data-fax-theme="satellitt"] .app-themed-panel {
    border-color: #db2777;
}

[data-fax-theme="overhead"] .custom-alert-panel--themed,
[data-fax-theme="overhead"] .custom-alert-panel--fax-error,
[data-fax-theme="overhead"] .app-themed-panel {
    border-color: #22c55e;
}

[data-fax-theme="personsoker"] .custom-alert-panel--themed,
[data-fax-theme="personsoker"] .custom-alert-panel--fax-error,
[data-fax-theme="personsoker"] .app-themed-panel {
    border-color: #eab308;
}

[data-fax-theme="rorpost"] .custom-alert-panel--themed,
[data-fax-theme="rorpost"] .custom-alert-panel--fax-error,
[data-fax-theme="rorpost"] .app-themed-panel {
    border-color: #ea580c;
}

[data-fax-theme="telex"] .custom-alert-panel--themed,
[data-fax-theme="telex"] .custom-alert-panel--fax-error,
[data-fax-theme="telex"] .app-themed-panel {
    border-color: #b8860b;
}

.televerket-service-overlay {
    backdrop-filter: blur(2px);
}

.televerket-service-panel {
    width: 100%;
    max-width: 34rem;
    padding: 1.5rem 1.25rem;
    border: 6px solid var(--theme-accent);
    background-color: var(--theme-body-bg);
    color: var(--theme-session-text);
    text-shadow: none;
    box-shadow:
        inset 0 0 18px rgba(0, 0, 0, 0.45),
        0 0 0 3px var(--theme-body-dot);
}

.televerket-service-title {
    font-size: 1.5rem;
    text-align: center;
    margin-bottom: 1.25rem;
    color: var(--theme-session-text);
}

.televerket-service-steps {
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
}

.televerket-service-step {
    opacity: 0.35;
    transition: opacity 0.25s ease;
}

.televerket-service-step.is-active {
    opacity: 1;
}

.televerket-service-step.is-done {
    opacity: 0.75;
}

.televerket-service-step-label {
    font-family: 'Share Tech Mono', monospace;
    font-size: 0.82rem;
    line-height: 1.35;
    margin: 0 0 0.45rem;
    color: var(--theme-session-text);
}

.televerket-service-progress-track {
    height: 0.65rem;
    border: 2px solid var(--theme-body-dot);
    background: rgba(0, 0, 0, 0.35);
    overflow: hidden;
}

.televerket-service-progress-fill {
    height: 100%;
    width: 0%;
    background: linear-gradient(
        90deg,
        var(--theme-accent),
        var(--theme-session-text)
    );
    transition: width 5s linear;
}

[data-fax-theme="laser"] .televerket-service-panel {
    border-color: #525252;
}

[data-fax-theme="matrise"] .televerket-service-panel {
    border-color: #dc2626;
}

[data-fax-theme="satellitt"] .televerket-service-panel {
    border-color: #db2777;
}

[data-fax-theme="overhead"] .televerket-service-panel {
    border-color: #22c55e;
}

[data-fax-theme="personsoker"] .televerket-service-panel {
    border-color: #eab308;
}

[data-fax-theme="rorpost"] .televerket-service-panel {
    border-color: #ea580c;
}

[data-fax-theme="telex"] .televerket-service-panel {
    border-color: #b8860b;
}

.fax-paper-sheet {
    background-color: var(--paper-color);
    background-image: radial-gradient(#e4dfd0 8%, transparent 8%);
    background-size: 12px 12px;
    border: 1px solid #d4cca9;
    box-shadow: 2px 4px 10px rgba(0, 0, 0, 0.15);
    transition: transform 0.45s cubic-bezier(0.25, 0.8, 0.25, 1),
                opacity 0.35s ease,
                box-shadow 0.35s ease;
    position: absolute;
    left: 5%;
    right: 5%;
    top: 20px;
    min-height: 380px;
    pointer-events: none;
}

.fax-compose-sheet {
    background-color: var(--paper-color);
    background-image: radial-gradient(#e4dfd0 8%, transparent 8%);
    background-size: 12px 12px;
    border: 1px solid #d4cca9;
    box-shadow: 2px 4px 10px rgba(0, 0, 0, 0.15);
    position: relative;
    pointer-events: auto;
}

.fax-paper-sheet.stack-front {
    pointer-events: auto;
    box-shadow: 4px 8px 18px rgba(0, 0, 0, 0.22);
}

.fax-paper-sheet.stack-peeled {
    opacity: 0;
    transform: translate(-140px, -30px) rotate(-12deg) scale(0.92) !important;
    pointer-events: none;
}

.paper-perforation {
    background-image: linear-gradient(90deg, transparent 50%, #d4cca9 50%);
    background-size: 8px 3px;
    height: 3px;
    width: 100%;
}

.scanlines {
    position: relative;
    overflow: hidden;
}

.scanlines::before {
    content: " ";
    display: block;
    position: absolute;
    top: 0; left: 0; bottom: 0; right: 0;
    background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.22) 50%), linear-gradient(90deg, rgba(255, 0, 0, 0.04), rgba(0, 255, 0, 0.02), rgba(0, 0, 255, 0.04));
    z-index: 10;
    background-size: 100% 4px, 6px 100%;
    pointer-events: none;
}

.kartotek-drawer {
    background-color: #55483b;
    border: 4px solid #332a22;
    box-shadow: inset 0 10px 20px rgba(0,0,0,0.5), 0 4px 6px rgba(0,0,0,0.3);
    border-radius: 4px;
}

.kartotek-card {
    background-color: var(--folder-card);
    border: 1px solid #9e937d;
    border-top: 15px solid #bdab8c;
    box-shadow: 1px 3px 5px rgba(0,0,0,0.25);
    transition: transform 0.4s ease;
    cursor: pointer;
    pointer-events: auto;
}

button {
    pointer-events: auto;
}

textarea,
input {
    pointer-events: auto;
    cursor: text;
}

.led-green {
    width: 10px;
    height: 10px;
    background-color: #33ff33;
    border-radius: 50%;
    box-shadow: 0 0 8px #00ff00;
}

::-webkit-scrollbar {
    width: 10px;
}

::-webkit-scrollbar-track {
    background: var(--beige-dark);
}

::-webkit-scrollbar-thumb {
    background: var(--beige-light);
    border: 1px solid var(--beige-shadow);
}

/* Gammel faxmaskin — mottak/sending */
.fax-machine-overlay {
    position: absolute;
    inset: 0;
    justify-content: flex-end;
    align-items: stretch;
    width: 100%;
    max-width: 100%;
    height: 100%;
    box-sizing: border-box;
    padding-left: env(safe-area-inset-left);
    padding-right: env(safe-area-inset-right);
    padding-bottom: env(safe-area-inset-bottom);
    overflow: hidden;
}

.fax-machine-overlay.mode-receive {
    justify-content: flex-start;
    align-items: stretch;
    background: #2b3a4a;
    padding-top: max(8px, env(safe-area-inset-top));
}

.fax-machine-overlay.mode-receive .fax-overlay-status,
.fax-machine-overlay.mode-receive #faxMachineHint {
    display: none;
}

.fax-receive-scene {
    width: 100%;
    max-width: 100%;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    padding: 0 10px;
    box-sizing: border-box;
}

.fax-machine-overlay.mode-receive .fax-receive-scene,
.fax-machine-overlay.mode-receive #faxMachineReceiveLayout {
    flex: 1 1 auto;
    height: auto;
    min-height: 0;
    padding: 0;
    justify-content: flex-start;
    align-items: stretch;
}

/* Print-side: 20% faxmaskin (valgt maskin) / 80% fax som printes ut */
.fax-receive-machine-zone {
    flex: 0 0 20%;
    height: 20%;
    max-height: 20%;
    min-height: 0;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    padding: 4px 10px 0;
    box-sizing: border-box;
    overflow: hidden;
    border-bottom: 4px solid #1a1814;
}

.fax-receive-machine-zone--1 {
    background: linear-gradient(180deg, #e8e2d6 0%, #d6cebf 55%, #c0b7a6 100%);
}

.fax-receive-machine-zone--2 {
    background: linear-gradient(180deg, #5a5a5a 0%, #353535 55%, #1f1f1f 100%);
}

.fax-receive-machine-zone--3 {
    background: linear-gradient(180deg, #f0c8c8 0%, #d06060 55%, #a82828 100%);
}

.fax-receive-machine-zone--4 {
    background: linear-gradient(180deg, #fce4f0 0%, #f0a8d0 55%, #d472a8 100%);
}

.fax-receive-machine-zone--5 {
    background: linear-gradient(180deg, #d4f0dc 0%, #9fd4b0 55%, #5a9e6f 100%);
}

.fax-receive-machine-zone--6 {
    background: linear-gradient(180deg, #fef9c3 0%, #fde047 55%, #eab308 100%);
}

.fax-receive-machine-zone--7 {
    background: linear-gradient(180deg, #ffedd5 0%, #fdba74 55%, #ea580c 100%);
}

.fax-receive-machine-zone--8 {
    background: linear-gradient(180deg, #f7ecc9 0%, #d4af37 55%, #a67c00 100%);
}

.fax-receive-machine-img {
    max-height: 100%;
    max-width: min(100%, 440px);
    width: auto;
    height: auto;
    object-fit: contain;
    object-position: bottom center;
    image-rendering: pixelated;
    image-rendering: crisp-edges;
}

.fax-receive-machine-label {
    position: absolute;
    top: 4px;
    left: 0;
    right: 0;
    z-index: 2;
    text-align: center;
    font-family: 'Share Tech Mono', monospace;
    font-size: 11px;
    line-height: 1.2;
    letter-spacing: 0.02em;
    text-transform: none;
    color: rgba(20, 18, 16, 0.72);
    padding: 0 12px;
    pointer-events: none;
}

.fax-receive-machine-zone--2 .fax-receive-machine-label {
    color: rgba(245, 240, 235, 0.85);
}

.fax-receive-machine-zone--4 .fax-receive-machine-label {
    color: rgba(60, 20, 50, 0.82);
}

.fax-receive-machine-zone--5 .fax-receive-machine-label {
    color: rgba(20, 50, 35, 0.82);
}

.fax-receive-machine-zone--6 .fax-receive-machine-label {
    color: rgba(60, 45, 10, 0.85);
}

.fax-receive-machine-zone--7 .fax-receive-machine-label {
    color: rgba(67, 20, 7, 0.85);
}

.fax-receive-machine-zone--8 .fax-receive-machine-label {
    color: rgba(42, 34, 5, 0.85);
}

.fax-receive-output-slot {
    position: absolute;
    left: 8%;
    right: 8%;
    bottom: 0;
    height: 10px;
    z-index: 3;
    background: #000;
    border: 2px solid #1a1814;
    border-bottom: none;
    border-radius: 3px 3px 0 0;
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.6);
    overflow: hidden;
}

.fax-machine-overlay.mode-receive .fax-emerging-tray {
    width: 100%;
    max-width: 100%;
    flex: 1 1 80%;
    min-height: 0;
    height: auto;
    max-height: none;
    margin-top: 0;
    display: flex;
    align-items: stretch;
    justify-content: center;
    perspective: none;
    overflow: hidden;
    position: relative;
}

.fax-machine-overlay.mode-receive .fax-emerging-paper {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: 100%;
    max-height: 100%;
    padding: 0;
    background-color: var(--paper-color);
    background-image: radial-gradient(#e4dfd0 8%, transparent 8%);
    background-size: 12px 12px;
    border: 1px solid #d4cca9;
    box-shadow: 3px 6px 16px rgba(0, 0, 0, 0.28);
    transform: translateY(-100%);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    will-change: transform;
    box-sizing: border-box;
}

.fax-machine-overlay.mode-receive .fax-emerging-paper.printing {
    animation: fax-receive-paper-emerge 10s cubic-bezier(0.22, 0.05, 0.15, 1) forwards;
}

@keyframes fax-receive-paper-emerge {
    0% { transform: translateY(-100%); }
    100% { transform: translateY(0); }
}

.fax-machine-overlay.mode-receive .fax-cover-sheet--receive {
    width: 100%;
    height: auto;
    min-height: 0;
    flex-shrink: 0;
    margin: 0;
    padding: clamp(18px, 3.5vh, 32px) clamp(16px, 4vw, 28px);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    border-left: none;
    border-right: none;
    border-top: none;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
}

.fax-machine-overlay.mode-receive .fax-emerging-body--receive {
    flex: 1 1 auto;
    min-height: 80px;
    max-height: none;
    margin: 0;
    padding: clamp(8px, 1.5vh, 14px) clamp(16px, 4vw, 28px) clamp(18px, 3.5vh, 32px);
    font-size: clamp(1.1rem, 2.8vh, 1.5rem);
    line-height: 1.45;
    word-break: break-word;
    box-sizing: border-box;
}

.fax-machine-overlay.mode-receive .fax-emerging-body--receive.thermal-print {
    clip-path: inset(0 0 calc(100% - var(--fax-reveal, 0%)) 0);
    filter: contrast(1.05);
}

.fax-machine-overlay.mode-receive .fax-emerging-footer {
    display: none !important;
}

/* Vannmerke på mottatt/printet fax — skal se identisk ut som sendt fax */
.fax-received-watermark {
    z-index: 0;
}

/* La vannmerket skinne gjennom forsidekortet i innboksen (likt sendt fax) */
#paperStackContainer .fax-cover-sheet {
    background: transparent;
    box-shadow: none;
}

.fax-machine-overlay.mode-receive .fax-cover-sheet--receive,
.fax-machine-overlay.mode-receive .fax-emerging-body--receive {
    position: relative;
    z-index: 1;
}

.fax-machine-overlay.mode-receive .fax-cover-kicker {
    font-size: clamp(10px, 1.6vh, 14px);
    margin-bottom: clamp(4px, 0.8vh, 8px);
}

.fax-machine-overlay.mode-receive .fax-cover-heading {
    font-size: clamp(1.25rem, 3.2vh, 1.75rem);
    padding-bottom: clamp(10px, 1.8vh, 16px);
    margin-bottom: clamp(10px, 1.8vh, 16px);
}

.fax-machine-overlay.mode-receive .fax-cover-grid {
    gap: clamp(8px, 1.4vh, 14px);
}

.fax-machine-overlay.mode-receive .fax-cover-label {
    font-size: clamp(9px, 1.4vh, 12px);
}

.fax-machine-overlay.mode-receive .fax-cover-value {
    font-size: clamp(12px, 2vh, 16px);
}

.fax-machine-overlay.mode-receive .fax-cover-value--name {
    font-size: clamp(14px, 2.4vh, 20px);
}

.fax-machine-overlay.mode-receive .fax-cover-value--time {
    font-size: clamp(13px, 2.1vh, 18px);
}

.fax-machine-overlay.mode-receive .fax-cover-paper {
    margin-top: clamp(10px, 1.8vh, 16px);
    padding-top: clamp(10px, 1.8vh, 16px);
}

.fax-machine-overlay.mode-receive .fax-cover-paper-led {
    height: clamp(9px, 1.4vh, 13px);
}

.fax-machine-overlay.mode-receive .fax-cover-paper-count {
    font-size: clamp(11px, 1.8vh, 15px);
}

.fax-machine-overlay.mode-receive .fax-cover-sheet--receive.thermal-print {
    clip-path: inset(0 0 calc(100% - var(--fax-reveal, 0%)) 0);
}

.fax-machine-overlay.mode-send {
    justify-content: stretch;
    align-items: stretch;
    padding: 0;
    background: var(--theme-send-overlay-bg);
}

.fax-send-layout {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    width: 100%;
    overflow: hidden;
}

.fax-send-scene {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    height: 100%;
}

.fax-send-machine-zone {
    flex: 0 0 20%;
    height: 20%;
    max-height: 20%;
    min-height: 0;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: 4px 10px 0;
    box-sizing: border-box;
    position: relative;
    overflow: hidden;
    border-bottom: 4px solid #1a1814;
}

.fax-send-machine-zone--1 {
    background: linear-gradient(180deg, #e8e2d6 0%, #d6cebf 55%, #c0b7a6 100%);
}

.fax-send-machine-zone--2 {
    background: linear-gradient(180deg, #5a5a5a 0%, #353535 55%, #1f1f1f 100%);
}

.fax-send-machine-zone--3 {
    background: linear-gradient(180deg, #f0c8c8 0%, #d06060 55%, #a82828 100%);
}

.fax-send-machine-zone--4 {
    background: linear-gradient(180deg, #fce4f0 0%, #f0a8d0 55%, #d472a8 100%);
}

.fax-send-machine-zone--5 {
    background: linear-gradient(180deg, #d4f0dc 0%, #9fd4b0 55%, #5a9e6f 100%);
}

.fax-send-machine-zone--6 {
    background: linear-gradient(180deg, #fef9c3 0%, #fde047 55%, #eab308 100%);
}

.fax-send-machine-zone--7 {
    background: linear-gradient(180deg, #ffedd5 0%, #fdba74 55%, #ea580c 100%);
}

.fax-send-machine-zone--8 {
    background: linear-gradient(180deg, #f7ecc9 0%, #d4af37 55%, #a67c00 100%);
}

.fax-send-machine-img {
    max-height: 100%;
    max-width: min(100%, 440px);
    width: auto;
    height: auto;
    object-fit: contain;
    object-position: bottom center;
    image-rendering: pixelated;
    image-rendering: crisp-edges;
}

.fax-send-machine-glow {
    position: absolute;
    inset: auto 8% 0;
    height: 6px;
    background: linear-gradient(90deg, transparent, rgba(255, 180, 60, 0.85), transparent);
    opacity: 0;
    pointer-events: none;
}

.fax-send-scene--transmitting .fax-send-machine-glow {
    opacity: 1;
    animation: fax-send-machine-glow 0.45s ease-in-out infinite alternate;
}

@keyframes fax-send-machine-glow {
    from { opacity: 0.35; transform: scaleX(0.85); }
    to { opacity: 1; transform: scaleX(1); }
}

.fax-send-paper-zone {
    flex: 1 1 80%;
    min-height: 0;
    display: flex;
    flex-direction: column;
    padding: 10px 12px 12px;
    box-sizing: border-box;
    background: var(--theme-send-paper-zone-bg);
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.fax-send-paper-sheet {
    flex: 1 0 auto;
    min-height: 100%;
    width: 100%;
    display: flex;
    flex-direction: column;
    padding: 12px 14px 14px;
    box-sizing: border-box;
    position: relative;
    overflow: visible;
    background-color: var(--paper-color);
    background-image: radial-gradient(#e4dfd0 8%, transparent 8%);
    background-size: 14px 14px;
    border: 3px solid #c8c0a8;
    box-shadow: 4px 8px 0 rgba(0, 0, 0, 0.28);
    font-family: 'Courier Prime', monospace;
    transform: translateY(0);
    will-change: transform, opacity;
}

.fax-send-paper-watermark--round {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    z-index: 0;
}

.fax-send-watermark-round {
    position: relative;
    width: min(90.5%, 328px);
    aspect-ratio: 1;
    border: 3.6px solid rgba(28, 25, 23, 0.25);
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 16px 19px;
    color: rgba(28, 25, 23, 0.203);
    transform: rotate(-16deg);
    box-sizing: border-box;
    overflow: hidden;
}

/* Profilbilde som vannmerke — samme sirkel/størrelse som tekst-vannmerket */
.fax-send-watermark-photo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
    opacity: 0.5;
    filter: grayscale(1) contrast(1.05);
    image-rendering: pixelated;
    pointer-events: none;
}

.fax-send-watermark-round.has-photo {
    transform: none;
}

.fax-send-watermark-round.has-photo > :not(.fax-send-watermark-photo) {
    display: none;
}

.fax-send-watermark-round-title {
    font-size: clamp(16px, 4.37vw, 20px);
    letter-spacing: 0.18em;
    margin-bottom: 10px;
    font-weight: 700;
}

.fax-send-watermark-round-line {
    display: block;
    font-size: clamp(11px, 3.43vw, 14px);
    line-height: 1.35;
    letter-spacing: 0.04em;
}

.fax-send-watermark-round-machine {
    display: block;
    margin-top: 11px;
    font-size: clamp(12px, 3.74vw, 16px);
    font-weight: 800;
    letter-spacing: 0.06em;
}

.fax-send-paper-stamp {
    position: absolute;
    right: 8px;
    bottom: 24px;
    z-index: 2;
    max-width: 55%;
    padding: 8px 11px;
    display: flex;
    align-items: center;
    gap: 8px;
    pointer-events: none;
    transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.fax-send-paper-stamp-icon {
    font-size: 20px;
    flex-shrink: 0;
    opacity: 0.92;
}

.fax-send-paper-stamp-text {
    font-size: clamp(9px, 3vw, 12px);
    font-weight: 700;
    letter-spacing: 0.03em;
    line-height: 1.25;
    text-transform: none;
}

.fax-send-paper-stamp--blekk {
    background: linear-gradient(180deg, #3a4d61 0%, #2b3a4a 100%);
    color: #e8eef4;
    border: 2px solid #1a2530;
    border-radius: 5px;
    box-shadow: 2px 2px 0 rgba(26, 37, 48, 0.45);
}

.fax-send-paper-stamp--blekk .fax-send-paper-stamp-text {
    font-family: 'Courier Prime', monospace;
}

.fax-send-paper-stamp--laser {
    background: linear-gradient(180deg, #171717 0%, #0a0a0a 100%);
    color: #f5f5f4;
    border: 1px solid #525252;
    border-radius: 0;
    box-shadow:
        0 0 10px rgba(56, 189, 248, 0.22),
        inset 0 0 14px rgba(56, 189, 248, 0.08);
    clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 10px 100%, 0 calc(100% - 10px));
}

.fax-send-paper-stamp--laser .fax-send-paper-stamp-icon {
    color: #67e8f9;
    opacity: 1;
    text-shadow: 0 0 6px rgba(103, 232, 249, 0.55);
}

.fax-send-paper-stamp--laser .fax-send-paper-stamp-text {
    font-family: 'Share Tech Mono', monospace;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.fax-send-paper-stamp--matrise {
    background: linear-gradient(180deg, #dc2626 0%, #991b1b 100%);
    color: #fff;
    border: 3px solid #7f1d1d;
    border-radius: 0;
    box-shadow: 3px 3px 0 #450a0a;
}

.fax-send-paper-stamp--matrise .fax-send-paper-stamp-icon {
    opacity: 1;
}

.fax-send-paper-stamp--matrise .fax-send-paper-stamp-text {
    font-family: 'Courier Prime', monospace;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.fax-send-paper-stamp--satellitt {
    background: linear-gradient(135deg, #9333ea 0%, #db2777 100%);
    color: #fff8fc;
    border: 2px solid #5c2060;
    border-radius: 999px 6px 999px 6px;
    box-shadow:
        0 0 12px rgba(219, 39, 119, 0.35),
        2px 2px 0 rgba(92, 32, 96, 0.45);
}

.fax-send-paper-stamp--satellitt .fax-send-paper-stamp-icon {
    opacity: 1;
    animation: fax-stamp-satellite-pulse 2.4s ease-in-out infinite;
}

.fax-send-paper-stamp--satellitt .fax-send-paper-stamp-text {
    font-family: 'Share Tech Mono', monospace;
    letter-spacing: 0.05em;
}

.fax-send-paper-stamp--overhead {
    background: linear-gradient(180deg, #86efac 0%, #22c55e 100%);
    color: #143322;
    border: 2px solid #15803d;
    border-radius: 6px;
    box-shadow: 2px 2px 0 rgba(20, 51, 34, 0.35);
}

.fax-send-paper-stamp--overhead .fax-send-paper-stamp-icon {
    color: #fef08a;
    opacity: 1;
    text-shadow: 0 0 6px rgba(254, 240, 138, 0.45);
}

.fax-send-paper-stamp--overhead .fax-send-paper-stamp-text {
    font-family: 'Courier Prime', monospace;
    letter-spacing: 0.04em;
}

.fax-send-paper-stamp--personsoker {
    background: linear-gradient(180deg, #fde047 0%, #eab308 100%);
    color: #422006;
    border: 2px solid #a16207;
    border-radius: 4px;
    box-shadow: 2px 2px 0 rgba(66, 32, 6, 0.4);
}

.fax-send-paper-stamp--personsoker .fax-send-paper-stamp-icon {
    color: #422006;
    opacity: 1;
}

.fax-send-paper-stamp--personsoker .fax-send-paper-stamp-text {
    font-family: 'Courier Prime', monospace;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.fax-send-paper-stamp--rorpost {
    background: linear-gradient(180deg, #fb923c 0%, #ea580c 100%);
    color: #431407;
    border: 2px solid #9a3412;
    border-radius: 999px;
    box-shadow: 2px 2px 0 rgba(67, 20, 7, 0.4);
}

.fax-send-paper-stamp--rorpost .fax-send-paper-stamp-icon {
    color: #431407;
    opacity: 1;
}

.fax-send-paper-stamp--rorpost .fax-send-paper-stamp-text {
    font-family: 'Courier Prime', monospace;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.fax-send-paper-stamp--telex {
    background: linear-gradient(135deg, #f0d878 0%, #b8860b 100%);
    color: #2a2205;
    border: 2px solid #6b5410;
    border-radius: 4px;
    box-shadow:
        0 0 10px rgba(212, 175, 55, 0.35),
        2px 2px 0 rgba(42, 34, 5, 0.4);
}

.fax-send-paper-stamp--telex .fax-send-paper-stamp-icon {
    color: #2a2205;
    opacity: 1;
}

.fax-send-paper-stamp--telex .fax-send-paper-stamp-text {
    font-family: 'Share Tech Mono', monospace;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

@keyframes fax-stamp-satellite-pulse {
    0%, 100% { opacity: 0.88; }
    50% { opacity: 1; }
}

.fax-send-paper-header {
    flex-shrink: 0;
    border-bottom: 2px dashed #c8c0a8;
    padding-bottom: 8px;
    margin-bottom: 8px;
    position: relative;
    z-index: 1;
}

.fax-send-paper-kicker {
    font-size: clamp(9px, 2.5vw, 11px);
    letter-spacing: 0.12em;
    color: var(--theme-meta-color);
    margin-bottom: 4px;
    font-weight: 700;
}

.fax-send-paper-sheet--gruppe .fax-send-paper-kicker,
.fax-send-paper-kicker--gruppe {
    color: var(--theme-accent);
}

.fax-send-paper-heading {
    font-size: clamp(14px, 4.2vw, 19px);
    font-weight: 800;
    color: var(--theme-text-body);
    text-transform: uppercase;
    margin: 0 0 6px;
    line-height: 1.15;
    letter-spacing: 0.04em;
}

.fax-send-paper-sheet--gruppe .fax-send-paper-heading {
    color: var(--theme-accent);
}

.fax-send-paper-meta {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.fax-send-paper-meta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    font-size: clamp(9px, 2.6vw, 11px);
    line-height: 1.3;
    font-weight: 700;
    text-transform: uppercase;
}

.fax-send-paper-meta-label {
    color: var(--theme-meta-color);
    flex-shrink: 0;
}

.fax-send-paper-message {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    position: relative;
    z-index: 1;
    font-size: clamp(1.44rem, 6.12vw, 1.89rem);
    line-height: 1.4;
    font-weight: 700;
    text-transform: uppercase;
    color: #1c1917;
    letter-spacing: 0.03em;
    word-break: break-word;
}

.fax-send-paper-message .fax-sheet-text {
    flex-shrink: 0;
}

.fax-send-paper-message .fax-image-frame {
    flex-shrink: 0;
    margin: 0;
}

.fax-send-paper-footer {
    flex-shrink: 0;
    margin-top: 8px;
    padding-top: 6px;
    border-top: 1px dotted #a8a29e;
    font-size: clamp(8px, 2.2vw, 10px);
    color: #78716c;
    position: relative;
    z-index: 1;
}

.fax-send-paper-sheet.phase-feed {
    animation: fax-send-paper-feed 3.2s ease-in forwards;
}

@keyframes fax-send-paper-feed {
    0% {
        transform: translateY(0);
        opacity: 1;
    }
    100% {
        transform: translateY(-112%);
        opacity: 0;
    }
}

.fax-machine-overlay.mode-send .fax-overlay-status {
    width: 100%;
    max-width: 100%;
    padding: 8px 12px;
    box-sizing: border-box;
    background: rgba(0, 0, 0, 0.35);
    flex-shrink: 0;
    z-index: 2;
}

.fax-machine-overlay.mode-send #faxMachineHint {
    flex-shrink: 0;
    z-index: 2;
    background: rgba(0, 0, 0, 0.25);
    width: 100%;
    padding-left: 12px;
    padding-right: 12px;
    box-sizing: border-box;
}

@media (min-width: 768px) {
    .fax-machine-overlay.mode-send .fax-overlay-status,
    .fax-machine-overlay.mode-send #faxMachineHint,
    .fax-machine-overlay.mode-send .fax-send-layout {
        max-width: 100%;
        margin-left: 0;
        margin-right: 0;
    }
}

/* Jones-in-the-Fast-Lane-inspirert fax (CSS, fullskjerm ved send) */
.jitfl-send-fullscreen {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 100%;
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

.jitfl-scene {
    position: relative;
    flex: 1;
    width: 100%;
    max-width: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    padding: 8px 10px 16px;
    box-sizing: border-box;
    overflow: hidden;
}

.jitfl-room-bg {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, #6b8494 0%, #4a6272 35%, #354956 100%);
    pointer-events: none;
}

.jitfl-room-bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(#ffffff18 1px, transparent 1px);
    background-size: 8px 8px;
    opacity: 0.4;
}

.jitfl-paper-sheet {
    position: relative;
    z-index: 3;
    width: 94%;
    max-width: 100%;
    min-height: 48vh;
    max-height: 56vh;
    margin-bottom: 8px;
    padding: 16px 18px 20px;
    background-color: var(--paper-color);
    background-image: radial-gradient(#e4dfd0 8%, transparent 8%);
    background-size: 14px 14px;
    border: 3px solid #c8c0a8;
    box-shadow: 4px 8px 0 rgba(0, 0, 0, 0.35), 0 12px 24px rgba(0, 0, 0, 0.25);
    font-family: 'Courier Prime', monospace;
    display: flex;
    flex-direction: column;
    transform: translateY(0);
    will-change: transform, opacity;
}

.jitfl-paper-header {
    flex-shrink: 0;
    border-bottom: 2px dashed #c8c0a8;
    padding-bottom: 10px;
    margin-bottom: 12px;
}

.jitfl-paper-title {
    display: block;
    font-size: clamp(11px, 3vw, 13px);
    color: #78716c;
    letter-spacing: 0.1em;
    margin-bottom: 6px;
}

.jitfl-paper-dest {
    display: block;
    font-size: clamp(14px, 4vw, 18px);
    font-weight: 800;
    color: #92400e;
    text-transform: uppercase;
}

.jitfl-paper-message {
    flex: 1;
    overflow-y: auto;
    font-size: clamp(1.15rem, 5.2vw, 1.65rem);
    line-height: 1.45;
    font-weight: 700;
    text-transform: uppercase;
    color: #1c1917;
    letter-spacing: 0.03em;
    word-break: break-word;
    -webkit-overflow-scrolling: touch;
}

.jitfl-paper-footer {
    flex-shrink: 0;
    margin-top: 12px;
    padding-top: 8px;
    border-top: 1px dotted #a8a29e;
    font-size: clamp(9px, 2.5vw, 11px);
    color: #78716c;
}

.jitfl-paper-sheet.phase-feed {
    animation: jitfl-paper-feed 5.4s steps(28) forwards;
}

@keyframes jitfl-paper-feed {
    0% {
        transform: translateY(0) scale(1);
        opacity: 1;
    }
    35% {
        transform: translateY(-18vh) scale(0.96);
    }
    70% {
        transform: translateY(-42vh) scale(0.88);
        opacity: 0.9;
    }
    100% {
        transform: translateY(-58vh) scale(0.72);
        opacity: 0;
    }
}

.jitfl-machine-wrap {
    position: relative;
    z-index: 4;
    width: 100%;
    max-width: 100%;
    flex-shrink: 0;
}

.jitfl-machine {
    width: 100%;
    image-rendering: pixelated;
}

.jitfl-machine-bezel {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    background: var(--beige-plastic);
}

.jitfl-lcd {
    flex: 1;
    min-width: 140px;
    min-height: 36px;
    padding: 6px 10px;
    display: flex;
    align-items: center;
}

.jitfl-lcd-text {
    font-family: 'VT323', monospace;
    font-size: clamp(1.25rem, 5vw, 1.75rem);
    letter-spacing: 0.08em;
}

.jitfl-leds {
    display: flex;
    gap: 8px;
    align-items: center;
}

.jitfl-led {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 2px solid #3d3830;
    background: #444;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.5);
}

.jitfl-led--green.lit {
    background: #33ff33;
    box-shadow: 0 0 10px #00ff00, inset 0 0 4px #fff;
    animation: jitfl-led-blink 1s ease-in-out infinite alternate;
}

.jitfl-led--red.lit {
    background: #ff3333;
    box-shadow: 0 0 12px #ff0000;
    animation: jitfl-led-blink 0.35s ease-in-out infinite alternate;
}

.jitfl-led--yellow.lit {
    background: #ffcc33;
    box-shadow: 0 0 12px #facc15;
    animation: jitfl-led-blink 0.6s ease-in-out infinite alternate;
}

@keyframes jitfl-led-blink {
    from { opacity: 1; }
    to { opacity: 0.5; }
}

.jitfl-btn-deco {
    font-family: 'VT323', monospace;
    font-size: 1rem;
    padding: 4px 10px;
    border: 3px solid;
    pointer-events: none;
    user-select: none;
}

.jitfl-btn-deco--red {
    background: #a11d1d;
    border-color: #ff6666 #4f0a0a #4f0a0a #ff6666;
    color: #fff;
    text-shadow: 1px 1px #000;
}

.jitfl-chassis-body {
    padding: 12px 14px 16px;
    background: var(--beige-plastic);
}

.jitfl-brand {
    font-family: 'VT323', monospace;
    font-size: clamp(0.85rem, 3.5vw, 1.1rem);
    color: #44403c;
    letter-spacing: 0.12em;
    margin-bottom: 10px;
    text-align: center;
}

.send-jitfl-brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-size: clamp(0.72rem, 2.8vw, 0.95rem);
    letter-spacing: 0.04em;
    line-height: 1.15;
    max-width: 100%;
    margin-bottom: 10px;
}

.send-jitfl-fax-machine-img {
    width: clamp(160px, 52vw, 320px);
    max-height: clamp(120px, 34vw, 220px);
    object-fit: contain;
    margin-bottom: 8px;
    image-rendering: pixelated;
    image-rendering: crisp-edges;
}

.send-jitfl-brand-caption {
    display: block;
    font-family: 'VT323', monospace;
    color: #44403c;
    text-align: center;
}

.jitfl-intake-slot {
    position: relative;
    height: 28px;
    background: linear-gradient(180deg, #1a1814 0%, #2a2620 50%, #1a1814 100%);
    border: 4px inset #0d0c0a;
    overflow: hidden;
}

.jitfl-intake-glow {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(90deg, transparent, rgba(255, 150, 0, 0.25), transparent);
    opacity: 0;
    transition: opacity 0.2s;
}

.jitfl-intake-glow.active {
    opacity: 1;
    animation: jitfl-intake-sweep 0.4s linear infinite;
}

@keyframes jitfl-intake-sweep {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
}

.jitfl-rollers {
    position: absolute;
    inset: 4px 8px;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-around;
    opacity: 0;
}

.jitfl-rollers.active {
    opacity: 1;
}

.jitfl-rollers.active span {
    display: block;
    width: 22%;
    height: 4px;
    background: #6b6356;
    animation: jitfl-roller-spin 0.2s steps(2) infinite;
}

.jitfl-rollers.active span:nth-child(2) { animation-delay: 0.05s; }
.jitfl-rollers.active span:nth-child(3) { animation-delay: 0.1s; }

@keyframes jitfl-roller-spin {
    50% { transform: translateY(2px); background: #9e9584; }
}

.jitfl-speaker-grille {
    margin-top: 10px;
    height: 12px;
    background: repeating-linear-gradient(
        90deg,
        #7a7162 0,
        #7a7162 4px,
        #a89e8c 4px,
        #a89e8c 8px
    );
    border: 2px inset #5c5548;
}

.jitfl-scene--transmitting .jitfl-machine {
    animation: jitfl-machine-rumble 0.12s steps(2) infinite;
}

@keyframes jitfl-machine-rumble {
    0% { transform: translate(0, 0); }
    50% { transform: translate(-2px, 1px); }
    100% { transform: translate(1px, -1px); }
}

.jitfl-scene--transmitting .jitfl-btn-deco--red {
    animation: jitfl-btn-press 0.5s ease-in-out infinite alternate;
}

/* Send-fane: grønn/gul statuslys under sending (som forsiden) */
.send-jitfl-slot-glow {
    position: absolute;
    inset: 3px;
    z-index: 0;
    border-radius: 1px;
    opacity: 0;
    pointer-events: none;
}

.jitfl-scene--transmitting .send-jitfl-slot-glow {
    opacity: 1;
    animation: start-fax-slot-blink 1.15s ease-in-out infinite alternate;
}

.send-jitfl-status-strip {
    display: flex;
    gap: 3px;
    margin-top: 10px;
    padding: 4px 6px;
    background: linear-gradient(180deg, #0d0c0a 0%, #2a2620 100%);
    border: 2px inset #5c5548;
}

.send-jitfl-status-strip span {
    flex: 1;
    height: 12px;
    min-width: 0;
    border: 1px solid #1a1814;
    background: #57534e;
}

.jitfl-scene--transmitting .send-jitfl-status-strip span {
    animation: start-fax-status-blink 1.1s ease-in-out infinite alternate;
}

.jitfl-scene--transmitting .send-jitfl-status-strip span:nth-child(1) { animation-delay: 0s; }
.jitfl-scene--transmitting .send-jitfl-status-strip span:nth-child(2) { animation-delay: 0.08s; }
.jitfl-scene--transmitting .send-jitfl-status-strip span:nth-child(3) { animation-delay: 0.16s; }
.jitfl-scene--transmitting .send-jitfl-status-strip span:nth-child(4) { animation-delay: 0.24s; }
.jitfl-scene--transmitting .send-jitfl-status-strip span:nth-child(5) { animation-delay: 0.32s; }
.jitfl-scene--transmitting .send-jitfl-status-strip span:nth-child(6) { animation-delay: 0.4s; }
.jitfl-scene--transmitting .send-jitfl-status-strip span:nth-child(7) { animation-delay: 0.48s; }
.jitfl-scene--transmitting .send-jitfl-status-strip span:nth-child(8) { animation-delay: 0.56s; }
.jitfl-scene--transmitting .send-jitfl-status-strip span:nth-child(9) { animation-delay: 0.64s; }
.jitfl-scene--transmitting .send-jitfl-status-strip span:nth-child(10) { animation-delay: 0.72s; }
.jitfl-scene--transmitting .send-jitfl-status-strip span:nth-child(11) { animation-delay: 0.8s; }
.jitfl-scene--transmitting .send-jitfl-status-strip span:nth-child(12) { animation-delay: 0.88s; }
.jitfl-scene--transmitting .send-jitfl-status-strip span:nth-child(13) { animation-delay: 0.96s; }
.jitfl-scene--transmitting .send-jitfl-status-strip span:nth-child(14) { animation-delay: 1.04s; }

@keyframes jitfl-btn-press {
    from { transform: scale(1); }
    to { transform: scale(0.94) translate(1px, 1px); }
}

/* Forhåndsvisning på SEND-fanen */
.jitfl-idle-preview {
    width: 100%;
    height: 100%;
    max-height: 100%;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    padding: 4px;
    flex: 1 1 auto;
    min-height: 0;
}

.jitfl-idle-preview .jitfl-idle-leds {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 18px;
    flex-shrink: 0;
    margin-top: 14px;
    padding: 6px 0 2px;
}

.jitfl-idle-preview .jitfl-idle-leds .jitfl-led {
    width: 22px;
    height: 22px;
    border-width: 3px;
    animation: jitfl-idle-led-pulse 1.1s ease-in-out infinite alternate;
}

.jitfl-idle-preview .jitfl-idle-leds .jitfl-led--yellow.lit {
    background: #ffcc33;
    box-shadow: 0 0 12px #facc15, inset 0 0 4px #fff;
    animation-duration: 1.15s;
    animation-delay: 0s;
}

.jitfl-idle-preview .jitfl-idle-leds .jitfl-led--red.lit {
    background: #ff3333;
    box-shadow: 0 0 12px #ff0000, inset 0 0 4px #fff;
    animation-duration: 0.85s;
    animation-delay: 0.2s;
}

.jitfl-idle-preview .jitfl-idle-leds .jitfl-led--orange.lit {
    background: #ff8a1f;
    box-shadow: 0 0 12px #ff7a00, inset 0 0 4px #fff;
    animation-duration: 1s;
    animation-delay: 0.4s;
}

.jitfl-idle-preview .jitfl-idle-leds .jitfl-led--green.lit {
    background: #33ff33;
    box-shadow: 0 0 12px #00ff00, inset 0 0 4px #fff;
    animation-duration: 1.25s;
    animation-delay: 0.6s;
}

@keyframes jitfl-idle-led-pulse {
    from {
        opacity: 1;
        transform: scale(1);
        filter: brightness(1.15);
    }
    to {
        opacity: 0.35;
        transform: scale(0.88);
        filter: brightness(0.7);
    }
}

.jitfl-idle-preview .jitfl-status-panel {
    width: 100%;
    max-width: none;
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
    padding: 2.5rem 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 12px solid #5a5142;
    box-shadow: inset 0 0 54px rgba(0, 0, 0, 0.85);
    box-sizing: border-box;
    container-type: size;
}

.jitfl-idle-preview .jitfl-status-text {
    margin: 0;
    width: 100%;
    font-family: 'VT323', monospace;
    font-size: clamp(2.8rem, 18cqh, 4.65rem);
    letter-spacing: 0.04em;
    line-height: 1.2;
    text-align: center;
    white-space: pre-line;
}

.jitfl-idle-preview .jitfl-status-text.is-ready {
    font-size: clamp(3.1rem, 20cqh, 5.25rem);
    letter-spacing: 0.06em;
}

.jitfl-machine--compact {
    width: 100%;
    max-width: 280px;
}

.jitfl-machine--compact .jitfl-lcd {
    min-height: 28px;
}

.jitfl-machine--compact .jitfl-intake-slot {
    height: 16px;
}

.fax-machine-chassis {
    border: 4px solid;
    border-color: #6b6356 #2a2620 #2a2620 #6b6356;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
}

.fax-send-scene {
    position: relative;
    width: 100%;
    height: 100%;
    max-width: 100%;
}

/* Inntaksspalte + matingsbrett (høyre side på bildet) */
.fax-intake-tunnel {
    position: absolute;
    left: 36.5%;
    right: 4.5%;
    top: 46.5%;
    bottom: 7%;
    overflow: hidden;
    z-index: 4;
    pointer-events: none;
}

.fax-send-slot-rim {
    position: absolute;
    left: 35%;
    right: 4%;
    top: 45.8%;
    height: 2.2%;
    z-index: 5;
    pointer-events: none;
    border-top: 3px solid rgba(20, 18, 14, 0.55);
    border-bottom: 2px solid rgba(0, 0, 0, 0.35);
    box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.45);
}

.fax-send-intake-glow {
    position: absolute;
    left: 35%;
    right: 4%;
    top: 45.5%;
    height: 4.5%;
    border-radius: 1px;
    background: linear-gradient(180deg, rgba(255, 150, 0, 0.12), transparent);
    opacity: 0;
    z-index: 6;
    pointer-events: none;
    transition: opacity 0.4s ease;
}

.fax-send-intake-glow.pulling {
    opacity: 1;
    animation: fax-intake-pulse 0.45s ease-in-out infinite alternate;
}

@keyframes fax-intake-pulse {
    from { box-shadow: inset 0 0 12px rgba(255, 140, 0, 0.15); }
    to { box-shadow: inset 0 0 22px rgba(255, 100, 0, 0.35); }
}

.fax-send-green-btn {
    position: absolute;
    top: 19%;
    right: 11.5%;
    width: 7.5%;
    aspect-ratio: 1.35;
    border-radius: 6px;
    background: rgba(40, 160, 60, 0.35);
    box-shadow: none;
    pointer-events: none;
    transition: box-shadow 0.2s, background 0.2s;
}

.fax-send-green-btn.lit {
    background: rgba(60, 220, 80, 0.55);
    box-shadow: 0 0 14px #33ff55, 0 0 4px #00aa22;
    animation: fax-green-pulse 0.5s ease-in-out infinite alternate;
}

@keyframes fax-green-pulse {
    from { transform: scale(1); }
    to { transform: scale(0.96); }
}

.fax-send-track {
    position: absolute;
    left: 2%;
    right: 4%;
    bottom: 0;
    height: 118%;
    will-change: transform;
    transform: translateY(32%);
}

.fax-send-track.feeding {
    animation: fax-send-track-pull-in var(--fax-feed-duration, 5.4s) steps(32) var(--fax-feed-delay, 0s) forwards;
}

@keyframes fax-send-track-pull-in {
    0% {
        transform: translateY(32%);
    }
    15% {
        transform: translateY(28%);
    }
    40% {
        transform: translateY(8%);
    }
    65% {
        transform: translateY(-22%);
    }
    85% {
        transform: translateY(-48%);
    }
    100% {
        transform: translateY(-82%);
    }
}

.fax-send-sheet {
    width: 100%;
    min-height: 100%;
    padding: 12px 14px 16px;
    background-color: var(--paper-color);
    background-image: radial-gradient(#e4dfd0 8%, transparent 8%);
    background-size: 12px 12px;
    border: 1px solid #c8c0a8;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.3);
    font-family: 'Courier Prime', monospace;
    font-size: clamp(9px, 1.6vw, 12px);
    line-height: 1.4;
    text-transform: uppercase;
    color: #3d3830;
    transform-origin: center bottom;
}

.fax-send-track.feeding .fax-send-sheet {
    animation: fax-send-sheet-shrink var(--fax-feed-duration, 5.4s) steps(32) var(--fax-feed-delay, 0s) forwards;
}

@keyframes fax-send-sheet-shrink {
    0% {
        transform: scale(1);
        opacity: 1;
    }
    50% {
        transform: scale(0.97);
        opacity: 1;
    }
    100% {
        transform: scale(0.88);
        opacity: 0.15;
    }
}

.fax-send-roller-hint {
    position: absolute;
    left: 36%;
    right: 5%;
    top: 44.5%;
    height: 5%;
    display: flex;
    gap: 6%;
    align-items: center;
    justify-content: center;
    z-index: 3;
    pointer-events: none;
}

.fax-send-roller-hint.active .fax-roller-bar {
    animation: fax-roller-tick 0.22s steps(2) infinite;
}

.fax-roller-bar {
    flex: 1;
    height: 3px;
    background: rgba(80, 70, 60, 0.5);
    border-radius: 1px;
}

@keyframes fax-roller-tick {
    0%, 100% { transform: translateY(0); opacity: 0.4; }
    50% { transform: translateY(2px); opacity: 1; }
}

.fax-machine-led {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #444;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.6);
    transition: background 0.2s, box-shadow 0.2s;
}

.fax-machine-led.active {
    background: #ff3333;
    box-shadow: 0 0 10px #ff0000, 0 0 4px #ff6600;
    animation: fax-led-blink 0.35s ease-in-out infinite alternate;
}

@keyframes fax-led-blink {
    from { opacity: 1; }
    to { opacity: 0.45; }
}

.fax-output-slot {
    z-index: 5;
}

.fax-scan-line {
    position: absolute;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, transparent, #ffb000 20%, #ff6600 50%, #ffb000 80%, transparent);
    box-shadow: 0 0 8px #ff9900;
    top: 0;
    z-index: 10;
    pointer-events: none;
}

.fax-scan-line.scanning {
    animation: fax-scan-sweep 6s linear forwards;
}

@keyframes fax-scan-sweep {
    0% { top: -4px; opacity: 0.9; }
    100% { top: 100%; opacity: 0.4; }
}

.fax-emerging-tray {
    perspective: 400px;
    position: relative;
    overflow: hidden;
    max-height: min(59.3vh, 374px);
}

.fax-emerging-paper {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    width: 100%;
    max-height: 100%;
    min-height: 0;
    padding: 10px 12px;
    box-sizing: border-box;
    background-color: var(--paper-color);
    background-image: radial-gradient(#e4dfd0 8%, transparent 8%);
    background-size: 12px 12px;
    border: 1px solid #d4cca9;
    box-shadow: 3px 6px 16px rgba(0, 0, 0, 0.28);
    transform: translateY(-92%);
    will-change: transform;
    overflow: hidden;
}

.fax-emerging-paper.printing {
    animation: fax-paper-emerge 6s cubic-bezier(0.22, 0.05, 0.15, 1) forwards;
}

@keyframes fax-paper-emerge {
    0% { transform: translateY(-92%); }
    100% { transform: translateY(0); }
}

.fax-emerging-body {
    --fax-reveal: 0%;
    clip-path: inset(0 0 calc(100% - var(--fax-reveal)) 0);
    min-height: 74px;
    max-height: min(43.7vh, 250px);
    overflow: hidden;
    word-break: break-word;
    font-size: 1.25rem;
    line-height: 1.45;
}

.fax-emerging-body.thermal-print {
    filter: contrast(1.05);
}

.fax-cover-sheet {
    flex-shrink: 0;
    margin-bottom: 10px;
    padding: 10px 12px;
    border: 2px solid #1c1917;
    background: linear-gradient(180deg, #f5f0e4 0%, #ebe4d4 100%);
    box-shadow: inset 0 0 0 1px #c8c0a8;
    font-family: 'Courier Prime', monospace;
    color: #1c1917;
}

.fax-cover-sheet--compact {
    margin-bottom: 8px;
    padding: 8px 10px;
}

.fax-cover-kicker {
    font-size: 8px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #78716c;
    text-align: center;
    margin-bottom: 2px;
}

.fax-cover-kicker--gruppefax {
    color: #b91c1c;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.2em;
}

.fax-cover-sheet--gruppefax {
    border-color: #b91c1c;
    box-shadow: inset 0 0 0 2px rgba(185, 28, 28, 0.22);
    background: linear-gradient(180deg, #fff5f5 0%, #f5ebe4 100%);
}

.fax-cover-value--gruppe {
    font-size: 14px;
    color: #991b1b;
    letter-spacing: 0.08em;
}

.fax-cover-row--gruppe .fax-cover-label {
    color: #991b1b;
}

.fax-paper-sheet--gruppefax {
    position: relative;
    box-shadow:
        0 0 0 2px rgba(185, 28, 28, 0.35),
        0 12px 24px rgba(0, 0, 0, 0.35);
}

.fax-paper-sheet--gruppefax::before {
    content: 'GRUPPEFAX';
    position: absolute;
    top: 10px;
    right: 12px;
    z-index: 2;
    padding: 3px 8px;
    font-family: 'Share Tech Mono', monospace;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.12em;
    color: #fff;
    background: #b91c1c;
    border: 2px solid #7f1d1d;
    box-shadow: 1px 1px 0 #000;
    pointer-events: none;
}

.fax-paper-sheet--unread {
    box-shadow:
        0 0 0 2px rgba(234, 179, 8, 0.55),
        0 12px 24px rgba(0, 0, 0, 0.35);
}

.fax-paper-sheet--unread.stack-front::after {
    content: 'ULEST';
    position: absolute;
    top: 10px;
    left: 12px;
    z-index: 2;
    padding: 3px 8px;
    font-family: 'Share Tech Mono', monospace;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.1em;
    color: #1c1917;
    background: #fbbf24;
    border: 2px solid #b45309;
    box-shadow: 1px 1px 0 #000;
    pointer-events: none;
}

.fax-cover-heading {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    text-align: center;
    padding-bottom: 8px;
    margin-bottom: 8px;
    border-bottom: 2px solid #1c1917;
}

.fax-cover-sheet--compact .fax-cover-heading {
    font-size: 11px;
    padding-bottom: 6px;
    margin-bottom: 6px;
}

.fax-cover-grid {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.fax-cover-sheet--compact .fax-cover-grid {
    gap: 4px;
}

.fax-cover-row {
    display: grid;
    grid-template-columns: minmax(72px, 38%) 1fr;
    gap: 8px;
    align-items: baseline;
}

.fax-cover-sheet--compact .fax-cover-row {
    grid-template-columns: minmax(64px, 42%) 1fr;
    gap: 6px;
}

.fax-cover-label {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #57534e;
}

.fax-cover-sheet--compact .fax-cover-label {
    font-size: 8px;
}

.fax-cover-value {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    word-break: break-word;
}

.fax-cover-value--name {
    font-size: 13px;
    letter-spacing: 0.04em;
}

.fax-cover-value--time {
    font-size: 12px;
    letter-spacing: 0.12em;
}

.fax-cover-sheet--compact .fax-cover-value {
    font-size: 10px;
}

.fax-cover-sheet--compact .fax-cover-value--name {
    font-size: 11px;
}

.fax-cover-sheet--compact .fax-cover-value--time {
    font-size: 11px;
}

#screenInbox .fax-sheet-body {
    margin-top: 2px;
    font-size: 1.5rem;
    line-height: 1.45;
}

#screenInbox .fax-image-pixel {
    max-height: min(42svh, 420px);
    width: 100%;
    object-fit: contain;
}

.fax-paper-sheet--stack-back {
    pointer-events: none;
    overflow: hidden;
    padding: 1rem;
    min-height: 0;
}

.fax-inbox-stack-back-face {
    height: 100%;
    min-height: 120px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    opacity: 0.55;
    font-family: 'Share Tech Mono', monospace;
    letter-spacing: 0.08em;
    color: #78716c;
    text-transform: uppercase;
}

.fax-inbox-stack-back-kicker {
    font-size: 10px;
}

.fax-inbox-stack-back-pos {
    font-size: 12px;
    font-weight: 700;
}

@media (max-width: 767px) {
    #screenInbox .fax-sheet-body {
        font-size: 1.05rem;
    }
}

.fax-cover-paper {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px dashed #78716c;
}

.fax-cover-sheet--compact .fax-cover-paper {
    margin-top: 6px;
    padding-top: 6px;
}

.fax-cover-paper-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: 4px;
}

.fax-cover-paper-leds {
    display: flex;
    gap: 3px;
    flex: 1;
    max-width: 120px;
}

.fax-cover-paper-led {
    flex: 1;
    height: 9px;
    border: 1px solid #1c1917;
    background: #57534e;
}

.fax-cover-paper-led.is-lit {
    background: #22c55e;
    box-shadow: 0 0 4px #22c55e;
}

.fax-cover-sheet--compact .fax-cover-paper-led {
    height: 7px;
}

.fax-cover-paper-count {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    white-space: nowrap;
}

.fax-cover-sheet--compact .fax-cover-paper-count {
    font-size: 10px;
}

/* ===================== MAKULERING — FaxChat Oki-shredder (følger fax-tema) ===================== */
.shredder-overlay {
    position: absolute;
    inset: 0;
    justify-content: flex-start;
    align-items: stretch;
    width: 100%;
    max-width: 100%;
    height: 100%;
    box-sizing: border-box;
    padding-top: env(safe-area-inset-top);
    padding-left: env(safe-area-inset-left);
    padding-right: env(safe-area-inset-right);
    overflow: hidden;
    overflow-x: clip;
    color: var(--theme-session-text);
    background:
        radial-gradient(ellipse at 50% 18%, color-mix(in srgb, var(--theme-accent) 45%, transparent) 0%, transparent 55%),
        linear-gradient(180deg, var(--theme-body-bg) 0%, color-mix(in srgb, var(--theme-body-bg) 70%, #000) 55%, #050508 100%);
}

.shredder-overlay.is-active {
    animation: shred-screen-shake 0.12s steps(2) infinite;
}

.shredder-overlay,
.shredder-overlay * {
    box-sizing: border-box;
}

.shredder-hazard-tape {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 14px;
    z-index: 8;
    background: repeating-linear-gradient(
        -45deg,
        var(--theme-accent) 0 10px,
        var(--theme-nav-border) 10px 20px
    );
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
    pointer-events: none;
}

.shredder-vignette {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: radial-gradient(ellipse at center, transparent 40%, rgba(0, 0, 0, 0.55) 100%);
}

.shredder-overlay-status {
    position: relative;
    z-index: 6;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding: 14px 12px 8px;
    background: linear-gradient(180deg, color-mix(in srgb, var(--theme-session-bar-bg) 90%, transparent), transparent);
    flex-shrink: 0;
}

.shredder-status-title {
    font-family: 'Share Tech Mono', monospace;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.14em;
    color: var(--theme-accent);
    text-shadow: 0 0 10px color-mix(in srgb, var(--theme-accent) 70%, transparent);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.shredder-status-badge {
    font-family: 'Share Tech Mono', monospace;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    color: var(--theme-session-text);
    text-shadow: 0 0 8px color-mix(in srgb, var(--theme-accent) 50%, transparent);
}

.jitfl-shred-scene {
    position: relative;
    z-index: 3;
    flex: 1 1 auto;
    width: 100%;
    max-width: 100%;
    min-height: 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    padding: 4px 4px 6px;
    overflow: hidden;
    overflow-x: clip;
}

.shredder-room-bg {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 20% 30%, color-mix(in srgb, var(--theme-accent) 18%, transparent), transparent 40%),
        radial-gradient(circle at 80% 70%, color-mix(in srgb, var(--theme-body-dot) 35%, transparent), transparent 45%),
        repeating-linear-gradient(90deg, color-mix(in srgb, var(--theme-session-text) 4%, transparent) 0 1px, transparent 1px 18px);
    opacity: 1;
}

.shredder-warning-lights {
    position: absolute;
    top: 8px;
    left: 10px;
    right: 10px;
    z-index: 5;
    display: flex;
    justify-content: space-between;
    pointer-events: none;
}

.shredder-warning-lights span {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--theme-accent) 35%, #000);
    box-shadow: inset 0 0 2px #000;
}

.shredder-overlay.is-active .shredder-warning-lights span {
    background: var(--theme-accent);
    box-shadow:
        0 0 12px var(--theme-accent),
        0 0 24px color-mix(in srgb, var(--theme-accent) 55%, transparent);
    animation: shred-warn-pulse 0.45s ease-in-out infinite alternate;
}

.shredder-warning-lights span:nth-child(2) { animation-delay: 0.15s; }
.shredder-warning-lights span:nth-child(3) { animation-delay: 0.3s; }

.jitfl-shred-scene .jitfl-lcd-text {
    font-size: clamp(1.05rem, 4.6vw, 1.65rem);
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shredder-lcd {
    border-color: var(--theme-accent) !important;
    box-shadow: inset 0 0 18px color-mix(in srgb, var(--theme-accent) 30%, transparent);
}

.shredder-brand {
    text-align: center;
    font-size: clamp(0.85rem, 3.4vw, 1.15rem) !important;
    letter-spacing: 0.12em !important;
    color: var(--theme-btn-text);
    text-shadow: 0 1px 0 rgba(0, 0, 0, 0.35);
    margin-bottom: 6px;
}

.jitfl-shred-scene .jitfl-led {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
}

.jitfl-shred-scene .jitfl-machine-bezel {
    padding: 10px;
    gap: 8px;
    min-width: 0;
    background: linear-gradient(180deg, var(--theme-screen-header-bg), var(--theme-nav-bg));
}

.jitfl-shred-scene .jitfl-lcd {
    min-width: 0;
    flex: 1 1 0;
}

.jitfl-shred-scene .jitfl-chassis-body {
    padding: 12px 10px 14px;
    min-width: 0;
    background: linear-gradient(
        180deg,
        var(--theme-btn-bg) 0%,
        var(--beige-plastic) 40%,
        var(--theme-btn-active-bg) 100%
    );
}

.shredder-chassis {
    border-color: var(--theme-btn-border-lo) !important;
    box-shadow:
        0 0 0 2px var(--theme-nav-border),
        0 10px 28px rgba(0, 0, 0, 0.45),
        inset 0 1px 0 color-mix(in srgb, var(--theme-btn-border-hi) 70%, transparent);
}

.jitfl-shred-paper {
    position: relative;
    z-index: 3;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 40px;
    max-height: 11%;
    margin-bottom: 4px;
    padding: 8px;
    background-color: var(--paper-color, #faf6e3);
    background-image:
        linear-gradient(color-mix(in srgb, var(--theme-accent) 10%, transparent), color-mix(in srgb, var(--theme-accent) 10%, transparent)),
        radial-gradient(color-mix(in srgb, var(--theme-viewport-bg) 80%, #fff) 8%, transparent 8%);
    background-size: auto, 12px 12px;
    border: 2px solid var(--theme-screen-header-border);
    box-shadow:
        2px 4px 0 rgba(0, 0, 0, 0.35),
        0 0 0 1px color-mix(in srgb, var(--theme-accent) 35%, transparent);
    font-family: 'Courier Prime', monospace;
    overflow: hidden;
    transform: translateY(0);
    will-change: transform, opacity, filter;
    flex-shrink: 0;
}

.shred-paper-stamp {
    position: absolute;
    top: 10px;
    right: 8px;
    z-index: 4;
    padding: 3px 6px;
    border: 2px solid color-mix(in srgb, var(--theme-accent) 80%, transparent);
    color: color-mix(in srgb, var(--theme-accent) 90%, transparent);
    font-family: 'Share Tech Mono', monospace;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.12em;
    transform: rotate(12deg);
    pointer-events: none;
}

.jitfl-shred-paper .fax-cover-sheet {
    max-width: 100%;
    overflow: hidden;
}

.jitfl-shred-paper .fax-cover-row {
    grid-template-columns: minmax(0, 38%) minmax(0, 1fr);
}

.jitfl-shred-paper-body {
    font-size: 0.7rem;
    text-transform: uppercase;
    line-height: 1.35;
    margin-top: 6px;
    word-break: break-word;
    overflow-wrap: anywhere;
    max-height: 5.5svh;
    overflow: hidden;
}

.shred-paper-slices {
    position: absolute;
    inset: 0;
    display: none;
    pointer-events: none;
    z-index: 5;
}

.jitfl-shred-paper.phase-feed .shred-paper-slices {
    display: flex;
}

.jitfl-shred-paper.phase-feed .fax-cover-sheet,
.jitfl-shred-paper.phase-feed .jitfl-shred-paper-body,
.jitfl-shred-paper.phase-feed .shred-paper-stamp {
    opacity: 0;
}

.shred-paper-slice {
    flex: 1 1 0;
    min-width: 0;
    height: 100%;
    background:
        linear-gradient(90deg, rgba(0, 0, 0, 0.08), transparent 40%, rgba(0, 0, 0, 0.1)),
        repeating-linear-gradient(0deg, var(--paper-color) 0 3px, var(--theme-viewport-bg) 3px 4px);
    border-left: 1px solid rgba(0, 0, 0, 0.08);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.2);
    transform-origin: top center;
    animation: shred-slice-fall 1.8s cubic-bezier(0.4, 0.05, 0.3, 1) forwards;
}

.jitfl-shred-paper.phase-feed {
    animation: shred-paper-destroy 5.2s cubic-bezier(0.35, 0.05, 0.2, 1) forwards;
}

@keyframes shred-paper-destroy {
    0% {
        transform: translateY(-8%) rotate(-2deg) scale(1.02);
        filter: brightness(1.1);
        opacity: 1;
    }
    12% {
        transform: translateY(8%) rotate(0deg) scale(1);
        filter: brightness(1);
        opacity: 1;
    }
    28% {
        transform: translateY(28%) rotate(0.5deg);
        opacity: 1;
    }
    42% {
        transform: translateY(42%) scaleY(0.92) scaleX(1.01);
        filter: contrast(1.2) brightness(0.95);
        opacity: 1;
    }
    58% {
        transform: translateY(58%) scaleY(0.45);
        filter: contrast(1.4) blur(0.3px);
        opacity: 0.85;
    }
    78% {
        transform: translateY(72%) scaleY(0.12);
        opacity: 0.35;
    }
    100% {
        transform: translateY(82%) scaleY(0);
        opacity: 0;
    }
}

@keyframes shred-slice-fall {
    0% {
        transform: translateY(0) rotate(0deg) scaleY(1);
        opacity: 1;
    }
    35% {
        transform: translateY(18%) rotate(var(--slice-rot, 0deg)) scaleY(0.9);
        opacity: 1;
    }
    100% {
        transform: translateY(140%) rotate(var(--slice-rot-end, 8deg)) scaleY(0.35);
        opacity: 0;
    }
}

.jitfl-shredder-wrap {
    position: relative;
    z-index: 4;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    justify-content: stretch;
    overflow: hidden;
}

.jitfl-shredder {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.jitfl-shredder .jitfl-chassis-body {
    flex: 1;
    min-height: 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.jitfl-shredder-wrap:has(.jitfl-shred-blades.active) .jitfl-shredder {
    animation: shred-machine-rumble 0.1s steps(2) infinite;
}

.jitfl-shred-slot {
    position: relative;
    height: clamp(44px, 7.5svh, 62px);
    background: linear-gradient(
        180deg,
        var(--theme-nav-border) 0%,
        var(--theme-session-bar-bg) 45%,
        var(--theme-nav-border) 100%
    );
    border: 4px inset var(--theme-nav-border);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow:
        inset 0 0 18px color-mix(in srgb, var(--theme-accent) 40%, transparent),
        0 0 16px color-mix(in srgb, var(--theme-accent) 25%, transparent);
}

.shred-slot-glow {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        90deg,
        transparent,
        color-mix(in srgb, var(--theme-accent) 45%, transparent),
        transparent
    );
    opacity: 0;
    pointer-events: none;
}

.shredder-overlay.is-active .shred-slot-glow {
    opacity: 1;
    animation: shred-slot-scan 0.55s linear infinite;
}

.shred-roller {
    position: absolute;
    inset: 4px 8px;
    display: flex;
    gap: 4px;
    opacity: 0.25;
    pointer-events: none;
}

.shredder-overlay.is-active .shred-roller {
    opacity: 0.9;
    animation: shred-roller-spin 0.18s linear infinite;
}

.shred-roller span {
    flex: 1;
    border-radius: 2px;
    background: linear-gradient(
        180deg,
        var(--theme-btn-border-hi) 0%,
        var(--theme-btn-bg) 40%,
        var(--theme-nav-border) 60%,
        var(--theme-btn-border-lo) 100%
    );
    box-shadow: inset 0 0 2px color-mix(in srgb, var(--theme-btn-border-hi) 50%, transparent);
}

.jitfl-shred-blades {
    position: relative;
    z-index: 2;
    display: flex;
    gap: 5px;
    align-items: center;
    opacity: 0.35;
    transition: opacity 0.2s;
}

.jitfl-shred-blades.active {
    opacity: 1;
}

.jitfl-shred-blades span {
    display: block;
    width: 11px;
    height: 18px;
    background: linear-gradient(
        180deg,
        var(--theme-btn-border-hi) 0%,
        var(--theme-btn-bg) 45%,
        var(--theme-btn-border-lo) 100%
    );
    border: 1px solid var(--theme-nav-border);
    border-radius: 1px;
    clip-path: polygon(0 15%, 100% 0, 100% 100%, 0 85%);
    box-shadow: 0 0 4px color-mix(in srgb, var(--theme-accent) 25%, transparent);
}

.jitfl-shred-blades.active span {
    animation: shred-blade-chop 0.09s steps(2) infinite;
}

.jitfl-shred-blades.active span:nth-child(odd) { animation-delay: 0.03s; }
.jitfl-shred-blades.active span:nth-child(even) { animation-delay: 0.06s; }

@keyframes shred-blade-chop {
    0% { transform: translateY(-3px) rotate(-4deg); filter: brightness(1.3); }
    50% { transform: translateY(4px) rotate(4deg); filter: brightness(0.85); }
    100% { transform: translateY(-3px) rotate(-4deg); filter: brightness(1.15); }
}

.jitfl-shred-bin {
    position: relative;
    flex: 1 1 auto;
    min-height: clamp(220px, 42svh, 420px);
    margin-top: 10px;
    background:
        linear-gradient(180deg, rgba(0, 0, 0, 0.28), transparent 28%),
        linear-gradient(180deg, var(--theme-nav-bg) 0%, var(--theme-session-bar-bg) 100%);
    border: 3px inset var(--theme-nav-border);
    overflow: hidden;
    box-shadow: inset 0 -24px 36px rgba(0, 0, 0, 0.35);
}

.jitfl-shred-strips {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
    z-index: 1;
}

/* Falling strips that settle into a heap at the bottom of the bin */
.jitfl-shred-strip {
    position: absolute;
    top: -8%;
    left: var(--strip-x, 45%);
    width: var(--strip-w, 5px);
    height: var(--strip-h, 54px);
    background: linear-gradient(
        180deg,
        var(--paper-color) 0%,
        var(--theme-viewport-bg) 55%,
        var(--theme-btn-border-lo) 100%
    );
    border-radius: 1px;
    opacity: 0;
    transform: translateY(0) rotate(0deg);
    animation: shred-strip-to-pile 2.6s cubic-bezier(0.25, 0.7, 0.3, 1) forwards;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);
    transform-origin: center bottom;
}

.jitfl-shred-strip.is-wide {
    width: var(--strip-w, 8px);
    background: repeating-linear-gradient(
        180deg,
        var(--paper-color) 0 3px,
        var(--theme-viewport-bg) 3px 4px
    );
}

.jitfl-shred-strip.is-inked {
    background: linear-gradient(
        180deg,
        var(--theme-viewport-bg) 0%,
        var(--theme-btn-bg) 40%,
        var(--theme-btn-border-lo) 100%
    );
}

.jitfl-shred-strip.is-torn {
    height: var(--strip-h, 28px);
    width: var(--strip-w, 10px);
    clip-path: polygon(8% 0, 100% 4%, 92% 100%, 0 90%);
}

@keyframes shred-strip-to-pile {
    0% {
        opacity: 0;
        transform: translateY(0) rotate(0deg) scaleY(0.3);
    }
    12% {
        opacity: 1;
        transform: translateY(18%) rotate(calc(var(--strip-rot, 0deg) * 0.3)) scaleY(1);
    }
    70% {
        opacity: 1;
        transform: translateY(var(--strip-land, 68%)) rotate(var(--strip-rot, 8deg)) scaleY(1);
    }
    100% {
        opacity: 0.95;
        transform: translateY(var(--strip-land, 72%)) rotate(var(--strip-rot, 10deg)) scaleY(0.92);
    }
}

/* Soft mound silhouette under the settled strips */
.shred-bin-pile {
    position: absolute;
    left: 6%;
    right: 6%;
    bottom: 2px;
    height: 0;
    z-index: 0;
    border-radius: 50% 50% 8% 8% / 80% 80% 20% 20%;
    background:
        radial-gradient(ellipse at 50% 80%, var(--paper-color) 0%, var(--theme-viewport-bg) 55%, transparent 72%);
    opacity: 0;
    pointer-events: none;
}

.shredder-overlay.is-active .shred-bin-pile,
.shredder-overlay .shred-bin-pile.is-built {
    animation: shred-pile-grow 2.8s ease-out forwards;
}

@keyframes shred-pile-grow {
    0% { height: 0; opacity: 0; }
    40% { height: 18px; opacity: 0.35; }
    100% { height: 42px; opacity: 0.75; }
}

/* Snow flakes fall inside the bin (no separate dark area under machine) */
.shred-snow-zone {
    position: absolute;
    inset: 0;
    z-index: 2;
    overflow: hidden;
    pointer-events: none;
}

.shred-snow-flake {
    position: absolute;
    top: -10%;
    left: var(--flake-x, 50%);
    width: var(--flake-w, 4px);
    height: var(--flake-h, 14px);
    background: linear-gradient(180deg, var(--paper-color), var(--theme-viewport-bg));
    border-radius: 1px;
    opacity: 0;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.06);
    animation: shred-snow-fall var(--flake-dur, 2.4s) linear forwards;
}

.shred-snow-flake.is-chunk {
    width: var(--flake-w, 9px);
    height: var(--flake-h, 8px);
    clip-path: polygon(0 20%, 70% 0, 100% 40%, 80% 100%, 10% 90%);
    background: var(--paper-color);
}

.shred-snow-flake.is-curl {
    width: 3px;
    height: 18px;
    border-radius: 2px;
    background: repeating-linear-gradient(
        180deg,
        var(--paper-color) 0 2px,
        var(--theme-btn-bg) 2px 3px
    );
}

@keyframes shred-snow-fall {
    0% {
        opacity: 0;
        transform: translateY(0) translateX(0) rotate(var(--flake-rot, 0deg));
    }
    8% { opacity: 0.95; }
    100% {
        opacity: 0.9;
        transform:
            translateY(var(--flake-y, 85%))
            translateX(var(--flake-drift, 0px))
            rotate(calc(var(--flake-rot, 0deg) + var(--flake-spin, 180deg)));
    }
}

.shredder-hint.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.shredder-confetti {
    display: none;
}

/* Sparks at intake */
.shredder-sparks {
    position: absolute;
    inset: 0;
    z-index: 7;
    pointer-events: none;
    overflow: hidden;
}

.shred-spark {
    position: absolute;
    top: 48%;
    left: 50%;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: var(--theme-accent);
    box-shadow: 0 0 6px 2px color-mix(in srgb, var(--theme-accent) 80%, transparent);
    opacity: 0;
    animation: shred-spark-pop 0.55s ease-out forwards;
}

@keyframes shred-spark-pop {
    0% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.4);
    }
    20% {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1.4);
    }
    100% {
        opacity: 0;
        transform: translate(calc(-50% + var(--sx, 20px)), calc(-50% + var(--sy, -30px))) scale(0.2);
    }
}

.shred-reward-burst {
    position: absolute;
    left: 50%;
    top: 38%;
    z-index: 12;
    transform: translate(-50%, -50%) scale(0.6);
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 18px;
    background: color-mix(in srgb, var(--theme-body-bg) 92%, #000);
    border: 3px solid var(--theme-accent);
    color: var(--theme-session-text);
    font-family: 'Share Tech Mono', monospace;
    font-size: 18px;
    font-weight: 800;
    letter-spacing: 0.06em;
    box-shadow: 0 0 30px color-mix(in srgb, var(--theme-accent) 45%, transparent);
    pointer-events: none;
}

.shred-reward-burst:not(.hidden) {
    animation: shred-reward-pop 1.35s cubic-bezier(0.2, 1.4, 0.3, 1) forwards;
}

.shred-reward-burst i {
    color: var(--theme-accent);
    font-size: 1.25em;
}

@keyframes shred-reward-pop {
    0% {
        opacity: 0;
        transform: translate(-50%, -40%) scale(0.4);
    }
    25% {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1.15);
    }
    70% {
        opacity: 1;
        transform: translate(-50%, -55%) scale(1);
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -70%) scale(0.9);
    }
}


#shredLedActive.lit,
#shredLedTx.lit {
    background: var(--theme-accent);
    box-shadow:
        0 0 14px var(--theme-accent),
        0 0 28px color-mix(in srgb, var(--theme-accent) 50%, transparent);
    animation: jitfl-led-blink 0.28s ease-in-out infinite alternate;
}

@keyframes shred-screen-shake {
    0% { transform: translate(0, 0); }
    25% { transform: translate(-1px, 1px); }
    50% { transform: translate(1px, -1px); }
    75% { transform: translate(-1px, 0); }
    100% { transform: translate(0, 1px); }
}

@keyframes shred-machine-rumble {
    0% { transform: translate(0, 0) rotate(0deg); }
    25% { transform: translate(-1.5px, 1px) rotate(-0.3deg); }
    50% { transform: translate(1.5px, -1px) rotate(0.3deg); }
    75% { transform: translate(-1px, 0.5px) rotate(-0.2deg); }
    100% { transform: translate(0, 0) rotate(0deg); }
}

@keyframes shred-warn-pulse {
    from { opacity: 0.55; transform: scale(0.92); }
    to { opacity: 1; transform: scale(1.08); }
}

@keyframes shred-slot-scan {
    0% { transform: translateX(-60%); opacity: 0.2; }
    50% { opacity: 0.85; }
    100% { transform: translateX(60%); opacity: 0.2; }
}

@keyframes shred-roller-spin {
    from { transform: translateY(0); }
    to { transform: translateY(6px); }
}

/* Faxmaskin-tema: Tailwind og hardkodede flater i appen */
[data-fax-theme="laser"] #appScreen .text-stone-800,
[data-fax-theme="laser"] #appScreen .text-stone-700,
[data-fax-theme="laser"] #appScreen .text-stone-600,
[data-fax-theme="laser"] #appScreen .text-stone-500 {
    color: var(--theme-text-body) !important;
}

[data-fax-theme="laser"] #appScreen .border-stone-200,
[data-fax-theme="laser"] #appScreen .border-stone-300,
[data-fax-theme="laser"] #appScreen .border-dashed {
    border-color: #404040 !important;
}

[data-fax-theme="laser"] #appScreen .compose-textarea {
    background-color: var(--paper-color) !important;
    color: var(--theme-text-body) !important;
}

[data-fax-theme="laser"] #appScreen .dialer-keypad,
[data-fax-theme="laser"] #appScreen .bg-\[\#c6beaf\] {
    background-color: var(--theme-dialer-keypad-bg) !important;
    border-color: var(--theme-dialer-keypad-border) !important;
}

[data-fax-theme="laser"] .start-jitfl-scene {
    border-color: #404040;
    box-shadow: 5px 12px 0 rgba(0, 0, 0, 0.55);
}

[data-fax-theme="laser"] .start-jitfl-televerket-caption {
    color: #d4d4d4;
}

[data-fax-theme="matrise"] #appScreen .text-stone-800,
[data-fax-theme="matrise"] #appScreen .text-stone-700,
[data-fax-theme="matrise"] #appScreen .text-stone-600 {
    color: var(--theme-text-body) !important;
}

[data-fax-theme="matrise"] #appScreen .dialer-keypad,
[data-fax-theme="matrise"] #appScreen .bg-\[\#c6beaf\] {
    background-color: var(--theme-dialer-keypad-bg) !important;
    border-color: var(--theme-dialer-keypad-border) !important;
}

[data-fax-theme="matrise"] #appScreen .compose-textarea {
    border-color: #a83030 !important;
}

[data-fax-theme="matrise"] .start-jitfl-scene {
    border-color: #a82828;
}

[data-fax-theme="matrise"] .start-incoming-link--active {
    color: #fff;
    border-color: #7a0a0a;
    background: #dc2626;
}

[data-fax-theme="matrise"] .btn-retro,
[data-fax-theme="matrise"] .app-nav-btn,
[data-fax-theme="matrise"] .start-switch-fax-btn,
[data-fax-theme="matrise"] .start-station-settings-btn,
[data-fax-theme="matrise"] .inbox-action-btn,
[data-fax-theme="matrise"] .custom-alert-btn.btn-retro {
    background-color: #c82828;
    border-color: #e85858 #7a0a0a #7a0a0a #e85858;
    color: #fff;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.45);
}

[data-fax-theme="matrise"] .btn-retro:active,
[data-fax-theme="matrise"] .app-nav-btn:active,
[data-fax-theme="matrise"] .start-switch-fax-btn:active {
    border-color: #7a0a0a #e85858 #e85858 #7a0a0a;
}

[data-fax-theme="matrise"] .btn-retro.active,
[data-fax-theme="matrise"] .app-nav-btn.active {
    background-color: #9f1818;
    border-color: #5c0808 #d84848 #d84848 #5c0808;
    color: #fff;
}

[data-fax-theme="matrise"] .btn-hardware-red {
    background-color: #b91c1c;
    border-color: #ef4444 #5c0808 #5c0808 #ef4444;
}

[data-fax-theme="matrise"] .dialer-keypad .btn-retro,
[data-fax-theme="matrise"] .dialer-keypad .btn-retro.text-xl,
[data-fax-theme="matrise"] .dialer-keypad .btn-retro.text-sm {
    color: #fff !important;
}

[data-fax-theme="matrise"] .app-logout-btn {
    background-color: #9f1818;
    border-color: #d84848 #5c0808 #5c0808 #d84848;
    color: #fff;
}

[data-fax-theme="matrise"] .fax-machine-picker-select {
    background: #c82828;
    border-color: #7a0a0a;
    color: #fff;
    box-shadow: 2px 2px 0 #000;
}

[data-fax-theme="matrise"] .fax-machine-picker-nav {
    border-color: #7a0a0a;
}

[data-fax-theme="satellitt"] #appScreen .text-stone-800,
[data-fax-theme="satellitt"] #appScreen .text-stone-700,
[data-fax-theme="satellitt"] #appScreen .text-stone-600 {
    color: var(--theme-text-body) !important;
}

[data-fax-theme="satellitt"] #appScreen .dialer-keypad,
[data-fax-theme="satellitt"] #appScreen .bg-\[\#c6beaf\] {
    background-color: var(--theme-dialer-keypad-bg) !important;
    border-color: var(--theme-dialer-keypad-border) !important;
}

[data-fax-theme="satellitt"] #appScreen .compose-textarea {
    border-color: #c878a8 !important;
}

[data-fax-theme="satellitt"] .start-jitfl-scene {
    border-color: #b86898;
}

[data-fax-theme="satellitt"] .start-jitfl-televerket-caption {
    color: #7a3068;
}

[data-fax-theme="satellitt"] .start-incoming-link--active {
    color: #fff;
    border-color: #8b3870;
    background: #db2777;
}

[data-fax-theme="overhead"] #appScreen .text-stone-800,
[data-fax-theme="overhead"] #appScreen .text-stone-700,
[data-fax-theme="overhead"] #appScreen .text-stone-600 {
    color: var(--theme-text-body) !important;
}

[data-fax-theme="overhead"] #appScreen .dialer-keypad,
[data-fax-theme="overhead"] #appScreen .bg-\[\#c6beaf\] {
    background-color: var(--theme-dialer-keypad-bg) !important;
    border-color: var(--theme-dialer-keypad-border) !important;
}

[data-fax-theme="overhead"] #appScreen .compose-textarea {
    border-color: #5a9e6f !important;
}

[data-fax-theme="overhead"] .start-jitfl-scene {
    border-color: #5a9e6f;
}

[data-fax-theme="overhead"] .start-jitfl-televerket-caption {
    color: #2d6a4a;
}

[data-fax-theme="overhead"] .start-incoming-link--active {
    color: #143322;
    border-color: #15803d;
    background: #4ade80;
}

[data-fax-theme="overhead"] .btn-retro,
[data-fax-theme="overhead"] .app-nav-btn,
[data-fax-theme="overhead"] .start-switch-fax-btn,
[data-fax-theme="overhead"] .start-station-settings-btn,
[data-fax-theme="overhead"] .inbox-action-btn,
[data-fax-theme="overhead"] .custom-alert-btn.btn-retro {
    background-color: #4ade80;
    border-color: #86efac #15803d #15803d #86efac;
    color: #143322;
    text-shadow: none;
}

[data-fax-theme="overhead"] .btn-retro:active,
[data-fax-theme="overhead"] .app-nav-btn:active,
[data-fax-theme="overhead"] .start-switch-fax-btn:active {
    border-color: #15803d #86efac #86efac #15803d;
}

[data-fax-theme="overhead"] .btn-retro.active,
[data-fax-theme="overhead"] .app-nav-btn.active {
    background-color: #22c55e;
    border-color: #14532d #86efac #86efac #14532d;
    color: #143322;
}

[data-fax-theme="overhead"] .btn-hardware-red {
    background-color: #dc2626;
    border-color: #ef4444 #7f1d1d #7f1d1d #ef4444;
}

[data-fax-theme="overhead"] .dialer-keypad .btn-retro,
[data-fax-theme="overhead"] .dialer-keypad .btn-retro.text-xl,
[data-fax-theme="overhead"] .dialer-keypad .btn-retro.text-sm {
    color: #143322 !important;
}

[data-fax-theme="overhead"] .app-logout-btn {
    background-color: #15803d;
    border-color: #86efac #14532d #14532d #86efac;
    color: #e8f8ef;
}

[data-fax-theme="overhead"] .fax-machine-picker-select {
    background: #22c55e;
    border-color: #15803d;
    color: #143322;
    box-shadow: 2px 2px 0 #000;
}

[data-fax-theme="overhead"] .fax-machine-picker-nav {
    border-color: #15803d;
}

[data-fax-theme="personsoker"] #appScreen .text-stone-800,
[data-fax-theme="personsoker"] #appScreen .text-stone-700,
[data-fax-theme="personsoker"] #appScreen .text-stone-600 {
    color: var(--theme-text-body) !important;
}

[data-fax-theme="personsoker"] #appScreen .dialer-keypad,
[data-fax-theme="personsoker"] #appScreen .bg-\[\#c6beaf\] {
    background-color: var(--theme-dialer-keypad-bg) !important;
    border-color: var(--theme-dialer-keypad-border) !important;
}

[data-fax-theme="personsoker"] #appScreen .compose-textarea {
    border-color: #ca8a04 !important;
}

[data-fax-theme="personsoker"] .start-jitfl-scene {
    border-color: #ca8a04;
}

[data-fax-theme="personsoker"] .start-jitfl-televerket-caption {
    color: #854d0e;
}

[data-fax-theme="personsoker"] .start-incoming-link--active {
    color: #422006;
    border-color: #a16207;
    background: #fde047;
}

[data-fax-theme="personsoker"] .btn-retro,
[data-fax-theme="personsoker"] .app-nav-btn,
[data-fax-theme="personsoker"] .start-switch-fax-btn,
[data-fax-theme="personsoker"] .start-station-settings-btn,
[data-fax-theme="personsoker"] .inbox-action-btn,
[data-fax-theme="personsoker"] .custom-alert-btn.btn-retro {
    background-color: #eab308;
    border-color: #fde047 #a16207 #a16207 #fde047;
    color: #422006;
    text-shadow: none;
}

[data-fax-theme="personsoker"] .btn-retro:active,
[data-fax-theme="personsoker"] .app-nav-btn:active,
[data-fax-theme="personsoker"] .start-switch-fax-btn:active {
    border-color: #a16207 #fde047 #fde047 #a16207;
}

[data-fax-theme="personsoker"] .btn-retro.active,
[data-fax-theme="personsoker"] .app-nav-btn.active {
    background-color: #ca8a04;
    border-color: #713f12 #fde047 #fde047 #713f12;
    color: #422006;
}

[data-fax-theme="personsoker"] .btn-hardware-red {
    background-color: #dc2626;
    border-color: #ef4444 #7f1d1d #7f1d1d #ef4444;
}

[data-fax-theme="personsoker"] .dialer-keypad .btn-retro,
[data-fax-theme="personsoker"] .dialer-keypad .btn-retro.text-xl,
[data-fax-theme="personsoker"] .dialer-keypad .btn-retro.text-sm {
    color: #422006 !important;
}

[data-fax-theme="personsoker"] .app-logout-btn {
    background-color: #a16207;
    border-color: #fde047 #713f12 #713f12 #fde047;
    color: #fef9c3;
}

[data-fax-theme="personsoker"] .fax-machine-picker-select {
    background: #eab308;
    border-color: #a16207;
    color: #422006;
    box-shadow: 2px 2px 0 #000;
}

[data-fax-theme="personsoker"] .fax-machine-picker-nav {
    border-color: #a16207;
}

[data-fax-theme="rorpost"] #appScreen .text-stone-800,
[data-fax-theme="rorpost"] #appScreen .text-stone-700,
[data-fax-theme="rorpost"] #appScreen .text-stone-600 {
    color: var(--theme-text-body) !important;
}

[data-fax-theme="rorpost"] #appScreen .dialer-keypad,
[data-fax-theme="rorpost"] #appScreen .bg-\[\#c6beaf\] {
    background-color: var(--theme-dialer-keypad-bg) !important;
    border-color: var(--theme-dialer-keypad-border) !important;
}

[data-fax-theme="rorpost"] #appScreen .compose-textarea {
    border-color: #c2410c !important;
}

[data-fax-theme="rorpost"] .start-jitfl-scene {
    border-color: #c2410c;
}

[data-fax-theme="rorpost"] .start-jitfl-televerket-caption {
    color: #7c2d12;
}

[data-fax-theme="rorpost"] .start-incoming-link--active {
    color: #431407;
    border-color: #9a3412;
    background: #fb923c;
}

[data-fax-theme="rorpost"] .btn-retro,
[data-fax-theme="rorpost"] .app-nav-btn,
[data-fax-theme="rorpost"] .start-switch-fax-btn,
[data-fax-theme="rorpost"] .start-station-settings-btn,
[data-fax-theme="rorpost"] .inbox-action-btn,
[data-fax-theme="rorpost"] .custom-alert-btn.btn-retro {
    background-color: #f97316;
    border-color: #fdba74 #c2410c #c2410c #fdba74;
    color: #431407;
    text-shadow: none;
}

[data-fax-theme="rorpost"] .btn-retro:active,
[data-fax-theme="rorpost"] .app-nav-btn:active,
[data-fax-theme="rorpost"] .start-switch-fax-btn:active {
    border-color: #c2410c #fdba74 #fdba74 #c2410c;
}

[data-fax-theme="rorpost"] .btn-retro.active,
[data-fax-theme="rorpost"] .app-nav-btn.active {
    background-color: #ea580c;
    border-color: #7c2d12 #fdba74 #fdba74 #7c2d12;
    color: #431407;
}

[data-fax-theme="rorpost"] .btn-hardware-red {
    background-color: #dc2626;
    border-color: #ef4444 #7f1d1d #7f1d1d #ef4444;
}

[data-fax-theme="rorpost"] .dialer-keypad .btn-retro,
[data-fax-theme="rorpost"] .dialer-keypad .btn-retro.text-xl,
[data-fax-theme="rorpost"] .dialer-keypad .btn-retro.text-sm {
    color: #431407 !important;
}

[data-fax-theme="rorpost"] .app-logout-btn {
    background-color: #c2410c;
    border-color: #fdba74 #7c2d12 #7c2d12 #fdba74;
    color: #ffedd5;
}

[data-fax-theme="rorpost"] .fax-machine-picker-select {
    background: #f97316;
    border-color: #c2410c;
    color: #431407;
    box-shadow: 2px 2px 0 #000;
}

[data-fax-theme="rorpost"] .fax-machine-picker-nav {
    border-color: #c2410c;
}

[data-fax-theme="telex"] #appScreen .text-stone-800,
[data-fax-theme="telex"] #appScreen .text-stone-700,
[data-fax-theme="telex"] #appScreen .text-stone-600 {
    color: var(--theme-text-body) !important;
}

[data-fax-theme="telex"] #appScreen .dialer-keypad,
[data-fax-theme="telex"] #appScreen .bg-\[\#c6beaf\] {
    background-color: var(--theme-dialer-keypad-bg) !important;
    border-color: var(--theme-dialer-keypad-border) !important;
}

[data-fax-theme="telex"] #appScreen .compose-textarea {
    border-color: #a67c00 !important;
}

[data-fax-theme="telex"] .start-jitfl-scene {
    border-color: #a67c00;
}

[data-fax-theme="telex"] .start-jitfl-televerket-caption {
    color: #6b5410;
}

[data-fax-theme="telex"] .start-incoming-link--active {
    color: #2a2205;
    border-color: #a67c00;
    background: #d4af37;
}

[data-fax-theme="telex"] .btn-retro,
[data-fax-theme="telex"] .app-nav-btn,
[data-fax-theme="telex"] .start-switch-fax-btn,
[data-fax-theme="telex"] .start-station-settings-btn,
[data-fax-theme="telex"] .inbox-action-btn,
[data-fax-theme="telex"] .custom-alert-btn.btn-retro {
    background-color: #d4af37;
    border-color: #f0d878 #a67c00 #a67c00 #f0d878;
    color: #2a2205;
    text-shadow: none;
}

[data-fax-theme="telex"] .btn-retro:active,
[data-fax-theme="telex"] .app-nav-btn:active,
[data-fax-theme="telex"] .start-switch-fax-btn:active {
    border-color: #a67c00 #f0d878 #f0d878 #a67c00;
}

[data-fax-theme="telex"] .btn-retro.active,
[data-fax-theme="telex"] .app-nav-btn.active {
    background-color: #b8901f;
    border-color: #6b5410 #f0d878 #f0d878 #6b5410;
    color: #2a2205;
}

[data-fax-theme="telex"] .btn-hardware-red {
    background-color: #dc2626;
    border-color: #ef4444 #7f1d1d #7f1d1d #ef4444;
}

[data-fax-theme="telex"] .dialer-keypad .btn-retro,
[data-fax-theme="telex"] .dialer-keypad .btn-retro.text-xl,
[data-fax-theme="telex"] .dialer-keypad .btn-retro.text-sm {
    color: #2a2205 !important;
}

[data-fax-theme="telex"] .app-logout-btn {
    background-color: #a67c00;
    border-color: #f0d878 #6b5410 #6b5410 #f0d878;
    color: #f7ecc9;
}

[data-fax-theme="telex"] .fax-machine-picker-select {
    background: #d4af37;
    border-color: #a67c00;
    color: #2a2205;
    box-shadow: 2px 2px 0 #000;
}

[data-fax-theme="telex"] .fax-machine-picker-nav {
    border-color: #a67c00;
}

[data-fax-theme="laser"] .mobile-app {
    background: var(--theme-body-bg);
}

[data-fax-theme="matrise"] .mobile-app {
    background: var(--theme-body-bg);
}

[data-fax-theme="satellitt"] .mobile-app {
    background: var(--theme-body-bg);
}

[data-fax-theme="overhead"] .mobile-app {
    background: var(--theme-body-bg);
}

[data-fax-theme="personsoker"] .mobile-app {
    background: var(--theme-body-bg);
}

[data-fax-theme="rorpost"] .mobile-app {
    background: var(--theme-body-bg);
}

[data-fax-theme="telex"] .mobile-app {
    background: var(--theme-body-bg);
}

[data-fax-theme="laser"] .pwa-setup-banner,
[data-fax-theme="matrise"] .pwa-setup-banner,
[data-fax-theme="satellitt"] .pwa-setup-banner,
[data-fax-theme="overhead"] .pwa-setup-banner,
[data-fax-theme="personsoker"] .pwa-setup-banner,
[data-fax-theme="rorpost"] .pwa-setup-banner,
[data-fax-theme="telex"] .pwa-setup-banner {
    background: var(--lcd-amber-bg);
    border-color: var(--theme-btn-border-lo);
}

[data-fax-theme="laser"] .fax-machine-picker,
[data-fax-theme="matrise"] .fax-machine-picker,
[data-fax-theme="satellitt"] .fax-machine-picker,
[data-fax-theme="overhead"] .fax-machine-picker,
[data-fax-theme="personsoker"] .fax-machine-picker,
[data-fax-theme="rorpost"] .fax-machine-picker,
[data-fax-theme="telex"] .fax-machine-picker {
    background: rgba(0, 0, 0, 0.82);
}

[data-fax-theme="laser"] .kartotek-card,
[data-fax-theme="matrise"] .kartotek-card,
[data-fax-theme="satellitt"] .kartotek-card,
[data-fax-theme="overhead"] .kartotek-card,
[data-fax-theme="personsoker"] .kartotek-card,
[data-fax-theme="rorpost"] .kartotek-card,
[data-fax-theme="telex"] .kartotek-card {
    background: var(--folder-card);
    border-color: var(--theme-btn-border-lo);
}

/* --- APP STORE RETRO TILPASNINGER --- */
body, html {
  user-select: none;
  -webkit-user-select: none;
  touch-action: manipulation; /* Deaktiverer dobbelttrykk-for-å-zoome */
  overflow: hidden; /* Hindrer hele app-kabinettet i å rulle/bounce elastisk */
  height: 100vh;
  width: 100vw;

  /* Sørg for at layout tar hensyn til iPhonens notch og hjemsveip-linje */
  padding-top: env(safe-area-inset-top);
  padding-bottom: env(safe-area-inset-bottom);
}

/* Sørg for at brukere fortsatt kan skrive i tekst- og inputfelter */
input, textarea, [contenteditable="true"] {
  user-select: text !important;
  -webkit-user-select: text !important;
}

/* Fjern den grå iOS-gløden når man trykker på mekaniske retro-knapper */
* {
  -webkit-tap-highlight-color: transparent;
}

/* ===================== FAXROM-KNAPP (header) ===================== */
.app-faxroom-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    width: 7rem;
    min-height: 40px;
    background: var(--theme-btn-bg);
    border: 3px solid var(--theme-btn-border-lo);
    padding: 9px 10px;
    color: var(--theme-btn-text);
    cursor: pointer;
    font-family: 'Share Tech Mono', monospace;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.03em;
    user-select: none;
}

.app-faxroom-btn:active {
    transform: translate(1px, 1px);
    background: var(--theme-btn-active-bg);
}

.app-faxroom-label {
    white-space: nowrap;
}

/* ===================== FAXBRUKER (profil) ===================== */
#screenFaxbruker.app-screen.is-active {
    grid-template-rows: minmax(0, 1fr) auto;
}

#screenFaxbruker .app-screen-body.faxbruker-body {
    grid-row: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    padding: 10px 12px;
    overflow: hidden;
    min-height: 0;
    height: 100%;
}

.faxbruker-card {
    width: 100%;
    max-width: 30rem;
    max-height: 100%;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 14px;
    padding: 12px 14px 14px;
    border-radius: 4px;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    box-sizing: border-box;
}

.faxbruker-avatar-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    width: 100%;
    flex: 0 0 auto;
}

/* Rund ramme i identisk proporsjon som det runde fax-vannmerket */
.faxbruker-avatar {
    width: min(56vw, 210px, 24svh);
    aspect-ratio: 1;
    border-radius: 50%;
    border: 4.3px solid var(--theme-accent);
    background: #f4f4f0;
    box-shadow:
        inset 0 0 17px rgba(0, 0, 0, 0.35),
        0 0 0 5px var(--theme-body-dot);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    position: relative;
    flex: 0 0 auto;
}

.faxbruker-avatar-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    /* Behold den harde svart/hvitt fax-looken uten glatting */
    image-rendering: pixelated;
    filter: grayscale(1) contrast(1.05);
}

.faxbruker-avatar-placeholder {
    color: var(--theme-text-muted);
    font-size: clamp(48px, 18vw, 84px);
    opacity: 0.7;
}

.faxbruker-avatar-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: center;
    flex: 0 0 auto;
    position: relative;
    z-index: 1;
}

.faxbruker-avatar-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 48px;
    padding: 10px 17px;
    background: var(--theme-btn-bg);
    border: 2px solid var(--theme-btn-border-lo);
    color: var(--theme-btn-text);
    font-family: 'Share Tech Mono', monospace;
    font-size: 13.2px;
    font-weight: 700;
    letter-spacing: 0.04em;
    cursor: pointer;
    user-select: none;
}

.faxbruker-avatar-btn:active {
    transform: translate(1px, 1px);
    background: var(--theme-btn-active-bg);
}

.faxbruker-avatar-status {
    min-height: 0;
    font-family: 'Courier Prime', monospace;
    font-size: 10px;
    letter-spacing: 0.04em;
    color: var(--theme-session-text);
    text-align: center;
    opacity: 0.85;
}

.faxbruker-avatar-status:empty {
    display: none;
}

.faxbruker-name-block,
.faxbruker-coins-block {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    text-align: center;
    flex: 0 0 auto;
    position: relative;
    z-index: 0;
}

.faxbruker-coins-label {
    font-family: 'Courier Prime', monospace;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--theme-session-text);
    opacity: 0.75;
}

.faxbruker-name {
    display: block;
    margin: 0;
    font-family: 'Share Tech Mono', monospace;
    font-size: clamp(26px, 5.5svh, 40px);
    font-weight: 700;
    letter-spacing: 0.03em;
    line-height: 1.15;
    color: var(--theme-session-text);
}

.faxbruker-coins-block {
    border-top: 1px dashed var(--theme-body-dot);
    padding-top: 12px;
    margin-top: 2px;
}

.faxbruker-coins-value {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-family: 'Share Tech Mono', monospace;
    font-size: clamp(40px, 8svh, 72px);
    font-weight: 700;
    line-height: 1;
    color: var(--theme-session-text);
    font-variant-numeric: tabular-nums;
}

.faxbruker-coins-value i {
    color: var(--theme-accent);
    font-size: 0.72em;
}

.faxbruker-refill-btn {
    width: 100%;
    max-width: 22rem;
    min-height: 44px;
    padding: 10px 18px;
    background: var(--theme-btn-bg);
    border: 3px solid var(--theme-btn-border-lo);
    border-top-color: var(--theme-btn-border-hi);
    border-left-color: var(--theme-btn-border-hi);
    color: var(--theme-btn-text);
    font-family: 'Share Tech Mono', monospace;
    font-size: 15.6px;
    font-weight: 700;
    letter-spacing: 0.03em;
    cursor: pointer;
    user-select: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    animation: faxbruker-refill-blink 0.9s ease-in-out infinite;
}

.faxbruker-refill-btn i {
    color: var(--theme-accent);
    font-size: 2em;
}

@keyframes faxbruker-refill-blink {
    0%, 100% {
        opacity: 1;
        filter: brightness(1.05);
        box-shadow: 0 0 6px color-mix(in srgb, var(--theme-accent) 20%, transparent);
    }
    50% {
        opacity: 0.42;
        filter: brightness(1.2);
        box-shadow: 0 0 16px color-mix(in srgb, var(--theme-accent) 55%, transparent);
    }
}

.faxbruker-refill-btn:active {
    animation: none;
    transform: translate(1px, 1px);
    background: var(--theme-btn-active-bg);
    border-color: var(--theme-btn-active-border-lo);
    border-top-color: var(--theme-btn-active-border-hi);
    border-left-color: var(--theme-btn-active-border-hi);
}

.faxbruker-footer {
    grid-row: 2;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 8px;
}

.faxbruker-faxrom-btn {
    width: 100%;
    max-width: 22rem;
    margin: 0 auto;
    padding: 14px;
    font-size: 14px;
    letter-spacing: 0.08em;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

/* Hardware-knapper som følger valgt faxmaskin (PAPIR, SEND FAX, FAXROM, …) */
.btn-theme-hardware.btn-hardware-red,
[data-fax-theme] .btn-theme-hardware.btn-hardware-red,
.faxbruker-faxrom-btn.btn-hardware-red,
[data-fax-theme] .faxbruker-faxrom-btn.btn-hardware-red {
    background-color: var(--theme-btn-bg);
    border: 3px solid;
    border-color: var(--theme-btn-border-hi) var(--theme-btn-border-lo) var(--theme-btn-border-lo) var(--theme-btn-border-hi);
    color: var(--theme-btn-text);
    text-shadow: none;
}

[data-fax-theme] .btn-theme-hardware.btn-hardware-red:active,
[data-fax-theme] .faxbruker-faxrom-btn.btn-hardware-red:active {
    background-color: var(--theme-btn-active-bg);
    border-color: var(--theme-btn-border-lo) var(--theme-btn-border-hi) var(--theme-btn-border-hi) var(--theme-btn-border-lo);
}

/* Overstyr tema-spesifikke røde .btn-hardware-red-regler for temaknapper */
[data-fax-theme="matrise"] .btn-theme-hardware.btn-hardware-red,
[data-fax-theme="overhead"] .btn-theme-hardware.btn-hardware-red,
[data-fax-theme="personsoker"] .btn-theme-hardware.btn-hardware-red,
[data-fax-theme="rorpost"] .btn-theme-hardware.btn-hardware-red,
[data-fax-theme="telex"] .btn-theme-hardware.btn-hardware-red {
    background-color: var(--theme-btn-bg);
    border-color: var(--theme-btn-border-hi) var(--theme-btn-border-lo) var(--theme-btn-border-lo) var(--theme-btn-border-hi);
    color: var(--theme-btn-text);
}
