:root{--font:"Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, sans-serif;--ink:#0f172a;--ink-muted:#64748b;--ink-soft:#94a3b8;--surface:#fff;--surface-muted:#f8fafc;--line:#94a3b838;--line-strong:#94a3b859;--brand:#2563eb;--brand-2:#06b6d4;--brand-glow:#2563eb2e;--sidebar:#070d18;--sidebar-2:#0c1528;--sidebar-text:#cbd5e1;--sidebar-muted:#7c8da8;--radius-sm:12px;--radius-md:18px;--radius-lg:24px;--radius-xl:32px;--shadow-sm:0 8px 24px #0f172a0f;--shadow-md:0 18px 50px #0f172a14;--shadow-lg:0 30px 80px #0f172a1f;color:var(--ink);font-family:var(--font);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.55}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:#eef2f8;min-width:320px;margin:0}button,input,textarea,select{font:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:var(--ink);letter-spacing:-.04em;font-weight:800;line-height:1.08}h1{margin-bottom:14px;font-size:clamp(32px,4.8vw,56px)}h2{letter-spacing:-.03em;font-size:clamp(20px,2.2vw,26px)}h3{font-size:16px;font-weight:700}p{margin-bottom:0}a,button{transition:background .2s,border-color .2s,box-shadow .2s,color .2s,transform .2s}a:hover,button:hover{transform:translateY(-1px)}a:active,button:active{transform:translateY(0)}::selection{color:var(--ink);background:#2563eb2e}.app-shell{grid-template-columns:292px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:radial-gradient(circle at 20% 0%, #38bdf81f, transparent 42%), linear-gradient(180deg, var(--sidebar-2) 0%, var(--sidebar) 100%);color:var(--sidebar-text);z-index:2;border-right:1px solid #ffffff0f;flex-direction:column;gap:28px;padding:28px 22px;display:flex;position:relative;box-shadow:20px 0 60px #0206172e}.brand,.user-chip,.card-heading,.project-meta,.message-head,.invoice-row,.invoice-side,.file-row,.task-row{align-items:center;display:flex}.brand{gap:14px}.brand-mark{color:#fff;background:linear-gradient(135deg,#38bdf8 0%,#2563eb 55%,#4f46e5 100%);border-radius:16px;justify-content:center;align-items:center;width:48px;height:48px;font-size:18px;font-weight:800;display:inline-flex;box-shadow:0 10px 24px #2563eb73,inset 0 1px #ffffff40}.brand strong{color:#fff;letter-spacing:-.02em;font-size:17px}.brand strong,.brand span{display:block}.brand span,.portal-card span,.portal-card p,.nav-list a{color:var(--sidebar-muted)}.nav-list{gap:6px;display:grid}.nav-list a{border-radius:var(--radius-md);color:var(--sidebar-muted);border:1px solid #0000;align-items:center;gap:12px;padding:12px 14px;font-size:14px;font-weight:700;text-decoration:none;display:flex}.nav-icon{color:#93c5fd;background:#ffffff0a;border-radius:10px;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;display:inline-flex}.nav-list a:hover{color:#fff;background:#ffffff0d;border-color:#ffffff0f}.nav-list a:hover .nav-icon{background:#2563eb38}.nav-list .active{color:#fff;background:linear-gradient(90deg,#2563eb47,#2563eb1a);border-color:#60a5fa40;box-shadow:inset 3px 0 #60a5fa}.nav-list .active .nav-icon{color:#fff;background:#2563eb59}.portal-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:var(--radius-lg);background:linear-gradient(#ffffff14,#ffffff08);border:1px solid #ffffff1a;margin-top:auto;padding:18px;box-shadow:inset 0 1px #ffffff14}.portal-card strong{color:#fff;margin:6px 0;font-size:18px;display:block}.main-content{background:radial-gradient(circle at 85% 0,#38bdf824,#0000 28rem),radial-gradient(circle at 0 100%,#4f46e514,#0000 24rem),linear-gradient(#f8fafc 0%,#eef2f8 100%);min-width:0;padding:28px 32px 40px;position:relative}.main-content:before{content:"";opacity:.35;pointer-events:none;background-image:radial-gradient(#94a3b82e 1px,#0000 1px);background-size:24px 24px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#00000059,#0000 80%);mask-image:linear-gradient(#00000059,#0000 80%)}.topbar{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);z-index:1;background:#ffffffb8;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px;padding:24px 26px;display:flex;position:relative}.topbar h1{max-width:760px}.topbar p,.hero-panel p,.section-header p,.stat-card p,.project-card p,.message-row p,.ai-panel p,.project-meta,.task-row span,.file-row span,.invoice-row span{color:#64748b}.eyebrow{color:#1d4ed8;letter-spacing:.14em;text-transform:uppercase;background:linear-gradient(90deg,#2563eb1f,#06b6d414);border:1px solid #2563eb24;border-radius:999px;margin-bottom:12px;padding:6px 12px;font-size:11px;font-weight:800;display:inline-block}.user-chip{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background:#ffffffeb;gap:12px;padding:10px 14px 10px 10px}.user-chip>span,.avatar{color:#1d4ed8;background:linear-gradient(135deg,#dbeafe,#e0f2fe);border:1px solid #2563eb1f;border-radius:999px;justify-content:center;align-items:center;width:42px;height:42px;font-size:13px;font-weight:800;display:inline-flex}.logout-button{border:1px solid var(--line-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);color:var(--ink);cursor:pointer;background:#fff;padding:11px 16px;font-size:14px;font-weight:800}.logout-button:hover{box-shadow:var(--shadow-md);border-color:#94a3b8}.user-chip small{color:var(--ink-muted);font-size:12px;display:block}.topbar-side{flex-shrink:0;align-items:center;gap:12px;display:flex}.login-shell{background:radial-gradient(circle at 15% 20%,#38bdf838,#0000 32rem),radial-gradient(circle at 85% 80%,#4f46e52e,#0000 28rem),linear-gradient(160deg,#060b14 0%,#0b1220 45%,#0f172a 100%);grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:48px;min-height:100vh;padding:48px;display:grid;position:relative;overflow:hidden}.login-shell:before{content:"";opacity:.35;pointer-events:none;background-image:radial-gradient(#94a3b81f 1px,#0000 1px);background-size:28px 28px;position:absolute;inset:0}.login-brand{color:#e2e8f0;z-index:1;max-width:480px;position:relative}.login-brand .brand{margin-bottom:36px}.login-brand .brand strong{color:#fff}.login-brand h1{color:#fff;margin-bottom:16px}.login-brand p{color:#93a4bd;margin-bottom:24px}.login-points{gap:12px;margin:0;padding:0;list-style:none;display:grid}.login-points li{color:#dbeafe;align-items:center;gap:12px;display:flex}.login-points li:before{color:#38bdf8;content:"✓";background:#38bdf833;border-radius:999px;justify-content:center;align-items:center;width:26px;height:26px;font-weight:900;display:inline-flex}.login-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:var(--radius-xl);z-index:1;background:#fffffff5;border:1px solid #ffffffa6;justify-self:center;width:100%;max-width:440px;padding:38px;position:relative;box-shadow:0 40px 100px #02061773,inset 0 1px #fffc}.role-switch{background:#f1f5f9;border-radius:14px;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:24px;padding:4px;display:grid}.role-switch button{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:11px;padding:10px 12px;font-weight:800}.role-switch button.active{color:#0f172a;background:#fff;box-shadow:0 6px 16px #0f172a1a}.login-card form{flex-direction:column;display:flex}.login-card h2{margin:0 0 6px}.login-sub{color:#64748b;margin-bottom:24px}.login-card label{color:#0f172a;margin-bottom:8px;font-weight:700}.login-card input{background:#f8fafc;border:1px solid #cbd5e1;border-radius:14px;margin-bottom:18px;padding:13px 14px}.login-card input:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb26}.login-button{text-align:center;border:none;justify-content:center;width:100%;margin-top:4px}.login-error{color:#b91c1c;background:#fee2e2;border-radius:12px;margin-bottom:16px;padding:10px 12px;font-size:14px;font-weight:700}.hero-panel,.panel,.stat-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--line);box-shadow:var(--shadow-md);background:#ffffffe0}.panel{border-radius:var(--radius-xl);z-index:1;padding:24px;position:relative}.primary-button,.ai-panel button{color:#fff;background:linear-gradient(135deg,#2563eb 0%,#0891b2 100%);border:1px solid #2563eb59;box-shadow:0 12px 28px #2563eb47,inset 0 1px #ffffff2e}.primary-button:hover,.ai-panel button:hover{box-shadow:0 16px 34px #2563eb57,inset 0 1px #ffffff38}.secondary-button{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line-strong);box-shadow:var(--shadow-sm);color:var(--ink);background:#ffffffe6}.stats-grid{z-index:1;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px;display:grid;position:relative}.stat-card{border-radius:var(--radius-lg);padding:22px 22px 20px;position:relative;overflow:hidden}.stat-card:before{background:var(--accent,linear-gradient(180deg, #2563eb, #06b6d4));content:"";opacity:.95;width:4px;height:100%;position:absolute;top:0;left:0}.stat-card:after{background:radial-gradient(circle at top right, var(--accent-soft,#2563eb1f), transparent 55%);content:"";pointer-events:none;position:absolute;inset:0}.stat-blue{--accent:linear-gradient(180deg, #2563eb, #06b6d4);--accent-soft:#2563eb24}.stat-violet{--accent:linear-gradient(180deg, #7c3aed, #6366f1);--accent-soft:#7c3aed24}.stat-amber{--accent:linear-gradient(180deg, #f59e0b, #f97316);--accent-soft:#f59e0b24}.stat-emerald{--accent:linear-gradient(180deg, #10b981, #059669);--accent-soft:#10b98124}.stat-card span,.stat-card strong,.stat-card p{z-index:1;position:relative}.stat-card span{color:var(--ink-muted);font-size:13px;font-weight:700}.stat-card strong{background:linear-gradient(135deg, var(--ink) 0%, #334155 100%);color:#0000;letter-spacing:-.05em;-webkit-background-clip:text;background-clip:text;margin:14px 0 8px;font-size:40px;line-height:1;display:block}.hero-panel{border-radius:30px;justify-content:space-between;align-items:center;gap:24px;margin-bottom:22px;padding:28px;display:flex}.hero-panel h2{max-width:760px;margin:0 0 12px;font-size:clamp(28px,4vw,48px)}.hero-actions{gap:12px;display:flex}.primary-button,.secondary-button,.ai-panel button{border-radius:var(--radius-sm);cursor:pointer;padding:12px 18px;font-size:14px;font-weight:800;text-decoration:none}.overview-grid{z-index:1;grid-template-columns:minmax(0,1.6fr) minmax(300px,.9fr);gap:22px;margin-bottom:22px;display:grid;position:relative}.action-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.count-pill{color:#fff;background:linear-gradient(135deg,#2563eb,#0891b2);border-radius:999px;justify-content:center;align-items:center;min-width:32px;height:32px;padding:0 10px;font-size:13px;font-weight:800;display:inline-flex;box-shadow:0 8px 20px #2563eb47}.action-row{border:1px solid var(--line);border-radius:var(--radius-md);color:inherit;cursor:pointer;font:inherit;text-align:left;background:linear-gradient(#fff,#f8fafc);align-items:center;gap:14px;width:100%;padding:15px 16px;text-decoration:none;display:flex}.action-row:hover{border-color:#2563eb47;transform:translateY(-2px);box-shadow:0 14px 30px #2563eb1f}.action-dot{background:#2563eb;border-radius:999px;flex:none;width:10px;height:10px}.action-dot.urgent{background:#dc2626}.action-body{flex:1;min-width:0}.action-body strong{color:#0f172a;display:block}.action-body span{color:#64748b;font-size:14px}.action-tag{color:#3730a3;background:#eef2ff;border-radius:999px;flex:none;padding:6px 10px;font-size:12px;font-weight:800}.activity-feed{gap:6px;margin:0;padding:0;list-style:none;display:grid}.activity-feed li{align-items:flex-start;gap:12px;padding:10px 0;display:flex}.activity-feed li+li{border-top:1px solid #eef2f7}.activity-icon{color:#0369a1;background:#e0f2fe;border-radius:999px;flex:none;justify-content:center;align-items:center;width:32px;height:32px;font-size:13px;font-weight:900;display:inline-flex}.activity-feed p{color:#0f172a;margin:0}.activity-feed span{color:#94a3b8;font-size:13px}.content-grid{grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:22px;display:grid}.panel.wide{grid-row:span 2}.section-header{margin-bottom:18px}.section-header h2,.project-card h3,.task-row h3,.file-row h3,.invoice-row h3{margin:0}.project-list,.stack,.invoice-list{gap:14px;display:grid}.project-card,.task-row,.message-row,.file-row,.invoice-row,.issue-row{border:1px solid var(--line);border-radius:var(--radius-md);background:linear-gradient(#fff,#f8fafc);padding:16px 18px;transition:border-color .2s,box-shadow .2s,transform .2s}.project-card:hover,.task-row:hover,.message-row:hover,.file-row:hover,.invoice-row:hover,.issue-row:hover{box-shadow:var(--shadow-sm);border-color:#2563eb2e;transform:translateY(-1px)}.card-heading,.task-row,.invoice-row,.message-head,.project-meta{justify-content:space-between}.card-heading{gap:16px}.card-heading span,.section-header p{margin-top:4px}.progress-track{background:#e2e8f0;border-radius:999px;height:9px;margin:18px 0 10px;overflow:hidden}.progress-track span{border-radius:inherit;background:linear-gradient(90deg,#2563eb,#06b6d4,#38bdf8);height:100%;display:block;box-shadow:0 0 16px #2563eb59}.status{letter-spacing:.02em;border-radius:999px;padding:6px 11px;font-size:11px;font-weight:800;display:inline-flex;box-shadow:inset 0 1px #ffffff73}.i-gang,.ubetalt{color:#1d4ed8;background:#dbeafe}.afventer,.afventer-kunde,.forfalden{color:#b91c1c;background:#fee2e2}.ny,.planlagt{color:#92400e;background:#fef3c7}.lost,.betalt,.fardig,.løst{color:#15803d;background:#dcfce7}.under-behandling{color:#1d4ed8;background:#dbeafe}.page-stack{z-index:1;gap:22px;display:grid;position:relative}.section-header h2{letter-spacing:-.03em}.section-header p{color:var(--ink-muted);font-size:14px;line-height:1.55}.issue-form{gap:16px;display:grid}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.issue-form label{color:#0f172a;gap:8px;font-weight:700;display:grid}.issue-form input,.issue-form textarea,.issue-form select{background:#f8fafc;border:1px solid #cbd5e1;border-radius:14px;padding:12px 14px}.issue-form input:focus,.issue-form textarea:focus,.issue-form select:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb26}.issue-form .primary-button{border:none;justify-self:start}.issue-success{color:#15803d;background:#dcfce7;border-radius:12px;margin:0;padding:10px 12px;font-size:14px;font-weight:700}.issue-error{color:#b91c1c;background:#fee2e2;border-radius:12px;margin:12px 0 0;padding:10px 12px;font-size:14px;font-weight:700}.upload-block{gap:12px;display:grid}.upload-label{color:#0f172a;font-weight:700}.upload-dropzone{border-radius:var(--radius-lg);cursor:pointer;text-align:center;background:radial-gradient(circle at top,#2563eb0d,#0000 60%),#f8fafc;border:2px dashed #94a3b873;place-items:center;gap:6px;padding:28px 18px;transition:border-color .2s,background .2s,box-shadow .2s;display:grid}.upload-dropzone:hover{background:radial-gradient(circle at top,#2563eb1a,#0000 60%),#eff6ff;border-color:#60a5fa;box-shadow:inset 0 0 0 1px #60a5fa26}.upload-dropzone strong{color:#0f172a}.upload-dropzone span{color:#64748b;font-size:14px}.attachment-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}.attachment-grid.compact{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}.attachment-preview{background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;margin:0;position:relative;overflow:hidden}.attachment-preview img,.attachment-thumb img{aspect-ratio:4/3;object-fit:cover;width:100%;height:auto;display:block}.attachment-preview figcaption{gap:2px;padding:10px;display:grid}.attachment-preview figcaption span{color:#0f172a;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.attachment-preview figcaption small{color:#64748b;font-size:12px}.attachment-remove{color:#fff;cursor:pointer;background:#0f172ab8;border:none;border-radius:999px;justify-content:center;align-items:center;width:28px;height:28px;font-size:18px;line-height:1;display:inline-flex;position:absolute;top:8px;right:8px}.issue-attachments{margin-bottom:12px}.issue-attachments-label{color:#64748b;margin-bottom:8px;font-size:13px;font-weight:700;display:block}.attachment-thumb{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;text-decoration:none;display:block;overflow:hidden}.attachment-thumb:hover{border-color:#93c5fd;box-shadow:0 8px 20px #2563eb26}.issue-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:10px;display:flex}.issue-head h3{margin:0}.issue-head span,.issue-meta,.empty-note{color:#64748b}.issue-row p{color:#334155;margin:0 0 12px}.issue-meta{flex-wrap:wrap;gap:12px;font-size:13px;display:flex}.task-meta,.invoice-side{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.task-meta small{color:#64748b;font-weight:700}.status-select{color:#0f172a;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:10px;padding:6px 10px;font-size:13px;font-weight:700}.message-row,.file-row{align-items:flex-start;gap:12px;display:flex}.message-head{gap:12px;margin-bottom:6px}.message-head span{color:#94a3b8;font-size:13px}.file-icon{color:#0369a1;letter-spacing:.04em;background:linear-gradient(135deg,#e0f2fe,#dbeafe);border:1px solid #2563eb1f;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;font-size:11px;font-weight:900;display:inline-flex;box-shadow:inset 0 1px #ffffffb3}.ai-panel{color:#fff;background:#0f172a}.ai-panel .section-header p,.ai-panel p{color:#cbd5e1}.ai-panel button{margin-top:18px}@media (width<=1100px){.app-shell,.content-grid,.overview-grid{grid-template-columns:1fr}.sidebar{border-radius:0 0 28px 28px}.nav-list{grid-template-columns:repeat(3,minmax(0,1fr))}.portal-card{margin-top:0}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.login-shell{grid-template-columns:1fr;padding:28px}.login-brand{max-width:none}}@media (width<=720px){.main-content,.sidebar{padding:20px}.topbar-side{justify-content:space-between}.topbar,.hero-panel,.hero-actions{flex-direction:column;align-items:stretch}.stats-grid,.nav-list,.form-grid{grid-template-columns:1fr}}
