* {    margin: 0;    padding: 0;    box-sizing: border-box;}body {    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;    background-color: #f5f5f5;    min-height: 100vh;    display: flex;    flex-direction: column;}.header {    background: white;    border-bottom: 1px solid #e0e0e0;    padding: 16px 24px;    display: flex;    justify-content: space-between;    align-items: center;    position: sticky;    top: 0;    z-index: 100;}.header-left {    display: flex;    align-items: center;    gap: 8px;    cursor: pointer;    padding: 8px 0;}.hamburger-btn {    width: 20px;    height: 14px;    background: none;    border: none;    cursor: pointer;    display: flex;    flex-direction: column;    justify-content: space-between;    align-items: stretch;    padding: 0;    margin: 4px 0;    border-radius: 2px;    transition: opacity 0.2s;}.hamburger-btn:hover {    opacity: 0.7;}.hamburger-line {    width: 100%;    height: 2px;    background-color: #333;    border-radius: 1px;}.header-center h1 {    position: absolute;    left: 50%;    transform: translateX(-50%);    font-size: 20px;    font-weight: 500;    color: #333;    text-align: center;    white-space: nowrap;}.header-right {    width: 262px;    height: 60px;    display: flex;    align-items: center;    justify-content: center;}.header-right img {    max-width: 100%;    max-height: 100%;    object-fit: contain;}.main-content {    flex: 1;    padding: 24px;    display: flex;    gap: 20px;    max-width: 1400px;    margin: 0 auto;    width: 100%;}.left-panel {    flex: 45;    background: white;    border-radius: 8px;    border: 1px solid #e0e0e0;    overflow: hidden;}.panel-header {    padding: 16px 20px;    background: #f8f9fa;    border-bottom: 1px solid #e0e0e0;    display: flex;    align-items: center;    gap: 8px;    font-weight: 500;    color: #333;    justify-content: space-between;}.panel-header-left {    display: flex;    align-items: center;    gap: 8px;}.formatting-buttons {    display: flex;    gap: 4px;}.format-btn {    width: 28px;    height: 28px;    border: 1px solid #ddd;    border-radius: 3px;    background: white;    cursor: pointer;    display: flex;    align-items: center;    justify-content: center;    font-size: 13px;    transition: all 0.2s;}#normalBtn {    font-weight: normal;}#boldBtn {    font-weight: bold;}#italicBtn {    font-style: italic;    font-weight: normal;}#largeBtn {    font-size: 16px;    font-weight: 600;}.format-btn:hover {    background: #f0f0f0;    border-color: #4285f4;}.format-btn.active {    background: #e3f2fd;    border-color: #4285f4;    color: #4285f4;}.panel-content {    padding: 20px;}.instruction-textarea {    width: 100%;    min-height: 300px;    border: 1px solid #ddd;    border-radius: 4px;    padding: 16px;    font-size: 14px;    font-family: inherit;    resize: vertical;    line-height: 1.5;}.instruction-textarea:focus {    outline: none;    border-color: #4285f4;}.instruction-textarea::placeholder {    color: #999;}.file-upload-section {    margin-top: 16px;    padding-top: 16px;    border-top: 1px solid #e0e0e0;}.file-upload-area {    border: 2px dashed #d0d0d0;    border-radius: 8px;    padding: 24px;    text-align: center;    cursor: pointer;    transition: all 0.3s ease;    background: #fafafa;}.file-upload-area:hover {    border-color: #4285f4;    background: #f8f9ff;}.file-upload-area.dragover {    border-color: #4285f4;    background: #e3f2fd;}.upload-icon {    font-size: 32px;    margin-bottom: 12px;    opacity: 0.6;}.upload-text {    display: flex;    flex-direction: column;    gap: 4px;}.upload-text strong {    color: #333;    font-size: 14px;}.upload-text span {    color: #666;    font-size: 12px;}.file-info {    margin-top: 12px;    padding: 12px;    border: 1px solid #e0e0e0;    border-radius: 6px;    background: white;}.file-details {    display: flex;    align-items: center;    gap: 12px;    margin-bottom: 12px;}.file-icon {    font-size: 20px;    opacity: 0.7;}.file-data {    flex: 1;}.file-name {    font-weight: 500;    color: #333;    font-size: 14px;}.file-size {    color: #666;    font-size: 12px;}.remove-file-btn {    background: none;    border: none;    color: #999;    cursor: pointer;    font-size: 16px;    padding: 4px;    border-radius: 50%;    width: 24px;    height: 24px;    display: flex;    align-items: center;    justify-content: center;    transition: all 0.2s;}.remove-file-btn:hover {    background: #f0f0f0;    color: #d32f2f;}.file-checkbox {    padding-top: 8px;    border-top: 1px solid #f0f0f0;}.file-checkbox label {    display: flex;    align-items: center;    gap: 8px;    font-size: 13px;    color: #555;    cursor: pointer;}.file-checkbox input[type="checkbox"] {    margin: 0;}.middle-panel {    flex: 10;    display: flex;    flex-direction: column;    justify-content: flex-start;    gap: 20px;    padding: 60px 0 0 0;    position: relative;}.btn {    border: none;    border-radius: 6px;    padding: 12px 16px;    font-size: 14px;    font-weight: 500;    cursor: pointer;    transition: all 0.2s;    display: flex;    align-items: center;    justify-content: center;    gap: 8px;}.btn-primary {    background-color: #00a0e0;    color: white;}.btn-primary:hover {    background-color: #8ed0fc;}.btn-success {    background-color: #34a853;    color: white;    position: absolute;    bottom: 0;    left: 0;    right: 0;}.btn-success:hover {    background-color: #2d8a47;}.info-btn {    width: 140px;    height: 60px;    display: flex;    align-items: center;    justify-content: center;    margin: 0 auto;    pointer-events: none;    position: absolute;    top: 50%;    left: 50%;    transform: translate(-50%, -50%);}.logo-text {    font-family: 'Pacifico', 'Dancing Script', 'Brush Script MT', 'Lucida Handwriting', cursive;    font-size: 48px;    font-weight: bold;    color: white;    letter-spacing: 3px;}.right-panel {    flex: 45;    background: white;    border-radius: 8px;    border: 1px solid #e0e0e0;    overflow: hidden;}.document-editor {    width: 100%;    min-height: 300px;    border: none;    padding: 20px;    font-size: 14px;    font-family: inherit;    line-height: 1.6;    outline: none;    overflow-y: auto;}.document-editor[contenteditable="true"]:empty::before {    content: attr(data-placeholder);    color: #999;}.document-editor .large {    font-size: 18px !important;    font-weight: 500 !important;}.bottom-section {    background: white;    border-top: 1px solid #e0e0e0;    padding: 24px;    margin-top: auto;}.document-details {    display: flex;    gap: 40px;    align-items: flex-start;    max-width: 1400px;    margin: 0 auto;    padding: 16px;    border: 1px solid #e8e8e8;    border-radius: 6px;    background: #fafafa;    position: relative;}.document-details::before {    content: "Feltene fylles automatisk av GPT hvis de blir gjenkjent (* = påkrevd felt)";    position: absolute;    top: -8px;    left: 12px;    background: #fafafa;    padding: 0 8px;    font-size: 11px;    color: #888;    font-weight: 500;}.details-left {    flex: 3;    display: grid;    grid-template-columns: repeat(5, minmax(160px, 1fr)); /* 5 faste kolonner */    gap: 20px;    align-items: start; /* vertikal toppjustering */    width: 100%;}.details-right {    flex: 1;    min-width: 200px;    display: flex;    align-items: start; /* Juster til samme høyde som venstre side */    margin-top: 0; /* Sørg for at den starter på samme nivå */}.detail-group {    display: flex;    flex-direction: column;    gap: 8px;    min-width: 160px; /* Redusert fra tidligere bredde */    max-width: 280px; /* Begrens maksimal bredde */}.detail-group label {    font-weight: 500;    color: #333;    font-size: 14px;    display: flex;    align-items: center;    gap: 8px;}.detail-group input.invalid,.detail-group select.invalid {    border-color: #dc3545;    background-color: #fff5f5;}.validation-message {    color: #dc3545;    font-size: 12px;    margin-top: 4px;    display: none;}.validation-message.show {    display: block;}.detail-group select,.detail-group input {    padding: 10px 12px;    border: 1px solid #ddd;    border-radius: 4px;    font-size: 14px;    background: white;}.detail-group select:focus,.detail-group input:focus {    outline: none;    border-color: #4285f4;}.customer-type-selector {    display: flex;    flex-direction: column;    gap: 8px;    margin-top: 8px;}.radio-option {    border: 1px solid #ddd;    border-radius: 4px;    padding: 10px 12px;    cursor: pointer;    transition: all 0.2s;    display: flex;    align-items: center;    gap: 8px;    background: white;}.radio-option:hover {    border-color: #4285f4;    background: white;}.radio-option input[type="radio"] {    margin: 0;}.radio-option input[type="radio"]:checked {    accent-color: #4285f4;}.radio-option:has(input[type="radio"]:checked) {    border-color: #4285f4;    background: white;}.radio-option input[type="radio"]:checked + label {    color: #4285f4;    font-weight: 500;}.radio-option.selected {    border-color: #4285f4;    background: white;}.radio-option label {    display: flex;    align-items: center;    gap: 8px;    cursor: pointer;    margin: 0;    font-size: 13px;    width: 100%;}.customer-type-modal {    max-width: 450px;    text-align: center;}.customer-type-modal h3 {    margin-bottom: 12px;    color: #333;}.customer-type-modal p {    margin-bottom: 20px;    color: #666;    line-height: 1.4;}.customer-type-modal-options {    display: flex;    flex-direction: column;    gap: 12px;    margin-bottom: 24px;}.customer-type-modal-options .radio-option {    padding: 16px;    justify-content: center;}.modal-buttons {    display: flex;    justify-content: center;}.modal-buttons .btn {    min-width: 120px;}.price-fields {    display: flex;    flex-direction: column;    gap: 4px;    margin-top: 0px; /* Fjern ekstra margin - samme som andre felt */}.price-fields input {    padding: 10px 12px;    border: 1px solid #ddd;    border-radius: 4px;    font-size: 14px;    background: white;}.price-fields input:focus {    outline: none;    border-color: #4285f4;    background: white;}.price-explanation {    font-size: 11px;    color: #888;    font-weight: 500;    margin-top: 4px;    line-height: 1.3;}.download-section {    display: none;    padding: 16px;    border: 1px solid #c3e6c3;    border-radius: 6px;    background: #f0f8f0;    position: relative;    width: 100%; /* Fyller hele tilgjengelige bredde */    box-sizing: border-box; /* Inkluderer padding og border i bredde */}.download-section::before {    content: "Dokumentet er ferdig";    position: absolute;    top: -8px;    left: 12px;    background: #f0f8f0;    padding: 0 8px;    font-size: 11px;    color: #2d5a2d;    font-weight: 500;}.download-section.visible {    display: block;}.download-title {    font-weight: 500;    color: #333;    margin-bottom: 16px;    display: flex;    align-items: center;    gap: 8px;}.download-buttons {    display: flex;    flex-direction: column;    gap: 8px;}.download-btn {    padding: 10px 16px;    border: 1px solid #ddd;    border-radius: 4px;    background: white;    cursor: pointer;    text-align: left;    font-size: 14px;    transition: all 0.2s;    display: flex;    align-items: center;    gap: 8px;}.download-btn:hover {    background: #f8f9fa;    border-color: #4285f4;}.status-indicator {    display: none;    align-items: center;    gap: 8px;    margin-top: 20px;    padding: 12px 16px;    background: #e8f5e8;    border: 1px solid #c3e6c3;    border-radius: 4px;    color: #2d5a2d;    font-size: 14px;}.status-indicator.visible {    display: flex;}.modal {    display: none;    position: fixed;    z-index: 1000;    left: 0;    top: 0;    width: 100%;    height: 100%;    background-color: rgba(0,0,0,0.5);}.modal-content {    background-color: white;    margin: 10% auto;    padding: 30px;    border-radius: 8px;    width: 80%;    max-width: 600px;    position: relative;}.close {    position: absolute;    right: 20px;    top: 15px;    font-size: 28px;    font-weight: bold;    cursor: pointer;    color: #999;}.close:hover {    color: #333;}.markdown-help h3 {    margin-bottom: 16px;    color: #333;}.markdown-help pre {    background: #f5f5f5;    padding: 16px;    border-radius: 4px;    border-left: 4px solid #4285f4;    font-family: 'Courier New', monospace;    font-size: 14px;    line-height: 1.4;}.icon-word-svg {    width: 24px;    height: 24px;    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><rect x="4" y="3" width="16" height="18" rx="2" fill="%23185abd" stroke="%23185abd"/><text x="12" y="16" text-anchor="middle" fill="white" font-size="8" font-weight="bold">W</text></svg>') center/contain no-repeat;    display: inline-block;}.icon-pdf-svg {    width: 24px;    height: 24px;    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><rect x="4" y="3" width="16" height="18" rx="2" fill="%23d32f2f" stroke="%23d32f2f"/><text x="12" y="16" text-anchor="middle" fill="white" font-size="6" font-weight="bold">PDF</text></svg>') center/contain no-repeat;    display: inline-block;}.icon-signed-pdf-svg {    width: 24px;    height: 24px;    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><rect x="4" y="3" width="16" height="18" rx="2" fill="%23d32f2f" stroke="%23d32f2f"/><text x="12" y="16" text-anchor="middle" fill="white" font-size="6" font-weight="bold">PDF</text><circle cx="18" cy="18" r="4" fill="%23388e3c"/><path d="M16 18 L17.5 19.5 L20 17" stroke="white" stroke-width="1.5" fill="none" stroke-linecap="round" stroke-linejoin="round"/></svg>') center/contain no-repeat;    display: inline-block;}.icon-info::before { content: "ℹ️"; }.icon-document::before { content: "📄"; }.icon-instruction::before { content: "✏️"; }.icon-recipient::before { content: "👤"; }.icon-contact::before { content: "👨‍💼"; }.icon-type::before { content: "📋"; }.icon-customer::before { content: "🏷️"; }.icon-price::before { content: "💰"; }.icon-download::before { content: "⬇️"; }.icon-check::before { content: "✅"; }@media (max-width: 768px) {    .header-center h1 {        position: static;        transform: none;        margin-top: 10px;        font-size: 18px;    }        .header {        flex-direction: column;        align-items: center;        gap: 10px;        padding: 16px 24px 20px 24px;    }        .header-left {        order: 1;        align-self: flex-start;        position: absolute;        left: 24px;        top: 16px;    }        .header-right {        order: 2;        width: auto;        height: 50px;    }        .header-center {        order: 3;        margin-top: 5px;    }        .main-content {        flex-direction: column;        gap: 16px;    }        .middle-panel {        padding: 20px 0;        gap: 20px;        position: static;    }        .btn-success {        position: static;        margin-top: 0;    }        .info-btn {        position: static;        transform: none;        margin: 0 auto;    }        .document-details {        flex-direction: column;        gap: 20px;    }        .details-left {        display: flex;        flex-direction: column;        gap: 20px;        grid-template-columns: none;    }        .detail-group:nth-child(4),    .detail-group:nth-child(5) {        visibility: visible;    }    .version-info {        text-align: center !important;    }}.version-info {    position: fixed;    bottom: 8px;    right: 12px;    font-size: 10px;    color: #999;    font-family: 'Monaco', 'Consolas', monospace;    opacity: 0.6;    pointer-events: none;    z-index: 50;}/* Loading overlay styling */#loadingOverlay {    position: fixed;    top: 0;    left: 0;    width: 100%;    height: 100%;    background-color: rgba(0, 0, 0, 0.7);    display: none;    justify-content: center;    align-items: center;    z-index: 9999;    backdrop-filter: blur(2px);}.loading-content {    background: white;    border-radius: 12px;    padding: 40px;    text-align: center;    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);    width: 500px;}.loading-spinner {    width: 50px;    height: 50px;    border: 4px solid #f3f3f3;    border-top: 4px solid #00a0e0;    border-radius: 50%;    animation: spin 1s linear infinite;    margin: 0 auto 20px auto;}@keyframes spin {    0% { transform: rotate(0deg); }    100% { transform: rotate(360deg); }}.loading-text {    font-size: 18px;    font-weight: 600;    color: #333;    margin-bottom: 8px;}.loading-dots::after {    content: '';    animation: progressiveDots 2s infinite;}@keyframes progressiveDots {    0% { content: ''; }    25% { content: '.'; }    50% { content: '..'; }    75% { content: '...'; }    100% { content: ''; }}.loading-subtext {    font-size: 14px;    color: #666;    line-height: 1.4;    margin-bottom: 20px;}.loading-random {    font-size: 13px;    color: #888;    line-height: 1.3;    font-style: italic;    opacity: 0.9;    min-height: 40px;    display: flex;    align-items: center;    justify-content: center;}.loading-subtext {    font-size: 14px;    color: #666;    line-height: 1.4;}.loading-random {    font-size: 13px;    color: #888;    margin-top: 12px;    line-height: 1.3;    font-style: italic;    opacity: 0.9;}.document-editor h1 {    font-size: 22px !important;    font-weight: 600 !important;    margin: 16px 0 12px 0 !important;    color: #333 !important;    border-bottom: 2px solid #00a0e0;    padding-bottom: 6px;}.document-editor h2 {    font-size: 18px !important;    font-weight: 600 !important;    margin: 14px 0 10px 0 !important;    color: #333 !important;}.document-editor p {    font-size: 14px !important;    line-height: 1.6 !important;    margin: 0 0 12px 0 !important;    color: inherit !important;}.document-editor strong {    font-weight: 600 !important;    color: #333 !important;}.document-editor em {    font-style: italic !important;    color: #333 !important;}/* Juster kundetype og prisfelt så de står på linje med andre felter */#customerTypeGroup,#priceGroup {    margin-top: 0 !important;    padding-top: 0 !important;    align-self: start !important;}/* Juster kundetype-selector og pris-felter til samme høyde som andre felt */.customer-type-selector {    display: flex;    flex-direction: column;    gap: 8px;    margin-top: 0px; /* Fjern ekstra margin - samme som andre felt */}/* Sørg for at label og innhold starter på samme høyde */#customerTypeGroup .detail-group,#priceGroup .detail-group {    gap: 8px; /* Samme gap som andre detail-group */}/* Fjern ekstra spacing fra radio-options */.radio-option:first-child {    margin-top: 0;}.price-fields input:first-child {    margin-top: 0;}/* Felles fontstørrelse og stil for alle relevante felttyper */input,textarea,select,label,input::placeholder,textarea::placeholder {    font-size: 0.9em;    font-family: inherit;    color: #6c757d;    line-height: 1.4;}/* Sørg for at radio-labels også treffer riktig */input[type="radio"] + label {    font-size: 0.8em;    color: #6c757d;    font-family: inherit;    font-weight: normal;    line-height: 1.4;}/* CSS for overlay når ting genereres */#loadingOverlay {    position: fixed;    top: 0;    left: 0;    width: 100%;    height: 100%;    background-color: rgba(0, 0, 0, 0.3);  /* endre denne for å justere overlay */    display: none;    align-items: center;    justify-content: center;    z-index: 9999;}#loadingBox {    background: white;    border: 1px solid #ccc;    border-radius: 8px;    padding: 30px;    text-align: center;    width: 50%; /* Økt fra typisk 50% til 65% */    max-width: 600px;    box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);}.spinner {    margin: 0 auto 20px auto;    width: 40px;    height: 40px;    border: 5px solid #ccc;    border-top-color: #444;    border-radius: 50%;    animation: spin 1s linear infinite;}@keyframes spin {    to { transform: rotate(360deg); }}#overlayOneLiner {    font-size: 1.1em;    color: #333;}/* ERSTATT I styles.css - fjernet grønn fra panel og ramme *//* Knapp-stilar for regenerering */.btn-primary.regenerating {    background-color: #0484b8 !important;    border-color: #0484b8 !important;}.btn-primary.regenerating:hover {    background-color: #3da8ef !important;    border-color: #3da8ef !important;}/* Vannmerke for utkast */.draft-watermark {    position: absolute;    top: 50%;    left: 50%;    transform: translate(-50%, -50%) rotate(-25deg);    font-size: 72px;    font-weight: bold;    color: rgba(220, 53, 69, 0.15);    pointer-events: none;    z-index: 10;    font-family: 'Arial', sans-serif;    text-transform: uppercase;    letter-spacing: 8px;    user-select: none;}/* Sørg for at høyre panel har relativ posisjon for vannmerket */.right-panel {    position: relative;}/* FIKSET: Kun textarea får grønn bakgrunn, ikke panel eller ramme */.instruction-textarea.regenerating {    background-color: #e5f2fb !important;    transition: background-color 0.3s ease;}/* Sørg for at download-linker ser ut som buttons */.download-btn[href] {    text-decoration: none !important;    display: flex !important;    align-items: center !important;    color: #333 !important;    font-weight: 600 !important;  /* Match PDF-buttons exactly */    font-family: inherit !important; /* Sikre samme font */}.download-btn[href]:hover {    text-decoration: none !important;}.btn:disabled,.btn.disabled-state {    opacity: 0.6;    cursor: not-allowed;}body.document-finalized .instruction-textarea {    background-color: #f5f5f5 !important;    color: #666 !important;    cursor: not-allowed !important;    pointer-events: none !important;}body.document-finalized .document-editor {    background-color: #f5f5f5 !important;    color: #666 !important;    cursor: not-allowed !important;    pointer-events: none !important;}body.document-finalized .detail-group input,body.document-finalized .detail-group select,body.document-finalized .detail-group .radio-option {    background-color: #f5f5f5 !important;    color: #666 !important;    cursor: not-allowed !important;    pointer-events: none !important;}body.document-finalized .btn-primary {    background-color: #ccc !important;    cursor: not-allowed !important;    pointer-events: none !important;}body.document-finalized .file-upload-section {    pointer-events: none !important;    opacity: 0.6 !important;}body.document-finalized .file-upload-area {    background-color: #f5f5f5 !important;    border-color: #ddd !important;    cursor: not-allowed !important;    pointer-events: none !important;}body.document-finalized .file-info {    pointer-events: none !important;    opacity: 0.6 !important;}body.document-finalized::before {    content: "Dokumenten ferdigstilt og derfor låst";    position: fixed;    top: 80px;    left: 50%;    transform: translateX(-50%);  /* Midtstiller */    background: #28a745;    color: white;    padding: 8px 12px;    border-radius: 4px;    font-size: 12px;    z-index: 1000;    box-shadow: 0 2px 4px rgba(0,0,0,0.2);}