.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-weight:500;border-radius:var(--border-radius);transition:all var(--transition-fast);white-space:nowrap;position:relative;overflow:hidden;cursor:pointer;border:var(--border-width) solid transparent}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn:active:not(:disabled){transform:translateY(1px)}.btn--sm{padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs);min-height:32px}.btn--md{padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);min-height:40px}.btn--lg{padding:var(--space-3) var(--space-6);font-size:var(--font-size-base);min-height:48px}.btn--primary{background-color:var(--color-primary);color:#fff;box-shadow:var(--shadow-xs)}.btn--primary:hover:not(:disabled){background-color:var(--color-primary-hover);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.btn--primary:active:not(:disabled){box-shadow:var(--shadow-xs)}.btn--secondary{background-color:#fff;color:var(--color-gray-700);border-color:var(--border-color);box-shadow:var(--shadow-xs)}.btn--secondary:hover:not(:disabled){background-color:var(--color-gray-50);border-color:var(--color-gray-300);transform:translateY(-1px)}.btn--danger{background-color:var(--color-danger);color:#fff;box-shadow:var(--shadow-xs)}.btn--danger:hover:not(:disabled){background-color:var(--color-danger-dark);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.btn--ghost{background-color:transparent;color:var(--color-gray-700)}.btn--ghost:hover:not(:disabled){background-color:var(--color-gray-100);color:var(--color-gray-900)}.btn:disabled{cursor:not-allowed;opacity:.5;transform:none!important;box-shadow:none!important}.alert-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1001;padding:var(--space-4);animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.alert-modal-content{background:#fff;border-radius:var(--border-radius-lg);box-shadow:var(--shadow-xl);max-width:500px;width:100%;overflow:hidden;display:flex;flex-direction:column;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.alert-modal-header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-6);border-bottom:1px solid var(--border-color)}.alert-modal-header--success{background:var(--color-success-light);border-bottom-color:var(--color-success)}.alert-modal-header--error{background:var(--color-danger-light);border-bottom-color:var(--color-danger)}.alert-modal-header--warning{background:var(--color-warning-light);border-bottom-color:var(--color-warning)}.alert-modal-header--info{background:var(--color-primary-light);border-bottom-color:var(--color-primary)}.alert-modal-icon{width:2.5rem;height:2.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;flex-shrink:0}.alert-modal-header--success .alert-modal-icon{background:var(--color-success);color:#fff}.alert-modal-header--error .alert-modal-icon{background:var(--color-danger);color:#fff}.alert-modal-header--warning .alert-modal-icon{background:var(--color-warning);color:#fff}.alert-modal-header--info .alert-modal-icon{background:var(--color-primary);color:#fff}.alert-modal-title{margin:0;font-size:1.25rem;font-weight:600;color:var(--color-gray-900)}.alert-modal-body{padding:var(--space-6)}.alert-modal-message{margin:0;color:var(--color-gray-700);line-height:1.6;font-size:var(--font-size-base)}.alert-modal-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:var(--space-2)}.sidebar{width:var(--sidebar-width);background-color:#fff;border-right:var(--border-width) solid var(--border-color);display:flex;flex-direction:column;transition:width var(--transition-base);height:100vh;position:sticky;top:0}.sidebar--collapsed{width:var(--sidebar-collapsed-width)}.sidebar__header{height:var(--header-height);display:flex;align-items:center;padding:0 var(--space-4);border-bottom:var(--border-width) solid var(--border-color);background-color:var(--color-gray-50)}.sidebar__logo{font-size:var(--font-size-xl);font-weight:700;color:var(--color-primary);letter-spacing:-.025em}.sidebar__nav{flex:1;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-1);overflow-y:auto}.sidebar__footer{border-top:var(--border-width) solid var(--border-color);padding:var(--space-4)}.sidebar__logout-button{width:100%;border:1px solid var(--color-gray-300);background:#fff;color:var(--color-gray-700);border-radius:var(--border-radius);padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.sidebar__logout-button:hover{background:var(--color-gray-100);color:var(--color-gray-900)}.sidebar--collapsed .sidebar__logout-button{padding-left:0;padding-right:0}.sidebar__link{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--border-radius);color:var(--color-gray-700);text-decoration:none;transition:all var(--transition-fast);font-size:var(--font-size-sm);font-weight:500;position:relative}.sidebar__link:hover{background-color:var(--color-gray-100);color:var(--color-gray-900);text-decoration:none;transform:translate(2px)}.sidebar__link.active{background-color:var(--color-primary-light);color:var(--color-primary);font-weight:600}.sidebar__link.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:60%;background-color:var(--color-primary);border-radius:var(--border-radius-full)}.sidebar__icon{font-size:var(--font-size-lg)}.sidebar--collapsed .sidebar__link{justify-content:center}.sidebar__submenu{margin-top:var(--space-3);margin-left:var(--space-2);padding-left:var(--space-4);border-left:2px solid var(--color-gray-200);display:flex;flex-direction:column;gap:var(--space-1);animation:fadeIn .2s ease-out}.sidebar__submenu-title{font-size:var(--font-size-xs);font-weight:600;color:var(--color-gray-500);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-1);text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:var(--space-2)}.sidebar__submenu-title:before{content:"";display:inline-block;width:8px;height:8px;border-radius:var(--border-radius-full);background-color:var(--color-primary)}.sidebar__submenu-link{display:flex;align-items:center;padding:var(--space-2) var(--space-3);border-radius:var(--border-radius);color:var(--color-gray-600);text-decoration:none;font-size:var(--font-size-sm);transition:all var(--transition-fast);position:relative}.sidebar__submenu-link:hover{background-color:var(--color-gray-100);color:var(--color-gray-900);text-decoration:none;transform:translate(4px)}.sidebar__submenu-link.active{background-color:var(--color-primary-light);color:var(--color-primary);font-weight:600}.sidebar__submenu-link.active:before{content:"";position:absolute;left:-17px;top:50%;transform:translateY(-50%);width:6px;height:6px;background-color:var(--color-primary);border-radius:var(--border-radius-full)}.sidebar__submenu-divider{height:1px;background-color:var(--color-gray-200);margin:var(--space-2) 0}.sidebar__submenu-section-title{font-size:var(--font-size-xs);font-weight:600;color:var(--color-gray-500);padding:var(--space-2) var(--space-3);margin-top:var(--space-2);text-transform:uppercase;letter-spacing:.05em}.sidebar__submenu-link--legacy{opacity:.7;font-size:var(--font-size-xs)}.sidebar__submenu-link--legacy:hover{opacity:1}.app-layout{display:flex;height:100vh;overflow:hidden}.app-layout__main{flex:1;overflow-y:auto;background-color:var(--color-gray-50)}.admin-layout{min-height:100vh;display:flex;flex-direction:column;background-color:var(--color-gray-50)}.admin-layout__header{background:#fff;border-bottom:2px solid var(--border-color);padding:var(--space-4) var(--space-6);position:sticky;top:0;z-index:10}.admin-layout__header-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.admin-layout__actions,.admin-layout__nav{display:flex;align-items:center;gap:var(--space-2)}.admin-layout__nav-link{font-size:var(--font-size-sm);color:var(--color-gray-700);text-decoration:none;font-weight:500;padding:var(--space-2) var(--space-3);border-radius:var(--border-radius);transition:background var(--transition-fast)}.admin-layout__nav-link:hover{background:var(--color-gray-100);color:var(--color-gray-900)}.admin-layout__title{margin:0;font-size:var(--font-size-2xl);font-weight:700;color:var(--color-gray-900)}.admin-layout__back{font-size:var(--font-size-sm);color:var(--color-primary);text-decoration:none;font-weight:500;padding:var(--space-2) var(--space-3);border-radius:var(--border-radius);transition:background var(--transition-fast)}.admin-layout__back:hover{background:var(--color-primary-light);text-decoration:none;color:var(--color-primary)}.admin-layout__logout{font-size:var(--font-size-sm);color:var(--color-gray-700);background:#fff;border:1px solid var(--color-gray-300);text-decoration:none;font-weight:500;padding:var(--space-2) var(--space-3);border-radius:var(--border-radius);cursor:pointer;transition:background var(--transition-fast)}.admin-layout__logout:hover{background:var(--color-gray-100);color:var(--color-gray-900)}.admin-layout__main{flex:1;max-width:1200px;margin:0 auto;width:100%;padding:var(--space-6)}.panel{background-color:#fff;border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;transition:box-shadow var(--transition-base)}.panel:hover{box-shadow:var(--shadow)}.panel--padded{padding:var(--space-6)}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-6);border-bottom:var(--border-width) solid var(--border-color);background-color:var(--color-gray-50)}.panel-header__title{font-size:var(--font-size-lg);font-weight:600;color:var(--color-gray-900);line-height:var(--line-height-tight)}.panel-header__actions{display:flex;align-items:center;gap:var(--space-2)}.panel-body{padding:var(--space-6)}.panel-body:empty{padding:var(--space-12);display:flex;align-items:center;justify-content:center;color:var(--color-gray-500);font-size:var(--font-size-sm)}.naering-samfunn-panel{border:2px solid var(--color-info, #0ea5e9)!important;background-color:var(--color-info-light, #e0f2fe)!important}.naering-samfunn-panel--disabled{opacity:.6}.kompetanseattest-panel{border:2px solid var(--color-secondary, #6b7280)!important;background-color:var(--color-gray-50, #fafafa)!important}.kompetanseattest-panel--disabled{opacity:.6}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-4)}.modal-content{background:#fff;border-radius:var(--border-radius-lg);box-shadow:var(--shadow-xl);max-width:600px;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.modal-content--large{max-width:900px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-6);border-bottom:1px solid var(--border-color)}.modal-header h2{margin:0;font-size:1.25rem;font-weight:600}.modal-close{background:none;border:none;font-size:2rem;color:var(--color-gray-500);cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius);transition:all .2s}.modal-close:hover{background-color:var(--color-gray-100);color:var(--color-gray-700)}.modal-body{padding:var(--space-6);overflow-y:auto}.status-badge{display:inline-flex;align-items:center;font-weight:500;border-radius:9999px;white-space:nowrap}.status-badge--sm{padding:var(--space-1) var(--space-2);font-size:.75rem}.status-badge--md{padding:var(--space-1) var(--space-3);font-size:.875rem}.status-utkast{background-color:var(--color-gray-100);color:var(--color-gray-700)}.status-under-arbeid{background-color:#dbeafe;color:#1e40af}.status-til-godkjenning{background-color:var(--color-warning-light);color:#92400e}.status-godkjent{background-color:var(--color-success-light);color:#065f46}.status-publisert{background-color:#6ee7b7;color:#065f46}.status-arkivert{background-color:var(--color-gray-200);color:var(--color-gray-600)}.nivaa-badge{display:inline-flex;align-items:center;padding:.25rem .5rem;border-radius:var(--border-radius, 4px);font-size:var(--font-size-xs, .75rem);font-weight:600;line-height:1;white-space:nowrap}.nivaa-badge--sm{padding:.125rem .375rem;font-size:.625rem}.nivaa-badge--md{padding:.25rem .5rem;font-size:var(--font-size-xs, .75rem)}.nivaa-badge--primary{background-color:var(--color-primary-light, #dbeafe);color:var(--color-primary, #3b82f6);border:1px solid var(--color-primary, #3b82f6)}.nivaa-badge--secondary{background-color:var(--color-gray-100, #f3f4f6);color:var(--color-gray-700, #374151);border:1px solid var(--color-gray-300, #d1d5db)}.nivaa-badge--info{background-color:var(--color-info-light, #e0f2fe);color:var(--color-info, #0ea5e9);border:1px solid var(--color-info, #0ea5e9)}.nivaa-badge--warning{background-color:var(--color-warning-light, #fef3c7);color:var(--color-warning, #f59e0b);border:1px solid var(--color-warning, #f59e0b)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-4)}.modal-content{background:#fff;border-radius:var(--border-radius-lg);box-shadow:var(--shadow-xl);max-width:600px;width:100%;max-height:90vh;overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-6);border-bottom:1px solid var(--border-color)}.modal-header h2{font-size:1.5rem;font-weight:600;color:var(--color-gray-900);margin:0}.modal-close{background:none;border:none;color:var(--color-gray-500);cursor:pointer;padding:var(--space-2);line-height:1;transition:all var(--transition-fast);border-radius:var(--border-radius);display:flex;align-items:center;justify-content:center}.modal-close:hover{color:var(--color-gray-900);background:var(--color-gray-100)}.modal-close svg{display:block}.create-program-form{padding:var(--space-6)}.form-group{margin-bottom:var(--space-5)}.form-group label{display:block;font-weight:500;color:var(--color-gray-700);margin-bottom:var(--space-2);font-size:var(--font-size-sm)}.form-group .required{color:var(--color-danger-600)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:var(--space-3);border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:var(--font-size-base);font-family:inherit;transition:all var(--transition-fast)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.form-group textarea{resize:vertical;min-height:80px}.form-group small{display:block;margin-top:var(--space-1);font-size:var(--font-size-xs);color:var(--color-gray-500)}.create-program-form__language-selector.language-selector{display:inline-flex;background-color:var(--color-gray-100);border-radius:var(--border-radius);padding:var(--space-1);gap:var(--space-1)}.create-program-form__language-selector .language-selector__btn{padding:var(--space-2) var(--space-3);border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);font-weight:500;color:var(--color-gray-600);transition:all var(--transition-fast);cursor:pointer;background:transparent;border:none}.create-program-form__language-selector .language-selector__btn:hover{color:var(--color-gray-900);background-color:#ffffff80}.create-program-form__language-selector .language-selector__btn.active{background-color:#fff;color:var(--color-primary);box-shadow:var(--shadow-xs);font-weight:600}.form-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-3);padding-top:var(--space-6);border-top:1px solid var(--border-color)}@media (max-width: 768px){.form-row{grid-template-columns:1fr}.modal-content{max-height:100vh;border-radius:0}}.program-list-container{padding:var(--space-6) var(--space-8);max-width:1600px;margin:0 auto}.program-list-header{margin-bottom:var(--space-6)}.program-list-header__top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.program-list-header__title-section{display:flex;align-items:baseline;gap:var(--space-3);flex:1}.program-list-header h1{font-size:2rem;color:var(--color-gray-900);margin:0;font-weight:700}.program-list-count{font-size:var(--font-size-sm);color:var(--color-gray-500);font-weight:500}.program-list-header__actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.program-list-selection-bar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:var(--color-primary-light);border:1px solid var(--color-primary);border-radius:var(--border-radius);gap:var(--space-3)}.program-list-selection-bar__left{display:flex;align-items:center;gap:var(--space-3)}.bulk-select-all{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;font-size:var(--font-size-sm);color:var(--color-gray-700);-webkit-user-select:none;user-select:none;font-weight:500}.bulk-select-all input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--color-primary);border-radius:4px}.bulk-select-all:hover{color:var(--color-primary)}.program-list-controls{margin-bottom:var(--space-6)}.program-list-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:var(--space-5);align-items:stretch}.program-card{position:relative;transition:all var(--transition-base);border:2px solid transparent;overflow:hidden;display:flex;flex-direction:column;height:100%}.program-card--selected{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.program-card__checkbox{position:absolute;top:var(--space-3);left:var(--space-3);z-index:10;background:#fff;border-radius:6px;padding:4px;transition:all var(--transition-fast);box-shadow:0 2px 4px #0000001a}.program-card__checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--color-primary);border-radius:4px;display:block}.program-card__delete{position:absolute;bottom:var(--space-3);right:var(--space-3);z-index:10;background:#fff;border:1px solid var(--color-gray-300);border-radius:var(--border-radius);padding:var(--space-2);cursor:pointer;transition:all var(--transition-fast);opacity:0;display:flex;align-items:center;justify-content:center;color:var(--color-gray-600);box-shadow:0 2px 4px #0000001a}.program-card:hover .program-card__delete{opacity:1}.program-card__delete:hover{background:var(--color-danger-50);border-color:var(--color-danger-300);color:var(--color-danger-600);transform:scale(1.05)}.program-card__delete:active{transform:scale(.95)}.program-card__delete:disabled{opacity:.5;cursor:not-allowed;transform:none}.program-card__delete svg{display:block}.program-card__button{width:100%;text-align:left;padding:var(--space-6);padding-top:calc(var(--space-6) + 32px);padding-bottom:calc(var(--space-6) + 8px);transition:all var(--transition-base);background:transparent;border:none;cursor:pointer;display:flex;flex-direction:column;flex:1;min-height:0}.program-card__button:hover{background:var(--color-gray-50)}.program-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4);gap:var(--space-2)}.program-card__code-badge{font-family:var(--font-mono);font-size:.75rem;color:var(--color-primary);font-weight:600;background:var(--color-primary-light);padding:var(--space-1) var(--space-2);border-radius:var(--border-radius-sm);letter-spacing:.02em}.program-card__title{font-size:1.125rem;font-weight:600;color:var(--color-gray-900);margin:0 0 var(--space-4) 0;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:3.15rem}.program-card__meta{display:flex;align-items:center;gap:var(--space-4);font-size:.875rem;color:var(--color-gray-600);margin-bottom:var(--space-4);flex-wrap:wrap;min-height:1.5rem}.program-card__meta-item{display:flex;align-items:center;gap:var(--space-1);color:var(--color-gray-600)}.program-card__meta-item svg{color:var(--color-gray-400);flex-shrink:0}.program-card__footer{padding-top:var(--space-3);border-top:1px solid var(--border-color);margin-top:auto}.program-card__date{display:flex;align-items:center;gap:var(--space-1);font-size:.75rem;color:var(--color-gray-500)}.program-card__date svg{color:var(--color-gray-400);flex-shrink:0}.program-list-tabs{display:flex;gap:var(--space-1);margin-bottom:var(--space-4);border-bottom:2px solid var(--border-color);padding-bottom:0}.program-list-tab{padding:var(--space-3) var(--space-4);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;font-size:var(--font-size-sm);font-weight:500;color:var(--color-gray-600);transition:all var(--transition-fast);margin-bottom:-2px;display:flex;align-items:center;gap:var(--space-2);position:relative}.program-list-tab:hover{color:var(--color-primary);background:var(--color-gray-50)}.program-list-tab--active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.program-list-tab__count{font-size:var(--font-size-xs);color:var(--color-gray-500);font-weight:400}.program-list-filters{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.program-list-search{display:flex;align-items:center;gap:var(--space-2);flex:1;min-width:280px;position:relative;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius);padding:var(--space-2) var(--space-3);transition:all var(--transition-fast)}.program-list-search:hover{border-color:var(--color-primary)}.program-list-search:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.program-list-search-icon{color:var(--color-gray-400);flex-shrink:0}.program-list-search-input{flex:1;border:none;background:transparent;font-size:var(--font-size-sm);color:var(--color-gray-900);padding:0;outline:none}.program-list-search-input::placeholder{color:var(--color-gray-400)}.program-list-search-clear{display:flex;align-items:center;justify-content:center;background:none;border:none;padding:var(--space-1);cursor:pointer;color:var(--color-gray-400);border-radius:var(--border-radius-sm);transition:all var(--transition-fast);flex-shrink:0}.program-list-search-clear:hover{background:var(--color-gray-100);color:var(--color-gray-600)}.program-list-filter-select{padding:var(--space-2) var(--space-3);border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:var(--font-size-sm);background:#fff;color:var(--color-gray-900);cursor:pointer;transition:all var(--transition-fast);min-width:160px;font-weight:500}.program-list-filter-select:hover{border-color:var(--color-primary)}.program-list-filter-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.workspace-header{height:var(--header-height);background-color:#fff;border-bottom:var(--border-width) solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-6);position:sticky;top:0;z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background-color:#fffffff2;gap:var(--space-4);min-width:0}.workspace-header__left{display:flex;align-items:center;gap:var(--space-4);min-width:0;flex:1}.workspace-header__title{font-size:var(--font-size-xl);font-weight:600;color:var(--color-gray-900);line-height:var(--line-height-tight);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:500px}.workspace-header__right{display:flex;align-items:center;gap:var(--space-3)}.workspace-header__actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.language-selector{display:flex;background-color:var(--color-gray-100);border-radius:var(--border-radius);padding:var(--space-1);gap:var(--space-1);flex-shrink:0}.language-selector__btn{padding:var(--space-2) var(--space-3);border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);font-weight:500;color:var(--color-gray-600);transition:all var(--transition-fast);cursor:pointer;background:transparent;border:none}.language-selector__btn:hover{color:var(--color-gray-900);background-color:#ffffff80}.language-selector__btn.active{background-color:#fff;color:var(--color-primary);box-shadow:var(--shadow-xs);font-weight:600}.language-selector--readonly .language-selector__btn{pointer-events:none;cursor:default}.dropdown-menu{position:relative;display:inline-block}.dropdown-menu__trigger{cursor:pointer;display:flex;align-items:center;justify-content:center}.dropdown-menu__content{position:absolute;top:calc(100% + var(--space-1));z-index:1000;min-width:200px;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius);box-shadow:var(--shadow-lg);overflow:hidden;animation:slideDown .2s ease-out}.dropdown-menu__content--left{left:0}.dropdown-menu__content--right{right:0}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.dropdown-menu__item{width:100%;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:none;background:none;text-align:left;font-size:var(--font-size-sm);color:var(--color-gray-700);cursor:pointer;transition:all var(--transition-fast)}.dropdown-menu__item:hover:not(:disabled){background:var(--color-gray-50);color:var(--color-gray-900)}.dropdown-menu__item:disabled{opacity:.5;cursor:not-allowed}.dropdown-menu__item--danger{color:var(--color-danger)}.dropdown-menu__item--danger:hover:not(:disabled){background:var(--color-danger-light);color:var(--color-danger-dark)}.dropdown-menu__icon{display:flex;align-items:center;width:16px;height:16px}.create-emne-form{display:grid;gap:var(--space-4)}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-group label{font-weight:500;font-size:.875rem;color:var(--color-gray-700)}.required{color:var(--color-danger-600)}.form-input{padding:var(--space-2) var(--space-3);border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:.875rem;transition:all .2s}.form-input:focus{outline:none;border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100)}.form-input:disabled{background-color:var(--color-gray-100);color:var(--color-gray-500);cursor:not-allowed}.form-input:is(textarea){font-family:inherit;resize:vertical;min-height:100px}.form-hint{margin:var(--space-1) 0 0;font-size:var(--font-size-xs);color:var(--color-gray-500)}.form-actions{display:flex;gap:var(--space-3);justify-content:flex-end;margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border-color)}.oversikt-page h2{margin-bottom:var(--space-6)}.oversikt-grid{display:grid;gap:var(--space-6)}.kursplan-sections{margin-bottom:var(--space-8)}.kursplan-sections .section{margin-bottom:var(--space-8);padding-bottom:var(--space-6);border-bottom:1px solid var(--border-color)}.kursplan-sections .section:last-child{border-bottom:none;margin-bottom:0}.kursplan-sections .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.kursplan-sections .section-header h2{margin:0;font-size:var(--font-size-xl);color:var(--color-gray-900);border-bottom:2px solid var(--color-primary);padding-bottom:var(--space-2);flex:1}.kursplan-sections .section-content{margin-top:var(--space-4);line-height:1.8}.kursplan-sections .section-content p{margin-bottom:var(--space-3)}.kursplan-sections .section-content p:last-child{margin-bottom:0}.kursplan-sections .section-content ul,.kursplan-sections .section-content ol{margin:var(--space-2) 0 var(--space-4);padding-left:var(--space-6)}.kursplan-sections .section-content li{margin-bottom:var(--space-1)}.kursplan-sections .section-content a{color:var(--color-primary);text-decoration:underline}.kursplan-sections .section-content a:hover{text-decoration:none}.progress-indicator{display:flex;flex-direction:column;gap:var(--space-3)}.progress-bar{height:8px;background-color:var(--color-gray-200);border-radius:9999px;overflow:hidden}.progress-bar__fill{height:100%;background-color:var(--color-primary);transition:width .3s ease}.progress-text{font-size:.875rem;color:var(--color-gray-600)}.progress-missing{padding:var(--space-3);background-color:var(--color-warning-light);border-radius:var(--border-radius);font-size:.875rem}.progress-missing ul{margin-top:var(--space-2);margin-left:var(--space-4)}.metadata-list{display:grid;gap:var(--space-3)}.metadata-item{display:grid;grid-template-columns:140px 1fr;gap:var(--space-3)}.metadata-item dt{font-weight:500;color:var(--color-gray-600)}.metadata-item dd{color:var(--color-gray-900)}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}.stat-item{text-align:center}.stat-value{font-size:2rem;font-weight:700;color:var(--color-primary);margin-bottom:var(--space-1)}.stat-label{font-size:.875rem;color:var(--color-gray-600)}/*!
 * Quill Editor v1.3.7
 * https://quilljs.com/
 * Copyright (c) 2014, Jason Chen
 * Copyright (c) 2013, salesforce.com
 */.ql-container{box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before{pointer-events:none}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;line-height:1.42;height:100%;outline:none;overflow-y:auto;padding:12px 15px;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word}.ql-editor>*{cursor:text}.ql-editor p,.ql-editor ol,.ql-editor ul,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{margin:0;padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol,.ql-editor ul{padding-left:1.5em}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li:before{content:"•"}.ql-editor ul[data-checked=true],.ql-editor ul[data-checked=false]{pointer-events:none}.ql-editor ul[data-checked=true]>li *,.ql-editor ul[data-checked=false]>li *{pointer-events:all}.ql-editor ul[data-checked=true]>li:before,.ql-editor ul[data-checked=false]>li:before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li:before{content:"☑"}.ql-editor ul[data-checked=false]>li:before{content:"☐"}.ql-editor li:before{display:inline-block;white-space:nowrap;width:1.2em}.ql-editor li:not(.ql-direction-rtl):before{margin-left:-1.5em;margin-right:.3em;text-align:right}.ql-editor li.ql-direction-rtl:before{margin-left:.3em;margin-right:-1.5em}.ql-editor ol li:not(.ql-direction-rtl),.ql-editor ul li:not(.ql-direction-rtl){padding-left:1.5em}.ql-editor ol li.ql-direction-rtl,.ql-editor ul li.ql-direction-rtl{padding-right:1.5em}.ql-editor ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.ql-editor ol li:before{content:counter(list-0,decimal) ". "}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) ". "}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2,lower-roman) ". "}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3,decimal) ". "}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) ". "}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5,lower-roman) ". "}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6,decimal) ". "}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) ". "}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8,lower-roman) ". "}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9,decimal) ". "}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor.ql-blank:before{color:#0009;content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}.ql-snow.ql-toolbar:after,.ql-snow .ql-toolbar:after{clear:both;content:"";display:table}.ql-snow.ql-toolbar button,.ql-snow .ql-toolbar button{background:none;border:none;cursor:pointer;display:inline-block;float:left;height:24px;padding:3px 5px;width:28px}.ql-snow.ql-toolbar button svg,.ql-snow .ql-toolbar button svg{float:left;height:100%}.ql-snow.ql-toolbar button:active:hover,.ql-snow .ql-toolbar button:active:hover{outline:none}.ql-snow.ql-toolbar input.ql-image[type=file],.ql-snow .ql-toolbar input.ql-image[type=file]{display:none}.ql-snow.ql-toolbar button:hover,.ql-snow .ql-toolbar button:hover,.ql-snow.ql-toolbar button:focus,.ql-snow .ql-toolbar button:focus,.ql-snow.ql-toolbar button.ql-active,.ql-snow .ql-toolbar button.ql-active,.ql-snow.ql-toolbar .ql-picker-label:hover,.ql-snow .ql-toolbar .ql-picker-label:hover,.ql-snow.ql-toolbar .ql-picker-label.ql-active,.ql-snow .ql-toolbar .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker-item:hover,.ql-snow .ql-toolbar .ql-picker-item:hover,.ql-snow.ql-toolbar .ql-picker-item.ql-selected,.ql-snow .ql-toolbar .ql-picker-item.ql-selected{color:#06c}.ql-snow.ql-toolbar button:hover .ql-fill,.ql-snow .ql-toolbar button:hover .ql-fill,.ql-snow.ql-toolbar button:focus .ql-fill,.ql-snow .ql-toolbar button:focus .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill{fill:#06c}.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow .ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar button:focus .ql-stroke,.ql-snow .ql-toolbar button:focus .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow.ql-toolbar button:hover .ql-stroke-miter,.ql-snow .ql-toolbar button:hover .ql-stroke-miter,.ql-snow.ql-toolbar button:focus .ql-stroke-miter,.ql-snow .ql-toolbar button:focus .ql-stroke-miter,.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter{stroke:#06c}@media (pointer: coarse){.ql-snow.ql-toolbar button:hover:not(.ql-active),.ql-snow .ql-toolbar button:hover:not(.ql-active){color:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill{fill:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter{stroke:#444}}.ql-snow,.ql-snow *{box-sizing:border-box}.ql-snow .ql-hidden{display:none}.ql-snow .ql-out-bottom,.ql-snow .ql-out-top{visibility:hidden}.ql-snow .ql-tooltip{position:absolute;transform:translateY(10px)}.ql-snow .ql-tooltip a{cursor:pointer;text-decoration:none}.ql-snow .ql-tooltip.ql-flip{transform:translateY(-10px)}.ql-snow .ql-formats{display:inline-block;vertical-align:middle}.ql-snow .ql-formats:after{clear:both;content:"";display:table}.ql-snow .ql-stroke{fill:none;stroke:#444;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.ql-snow .ql-stroke-miter{fill:none;stroke:#444;stroke-miterlimit:10;stroke-width:2}.ql-snow .ql-fill,.ql-snow .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-empty{fill:none}.ql-snow .ql-even{fill-rule:evenodd}.ql-snow .ql-thin,.ql-snow .ql-stroke.ql-thin{stroke-width:1}.ql-snow .ql-transparent{opacity:.4}.ql-snow .ql-direction svg:last-child{display:none}.ql-snow .ql-direction.ql-active svg:last-child{display:inline}.ql-snow .ql-direction.ql-active svg:first-child{display:none}.ql-snow .ql-editor h1{font-size:2em}.ql-snow .ql-editor h2{font-size:1.5em}.ql-snow .ql-editor h3{font-size:1.17em}.ql-snow .ql-editor h4{font-size:1em}.ql-snow .ql-editor h5{font-size:.83em}.ql-snow .ql-editor h6{font-size:.67em}.ql-snow .ql-editor a{text-decoration:underline}.ql-snow .ql-editor blockquote{border-left:4px solid #ccc;margin-bottom:5px;margin-top:5px;padding-left:16px}.ql-snow .ql-editor code,.ql-snow .ql-editor pre{background-color:#f0f0f0;border-radius:3px}.ql-snow .ql-editor pre{white-space:pre-wrap;margin-bottom:5px;margin-top:5px;padding:5px 10px}.ql-snow .ql-editor code{font-size:85%;padding:2px 4px}.ql-snow .ql-editor pre.ql-syntax{background-color:#23241f;color:#f8f8f2;overflow:visible}.ql-snow .ql-editor img{max-width:100%}.ql-snow .ql-picker{color:#444;display:inline-block;float:left;font-size:14px;font-weight:500;height:24px;position:relative;vertical-align:middle}.ql-snow .ql-picker-label{cursor:pointer;display:inline-block;height:100%;padding-left:8px;padding-right:2px;position:relative;width:100%}.ql-snow .ql-picker-label:before{display:inline-block;line-height:22px}.ql-snow .ql-picker-options{background-color:#fff;display:none;min-width:100%;padding:4px 8px;position:absolute;white-space:nowrap}.ql-snow .ql-picker-options .ql-picker-item{cursor:pointer;display:block;padding-bottom:5px;padding-top:5px}.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#ccc;z-index:2}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-options{display:block;margin-top:-1px;top:100%;z-index:1}.ql-snow .ql-color-picker,.ql-snow .ql-icon-picker{width:28px}.ql-snow .ql-color-picker .ql-picker-label,.ql-snow .ql-icon-picker .ql-picker-label{padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-label svg,.ql-snow .ql-icon-picker .ql-picker-label svg{right:4px}.ql-snow .ql-icon-picker .ql-picker-options{padding:4px 0}.ql-snow .ql-icon-picker .ql-picker-item{height:24px;width:24px;padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-options{padding:3px 5px;width:152px}.ql-snow .ql-color-picker .ql-picker-item{border:1px solid transparent;float:left;height:16px;margin:2px;padding:0;width:16px}.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{position:absolute;margin-top:-9px;right:0;top:50%;width:18px}.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=""]):before{content:attr(data-label)}.ql-snow .ql-picker.ql-header{width:98px}.ql-snow .ql-picker.ql-header .ql-picker-label:before,.ql-snow .ql-picker.ql-header .ql-picker-item:before{content:"Normal"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{content:"Heading 1"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{content:"Heading 2"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{content:"Heading 3"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{content:"Heading 4"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{content:"Heading 5"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before{content:"Heading 6"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{font-size:2em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{font-size:1.5em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{font-size:1.17em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{font-size:1em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{font-size:.83em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before{font-size:.67em}.ql-snow .ql-picker.ql-font{width:108px}.ql-snow .ql-picker.ql-font .ql-picker-label:before,.ql-snow .ql-picker.ql-font .ql-picker-item:before{content:"Sans Serif"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{content:"Serif"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{content:"Monospace"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{font-family:Georgia,Times New Roman,serif}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{font-family:Monaco,Courier New,monospace}.ql-snow .ql-picker.ql-size{width:98px}.ql-snow .ql-picker.ql-size .ql-picker-label:before,.ql-snow .ql-picker.ql-size .ql-picker-item:before{content:"Normal"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{content:"Small"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{content:"Large"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{content:"Huge"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{font-size:10px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{font-size:18px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{font-size:32px}.ql-snow .ql-color-picker.ql-background .ql-picker-item{background-color:#fff}.ql-snow .ql-color-picker.ql-color .ql-picker-item{background-color:#000}.ql-toolbar.ql-snow{border:1px solid #ccc;box-sizing:border-box;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;padding:8px}.ql-toolbar.ql-snow .ql-formats{margin-right:15px}.ql-toolbar.ql-snow .ql-picker-label{border:1px solid transparent}.ql-toolbar.ql-snow .ql-picker-options{border:1px solid transparent;box-shadow:#0003 0 2px 8px}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label,.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{border-color:#ccc}.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover{border-color:#000}.ql-toolbar.ql-snow+.ql-container.ql-snow{border-top:0px}.ql-snow .ql-tooltip{background-color:#fff;border:1px solid #ccc;box-shadow:0 0 5px #ddd;color:#444;padding:5px 12px;white-space:nowrap}.ql-snow .ql-tooltip:before{content:"Visit URL:";line-height:26px;margin-right:8px}.ql-snow .ql-tooltip input[type=text]{display:none;border:1px solid #ccc;font-size:13px;height:26px;margin:0;padding:3px 5px;width:170px}.ql-snow .ql-tooltip a.ql-preview{display:inline-block;max-width:200px;overflow-x:hidden;text-overflow:ellipsis;vertical-align:top}.ql-snow .ql-tooltip a.ql-action:after{border-right:1px solid #ccc;content:"Edit";margin-left:16px;padding-right:8px}.ql-snow .ql-tooltip a.ql-remove:before{content:"Remove";margin-left:8px}.ql-snow .ql-tooltip a{line-height:26px}.ql-snow .ql-tooltip.ql-editing a.ql-preview,.ql-snow .ql-tooltip.ql-editing a.ql-remove{display:none}.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block}.ql-snow .ql-tooltip.ql-editing a.ql-action:after{border-right:0px;content:"Save";padding-right:0}.ql-snow .ql-tooltip[data-mode=link]:before{content:"Enter link:"}.ql-snow .ql-tooltip[data-mode=formula]:before{content:"Enter formula:"}.ql-snow .ql-tooltip[data-mode=video]:before{content:"Enter video:"}.ql-snow a{color:#06c}.ql-container.ql-snow{border:1px solid #ccc}.rich-text-editor{--editor-height: max(120px, 184px)}.rich-text-editor__quill{background:var(--color-gray-50, #fafafa);border-radius:var(--border-radius, 8px);border:1px solid var(--border-color, #e4e4e7)}.rich-text-editor .ql-toolbar.ql-snow{border:none;border-bottom:1px solid var(--border-color, #e4e4e7);background:var(--color-gray-100, #f4f4f5);border-radius:var(--border-radius, 8px) var(--border-radius, 8px) 0 0;padding:var(--space-2, 8px)}.rich-text-editor .ql-container.ql-snow{border:none;font-size:var(--font-size-sm, .875rem);font-family:inherit;min-height:var(--editor-height)}.rich-text-editor .ql-editor{min-height:var(--editor-height);line-height:1.6}.rich-text-editor .ql-editor.ql-blank:before{font-style:normal;color:var(--color-gray-400, #a1a1aa)}.rich-text-editor .ql-editor h1{font-size:1.5rem;font-weight:700;margin:.75em 0 .35em}.rich-text-editor .ql-editor h2{font-size:1.25rem;font-weight:600;margin:.6em 0 .3em}.rich-text-editor .ql-editor h3{font-size:1.1rem;font-weight:600;margin:.5em 0 .25em}.rich-text-editor .ql-editor p{margin-bottom:.5em}.rich-text-editor .ql-editor ul,.rich-text-editor .ql-editor ol{padding-left:1.5em;margin:.5em 0}.struktur-page{max-width:1400px}.struktur-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6)}.semester-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-4);margin-bottom:var(--space-6)}.semester-card__count{font-size:.875rem;font-weight:400;color:var(--color-gray-500)}.semester-card__body{padding:var(--space-4)}.semester-card__empty{text-align:center;padding:var(--space-6) var(--space-4);color:var(--color-gray-500)}.semester-card__empty p{margin-bottom:var(--space-3)}.emne-list{display:flex;flex-direction:column;gap:var(--space-3)}.emne-card-wrapper{display:flex;flex-direction:column;gap:var(--space-1)}.emne-card{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background-color:var(--color-gray-50);border:1px solid var(--border-color);border-radius:var(--border-radius);text-align:left;transition:all .15s ease}.emne-card:hover{background-color:#fff;box-shadow:var(--shadow-sm);transform:translate(2px)}.emne-card__code{font-family:var(--font-mono);font-size:.875rem;font-weight:600;color:var(--color-primary);min-width:80px}.emne-card__name{flex:1;font-size:.875rem;color:var(--color-gray-900)}.emne-card__credits{font-size:.75rem;color:var(--color-gray-500);font-weight:500}.unplaced-emner{margin-top:var(--space-8);border:2px dashed var(--color-warning)}.emne-details{display:flex;flex-direction:column;gap:var(--space-4);min-height:400px}.emne-details__header{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--space-4);border-bottom:1px solid var(--color-gray-200)}.emne-details__status,.emne-details__actions{display:flex;gap:var(--space-2)}.emne-details__tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--color-gray-200)}.emne-details__tabs .tab{padding:var(--space-2) var(--space-4);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;font-weight:500;color:var(--color-gray-600);transition:all .2s}.emne-details__tabs .tab:hover{color:var(--color-gray-900);background-color:var(--color-gray-50)}.emne-details__tabs .tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.emne-details__content{flex:1;overflow-y:auto;max-height:500px}.tab-pane{display:flex;flex-direction:column;gap:var(--space-6)}.detail-section{display:flex;flex-direction:column;gap:var(--space-3)}.detail-section h3{font-size:1rem;font-weight:600;color:var(--color-gray-900);margin:0}.detail-list{display:grid;gap:var(--space-3)}.detail-item{display:grid;grid-template-columns:180px 1fr;gap:var(--space-3)}.detail-item dt{font-weight:500;color:var(--color-gray-600)}.detail-item dd{color:var(--color-gray-900)}.detail-description{padding:var(--space-3);background-color:var(--color-gray-50);border-radius:var(--border-radius);color:var(--color-gray-700);line-height:1.6;white-space:pre-wrap}.laeringsutbytte-list{display:flex;flex-direction:column;gap:var(--space-3)}.laeringsutbytte-preview{margin-top:var(--space-4)}.laeringsutbytte-preview-item{margin-bottom:var(--space-2)}.laeringsutbytte-preview-list{margin:0;padding-left:var(--space-6);list-style:disc}.laeringsutbytte-preview-list-item{margin-bottom:var(--space-2);line-height:var(--line-height-relaxed);display:flex;justify-content:space-between;align-items:center;gap:var(--space-2)}.laeringsutbytte-preview-list-item span{flex:1}.empty-state{padding:var(--space-8);text-align:center;color:var(--color-gray-500)}.emne-details__footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--color-gray-200)}.accordion{margin-top:var(--space-4)}.accordion-item{border:1px solid var(--border-color);border-radius:var(--border-radius);margin-bottom:var(--space-2);background:#fff;overflow:hidden}.accordion-title{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-4);background:var(--color-gray-50);color:var(--color-gray-900);text-decoration:none;cursor:pointer;transition:all var(--transition-fast);border:none;width:100%;text-align:left;font-size:var(--font-size-base);font-weight:500}.accordion-title:hover{background:var(--color-gray-100)}.accordion-title.active{background:var(--color-primary-50);color:var(--color-primary-900)}.accordion-title .toggle{background:none;border:none;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0}.accordion-title .toggle:focus{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--border-radius-sm)}.icon-angle-down{display:inline-block;width:12px;height:12px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform var(--transition-fast)}.icon-angle-down.open{transform:rotate(225deg)}.accordion-title span{flex:1}.accordion-inner{padding:var(--space-4);background:#fff;border-top:1px solid var(--border-color)}.accordion-inner ul{margin:var(--space-3) 0;padding-left:var(--space-6)}.accordion-inner li{margin-bottom:var(--space-2);line-height:var(--line-height-relaxed)}.accordion-inner p{margin:var(--space-3) 0;line-height:var(--line-height-relaxed)}.accordion-inner p:last-child{margin-bottom:0;font-weight:500;color:var(--color-gray-700)}.emne-beskrivelse{margin-bottom:var(--space-4)}@media print{.accordion-inner{display:block!important}.accordion-title{background:var(--color-gray-100)!important;break-after:avoid;page-break-after:avoid}.accordion-title.active{background:var(--color-gray-100)!important}.accordion-item{break-inside:avoid;page-break-inside:avoid;margin-bottom:var(--space-4);border:1px solid #ddd}.icon-angle-down{transform:rotate(225deg)!important}}.link-content-modal{display:flex;flex-direction:column;gap:var(--space-4);min-height:500px}.link-content-header{display:flex;gap:var(--space-3);align-items:center}.search-input{flex:1;padding:var(--space-2) var(--space-3);border:1px solid var(--color-gray-300);border-radius:var(--border-radius);font-size:.875rem}.search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #0066cc1a}.bulk-actions{display:flex;gap:var(--space-2)}.bulk-btn{padding:var(--space-2) var(--space-3);background:none;border:1px solid var(--color-gray-300);border-radius:var(--border-radius);font-size:.875rem;cursor:pointer;color:var(--color-gray-700);transition:all .2s}.bulk-btn:hover{background-color:var(--color-gray-50);border-color:var(--color-gray-400)}.selection-info{padding:var(--space-2) var(--space-3);background-color:var(--color-primary-100);color:var(--color-primary-700);border-radius:var(--border-radius);font-size:.875rem}.items-list{flex:1;overflow-y:auto;max-height:400px;display:grid;gap:var(--space-2);padding:var(--space-1)}.item-card{display:flex;gap:var(--space-3);padding:var(--space-3);border:2px solid var(--color-gray-200);border-radius:var(--border-radius);cursor:pointer;transition:all .2s;background:#fff}.item-card:hover{border-color:var(--color-primary-300);background-color:var(--color-primary-50)}.item-card.selected{border-color:var(--color-primary);background-color:var(--color-primary-50)}.item-checkbox{display:flex;align-items:flex-start;padding-top:2px}.item-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer}.item-content{flex:1;display:flex;flex-direction:column;gap:var(--space-1)}.item-header{display:flex;justify-content:space-between;align-items:center}.item-code{font-weight:600;color:var(--color-primary);font-size:.875rem}.item-name{font-size:.9375rem;color:var(--color-gray-900);font-weight:500}.item-meta{font-size:.75rem;color:var(--color-gray-600)}.loading-state,.empty-state{padding:var(--space-8);text-align:center;color:var(--color-gray-500)}.link-content-footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--color-gray-200)}.edit-semester-form{display:flex;flex-direction:column;gap:var(--space-4)}.form-info{padding:var(--space-3);background:var(--color-gray-50);border-radius:var(--border-radius);font-size:var(--font-size-sm)}.form-info p{margin:0;margin-bottom:var(--space-2)}.form-info p:last-child{margin-bottom:0}.semester-assignments h3{margin:0 0 var(--space-3) 0;font-size:var(--font-size-lg);color:var(--color-gray-900)}.semester-list{display:flex;flex-direction:column;gap:var(--space-2);max-height:400px;overflow-y:auto;padding:var(--space-2);border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--color-gray-50)}.semester-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius);transition:all var(--transition-fast)}.semester-item.assigned{background:var(--color-primary-50);border-color:var(--color-primary)}.semester-checkbox{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;flex:1}.semester-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer}.semester-label{font-weight:500;color:var(--color-gray-900)}.credits-input{width:100px;padding:var(--space-2);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);text-align:right}.credits-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.form-summary{padding:var(--space-3);background:var(--color-gray-50);border-radius:var(--border-radius);border:1px solid var(--border-color)}.summary-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) 0}.summary-row:not(:last-child){border-bottom:1px solid var(--border-color)}.summary-row strong.warning{color:var(--color-warning)}.summary-row strong.error{color:var(--color-danger)}.form-actions{display:flex;justify-content:flex-end;gap:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--border-color)}.emner-page{max-width:var(--max-width-container);animation:fadeIn .3s ease-out}.emner-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6)}.emner-header h2{margin:0}.emner-table{width:100%;border-collapse:separate;border-spacing:0;background-color:#fff;border-radius:var(--border-radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.emner-table thead{background-color:var(--color-gray-50)}.emner-table th{text-align:left;padding:var(--space-4);font-weight:600;font-size:var(--font-size-xs);color:var(--color-gray-600);text-transform:uppercase;letter-spacing:.05em;border-bottom:var(--border-width) solid var(--border-color)}.emner-table tbody tr{transition:background-color var(--transition-fast)}.emner-table tbody tr:hover{background-color:var(--color-gray-50)}.emner-table td{padding:var(--space-4);border-bottom:var(--border-width) solid var(--border-color);font-size:var(--font-size-sm);color:var(--color-gray-700)}.emner-table tbody tr:last-child td{border-bottom:none}.emner-table__code{font-family:var(--font-mono);font-weight:600;color:var(--color-primary);font-size:var(--font-size-sm);background-color:var(--color-primary-light);padding:var(--space-1) var(--space-2);border-radius:var(--border-radius-sm)}.emner-table__empty{text-align:center;padding:var(--space-12)!important;color:var(--color-gray-500);font-size:var(--font-size-sm)}.naering-og-samfunn-export{width:100%}.naering-og-samfunn-export__view{margin-top:var(--space-4)}.naering-og-samfunn-export__table-wrapper{overflow-x:auto;border:1px solid var(--border-color, #e4e4e7);border-radius:var(--border-radius, 8px);max-height:600px;overflow-y:auto}.naering-og-samfunn-export__table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm, .875rem)}.naering-og-samfunn-export__table thead{position:sticky;top:0;background:var(--color-gray-50, #fafafa);z-index:1}.naering-og-samfunn-export__table th{text-align:left;padding:var(--space-3, 12px);font-weight:600;color:var(--color-gray-900, #111827);border-bottom:2px solid var(--border-color, #e4e4e7)}.naering-og-samfunn-export__table td{padding:var(--space-3, 12px);border-bottom:1px solid var(--border-color, #e4e4e7);vertical-align:top}.naering-og-samfunn-export__table tbody tr:hover{background:var(--color-gray-50, #fafafa)}.naering-og-samfunn-export__row--empty{background:var(--color-warning-light, #fef3c7)}.naering-og-samfunn-export__row--empty:hover{background:var(--color-warning, #fcd34d)}.naering-og-samfunn-export__key{min-width:200px;max-width:300px;word-break:break-word}.naering-og-samfunn-export__key-label{font-weight:600;color:var(--color-gray-900, #111827);margin-bottom:var(--space-1, 4px);font-size:var(--font-size-sm, .875rem)}.naering-og-samfunn-export__key-path{font-family:var(--font-mono, "Courier New", monospace);font-size:var(--font-size-xs, .75rem);color:var(--color-gray-500, #6b7280);word-break:break-all}.naering-og-samfunn-export__value{color:var(--color-gray-900, #111827);word-break:break-word;max-width:500px}.naering-og-samfunn-export__empty-value{font-style:italic;color:var(--color-gray-600, #52525b)}.naering-og-samfunn-export__json-view{border:1px solid var(--border-color, #e4e4e7);border-radius:var(--border-radius, 8px);padding:var(--space-4, 16px);background:var(--color-gray-50, #fafafa);max-height:600px;overflow:auto}.naering-og-samfunn-export__json-view pre{margin:0;font-family:var(--font-mono, "Courier New", monospace);font-size:var(--font-size-sm, .875rem);line-height:1.6;color:var(--color-gray-900, #111827);white-space:pre-wrap;word-wrap:break-word}.kompetanseattest-template{width:100%}.kompetanseattest-template__view{margin-top:var(--space-4)}.kompetanseattest-template__table-wrapper{overflow-x:auto;border:1px solid var(--border-color, #e4e4e7);border-radius:var(--border-radius, 8px);max-height:600px;overflow-y:auto}.kompetanseattest-template__table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm, .875rem)}.kompetanseattest-template__table thead{position:sticky;top:0;background:var(--color-gray-50, #fafafa);z-index:1}.kompetanseattest-template__table th{text-align:left;padding:var(--space-3, 12px);font-weight:600;color:var(--color-gray-900, #111827);border-bottom:2px solid var(--border-color, #e4e4e7)}.kompetanseattest-template__table td{padding:var(--space-3, 12px);border-bottom:1px solid var(--border-color, #e4e4e7);vertical-align:top}.kompetanseattest-template__table tbody tr:hover{background:var(--color-gray-50, #fafafa)}.kompetanseattest-template__row--empty{background:var(--color-warning-light, #fef3c7)}.kompetanseattest-template__row--empty:hover{background:var(--color-warning, #fcd34d)}.kompetanseattest-template__key{min-width:200px;max-width:300px;word-break:break-word}.kompetanseattest-template__key-label{font-weight:600;color:var(--color-gray-900, #111827);margin-bottom:var(--space-1, 4px);font-size:var(--font-size-sm, .875rem)}.kompetanseattest-template__key-path{font-family:var(--font-mono, "Courier New", monospace);font-size:var(--font-size-xs, .75rem);color:var(--color-gray-500, #6b7280);word-break:break-all}.kompetanseattest-template__value{color:var(--color-gray-900, #111827);word-break:break-word;max-width:500px}.kompetanseattest-template__empty-value{font-style:italic;color:var(--color-gray-600, #52525b)}.kompetanseattest-template__json-view{border:1px solid var(--border-color, #e4e4e7);border-radius:var(--border-radius, 8px);padding:var(--space-4, 16px);background:var(--color-gray-50, #fafafa);max-height:600px;overflow:auto}.kompetanseattest-template__json-view pre{margin:0;font-family:var(--font-mono, "Courier New", monospace);font-size:var(--font-size-sm, .875rem);line-height:1.6;color:var(--color-gray-900, #111827);white-space:pre-wrap;word-wrap:break-word}.version-selector{position:relative}.version-selector__current{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:#fff;border:1px solid var(--color-gray-300);border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition-fast);width:100%;max-width:100%}.version-selector__current:hover{border-color:var(--color-primary);background:var(--color-gray-50)}.version-selector__label{display:flex;align-items:center;gap:var(--space-2);color:var(--color-gray-900);font-weight:500;font-size:var(--font-size-sm)}.version-selector__label svg{color:var(--color-primary)}.version-badge{display:inline-flex;align-items:center;padding:2px var(--space-2);background:var(--color-primary-light);color:var(--color-primary);border-radius:12px;font-size:.75rem;font-weight:600}.version-badge--small{padding:1px var(--space-1);font-size:.625rem}.version-badge--gjeldende{background:var(--color-primary-light);color:var(--color-primary)}.version-badge--utkast{background:#fef3c7;color:#b45309}.version-badge--godkjent{background:#d1fae5;color:#047857}.version-selector__item--editing{background:#fefce8}.version-selector__arrow{transition:transform var(--transition-fast);color:var(--color-gray-600)}.version-selector__arrow--open{transform:rotate(180deg)}.version-selector__dropdown{position:absolute;top:calc(100% + var(--space-1));left:0;right:0;z-index:100;min-width:320px;max-width:100%;background:#fff;border:1px solid var(--color-gray-300);border-radius:var(--border-radius);box-shadow:0 4px 12px #00000026;overflow:hidden}.version-selector__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3);border-bottom:1px solid var(--color-gray-200)}.version-selector__header h3{margin:0;font-size:var(--font-size-base);font-weight:600;color:var(--color-gray-900)}.version-selector__list{max-height:400px;overflow-y:auto}.version-selector__item{display:flex;flex-direction:column;gap:var(--space-1);width:100%;padding:var(--space-3);background:#fff;border:none;border-bottom:1px solid var(--color-gray-200);text-align:left;cursor:pointer;transition:all var(--transition-fast)}.version-selector__item:last-child{border-bottom:none}.version-selector__item:hover:not(:disabled){background:var(--color-gray-50)}.version-selector__item--active{background:var(--color-primary-light);cursor:default}.version-selector__item--active:hover{background:var(--color-primary-light)}.version-selector__item:disabled{cursor:default}.version-selector__item-header{display:flex;align-items:center;gap:var(--space-2)}.version-selector__item-number{font-weight:600;color:var(--color-gray-900);font-size:var(--font-size-sm)}.version-selector__item-meta{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.version-selector__item-name{flex:1;font-size:var(--font-size-sm);color:var(--color-gray-700);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.version-selector__item-date{font-size:.75rem;color:var(--color-gray-500);white-space:nowrap}.version-selector__item-id{margin-top:var(--space-1);font-size:.7rem;color:var(--color-gray-500)}.version-selector__item-id code{font-family:var(--font-mono);font-size:.65rem;background:var(--color-gray-100);padding:2px 4px;border-radius:4px;word-break:break-all}.course-model-container{width:100%;justify-content:center;align-items:center;margin-top:var(--space-4)}.course-model{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--border-color);border-radius:var(--border-radius);overflow:hidden;background:#fff}.course-model thead{background-color:var(--color-gray-100)}.course-model th{text-align:left;padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);font-weight:600;color:var(--color-gray-700);border-bottom:2px solid var(--border-color);white-space:nowrap}.course-model th:first-child{min-width:300px}.course-model .semester-th{text-align:center;min-width:60px}.course-model .semester-th.medium{min-width:75px}.course-model tbody tr{transition:background-color var(--transition-fast)}.course-model tbody tr.odd{background-color:#fff}.course-model tbody tr.even{background-color:var(--color-gray-50)}.course-model tbody tr:hover{background-color:var(--color-primary-50)}.course-model td{padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);color:var(--color-gray-700);border-bottom:1px solid var(--border-color)}.course-model td.cm-row-first{font-weight:500}.course-model td:not(.cm-row-first){text-align:center}.course-model .ifd{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.course-model .edit-semester-button{background:var(--color-primary);color:#fff;border:none;padding:var(--space-1) var(--space-2);border-radius:var(--border-radius-sm);cursor:pointer;font-size:var(--font-size-xs);font-weight:500;transition:all var(--transition-fast);white-space:nowrap}.course-model .edit-semester-button:hover{background:var(--color-primary-dark);transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.course-model .no-placement-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);background:var(--color-warning-light);color:var(--color-warning-dark);border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);font-weight:500;white-space:nowrap}.course-model tr.footer{background-color:var(--color-primary-light);font-weight:600;border-top:2px solid var(--color-primary)}.course-model tr.footer td{border-top:2px solid var(--color-primary);border-bottom:none}.course-model.sticky-enabled thead{position:sticky;top:0;z-index:10}@media (max-width: 768px){.course-model-container{overflow-x:scroll}.course-model th,.course-model td{padding:var(--space-2);font-size:var(--font-size-xs)}.course-model th:first-child{min-width:200px}.course-model .semester-th{min-width:60px}}.table-editor{width:100%}.table-editor__error{padding:var(--space-2);margin-bottom:var(--space-2);background-color:var(--color-error-light, #fee2e2);color:var(--color-error, #dc2626);border-radius:var(--border-radius);font-size:var(--font-size-sm)}.table-editor__toolbar{display:flex;gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap}.table-editor__empty{padding:var(--space-4);text-align:center;color:var(--color-gray-500);font-style:italic;background-color:var(--color-gray-50);border-radius:var(--border-radius);border:1px dashed var(--color-gray-300)}.table-editor__wrapper{overflow-x:auto;border:1px solid var(--border-color);border-radius:var(--border-radius)}.table-editor__table{width:100%;border-collapse:collapse;background-color:#fff}.table-editor__table thead{background-color:var(--color-gray-50)}.table-editor__table th{padding:var(--space-2) var(--space-3);text-align:left;font-weight:600;font-size:var(--font-size-sm);color:var(--color-gray-700);border-bottom:2px solid var(--border-color);white-space:nowrap}.table-editor__table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-color)}.table-editor__table tbody tr:hover{background-color:var(--color-gray-50)}.table-editor__table tfoot{background-color:var(--color-gray-50);font-weight:600}.table-editor__table tfoot td{border-top:2px solid var(--border-color);padding:var(--space-3)}.table-editor__input{width:100%;padding:var(--space-1) var(--space-2);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);font-family:inherit;transition:all var(--transition-fast)}.table-editor__input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.table-editor__input--number{text-align:right;width:80px}.table-editor__input select{width:100%;padding:var(--space-1) var(--space-2);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);font-family:inherit;background:var(--color-white);cursor:pointer;transition:all var(--transition-fast)}.table-editor__input select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.table-editor__remove-btn{background:none;border:none;color:var(--color-error, #dc2626);font-size:var(--font-size-xl);cursor:pointer;padding:var(--space-1);line-height:1;transition:all var(--transition-fast);border-radius:var(--border-radius-sm)}.table-editor__remove-btn:hover{background-color:var(--color-error-light, #fee2e2)}.table-editor__remove-btn:active{transform:scale(.9)}.dynamic-field{margin-top:var(--space-2, 8px)}.dynamic-field__input{width:100%;padding:var(--space-2, 8px) var(--space-3, 12px);border:1px solid var(--border-color, #e4e4e7);border-radius:var(--border-radius, 8px);font-size:var(--font-size-sm, .875rem);font-family:inherit;background:var(--color-white, #ffffff);transition:border-color .2s}.dynamic-field__input:focus{outline:none;border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}.dynamic-field__input--error{border-color:var(--color-error, #ef4444)}.dynamic-field__input:disabled,.dynamic-field__input[readonly]{background:var(--color-gray-50, #fafafa);cursor:not-allowed}.dynamic-field__display{padding:var(--space-2, 8px) 0;color:var(--color-gray-900, #111827)}.dynamic-field__content{padding:var(--space-2, 8px) 0}.dynamic-field__empty{color:var(--color-gray-400, #a1a1aa);font-style:italic}.dynamic-field__error{display:block;margin-top:var(--space-1, 4px);font-size:var(--font-size-xs, .75rem);color:var(--color-error, #ef4444)}.dynamic-field__char-count{margin-top:var(--space-1, 4px);font-size:var(--font-size-xs, .75rem);color:var(--color-gray-500, #71717a);text-align:right}.dynamic-field__hint{margin-top:var(--space-1, 4px);font-size:var(--font-size-xs, .75rem);color:var(--color-gray-500, #71717a);font-style:italic}.dynamic-field--list{display:flex;flex-direction:column;gap:var(--space-2, 8px)}.dynamic-field__list-item{display:flex;gap:var(--space-2, 8px);align-items:center}.dynamic-field__list-item .dynamic-field__input{flex:1}.dynamic-field__remove-btn{flex-shrink:0;width:32px;height:32px;padding:0;border:1px solid var(--border-color, #e4e4e7);border-radius:var(--border-radius, 8px);background:var(--color-white, #ffffff);color:var(--color-gray-600, #52525b);font-size:1.5rem;line-height:1;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.dynamic-field__remove-btn:hover:not(:disabled){background:var(--color-error, #ef4444);color:var(--color-white, #ffffff);border-color:var(--color-error, #ef4444)}.dynamic-field__remove-btn:disabled{opacity:.5;cursor:not-allowed}.dynamic-field__add-btn{align-self:flex-start;padding:var(--space-2, 8px) var(--space-3, 12px);border:1px dashed var(--border-color, #e4e4e7);border-radius:var(--border-radius, 8px);background:var(--color-gray-50, #fafafa);color:var(--color-gray-700, #374151);font-size:var(--font-size-sm, .875rem);cursor:pointer;transition:all .2s}.dynamic-field__add-btn:hover{background:var(--color-gray-100, #f4f4f5);border-color:var(--color-primary, #3b82f6);color:var(--color-primary, #3b82f6)}.dynamic-field__list-display{list-style:disc;padding-left:1.5rem;margin:0}.dynamic-field__list-display li{margin-bottom:var(--space-1, 4px);color:var(--color-gray-900, #111827)}.dynamic-field__select{width:100%;padding:var(--space-2, 8px) var(--space-3, 12px);border:1px solid var(--border-color, #e4e4e7);border-radius:var(--border-radius, 8px);font-size:var(--font-size-sm, .875rem);font-family:inherit;background:var(--color-white, #ffffff);transition:border-color .2s;cursor:pointer}.dynamic-field__select:focus{outline:none;border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}.dynamic-field__select:disabled{background:var(--color-gray-50, #fafafa);cursor:not-allowed;opacity:.6}.dynamic-field__select--error{border-color:var(--color-error, #ef4444)}.dynamic-field__checkbox-wrapper{display:flex;align-items:center;gap:var(--space-2, 8px);cursor:pointer;-webkit-user-select:none;user-select:none}.dynamic-field__checkbox{width:20px;height:20px;cursor:pointer;accent-color:var(--color-primary, #3b82f6)}.dynamic-field__checkbox:disabled{cursor:not-allowed;opacity:.6}.dynamic-field__checkbox-label{font-size:var(--font-size-sm, .875rem);color:var(--color-gray-900, #111827)}.dynamic-field__table-placeholder{width:100%}.dynamic-field__table-wrapper{overflow-x:auto;border:1px solid var(--border-color, #e4e4e7);border-radius:var(--border-radius, 8px);max-height:400px;overflow-y:auto}.dynamic-field__table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm, .875rem)}.dynamic-field__table thead{position:sticky;top:0;background:var(--color-gray-50, #fafafa);z-index:1}.dynamic-field__table th{text-align:left;padding:var(--space-2, 8px) var(--space-3, 12px);font-weight:600;color:var(--color-gray-900, #111827);border-bottom:2px solid var(--border-color, #e4e4e7);background:var(--color-gray-50, #fafafa)}.dynamic-field__table td{padding:var(--space-2, 8px) var(--space-3, 12px);border-bottom:1px solid var(--border-color, #e4e4e7);color:var(--color-gray-900, #111827)}.dynamic-field__table tbody tr:hover{background:var(--color-gray-50, #fafafa)}.dynamic-field__table-json-view{border:1px solid var(--border-color, #e4e4e7);border-radius:var(--border-radius, 8px);padding:var(--space-3, 12px);background:var(--color-gray-50, #fafafa);max-height:300px;overflow:auto}.dynamic-field__table-json-view pre{margin:0;font-family:var(--font-mono, "Courier New", monospace);font-size:var(--font-size-xs, .75rem);line-height:1.6;color:var(--color-gray-900, #111827);white-space:pre-wrap;word-wrap:break-word}.studieplan-page{max-width:1200px;margin:0 auto;animation:fadeIn .3s ease-out}.studieplan-banner{padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);border-radius:var(--border-radius);font-size:var(--font-size-sm);line-height:1.5}.studieplan-banner--info{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af}.studieplan-banner--draft{background:#fef3c7;border:1px solid #fcd34d;color:#b45309}.studieplan-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-6);margin-bottom:var(--space-8);padding-bottom:var(--space-6);border-bottom:2px solid var(--border-color)}.studieplan-header__main{display:flex;flex-direction:column;gap:var(--space-4);flex:1;min-width:0}.studieplan-header__title-section{display:flex;flex-direction:column;gap:var(--space-2)}.studieplan-header h1{margin:0;color:var(--color-gray-900);font-size:var(--font-size-3xl);line-height:1.2;font-weight:700}.studieplan-header__description{margin:0;font-size:var(--font-size-sm);color:var(--color-gray-600);font-style:italic;line-height:1.5}.studieplan-header__metadata{display:flex;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap}.studieplan-actions{display:flex;flex-direction:column;gap:var(--space-3);align-items:flex-end;flex-shrink:0;min-width:fit-content}.studieplan-actions__secondary{display:flex;flex-direction:column;gap:var(--space-2);width:100%}.studieplan-actions button{white-space:nowrap;width:100%;min-width:180px}.studieplan-studie-id{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:var(--border-radius);font-size:var(--font-size-sm);flex-shrink:0}.studieplan-studie-id__label{margin:0;font-weight:600;color:var(--color-gray-700)}.studieplan-studie-id__value{font-family:var(--font-mono);font-size:.75rem;color:var(--color-gray-800);padding:2px 6px;background:#fff;border-radius:4px;border:1px solid var(--color-gray-200);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.studieplan-studie-id__copy{padding:var(--space-1) var(--space-2);font-size:.75rem;background:#fff;border:1px solid var(--color-gray-300);border-radius:var(--border-radius);cursor:pointer;color:var(--color-gray-700);transition:all var(--transition-fast)}.studieplan-studie-id__copy:hover{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.studiefakta-box{background-color:var(--color-gray-50);border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius-lg);padding:var(--space-6);margin-bottom:var(--space-8);box-shadow:var(--shadow-sm)}.studiefakta-box h3{margin:0 0 var(--space-4) 0;color:var(--color-gray-900);font-size:var(--font-size-lg);border-bottom:2px solid var(--color-primary);padding-bottom:var(--space-2)}.studiefakta-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-4);margin:0}.studiefakta-item{display:flex;flex-direction:column;gap:var(--space-1)}.studiefakta-item dt{font-size:var(--font-size-xs);font-weight:600;color:var(--color-gray-600);text-transform:uppercase;letter-spacing:.05em}.studiefakta-item dd{margin:0;font-size:var(--font-size-sm);color:var(--color-gray-900)}.inline-input{width:100%;padding:var(--space-2);border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);background-color:#fff;transition:all var(--transition-fast)}.inline-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.inline-input:disabled,.inline-input[readOnly]{background-color:var(--color-gray-100);color:var(--color-gray-700);cursor:not-allowed;opacity:.9}.inline-input:read-only{background-color:var(--color-gray-100);cursor:not-allowed}.studieplan-content{display:flex;flex-direction:column;gap:var(--space-8)}.studieplan-section{background-color:#fff;border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-base)}.studieplan-section:hover{box-shadow:var(--shadow)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:var(--border-width) solid var(--border-color)}.section-header h2{margin:0;font-size:var(--font-size-xl);color:var(--color-gray-900)}.section-content{line-height:var(--line-height-relaxed);color:var(--color-gray-700)}.section-content p{margin-bottom:var(--space-4)}.section-content p:last-child{margin-bottom:0}.section-content ul,.section-content ol{margin:var(--space-2) 0 var(--space-4);padding-left:var(--space-6)}.section-content li{margin-bottom:var(--space-1)}.section-content a{color:var(--color-primary);text-decoration:underline}.section-content a:hover{text-decoration:none}.section-textarea{width:100%;padding:var(--space-3);border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius);font-family:inherit;font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);resize:vertical;min-height:100px;transition:all var(--transition-fast)}.section-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.empty-state{padding:var(--space-6);text-align:center;color:var(--color-gray-500);font-style:italic;background-color:var(--color-gray-50);border-radius:var(--border-radius)}.dynamic-field-wrapper{margin-bottom:var(--space-6)}.dynamic-field-wrapper:last-child{margin-bottom:0}.dynamic-field-label{display:block;font-weight:600;font-size:var(--font-size-base);color:var(--color-gray-900);margin-bottom:var(--space-2)}.dynamic-field-label .required{color:var(--color-error, #ef4444);font-weight:700}.dynamic-field-description{font-weight:400;font-size:var(--font-size-sm);color:var(--color-gray-600);font-style:italic}.laeringsutbytte-kategori{margin-top:var(--space-6)}.laeringsutbytte-kategori:first-of-type{margin-top:var(--space-4)}.laeringsutbytte-kategori h3{font-size:var(--font-size-lg);color:var(--color-primary);margin-bottom:var(--space-2)}.laeringsutbytte-kategori p{margin-bottom:var(--space-2);font-style:italic;color:var(--color-gray-600)}.laeringsutbytte-kategori ul{list-style:disc;padding-left:var(--space-6);margin:0}.laeringsutbytte-kategori li{margin-bottom:var(--space-3);line-height:var(--line-height-relaxed);color:var(--color-gray-700)}.laeringsutbytte-kategori li:last-child{margin-bottom:0}.emner-tabell{width:100%;margin-top:var(--space-4);border-collapse:separate;border-spacing:0;border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius);overflow:hidden}.emner-tabell thead{background-color:var(--color-gray-100)}.emner-tabell th{text-align:left;padding:var(--space-3) var(--space-4);font-size:var(--font-size-xs);font-weight:600;color:var(--color-gray-700);text-transform:uppercase;letter-spacing:.05em;border-bottom:var(--border-width) solid var(--border-color)}.emner-tabell td{padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);color:var(--color-gray-700);border-bottom:var(--border-width) solid var(--border-color)}.emner-tabell tbody tr{transition:background-color var(--transition-fast)}.emner-tabell tbody tr:hover{background-color:var(--color-gray-50)}.emner-tabell tbody tr:last-child td{border-bottom:none}.emner-tabell .total-row{background-color:var(--color-primary-light);font-weight:600}.emner-tabell .total-row td{border-top:2px solid var(--color-primary)}@media (max-width: 768px){.studieplan-header{flex-direction:column;align-items:stretch;gap:var(--space-4)}.studieplan-header__main{width:100%}.studieplan-header__metadata{flex-direction:column;width:100%}.studieplan-studie-id{width:100%}.studieplan-actions{width:100%;align-items:stretch}.studieplan-actions button{width:100%;min-width:unset}.studiefakta-list{grid-template-columns:1fr}.emner-tabell{font-size:var(--font-size-xs)}.emner-tabell th,.emner-tabell td{padding:var(--space-2)}}.studieplan-empty-sections{margin-bottom:var(--space-6);padding:var(--space-4);background:var(--color-gray-50);border-radius:var(--border-radius);border:1px solid var(--border-color)}.studieplan-empty-sections__title{margin:0 0 var(--space-3) 0;font-size:var(--font-size-sm);color:var(--color-gray-600)}.studieplan-empty-sections__list{margin:0;padding-left:var(--space-6);list-style:disc;display:block}.studieplan-empty-sections__item{margin-bottom:var(--space-2);line-height:1.5}.studieplan-empty-sections__item:last-child{margin-bottom:0}.studieplan-empty-sections__link{background:none;border:none;padding:0;cursor:pointer;text-decoration:underline;color:var(--color-primary);font-size:var(--font-size-sm);text-align:left;font-family:inherit}.studieplan-empty-sections__link:hover{color:var(--color-primary-700);text-decoration:none}.workspace{height:100vh;display:flex;flex-direction:column;overflow:hidden}.workspace__content{flex:1;overflow-y:auto;padding:var(--space-8);background-color:var(--color-gray-50)}.workspace-loading,.workspace-error{display:flex;align-items:center;justify-content:center;height:100vh;font-size:1.125rem;color:var(--color-gray-600)}.admin-page{animation:fadeIn .2s ease-out;max-width:1400px;margin:0 auto;padding:var(--space-6);background:radial-gradient(1200px 300px at 10% -10%,rgba(59,130,246,.08),transparent 60%),radial-gradient(800px 280px at 90% -20%,rgba(16,185,129,.08),transparent 60%);border-radius:var(--border-radius-xl, 16px)}.admin-page__header{margin-bottom:var(--space-8);padding:var(--space-5) var(--space-6);background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid var(--border-color);border-radius:var(--border-radius-lg, 12px);box-shadow:0 8px 24px #0f172a0f}.admin-page__title{margin:0 0 var(--space-2);font-size:var(--font-size-3xl, 2rem);font-weight:700;color:var(--color-gray-900);line-height:1.2}.admin-page__subtitle{margin:0;color:var(--color-gray-600);font-size:var(--font-size-base);line-height:1.5;max-width:80ch}.admin-page__back-button{display:inline-flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-2) var(--space-3);background:none;border:1px solid var(--border-color);border-radius:var(--border-radius);color:var(--color-gray-700);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-base)}.admin-page__back-button:hover{background:var(--color-gray-50);border-color:var(--color-gray-300);color:var(--color-gray-900)}.admin-page__overview-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--space-6);margin-top:var(--space-8)}.admin-page__overview-card{position:relative;display:flex;flex-direction:column;padding:var(--space-8);background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-lg, 12px);box-shadow:0 10px 22px #0f172a0f;cursor:pointer;transition:all var(--transition-base);text-align:left;overflow:hidden}.admin-page__overview-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--color-primary),var(--color-primary-light));transform:scaleX(0);transform-origin:left;transition:transform var(--transition-base)}.admin-page__overview-card:hover{border-color:var(--color-primary);box-shadow:0 14px 30px #0f172a24;transform:translateY(-3px)}.admin-page__overview-card:hover:before{transform:scaleX(1)}.admin-page__overview-card:active{transform:translateY(0)}.admin-page__overview-card:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.admin-page__card-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin-bottom:var(--space-4);padding:var(--space-3);background:linear-gradient(135deg,var(--color-primary-light, #dbeafe),var(--color-primary-lighter, #eff6ff));border-radius:var(--border-radius-lg, 12px);color:var(--color-primary);box-shadow:inset 0 0 0 1px #1e40af14}.admin-page__card-title{margin:0 0 var(--space-2);font-size:var(--font-size-xl, 1.5rem);font-weight:700;color:var(--color-gray-900);line-height:1.3}.admin-page__card-description{margin:0 0 var(--space-6);color:var(--color-gray-600);font-size:var(--font-size-base);line-height:1.6;flex-grow:1}.admin-page__card-stats{display:flex;gap:var(--space-4);margin-bottom:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border-color);flex-wrap:wrap}.admin-page__card-stat{display:flex;flex-direction:column;gap:var(--space-1);min-width:90px}.admin-page__card-stat--total{margin-left:auto;padding-left:var(--space-4);border-left:1px solid var(--border-color)}.admin-page__card-stat-value{font-size:var(--font-size-2xl, 1.75rem);font-weight:700;color:var(--color-gray-900);line-height:1}.admin-page__card-stat-label{font-size:var(--font-size-sm);color:var(--color-gray-600);font-weight:500}.admin-page__card-arrow{position:absolute;top:var(--space-6);right:var(--space-6);display:flex;align-items:center;justify-content:center;width:40px;height:40px;color:var(--color-gray-400);transition:all var(--transition-base)}.admin-page__overview-card:hover .admin-page__card-arrow{color:var(--color-primary);transform:translate(4px)}.admin-page__loading,.admin-page__error,.admin-page__empty{margin:0;padding:var(--space-4);color:var(--color-gray-600);text-align:center;border:1px dashed var(--border-color);border-radius:var(--border-radius);background:#fcfcfd}.admin-page__error{color:var(--color-error, #b91c1c)}.admin-page__panel-title{margin:0;font-size:var(--font-size-lg);font-weight:600;color:var(--color-gray-900)}.admin-page__count{font-size:var(--font-size-sm);color:var(--color-gray-500);font-weight:500}.admin-page__list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3)}.admin-page__item{border:1px solid var(--border-color);border-radius:var(--border-radius);background:linear-gradient(180deg,#fff,#fbfdff);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.admin-page__item:hover{border-color:#3b82f666;box-shadow:0 6px 18px #0f172a14;transform:translateY(-1px)}.admin-page__item-main{display:grid;grid-template-columns:1fr auto;align-items:start;gap:var(--space-4);padding:var(--space-4) var(--space-5)}.admin-page__item-info{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;min-width:0;row-gap:var(--space-2)}.admin-page__item-name{background:none;border:none;padding:0;font-size:var(--font-size-base);font-weight:600;color:var(--color-primary);cursor:pointer;text-align:left;text-decoration:none;border-bottom:1px dashed currentColor;word-break:break-word;min-width:0}.admin-page__item-name:hover{color:var(--color-primary-dark, #0d3d3d);border-bottom-style:solid}.admin-page__item-kode{font-size:var(--font-size-sm);color:var(--color-gray-500);font-family:var(--font-mono)}.admin-page__item-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;max-width:480px}.admin-page__form-grid{display:grid;gap:12px}.admin-page__input{width:100%;border:1px solid var(--border-color);border-radius:var(--border-radius);background:#fff;color:var(--color-gray-900);padding:10px 12px;font-size:var(--font-size-sm);line-height:1.4;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.admin-page__input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f629}.admin-page__input--compact{max-width:140px;padding:8px 10px}.admin-page__helper-text{margin-top:12px;font-size:var(--font-size-sm);color:var(--color-gray-700)}.admin-page__helper-text code{display:inline-block;max-width:100%;overflow-wrap:anywhere;padding:2px 6px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;color:#0f172a}.admin-table-wrap{overflow-x:auto;border:1px solid var(--border-color);border-radius:var(--border-radius);background:#fff}.admin-table{width:100%;border-collapse:collapse;min-width:760px}.admin-table thead th{background:#f8fafc;color:var(--color-gray-700);font-size:12px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:10px 12px;border-bottom:1px solid var(--border-color)}.admin-table tbody td{padding:12px;border-bottom:1px solid #eef2f7;color:var(--color-gray-800);vertical-align:middle}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table tbody tr:hover td{background:#fafcff}.admin-table__primary-text{font-weight:600;color:var(--color-gray-900)}.admin-table__secondary-text{margin-left:4px;color:var(--color-gray-500);font-size:var(--font-size-sm)}.admin-table__code-badge{display:inline-block;padding:2px 8px;border-radius:999px;background:#eef2ff;color:#3730a3;font-size:12px;border:1px solid #c7d2fe}.admin-table__icon-button{padding:6px!important;min-width:32px;min-height:32px;display:inline-flex;align-items:center;justify-content:center}.admin-table__icon-button--danger{border:1px solid #fca5a5!important;color:#dc2626!important;background:#fff!important}.admin-table__icon-button--danger:hover{background:#fef2f2!important;border-color:#f87171!important}@media (max-width: 768px){.admin-page{padding:var(--space-4);border-radius:var(--border-radius-lg, 12px)}.admin-page__overview-cards{grid-template-columns:1fr;gap:var(--space-4)}.admin-page__overview-card{padding:var(--space-6)}.admin-page__item-main{grid-template-columns:1fr;gap:var(--space-3);padding:var(--space-4)}.admin-page__item-actions{justify-content:flex-start}.admin-page__header{padding:var(--space-4)}.admin-table{min-width:640px}}.admin-diff{--diff-primary: #094C51;--diff-primary-light: rgba(9, 76, 81, .08);--diff-primary-border: #0d6b72;--diff-draft: #b45309;--diff-draft-light: rgba(180, 83, 9, .08);--diff-draft-border: #d97706;--diff-bg: #f8faf9;--diff-card-bg: #ffffff;--diff-card-shadow: 0 2px 12px rgba(9, 76, 81, .06);--diff-card-shadow-hover: 0 8px 24px rgba(9, 76, 81, .1);--diff-radius: 12px;--diff-radius-sm: 8px;max-width:1440px;margin:0 auto;padding:var(--space-6);background:var(--diff-bg);min-height:100vh}.admin-diff__header{margin-bottom:var(--space-8);padding:var(--space-5);background:var(--diff-card-bg);border-radius:var(--diff-radius);box-shadow:var(--diff-card-shadow);border:1px solid rgba(9,76,81,.1)}.admin-diff__header-inner{display:flex;flex-direction:column;gap:var(--space-3)}.admin-diff__title{margin:0;font-size:1.5rem;font-weight:700;color:var(--diff-primary);letter-spacing:-.02em;display:flex;align-items:center;gap:.5rem}.admin-diff__title:before{content:"";display:inline-block;width:4px;height:1.4em;background:linear-gradient(180deg,var(--diff-primary) 0%,#0d6b72 100%);border-radius:2px}.admin-diff__subtitle{margin:0;font-size:.9375rem;color:var(--color-gray-600);line-height:1.5}.admin-diff__actions{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-2);flex-wrap:wrap}.admin-diff__link{color:var(--diff-primary);text-decoration:none;font-weight:500;font-size:.9375rem;padding:.25rem 0;border-bottom:1px solid transparent;transition:border-color .15s,color .15s}.admin-diff__link:hover{color:var(--diff-primary-border);border-bottom-color:var(--diff-primary-border)}.admin-diff__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8);align-items:start}@media (max-width: 960px){.admin-diff__grid{grid-template-columns:1fr;gap:var(--space-6)}}.admin-diff__col{background:var(--diff-card-bg);border-radius:var(--diff-radius);box-shadow:var(--diff-card-shadow);overflow:hidden;min-height:280px;min-width:0;transition:box-shadow .2s ease;border:1px solid rgba(0,0,0,.06)}.admin-diff__col:hover{box-shadow:var(--diff-card-shadow-hover)}.admin-diff__col--current{border-top:4px solid var(--diff-primary)}.admin-diff__col--current .admin-diff__col-header{background:var(--diff-primary-light);border-bottom:1px solid rgba(9,76,81,.12)}.admin-diff__col--current .admin-diff__col-title{color:var(--diff-primary)}.admin-diff__col--current .admin-diff__col-badge{background:var(--diff-primary);color:#fff}.admin-diff__col--draft{border-top:4px solid var(--diff-draft-border)}.admin-diff__col--draft .admin-diff__col-header{background:var(--diff-draft-light);border-bottom:1px solid rgba(180,83,9,.15)}.admin-diff__col--draft .admin-diff__col-title{color:#92400e}.admin-diff__col--draft .admin-diff__col-badge{background:var(--diff-draft-border);color:#fff}.admin-diff__col-header{padding:var(--space-4) var(--space-5)}.admin-diff__col-title{margin:0 0 .25rem;font-size:1.0625rem;font-weight:700;letter-spacing:-.01em;line-height:1.3}.admin-diff__col-meta{margin:0;font-size:.8125rem;color:var(--color-gray-500);display:flex;align-items:center;gap:.5rem}.admin-diff__col-badge{display:inline-block;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:.25rem .5rem;border-radius:4px;margin-bottom:.5rem}.admin-diff__col-body{padding:var(--space-4) var(--space-5) var(--space-5);min-width:0}.admin-diff__section{margin-bottom:var(--space-5);padding-bottom:var(--space-4);border-bottom:1px solid rgba(0,0,0,.06)}.admin-diff__section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.admin-diff__section-title{margin:0 0 var(--space-2);font-size:.75rem;font-weight:600;color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.05em;padding-left:.75rem;border-left:3px solid var(--color-gray-300)}.admin-diff__col--current .admin-diff__section-title{border-left-color:var(--diff-primary);color:var(--diff-primary)}.admin-diff__col--draft .admin-diff__section-title{border-left-color:var(--diff-draft-border);color:#92400e}.admin-diff__content{font-size:.9375rem;line-height:1.65;color:var(--color-gray-800);max-width:100%;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word}.admin-diff__content a{overflow-wrap:break-word;word-break:break-all}.admin-diff__content p{margin:0 0 .6em;min-width:0}.admin-diff__content p:last-child{margin-bottom:0}.admin-diff__content ul,.admin-diff__content ol{margin:.5em 0;padding-left:1.25rem}.admin-diff__content .admin-diff__empty-field{color:var(--color-gray-400);font-style:italic}.admin-diff__loading,.admin-diff__error,.admin-diff__empty{margin:0;padding:var(--space-8);color:var(--color-gray-600);text-align:center;background:var(--diff-card-bg);border-radius:var(--diff-radius);box-shadow:var(--diff-card-shadow)}.admin-diff__error{color:var(--color-error, #b91c1c)}.admin-diff__actions:not(.admin-diff__header .admin-diff__actions){margin-top:var(--space-4);justify-content:center}.admin-diff .admin-diff__actions .admin-diff__link{display:inline-block}.admin-diff__legend{display:flex;flex-wrap:wrap;gap:8px}.admin-diff__legend-item{font-size:12px;padding:4px 8px;border-radius:999px;border:1px solid transparent}.admin-diff__legend-item--added{background:#ecfdf5;border-color:#6ee7b7;color:#065f46}.admin-diff__legend-item--removed{background:#fef2f2;border-color:#fca5a5;color:#991b1b}.admin-diff__legend-item--changed{background:#fff7ed;border-color:#fdba74;color:#9a3412}.admin-diff__single{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:var(--diff-radius);box-shadow:var(--diff-card-shadow);padding:var(--space-5)}.admin-diff__single-header{margin-bottom:var(--space-4)}.admin-diff__single-header h2{margin:0 0 4px;color:var(--diff-primary);font-size:1.1rem}.admin-diff__single-header p{margin:0;color:var(--color-gray-600);font-size:.875rem}.admin-diff__change-list{display:grid;gap:12px}.admin-diff__change{border:1px solid #e5e7eb;border-left-width:4px;border-radius:var(--diff-radius-sm);background:#fff;padding:12px 14px}.admin-diff__change--added{border-left-color:#10b981;background:#f7fffb}.admin-diff__change--removed{border-left-color:#ef4444;background:#fff9f9}.admin-diff__change--changed{border-left-color:#f59e0b;background:#fffdfa}.admin-diff__change-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.admin-diff__change-header h3{margin:0;font-size:.95rem;color:var(--color-gray-900)}.admin-diff__change-badge{font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:3px 8px;border-radius:999px;border:1px solid transparent;font-weight:700}.admin-diff__change-badge--added{background:#ecfdf5;border-color:#6ee7b7;color:#065f46}.admin-diff__change-badge--removed{background:#fef2f2;border-color:#fca5a5;color:#991b1b}.admin-diff__change-badge--changed{background:#fff7ed;border-color:#fdba74;color:#9a3412}.admin-diff__change-content-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.admin-diff__change-content-label{margin:0 0 6px;font-size:12px;color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.04em}.admin-diff__unchanged{margin-top:var(--space-4);padding:var(--space-4);border:1px dashed #cbd5e1;border-radius:var(--diff-radius-sm);background:#f8fafc}.admin-diff__unchanged h3{margin:0 0 4px;font-size:.9rem;color:var(--color-gray-700)}.admin-diff__unchanged p{margin:0;font-size:.85rem;color:var(--color-gray-600)}@media (max-width: 960px){.admin-diff__change-content-grid{grid-template-columns:1fr}}.public-view{--pv-primary: #094C51;--pv-primary-dark: #073a3e;--pv-primary-light: rgba(9, 76, 81, .08);--pv-secondary: #74A680;--pv-secondary-light: rgba(116, 166, 128, .15);--pv-accent: #C9DD0A;--pv-accent-muted: rgba(201, 221, 10, .2);--pv-text: #1a2b2d;--pv-text-muted: #4a5f62;--pv-bg: #f8faf9;--pv-card-bg: #ffffff;--pv-border: #e2eae8;--pv-radius: 12px;--pv-radius-sm: 8px;--pv-shadow: 0 2px 8px rgba(9, 76, 81, .06);--pv-shadow-lg: 0 12px 40px rgba(9, 76, 81, .1);--title-color: #fff;min-height:100vh;background:var(--pv-bg);font-family:var(--font-sans);color:var(--pv-text)}.public-view__title{color:var(--title-color)}.public-view__header{background:linear-gradient(160deg,var(--pv-primary) 0%,var(--pv-primary-dark) 100%);color:#fff;padding:clamp(2.5rem,6vw,4rem) 0;position:relative;overflow:hidden}.public-view__header:before{content:"";position:absolute;top:0;right:0;width:50%;height:100%;background:linear-gradient(135deg,transparent 40%,rgba(116,166,128,.15) 100%);pointer-events:none}.public-view__container{max-width:720px;margin:0 auto;padding:0 clamp(1.25rem,4vw,2rem);position:relative;z-index:1}.public-view__header h1{font-size:clamp(1.75rem,4vw,2.25rem);font-weight:700;margin:0 0 .75rem;letter-spacing:-.02em;line-height:1.2}.public-view__meta{display:flex;align-items:center;gap:1rem;font-size:.9375rem;color:#ffffffe0;font-weight:500}.public-view__meta-badge{display:inline-block;padding:.25rem .6rem;background:#fff3;border-radius:6px;font-weight:600}.public-view__meta-sep{opacity:.5;font-weight:300}.public-view__main{padding:clamp(2rem,5vw,3.5rem) 0;min-width:0}.public-view__section{margin-bottom:clamp(2rem,5vw,3rem);min-width:0}.public-view__section:last-child{margin-bottom:0}.public-view__section h2{font-size:1.25rem;font-weight:700;color:var(--pv-primary);margin:0 0 1rem;padding-bottom:.5rem;border-bottom:3px solid var(--pv-accent);display:inline-block;letter-spacing:-.01em}.public-view__section h3{font-size:1rem;font-weight:600;color:var(--pv-primary);margin:0 0 .75rem;letter-spacing:-.01em}.public-view__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}.public-view__studiefakta{margin-bottom:clamp(1.5rem,4vw,2.5rem)}.studiefakta-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem 1.5rem;margin:0;padding:1.25rem 1.5rem;background:var(--pv-card-bg);border-radius:var(--pv-radius);box-shadow:var(--pv-shadow);border:1px solid var(--pv-border)}.studiefakta-item{display:flex;flex-direction:column;gap:.25rem}.studiefakta-item dt{font-size:.8125rem;font-weight:600;color:var(--pv-text-muted);text-transform:uppercase;letter-spacing:.03em;margin:0}.studiefakta-item dd{font-size:1rem;font-weight:600;color:var(--pv-primary);margin:0}.public-view__emner-intro{font-size:.9375rem;color:var(--pv-text-muted);margin:0 0 1rem}.course-table-wrap{overflow-x:auto;border-radius:var(--pv-radius-sm);border:1px solid var(--pv-border);box-shadow:var(--pv-shadow)}.course-table{width:100%;border-collapse:collapse;font-size:.9375rem}.course-table thead{background:var(--pv-primary);color:#fff}.course-table th{text-align:left;padding:.75rem 1rem;font-weight:600}.course-table td{padding:.75rem 1rem;border-bottom:1px solid var(--pv-border);color:var(--pv-text)}.course-table tbody tr:last-child td{border-bottom:none}.course-table tbody tr:hover{background:var(--pv-primary-light)}.course-table__code{font-family:var(--font-mono);font-weight:700;color:var(--pv-primary);margin-right:.35rem}.course-table__total{background:var(--pv-secondary-light);font-weight:600}.course-table__total td{padding:.875rem 1rem;border-top:2px solid var(--pv-secondary)}.public-view__description{font-size:1.0625rem;line-height:1.75;color:var(--pv-text-muted);max-width:100%;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word}.public-view__description a{word-break:break-all}.public-view__description p{margin-bottom:1rem;min-width:0}.public-view__description p:last-child{margin-bottom:0}.public-view__description ul,.public-view__description ol{margin:.75rem 0 1rem;padding-left:1.5rem}.public-view__description li{margin-bottom:.35rem}.public-view__laeringsutbytte-kategori{margin-top:1.5rem}.public-view__laeringsutbytte-kategori:first-child{margin-top:1rem}.public-view__laeringsutbytte-kategori h3{font-size:1.0625rem;font-weight:600;color:var(--pv-primary);margin:0 0 .75rem}.public-view__laeringsutbytte-kategori ul{margin:0;padding-left:1.5rem;list-style-type:disc}.public-view__laeringsutbytte-kategori li{margin-bottom:.5rem;line-height:1.6}.public-view__pensum-accordion{margin-top:1rem}.public-view__pensum-details{border:1px solid var(--pv-border);border-radius:var(--pv-radius);background:var(--pv-card-bg);box-shadow:var(--pv-shadow);overflow:hidden}.public-view__pensum-summary{padding:1rem 1.25rem;background:var(--pv-primary);color:#fff;cursor:pointer;list-style:none;font-weight:600;-webkit-user-select:none;user-select:none}.public-view__pensum-summary::-webkit-details-marker{display:none}.public-view__pensum-summary::marker{display:none}.public-view__pensum-summary h3{margin:0;font-size:1.0625rem;font-weight:600;color:#fff}.public-view__pensum-content{padding:1.25rem}.public-view__pensum-content ul{margin:0 0 1rem;padding-left:1.5rem;list-style-type:disc}.public-view__pensum-content li{margin-bottom:.5rem;line-height:1.6}.public-view__pensum-content-text{margin-top:1rem}.public-view__pensum-content-text:first-child{margin-top:0}.public-view__description a{color:var(--pv-primary);text-decoration:underline;text-underline-offset:2px}.public-view__description a:hover{color:var(--pv-secondary)}.learning-outcomes{display:grid;gap:1.75rem}.learning-outcomes__group{background:var(--pv-card-bg);border-radius:var(--pv-radius);padding:1.25rem 1.5rem;box-shadow:var(--pv-shadow);border:1px solid var(--pv-border)}.learning-outcomes__group h3{margin-bottom:.5rem;color:var(--pv-primary)}.learning-outcomes__group ul{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}.learning-outcomes__group li{padding:.75rem 1rem;background:var(--pv-primary-light);border-radius:var(--pv-radius-sm);border-left:4px solid var(--pv-secondary);font-size:.9375rem;line-height:1.5;color:var(--pv-text)}.course-list{display:grid;gap:.75rem}.course-card{display:grid;grid-template-columns:auto 1fr auto;gap:1.25rem;align-items:center;padding:1rem 1.25rem;background:var(--pv-card-bg);border-radius:var(--pv-radius-sm);box-shadow:var(--pv-shadow);border:1px solid var(--pv-border);transition:box-shadow .2s ease,border-color .2s ease}.course-card:hover{border-color:var(--pv-secondary);box-shadow:0 4px 12px #094c5114}.course-card__code{font-family:var(--font-mono);font-size:.875rem;font-weight:700;color:var(--pv-primary);background:var(--pv-accent-muted);padding:.35rem .6rem;border-radius:6px;letter-spacing:.02em}.course-card__name{font-weight:500;font-size:1rem;color:var(--pv-text)}.course-card__credits{font-size:.875rem;font-weight:600;color:var(--pv-secondary);white-space:nowrap}.public-view__loading,.public-view__error{display:flex;align-items:center;justify-content:center;min-height:100vh;font-size:1.125rem;color:var(--pv-text-muted);background:var(--pv-bg)}.public-view__error{color:var(--pv-primary);font-weight:500}.public-view__header-inner{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem}.public-view__header-inner>div:first-child{flex:1;min-width:0}.public-view__print-wrap{flex-shrink:0;margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:.35rem}.public-view__print-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:600;color:var(--pv-primary);background:#fff;border:2px solid rgba(255,255,255,.8);border-radius:var(--pv-radius-sm);cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease}.public-view__print-btn:hover{background:#fffffff2;border-color:#fff;color:var(--pv-primary-dark)}.public-view__print-icon{flex-shrink:0}.public-view__print-hint{font-size:.7rem;color:#ffffffd9;font-weight:500;line-height:1.2;max-width:140px;text-align:right}.print-header,.print-footer{display:none}@media print{:root{--print-header-height: 110px;--print-footer-height: 110px;--print-safe-gap: 24px;--print-top-reserved: calc(var(--print-header-height) + var(--print-safe-gap));--print-bottom-reserved: calc(var(--print-footer-height) + var(--print-safe-gap))}.public-view__no-print,.public-view__header{display:none!important}@page{size:A4;margin:12mm 18mm}html,body{margin:0!important;padding:0!important}.public-view{background:#fff;box-sizing:border-box;margin:0;padding:0}.public-view__main{font-size:.95em;min-height:0;padding-top:var(--print-top-reserved);padding-bottom:var(--print-bottom-reserved);display:flow-root;-webkit-box-decoration-break:clone;box-decoration-break:clone}.public-view__main>.public-view__container>.public-view__section:first-child{margin-top:0}.print-header{display:block!important;position:fixed;top:0;left:0;right:0;height:var(--print-header-height);z-index:100;background:#fff;border-bottom:3px solid var(--pv-primary);padding:0 18mm;box-sizing:border-box}.print-header__inner{max-width:100%;margin:0 auto;height:100%;display:flex;align-items:center;gap:.75rem}.print-header__logo-img{height:52px;width:auto;object-fit:contain;display:block}.print-header__tagline{font-size:.95rem;color:var(--pv-text-muted);margin-top:.2em}.print-footer{display:block!important;position:fixed;bottom:0;left:0;right:0;height:var(--print-footer-height);z-index:100;background:#094c51;color:#fff;padding:0 18mm;box-sizing:border-box;-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-footer__inner{max-width:100%;margin:0 auto;height:100%;display:flex;align-items:center;justify-content:space-between;gap:2rem;font-size:.8rem}.print-footer__logo-img{height:50px;width:auto;object-fit:contain;display:block}.print-footer__contact,.print-footer__address{display:flex;flex-direction:column;gap:.2rem}.print-footer__address{text-align:right}.print-footer__copyright{font-weight:600;white-space:nowrap;font-size:.85rem}.public-view__section h2{font-size:1.1rem}.public-view__description,.public-view__description p{font-size:.9rem;line-height:1.6}.studiefakta-item dd,.course-table{font-size:.9rem}.learning-outcomes__group li{font-size:.875rem}.public-view__section{break-inside:avoid;page-break-inside:avoid;margin-top:.5rem;margin-bottom:1rem;padding-top:.25rem;padding-bottom:.25rem;min-height:0}.public-view__section h2,.public-view__section h3{break-after:avoid;page-break-after:avoid;margin-top:0}p,li,dd{orphans:2;widows:2}.public-view__description{break-inside:auto;page-break-inside:auto}.public-view__description>*{break-inside:avoid;page-break-inside:avoid}.public-view__description ul,.public-view__description ol{break-inside:auto;page-break-inside:auto}.public-view__description li{break-inside:avoid;page-break-inside:avoid}.public-view__section--study-content{page-break-before:always;break-before:page}.studiefakta-grid,.public-view__laeringsutbytte-kategori,.public-view__pensum-details,.learning-outcomes__group{break-inside:avoid;page-break-inside:avoid}.course-table-wrap{break-inside:auto;page-break-inside:auto}.course-table thead{display:table-header-group}.course-table tr{break-inside:avoid;page-break-inside:avoid}.studiefakta-grid,.course-table-wrap,.learning-outcomes__group{box-shadow:none;border:1px solid #ddd}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f5f7fb;padding:1rem}.login-card{width:100%;max-width:420px;background:#fff;border-radius:12px;box-shadow:0 12px 36px #0000001a;padding:1.5rem;display:grid;gap:.75rem}.login-card h1{margin:0;font-size:1.6rem}.login-card p{margin:0 0 .5rem;color:#4b5563}.login-card label{font-size:.9rem;color:#1f2937}.login-card input{width:100%;padding:.65rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.95rem}.login-card button{margin-top:.5rem;border:none;border-radius:8px;padding:.7rem 1rem;background:#2563eb;color:#fff;font-weight:600;cursor:pointer}.login-card button:disabled{opacity:.7;cursor:not-allowed}.login-error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;border-radius:8px;padding:.6rem .75rem;font-size:.9rem}.login-success{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46;border-radius:8px;padding:.6rem .75rem;font-size:.9rem}:root{--color-primary: #3b82f6;--color-primary-hover: #2563eb;--color-primary-light: #eff6ff;--color-primary-dark: #1e40af;--color-success: #10b981;--color-success-light: #d1fae5;--color-success-dark: #059669;--color-warning: #f59e0b;--color-warning-light: #fef3c7;--color-warning-dark: #d97706;--color-danger: #ef4444;--color-danger-light: #fee2e2;--color-danger-dark: #dc2626;--color-info: #06b6d4;--color-info-light: #cffafe;--color-gray-50: #fafafa;--color-gray-100: #f4f4f5;--color-gray-200: #e4e4e7;--color-gray-300: #d4d4d8;--color-gray-400: #a1a1aa;--color-gray-500: #71717a;--color-gray-600: #52525b;--color-gray-700: #3f3f46;--color-gray-800: #27272a;--color-gray-900: #18181b;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-mono: "SF Mono", "Monaco", "Inconsolata", "Roboto Mono", "Courier New", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--border-radius: .5rem;--border-radius-sm: .25rem;--border-radius-lg: .75rem;--border-radius-xl: 1rem;--border-radius-full: 9999px;--border-color: var(--color-gray-200);--border-width: 1px;--shadow-xs: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-md: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-lg: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--shadow-xl: 0 25px 50px -12px rgb(0 0 0 / .25);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .2s cubic-bezier(.4, 0, .2, 1);--transition-slow: .3s cubic-bezier(.4, 0, .2, 1);--sidebar-width: 260px;--sidebar-collapsed-width: 60px;--header-height: 64px;--max-width-container: 1400px}*{box-sizing:border-box;margin:0;padding:0}html{height:100%;scroll-behavior:smooth}body{height:100%;font-family:var(--font-sans);font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--color-gray-900);background-color:var(--color-gray-50);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:100%}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:var(--line-height-tight);color:var(--color-gray-900);margin-bottom:var(--space-2)}h1{font-size:var(--font-size-3xl);letter-spacing:-.025em}h2{font-size:var(--font-size-2xl);letter-spacing:-.0125em}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}h5{font-size:var(--font-size-base)}h6{font-size:var(--font-size-sm);font-weight:600}p{margin-bottom:var(--space-4);line-height:var(--line-height-relaxed)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-hover)}a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--border-radius-sm)}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;background:none;transition:all var(--transition-fast)}button:disabled{cursor:not-allowed;opacity:.6;filter:grayscale(.5)}button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}input,textarea,select{font-family:inherit;font-size:var(--font-size-sm);line-height:var(--line-height-normal);border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius);padding:var(--space-2) var(--space-3);background-color:#fff;color:var(--color-gray-900);transition:all var(--transition-fast);width:100%}input::placeholder,textarea::placeholder{color:var(--color-gray-400)}input:hover:not(:disabled),textarea:hover:not(:disabled),select:hover:not(:disabled){border-color:var(--color-gray-300)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}input:disabled,textarea:disabled,select:disabled{background-color:var(--color-gray-100);cursor:not-allowed;opacity:.6}label{display:block;font-size:var(--font-size-sm);font-weight:500;color:var(--color-gray-700);margin-bottom:var(--space-2)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--color-gray-50);border-radius:var(--border-radius-full)}::-webkit-scrollbar-thumb{background:var(--color-gray-300);border-radius:var(--border-radius-full);border:2px solid var(--color-gray-50)}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-400)}::selection{background-color:var(--color-primary-light);color:var(--color-primary-dark)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading{animation:spin 1s linear infinite}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease-out}.focus-ring:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
