.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:600;font-family:inherit;line-height:1;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background-color var(--dur-base) var(--ease),border-color var(--dur-base) var(--ease),color var(--dur-base) var(--ease),box-shadow var(--dur-base) var(--ease),transform var(--dur-fast) var(--ease)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-primary{background:var(--primary-color);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover);box-shadow:var(--shadow-md)}.btn-secondary{background:var(--background-color);color:var(--text-primary);border-color:var(--border-color)}.btn-secondary:hover:not(:disabled){border-color:var(--primary-color);color:var(--primary-color)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--surface-color);color:var(--text-primary)}.btn-danger{background:var(--danger-color);color:#fff}.btn-danger:hover:not(:disabled){filter:brightness(.92)}.btn-sm{padding:var(--space-2) var(--space-4);font-size:var(--text-sm)}.btn-lg{padding:var(--space-4) var(--space-6);font-size:var(--text-lg)}.card{background:var(--background-color);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-5)}.card-hover{transition:box-shadow var(--dur-base) var(--ease),transform var(--dur-base) var(--ease),border-color var(--dur-base) var(--ease)}.card-hover:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field>label{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.input,.select,.textarea{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--text-base);font-family:inherit;color:var(--text-primary);background:var(--background-color);transition:border-color var(--dur-base) var(--ease),box-shadow var(--dur-base) var(--ease)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1f}.input::-moz-placeholder,.textarea::-moz-placeholder{color:var(--text-muted)}.input::placeholder,.textarea::placeholder{color:var(--text-muted)}.field-error{font-size:var(--text-sm);color:var(--danger-color)}.chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--background-color);border:1px solid var(--border-color);border-radius:999px;font-size:var(--text-sm);font-weight:500;color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:border-color var(--dur-base) var(--ease),color var(--dur-base) var(--ease),background-color var(--dur-base) var(--ease)}.chip:hover{border-color:var(--primary-color);color:var(--primary-color)}.chip.active{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:999px;font-size:var(--text-xs);font-weight:600;line-height:1.4}.badge-success{background:#10b9811f;color:var(--accent-color)}.badge-warning{background:#f59e0b24;color:var(--warning-color)}.badge-danger{background:#ef44441f;color:var(--danger-color)}.badge-info{background:#2563eb1f;color:var(--primary-color)}.skeleton{position:relative;overflow:hidden;background:var(--border-color);border-radius:var(--radius-sm);color:transparent!important;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.skeleton:after{content:"";position:absolute;top:0;bottom:0;left:0;width:45%;background:linear-gradient(90deg,transparent 0%,rgb(255 255 255 / .4) 50%,transparent 100%);transform:translate(-100%);animation:hu-skjelett-glans 1.5s var(--ease) infinite}@keyframes hu-skjelett-glans{to{transform:translate(322%)}}@media(prefers-reduced-motion:reduce){.skeleton:after{animation:none}}.skeleton-text{height:1em;border-radius:var(--radius-sm)}.skeleton-circle{border-radius:50%}.skeleton-card{min-height:180px;border-radius:var(--radius-lg)}.empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-5);text-align:center}.empty-state svg{color:var(--text-muted)}.empty-state h3{font-size:var(--text-xl);color:var(--text-primary)}.empty-state p{font-size:var(--text-base);color:var(--text-secondary);max-width:34rem}.btn:focus-visible,.chip:focus-visible,.input:focus-visible,.select:focus-visible,.textarea:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.label-like{display:block;margin-bottom:var(--space-2);font-weight:600;color:var(--text-primary)}.label-like.required:after{content:" *";color:var(--danger-color)}.sprak-valg{display:flex;flex-wrap:wrap;gap:var(--space-2)}.sprak-boks{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--background-color);cursor:pointer;font-size:var(--text-sm);transition:border-color var(--dur-base) var(--ease),background-color var(--dur-base) var(--ease)}.sprak-boks span{color:var(--text-secondary)}.sprak-boks:hover{border-color:var(--primary-color)}.sprak-boks input{width:auto;min-width:0;margin:0;accent-color:var(--primary-color)}.sprak-boks:has(input:checked){border-color:var(--primary-color);background:#2563eb1f}.sprak-boks:has(input:checked) span{color:var(--text-primary);font-weight:600}.avb-kort-rad{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-3)}.avb-kort{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);text-align:left;border:2px solid var(--border-color);border-radius:var(--radius-lg);background:var(--bg-surface);cursor:pointer;font-family:inherit;transition:border-color var(--dur-base) var(--ease),background-color var(--dur-base) var(--ease)}.avb-kort:hover{border-color:var(--primary-color)}.avb-kort.valgt{border-color:var(--primary-color);background:#2563eb14}.avb-navn{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-base);font-weight:700;color:var(--text-primary)}.avb-anbefalt{padding:2px var(--space-2);border-radius:var(--radius-sm);background:var(--primary-color);color:#fff;font-size:var(--text-xs);font-weight:600}.avb-loefte{font-size:var(--text-sm);color:var(--text-secondary)}.avb-trapp{display:flex;flex-direction:column;gap:var(--space-1);margin-top:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--border-color)}.avb-linje{display:flex;justify-content:space-between;gap:var(--space-3);font-size:var(--text-sm)}.avb-gebyr{font-weight:600;color:var(--text-primary);white-space:nowrap}.avb-naar{color:var(--text-muted);text-align:right}.avb-hjelp{margin-top:var(--space-3)}
