/* DW AI Suite – frontend */

:root {
	--dwai-green: #14532d;
	--dwai-green-light: #1a6b3a;
	--dwai-bg: #f7faf8;
	--dwai-border: #d5dce3;
	--dwai-muted: #5a6772;
}

/* ---------- Felles bokser (Kort fortalt, faktaboks, samhørige) ---------- */
.dwai-box {
	border: 1px solid var(--dwai-border);
	border-left: 4px solid var(--dwai-green);
	border-radius: 6px;
	background: var(--dwai-bg);
	padding: 1.2em 1.5em;
	margin: 1.6em 0;
}
.dwai-box-title {
	font-size: 1.15em;
	margin: 0 0 .7em;
	display: flex;
	align-items: center;
	gap: .45em;
}
.dwai-kort-fortalt .dwai-box-title::before {
	content: "💡";
}
.dwai-faktaboks .dwai-box-title::before {
	content: "📋";
}
.dwai-relaterte .dwai-box-title::before {
	content: "🔗";
}
.dwai-box ul {
	margin: 0 0 .5em 1.2em;
	padding: 0;
}
.dwai-box li {
	margin-bottom: .4em;
	line-height: 1.55;
}
.dwai-disclaimer {
	font-size: .82em;
	color: var(--dwai-muted);
	margin: .8em 0 0;
	border-top: 1px solid #e3e8ec;
	padding-top: .6em;
}

.dwai-faktaboks table {
	width: 100%;
	border-collapse: collapse;
}
.dwai-faktaboks th,
.dwai-faktaboks td {
	text-align: left;
	padding: .45em .6em;
	border-bottom: 1px solid #e3e8ec;
	vertical-align: top;
}
.dwai-faktaboks tr:last-child th,
.dwai-faktaboks tr:last-child td {
	border-bottom: 0;
}
.dwai-faktaboks th {
	width: 11em;
	font-weight: 600;
	color: var(--dwai-green);
}

.dwai-rel-list {
	display: grid;
	gap: .75em;
}
.dwai-rel-item {
	padding: .85em 1em;
	background: #fff;
	border: 1px solid #e3e8ec;
	border-radius: 6px;
}
.dwai-rel-title {
	margin: 0 0 .55em;
	font-size: 1em;
}
.dwai-rel-title a {
	font-weight: 700;
}
.dwai-rel-claim {
	margin-top: .55em;
}
.dwai-rel-type {
	display: inline-block;
	padding: .18em .65em;
	background: #eaf4ed;
	border: 1px solid #c9dfcf;
	border-radius: 1em;
	font-size: .82em;
	font-weight: 700;
	color: var(--dwai-green);
}
.dwai-rel-reason {
	margin: .35em 0 0;
	color: var(--dwai-muted);
	line-height: 1.45;
}
.dwai-rel-source {
	display: block;
	margin-top: .15em;
	font-size: .8em;
	font-style: italic;
	color: #77838c;
}

/* ---------- Knapper ---------- */
.dwai-btn {
	display: inline-block;
	background: var(--dwai-green);
	color: #fff !important;
	border: 0;
	border-radius: 6px;
	padding: .65em 1.4em;
	cursor: pointer;
	text-decoration: none;
	font-size: 1em;
	font-weight: 600;
	transition: background .12s;
}
.dwai-btn:hover:not(:disabled) {
	background: var(--dwai-green-light);
}
.dwai-btn:disabled {
	opacity: .45;
	cursor: not-allowed;
}
.dwai-present-btn::before {
	content: "▶ ";
}

/* ---------- Semantisk søk ---------- */
.dwai-semantic-search {
	margin: 1.5em 0;
}
.dwai-search-form {
	display: flex;
	gap: .5em;
	margin-bottom: 1.2em;
}
.dwai-search-form input[type="search"] {
	flex: 1;
	padding: .6em .8em;
	border: 1px solid var(--dwai-border);
	border-radius: 6px;
	font-size: 1em;
}
.dwai-search-form button {
	background: var(--dwai-green);
	color: #fff;
	border: 0;
	border-radius: 6px;
	padding: .6em 1.3em;
	cursor: pointer;
	font-weight: 600;
}
.dwai-results-heading {
	margin: 1.2em 0 .4em;
}
.dwai-result-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.dwai-result {
	padding: .75em .2em;
	border-bottom: 1px solid #e3e8ec;
}
.dwai-result-title {
	font-weight: 600;
	display: block;
	margin-bottom: .15em;
}
.dwai-result-chapters {
	font-size: .88em;
	color: var(--dwai-muted);
}
.dwai-attribution {
	font-size: .8em;
	color: #8a949d;
	margin-top: .8em;
}
.dwai-search-demo {
	margin: .8em 0 1.4em;
	border: 1px solid var(--dwai-border);
	border-radius: 8px;
	background: #f8fbf9;
}
.dwai-search-demo summary {
	cursor: pointer;
	padding: .85em 1em;
	font-weight: 700;
	color: var(--dwai-green);
}
.dwai-search-demo > p {
	margin: 0;
	padding: 0 1em .65em;
	color: var(--dwai-muted);
}
.dwai-search-chips {
	display: flex;
	flex-wrap: wrap;
	gap: .45em;
	padding: 0 1em 1em;
}
.dwai-search-chip {
	display: inline-block;
	padding: .45em .75em;
	border: 1px solid #b9d5c1;
	border-radius: 999px;
	background: #fff;
	color: var(--dwai-green);
	font-size: .86em;
	text-decoration: none;
}
.dwai-search-chip:hover,
.dwai-search-chip:focus {
	background: #eaf4ed;
	border-color: var(--dwai-green);
}
.dwai-search-comparison {
	margin-top: 1.8em;
}
.dwai-search-comparison-head {
	max-width: 54em;
	margin-bottom: 1em;
}
.dwai-search-comparison-head h2 {
	margin: .15em 0 .35em;
}
.dwai-search-comparison-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1em;
}
.dwai-search-column {
	border: 1px solid var(--dwai-border);
	border-radius: 12px;
	background: #fff;
	padding: 1.1em 1.2em;
}
.dwai-search-column-smart {
	border-color: #7faf8a;
	background: linear-gradient(145deg, #f7fbf8, #eaf4ed);
	box-shadow: 0 8px 24px rgba(20, 83, 45, .08);
}
.dwai-search-column header {
	border-bottom: 1px solid var(--dwai-border);
	margin-bottom: .8em;
}
.dwai-search-column h3 {
	margin: .15em 0 .65em;
}
.dwai-search-method {
	display: inline-block;
	font-size: .72em;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--dwai-muted);
}
.dwai-search-column ol {
	margin: 0;
	padding-left: 1.4em;
}
.dwai-search-column li {
	padding: .55em .2em;
	border-bottom: 1px solid rgba(107, 129, 116, .18);
}
.dwai-search-column li:last-child {
	border-bottom: 0;
}
.dwai-search-column li > a {
	display: block;
	font-weight: 700;
}
.dwai-search-column li span {
	display: block;
	margin-top: .15em;
	font-size: .78em;
	color: var(--dwai-muted);
}
.dwai-search-empty {
	color: var(--dwai-muted);
	font-style: italic;
}

/* ---------- Prosjektfinner ---------- */
.dwai-finder {
	border: 1px solid var(--dwai-border);
	border-radius: 8px;
	background: #fff;
	padding: 1.6em 1.8em;
	margin: 1.5em 0;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .05);
	transition: border-color .15s, box-shadow .15s, background .15s;
}
.dwai-finder.dwai-is-loading {
	border-color: var(--dwai-green);
	background: #fbfdfb;
	box-shadow: 0 0 0 3px rgba(20, 83, 45, .12), 0 4px 14px rgba(20, 83, 45, .1);
}
.dwai-finder.dwai-is-loading .dwai-finder-form textarea {
	background: #f3f6f4;
	cursor: wait;
}
.dwai-finder.dwai-package-active > .dwai-finder-intro,
.dwai-finder.dwai-package-active > .dwai-finder-form {
	display: none;
}
.dwai-finder.dwai-package-active {
	padding-top: 1em;
}
.dwai-finder-title {
	margin: 0 0 .3em;
}
.dwai-finder-intro p {
	margin: 0 0 1em;
	color: var(--dwai-muted);
	max-width: 44em;
}
.dwai-finder-form textarea {
	width: 100%;
	box-sizing: border-box;
	padding: .8em;
	border: 1px solid var(--dwai-border);
	border-radius: 6px;
	font-size: 1em;
	font-family: inherit;
	line-height: 1.5;
	resize: vertical;
}
.dwai-finder-form textarea:focus {
	outline: 2px solid var(--dwai-green);
	outline-offset: 1px;
	border-color: var(--dwai-green);
}
.dwai-finder-meta {
	min-height: 1.3em;
	margin: .2em 0 .4em;
}
.dwai-charcount {
	font-size: .82em;
}
.dwai-charcount-low {
	color: #996800;
}
.dwai-charcount-ok {
	color: #1a7a2e;
}
.dwai-chips {
	display: flex;
	flex-wrap: wrap;
	gap: .5em;
	align-items: center;
	margin-bottom: 1em;
}
.dwai-chips-label {
	font-size: .85em;
	color: var(--dwai-muted);
}
.dwai-chip {
	background: var(--dwai-bg);
	border: 1px solid var(--dwai-border);
	border-radius: 14px;
	padding: .3em .9em;
	font-size: .82em;
	cursor: pointer;
	color: #33413a;
	transition: border-color .12s, background .12s;
}
.dwai-chip:hover {
	border-color: var(--dwai-green);
	background: #eef6f0;
}
.dwai-finder-submit {
	display: flex;
	align-items: center;
	gap: 1em;
	flex-wrap: wrap;
}
.dwai-spinner {
	color: var(--dwai-green);
	background: #eaf4ed;
	border: 1px solid #b9d5c1;
	border-radius: 6px;
	padding: .55em .8em;
	font-style: normal;
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	gap: .5em;
}
.dwai-spinner[hidden] {
	display: none;
}
.dwai-spinner-dot {
	width: 14px;
	height: 14px;
	border: 2px solid var(--dwai-border);
	border-top-color: var(--dwai-green);
	border-radius: 50%;
	animation: dwai-spin .8s linear infinite;
}
.dwai-finder.dwai-is-loading .dwai-btn:disabled {
	opacity: .8;
	background: #52695b;
	cursor: wait;
}
@keyframes dwai-spin {
	to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
	.dwai-spinner-dot {
		animation-duration: 1.6s;
	}
}

.dwai-results-title {
	margin: 1.4em 0 .6em;
}
.dwai-finder-result-intro {
	margin-bottom: 1em;
}
.dwai-finder-result-intro p {
	margin: 0;
	color: var(--dwai-muted);
}
.dwai-finder-item {
	display: block;
	border: 1px solid var(--dwai-border);
	border-radius: 8px;
	padding: 1em 1.1em;
	margin-bottom: .8em;
	transition: border-color .12s, background .12s, box-shadow .12s;
}
.dwai-finder-item:hover,
.dwai-finder-item.dwai-is-selected {
	border-color: var(--dwai-green);
	background: var(--dwai-bg);
}
.dwai-finder-item.dwai-is-selected {
	box-shadow: 0 0 0 2px rgba(20, 83, 45, .1);
}
.dwai-finder-item-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1em;
	margin-bottom: .8em;
}
.dwai-finder-item-head h4 {
	margin: 0 0 .15em;
	font-size: 1.1em;
}
.dwai-finder-modified {
	font-size: .78em;
	color: var(--dwai-muted);
}
.dwai-shortlist-toggle {
	display: inline-flex;
	align-items: center;
	gap: .25em;
	white-space: nowrap;
	font-weight: 700;
	color: var(--dwai-green);
	cursor: pointer;
}
.dwai-shortlist-toggle input {
	width: 1.15em;
	height: 1.15em;
	accent-color: var(--dwai-green);
}
.dwai-finder-evidence {
	border-left: 3px solid #a9c9b1;
	padding: .05em 0 .05em .85em;
	margin: .65em 0;
}
.dwai-finder-evidence p {
	margin: .25em 0;
	line-height: 1.5;
}
.dwai-finder-evidence-label {
	font-size: .8em;
	font-weight: 700;
	color: var(--dwai-green);
}
.dwai-finder-approved {
	border-top: 1px solid #e3e8ec;
	margin-top: .8em;
	padding-top: .65em;
}
.dwai-finder-approved summary {
	cursor: pointer;
	font-weight: 700;
	color: var(--dwai-green);
}
.dwai-finder-approved summary span {
	font-size: .72em;
	font-weight: 500;
	color: var(--dwai-muted);
}
.dwai-finder-approved ul {
	margin-bottom: 0;
}
.dwai-finder-approved dl {
	margin: .7em 0 0;
}
.dwai-finder-approved dl div {
	display: grid;
	grid-template-columns: minmax(8em, 1fr) 2fr;
	gap: .7em;
	padding: .35em 0;
	border-bottom: 1px solid #e3e8ec;
}
.dwai-finder-approved dt {
	font-weight: 700;
	color: var(--dwai-green);
}
.dwai-finder-approved dd {
	margin: 0;
}
.dwai-shortlist {
	position: sticky;
	bottom: .75em;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1em;
	background: #eef6f0;
	border: 1px solid #b9d5c1;
	border-radius: 6px;
	padding: .9em 1em;
	margin-top: 1em;
	box-shadow: 0 4px 16px rgba(20, 83, 45, .12);
}
.dwai-shortlist p {
	margin: .15em 0 0;
	font-size: .84em;
	color: var(--dwai-muted);
}
.dwai-btn-secondary {
	background: #e8eeea;
	color: var(--dwai-green) !important;
}
.dwai-btn-secondary:hover:not(:disabled) {
	background: #dce8df;
}

/* ---------- Prosjektnotat ---------- */
.dwai-project-note {
	margin-top: 1.3em;
	color: #1f2923;
}
.dwai-project-note-actions {
	display: flex;
	justify-content: space-between;
	gap: .7em;
	margin-bottom: 1.2em;
}
.dwai-project-note-kicker {
	margin: 0;
	font-size: .78em;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--dwai-green);
}
.dwai-project-note header h2 {
	margin: .15em 0 .6em;
}
.dwai-project-note-warning {
	background: #fff8e6;
	border-left: 4px solid #c98b00;
	padding: .7em .85em;
}
.dwai-project-note > section {
	margin-top: 1.5em;
}
.dwai-project-description {
	white-space: pre-line;
}
.dwai-project-note-item {
	border-top: 2px solid var(--dwai-green);
	padding-top: .85em;
	margin-top: 1.2em;
}
.dwai-project-note-item h4 {
	margin: 0 0 .6em;
}
.dwai-project-note-relations h5 {
	margin: .8em 0 .3em;
}
.dwai-project-note-relations ul,
.dwai-project-questions ul {
	margin-top: .3em;
}
.dwai-project-note footer {
	border-top: 1px solid var(--dwai-border);
	margin-top: 1.6em;
	padding-top: .8em;
	font-size: .8em;
	color: var(--dwai-muted);
}
.dwai-package-hero {
	position: relative;
	overflow: hidden;
	padding: 1.5em 1.6em;
	border-radius: 14px;
	background: linear-gradient(135deg, #123c28, #1e6942);
	color: #fff;
	box-shadow: 0 12px 34px rgba(17, 66, 39, .18);
}
.dwai-package-hero::after {
	content: "";
	position: absolute;
	right: -2.5em;
	top: -3em;
	width: 11em;
	height: 11em;
	border: 1px solid rgba(255, 255, 255, .2);
	border-radius: 50%;
	box-shadow: 0 0 0 2.5em rgba(255, 255, 255, .04), 0 0 0 5em rgba(255, 255, 255, .025);
}
.dwai-package-hero > * {
	position: relative;
	z-index: 1;
}
.dwai-package-hero .dwai-project-note-kicker {
	color: #bfe0c8;
}
.dwai-package-hero h2 {
	max-width: 18em;
	font-size: clamp(1.7em, 4vw, 2.5em);
	line-height: 1.08;
}
.dwai-package-hero > p:not(.dwai-project-note-warning) {
	max-width: 42em;
	color: #e6f2e9;
}
.dwai-package-hero .dwai-project-note-warning {
	color: #3b2d00;
	background: #fff3cd;
}
.dwai-package-section-head {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 1em;
	margin-bottom: .8em;
}
.dwai-package-section-head h3 {
	margin: .12em 0 0;
	font-size: 1.45em;
}
.dwai-package-section-head > span {
	font-size: .82em;
	color: var(--dwai-muted);
}
.dwai-package-selected {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .8em;
}
.dwai-package-selected .dwai-project-note-item {
	margin: 0;
	padding: 1em;
	border: 1px solid var(--dwai-border);
	border-top: 4px solid var(--dwai-green);
	border-radius: 10px;
	background: #fff;
}
.dwai-package-item-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: .8em;
}
.dwai-package-item-head h4 {
	display: flex;
	align-items: flex-start;
	gap: .55em;
}
.dwai-package-item-head h4 > span {
	display: inline-grid;
	place-items: center;
	flex: 0 0 1.75em;
	height: 1.75em;
	border-radius: 50%;
	background: var(--dwai-green);
	color: #fff;
	font-size: .78em;
}
.dwai-package-item-head button {
	border: 0;
	background: transparent;
	color: #a12b2b;
	cursor: pointer;
	font-size: .82em;
	text-decoration: underline;
}
.dwai-package-suggestions {
	display: grid;
	gap: .65em;
}
.dwai-package-suggestions article {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1em;
	padding: .9em 1em;
	border: 1px solid #cfe0d3;
	border-radius: 10px;
	background: #f8fbf9;
}
.dwai-package-suggestions h4,
.dwai-package-suggestions p {
	margin: .2em 0;
}
.dwai-package-relation-label {
	display: inline-block;
	padding: .18em .55em;
	border-radius: 999px;
	background: #dfeee3;
	color: var(--dwai-green);
	font-size: .72em;
	font-weight: 700;
}
.dwai-btn-small {
	padding: .5em .8em;
	white-space: nowrap;
	font-size: .86em;
}
.dwai-package-analysis-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .8em;
}
.dwai-package-analysis-card {
	position: relative;
	padding: 1em 1.1em;
	border: 1px solid var(--dwai-border);
	border-radius: 10px;
	background: #fff;
}
.dwai-package-analysis-card h4 {
	margin: 0 2.5em .25em 0;
	font-size: 1.15em;
}
.dwai-package-analysis-card > p {
	margin: .2em 0 .7em;
	color: var(--dwai-muted);
}
.dwai-package-analysis-count {
	position: absolute;
	right: .85em;
	top: .8em;
	display: grid;
	place-items: center;
	width: 2em;
	height: 2em;
	border-radius: 50%;
	background: #eaf4ed;
	color: var(--dwai-green);
	font-weight: 700;
}
.dwai-package-analysis-card ul {
	list-style: none;
	margin: .7em 0 0;
	padding: 0;
}
.dwai-package-analysis-card li {
	padding: .7em 0;
	border-top: 1px solid #e3e8ec;
}
.dwai-package-analysis-card li p {
	margin: .2em 0;
}
.dwai-package-konflikt {
	border-color: #e5c8c8;
	background: #fffafa;
}
.dwai-package-forutsetter {
	border-color: #ead49b;
	background: #fffdf7;
}
.dwai-package-source {
	display: inline-block;
	margin-top: .25em;
	font-size: .76em;
	font-weight: 600;
}
.dwai-package-empty {
	padding: .7em .8em;
	border-radius: 7px;
	background: #f5f6f5;
	color: var(--dwai-muted);
	font-style: italic;
}
.dwai-finder-error {
	color: #b32d2e;
	background: #fcf0f1;
	border: 1px solid #f2c8c9;
	border-radius: 6px;
	padding: .6em 1em;
}

/* ---------- Sammenligning ---------- */
.dwai-compare-form fieldset {
	border: 1px solid var(--dwai-border);
	border-radius: 8px;
	padding: 1em 1.4em 1.2em;
}
.dwai-compare-form legend {
	font-weight: 700;
	padding: 0 .4em;
}
.dwai-compare-hint {
	margin: .2em 0 .8em;
	font-size: .88em;
	color: var(--dwai-muted);
}
.dwai-compare-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: .2em .9em;
	max-height: 340px;
	overflow-y: auto;
	margin-bottom: 1em;
	padding: .3em;
	border: 1px solid #e3e8ec;
	border-radius: 6px;
}
.dwai-compare-item {
	display: flex;
	align-items: baseline;
	gap: .45em;
	padding: .3em .4em;
	border-radius: 4px;
	cursor: pointer;
	line-height: 1.35;
}
.dwai-compare-item:hover {
	background: var(--dwai-bg);
}
.dwai-compare-scroll {
	overflow-x: auto;
	margin-top: 1.2em;
}
.dwai-compare-table {
	border-collapse: collapse;
	min-width: 640px;
	width: 100%;
}
.dwai-compare-table th,
.dwai-compare-table td {
	border: 1px solid var(--dwai-border);
	padding: .65em .85em;
	text-align: left;
	vertical-align: top;
	line-height: 1.5;
}
.dwai-compare-table thead th {
	background: var(--dwai-green);
	color: #fff;
}
.dwai-compare-table thead th a {
	color: #fff;
	text-decoration: underline;
}
.dwai-compare-table tbody th {
	background: var(--dwai-bg);
	white-space: nowrap;
	color: var(--dwai-green);
}
.dwai-compare-table tbody tr:nth-child(even) td {
	background: #fbfcfb;
}
.dwai-source-link {
	font-size: .85em;
	white-space: nowrap;
}

/* ---------- Mobil ---------- */
@media (max-width: 600px) {
	.dwai-finder {
		padding: 1.1em 1em;
	}
	.dwai-search-form {
		flex-direction: column;
	}
	.dwai-compare-list {
		grid-template-columns: 1fr;
	}
	.dwai-finder-item-head,
	.dwai-shortlist,
	.dwai-project-note-actions {
		align-items: stretch;
		flex-direction: column;
	}
	.dwai-shortlist {
		bottom: .25em;
	}
	.dwai-finder-approved dl div {
		grid-template-columns: 1fr;
		gap: .1em;
	}
	.dwai-search-comparison-grid,
	.dwai-package-selected,
	.dwai-package-analysis-grid {
		grid-template-columns: 1fr;
	}
	.dwai-package-suggestions article,
	.dwai-package-section-head {
		align-items: stretch;
		flex-direction: column;
	}
	.dwai-package-hero {
		padding: 1.2em;
	}
}

@media print {
	body.dwai-print-project-note * {
		visibility: hidden !important;
	}
	body.dwai-print-project-note .dwai-project-note,
	body.dwai-print-project-note .dwai-project-note * {
		visibility: visible !important;
	}
	body.dwai-print-project-note .dwai-project-note {
		position: absolute;
		inset: 0;
		width: auto;
		margin: 0;
		padding: 12mm;
		background: #fff;
		font-size: 10.5pt;
	}
	body.dwai-print-project-note .dwai-project-note-actions {
		display: none !important;
	}
	body.dwai-print-project-note .dwai-package-item-head button,
	body.dwai-print-project-note .dwai-package-suggestions button {
		display: none !important;
	}
	body.dwai-print-project-note .dwai-finder-approved > * {
		display: block !important;
	}
	body.dwai-print-project-note a {
		color: #000;
		text-decoration: underline;
	}
	body.dwai-print-project-note .dwai-project-note-item {
		break-inside: avoid;
	}
}
