:root{--navy: #002554;--navy-dark: #001a3a;--gold: #f1b434;--gold-dark: #e0a52a;--gray-bg: #f4f5f7;--white: #ffffff;--text: #1a1a1a;--text-muted: #5a6472;--border: #e0e3e8;--accent: #002554;--accent-soft: rgba(0, 37, 84, .08);--color-bg-page: var(--gray-bg);--color-bg-card: #ffffff;--panel-2: #f9fafb;--elev: #eef1f5;--color-border: var(--border);--border-soft: #eef0f3;--color-text-primary: var(--text);--color-text-secondary: #33414f;--color-text-light: #ffffff;--color-text-muted: var(--text-muted);--faint: #8a93a0;--color-brand-navy: var(--navy);--color-brand-gold: var(--gold);--color-success: #1f7a34;--color-warning: #b9770a;--color-danger: #a32d2d;--font-family-base: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "SF Mono", ui-monospace, "JetBrains Mono", "Cascadia Code", Consolas, 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.6rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-bold: 700;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--border-radius-sm: 8px;--border-radius-md: 12px;--border-radius-lg: 14px;--shadow-card: 0 1px 2px rgba(0,0,0,.04), 0 1px 3px rgba(0,0,0,.06);--shadow-elevated: 0 12px 40px rgba(0,37,84,.18)}*{box-sizing:border-box}body{font-family:var(--font-family-base);background:var(--gray-bg);color:var(--text);margin:0;min-height:100vh;-webkit-font-smoothing:antialiased}a{color:var(--navy);text-decoration:none}a:hover{text-decoration:underline}.centered-msg{display:flex;align-items:center;justify-content:center;min-height:60vh;color:var(--text-muted)}.app-header{background:var(--navy);height:56px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--spacing-lg);position:sticky;top:0;z-index:100}.app-header .brand{display:flex;align-items:center;gap:10px}.topbar-logo{height:30px;width:auto;display:block}.app-header .user-box{display:flex;align-items:center;gap:var(--spacing-md);font-size:var(--font-size-sm);color:#ffffffd9}.admin-badge{background:var(--gold);color:var(--navy);font-weight:var(--font-weight-bold);font-size:10px;letter-spacing:.06em;padding:3px 8px;border-radius:6px}.container{max-width:1180px;margin:0 auto;padding:var(--spacing-lg) var(--spacing-xl)}.card{background:var(--white);border:1px solid var(--border);border-radius:var(--border-radius-md);box-shadow:var(--shadow-card);padding:var(--spacing-lg);margin-bottom:var(--spacing-md)}.btn-primary,.btn-secondary,.btn-danger,.btn-ghost{border-radius:var(--border-radius-sm);padding:9px 18px;font-weight:700;font-size:var(--font-size-sm);cursor:pointer;font-family:inherit;border:1.5px solid transparent;display:inline-flex;align-items:center;gap:8px;transition:.14s}.btn-primary{background:var(--gold);color:var(--navy)}.btn-primary:hover{background:var(--gold-dark)}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-secondary,.btn-ghost{background:var(--white);color:var(--navy);border-color:var(--navy);font-weight:600}.btn-secondary:hover,.btn-ghost:hover{background:var(--navy);color:#fff}.btn-secondary:disabled,.btn-ghost:disabled{opacity:.5;cursor:not-allowed}.btn-danger{background:var(--white);color:var(--color-danger);border-color:#a32d2d73}.btn-danger:hover{background:var(--color-danger);color:#fff}.btn-danger:disabled{opacity:.55;cursor:not-allowed}.btn-link{background:none;border:none;color:#ffffffd9;cursor:pointer;font-size:var(--font-size-sm);padding:0}.btn-link:hover{color:#fff;text-decoration:underline}.btn-sm{padding:7px 13px;font-size:var(--font-size-sm);white-space:nowrap}label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin-bottom:var(--spacing-xs);color:var(--color-text-secondary)}input,textarea,select{width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);font-family:inherit;background:var(--white);color:var(--text)}input::placeholder,textarea::placeholder{color:var(--faint)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px var(--accent-soft)}textarea{resize:vertical;min-height:90px}.field{margin-bottom:var(--spacing-md)}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--spacing-md);background:var(--navy);background-image:linear-gradient(135deg,var(--navy) 0%,var(--navy-dark) 100%)}.login-inner{width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center}.login-logo{height:40px;width:auto;margin-bottom:var(--spacing-xl)}.login-card{background:var(--white);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-elevated);padding:var(--spacing-2xl);width:100%}.login-card .tagline{text-align:center;color:var(--text-muted);font-size:var(--font-size-sm);margin:0 0 var(--spacing-lg)}.login-card .title{text-align:center;color:var(--navy);font-weight:800;font-size:var(--font-size-xl);margin:0 0 var(--spacing-xs)}h1.page-title{color:var(--navy);font-size:var(--font-size-2xl);margin:0;letter-spacing:-.02em;font-weight:800}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);gap:var(--spacing-md);flex-wrap:wrap}.toolbar{display:flex;flex-wrap:wrap;gap:var(--spacing-md);align-items:flex-end;margin-bottom:var(--spacing-lg)}.toolbar .field{margin-bottom:0;flex:1 1 150px}.toolbar .grow{flex:2 1 220px}.filter-wrap{position:relative;display:flex;align-items:center}.filter-wrap input,.filter-wrap select{width:100%;padding-right:30px}.filter-clear{position:absolute;right:8px;background:none;border:none;color:var(--faint);font-size:1rem;line-height:1;cursor:pointer;padding:0 2px;width:auto}.filter-clear:hover{color:var(--color-danger)}.seg{display:flex;gap:4px;background:var(--white);border:1px solid var(--border);border-radius:var(--border-radius-sm);padding:4px;flex-wrap:wrap}.seg button{background:none;border:none;color:var(--text-muted);font-size:13px;font-weight:600;padding:7px 13px;border-radius:6px;cursor:pointer;font-family:inherit}.seg button.on{background:var(--navy);color:#fff}.toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-secondary);background:var(--white);border:1px solid var(--border);border-radius:var(--border-radius-sm);padding:8px 13px;white-space:nowrap;-webkit-user-select:none;user-select:none}.toggle input{width:auto;margin:0;accent-color:var(--navy);cursor:pointer}.toggle:hover{border-color:var(--navy)}.search{position:relative;flex:1 1 260px}.search input{padding-left:36px}.search .ico{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--faint);pointer-events:none}table{width:100%;border-collapse:collapse;background:var(--white);border:1px solid var(--border);border-radius:var(--border-radius-md);overflow:hidden}th{background:var(--navy);color:#fff;padding:11px var(--spacing-md);text-align:left;font-size:12px;letter-spacing:.03em;font-weight:700}td{padding:12px var(--spacing-md);border-bottom:1px solid var(--border);font-size:var(--font-size-sm);color:var(--text)}tbody tr{cursor:pointer;transition:background .12s}tbody tr:nth-child(2n) td{background:#f9fafb}tbody tr:hover td{background:var(--gray-bg)}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{background:var(--navy-dark)}th.sortable.filter-active{box-shadow:inset 0 -3px 0 var(--gold)}.th-inner{display:inline-flex;align-items:center;gap:6px;width:100%}.sort-ind{font-size:9px;line-height:1;opacity:.95;min-width:8px}.filter-row th{background:var(--white);padding:8px 10px;border-bottom:1px solid var(--border)}.filter-row input,.filter-row select{padding:6px 8px;font-size:13px}.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:700;white-space:nowrap}.badge-status-new{background:#e6edf5;color:var(--navy)}.badge-status-discussion{background:#fce7f3;color:#9d174d}.badge-status-in_progress{background:#fdf0d3;color:#8a6100}.badge-status-on_hold{background:#ece8fb;color:#5b21b6}.badge-status-testing{background:#e2eefc;color:#1d4ed8}.badge-status-done{background:#dcf2e3;color:#1f7a34}.badge-status-rejected{background:#f8e1e1;color:#a32d2d}.status-hint{margin:0 0 16px;padding:9px 12px;border-left:4px solid currentColor;border-radius:6px;font-size:13.5px;line-height:1.45;font-weight:500}.field .status-hint{margin:10px 0 0}.badge-prio-low{background:#eef0f2;color:#5a6472}.badge-prio-normal{background:#e6edf5;color:var(--navy)}.badge-prio-high{background:#fdf0d3;color:#8a6100}.badge-prio-critical{background:#f8e1e1;color:#a32d2d}.badge-cat{background:#eef0f3;color:var(--color-text-secondary)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00255473;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-start;justify-content:center;padding:var(--spacing-xl) var(--spacing-md);z-index:200;overflow-y:auto}.modal{background:var(--white);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-elevated);padding:var(--spacing-xl);width:100%;max-width:540px}.modal h2{margin-top:0;color:var(--navy)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);margin-top:var(--spacing-lg)}.form-row{display:flex;gap:var(--spacing-md)}.form-row .field{flex:1}.detail-grid{display:grid;grid-template-columns:1fr 320px;gap:var(--spacing-lg);align-items:start}.meta-list{list-style:none;padding:0;margin:0}.meta-list li{display:flex;justify-content:space-between;gap:var(--spacing-md);padding:9px 0;font-size:var(--font-size-sm);border-bottom:1px solid var(--border-soft)}.meta-list li:last-child{border-bottom:none}.meta-list li span:first-child{color:var(--faint)}.meta-list li span:last-child{text-align:right}.comment{border-bottom:1px solid var(--border-soft);padding:var(--spacing-md) 0}.comment:last-child{border-bottom:none}.comment .author{font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);color:var(--navy)}.comment .time{color:var(--faint);font-size:var(--font-size-xs);margin-left:var(--spacing-sm)}.comment .body{margin-top:var(--spacing-xs);color:var(--color-text-secondary)}.comment-ny{background:#f1b43424;box-shadow:-4px 0 0 var(--gold);transition:background .6s,box-shadow .6s}.chips{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.chip{background:var(--white);color:var(--color-text-secondary);border:1.5px solid var(--border);border-radius:999px;padding:7px 14px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;line-height:1.2;transition:.12s}.chip:hover{border-color:var(--navy)}.chip-active{background:var(--navy);border-color:var(--navy);color:#fff}.chip-active:hover{background:var(--navy)}.attach-row{display:flex;align-items:center;gap:var(--spacing-md);flex-wrap:wrap}.attach-hint{font-size:var(--font-size-xs)}.thumbs{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.thumb{position:relative;display:block;width:90px;height:90px;border:1px solid var(--border);border-radius:var(--border-radius-sm);overflow:hidden;background:var(--gray-bg)}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.thumb-file{width:130px;display:flex;align-items:center;padding:6px 8px;text-decoration:none;color:var(--navy)}.thumb-filename{font-size:12px;line-height:1.3;word-break:break-word;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}.thumb-remove{position:absolute;top:2px;right:2px;width:20px;height:20px;line-height:18px;text-align:center;border:none;border-radius:50%;background:#0009;color:#fff;cursor:pointer;font-size:14px;padding:0}.thumb-remove:hover{background:var(--color-danger)}.avatar-init,.av-sm{display:inline-grid;place-items:center;border-radius:50%;color:#fff;font-weight:700;flex:none}.repo-link{font-family:var(--font-mono);font-weight:600;color:var(--navy);cursor:pointer}.repo-link:hover{color:var(--gold-dark);text-decoration:none}.repo-sub{font-size:12px;color:var(--faint);margin-top:2px;max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-flex{display:flex;align-items:center;gap:8px}.inline-select{background:transparent;border:1px solid transparent;border-radius:6px;color:var(--color-text-secondary);padding:4px 6px;font-size:13px;font-family:inherit;cursor:pointer;max-width:100%;width:auto;transition:.12s}.inline-select:hover{border-color:var(--border);background:var(--gray-bg)}.inline-select:focus{outline:none;border-color:var(--navy);background:var(--white)}.cat-prod{color:#1f7a34}.cat-internal{color:#1d4ed8}.cat-throw{color:#b9770a}.cat-play{color:#7c3aed}.cat-none{color:var(--faint)}.count-pill{font-size:12px;font-weight:700;color:var(--navy);background:var(--accent-soft);padding:4px 11px;border-radius:999px;white-space:nowrap}.count-pill.zero{color:var(--faint);background:transparent;font-weight:500}.repo-list td{vertical-align:middle}.repo-list tbody tr{cursor:default}.repo-list .nowrap{white-space:nowrap}.tag{font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:999px}.c-prod{background:#dcf2e3;color:#1f7a34}.c-internal{background:#e2eefc;color:#1d4ed8}.c-throw{background:#fdf0d3;color:#8a6100}.c-play{background:#ece8fb;color:#6d28d9}.dot{width:9px;height:9px;border-radius:50%;flex:none;box-shadow:0 0 0 2px #0000000a}.repo-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-lg);flex-wrap:wrap;margin-bottom:var(--spacing-lg)}.repo-detail-title{font-family:var(--font-mono);font-size:var(--font-size-2xl);font-weight:700;display:flex;align-items:center;gap:12px;color:var(--navy)}.repo-detail-desc{color:var(--text-muted);font-size:var(--font-size-sm);margin-top:8px;max-width:620px}.meta-row{display:flex;gap:var(--spacing-xl);margin-top:var(--spacing-md);flex-wrap:wrap}.meta-row .k{color:var(--faint);font-size:11px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}.meta-row .v{display:flex;align-items:center;gap:8px;font-weight:600;font-size:var(--font-size-sm)}.empty{text-align:center;padding:var(--spacing-2xl) var(--spacing-lg);color:var(--text-muted)}.empty h3{color:var(--navy);margin:0 0 var(--spacing-sm)}.error-text{color:var(--color-danger);font-size:var(--font-size-sm);margin:var(--spacing-sm) 0}.warn-text{color:#8a6100;font-size:var(--font-size-sm);margin:var(--spacing-sm) 0}.muted{color:var(--text-muted)}.nowrap{white-space:nowrap}.back-link{display:inline-block;margin-bottom:var(--spacing-md);color:var(--navy);font-size:var(--font-size-sm);font-weight:600}.back-link:hover{text-decoration:underline}.container-narrow{max-width:620px}.btn-hero{width:100%;background:var(--gold);color:var(--navy);border:none;border-radius:var(--border-radius-md);padding:18px 20px;font-family:inherit;font-size:var(--font-size-lg);font-weight:800;cursor:pointer;box-shadow:var(--shadow-card);transition:.14s}.btn-hero:hover{background:var(--gold-dark)}.btn-hero:active{transform:translateY(1px)}.section-title{font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.08em;color:var(--faint);margin:var(--spacing-lg) 0 var(--spacing-sm)}.ticket-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--spacing-sm)}.ticket-row{width:100%;display:flex;flex-direction:column;gap:6px;text-align:left;background:var(--white);border:1px solid var(--border);border-radius:var(--border-radius-md);box-shadow:var(--shadow-card);padding:14px 16px;font-family:inherit;cursor:pointer}.ticket-row:hover{border-color:var(--navy)}.ticket-row-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-sm)}.ticket-row-title{font-weight:700;color:var(--navy);font-size:var(--font-size-base)}.ticket-row-meta{color:var(--text-muted);font-size:var(--font-size-xs)}.kvittering{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);background:#eaf6ec;border:1px solid #b6dcc0;color:#1f5c31;border-radius:var(--border-radius-md);padding:14px 16px;font-size:var(--font-size-sm);margin-bottom:var(--spacing-md)}.app-picker{display:grid;gap:var(--spacing-sm)}.app-choice{display:flex;flex-direction:column;gap:3px;text-align:left;background:var(--white);border:1.5px solid var(--border);border-radius:var(--border-radius-sm);padding:13px 15px;font-family:inherit;cursor:pointer;transition:.12s}.app-choice:hover{border-color:var(--navy)}.app-choice.is-active{border-color:var(--navy);background:var(--accent-soft)}.app-choice-name{font-weight:700;color:var(--navy);font-size:var(--font-size-base)}.app-choice-desc{color:var(--text-muted);font-size:var(--font-size-xs)}.tag-open{display:inline-block;margin-left:8px;background:var(--gold);color:var(--navy);font-size:10px;font-weight:700;letter-spacing:.04em;padding:2px 7px;border-radius:5px;white-space:nowrap;vertical-align:middle}.tag-open-utvalgte{background:var(--navy);color:#fff}.toggle-row{display:flex;align-items:flex-start;gap:10px;font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:400;cursor:pointer}.toggle-row input{margin-top:2px;width:18px;height:18px;flex-shrink:0;accent-color:var(--navy)}@media (max-width: 768px){.detail-grid{grid-template-columns:1fr}.form-row{flex-direction:column}.app-header{padding:0 var(--spacing-md)}.container{padding:var(--spacing-lg) var(--spacing-md)}.hide-mobile{display:none}.modal-overlay{padding:0}.modal{border-radius:0;min-height:100%;padding:var(--spacing-lg) var(--spacing-md)}input,textarea,select{font-size:16px}}.fmt-toolbar{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px}.fmt-area{width:100%;min-height:220px;max-height:70vh;overflow-y:auto;resize:vertical;padding:10px 12px;border:1px solid var(--border);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);font-family:inherit;line-height:1.5;background:var(--white);color:var(--text)}.fmt-area:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px var(--accent-soft)}.fmt-area:empty:before{content:attr(data-placeholder);color:var(--faint);pointer-events:none}.fmt-area ul,.fmt-area ol{margin:4px 0;padding-left:22px}.fmt-area a{color:var(--navy);text-decoration:underline}.fmt-btn{padding:3px 9px;font-size:13px;border:1px solid var(--border);border-radius:var(--border-radius-sm);background:var(--white);color:var(--navy);cursor:pointer}.fmt-btn:hover{background:var(--gray-bg)}.rt-list{margin:4px 0;padding-left:22px}.comment .body a{color:var(--navy);text-decoration:underline}
