@import "https://fonts.googleapis.com/css2?family=Public+Sans:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap";:root{--accent:#c96a3d;--accent-dim:#c96a3da6;--accent-muted:#c96a3d1a;--primary:#2d7a78;--primary-hover:#245f5d;--primary-muted:#2d7a7829;--secondary:#d7a928;--accent-pink:#e77c6b;--domain-platforme:#2d7a78;--domain-universer:#d7a928;--domain-vaerktoejer:#c96a3d;--domain-laering:#e77c6b;--bg-primary:#171311;--bg-surface:#1b1714e6;--bg-surface-alt:#1e1a17;--bg-elevated:#231f1b;--text-primary:#f4efe6;--text-secondary:#f4efe6d1;--text-muted:#f4efe69e;--text-on-primary:#fff;--text-on-accent:#0a0a14;--border:#c96a3d2e;--border-accent:#c96a3d40;--shadow-soft:0 8px 32px #1f2a2429;--shadow-glow:0 0 20px #c96a3d14;--shadow-glow-strong:0 0 30px #c96a3d26, 0 0 60px #c96a3d0f;--shadow-card:0 8px 24px #c96a3d14, 0 0 0 1px #c96a3d1f;--shadow-btn:0 2px 8px #2d7a7840;--glass-bg:#1b17148c;--grid-line:#f4efe606;--ambient-1:#c96a3d1c;--ambient-2:#2d7a7817;--ambient-3:#d7a9280d;--status-concept-text:#b0b6be;--status-concept-bg:#2a2c30;--status-prototype-text:#f0a294;--status-prototype-bg:#38211d;--status-pilot-text:#fcd34d;--status-pilot-bg:#332a18;--status-live-text:#6ee7b7;--status-live-bg:#1a2e28;--font-ui:"Public Sans", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--sidebar-width:260px;--topbar-height:64px;--radius:8px;--radius-lg:12px;--cat-teori:#c96a3d;--cat-speciale:#2d7a78;--cat-praksis:#d7a928;--cat-leksikon:#e77c6b;--cat-forskning:#6ee7b7}.theme-light{--bg-primary:#f5f0e8;--bg-surface:#ffffffd9;--bg-surface-alt:#ede8df;--bg-elevated:#fff;--text-primary:#171311;--text-secondary:#171311c7;--text-muted:#1713118c;--text-on-primary:#fff;--text-on-accent:#fff;--border:#c96a3d38;--border-accent:#c96a3d59;--shadow-soft:0 8px 32px #0000000f;--shadow-glow:0 0 20px #c96a3d0f;--shadow-glow-strong:0 0 30px #c96a3d1a, 0 0 60px #c96a3d0a;--shadow-card:0 2px 12px #0000000f, 0 0 0 1px #00000014;--shadow-btn:0 2px 8px #2d7a7826;--glass-bg:#ffffffa6;--grid-line:#1713110f;--ambient-1:#c96a3d0f;--ambient-2:#2d7a780d;--ambient-3:#d7a92808;--status-concept-text:#5a6068;--status-concept-bg:#e8eaec;--status-prototype-text:#b04a3a;--status-prototype-bg:#fce8e4;--status-pilot-text:#9a7a10;--status-pilot-bg:#fef7e0;--status-live-text:#1a7a52;--status-live-bg:#e0f5ec;--paper:#f4efe6;--paper-dark:#e8e0d2;--ink:#171311;--ink-soft:#6b5e52;--white:#fff8ee;--red:#c44a2f;--green:#5a9a42}@keyframes glow-pulse{0%,to{box-shadow:0 0 8px #c96a3d0f}50%{box-shadow:0 0 20px #c96a3d26}}@keyframes scan-line{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-ui);background-color:var(--bg-primary);color:var(--text-primary);min-height:100dvh;line-height:1.6;transition:background-color .3s,color .3s;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:0;background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);background-size:64px 64px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000 0% 38%,#0000 90%);mask-image:linear-gradient(#000 0% 38%,#0000 90%)}body:after{content:"";pointer-events:none;z-index:0;background:radial-gradient(58% 46% at 14% -10%, var(--ambient-1), transparent 66%), radial-gradient(46% 40% at 97% 4%, var(--ambient-2), transparent 70%), radial-gradient(82% 55% at 50% 118%, var(--ambient-3), transparent 72%);position:fixed;inset:0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:#c96a3d4d;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#c96a3d80}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}::selection{background:var(--accent);color:var(--text-on-accent)}h1,h2,h3,h4{font-family:var(--font-ui);color:var(--text-primary);font-weight:700;line-height:1.2}h1{font-size:clamp(2.4rem,5vw,4.25rem)}h2{font-size:clamp(1.75rem,3vw,2.8rem)}h3{font-size:clamp(1.2rem,2vw,1.65rem)}h4{font-size:1.125rem}p{color:var(--text-secondary);max-width:66ch}a{color:var(--accent);text-decoration:none;transition:color .2s}a:hover{color:var(--accent-dim)}.section+.section:before{content:"";background:linear-gradient(90deg, transparent, var(--border-accent) 18%, var(--border-accent) 82%, transparent);opacity:.7;height:1px;margin-bottom:2rem;display:block}.mono{font-family:var(--font-mono);font-size:.75rem}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.page-content{z-index:1;width:100%;max-width:1400px;margin:0 auto;padding:1.5rem;position:relative}@media (width>=768px){.page-content{padding:2rem 2.5rem}}@media (width>=1200px){.page-content{padding:2.5rem 3.5rem}}@media (width>=768px){.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border)}}.fade-in-up{opacity:0;transition:opacity .5s,transform .5s;transform:translateY(16px)}.fade-in-up.visible{opacity:1;transform:translateY(0)}.scan-line{position:relative;overflow:hidden}.scan-line:after{content:"";pointer-events:none;background:linear-gradient(#0000 0%,#c96a3d0a 50%,#0000 100%);animation:3s ease-in-out infinite scan-line;position:absolute;inset:0}.skip-link{z-index:200;background:var(--accent);color:#fff;font-family:var(--font-ui);padding:.5rem 1rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:top .2s;position:absolute;top:-100%;left:0}.skip-link:focus{top:0}.page-loading{justify-content:center;align-items:center;min-height:40vh;display:flex}.page-loading:after{content:"";border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:1.5rem;height:1.5rem;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media print{body{font-size:11pt;color:#111!important;background:#fff!important}body:before,body:after,.scan-line:after,.bottom-nav,.sidebar,.topbar,.skip-link,.install-banner,.back-link,.search-wrapper,.category-chips,.tabs,.copy-btn,.expand-btn,.no-print,.btn-clear,.page-title,.page-subtitle{display:none!important}.page-content{max-width:100%!important;padding:0!important}.glass,.glass-panel{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:none!important;background:#fff!important;border:1px solid #ccc!important}.skabelon-card,.tjekliste-card{break-inside:avoid;page-break-inside:avoid;margin-bottom:1rem;background:#fff!important;border:1px solid #ccc!important}.skabelon-body,.lov-sections,.metode-body{display:block!important}.lov-card,.metode-card{break-inside:avoid;page-break-inside:avoid;margin-bottom:1rem;background:#fff!important;border:1px solid #ccc!important}.tjekliste-item .item-check:before{content:"☐ ";font-size:1.1em}.tjekliste-item.checked .item-check:before{content:"☑ "}.field-textarea,.field-input{min-height:1.5em;background:#fff!important;border:1px solid #999!important}.field-textarea{min-height:4em}a[href]:after{content:none!important}h1,h2,h3{color:#111!important}p,span,label{color:#333!important}}.install-banner{position:fixed bottom: 80px left: 50% transform: translateX(-50%) z-index: 100 width: calc(100% - 2rem) max-width: 420px padding: var(--space-md) var(--space-lg) background: var(--c-bg-elevated) border: 1px solid var(--c-border) border-radius: var(--radius-lg) box-shadow: 0 12px 40px #0006 display: flex flex-direction: column gap: var(--space-md) animation: fade-in-up .3s ease}@media (width>=768px){.install-banner{bottom:var(--space-lg)}}.install-banner-content{display:flex align-items: flex-start gap: var(--space-md)}.install-banner-icon{color:var(--c-primary) flex-shrink: 0 margin-top: 2px}.install-banner-text{display:flex flex-direction: column gap: 2px}.install-banner-title{font-size:.9rem font-weight: 600 color: var(--c-text)}.install-banner-desc{font-size:.8rem color: var(--c-text-secondary) line-height: 1.4}.install-banner-actions{display:flex gap: var(--space-sm) justify-content: flex-end}.install-banner-btn{padding:6px 14px border-radius: var(--radius) font-size: .8rem font-weight: 600 cursor: pointer transition: all .15s border: none}.install-banner-btn--primary{background:var(--c-primary) color: #fff}.install-banner-btn--primary:hover{background:var(--c-primary-hover)}.install-banner-btn--ghost{background:transparent color: var(--c-text-muted) border: 1px solid var(--c-border)}.install-banner-btn--ghost:hover{color:var(--c-text) border-color: var(--c-text-muted)}.cp-overlay{position:fixed inset: 0 z-index: 200 background: #0009 backdrop-filter: blur(4px) display: flex align-items: flex-start justify-content: center padding-top: 15vh animation: fade-in .15s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.cp-modal{width:calc(100% - 2rem) max-width: 520px background: var(--c-bg-elevated) border: 1px solid var(--c-border) border-radius: var(--radius-lg) box-shadow: 0 24px 64px #00000080 overflow: hidden animation: cp-slide-in .15s ease}@keyframes cp-slide-in{0%{opacity:0;transform:translateY(-8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.cp-search-row{display:flex align-items: center gap: 10px padding: 14px 16px border-bottom: 1px solid var(--c-border)}.cp-search-icon{width:18px height: 18px color: var(--c-text-muted) flex-shrink: 0}.cp-input{flex:1 background: none border: none outline: none color: var(--c-text) font-size: 1rem font-family: var(--font-ui)}.cp-input::placeholder{color:var(--c-text-muted)}.cp-filters{display:flex flex-wrap: wrap gap: 6px padding: 10px 16px border-bottom: 1px solid var(--c-border)}.cp-filter-btn{display:flex align-items: center gap: 4px padding: 4px 10px background: none border: 1px solid var(--c-border) border-radius: 100px font-size: .72rem font-family: var(--font-ui) color: var(--c-text-muted) cursor: pointer transition: all .15s}.cp-filter-btn:hover{border-color:var(--c-accent) color: var(--c-text)}.cp-filter-btn.active{background:var(--c-accent) border-color: var(--c-accent) color: #fff}.cp-filter-count{font-family:var(--font-mono) font-size: .65rem opacity: .7}.cp-kbd{padding:2px 6px background: var(--c-bg) border: 1px solid var(--c-border) border-radius: 4px color: var(--c-text-muted) font-family: var(--font-mono) font-size: .7rem}.cp-results{max-height:320px overflow-y: auto padding: 6px}.cp-empty{padding:2rem 1rem text-align: center color: var(--c-text-muted) font-size: .9rem}.cp-result{display:flex align-items: center gap: 10px width: 100% padding: 10px 12px background: none border: none border-radius: var(--radius) cursor: pointer text-align: left transition: background .1s font-family: var(--font-ui)}.cp-result:hover,.cp-result.active{background:var(--c-bg-hover)}.cp-result:focus-visible{outline:2px solid var(--c-primary) outline-offset: -2px}.cp-badge{width:28px height: 28px display: flex align-items: center justify-content: center border-radius: 6px font-size: .75rem font-weight: 700 flex-shrink: 0}.cp-badge--teori{background:#c96a3d26 color: var(--c-accent)}.cp-badge--leksikon{background:#2d7a7826 color: var(--c-primary)}.cp-badge--case{background:#b4823c26 color: #b4823c}.cp-badge--lov{background:#8264b426 color: #9a7cc8}.cp-badge--metode{background:#3c8cb426 color: #4a9cc8}.cp-badge--skabelon{background:#8c645026 color: #a67c5e}.cp-result-text{flex:1 display: flex flex-direction: column gap: 1px min-width: 0}.cp-result-title{font-size:.88rem font-weight: 500 color: var(--c-text) white-space: nowrap overflow: hidden text-overflow: ellipsis}.cp-result-cat{font-size:.75rem color: var(--c-text-muted)}.cp-result-type{font-size:.72rem color: var(--c-text-muted) flex-shrink: 0}.cp-footer{display:flex gap: 16px padding: 10px 16px border-top: 1px solid var(--c-border) font-size: .72rem color: var(--c-text-muted)}.cp-footer kbd{padding:1px 4px background: var(--c-bg) border: 1px solid var(--c-border) border-radius: 3px font-family: var(--font-mono) font-size: .65rem margin-right: 4px}.scroll-top-btn{position:fixed bottom: 80px right: var(--space-md) z-index: 90 width: 44px height: 44px display: flex align-items: center justify-content: center background: var(--c-bg-elevated) border: 1px solid var(--c-border) border-radius: 50% color: var(--c-text) cursor: pointer box-shadow: 0 4px 16px #0000004d transition: all .2s animation: fade-in-up .2s ease}.scroll-top-btn:hover{border-color:var(--c-accent) color: var(--c-accent)}@media (width>=768px){.scroll-top-btn{bottom:var(--space-lg) right: var(--space-lg)}}.offline-indicator{z-index:1000;background:var(--bg-elevated,#2a2522);color:var(--text-primary,#f4efe6);border:1px solid var(--border-accent,#c96a3d59);border-radius:var(--radius,8px);pointer-events:none;white-space:nowrap;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.8125rem;font-weight:500;animation:.3s ease-out slideUp;display:flex;position:fixed;bottom:4.5rem;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0000004d}.offline-indicator svg{color:var(--accent,#c96a3d);flex-shrink:0}@keyframes slideUp{0%{opacity:0;transform:translate(-50%)translateY(1rem)}to{opacity:1;transform:translate(-50%)translateY(0)}}@media (width>=768px){.offline-indicator{bottom:1rem}}.app-layout{z-index:1;flex-direction:column;min-height:100dvh;display:flex;position:relative}.topbar{height:var(--topbar-height);background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);z-index:100;align-items:center;gap:1rem;padding:0 1rem;display:flex;position:fixed;top:0;left:0;right:0}.logo{white-space:nowrap;align-items:center;gap:.375rem;font-size:1.125rem;font-weight:700;text-decoration:none;display:flex}.logo-accent{color:var(--accent);letter-spacing:-.02em;font-weight:800}.logo-sep{color:var(--text-muted);opacity:.5;font-weight:300}.logo-name{color:var(--text-primary);letter-spacing:-.01em}.topbar-nav{align-items:center;gap:.25rem;display:none}.topbar-link{border-radius:var(--radius);color:var(--text-secondary);align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.topbar-link:hover{color:var(--text-primary);background:var(--accent-muted)}.topbar-link.active{color:var(--accent);background:var(--accent-muted)}.nav-icon{font-size:.75rem;display:flex}.nav-icon svg{display:block}.topbar-spacer{flex:1}.search-trigger{display:flex align-items: center gap: 8px padding: 6px 12px background: var(--c-bg-hover) border: 1px solid var(--c-border) border-radius: var(--radius) color: var(--c-text-muted) font-family: var(--font-ui) font-size: .82rem cursor: pointer transition: all .2s white-space: nowrap}.search-trigger:hover{border-color:var(--c-text-muted) color: var(--c-text)}.theme-toggle{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;width:36px;height:36px;color:var(--text-secondary);background:0 0;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s;display:flex}.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}.theme-toggle:active{transform:scale(.92)}.search-trigger-text,.search-trigger-kbd{display:none}@media (width>=768px){.search-trigger-text{display:inline}.search-trigger-kbd{display:inline padding: 1px 5px background: var(--c-bg) border: 1px solid var(--c-border) border-radius: 3px font-family: var(--font-mono) font-size: .65rem color: var(--c-text-muted)}}.menu-btn{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;width:40px;height:40px;color:var(--text-primary);background:0 0;justify-content:center;align-items:center;transition:all .2s;display:flex}.menu-btn:hover{border-color:var(--accent);color:var(--accent)}.layout-body{margin-top:var(--topbar-height);flex:1;padding-bottom:64px;display:flex}.sidebar{top:var(--topbar-height);width:var(--sidebar-width);z-index:90;background:var(--bg-surface);-webkit-backdrop-filter:blur(16px);border-right:1px solid var(--border);flex-direction:column;transition:transform .3s;display:flex;position:fixed;bottom:0;left:0;overflow-y:auto;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-header{border-bottom:1px solid var(--border);align-items:center;gap:.5rem;padding:1rem 1.25rem;display:flex}.sidebar-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-primary);font-size:.875rem;font-weight:700}.sidebar-badge{background:linear-gradient(135deg, var(--accent), #d4845c);color:var(--text-on-accent);text-transform:uppercase;letter-spacing:.06em;border-radius:100px;padding:.1875rem .5rem;font-size:.5625rem;font-weight:600}.sidebar-nav{flex-direction:column;flex:1;gap:.25rem;padding:.75rem;display:flex;overflow-y:auto}.sidebar-group{margin-bottom:.25rem}.sidebar-group-header{border-radius:var(--radius);text-transform:uppercase;letter-spacing:.08em;width:100%;color:var(--text-muted);cursor:pointer;text-align:left;font-size:.6875rem;font-weight:700;font-family:var(--font-ui);background:0 0;border:none;justify-content:space-between;align-items:center;padding:.5rem .75rem;transition:all .2s;display:flex}.sidebar-group-header:hover{color:var(--text-primary);background:var(--accent-muted)}.sidebar-chevron{flex-shrink:0;transition:transform .2s}.sidebar-group-header.collapsed .sidebar-chevron{transform:rotate(-90deg)}.sidebar-group-items{flex-direction:column;gap:.125rem;padding-left:.5rem;display:flex}.sidebar-header-text{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:.75rem .75rem .25rem;font-size:.6875rem;font-weight:700;display:block}.sidebar-link{border-radius:var(--radius);color:var(--text-secondary);border-left:2px solid #0000;padding:.5rem .75rem;font-size:.8125rem;font-weight:500;text-decoration:none;transition:all .2s;display:block}.sidebar-link:hover{color:var(--text-primary);background:var(--accent-muted)}.sidebar-link.active{color:var(--accent);background:var(--accent-muted);border-left-color:var(--accent)}.sidebar-footer{border-top:1px solid var(--border);color:var(--text-muted);font-size:.6875rem;font-family:var(--font-mono);opacity:.6;padding:.75rem 1.25rem}.overlay{-webkit-backdrop-filter:blur(4px);z-index:80;background:#0009;position:fixed;inset:0}.main-content{min-height:calc(100dvh - var(--topbar-height) - 64px);z-index:1;flex:1;position:relative}.bottom-nav{background:var(--bg-surface);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--border);z-index:100;justify-content:space-around;align-items:center;height:64px;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-link{color:var(--text-muted);border-radius:var(--radius);flex-direction:column;align-items:center;gap:.25rem;padding:.5rem 1rem;font-size:.75rem;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.bottom-link:hover{color:var(--text-secondary)}.bottom-link.active{color:var(--accent)}.bottom-icon{font-size:1.125rem;display:flex}.bottom-icon svg{width:1em;height:1em;display:block}.bottom-label{text-transform:uppercase;letter-spacing:.06em;font-size:.6875rem}@media (width>=768px){.topbar{padding:0 1.5rem}.topbar-nav{display:flex}.menu-btn{display:none}.sidebar{top:var(--topbar-height);height:calc(100dvh - var(--topbar-height));position:sticky;transform:translate(0)}.bottom-nav{display:none}.layout-body{padding-bottom:0}.overlay{display:none!important}}.error-boundary{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:50vh;padding:3rem 1.5rem;display:flex}.error-boundary-icon{color:var(--accent);opacity:.8;margin-bottom:1.5rem}.error-boundary-title{margin-bottom:.75rem;font-size:1.5rem;font-weight:700}.error-boundary-message{color:var(--text-secondary);max-width:40ch;margin-bottom:1rem;font-size:1rem}.error-boundary-detail{font-family:var(--font-mono);color:var(--text-muted);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);word-break:break-word;max-width:50ch;margin-bottom:1.5rem;padding:.75rem 1rem;font-size:.75rem}.error-boundary-actions{align-items:center;gap:1rem;display:flex}.error-boundary-btn{font-family:var(--font-ui);border-radius:var(--radius);border:1px solid var(--accent);background:var(--accent);color:var(--text-on-accent);cursor:pointer;padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;transition:opacity .2s}.error-boundary-btn:hover{opacity:.9}.error-boundary-link{color:var(--text-muted);font-size:.875rem;font-weight:500;text-decoration:none;transition:color .2s}.error-boundary-link:hover{color:var(--accent)}
