:root{
  --bg:#f7f8f7;
  --panel:#ffffff;
  --line:#e7ebe8;
  --text:#101512;
  --muted:#6d756f;
  --green:#00b86b;
  --green-dark:#00593c;
  --lime:#9affc7;
  --black:#050706;
  --soft:#f1f4f2;
  --danger:#d92d5b;
  --warning:#f1c71a;
  --orange:#f47c22;
  --purple:#8b5cf6;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-size:14px;line-height:1.45}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
.app-shell{display:grid;grid-template-columns:64px 240px 1fr;min-height:100vh}
.rail{background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:center;padding:18px 10px;gap:12px;position:sticky;top:0;height:100vh}
.rail-logo{width:32px;height:32px;border-radius:12px;background:var(--black);color:#fff;display:grid;place-items:center;font-weight:800}
.rail-item,.rail-avatar{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;color:#1b211d;font-size:18px}
.rail-item:hover,.rail-item.active{background:#eef3f0;color:var(--green-dark)}
.rail-item.muted{opacity:.55}
.rail-spacer{flex:1}.rail-avatar{font-size:13px;background:#e2f6ea;color:var(--green-dark);font-weight:700}
.sidepanel{background:#f3f5f4;border-right:1px solid var(--line);padding:24px 18px;position:sticky;top:0;height:100vh}
.sidepanel-title{padding-bottom:20px;border-bottom:1px solid #dce2de;margin-bottom:22px}.sidepanel-title strong{display:block;margin-top:4px;font-size:15px}.eyebrow{font-size:11px;letter-spacing:.12em;color:var(--green-dark);font-weight:800}
.nav-list{display:flex;flex-direction:column;gap:6px}.nav-list a{padding:10px 12px;border-radius:10px;color:#303733}.nav-list a:hover{background:#e9eeeb}.nav-divider{height:1px;background:#dce2de;margin:12px 0}
.main{min-width:0}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px}.topbar h1{font-size:20px;margin:0}.crumb{font-size:12px;color:var(--muted);margin-bottom:3px}.topbar-actions{display:flex;gap:12px;align-items:center}.save-state{font-size:12px;color:var(--muted)}.content{padding:28px;max-width:1280px}.flash{padding:12px 14px;border-radius:12px;margin-bottom:16px}.flash-success{background:#eafff2;color:#075838}.flash-error{background:#fff0f3;color:#9d1437}
.btn{border:0;border-radius:11px;padding:10px 14px;display:inline-flex;align-items:center;gap:7px;cursor:pointer;font-weight:700;line-height:1;background:#eef2ef;color:#111}.btn:hover{filter:brightness(.98)}.btn-primary{background:var(--green);color:#00180d}.btn-dark{background:#050706;color:#fff}.btn-light{background:#fff;border:1px solid var(--line)}.btn-small{padding:7px 10px;border-radius:9px;font-size:12px}.btn-ai{background:#ede7ff;color:#3f268e;border:1px solid #d9ccff}.actions{text-align:right;white-space:nowrap}
.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:28px}.metric-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px}.metric-card span{color:var(--muted);display:block;margin-bottom:8px}.metric-card strong{font-size:28px}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:16px}.section-head h2{font-size:22px;margin:0 0 4px}.section-head p{margin:0;color:var(--muted);max-width:720px}.section-head.compact{margin-top:10px}.table-card,.panel-form,.content-block,.publish-card,.inline-create-form{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;margin-bottom:18px;box-shadow:0 12px 32px rgba(20,30,24,.03)}
table{width:100%;border-collapse:collapse}th{font-size:12px;color:#5d665f;text-align:left;font-weight:800}td,th{padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}tbody tr:hover{background:#fbfcfb}.empty{text-align:center;color:var(--muted);padding:26px}.pill{background:#eef3f0;padding:4px 8px;border-radius:999px;font-size:12px}
.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.property-card,.empty-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px}.property-card-top{display:flex;justify-content:space-between;gap:12px}.property-card-top strong{font-size:17px}.property-card-top span,.property-card p,.property-meta{color:var(--muted)}.property-meta{display:flex;gap:12px;justify-content:space-between;border-top:1px solid var(--line);padding-top:12px;margin-top:14px}.card-actions{display:flex;gap:10px;margin-top:16px}
.form-stack,.panel-form{display:flex;flex-direction:column;gap:14px}.form-grid{display:grid;gap:14px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.narrow{max-width:620px}label{display:flex;flex-direction:column;gap:6px;font-weight:700;color:#26302a}input,textarea,select{border:1px solid #dbe2de;background:#fff;border-radius:12px;padding:11px 12px;outline:none;color:var(--text)}textarea{resize:vertical;min-height:92px}input:focus,textarea:focus,select:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(0,184,107,.12)}.check-line{flex-direction:row;align-items:center;gap:8px;align-self:end}.check-line input{width:auto}.form-actions{display:flex;gap:10px;align-items:center;margin-top:4px}.form-actions.split{justify-content:space-between}.hint{color:var(--muted);font-size:13px;margin:0}.textarea-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px}.textarea-toolbar span{font-weight:800}
.login-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 20%,#d9ffe9,transparent 32%),#f7f8f7}.login-card{width:min(420px,calc(100vw - 32px));background:#fff;border:1px solid var(--line);border-radius:24px;padding:28px;box-shadow:0 24px 80px rgba(20,30,24,.10)}.login-brand{font-size:34px;font-weight:900;color:var(--green-dark);letter-spacing:-.06em}.login-card h1{margin:10px 0 4px}.login-card p{color:var(--muted);margin:0 0 18px}.login-card small{color:var(--muted);display:block;margin-top:12px}
.plan-head{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px 14px;margin-bottom:16px}.plan-head div{display:flex;flex-direction:column;text-align:center}.plan-head span{color:var(--muted);font-size:12px}.wizard{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:0 0 20px}.wizard-step{background:#fff;border:1px solid var(--line);border-radius:14px;padding:11px 12px;font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px}.wizard-step span{width:18px;height:18px;border-radius:50%;border:2px solid #d8e0dc;display:grid;place-items:center;font-size:11px}.wizard-step.active{border-color:var(--green);color:var(--text);box-shadow:inset 0 3px 0 var(--green)}.wizard-step.active span{border-color:var(--green)}.wizard-step.done span{background:var(--green);border-color:var(--green);color:#fff}.wizard-step.done{color:#23352b}
.condition-mark{width:22px;height:18px;display:inline-block;vertical-align:middle;margin-right:8px;background:repeating-linear-gradient(to bottom,currentColor 0 3px,transparent 3px 6px);border-radius:3px}.condition-mark.big{width:44px;height:34px}.condition-very-good{color:#25d76f}.condition-acceptable{color:#f2c918}.condition-less-good{color:#f47b22}.condition-critical{color:#e12c62}.condition-not-assessed{color:#cfd6d2}.budget-wrap{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;overflow:auto}.budget-table{min-width:980px}.budget-table th,.budget-table td{text-align:right;white-space:nowrap}.budget-table th:first-child,.budget-table td:first-child{text-align:left}.budget-table tfoot tr:first-child th{background:#a8ffc9;color:#002616}.budget-table tfoot tr:last-child th{background:#00593c;color:#fff}.publish-card{text-align:center;padding:44px}.publish-card h2{margin-top:0}.publish-card p{color:var(--muted)}.publish-actions{display:flex;justify-content:center;gap:10px}.inline-create-form h3{margin:0 0 12px}.upload-bar{display:flex;gap:12px;align-items:center;background:#fff;border:1px dashed #cfd8d3;border-radius:16px;padding:14px;margin-bottom:16px}.upload-bar input{flex:1}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-bottom:16px}.photo-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px}.photo-card img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;background:#f2f3f2;margin-bottom:10px}.photo-card label{font-size:12px}.photo-card input,.photo-card textarea{padding:8px;border-radius:9px}.photo-card-bottom{display:flex;align-items:center;gap:8px;justify-content:space-between;margin-top:8px}.photo-card-bottom input[type=number]{width:62px}.photo-card-bottom a{font-size:12px;color:var(--danger)}
@media (max-width: 980px){.app-shell{grid-template-columns:56px 1fr}.sidepanel{display:none}.metric-grid,.form-grid.two,.form-grid.three,.form-grid.four,.wizard{grid-template-columns:1fr}.topbar{height:auto;padding:18px;align-items:flex-start}.topbar-actions{display:none}.content{padding:18px}.section-head{align-items:flex-start;flex-direction:column}.plan-head{align-items:stretch;flex-direction:column}.plan-head div{text-align:left}}

/* VRAP v0.2 BBR/DAWA import */
.bbr-panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;margin-bottom:18px;box-shadow:0 12px 32px rgba(20,30,24,.03);display:grid;gap:14px}
.bbr-panel h2{font-size:18px;margin:4px 0 4px}.bbr-panel p{margin:0;color:var(--muted);max-width:760px}.bbr-panel small{display:block;margin-top:8px;color:var(--muted)}
.bbr-search{display:flex;gap:10px}.bbr-search input{flex:1;background:#fbfcfb}.bbr-results,.bbr-preview{border:1px solid var(--line);border-radius:16px;background:#fbfcfb;padding:12px}
.bbr-result-title{font-weight:800;margin:0 0 8px;color:#243029}.bbr-result{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:11px 12px;text-align:left;display:flex;justify-content:space-between;gap:12px;cursor:pointer;margin-bottom:8px}.bbr-result:hover{border-color:var(--green);box-shadow:0 0 0 3px rgba(0,184,107,.10)}.bbr-result span{color:var(--muted)}
.bbr-message{padding:10px 12px;border-radius:12px;background:#eef3f0;color:#25362b}.bbr-message.error{background:#fff0f3;color:#9d1437}.bbr-message.success{background:#eafff2;color:#075838;margin-top:12px}
.bbr-preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.bbr-preview-head h3{margin:3px 0 0;font-size:17px}.bbr-field-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.bbr-field-grid div{background:#fff;border:1px solid var(--line);border-radius:13px;padding:10px}.bbr-field-grid span,.bbr-description span{display:block;color:var(--muted);font-size:12px;margin-bottom:4px}.bbr-field-grid strong{display:block;font-size:14px}.bbr-notes{margin:0 0 12px;padding-left:18px;color:#526057}.bbr-description{background:#fff;border:1px solid var(--line);border-radius:13px;padding:12px;margin-top:10px}.bbr-description p{margin:0;color:var(--text)}
@media (max-width: 980px){.bbr-search,.bbr-preview-head,.bbr-result{flex-direction:column}.bbr-field-grid{grid-template-columns:1fr}}


/* VRAP v0.4: visible field help. No hidden/empty hover tooltip dependency. */
.label-row {
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
}

.info-icon {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:17px;
  height:17px;
  border-radius:50%;
  background:#111827;
  color:#fff;
  font-size:11px;
  font-weight:800;
  line-height:1;
  flex:0 0 auto;
}

.field-help {
  display:block;
  width:100%;
  margin-top:2px;
  color:#63736b;
  font-size:12px;
  line-height:1.35;
  font-weight:500;
}

.field-guidance {
  border:1px solid #a7f3d0;
  background:#ecfdf5;
  color:#075f43;
  border-radius:12px;
  padding:11px 13px;
  margin:0 0 12px;
  font-size:13px;
  line-height:1.45;
}

.upload-field {
  flex:1;
}


/* v0.4.1: visible field help, no hover-only tooltips */
.field-help {
  display:block;
  margin-top:5px;
  margin-bottom:8px;
  color:#4b5563;
  font-size:12px;
  line-height:1.35;
  font-weight:500;
}

.form-help-box {
  margin:0 0 18px;
  padding:12px 14px;
  border:1px solid #86efac;
  background:#ecfdf5;
  color:#065f46;
  border-radius:12px;
  font-size:13px;
  line-height:1.45;
}

.condition-select-wrap {
  position:relative;
  display:flex;
  align-items:center;
}

.condition-select-wrap select {
  width:100%;
  padding-right:64px;
}

#condition_preview_holder {
  position:absolute;
  right:14px;
  top:50%;
  transform:translateY(-50%);
  pointer-events:none;
}

.condition-preview {
  display:inline-flex;
  flex-direction:column;
  gap:3px;
  width:24px;
}

.condition-preview span {
  display:block;
  height:3px;
  border-radius:99px;
  background:#cbd5e1;
}

.condition-preview-very-good span { background:#10b981; }
.condition-preview-acceptable span { background:#facc15; }
.condition-preview-less-good span { background:#f97316; }
.condition-preview-critical span { background:#e11d48; }
.condition-preview-not-assessed span { background:#cbd5e1; }

.hint-icon {
  display:none !important;
}


/* v0.4.3: drag/drop image upload and local photo feedback */
.drop-upload {
  align-items:stretch;
}

.drop-upload-zone {
  border:2px dashed #cfd8d3;
  border-radius:14px;
  padding:16px;
  background:#fbfdfc;
  transition:border-color .15s ease, background .15s ease, box-shadow .15s ease;
  cursor:pointer;
}

.drop-upload-zone input[type=file] {
  margin-top:10px;
  width:100%;
}

.drop-upload.is-dragover .drop-upload-zone {
  border-color:#00b86b;
  background:#ecfdf5;
  box-shadow:0 0 0 4px rgba(0,184,107,.12);
}

.drop-upload-selected {
  display:block;
  margin-top:8px;
  color:#0f5132;
  font-size:12px;
  font-weight:700;
}

.photo-section-message {
  margin:0 0 14px;
  padding:12px 14px;
  border-radius:12px;
  border:1px solid #bbf7d0;
  background:#ecfdf5;
  color:#065f46;
  font-weight:700;
}

.photo-section-message.error {
  border-color:#fecdd3;
  background:#fff1f2;
  color:#9f1239;
}

.photo-section-message.warning {
  border-color:#fde68a;
  background:#fffbeb;
  color:#92400e;
}


/* v0.4.4 UI refresh */
:root{
  --bg:#f4f6f5;
  --panel:#ffffff;
  --panel-soft:#fbfcfb;
  --line:#e5ebe7;
  --line-strong:#d7e0da;
  --text:#0f1728;
  --muted:#677381;
  --green:#16c172;
  --green-dark:#0d7a4b;
  --green-deep:#0b5a38;
  --black:#0f1728;
  --shadow:0 10px 30px rgba(15,23,40,.06);
  --shadow-soft:0 4px 14px rgba(15,23,40,.04);
}
body{
  background:linear-gradient(180deg,#f6f8f7 0%,#f2f5f4 100%);
  color:var(--text);
  font-size:14px;
}
.app-shell{grid-template-columns:76px 270px 1fr}
.rail{
  background:linear-gradient(180deg,#fdfefe 0%,#f8faf9 100%);
  border-right:1px solid var(--line);
  padding:20px 12px;
  box-shadow:inset -1px 0 0 rgba(255,255,255,.5);
}
.rail-logo{
  width:40px;height:40px;border-radius:14px;
  background:linear-gradient(135deg,#111827 0%, #0d7a4b 100%);
  box-shadow:0 12px 22px rgba(13,122,75,.18);
}
.rail-logo span{font-weight:800;letter-spacing:-.03em}
.rail-item,.rail-avatar{
  width:42px;height:42px;border-radius:14px;background:transparent;color:#475569;
  transition:all .16s ease;
}
.icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px}
.icon svg{display:block;width:18px;height:18px;fill:currentColor}
.rail-item:hover,.rail-item.active{
  background:#e9f8f0;color:var(--green-deep);transform:translateY(-1px);box-shadow:var(--shadow-soft);
}
.rail-avatar{background:#dff7ea;color:var(--green-deep);font-weight:800;box-shadow:var(--shadow-soft)}
.sidepanel{
  background:linear-gradient(180deg,#f8faf9 0%,#f4f7f6 100%);
  border-right:1px solid var(--line);
  padding:28px 20px;
}
.sidepanel-title{padding-bottom:22px;border-bottom:1px solid var(--line-strong);margin-bottom:20px}
.sidepanel-title strong{font-size:24px;line-height:1.15;letter-spacing:-.03em}
.sidepanel-title p{margin:8px 0 0;color:var(--muted);font-size:13px;line-height:1.5}
.eyebrow{font-size:11px;letter-spacing:.14em;color:var(--green-dark);font-weight:800;text-transform:uppercase}
.nav-list{gap:8px}
.nav-list a{
  display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;color:#334155;font-weight:600;transition:all .16s ease;
}
.nav-list a .icon{width:16px;height:16px;color:#7b8794}
.nav-list a:hover{background:#edf7f1;color:var(--green-deep)}
.nav-list a.active{background:#ffffff;color:#0f1728;box-shadow:var(--shadow-soft);border:1px solid var(--line)}
.nav-list a.active .icon{color:var(--green-deep)}
.nav-divider{height:1px;background:var(--line-strong);margin:12px 4px}
.main{background:transparent}
.topbar{
  height:86px;background:rgba(255,255,255,.82);backdrop-filter: blur(10px); border-bottom:1px solid var(--line);
  padding:0 32px;position:sticky;top:0;z-index:5;
}
.topbar h1{font-size:34px;line-height:1.05;letter-spacing:-.045em;font-weight:800}
.crumb{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#8b97a3}
.topbar-actions{gap:16px}
.save-state{font-size:12px;color:var(--muted);background:#f1f7f4;padding:8px 12px;border-radius:999px;border:1px solid #dcefe4}
.content{padding:32px;max-width:1400px}
.flash{padding:14px 16px;border-radius:16px;border:1px solid transparent;box-shadow:var(--shadow-soft)}
.flash-success{background:#edfdf5;color:#0b5a38;border-color:#ccefdc}
.flash-error{background:#fff1f2;color:#9f1239;border-color:#fecdd3}
.btn{
  border:1px solid transparent;border-radius:14px;padding:11px 16px;gap:8px;font-weight:700;
  transition:all .15s ease;box-shadow:var(--shadow-soft);
}
.btn:hover{transform:translateY(-1px);filter:none}
.btn-primary{background:linear-gradient(180deg,#16c172,#11aa63);color:#fff;box-shadow:0 10px 20px rgba(22,193,114,.18)}
.btn-dark{background:#0f1728;color:#fff;box-shadow:0 12px 22px rgba(15,23,40,.12)}
.btn-light{background:#fff;color:#0f1728;border:1px solid var(--line)}
.btn-small{padding:8px 11px;border-radius:11px;font-size:12px}
.metric-grid{gap:18px;margin-bottom:32px}
.metric-card{
  border:1px solid var(--line);border-radius:22px;padding:22px;background:linear-gradient(180deg,#ffffff 0%,#fbfcfc 100%);box-shadow:var(--shadow);
}
.metric-card span{font-size:13px;color:var(--muted);font-weight:600}
.metric-card strong{font-size:40px;letter-spacing:-.05em}
.section-head{margin-bottom:18px}
.section-head h2{font-size:30px;letter-spacing:-.04em}
.section-head p{font-size:14px;line-height:1.55}
.table-card,.panel-form,.content-block,.publish-card,.inline-create-form,.property-card,.empty-card{
  border:1px solid var(--line);border-radius:22px;background:linear-gradient(180deg,#fff 0%,#fcfdfd 100%);box-shadow:var(--shadow);padding:20px;
}
.property-card-top strong{font-size:18px;letter-spacing:-.02em}
.property-meta{border-top:1px solid var(--line);margin-top:16px;padding-top:14px}
.table-card table,.content-block table{font-size:14px}
th{font-size:12px;color:#64748b;text-transform:none;letter-spacing:0;font-weight:700}
td,th{padding:14px 12px;border-bottom:1px solid #edf2ef}
tbody tr:hover{background:#fbfcfe}
.pill{background:#f1f5f9;padding:5px 10px;border-radius:999px;color:#334155;font-weight:700}
label{gap:7px;font-weight:700;color:#1f2937}
label > .help-text, .field-note, .field-help, small.help-text{font-size:12px;line-height:1.45;color:#6b7280;font-weight:500}
input,textarea,select{
  border:1px solid #d9e2dc;background:#fff;border-radius:14px;padding:12px 14px;color:#0f1728;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}
input:hover,textarea:hover,select:hover{border-color:#cbd5cf}
input:focus,textarea:focus,select:focus{border-color:#16c172;box-shadow:0 0 0 4px rgba(22,193,114,.12)}
textarea{min-height:108px}
.form-grid.two{gap:16px}.form-grid.three{gap:16px}.form-grid.four{gap:16px}
.check-line{align-self:center}
.plan-head{
  background:linear-gradient(180deg,#fff 0%,#fbfcfb 100%);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:16px 18px;
}
.plan-head-title h2{font-size:24px;letter-spacing:-.03em}
.wizard{gap:12px}
.wizard-step{
  border:1px solid var(--line);background:#fff;border-radius:18px;padding:14px 16px;display:flex;align-items:center;gap:12px;
  font-weight:700;color:#64748b;box-shadow:var(--shadow-soft)
}
.wizard-step em{font-style:normal}
.wizard-step .wizard-dot{
  width:30px;height:30px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#f5f7f8;color:#6b7280;font-size:12px;font-weight:800;border:1px solid var(--line)
}
.wizard-step.done{background:#edfdf5;color:#0b5a38;border-color:#ccefdc}
.wizard-step.done .wizard-dot{background:#16c172;color:#fff;border-color:#16c172}
.wizard-step.active{border-color:#16c172;color:#0f1728;box-shadow:0 0 0 3px rgba(22,193,114,.12), var(--shadow-soft)}
.wizard-step.active .wizard-dot{background:#fff;color:#16c172;border-color:#16c172}
.table-card .btn-light,.content-block .btn-light{background:#f8fafb}
.status-badge,.condition-preview{border-radius:999px;padding:5px 10px;font-weight:700}
.photo-card{border-radius:18px;border:1px solid var(--line);box-shadow:var(--shadow-soft);overflow:hidden;background:#fff}
.photo-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:#f3f5f7}
.drop-upload-zone{border-radius:18px;background:#fcfdfd;padding:18px}
.photo-section-message,.bbr-message,.notice{border-radius:16px}
@media (max-width: 1100px){
  .app-shell{grid-template-columns:76px 1fr}
  .sidepanel{display:none}
  .content{padding:20px}
  .metric-grid{grid-template-columns:1fr}
  .form-grid.two,.form-grid.three,.form-grid.four{grid-template-columns:1fr}
}
@media (max-width: 780px){
  .app-shell{grid-template-columns:1fr}
  .rail{display:none}
  .topbar{padding:16px 18px;height:auto;align-items:flex-start;gap:12px;flex-direction:column}
  .topbar h1{font-size:28px}
  .content{padding:16px}
}


/* v0.4.5 Huusly-inspired color polish */
:root{
  --bg:#f5f1ea;
  --panel:#fffdfa;
  --panel-soft:#f8f4ed;
  --line:#e8dfd3;
  --line-strong:#ddd1c2;
  --text:#243126;
  --muted:#6f756d;
  --green:#3a774d;
  --green-dark:#2f6c44;
  --green-deep:#275639;
  --orange:#ee6c2f;
  --orange-dark:#d95e23;
  --cream:#f2ece2;
  --soft:#f7f2ea;
  --black:#243126;
  --shadow:0 14px 34px rgba(64,52,40,.08);
  --shadow-soft:0 5px 18px rgba(64,52,40,.06);
}
html,body{background:var(--bg)}
body{
  background:
    radial-gradient(circle at top right, rgba(238,108,47,.07), transparent 24%),
    radial-gradient(circle at top left, rgba(58,119,77,.08), transparent 28%),
    linear-gradient(180deg,#f7f3ec 0%, #f3eee6 100%);
  color:var(--text);
}
a{color:var(--green-dark)}
a:hover{color:var(--orange-dark)}
.rail{
  background:linear-gradient(180deg,#fffdfa 0%,#f8f4ed 100%);
  border-right:1px solid var(--line);
}
.rail-logo{
  background:linear-gradient(135deg,var(--orange) 0%, var(--green) 100%);
  box-shadow:0 14px 22px rgba(58,119,77,.18);
}
.rail-item,.rail-avatar{color:#687063}
.rail-item:hover,.rail-item.active{
  background:#edf5ef;color:var(--green-deep);box-shadow:var(--shadow-soft)
}
.sidepanel{
  background:linear-gradient(180deg,#fbf7f1 0%,#f4efe7 100%);
  border-right:1px solid var(--line);
}
.sidepanel-title{border-bottom-color:var(--line-strong)}
.sidepanel-title strong{color:var(--green-deep)}
.eyebrow{color:var(--orange-dark)}
.nav-list a{
  color:#495246;
}
.nav-list a:hover{background:#f1eee7;color:var(--green-deep)}
.nav-list a.active{
  background:#fffdfa;
  border-color:var(--line);
  box-shadow:var(--shadow-soft);
  color:var(--green-deep);
}
.nav-list a.active .icon{color:var(--orange-dark)}
.nav-divider{background:var(--line-strong)}
.topbar{
  background:rgba(255,253,250,.88);
  border-bottom:1px solid var(--line);
}
.topbar h1{color:var(--green-deep)}
.crumb{color:#908473}
.save-state{
  background:#f0eee7;border-color:#dfd6cb;color:#6e756d
}
.flash-success{background:#eef7f0;color:#28553a;border-color:#d5e7d8}
.flash-error{background:#fff3ef;color:#9b3b1a;border-color:#f4cabb}
.btn{
  border-radius:15px;
}
.btn-primary{
  background:linear-gradient(180deg,var(--green) 0%, var(--green-dark) 100%);
  color:#fff;
  box-shadow:0 12px 22px rgba(58,119,77,.18);
}
.btn-primary:hover{box-shadow:0 14px 26px rgba(58,119,77,.22)}
.btn-dark{
  background:linear-gradient(180deg,var(--orange) 0%, var(--orange-dark) 100%);
  color:#fff;
  box-shadow:0 12px 22px rgba(238,108,47,.18);
}
.btn-light{
  background:#fffdfa;border:1px solid var(--line);color:var(--green-deep)
}
.btn-ai{
  background:#fff4ee;color:var(--orange-dark);border:1px solid #f5cfbe;box-shadow:none
}
.metric-card,.table-card,.panel-form,.content-block,.publish-card,.inline-create-form,.property-card,.empty-card,.plan-head,.budget-wrap{
  background:linear-gradient(180deg,#fffdfa 0%, #fcfaf6 100%);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}
.metric-card{position:relative;overflow:hidden;padding-top:24px}
.metric-card::before{
  content:'';position:absolute;left:20px;top:0;width:84px;height:5px;border-radius:0 0 8px 8px;background:var(--green)
}
.metric-card:nth-child(2)::before{background:var(--orange)}
.metric-card:nth-child(3)::before{background:#7ba884}
.metric-card strong{color:var(--green-deep)}
.section-head h2,.publish-card h2,.plan-head strong{color:var(--green-deep)}
.section-head p,.hint,.property-card p,.property-card-top span,.property-meta,.sidepanel-title p{color:var(--muted)}
.property-card-top strong{color:var(--green-deep)}
.property-meta{border-top-color:var(--line)}
table{background:transparent}
th{
  color:#7a7369;font-size:12px;font-weight:800;
}
td,th{border-bottom:1px solid #efe8de}
tbody tr:hover{background:#fffcf7}
.empty-card{color:var(--muted)}
.form-grid label,
.panel-form label,
.inline-create-form label{color:var(--green-deep)}
label > small,
label .field-help,
label .help-text,
label span.help,
label .muted,
.form-grid .help,
.form-stack .help{
  color:var(--muted);font-weight:500
}
input,textarea,select{
  background:#fffdfa;border:1px solid #ddd3c6;color:var(--text)
}
input::placeholder,textarea::placeholder{color:#a0968a}
input:focus,textarea:focus,select:focus{border-color:var(--green);box-shadow:0 0 0 4px rgba(58,119,77,.12)}
.check-line{color:var(--green-deep)}
.plan-head{border-radius:24px}
.wizard-step{
  background:#fbf7f1;border:1px solid var(--line);color:#7c7468
}
.wizard-step .wizard-dot{background:#fffdfa;border-color:#ddd3c6;color:#8f8373}
.wizard-step.done{
  background:#eef7f0;border-color:#d1e4d6;color:var(--green-deep)
}
.wizard-step.done .wizard-dot{background:var(--green);border-color:var(--green);color:#fff}
.wizard-step.active{
  background:#fffdfa;border-color:#b9d7c3;box-shadow:0 0 0 4px rgba(58,119,77,.10), var(--shadow-soft)
}
.wizard-step.active .wizard-dot{background:#fff4ee;border-color:#f2c2ad;color:var(--orange-dark)}
.budget-wrap{border-radius:22px}
.budget-table tfoot tr:first-child th{background:#b8e2c2;color:#1f412b}
.budget-table tfoot tr:last-child th{background:var(--green-deep);color:#fff}
.upload-bar,.drop-upload-zone{
  background:#fffdfa;border-color:#ddd3c6
}
.drop-upload.is-dragover .drop-upload-zone{
  border-color:var(--orange);background:#fff5ef;box-shadow:0 0 0 4px rgba(238,108,47,.10)
}
.photo-card{
  background:#fffdfa;border:1px solid var(--line);box-shadow:var(--shadow-soft)
}
.photo-card img{background:#f1ece3}
.photo-card-bottom a{color:var(--orange-dark);font-weight:700}
.bbr-panel{
  background:linear-gradient(180deg,#fffdfa 0%,#fcfaf6 100%);border:1px solid var(--line);box-shadow:var(--shadow)
}
.bbr-result:hover,.bbr-result.active{border-color:#d9cbb9;background:#fcf7f0}
.bbr-preview-head h3,.bbr-result strong{color:var(--green-deep)}
.bbr-notes,.photo-section-message,.notice{background:#eef7f0;border-color:#d5e7d8;color:#28553a}
.publish-card p{max-width:680px;margin-inline:auto}
.condition-preview,
.status-badge,
.pill{
  background:#f4efe7;color:#4e544f
}
.login-body{
  background:radial-gradient(circle at 20% 20%, rgba(58,119,77,.12), transparent 28%), radial-gradient(circle at 80% 20%, rgba(238,108,47,.10), transparent 24%), linear-gradient(180deg,#f7f3ec 0%,#f2ece2 100%)
}
.login-card{background:linear-gradient(180deg,#fffdfa 0%,#fcfaf6 100%);border:1px solid var(--line);box-shadow:0 24px 80px rgba(64,52,40,.10)}
.login-brand{color:var(--orange-dark)}
/* clickable action cells */
.actions .btn-small,.table-card .btn-small{background:#f1eee7;border:1px solid #e0d5c8;color:var(--green-deep)}
.actions .btn-small:hover,.table-card .btn-small:hover{background:#fff4ee;color:var(--orange-dark);border-color:#f2c2ad}
/* stronger contrast for primary page buttons on overview pages */
.section-head .btn-primary,.card-actions .btn-primary,.plan-head .btn-primary{padding-inline:18px}
@media (max-width:1100px){
  .topbar h1{font-size:30px}
}


/* v0.4.6 UI bug fixes + extra polish */
/* Prevent global anchor hover colors from leaking into buttons */
a.btn, a.btn:hover, button.btn, button.btn:hover{ text-decoration:none; }
.btn{transition:transform .16s ease, box-shadow .16s ease, filter .16s ease, background-color .16s ease, border-color .16s ease, color .16s ease}
.btn:hover{filter:none; transform:translateY(-1px)}
.btn-primary, a.btn-primary{color:#fff!important}
.btn-primary:hover, a.btn-primary:hover{color:#fff!important; background:linear-gradient(180deg,#45885a 0%, #356f48 100%); box-shadow:0 16px 28px rgba(58,119,77,.24)}
.btn-dark, a.btn-dark{color:#fff!important}
.btn-dark:hover, a.btn-dark:hover{color:#fff!important; background:linear-gradient(180deg,#f07b42 0%, #d85e24 100%); box-shadow:0 16px 28px rgba(238,108,47,.24)}
.btn-light, a.btn-light{color:var(--green-deep)!important}
.btn-light:hover, a.btn-light:hover{color:var(--green-deep)!important; background:#f7f1e9; border-color:#d7c8b6; box-shadow:var(--shadow-soft)}
.btn-ai, a.btn-ai{color:var(--orange-dark)!important}
.btn-ai:hover, a.btn-ai:hover{color:var(--orange-dark)!important; background:#ffefe6; border-color:#efc0ab}
.btn-small{font-weight:700}

/* General visual polish */
.content{max-width:1440px}
.section-head{margin-bottom:22px}
.section-head h2{font-size:34px; letter-spacing:-.045em}
.topbar h1{letter-spacing:-.045em}
.sidepanel-title strong{font-size:18px}
.sidepanel-title p{line-height:1.55}
.nav-list a{border:1px solid transparent}
.nav-list a:hover{border-color:#e5ddcf}
.rail-item .icon svg, .nav-list .icon svg{stroke-width:0}

/* Cards */
.metric-grid{gap:20px}
.metric-card{border-radius:24px; padding:24px; min-height:138px}
.metric-card span{font-size:13px; font-weight:700; text-transform:none}
.metric-card strong{font-size:42px; line-height:1}
.property-card, .table-card, .panel-form, .content-block, .publish-card, .inline-create-form, .budget-wrap, .bbr-panel{border-radius:24px}
.property-card{transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; position:relative; overflow:hidden}
.property-card::after{content:''; position:absolute; left:0; right:0; top:0; height:5px; background:linear-gradient(90deg,var(--green) 0%, var(--orange) 100%); opacity:.88}
.property-card:hover{transform:translateY(-3px); border-color:#d7c8b6; box-shadow:0 18px 34px rgba(64,52,40,.10)}
.property-card-top{align-items:flex-start}
.property-card-top strong{font-size:18px}
.property-card p{line-height:1.55}
.card-actions{margin-top:18px}
.card-actions .btn{min-width:96px; justify-content:center}

/* Table polish */
.table-card table, .content-block table{border-collapse:separate; border-spacing:0}
.table-card thead th, .content-block thead th{background:#faf5ee; position:sticky; top:0; z-index:1}
.table-card th:first-child{border-top-left-radius:14px}
.table-card th:last-child{border-top-right-radius:14px}
.table-card td, .table-card th{padding:14px 12px}
.table-card tbody tr:hover td{background:#fffaf4}
.actions .btn-small,.table-card .btn-small{border-radius:12px}

/* Form polish */
label{font-size:13px; letter-spacing:-.01em}
input, textarea, select{border-radius:15px}
textarea{line-height:1.55}
.form-actions{margin-top:10px}
.hint{line-height:1.55}
.upload-bar{border-radius:20px; background:#fffaf4}
.photo-card{border-radius:20px}
.photo-card img{border-radius:14px}

/* Wizard + plan header */
.plan-head{padding:16px 18px; border-radius:24px}
.plan-head strong{font-size:18px}
.wizard{gap:10px}
.wizard-step{border-radius:18px; padding:14px 14px; font-size:13px}
.wizard-step.active{background:#fffdf9}
.wizard-step em{font-style:normal; font-weight:700}

/* Budget table */
.budget-wrap{padding:18px 18px 10px}
.budget-table{min-width:1020px}
.budget-table tfoot th{padding-top:12px; padding-bottom:12px}

/* Topbar pill */
.save-state{border-radius:999px; padding:10px 14px; font-weight:600}

/* Helper notice cards */
.notice, .photo-section-message, .bbr-notes{border-radius:18px; padding:14px 16px}

/* Responsive tweaks */
@media (max-width: 980px){
  .section-head h2{font-size:28px}
  .metric-card strong{font-size:34px}
}


/* v0.4.7 dark green navigation + richer content icons */
:root{
  --sidebar-deep:#234a33;
  --sidebar-deeper:#1d3f2b;
  --sidebar-soft:#315b42;
  --sidebar-border:rgba(255,255,255,.12);
}
body{
  background:
    radial-gradient(circle at top right, rgba(238,108,47,.07), transparent 24%),
    radial-gradient(circle at top left, rgba(58,119,77,.07), transparent 26%),
    linear-gradient(180deg,#f7f3ec 0%, #f3eee6 100%);
}
.rail{
  background:linear-gradient(180deg,var(--sidebar-deep) 0%, var(--sidebar-deeper) 100%);
  border-right:1px solid var(--sidebar-border);
}
.rail-logo{
  background:linear-gradient(135deg,var(--orange) 0%, #ceb38e 100%);
  color:#fff; box-shadow:0 16px 26px rgba(0,0,0,.18)
}
.rail-item,.rail-avatar{color:rgba(255,255,255,.78)}
.rail-item:hover,.rail-item.active{background:rgba(255,255,255,.14); color:#fff; box-shadow:none}
.rail-avatar{background:rgba(255,255,255,.18); border:1px solid rgba(255,255,255,.16)}
.sidepanel{
  background:linear-gradient(180deg,var(--sidebar-deep) 0%, #29533a 100%);
  border-right:1px solid var(--sidebar-border);
  color:rgba(255,255,255,.9);
}
.sidepanel-title{border-bottom-color:rgba(255,255,255,.12)}
.sidepanel-title strong,.sidepanel-title p,.eyebrow{color:#fff}
.sidepanel-title p{opacity:.78}
.eyebrow{opacity:.72; letter-spacing:.12em}
.nav-divider{background:rgba(255,255,255,.12)}
.nav-list a{color:rgba(255,255,255,.86)}
.nav-list a .icon{color:rgba(255,255,255,.72)}
.nav-list a:hover{background:rgba(255,255,255,.10); border-color:rgba(255,255,255,.08); color:#fff}
.nav-list a:hover .icon{color:#ffd9c7}
.nav-list a.active{
  background:#fffdfa; color:var(--green-deep); border-color:#efe4d5; box-shadow:0 14px 26px rgba(0,0,0,.12)
}
.nav-list a.active .icon{color:var(--orange-dark)}
.topbar{background:rgba(255,253,250,.92)}
.content{padding-top:34px}
.section-head h2.with-icon,
.publish-card h2.with-icon,
.section-head.compact h2.with-icon{
  display:flex; align-items:center; gap:12px;
}
.section-icon-badge{
  width:42px; height:42px; border-radius:14px; display:inline-flex; align-items:center; justify-content:center;
  background:linear-gradient(180deg,#fff6f0 0%, #ffe7d9 100%);
  color:var(--orange-dark); box-shadow:0 10px 22px rgba(238,108,47,.14); border:1px solid #f3d3c2;
  flex:0 0 42px;
}
.section-icon-badge .icon{display:flex}
.metric-card{overflow:hidden}
.metric-card-icon{
  position:absolute; right:20px; top:18px; width:48px; height:48px; border-radius:16px; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(180deg,#f8f2e9 0%, #fffdfa 100%); color:var(--green-deep); border:1px solid var(--line);
  box-shadow:var(--shadow-soft);
}
.metric-card-icon .icon{display:flex}
.metric-card strong{padding-right:58px}
.property-card-top{position:relative}
.property-card-accent{
  margin-left:auto; width:38px; height:38px; border-radius:14px; display:inline-flex; align-items:center; justify-content:center;
  background:#f1f6f2; color:var(--green-deep); border:1px solid #d8e6dc;
}
.property-card-accent .icon{display:flex}
.table-card::before,.budget-wrap::before{
  content:''; display:block; height:5px; width:100%; background:linear-gradient(90deg,var(--green) 0%, var(--orange) 100%); border-radius:18px 18px 0 0; margin:-24px -24px 18px;
}
.budget-wrap::before{margin:-18px -18px 16px}
.table-card, .budget-wrap{overflow:hidden}
.table-card thead th,.content-block thead th{background:#f8f2ea}
.table-card tbody td:first-child strong{color:var(--green-deep)}
.condition-mark{box-shadow:0 0 0 1px rgba(0,0,0,.03)}
.plan-head{background:linear-gradient(180deg,#fffdfa 0%, #f9f4ec 100%)}
.wizard-step{background:#f7f1e9}
.wizard-step.active{border-color:#d6c8b7}
.actions .btn-small,.table-card .btn-small{background:#f7f3ed}
.actions .btn-small:hover,.table-card .btn-small:hover{background:#eef6f0; color:var(--green-deep); border-color:#d4e4d8}
@media (max-width: 980px){
  .sidepanel{background:linear-gradient(180deg,var(--sidebar-deep) 0%, #29533a 100%)}
}


/* v0.4.8 property cover image in stamdata */
.property-hero-upload{
  margin:18px 0 22px;
  padding:18px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  box-shadow:var(--shadow-soft);
}
.property-cover-card{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:18px;
  margin-top:14px;
  align-items:start;
}
.property-cover-card img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  border-radius:18px;
  background:#f1ece3;
  border:1px solid var(--line);
}
.property-cover-card-body{
  background:#fcfaf6;
  border:1px solid #e9dfd2;
  border-radius:18px;
  padding:16px;
}
.property-cover-card-body strong{display:block;margin-bottom:6px;color:var(--green-deep)}
.property-cover-card-body p{margin:0 0 12px;color:var(--muted)}
.checkbox-inline{display:flex;gap:10px;align-items:center;font-weight:600;color:var(--text)}
.checkbox-inline input{width:auto;margin:0}
@media (max-width: 820px){
  .property-cover-card{grid-template-columns:1fr}
}


/* v0.4.9 exact brand colors */
:root {
  --green:#346643;
  --green-dark:#346643;
  --green-deep:#346643;
  --sidebar-deep:#346643;
  --sidebar-deeper:#346643;
  --sidebar-soft:#3f7651;
  --orange:#ee541e;
  --orange-dark:#ee541e;
}

.rail,
.sidepanel {
  background:linear-gradient(180deg,#346643 0%, #2b5738 100%) !important;
}

.btn-primary,
a.btn-primary {
  background:#346643 !important;
  color:#fff !important;
}

.btn-primary:hover,
a.btn-primary:hover {
  background:#2b5738 !important;
  color:#fff !important;
}

.btn-dark,
a.btn-dark,
.bbr-search .btn-dark {
  background:#ee541e !important;
  color:#fff !important;
}

.btn-dark:hover,
a.btn-dark:hover,
.bbr-search .btn-dark:hover {
  background:#d94a19 !important;
  color:#fff !important;
}

.rail-logo {
  background:linear-gradient(135deg,#ee541e 0%, #346643 100%) !important;
}

.eyebrow,
.cover-kicker,
.nav-list a.active .icon,
.section-icon-badge,
.photo-card-bottom a,
a:hover {
  color:#ee541e;
}

.topbar h1,
.section-head h2,
.section-head h2.with-icon,
.publish-card h2,
.plan-head strong,
.property-card-top strong,
.table-card tbody td:first-child strong,
.sidepanel-title strong {
  color:#346643;
}

.metric-card::before,
.property-card::after,
.table-card::before,
.budget-wrap::before {
  background:linear-gradient(90deg,#346643 0%, #ee541e 100%) !important;
}

.section-icon-badge {
  color:#ee541e;
  background:#fff3ed;
  border-color:#f4c7b5;
}

input:focus,
textarea:focus,
select:focus {
  border-color:#346643 !important;
  box-shadow:0 0 0 4px rgba(52,102,67,.14) !important;
}

.wizard-step.done .wizard-dot {
  background:#346643 !important;
  border-color:#346643 !important;
}

.budget-table tfoot tr:last-child th {
  background:#346643 !important;
}



/* v0.5.0 portfolio tasks/economy */
.metric-grid.four{grid-template-columns:repeat(4, minmax(0,1fr))}
.filter-card{
  display:grid;
  grid-template-columns:1.2fr .8fr .9fr .9fr 1.4fr auto;
  gap:14px;
  align-items:end;
  background:#fffdfa;
  border:1px solid var(--line);
  border-radius:24px;
  padding:18px;
  box-shadow:var(--shadow);
  margin:0 0 24px;
}
.filter-card label{display:flex;flex-direction:column;gap:7px}
.filter-actions{display:flex;gap:8px;align-items:center}
.muted-small{display:inline-block;color:var(--muted);font-size:12px;line-height:1.35;margin-top:2px}
.priority-badge,.status-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:26px;
  padding:5px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:800;
  border:1px solid transparent;
  white-space:nowrap;
}
.priority-acute{background:#fff1f2;color:#a31636;border-color:#ffd1d9}
.priority-necessary{background:#fff4ed;color:#b63a12;border-color:#ffd0bd}
.priority-normal{background:#eef7f0;color:#346643;border-color:#cfe5d5}
.priority-beneficial{background:#f7f1e8;color:#7b5f2a;border-color:#ead7b7}
.status-planned{background:#f6f1e9;color:#5f5547;border-color:#e7dccf}
.status-in_progress{background:#fff4ed;color:#ee541e;border-color:#f7c5b2}
.status-done{background:#eef7f0;color:#346643;border-color:#cfe5d5}
.status-cancelled{background:#f1f2f1;color:#66706a;border-color:#dfe4e0}
.content-grid.two{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px;
  margin-bottom:22px;
}
.mini-head{margin-bottom:16px}
.mini-head h3{margin:0 0 5px;color:var(--green);font-size:22px;letter-spacing:-.03em}
.mini-head p{margin:0;color:var(--muted);line-height:1.5}
.export-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.export-note{margin-top:22px}
.export-note p{margin:5px 0 0;color:inherit}
@media (max-width: 1200px){
  .metric-grid.four{grid-template-columns:repeat(2, minmax(0,1fr))}
  .filter-card{grid-template-columns:1fr 1fr}
  .filter-actions{grid-column:1/-1}
  .content-grid.two{grid-template-columns:1fr}
}
@media (max-width: 700px){
  .metric-grid.four{grid-template-columns:1fr}
  .filter-card{grid-template-columns:1fr}
}


/* v0.5.1 navigation cleanup, property dashboard, backup and deletion */
.sidepanel-context{padding:16px;border:1px solid rgba(255,255,255,.14);border-radius:18px;background:rgba(255,255,255,.08);color:#fff;line-height:1.55}
.sidepanel-context strong{display:block;margin-bottom:8px;font-size:15px}.sidepanel-context p{margin:0;color:rgba(255,255,255,.78);font-size:13px}
.btn-danger,a.btn-danger{background:#b42318!important;color:#fff!important;border-color:#b42318!important;box-shadow:0 12px 22px rgba(180,35,24,.14)}
.btn-danger:hover,a.btn-danger:hover{background:#971d13!important;color:#fff!important}
.property-hero-overview{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:22px;padding:22px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(180deg,#fffdfa 0%,#f9f4ec 100%);box-shadow:var(--shadow)}
.property-hero-overview h2{margin:0;color:var(--green);font-size:34px;letter-spacing:-.045em}.property-hero-overview p{margin:6px 0 0;color:var(--muted)}.property-hero-actions{display:flex;gap:10px;flex-wrap:wrap}
.task-status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0}.task-status-grid div{padding:16px;border-radius:18px;background:#faf5ee;border:1px solid var(--line);text-align:center}.task-status-grid strong{display:block;color:var(--green);font-size:30px;line-height:1}.task-status-grid span{display:block;color:var(--muted);font-size:12px;margin-top:4px;font-weight:700}
.condition-dashboard-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:16px 0}.condition-dashboard-grid div{padding:14px;border-radius:16px;background:#faf5ee;border:1px solid var(--line);text-align:center}.condition-dashboard-grid .condition-mark{margin:0 auto 8px;display:block}.condition-dashboard-grid strong{display:block;font-size:24px;color:var(--green)}.condition-dashboard-grid em{font-style:normal;color:var(--muted);font-size:11px;font-weight:700}
.mini-bar-chart{display:flex;align-items:end;gap:10px;min-height:190px;padding-top:20px;overflow:auto}.mini-bar-col{min-width:72px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:end;gap:6px}.mini-bar{width:28px;border-radius:999px;background:linear-gradient(180deg,var(--orange) 0%, var(--green) 100%);box-shadow:0 8px 18px rgba(52,102,67,.14)}.mini-bar-col span{font-size:12px;font-weight:800;color:var(--green)}.mini-bar-col em{font-style:normal;font-size:11px;color:var(--muted);white-space:nowrap}
.energy-card-display{min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border-radius:22px;background:#fff4ee;border:1px solid #f4c7b5}.energy-card-display strong{font-size:88px;line-height:1;color:var(--orange);letter-spacing:-.06em}.energy-card-display span{color:var(--muted);font-weight:700}.energy-card-display a{margin-top:12px;font-weight:800;color:var(--green)}.empty-energy{background:#f8f2ea}.empty-energy strong{color:#c8bbaa}
.empty-inline{color:var(--muted);padding:12px 0}.danger-card{max-width:760px;border:1px solid #f3b8ad;background:#fff7f5;border-radius:24px;padding:24px;box-shadow:var(--shadow)}.danger-card h2{color:#b42318}.confirm-delete-form{display:grid;gap:16px}.backup-import-form{display:grid;gap:14px}.notice.warning{background:#fff7ed;border-color:#fed7aa;color:#9a3412}
@media(max-width:980px){.property-hero-overview{flex-direction:column;align-items:flex-start}.task-status-grid,.condition-dashboard-grid{grid-template-columns:repeat(2,1fr)}}


/* v0.5.2 clean global menu + user profile */
.app-shell.has-sidepanel{grid-template-columns:76px 270px 1fr}
.app-shell.no-sidepanel{grid-template-columns:76px 1fr}
.rail-avatar{
  overflow:hidden;
  border:1px solid rgba(255,255,255,.18);
}
.rail-avatar img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.rail-avatar.active,
.rail-logout:hover{
  background:rgba(255,255,255,.14);
  color:#fff;
}
.rail-logout{
  margin-top:4px;
}
.profile-avatar-preview{
  display:flex;
  align-items:center;
  gap:16px;
  padding:16px;
  border:1px solid var(--line);
  border-radius:20px;
  background:#fffaf4;
  margin-bottom:16px;
}
.profile-avatar-preview img,
.profile-avatar-preview > span{
  width:72px;
  height:72px;
  border-radius:22px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#edf5ef;
  color:var(--green-deep);
  border:1px solid #d8e6dc;
  overflow:hidden;
  flex:0 0 72px;
}
.profile-avatar-preview img{
  object-fit:cover;
}
.profile-avatar-preview .icon,
.profile-avatar-preview svg{
  width:30px;
  height:30px;
}
.profile-avatar-preview strong{
  color:var(--green-deep);
  font-size:18px;
}
.profile-avatar-preview p{
  margin:4px 0 0;
  color:var(--muted);
}
.form-stack{
  display:grid;
  gap:14px;
}
@media (max-width:1100px){
  .app-shell.has-sidepanel,
  .app-shell.no-sidepanel{grid-template-columns:76px 1fr}
}
@media (max-width:780px){
  .app-shell.has-sidepanel,
  .app-shell.no-sidepanel{grid-template-columns:1fr}
}


/* v0.5.3 flat dark green UI cleanup
   - removes cheap green/orange gradients
   - darkens the main green
   - improves contrast in left menus
*/
:root{
  --green:#123b2a;
  --green-dark:#0f3325;
  --green-deep:#0b281d;
  --sidebar-deep:#123b2a;
  --sidebar-deeper:#0f3325;
  --sidebar-soft:#1f5039;
  --orange:#ee541e;
  --orange-dark:#d84a19;
  --bg:#f4efe7;
  --panel:#fffdf8;
  --panel-soft:#f8f2ea;
  --line:#e5d9c9;
  --line-strong:#d7c8b6;
  --text:#1d2a22;
  --muted:#6d756f;
  --shadow:0 14px 34px rgba(36,49,38,.08);
  --shadow-soft:0 5px 18px rgba(36,49,38,.06);
}

html,
body{
  background:#f4efe7 !important;
  color:var(--text);
}

body{
  background:#f4efe7 !important;
}

/* Remove gradient look everywhere important */
.rail,
.sidepanel,
.topbar,
.metric-card,
.table-card,
.panel-form,
.content-block,
.publish-card,
.inline-create-form,
.property-card,
.empty-card,
.plan-head,
.budget-wrap,
.bbr-panel,
.login-card,
.btn-primary,
.btn-dark,
.rail-logo,
.section-icon-badge,
.metric-card-icon,
.property-card-accent,
.profile-avatar-preview img,
.profile-avatar-preview > span{
  background-image:none !important;
}

/* Dark green left navigation with real contrast */
.rail,
.sidepanel{
  background:var(--sidebar-deep) !important;
  color:#fff !important;
  border-color:rgba(255,255,255,.14) !important;
}

.rail-logo{
  background:var(--orange) !important;
  color:#fff !important;
  box-shadow:none !important;
}

.rail-item,
.rail-avatar,
.rail-logout{
  color:#fff !important;
  background:transparent !important;
  opacity:.82;
}

.rail-item .icon,
.rail-avatar .icon,
.rail-logout .icon,
.rail-item svg,
.rail-avatar svg,
.rail-logout svg{
  color:#fff !important;
  fill:#fff !important;
}

.rail-item:hover,
.rail-item.active,
.rail-avatar:hover,
.rail-avatar.active,
.rail-logout:hover{
  background:rgba(255,255,255,.16) !important;
  color:#fff !important;
  opacity:1;
  box-shadow:none !important;
}

.sidepanel-title,
.sidepanel-title strong,
.sidepanel-title p,
.sidepanel .eyebrow,
.sidepanel-context,
.sidepanel-context strong,
.sidepanel-context p{
  color:#fff !important;
}

.sidepanel-title{
  border-bottom-color:rgba(255,255,255,.18) !important;
}

.sidepanel-title p,
.sidepanel-context p{
  opacity:.84;
}

.nav-list a{
  color:#fff !important;
  background:transparent !important;
  border-color:transparent !important;
  opacity:.84;
}

.nav-list a .icon,
.nav-list a svg{
  color:#fff !important;
  fill:#fff !important;
}

.nav-list a:hover,
.nav-list a.active{
  color:#fff !important;
  background:rgba(255,255,255,.14) !important;
  border-color:rgba(255,255,255,.16) !important;
  opacity:1;
  box-shadow:none !important;
}

.nav-list a:hover .icon,
.nav-list a.active .icon,
.nav-list a:hover svg,
.nav-list a.active svg{
  color:#fff !important;
  fill:#fff !important;
}

.nav-divider{
  background:rgba(255,255,255,.18) !important;
}

/* Topbar and layout */
.topbar{
  background:#fffdf8 !important;
  border-bottom:1px solid var(--line) !important;
}

.topbar h1,
.section-head h2,
.section-head h2.with-icon,
.publish-card h2,
.plan-head strong,
.property-card-top strong,
.table-card tbody td:first-child strong,
.metric-card strong{
  color:var(--green-deep) !important;
}

.crumb{
  color:#8b7b6a !important;
}

.save-state{
  background:#f5efe6 !important;
  border-color:#dfd2c1 !important;
  color:#5f685f !important;
}

/* Cards: flat, premium, no colored gradient stripe */
.metric-card,
.table-card,
.panel-form,
.content-block,
.publish-card,
.inline-create-form,
.property-card,
.empty-card,
.plan-head,
.budget-wrap,
.bbr-panel{
  background:var(--panel) !important;
  border-color:var(--line) !important;
  box-shadow:var(--shadow) !important;
}

.metric-card::before,
.property-card::after,
.table-card::before,
.budget-wrap::before{
  background:var(--green) !important;
  background-image:none !important;
}

.metric-card:nth-child(2)::before,
.metric-card:nth-child(3)::before{
  background:var(--green) !important;
}

/* Buttons: flat colors, stronger contrast */
.btn-primary,
a.btn-primary,
button.btn-primary{
  background:var(--green) !important;
  border-color:var(--green) !important;
  color:#fff !important;
  box-shadow:0 10px 18px rgba(18,59,42,.18) !important;
}

.btn-primary:hover,
a.btn-primary:hover,
button.btn-primary:hover{
  background:var(--green-dark) !important;
  border-color:var(--green-dark) !important;
  color:#fff !important;
  box-shadow:0 12px 22px rgba(18,59,42,.22) !important;
}

.btn-dark,
a.btn-dark,
button.btn-dark{
  background:var(--orange) !important;
  border-color:var(--orange) !important;
  color:#fff !important;
  box-shadow:0 10px 18px rgba(238,84,30,.18) !important;
}

.btn-dark:hover,
a.btn-dark:hover,
button.btn-dark:hover{
  background:var(--orange-dark) !important;
  border-color:var(--orange-dark) !important;
  color:#fff !important;
  box-shadow:0 12px 22px rgba(238,84,30,.22) !important;
}

.btn-light,
a.btn-light,
button.btn-light{
  background:#fffdf8 !important;
  border-color:#d9caba !important;
  color:var(--green-deep) !important;
}

.btn-light:hover,
a.btn-light:hover,
button.btn-light:hover{
  background:#f7f0e6 !important;
  color:var(--green-deep) !important;
  border-color:#cab8a3 !important;
}

/* Icon badges: flat and quieter */
.section-icon-badge,
.metric-card-icon,
.property-card-accent{
  background:#f8efe6 !important;
  color:var(--orange) !important;
  border-color:#ecd4c5 !important;
  box-shadow:none !important;
}

.section-icon-badge svg,
.metric-card-icon svg,
.property-card-accent svg{
  fill:currentColor !important;
}

/* Forms and tables */
input,
textarea,
select{
  background:#fffdf8 !important;
  border-color:#d8caba !important;
}

input:focus,
textarea:focus,
select:focus{
  border-color:var(--green) !important;
  box-shadow:0 0 0 4px rgba(18,59,42,.14) !important;
}

.table-card thead th,
.content-block thead th{
  background:#f5eee5 !important;
}

.table-card tbody tr:hover td{
  background:#fff9f1 !important;
}

.priority-badge.priority-normal,
.status-badge.status-planned{
  background:#eef5ef !important;
  color:var(--green-deep) !important;
  border-color:#d2e3d6 !important;
}

.wizard-step.done .wizard-dot,
.budget-table tfoot tr:last-child th{
  background:var(--green) !important;
  border-color:var(--green) !important;
}

.wizard-step.active{
  border-color:var(--green) !important;
  box-shadow:0 0 0 4px rgba(18,59,42,.11), var(--shadow-soft) !important;
}

/* Avoid orange hover on green text links inside buttons */
a.btn:hover{
  text-decoration:none !important;
}



/* v0.5.4 brutal gradient cleanup + plan archive in sidepanel */
:root{
  --green:#103724;
  --green-dark:#0c2d1d;
  --green-deep:#082316;
  --sidebar-deep:#103724;
  --sidebar-deeper:#0c2d1d;
  --sidebar-soft:#1c4a33;
  --orange:#ee541e;
  --orange-dark:#d84a19;
  --bg:#f4efe7;
  --panel:#fffdf8;
  --panel-soft:#f8f2ea;
  --line:#e5d9c9;
  --line-strong:#d7c8b6;
  --text:#18251d;
  --muted:#687167;
}

/* Kill all CSS gradients/background images in the application UI */
.app-shell *,
.app-shell *::before,
.app-shell *::after,
.login-body *,
.login-body *::before,
.login-body *::after{
  background-image:none !important;
}

html,
body{
  background:#f4efe7 !important;
}

body{
  background:#f4efe7 !important;
}

/* Left menus: flat, dark, high contrast */
.rail,
.sidepanel{
  background:#103724 !important;
  color:#fff !important;
  border-color:rgba(255,255,255,.16) !important;
}

.rail-logo{
  background:#ee541e !important;
  color:#fff !important;
  box-shadow:none !important;
}

.rail-item,
.rail-avatar,
.rail-logout,
.nav-list a,
.sidepanel-title,
.sidepanel-title strong,
.sidepanel-title p,
.sidepanel .eyebrow{
  color:#fff !important;
}

.rail-item .icon,
.rail-avatar .icon,
.rail-logout .icon,
.nav-list a .icon,
.rail-item svg,
.rail-avatar svg,
.rail-logout svg,
.nav-list a svg{
  color:#fff !important;
  fill:#fff !important;
}

.rail-item,
.rail-avatar,
.rail-logout,
.nav-list a{
  background:transparent !important;
  opacity:.9;
}

.rail-item:hover,
.rail-item.active,
.rail-avatar:hover,
.rail-avatar.active,
.rail-logout:hover,
.nav-list a:hover,
.nav-list a.active{
  background:rgba(255,255,255,.15) !important;
  color:#fff !important;
  border-color:rgba(255,255,255,.18) !important;
  opacity:1;
  box-shadow:none !important;
}

/* Sidepanel report archive */
.sidepanel-plan-list{
  margin-top:22px;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.18);
}

.sidepanel-plan-list-title{
  margin:0 0 10px;
  color:rgba(255,255,255,.72);
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.12em;
}

.sidepanel-plan-list a{
  display:grid;
  grid-template-columns:52px 1fr;
  gap:10px;
  align-items:center;
  padding:10px 12px;
  border-radius:14px;
  color:#fff !important;
  background:transparent !important;
  border:1px solid transparent;
  opacity:.86;
}

.sidepanel-plan-list a:hover,
.sidepanel-plan-list a.active{
  background:rgba(255,255,255,.15) !important;
  border-color:rgba(255,255,255,.18);
  opacity:1;
}

.sidepanel-plan-list a span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:46px;
  padding:5px 7px;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  color:#fff;
  font-size:12px;
  font-weight:800;
}

.sidepanel-plan-list a small{
  color:rgba(255,255,255,.86);
  font-size:12px;
  line-height:1.25;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.sidepanel-plan-list p{
  margin:0;
  color:rgba(255,255,255,.72);
  font-size:13px;
}

/* Flat cards and page elements */
.topbar,
.metric-card,
.table-card,
.panel-form,
.content-block,
.publish-card,
.inline-create-form,
.property-card,
.empty-card,
.plan-head,
.budget-wrap,
.bbr-panel,
.filter-card,
.dashboard-card{
  background:#fffdf8 !important;
  border-color:#e5d9c9 !important;
}

.metric-card::before,
.property-card::after,
.table-card::before,
.budget-wrap::before{
  background:#103724 !important;
  background-image:none !important;
}

.metric-card:nth-child(2)::before,
.metric-card:nth-child(3)::before,
.metric-card:nth-child(4)::before{
  background:#103724 !important;
}

/* Buttons: solid, no gradients */
.btn-primary,
a.btn-primary,
button.btn-primary{
  background:#103724 !important;
  border-color:#103724 !important;
  color:#fff !important;
  box-shadow:0 10px 18px rgba(16,55,36,.18) !important;
}

.btn-primary:hover,
a.btn-primary:hover,
button.btn-primary:hover{
  background:#0c2d1d !important;
  border-color:#0c2d1d !important;
  color:#fff !important;
}

.btn-dark,
a.btn-dark,
button.btn-dark{
  background:#ee541e !important;
  border-color:#ee541e !important;
  color:#fff !important;
  box-shadow:0 10px 18px rgba(238,84,30,.16) !important;
}

.btn-dark:hover,
a.btn-dark:hover,
button.btn-dark:hover{
  background:#d84a19 !important;
  border-color:#d84a19 !important;
  color:#fff !important;
}

.btn-light,
a.btn-light,
button.btn-light{
  background:#fffdf8 !important;
  color:#103724 !important;
  border-color:#d9caba !important;
}

.section-icon-badge,
.metric-card-icon,
.property-card-accent{
  background:#f8efe6 !important;
  color:#ee541e !important;
  border-color:#ecd4c5 !important;
  box-shadow:none !important;
}

.topbar h1,
.section-head h2,
.section-head h2.with-icon,
.publish-card h2,
.plan-head strong,
.property-card-top strong,
.table-card tbody td:first-child strong,
.metric-card strong,
.content-block h2,
.dashboard-card h2,
.dashboard-card h3{
  color:#082316 !important;
}

input,
textarea,
select{
  background:#fffdf8 !important;
  border-color:#d8caba !important;
}

input:focus,
textarea:focus,
select:focus{
  border-color:#103724 !important;
  box-shadow:0 0 0 4px rgba(16,55,36,.13) !important;
}

.table-card thead th,
.content-block thead th{
  background:#f5eee5 !important;
}

.wizard-step.done .wizard-dot,
.budget-table tfoot tr:last-child th{
  background:#103724 !important;
  border-color:#103724 !important;
}

.wizard-step.active{
  border-color:#103724 !important;
  box-shadow:0 0 0 4px rgba(16,55,36,.11), var(--shadow-soft) !important;
}


/* v0.5.5 heading polish + remove repeated VRAP labels */
:root{
  --heading-font: Manrope, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.crumb,
.eyebrow{
  display:none !important;
}

/* Headings: cleaner, more premium */
.topbar h1,
.section-head h2,
.section-head h2.with-icon,
.publish-card h2,
.content-block h2,
.dashboard-card h2,
.dashboard-card h3,
.panel-form h2,
.panel-form h3,
.table-card h2,
.table-card h3,
.mini-head h3,
.plan-head strong,
.property-card-top strong,
.login-card h1,
h1,h2,h3{
  font-family:var(--heading-font) !important;
  letter-spacing:-.055em !important;
  font-weight:800 !important;
  color:var(--green-deep) !important;
  text-rendering:geometricPrecision;
}

.topbar h1{
  font-size:38px !important;
  line-height:.98 !important;
  margin:0 !important;
}

.section-head h2,
.section-head h2.with-icon{
  font-size:36px !important;
  line-height:1.02 !important;
}

.panel-form h3,
.table-card h3,
.mini-head h3{
  font-size:24px !important;
  line-height:1.08 !important;
}

.property-card-top strong,
.plan-head strong{
  font-size:20px !important;
  line-height:1.1 !important;
}

.sidepanel-title{
  padding-top:4px;
}

.sidepanel-title strong{
  font-family:var(--heading-font) !important;
  letter-spacing:-.04em !important;
  font-size:22px !important;
  line-height:1.08 !important;
  color:#fff !important;
}

.section-head p,
.mini-head p,
.panel-form p,
.table-card p{
  max-width:760px;
}

/* Topbar now only shows the page title, so give it better balance */
.topbar{
  height:86px;
}

.topbar > div:first-child{
  display:flex;
  align-items:center;
}

/* More elegant page title rhythm after removing crumb */
.content > .section-head:first-child{
  margin-top:2px;
}

@media (max-width: 980px){
  .topbar h1{
    font-size:32px !important;
  }
  .section-head h2,
  .section-head h2.with-icon{
    font-size:30px !important;
  }
}

/* v0.5.6 demo data helper */
.section-actions{
  display:flex;
  gap:12px;
  align-items:center;
  flex-wrap:wrap;
}
.page-actions-line{
  display:flex;
  justify-content:flex-end;
  margin:-8px 0 18px;
}
.demo-list{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  gap:12px;
}
.demo-list li{
  position:relative;
  padding-left:26px;
  line-height:1.5;
  color:var(--text);
}
.demo-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:.45em;
  width:10px;
  height:10px;
  border-radius:999px;
  background:var(--orange);
}


/* v0.5.7 colored condition/risk cards on property dashboard */
.condition-dashboard-grid .condition-risk-card{
  position:relative;
  overflow:hidden;
  padding:15px 10px 14px;
  border-radius:18px;
  text-align:center;
  background:#fffdf8 !important;
  border:1px solid var(--line);
}

.condition-dashboard-grid .condition-risk-card::before{
  content:'';
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:5px;
  background:var(--condition-color, #cfd6d2);
}

.condition-dashboard-grid .condition-risk-card::after{
  content:'';
  position:absolute;
  inset:0;
  background:var(--condition-bg, rgba(207,214,210,.14));
  pointer-events:none;
}

.condition-dashboard-grid .condition-risk-card > *{
  position:relative;
  z-index:1;
}

.condition-dashboard-grid .condition-risk-card .condition-mark{
  margin:0 auto 8px;
  color:var(--condition-color, #cfd6d2);
}

.condition-dashboard-grid .condition-risk-card strong{
  color:var(--condition-text, var(--green-deep)) !important;
  font-size:26px;
  line-height:1;
}

.condition-dashboard-grid .condition-risk-card em{
  display:block;
  margin-top:4px;
  color:var(--condition-text, var(--muted)) !important;
  font-size:11px;
  font-weight:800;
  font-style:normal;
}

.condition-risk-critical{
  --condition-color:#d92d5b;
  --condition-text:#8a1434;
  --condition-bg:rgba(217,45,91,.105);
  border-color:rgba(217,45,91,.32) !important;
}

.condition-risk-less_good{
  --condition-color:#ee541e;
  --condition-text:#8b2e0f;
  --condition-bg:rgba(238,84,30,.105);
  border-color:rgba(238,84,30,.32) !important;
}

.condition-risk-acceptable{
  --condition-color:#e3b600;
  --condition-text:#705900;
  --condition-bg:rgba(227,182,0,.12);
  border-color:rgba(227,182,0,.35) !important;
}

.condition-risk-very_good{
  --condition-color:#26a866;
  --condition-text:#0f5c37;
  --condition-bg:rgba(38,168,102,.115);
  border-color:rgba(38,168,102,.32) !important;
}

.condition-risk-not_assessed{
  --condition-color:#b7c2bb;
  --condition-text:#606963;
  --condition-bg:rgba(183,194,187,.16);
  border-color:rgba(183,194,187,.55) !important;
}



/* v0.5.8 chart cleanup + real condition indicators */
/* Forventet vedligehold: no inline scroll, no cheap gradients, smaller readable bars */
.mini-bar-chart{
  display:grid !important;
  grid-template-columns:repeat(auto-fit, minmax(54px, 1fr)) !important;
  align-items:end !important;
  gap:8px !important;
  min-height:165px !important;
  overflow:visible !important;
  padding:10px 0 4px !important;
}

.mini-bar-col{
  min-width:0 !important;
  width:auto !important;
  text-align:center !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:end !important;
  gap:6px !important;
}

.mini-bar{
  width:22px !important;
  max-height:96px !important;
  min-height:7px !important;
  border-radius:999px !important;
  background:#103724 !important;
  background-image:none !important;
  box-shadow:0 7px 16px rgba(16,55,36,.16) !important;
}

.mini-bar-col span{
  font-size:11px !important;
  font-weight:800 !important;
  color:#082316 !important;
}

.mini-bar-col em{
  max-width:62px !important;
  font-size:10px !important;
  line-height:1.15 !important;
  white-space:normal !important;
  color:#5f685f !important;
}

/* Restore condition/status bars everywhere after global gradient cleanup */
.condition-mark{
  width:24px !important;
  height:18px !important;
  display:inline-block !important;
  vertical-align:middle !important;
  margin-right:8px !important;
  border-radius:4px !important;
  background-color:transparent !important;
  background-image:repeating-linear-gradient(
    to bottom,
    currentColor 0 3px,
    transparent 3px 6px
  ) !important;
  box-shadow:none !important;
}

.condition-mark.big{
  width:46px !important;
  height:34px !important;
}

.condition-very-good{
  color:#23a65a !important;
}

.condition-acceptable{
  color:#e3b600 !important;
}

.condition-less-good{
  color:#ee541e !important;
}

.condition-critical{
  color:#d92d5b !important;
}

.condition-not-assessed{
  color:#b7c2bb !important;
}

/* Condition cards on property dashboard must look like risk states */
.condition-dashboard-grid{
  display:grid !important;
  grid-template-columns:repeat(5, minmax(0, 1fr)) !important;
  gap:10px !important;
  margin:16px 0 !important;
}

.condition-dashboard-grid .condition-risk-card{
  position:relative !important;
  overflow:hidden !important;
  padding:16px 10px 14px !important;
  border-radius:18px !important;
  text-align:center !important;
  background:#fffdf8 !important;
  border:1px solid var(--line) !important;
}

.condition-dashboard-grid .condition-risk-card::before{
  content:'' !important;
  position:absolute !important;
  left:0 !important;
  top:0 !important;
  bottom:0 !important;
  width:5px !important;
  background:var(--condition-color, #b7c2bb) !important;
}

.condition-dashboard-grid .condition-risk-card::after{
  content:'' !important;
  position:absolute !important;
  inset:0 !important;
  background:var(--condition-bg, rgba(183,194,187,.16)) !important;
  pointer-events:none !important;
}

.condition-dashboard-grid .condition-risk-card > *{
  position:relative !important;
  z-index:1 !important;
}

.condition-dashboard-grid .condition-risk-card .condition-mark{
  display:block !important;
  margin:0 auto 8px !important;
  color:var(--condition-color, #b7c2bb) !important;
}

.condition-dashboard-grid .condition-risk-card strong{
  display:block !important;
  color:var(--condition-text, #082316) !important;
  font-size:26px !important;
  line-height:1 !important;
}

.condition-dashboard-grid .condition-risk-card em{
  display:block !important;
  margin-top:5px !important;
  color:var(--condition-text, #606963) !important;
  font-size:11px !important;
  font-weight:800 !important;
  font-style:normal !important;
}

.condition-risk-critical{
  --condition-color:#d92d5b;
  --condition-text:#8a1434;
  --condition-bg:rgba(217,45,91,.10);
  border-color:rgba(217,45,91,.32) !important;
}

.condition-risk-less_good{
  --condition-color:#ee541e;
  --condition-text:#8b2e0f;
  --condition-bg:rgba(238,84,30,.10);
  border-color:rgba(238,84,30,.32) !important;
}

.condition-risk-acceptable{
  --condition-color:#e3b600;
  --condition-text:#705900;
  --condition-bg:rgba(227,182,0,.12);
  border-color:rgba(227,182,0,.35) !important;
}

.condition-risk-very_good{
  --condition-color:#23a65a;
  --condition-text:#0f5c37;
  --condition-bg:rgba(35,166,90,.11);
  border-color:rgba(35,166,90,.32) !important;
}

.condition-risk-not_assessed{
  --condition-color:#b7c2bb;
  --condition-text:#606963;
  --condition-bg:rgba(183,194,187,.16);
  border-color:rgba(183,194,187,.55) !important;
}

/* Plan tables: align condition bars nicely with condition text */
td .condition-mark{
  transform:translateY(3px);
}

@media (max-width: 900px){
  .condition-dashboard-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  }

  .mini-bar-chart{
    grid-template-columns:repeat(4, minmax(54px, 1fr)) !important;
  }
}


/* v0.5.9 property-level task menu + clickable task rows */
.nav-list a.nav-child{
  margin-left:20px;
  padding-left:14px;
  font-size:13px;
  border-left:1px solid rgba(255,255,255,.18) !important;
  border-radius:12px;
}

.nav-list a.nav-child .icon{
  width:14px;
  height:14px;
}

tr.clickable-row{
  cursor:pointer;
}

tr.clickable-row:hover td{
  background:#fff7ec !important;
}

.row-title-link{
  color:#082316 !important;
  font-weight:800;
  text-decoration:none;
}

.row-title-link:hover{
  color:#ee541e !important;
  text-decoration:underline;
}

tr.clickable-row .btn,
tr.clickable-row a{
  position:relative;
  z-index:2;
}


/* v0.6.0 report design module */
.report-design-grid{
  align-items:start;
}

.report-logo-current{
  display:flex;
  gap:16px;
  align-items:center;
  padding:16px;
  border:1px solid var(--line);
  border-radius:20px;
  background:#fffaf4;
  margin-bottom:16px;
}

.report-logo-current img{
  display:block;
  max-width:170px;
  max-height:86px;
  object-fit:contain;
  padding:12px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
}

.report-logo-current strong{
  color:var(--green-deep);
  font-size:18px;
}

.report-logo-current p{
  margin:4px 0 10px;
  color:var(--muted);
}

.report-logo-placeholder{
  width:82px;
  height:64px;
  border-radius:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--orange);
  background:#f8efe6;
  border:1px solid #ecd4c5;
}

.report-design-preview{
  margin-top:22px;
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:18px;
  border:1px solid var(--line);
  border-radius:24px;
  padding:18px;
  background:#fffdf8;
}

.preview-cover{
  min-height:230px;
  border-radius:20px;
  padding:24px;
  background:var(--preview-primary);
  color:#fff;
  display:flex;
  flex-direction:column;
  justify-content:center;
  overflow:hidden;
  position:relative;
}

.preview-cover::after{
  content:'';
  position:absolute;
  width:150px;
  height:150px;
  right:-42px;
  top:-42px;
  border-radius:50%;
  background:rgba(255,255,255,.10);
}

.preview-label{
  color:rgba(255,255,255,.72);
  font-size:11px;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
  margin-bottom:18px;
}

.preview-cover strong{
  color:#fff;
  font-size:34px;
  line-height:1;
  letter-spacing:-.06em;
  max-width:320px;
}

.preview-cover span{
  color:#fff;
  font-size:22px;
  font-weight:800;
  margin-top:12px;
}

.preview-cover small{
  color:rgba(255,255,255,.72);
  margin-top:22px;
}

.preview-table{
  border:1px solid var(--line);
  border-radius:20px;
  padding:18px;
  background:#fff;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.preview-table > strong{
  color:var(--green-deep);
  font-size:22px;
  margin-bottom:12px;
}

.preview-table div{
  display:flex;
  justify-content:space-between;
  padding:10px 0;
  border-bottom:1px solid var(--line);
}

.preview-table em{
  font-style:normal;
  font-weight:900;
  color:var(--green-deep);
}

.preview-total{
  margin-top:8px;
  border-bottom:0!important;
  background:#e7f0e9;
  color:var(--preview-primary);
  padding:12px!important;
  border-radius:12px;
}

@media(max-width:980px){
  .report-design-preview{
    grid-template-columns:1fr;
  }
}


/* v0.6.1 fix report design color fields */
.color-control{
  display:grid;
  grid-template-columns:54px 1fr;
  gap:10px;
  align-items:center;
  max-width:280px;
}

.color-control input[type="color"].color-control-picker{
  -webkit-appearance:none !important;
  appearance:none !important;
  width:54px !important;
  min-width:54px !important;
  max-width:54px !important;
  height:44px !important;
  min-height:44px !important;
  max-height:44px !important;
  padding:4px !important;
  border:1px solid var(--line-strong) !important;
  border-radius:14px !important;
  background:#fffdf8 !important;
  box-shadow:none !important;
  cursor:pointer;
}

.color-control input[type="color"].color-control-picker::-webkit-color-swatch-wrapper{
  padding:0 !important;
}

.color-control input[type="color"].color-control-picker::-webkit-color-swatch{
  border:0 !important;
  border-radius:10px !important;
}

.color-control input[type="color"].color-control-picker::-moz-color-swatch{
  border:0 !important;
  border-radius:10px !important;
}

.color-control .color-control-text{
  width:100% !important;
  height:44px !important;
  min-height:44px !important;
  padding:0 14px !important;
  font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace !important;
  text-transform:lowercase;
}

/* Defensive reset: native color inputs should never become giant color wheels */
input[type="color"]{
  width:54px !important;
  height:44px !important;
}


/* v0.6.5 login redesign + native PHP mail password reset */
.login-body.login-body-brand{
  min-height:100vh !important;
  display:grid !important;
  place-items:center !important;
  background:#103724 !important;
  background-image:none !important;
  padding:42px 18px !important;
}

.login-wrap{
  width:min(460px, calc(100vw - 32px));
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:24px;
}

.login-logo-img{
  display:block;
  width:min(420px, 82vw);
  max-height:110px;
  object-fit:contain;
}

.login-body-brand .login-card{
  width:100% !important;
  background:#fffaf2 !important;
  border:1px solid rgba(255,255,255,.22) !important;
  border-radius:28px !important;
  padding:34px !important;
  box-shadow:0 26px 80px rgba(0,0,0,.28) !important;
}

.login-body-brand .login-card h1{
  margin:0 0 8px !important;
  font-family:var(--heading-font, Manrope, Inter, ui-sans-serif, system-ui) !important;
  font-size:34px !important;
  line-height:1 !important;
  letter-spacing:-.055em !important;
  color:#0b281d !important;
}

.login-body-brand .login-card p{
  color:#657066 !important;
  margin:0 0 22px !important;
  font-size:15px;
}

.login-body-brand .login-card label{
  color:#14251b;
  font-weight:800;
}

.login-body-brand .login-card input{
  background:#fffdf8 !important;
  border-color:#d8caba !important;
  height:52px;
  border-radius:16px;
}

.login-body-brand .login-card input:focus{
  border-color:#ee541e !important;
  box-shadow:0 0 0 4px rgba(238,84,30,.14) !important;
}

.btn-login,
.login-body-brand .btn-login,
.login-body-brand button.btn-login,
.login-body-brand a.btn-login{
  width:100%;
  min-height:52px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#ee541e !important;
  border-color:#ee541e !important;
  color:#fff !important;
  border-radius:16px;
  box-shadow:0 12px 26px rgba(238,84,30,.28) !important;
  font-weight:900;
}

.btn-login:hover,
.login-body-brand .btn-login:hover{
  background:#d84a19 !important;
  border-color:#d84a19 !important;
  color:#fff !important;
}

.login-forgot-link{
  display:block;
  text-align:center;
  margin-top:18px;
  color:#103724;
  font-weight:800;
  text-decoration:none;
}

.login-forgot-link:hover{
  color:#ee541e;
  text-decoration:underline;
}

.login-body-brand .flash{
  margin-bottom:16px;
}

@media(max-width:560px){
  .login-body-brand .login-card{
    padding:26px !important;
  }

  .login-logo-img{
    width:min(330px, 82vw);
  }
}


/* v0.6.6 consistent dark green UI: topbar buttons, card icons and table headers */
:root{
  --ui-brand-green:#103724;
  --ui-brand-green-hover:#0c2d1d;
  --ui-brand-green-soft:#e8f0eb;
  --ui-brand-white:#ffffff;
}

/* Card/section icon badges */
.metric-card-icon,
.section-icon-badge,
.property-card-accent,
.report-logo-placeholder{
  background:var(--ui-brand-green) !important;
  background-image:none !important;
  color:var(--ui-brand-white) !important;
  border-color:var(--ui-brand-green) !important;
  box-shadow:none !important;
}

.metric-card-icon *,
.section-icon-badge *,
.property-card-accent *,
.report-logo-placeholder *,
.metric-card-icon svg,
.section-icon-badge svg,
.property-card-accent svg,
.report-logo-placeholder svg,
.metric-card-icon .icon,
.section-icon-badge .icon,
.property-card-accent .icon,
.report-logo-placeholder .icon{
  color:var(--ui-brand-white) !important;
  fill:currentColor !important;
  stroke:currentColor !important;
}

/* Table headers */
.table-card thead th,
.content-block thead th,
.budget-wrap thead th,
.budget-table thead th,
.data-table thead th,
table.vrap-table thead th{
  background:var(--ui-brand-green) !important;
  background-image:none !important;
  color:var(--ui-brand-white) !important;
  border-color:rgba(255,255,255,.12) !important;
  font-weight:850 !important;
}

.table-card thead th *,
.content-block thead th *,
.budget-wrap thead th *,
.budget-table thead th *,
.data-table thead th *,
table.vrap-table thead th *{
  color:var(--ui-brand-white) !important;
  fill:currentColor !important;
  stroke:currentColor !important;
}

.table-card th:first-child,
.content-block th:first-child{
  border-top-left-radius:14px !important;
}

.table-card th:last-child,
.content-block th:last-child{
  border-top-right-radius:14px !important;
}

/* Topbar buttons and save pill */
.topbar .btn,
.topbar a.btn,
.topbar button.btn,
.topbar .btn-light,
.topbar-actions .btn,
.topbar-actions a.btn,
.topbar-actions button.btn,
.topbar-actions .btn-light,
.topbar .save-state,
.topbar-actions .save-state,
.save-state{
  background:var(--ui-brand-green) !important;
  background-image:none !important;
  color:var(--ui-brand-white) !important;
  border:1px solid var(--ui-brand-green) !important;
  box-shadow:none !important;
}

.topbar .btn:hover,
.topbar a.btn:hover,
.topbar button.btn:hover,
.topbar .btn-light:hover,
.topbar-actions .btn:hover,
.topbar-actions a.btn:hover,
.topbar-actions button.btn:hover,
.topbar-actions .btn-light:hover{
  background:var(--ui-brand-green-hover) !important;
  border-color:var(--ui-brand-green-hover) !important;
  color:var(--ui-brand-white) !important;
  filter:none !important;
}

.topbar .btn *,
.topbar-actions .btn *,
.topbar .save-state *,
.topbar-actions .save-state *,
.save-state *,
.topbar .btn svg,
.topbar-actions .btn svg,
.topbar .save-state svg,
.topbar-actions .save-state svg{
  color:var(--ui-brand-white) !important;
  fill:currentColor !important;
  stroke:currentColor !important;
}

/* Keep orange buttons orange when they are explicit CTA buttons */
.topbar .btn-dark,
.topbar-actions .btn-dark{
  background:var(--orange, #ee541e) !important;
  border-color:var(--orange, #ee541e) !important;
  color:#fff !important;
}

/* Slightly better table contrast after dark headers */
.table-card tbody tr:hover td,
.content-block tbody tr:hover td{
  background:#fff7ec !important;
}


/* v0.6.7 Lucide outline icons */
.icon svg.lucide,
.icon svg.lucide *{
  fill:none !important;
  stroke:currentColor !important;
  stroke-width:2 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
  vector-effect:non-scaling-stroke;
}

.icon svg{
  display:block !important;
  width:18px !important;
  height:18px !important;
}

.rail .icon svg,
.nav-list .icon svg{
  width:17px !important;
  height:17px !important;
}

.metric-card-icon .icon svg,
.section-icon-badge .icon svg,
.property-card-accent .icon svg,
.report-logo-placeholder .icon svg{
  width:19px !important;
  height:19px !important;
}

.metric-card-icon,
.section-icon-badge,
.property-card-accent{
  color:#fff !important;
}

.metric-card-icon .icon,
.section-icon-badge .icon,
.property-card-accent .icon{
  color:#fff !important;
}

/* Undo old filled-icon overrides from earlier versions */
.rail-item .icon svg.lucide,
.rail-avatar .icon svg.lucide,
.rail-logout .icon svg.lucide,
.nav-list a .icon svg.lucide,
.topbar .btn svg.lucide,
.topbar-actions .btn svg.lucide,
.metric-card-icon svg.lucide,
.section-icon-badge svg.lucide,
.property-card-accent svg.lucide{
  fill:none !important;
  stroke:currentColor !important;
  stroke-width:2 !important;
}


/* v0.6.8 upgraded portfolio dashboard */
.dashboard-hero{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;
  padding:30px 32px;
  border:1px solid var(--line);
  border-radius:28px;
  background:#fffdf8;
  box-shadow:var(--shadow);
  margin-bottom:22px;
  position:relative;
  overflow:hidden;
}

.dashboard-hero::before{
  content:'';
  position:absolute;
  left:32px;
  top:0;
  width:92px;
  height:5px;
  border-radius:0 0 999px 999px;
  background:var(--green);
}

.dashboard-kicker{
  display:inline-flex;
  margin-bottom:10px;
  color:var(--orange);
  font-size:11px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.dashboard-hero h2{
  margin:0 0 8px;
  color:var(--green-deep)!important;
  font-family:var(--heading-font)!important;
  font-size:38px;
  line-height:1;
  letter-spacing:-.055em;
}

.dashboard-hero p{
  max-width:650px;
  margin:0;
  color:var(--muted);
  font-size:15px;
}

.dashboard-hero-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.dashboard-hero-actions .btn{
  min-height:42px;
}

.dashboard-kpi-grid{
  grid-template-columns:repeat(6, minmax(0, 1fr));
}

.metric-card em{
  display:block;
  margin-top:7px;
  color:var(--muted);
  font-size:12px;
  font-style:normal;
  font-weight:700;
}

.dashboard-grid{
  display:grid;
  gap:22px;
  margin-top:22px;
}

.dashboard-grid.two{
  grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
}

.dashboard-main-grid{
  grid-template-columns:minmax(0, 1.12fr) minmax(360px, .88fr)!important;
}

.dashboard-panel{
  position:relative;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:26px;
  padding:22px;
  background:#fffdf8;
  box-shadow:var(--shadow);
}

.dashboard-panel::before{
  content:'';
  position:absolute;
  left:22px;
  top:0;
  width:82px;
  height:3px;
  border-radius:0 0 999px 999px;
  background:var(--green);
}

.dashboard-panel-head{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
  margin-bottom:18px;
}

.dashboard-panel-head h3{
  margin:0 0 5px;
  color:var(--green-deep)!important;
  font-family:var(--heading-font)!important;
  font-size:25px;
  line-height:1.05;
  letter-spacing:-.045em;
}

.dashboard-panel-head p{
  margin:0;
  color:var(--muted);
  font-size:13px;
}

.dashboard-panel-head a{
  color:var(--green);
  font-weight:900;
  text-decoration:none;
  white-space:nowrap;
}

.dashboard-panel-head a:hover{
  color:var(--orange);
}

.dashboard-year-chart{
  display:grid;
  grid-template-columns:repeat(10, minmax(0, 1fr));
  align-items:end;
  gap:10px;
  min-height:188px;
  padding-top:12px;
}

.dashboard-year-col{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
  text-align:center;
}

.dashboard-year-bar{
  width:28px;
  min-height:8px;
  border-radius:7px 7px 3px 3px;
  background:var(--green);
  box-shadow:0 10px 20px rgba(16,55,36,.14);
}

.dashboard-year-col strong{
  color:var(--green-deep);
  font-size:12px;
  line-height:1;
}

.dashboard-year-col span{
  min-height:26px;
  color:var(--muted);
  font-size:10px;
  line-height:1.15;
}

.priority-bars{
  display:grid;
  gap:16px;
}

.priority-bar-meta{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:baseline;
  margin-bottom:8px;
}

.priority-bar-meta strong{
  color:var(--green-deep);
}

.priority-bar-meta span{
  color:var(--muted);
  font-size:12px;
  font-weight:800;
}

.priority-bar-track{
  height:10px;
  border-radius:999px;
  background:#efe7dc;
  overflow:hidden;
}

.priority-bar-track i{
  display:block;
  height:100%;
  border-radius:999px;
  background:var(--green);
}

.priority-bar-acute .priority-bar-track i{background:#d92d5b;}
.priority-bar-necessary .priority-bar-track i{background:var(--orange);}
.priority-bar-normal .priority-bar-track i{background:#2e9f62;}
.priority-bar-beneficial .priority-bar-track i{background:#b98b2e;}

.attention-list,
.task-preview-list,
.budget-part-list{
  display:grid;
  gap:10px;
}

.attention-item,
.task-preview-item{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:14px;
  align-items:center;
  padding:13px 14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fffaf4;
  text-decoration:none;
  color:inherit;
}

.attention-item:hover,
.task-preview-item:hover{
  border-color:rgba(16,55,36,.32);
  background:#fff6eb;
}

.attention-item strong,
.task-preview-item strong{
  display:block;
  color:var(--green-deep);
  font-weight:900;
}

.attention-item span,
.task-preview-item em{
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:12px;
  font-style:normal;
}

.attention-metrics{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
  min-width:190px;
}

.attention-metrics em{
  display:inline-flex;
  padding:5px 8px;
  border-radius:999px;
  background:#eef5ef;
  color:var(--green-deep);
  font-size:11px;
  font-weight:900;
  font-style:normal;
}

.attention-metrics .attention-danger{
  background:#ffe9ee;
  color:#9b1236;
}

.attention-metrics strong{
  min-width:84px;
  text-align:right;
}

.dashboard-condition-grid{
  grid-template-columns:repeat(5, minmax(0, 1fr))!important;
}

.condition-stack{
  display:flex;
  width:100%;
  height:12px;
  overflow:hidden;
  border-radius:999px;
  background:#edf1ee;
  margin-top:18px;
}

.condition-stack span{display:block;height:100%;}
.condition-stack-critical{background:#d92d5b;}
.condition-stack-less_good{background:var(--orange);}
.condition-stack-acceptable{background:#e3b600;}
.condition-stack-very_good{background:#23a65a;}
.condition-stack-not_assessed{background:#b7c2bb;}

.task-preview-item{
  grid-template-columns:auto minmax(0, 1fr) 46px 100px;
}

.task-preview-item small{
  color:var(--muted);
  font-weight:900;
  text-align:right;
}

.task-preview-item b{
  color:var(--green-deep);
  text-align:right;
}

.budget-part-row{
  display:grid;
  grid-template-columns:minmax(0, 1fr) 112px;
  gap:8px 14px;
  align-items:center;
  padding:12px 0;
  border-bottom:1px solid var(--line);
}

.budget-part-row:last-child{
  border-bottom:0;
}

.budget-part-row strong{
  display:block;
  color:var(--green-deep);
  font-weight:900;
}

.budget-part-row span{
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:12px;
  font-weight:700;
}

.budget-part-row em{
  color:var(--green-deep);
  text-align:right;
  font-style:normal;
  font-weight:900;
}

.budget-part-row i{
  grid-column:1 / -1;
  height:8px;
  overflow:hidden;
  border-radius:999px;
  background:#efe7dc;
}

.budget-part-row i b{
  display:block;
  height:100%;
  border-radius:999px;
  background:var(--green);
}

.dashboard-property-head{
  margin-top:28px;
}

.dashboard-empty{
  padding:28px;
  border:1px dashed var(--line-strong);
  border-radius:16px;
  background:#fffaf4;
  color:var(--muted);
}

@media(max-width:1280px){
  .dashboard-kpi-grid{
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }
  .dashboard-grid.two,
  .dashboard-main-grid{
    grid-template-columns:1fr!important;
  }
}

@media(max-width:760px){
  .dashboard-hero{
    align-items:flex-start;
    flex-direction:column;
    padding:24px;
  }
  .dashboard-hero h2{
    font-size:30px;
  }
  .dashboard-kpi-grid{
    grid-template-columns:1fr;
  }
  .dashboard-year-chart{
    grid-template-columns:repeat(5, minmax(0, 1fr));
  }
  .dashboard-condition-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr))!important;
  }
  .task-preview-item{
    grid-template-columns:1fr;
  }
  .attention-item{
    grid-template-columns:1fr;
  }
  .attention-metrics{
    justify-content:flex-start;
    min-width:0;
  }
}


/* =========================================================
   VRAP v0.7.5 — CLEAN PRO UI RESET
   Purpose: remove the messy stacked UI experiments and create
   a calmer, wider, more professional admin interface.
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Outfit:wght@400;500;600;700;800&display=swap');

:root{
  --bg:#f3eee5;
  --panel:#fffdf8;
  --panel-soft:#f8f2ea;
  --line:#ddd0bf;
  --line-strong:#cbbba7;
  --text:#092018;
  --muted:#66736b;
  --green:#0b3f2e;
  --green-2:#0e4b37;
  --green-dark:#062f22;
  --green-soft:#e5f0ea;
  --orange:#ee541e;
  --orange-dark:#d84a19;
  --red:#b42318;
  --yellow:#d4a900;
  --pink:#cc2d5f;
  --shadow:0 14px 34px rgba(37,30,20,.075);
  --shadow-soft:0 8px 20px rgba(37,30,20,.055);
  --font-body:"Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-heading:"Outfit", "Inter", ui-sans-serif, system-ui, sans-serif;
  font-family:var(--font-body);
}

*{
  box-sizing:border-box;
}

html{
  background:var(--bg);
}

body{
  margin:0;
  background:var(--bg) !important;
  color:var(--text);
  font-family:var(--font-body) !important;
  font-size:14px;
  line-height:1.5;
  letter-spacing:-.004em;
  -webkit-font-smoothing:antialiased;
  text-rendering:geometricPrecision;
}

button,input,textarea,select{
  font-family:var(--font-body) !important;
}

h1,h2,h3,h4,
.topbar h1,
.content h2,
.content h3,
.section-head h2,
.with-icon,
.dashboard-hero h2,
.metric-card strong,
.property-card-top strong,
.sidepanel-title strong{
  font-family:var(--font-heading) !important;
  letter-spacing:-.032em !important;
  font-weight:650 !important;
  color:var(--text);
}

/* ---------- Shell / layout ---------- */

.app-shell,
.app-shell.no-sidepanel{
  display:grid !important;
  grid-template-columns:64px minmax(0,1fr) !important;
  min-height:100vh;
  background:var(--bg) !important;
}

.app-shell.has-sidepanel{
  grid-template-columns:64px 260px minmax(0,1fr) !important;
}

.app-shell .rail{
  grid-column:1 !important;
}

.app-shell.has-sidepanel .sidepanel{
  grid-column:2 !important;
}

.app-shell.no-sidepanel .main{
  grid-column:2 !important;
}

.app-shell.has-sidepanel .main{
  grid-column:3 !important;
}

.main{
  min-width:0;
  width:100%;
}

/* ---------- Left icon rail ---------- */

.rail{
  position:sticky;
  top:0;
  height:100vh;
  background:var(--green-dark) !important;
  border-right:1px solid rgba(255,255,255,.08) !important;
  padding:14px 10px;
  gap:11px;
  display:flex;
  flex-direction:column;
  align-items:center;
}

.rail-logo{
  width:38px;
  height:38px;
  border-radius:11px;
  background:var(--orange) !important;
  color:#fff !important;
  font-family:var(--font-heading);
  font-weight:750;
}

.rail-item,
.rail-avatar{
  width:38px;
  height:38px;
  border-radius:11px;
  display:grid;
  place-items:center;
  color:rgba(255,255,255,.78) !important;
  background:transparent !important;
  border:1px solid transparent;
  transition:.15s ease;
}

.rail-item:hover,
.rail-item.active{
  background:rgba(255,255,255,.12) !important;
  border-color:rgba(255,255,255,.12);
  color:#fff !important;
}

.rail-item svg.lucide,
.rail-avatar svg.lucide,
.icon svg.lucide{
  width:18px;
  height:18px;
  stroke:currentColor;
  fill:none;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.rail-spacer{
  flex:1;
}

.rail-avatar{
  overflow:hidden;
  background:rgba(255,255,255,.10) !important;
}

/* ---------- Property sidepanel ---------- */

.sidepanel{
  position:sticky;
  top:0;
  height:100vh;
  background:var(--green) !important;
  border-right:1px solid rgba(255,255,255,.09) !important;
  padding:24px 18px;
  color:#fff;
}

.sidepanel-title{
  padding-bottom:20px;
  margin-bottom:22px;
  border-bottom:1px solid rgba(255,255,255,.16);
}

.sidepanel-title strong{
  display:block;
  margin-top:4px;
  font-size:18px;
  color:#fff;
  line-height:1.08;
}

.sidepanel-title span,
.sidepanel p,
.sidepanel small{
  color:rgba(255,255,255,.68) !important;
}

.eyebrow{
  font-family:var(--font-heading);
  font-size:11px;
  letter-spacing:.15em !important;
  text-transform:uppercase;
  color:rgba(255,255,255,.68);
  font-weight:700;
}

.nav-list{
  gap:7px;
}

.nav-list a{
  min-height:42px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 12px;
  border-radius:12px;
  color:rgba(255,255,255,.78) !important;
  background:transparent;
  border:1px solid transparent;
  font-family:var(--font-heading);
  font-size:14px;
  font-weight:600;
  letter-spacing:-.015em;
}

.nav-list a:hover,
.nav-list a.active{
  color:#fff !important;
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.16);
}

.nav-child{
  margin-left:14px;
  padding-left:8px;
  border-left:1px solid rgba(255,255,255,.14);
}

.nav-divider{
  height:1px;
  background:rgba(255,255,255,.16);
  margin:15px 0;
}

/* ---------- Topbar ---------- */

.topbar{
  height:72px;
  position:sticky;
  top:0;
  z-index:40;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 clamp(28px,3vw,52px);
  background:rgba(255,253,248,.90) !important;
  backdrop-filter:blur(16px);
  border-bottom:1px solid var(--line);
}

.topbar h1{
  margin:0;
  font-size:31px;
  line-height:1;
  font-weight:650 !important;
}

.crumb{
  display:none;
}

.topbar-actions{
  display:flex;
  align-items:center;
  gap:10px;
}

.save-state{
  height:38px;
  display:inline-flex;
  align-items:center;
  padding:0 14px;
  border-radius:11px;
  background:var(--green) !important;
  color:#fff !important;
  border:1px solid var(--green);
  font-size:13px;
  font-weight:600;
  box-shadow:none;
}

/* ---------- Content width ---------- */

.content{
  width:100% !important;
  max-width:none !important;
  padding:32px clamp(28px,3vw,56px) 76px !important;
}

.content > *{
  max-width:none;
}

/* ---------- Buttons ---------- */

.btn{
  min-height:38px;
  padding:0 14px;
  border-radius:10px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  border:1px solid var(--line-strong);
  background:var(--panel);
  color:var(--green);
  cursor:pointer;
  font-family:var(--font-heading) !important;
  font-size:13px;
  font-weight:600 !important;
  line-height:1;
  box-shadow:none;
  transition:background .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
}

.btn:hover{
  filter:none;
  transform:translateY(-1px);
  border-color:var(--green);
}

.btn-primary,
.btn-dark{
  background:var(--green) !important;
  border-color:var(--green) !important;
  color:#fff !important;
}

.btn-primary:hover,
.btn-dark:hover{
  background:var(--green-2) !important;
  color:#fff !important;
}

.btn-light{
  background:var(--panel);
  color:var(--green);
  border-color:var(--line-strong);
}

.btn-small{
  min-height:31px;
  padding:0 10px;
  border-radius:8px;
  font-size:12px;
}

.btn-danger{
  background:var(--red) !important;
  border-color:var(--red) !important;
  color:#fff !important;
}

.dashboard-hero .btn-primary,
.section-head > .btn-primary,
a[href*="property_edit.php"].btn-primary{
  background:var(--orange) !important;
  border-color:var(--orange) !important;
  color:#fff !important;
}

.dashboard-hero .btn-primary:hover,
.section-head > .btn-primary:hover,
a[href*="property_edit.php"].btn-primary:hover{
  background:var(--orange-dark) !important;
  border-color:var(--orange-dark) !important;
}

/* ---------- Page headings ---------- */

.section-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  margin:0 0 24px;
}

.section-head h2,
.with-icon,
.content h2{
  margin:0 0 6px;
  font-size:34px;
  line-height:1.05;
  font-weight:650 !important;
}

.section-head p,
.content p{
  margin:0;
  color:var(--muted);
  max-width:760px;
  font-size:15px;
}

.section-icon-badge{
  width:40px;
  height:40px;
  display:inline-grid;
  place-items:center;
  border-radius:11px;
  margin-right:12px;
  background:var(--green);
  color:#fff;
  vertical-align:middle;
}

/* ---------- Cards and panels ---------- */

.table-card,
.panel-form,
.content-block,
.publish-card,
.inline-create-form,
.property-hero-overview,
.plan-head,
.dashboard-panel,
.dashboard-card,
.property-card,
.empty-card,
.metric-card{
  background:var(--panel) !important;
  border:1px solid var(--line) !important;
  border-radius:18px !important;
  box-shadow:var(--shadow-soft) !important;
}

.table-card,
.panel-form,
.content-block,
.publish-card,
.inline-create-form,
.dashboard-panel,
.dashboard-card{
  padding:22px;
  margin-bottom:20px;
}

.table-card h3,
.panel-form h3,
.dashboard-panel h3,
.dashboard-card h3,
.content h3{
  margin:0 0 6px;
  font-size:24px;
  line-height:1.1;
  font-weight:650 !important;
}

/* remove experimental top bars from earlier UI patches */
.metric-card::before,
.kpi-card::before,
.dashboard-card::before,
.property-card::before,
.table-card::before,
.panel-form::before,
.dashboard-panel::before{
  display:none !important;
  content:none !important;
}

/* ---------- Dashboard hero ---------- */

.dashboard-hero{
  position:relative;
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:28px;
  width:100%;
  margin:0 0 24px;
  padding:34px 36px;
  border-radius:22px;
  background:var(--green) !important;
  color:#fff;
  border:0 !important;
  box-shadow:0 18px 42px rgba(6,47,34,.18) !important;
  overflow:hidden;
}

.dashboard-hero::before{
  content:'';
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:var(--orange);
}

.dashboard-hero::after{
  content:'';
  position:absolute;
  right:-110px;
  top:-120px;
  width:260px;
  height:260px;
  border-radius:999px;
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.10);
}

.dashboard-kicker{
  display:block;
  margin-bottom:12px;
  color:#ffb596 !important;
  font-family:var(--font-heading);
  font-size:12px;
  letter-spacing:.18em !important;
  text-transform:uppercase;
  font-weight:700;
}

.dashboard-hero h2{
  max-width:820px;
  margin:0 0 10px;
  color:#fff;
  font-size:43px;
  line-height:1.05;
  font-weight:620 !important;
}

.dashboard-hero p{
  max-width:700px;
  color:rgba(255,255,255,.76) !important;
  font-size:16px;
}

.dashboard-hero-actions{
  position:relative;
  z-index:2;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.dashboard-hero .btn-light{
  background:rgba(255,255,255,.10);
  border-color:rgba(255,255,255,.18);
  color:#fff;
}

/* ---------- Metrics ---------- */

.metric-grid,
.dashboard-kpi-grid{
  display:grid;
  gap:16px;
  margin-bottom:24px;
}

.metric-grid,
.metric-grid.dashboard-kpi-grid{
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
}

.metric-grid.four{
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
}

.metric-card{
  position:relative;
  min-height:124px;
  padding:20px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}

.metric-card span{
  display:block;
  margin:0 44px 8px 0;
  color:var(--muted);
  font-family:var(--font-body);
  font-size:12px;
  font-weight:600;
}

.metric-card strong{
  display:block;
  max-width:100%;
  overflow-wrap:anywhere;
  font-size:31px;
  line-height:.98;
  font-weight:680 !important;
}

.metric-card em{
  display:block;
  margin-top:8px;
  color:var(--muted);
  font-style:normal;
  font-size:12px;
}

.metric-card-icon,
.card-icon,
.stat-icon,
.property-card-accent{
  position:absolute;
  top:18px;
  right:18px;
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:var(--green);
  color:#fff;
  border:0;
}

.metric-card-icon svg,
.card-icon svg,
.stat-icon svg,
.property-card-accent svg{
  width:17px;
  height:17px;
}

/* ---------- Dashboard grids/charts ---------- */

.dashboard-grid.two,
.content-grid.two,
.overview-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
}

.dashboard-panel-head,
.mini-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:18px;
}

.dashboard-panel-head h3,
.mini-head h3{
  margin:0 0 4px;
}

.dashboard-panel-head p,
.mini-head p{
  margin:0;
  color:var(--muted);
}

.dashboard-year-chart{
  display:grid;
  grid-template-columns:repeat(10,minmax(0,1fr));
  align-items:end;
  gap:14px;
  min-height:190px;
  padding-top:16px;
}

.dashboard-year-col{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
  color:var(--muted);
  font-size:11px;
  text-align:center;
}

.dashboard-year-bar{
  width:24px;
  min-height:7px;
  border-radius:5px 5px 2px 2px !important;
  background:var(--green) !important;
}

.dashboard-priority-row{
  margin:15px 0;
}

.dashboard-priority-line{
  display:flex;
  justify-content:space-between;
  gap:16px;
  margin-bottom:7px;
  color:var(--muted);
  font-size:13px;
}

.dashboard-priority-line strong{
  color:var(--text);
}

.progress-track{
  height:8px;
  background:#e6dccc;
  border-radius:5px;
  overflow:hidden;
}

.progress-fill{
  height:100%;
  background:var(--green);
  border-radius:5px;
}

/* ---------- Property hero ---------- */

.property-hero-overview,
.plan-head{
  padding:24px;
  margin:0 0 22px;
}

.property-hero-overview{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
}

.property-hero-overview h2{
  margin:0 0 5px;
  font-size:34px;
  line-height:1.05;
  font-weight:650 !important;
}

.property-hero-actions{
  display:flex;
  gap:9px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

/* ---------- Tables ---------- */

.table-card{
  overflow:hidden;
}

table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
}

thead th,
table thead th{
  background:var(--green) !important;
  color:#fff !important;
  font-family:var(--font-body);
  font-size:12px;
  font-weight:650;
  text-align:left;
  padding:13px 16px;
  border-bottom:0;
}

thead th:first-child{
  border-top-left-radius:10px;
}

thead th:last-child{
  border-top-right-radius:10px;
}

td,th{
  padding:14px 16px;
  border-bottom:1px solid rgba(221,208,191,.76);
  vertical-align:middle;
}

tbody tr:hover{
  background:#fbf6ee;
}

tbody tr:last-child td{
  border-bottom:0;
}

.row-title-link,
tbody strong{
  font-weight:650;
}

/* ---------- Property cards ---------- */

.cards-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(330px,1fr));
  gap:20px;
}

.property-card{
  position:relative;
  padding:22px;
  min-height:210px;
}

.property-card-top{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
}

.property-card-top strong{
  font-size:23px;
  line-height:1.05;
  font-weight:650 !important;
}

.property-card-top > span:not(.property-card-accent){
  margin-right:46px;
  color:var(--muted);
}

.property-card p{
  margin:24px 0 0;
  color:#4f5b54;
  font-size:15px;
}

.property-meta{
  display:flex;
  gap:12px;
  justify-content:space-between;
  color:#4f5b54;
  border-top:1px solid var(--line);
  padding-top:14px;
  margin-top:18px;
}

.card-actions{
  display:grid;
  grid-template-columns:1fr 1fr 76px;
  gap:8px;
  margin-top:18px;
}

.card-actions .btn{
  width:100%;
}

/* ---------- Forms ---------- */

.panel-form{
  padding:28px;
}

.form-stack,
.panel-form{
  gap:18px;
}

.form-grid{
  gap:18px 22px;
}

label{
  display:flex;
  flex-direction:column;
  gap:7px;
  color:var(--text);
  font-weight:600;
}

.field-help,
.help-text,
label small{
  color:var(--muted);
  font-size:12.5px;
  line-height:1.4;
  font-weight:400;
}

input,
textarea,
select{
  border:1px solid var(--line-strong);
  background:var(--panel);
  border-radius:11px;
  padding:11px 12px;
  outline:none;
  min-height:44px;
  color:var(--text);
  box-shadow:none;
}

textarea{
  min-height:124px;
}

input:focus,
textarea:focus,
select:focus{
  border-color:var(--green);
  box-shadow:0 0 0 4px rgba(11,63,46,.10);
}

.form-help-box,
.field-guidance{
  border:1px solid #bdd8c9;
  background:#edf6f1;
  color:var(--green);
  border-radius:12px;
  padding:12px 14px;
}

/* ---------- Status/risk ---------- */

.task-status-grid,
.condition-summary-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(96px,1fr));
  gap:10px;
  margin-bottom:16px;
}

.task-status-grid > div,
.condition-summary-card{
  border:1px solid var(--line);
  border-radius:13px;
  background:var(--panel-soft);
  padding:14px;
  text-align:center;
}

.task-status-grid strong,
.condition-summary-card strong{
  display:block;
  font-family:var(--font-heading);
  font-size:24px;
  font-weight:650;
}

.task-status-grid span,
.condition-summary-card span{
  color:var(--muted);
  font-size:12px;
}

.priority-badge,
.status-badge,
.pill,
.badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  padding:5px 9px;
  font-size:12px;
  font-weight:600;
}

.priority-acute{
  background:#fff0f0;
  color:#b42318;
  border:1px solid #ffc7c7;
}

.priority-necessary{
  background:#fff2e9;
  color:#c44718;
  border:1px solid #ffc8ad;
}

.priority-normal{
  background:#e9f4ee;
  color:#0b3f2e;
  border:1px solid #c2dccd;
}

.priority-beneficial{
  background:#fff8e1;
  color:#8c6200;
  border:1px solid #ead58a;
}

/* ---------- Condition marks ---------- */

.condition-mark{
  border-radius:2px;
}

.condition-very-good{color:#17a95b}
.condition-acceptable{color:#dfb900}
.condition-less-good{color:#ee541e}
.condition-critical{color:#cc2d5f}
.condition-not-assessed{color:#b6c1bd}

/* ---------- Login ---------- */

.login-body.login-body-brand{
  background:var(--green-dark) !important;
}

.login-body-brand .login-card{
  border-radius:20px !important;
}

.login-body-brand .btn-login{
  background:var(--orange) !important;
  border-color:var(--orange) !important;
  color:#fff !important;
}

/* ---------- Responsive ---------- */

@media (min-width:1600px){
  .content{
    padding-left:64px !important;
    padding-right:64px !important;
  }
}

@media (max-width:1180px){
  .dashboard-grid.two,
  .content-grid.two,
  .overview-grid{
    grid-template-columns:1fr;
  }

  .dashboard-year-chart{
    grid-template-columns:repeat(5,minmax(0,1fr));
  }
}

@media (max-width:980px){
  .app-shell,
  .app-shell.has-sidepanel,
  .app-shell.no-sidepanel{
    grid-template-columns:56px minmax(0,1fr) !important;
  }

  .sidepanel{
    display:none;
  }

  .app-shell.has-sidepanel .main,
  .app-shell.no-sidepanel .main{
    grid-column:2 !important;
  }

  .topbar{
    height:auto;
    min-height:70px;
    padding:18px;
    align-items:flex-start;
  }

  .topbar-actions{
    display:none;
  }

  .content{
    padding:22px 18px 56px !important;
  }

  .section-head,
  .property-hero-overview,
  .dashboard-hero{
    flex-direction:column;
    align-items:flex-start;
  }

  .dashboard-hero h2{
    font-size:34px;
  }

  .form-grid.two,
  .form-grid.three,
  .form-grid.four{
    grid-template-columns:1fr;
  }

  .card-actions{
    grid-template-columns:1fr;
  }
}

@media (max-width:560px){
  .metric-grid,
  .metric-grid.four,
  .dashboard-kpi-grid,
  .cards-grid{
    grid-template-columns:1fr;
  }
}


/* =========================================================
   VRAP v0.7.6 — UI BUGFIX CLEANUP
   Fixes after visual review:
   - white hero text
   - less bold headings
   - cards no longer stretch to weird heights
   - report design color controls fixed
   - checkbox sizes fixed
   - upload areas fixed
   - cleaner spacing on forms and panels
   ========================================================= */

/* Typography: lighter, calmer, less chunky */
.topbar h1,
.section-head h2,
.with-icon,
.content h2,
.content h3,
.dashboard-hero h2,
.dashboard-panel h3,
.dashboard-card h3,
.table-card h3,
.panel-form h3,
.property-hero-overview h2,
.property-card-top strong {
  font-weight:600 !important;
  letter-spacing:-0.026em !important;
}

.topbar h1 {
  font-size:30px !important;
}

.section-head h2,
.with-icon,
.content h2 {
  font-size:32px !important;
  line-height:1.08 !important;
}

.content h3,
.dashboard-panel h3,
.dashboard-card h3,
.table-card h3,
.panel-form h3 {
  font-size:22px !important;
  line-height:1.12 !important;
}

.metric-card strong,
.kpi-card strong {
  font-weight:640 !important;
  letter-spacing:-0.028em !important;
}

label,
tbody strong,
.row-title-link {
  font-weight:600 !important;
}

/* Hero contrast bug: title was black on green */
.dashboard-hero,
.dashboard-hero * {
  color:#fff !important;
}

.dashboard-hero h2,
.dashboard-hero p,
.dashboard-hero .dashboard-kicker {
  color:#fff !important;
}

.dashboard-kicker {
  color:#ffb596 !important;
}

.dashboard-hero .btn-light {
  color:#fff !important;
}

.dashboard-hero .btn-primary {
  color:#fff !important;
}

/* Icons: no empty dark blobs */
.metric-card-icon svg.lucide,
.card-icon svg.lucide,
.stat-icon svg.lucide,
.property-card-accent svg.lucide,
.section-icon-badge svg.lucide,
.rail-item svg.lucide,
.nav-list a svg.lucide {
  display:block !important;
  stroke:currentColor !important;
  fill:none !important;
  stroke-width:2 !important;
}

.metric-card-icon,
.card-icon,
.stat-icon,
.property-card-accent,
.section-icon-badge {
  color:#fff !important;
}

/* Grid/cards should not stretch panels into huge empty blocks */
.dashboard-grid.two,
.content-grid.two,
.overview-grid {
  align-items:start !important;
}

.dashboard-card,
.dashboard-panel,
.table-card,
.content-block,
.panel-form {
  height:auto !important;
  align-self:start !important;
}

.mini-head,
.dashboard-panel-head {
  display:block !important;
  margin-bottom:16px !important;
}

.mini-head h3,
.dashboard-panel-head h3 {
  margin:0 0 4px !important;
}

.mini-head p,
.dashboard-panel-head p {
  margin:0 !important;
  max-width:none !important;
}

/* More balanced page rhythm */
.content {
  padding-top:30px !important;
}

.property-hero-overview,
.plan-head {
  padding:22px 24px !important;
}

.table-card,
.panel-form,
.content-block,
.dashboard-panel,
.dashboard-card {
  padding:22px !important;
}

/* Better dashboard/property chart blocks */
.mini-bar-chart {
  min-height:142px !important;
  padding:8px 0 0 !important;
  grid-template-columns:repeat(auto-fit, minmax(58px, 1fr)) !important;
}

.mini-bar {
  width:18px !important;
  border-radius:5px 5px 2px 2px !important;
  box-shadow:none !important;
}

.mini-bar-col em {
  max-width:66px !important;
  font-size:10px !important;
}

/* Table density and header polish */
thead th,
table thead th {
  padding:12px 14px !important;
  font-weight:600 !important;
}

td,
th {
  padding:13px 14px !important;
}

/* Buttons: less bulky, more deliberate */
.btn {
  min-height:36px !important;
  padding:0 13px !important;
  border-radius:9px !important;
  font-weight:600 !important;
  box-shadow:none !important;
}

.btn-small {
  min-height:30px !important;
  border-radius:8px !important;
}

/* Inputs/forms */
input,
textarea,
select {
  min-height:42px !important;
  border-radius:10px !important;
  padding:10px 12px !important;
}

textarea {
  min-height:118px !important;
}

.form-grid {
  gap:17px 20px !important;
}

.form-stack {
  gap:16px !important;
}

.field-help,
.help-text,
label small {
  font-size:12px !important;
  line-height:1.38 !important;
}

/* Checkbox/radio fix: previous global input height made them ugly */
input[type="checkbox"],
input[type="radio"] {
  width:16px !important;
  height:16px !important;
  min-width:16px !important;
  min-height:16px !important;
  max-width:16px !important;
  max-height:16px !important;
  padding:0 !important;
  margin:0 !important;
  accent-color:var(--green) !important;
  box-shadow:none !important;
}

.checkbox-inline,
.check-line {
  display:inline-flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:9px !important;
  width:auto !important;
  align-self:flex-start !important;
  color:var(--text) !important;
  font-weight:600 !important;
}

.checkbox-inline input,
.check-line input {
  flex:0 0 auto !important;
}

/* Report design page: color inputs and layout */
.report-design-grid {
  display:grid !important;
  grid-template-columns:minmax(420px, 1fr) minmax(420px, .95fr) !important;
  gap:28px !important;
  align-items:start !important;
}

.report-design-grid .mini-head {
  min-height:auto !important;
}

.color-control {
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  max-width:220px !important;
  margin-top:3px !important;
}

.color-control input[type="color"].color-control-picker,
input[type="color"].color-control-picker,
input[type="color"] {
  -webkit-appearance:none !important;
  appearance:none !important;
  width:48px !important;
  height:42px !important;
  min-width:48px !important;
  min-height:42px !important;
  max-width:48px !important;
  max-height:42px !important;
  padding:4px !important;
  border:1px solid var(--line-strong) !important;
  border-radius:11px !important;
  background:#fffdf8 !important;
  cursor:pointer !important;
  overflow:hidden !important;
}

.color-control input[type="color"]::-webkit-color-swatch-wrapper {
  padding:0 !important;
}

.color-control input[type="color"]::-webkit-color-swatch {
  border:0 !important;
  border-radius:8px !important;
}

.color-control input[type="color"]::-moz-color-swatch {
  border:0 !important;
  border-radius:8px !important;
}

.color-control .color-control-text {
  width:104px !important;
  min-width:104px !important;
  height:42px !important;
  min-height:42px !important;
  padding:0 10px !important;
  font-size:13px !important;
  text-transform:lowercase !important;
}

.report-design-preview {
  margin-top:26px !important;
  grid-template-columns:1.15fr .85fr !important;
  gap:16px !important;
  padding:16px !important;
  border-radius:18px !important;
}

.preview-cover {
  min-height:210px !important;
  border-radius:16px !important;
  padding:24px !important;
}

.preview-cover strong {
  font-size:30px !important;
  font-weight:650 !important;
  letter-spacing:-0.035em !important;
}

.preview-cover span {
  font-size:19px !important;
  font-weight:600 !important;
}

.preview-cover::after {
  display:none !important;
}

.preview-table {
  border-radius:16px !important;
}

/* Logo current box: avoid broken-image layout looking awful */
.report-logo-current {
  border-radius:16px !important;
  padding:16px !important;
  gap:14px !important;
}

.report-logo-current img {
  max-width:145px !important;
  max-height:76px !important;
  border-radius:12px !important;
}

.report-logo-placeholder {
  width:70px !important;
  height:56px !important;
  border-radius:12px !important;
}

/* Drag/drop upload layout fix */
.upload-bar.drop-upload,
.drop-upload.upload-bar {
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  gap:12px !important;
  align-items:stretch !important;
  background:transparent !important;
  border:0 !important;
  padding:0 !important;
  margin:0 0 18px !important;
}

.drop-upload-zone {
  display:block !important;
  min-height:92px !important;
  border:1px dashed var(--line-strong) !important;
  border-radius:14px !important;
  padding:16px !important;
  background:#fffdf8 !important;
}

.drop-upload-zone input[type=file] {
  width:100% !important;
  min-height:36px !important;
  height:auto !important;
  margin-top:10px !important;
  padding:7px 9px !important;
}

.drop-upload-selected {
  margin-top:8px !important;
  display:block !important;
}

.upload-bar.drop-upload .btn,
.drop-upload.upload-bar .btn {
  min-width:158px !important;
  height:auto !important;
  min-height:92px !important;
  white-space:nowrap !important;
  align-self:stretch !important;
}

/* Photo cards should not become weirdly narrow/tall */
.photo-grid {
  display:grid !important;
  grid-template-columns:repeat(auto-fill, minmax(220px, 260px)) !important;
  gap:16px !important;
  align-items:start !important;
}

.photo-card {
  max-width:260px !important;
  padding:12px !important;
}

.photo-card input,
.photo-card textarea {
  min-height:38px !important;
  padding:8px 9px !important;
}

.photo-card textarea {
  min-height:86px !important;
}

.photo-card-bottom {
  gap:8px !important;
}

.photo-card-bottom input[type=number] {
  width:58px !important;
  min-width:58px !important;
}

/* Condition cards: prevent header/text splitting oddly */
.condition-dashboard-grid {
  grid-template-columns:repeat(5, minmax(92px, 1fr)) !important;
  gap:10px !important;
}

.condition-dashboard-grid .condition-risk-card {
  min-height:86px !important;
  padding:13px 8px 12px !important;
  border-radius:13px !important;
}

.condition-dashboard-grid .condition-risk-card strong {
  font-size:22px !important;
  font-weight:650 !important;
}

.condition-dashboard-grid .condition-risk-card em {
  font-size:10.5px !important;
  font-weight:600 !important;
}

/* Keep wide screens useful, but not absurdly stretched */
@media(min-width:1500px){
  .content {
    padding-left:clamp(44px, 4vw, 72px) !important;
    padding-right:clamp(44px, 4vw, 72px) !important;
  }
}

@media(max-width:1100px){
  .report-design-grid {
    grid-template-columns:1fr !important;
  }
}

@media(max-width:780px){
  .upload-bar.drop-upload,
  .drop-upload.upload-bar {
    grid-template-columns:1fr !important;
  }

  .upload-bar.drop-upload .btn,
  .drop-upload.upload-bar .btn {
    min-height:42px !important;
    width:100% !important;
  }

  .condition-dashboard-grid {
    grid-template-columns:repeat(2, minmax(0,1fr)) !important;
  }
}


/* =========================================================
   VRAP v0.7.7 — DASHBOARD/UI CLEANUP PASS
   Fixes the visible issues from the dashboard screenshot:
   - secondary hero button was blank
   - Lucide icons looked clipped/fragmented
   - dashboard content was too narrow/left-heavy
   - hero/card hierarchy was too heavy
   - topbar buttons were too dominant
   - card spacing and headings were inconsistent
   ========================================================= */

:root{
  --vrap-green:#0b3f2e !important;
  --vrap-green-dark:#062f22 !important;
  --vrap-green-hover:#0f4b38 !important;
  --vrap-orange:#ee541e !important;
  --vrap-bg:#f3eee5 !important;
  --vrap-panel:#fffdf8 !important;
  --vrap-line:#ded2c3 !important;
  --vrap-line-strong:#cab9a4 !important;
  --vrap-text:#092018 !important;
  --vrap-muted:#66736b !important;
}

body{
  background:
    radial-gradient(circle at 80% 4%, rgba(11,63,46,.035), transparent 28rem),
    var(--vrap-bg) !important;
}

/* Make the actual work area use the screen properly */
.content{
  width:100% !important;
  max-width:none !important;
  padding:32px clamp(36px, 4vw, 72px) 78px !important;
}

.content > *,
.dashboard-hero,
.metric-grid,
.dashboard-kpi-grid,
.dashboard-grid,
.dashboard-property-head,
.dashboard-properties-table,
.content-grid,
.overview-grid,
.property-hero-overview,
.plan-head,
.table-card,
.panel-form,
.content-block{
  max-width:none !important;
}

/* Typography: less heavy, more product/UI-like */
.topbar h1,
.content h2,
.content h3,
.section-head h2,
.with-icon,
.dashboard-hero h2,
.dashboard-panel h3,
.dashboard-card h3,
.table-card h3,
.panel-form h3,
.property-hero-overview h2{
  font-family:var(--font-heading, "Outfit", "Inter", sans-serif) !important;
  font-weight:560 !important;
  letter-spacing:-.025em !important;
}

.topbar h1{
  font-size:29px !important;
  line-height:1.05 !important;
}

.content h2,
.section-head h2,
.with-icon{
  font-size:31px !important;
  line-height:1.08 !important;
}

.content h3,
.dashboard-panel h3,
.dashboard-card h3,
.table-card h3,
.panel-form h3{
  font-size:22px !important;
  line-height:1.14 !important;
}

.metric-card strong,
.kpi-card strong{
  font-family:var(--font-heading, "Outfit", "Inter", sans-serif) !important;
  font-weight:610 !important;
  letter-spacing:-.026em !important;
}

tbody strong,
.row-title-link,
label{
  font-weight:570 !important;
}

/* Topbar: still clear, but no longer visually fights the page */
.topbar{
  height:66px !important;
  padding:0 clamp(32px, 4vw, 64px) !important;
}

.topbar-actions{
  gap:8px !important;
}

.save-state{
  height:34px !important;
  padding:0 12px !important;
  border-radius:9px !important;
  font-size:12px !important;
  font-weight:570 !important;
  background:rgba(11,63,46,.10) !important;
  color:var(--vrap-green) !important;
  border:1px solid rgba(11,63,46,.14) !important;
}

.topbar .btn,
.topbar-actions .btn{
  height:34px !important;
  min-height:34px !important;
  padding:0 12px !important;
  border-radius:9px !important;
  font-size:12px !important;
  background:var(--vrap-panel) !important;
  color:var(--vrap-green) !important;
  border:1px solid var(--vrap-line-strong) !important;
  box-shadow:none !important;
}

.topbar .btn:hover,
.topbar-actions .btn:hover{
  background:var(--vrap-green) !important;
  color:#fff !important;
  border-color:var(--vrap-green) !important;
}

/* Lucide icon reset — fixes clipped/fragmented card icons */
.icon{
  display:inline-grid !important;
  place-items:center !important;
  width:18px !important;
  height:18px !important;
  min-width:18px !important;
  min-height:18px !important;
  line-height:0 !important;
  overflow:visible !important;
}

.icon svg,
.rail-item .icon svg,
.rail-avatar .icon svg,
.nav-list .icon svg,
.metric-card-icon .icon svg,
.card-icon .icon svg,
.stat-icon .icon svg,
.section-icon-badge .icon svg,
.property-card-accent .icon svg{
  display:block !important;
  width:18px !important;
  height:18px !important;
  overflow:visible !important;
}

.icon svg.lucide,
.rail-item .icon svg.lucide,
.rail-avatar .icon svg.lucide,
.nav-list .icon svg.lucide,
.metric-card-icon .icon svg.lucide,
.card-icon .icon svg.lucide,
.stat-icon .icon svg.lucide,
.section-icon-badge .icon svg.lucide,
.property-card-accent .icon svg.lucide{
  stroke:currentColor !important;
  fill:none !important;
  stroke-width:2 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
}

.metric-card-icon .icon,
.card-icon .icon,
.stat-icon .icon,
.section-icon-badge .icon,
.property-card-accent .icon{
  width:18px !important;
  height:18px !important;
  color:#fff !important;
}

/* Buttons: less chunky, sharper states */
.btn{
  min-height:36px !important;
  height:auto !important;
  border-radius:9px !important;
  padding:0 13px !important;
  font-size:13px !important;
  font-weight:570 !important;
  letter-spacing:-.006em !important;
  box-shadow:none !important;
}

.btn-primary,
.btn-dark{
  background:var(--vrap-green) !important;
  border-color:var(--vrap-green) !important;
  color:#fff !important;
}

.btn-primary:hover,
.btn-dark:hover{
  background:var(--vrap-green-hover) !important;
  border-color:var(--vrap-green-hover) !important;
  color:#fff !important;
}

.btn-light{
  background:var(--vrap-panel) !important;
  color:var(--vrap-green) !important;
  border-color:var(--vrap-line-strong) !important;
}

.btn-light:hover{
  background:#f8f1e7 !important;
  color:var(--vrap-green) !important;
}

/* Dashboard hero: smaller, cleaner, with visible secondary action */
.dashboard-hero{
  width:100% !important;
  min-height:138px !important;
  margin:0 0 22px !important;
  padding:26px 30px !important;
  border-radius:20px !important;
  background:linear-gradient(135deg, #0b3f2e 0%, #062f22 100%) !important;
  color:#fff !important;
  border:0 !important;
  box-shadow:0 18px 44px rgba(6,47,34,.15) !important;
  align-items:center !important;
}

.dashboard-hero::before{
  width:4px !important;
  background:var(--vrap-orange) !important;
}

.dashboard-hero::after{
  opacity:.45 !important;
  right:-110px !important;
  top:-130px !important;
}

.dashboard-hero h2{
  color:#fff !important;
  font-size:35px !important;
  line-height:1.06 !important;
  font-weight:560 !important;
  max-width:760px !important;
  margin:0 0 8px !important;
}

.dashboard-hero p{
  color:rgba(255,255,255,.78) !important;
  font-size:14px !important;
  line-height:1.45 !important;
  max-width:640px !important;
}

.dashboard-kicker{
  color:#ffb596 !important;
  font-size:11px !important;
  letter-spacing:.18em !important;
  margin-bottom:10px !important;
}

.dashboard-hero-actions{
  align-items:center !important;
  justify-content:flex-end !important;
  min-width:255px !important;
}

.dashboard-hero .btn-primary{
  background:var(--vrap-orange) !important;
  border-color:var(--vrap-orange) !important;
  color:#fff !important;
}

.dashboard-hero .btn-light{
  background:#fff !important;
  border-color:#fff !important;
  color:var(--vrap-green) !important;
}

.dashboard-hero .btn-light *,
.dashboard-hero .btn-light .icon,
.dashboard-hero .btn-light svg{
  color:var(--vrap-green) !important;
  stroke:var(--vrap-green) !important;
}

.dashboard-hero .btn-light:hover{
  background:#f4eee5 !important;
  color:var(--vrap-green) !important;
}

/* KPI cards: consistent size and real icon placement */
.metric-grid.dashboard-kpi-grid{
  display:grid !important;
  grid-template-columns:repeat(6, minmax(150px, 1fr)) !important;
  gap:16px !important;
  width:100% !important;
  margin-bottom:20px !important;
}

.metric-card{
  min-height:112px !important;
  padding:17px 18px !important;
  border-radius:15px !important;
  background:var(--vrap-panel) !important;
  border:1px solid var(--vrap-line) !important;
  box-shadow:0 8px 22px rgba(37,30,20,.055) !important;
}

.metric-card span{
  max-width:calc(100% - 48px) !important;
  margin:0 0 9px !important;
  font-size:12px !important;
  line-height:1.25 !important;
  color:var(--vrap-muted) !important;
}

.metric-card strong{
  font-size:28px !important;
  line-height:1.02 !important;
  max-width:100% !important;
  overflow-wrap:anywhere !important;
}

.metric-card em{
  font-size:11px !important;
  color:var(--vrap-muted) !important;
  margin-top:6px !important;
}

.metric-card-icon{
  top:16px !important;
  right:16px !important;
  width:34px !important;
  height:34px !important;
  border-radius:9px !important;
  display:grid !important;
  place-items:center !important;
  background:var(--vrap-green) !important;
  color:#fff !important;
  overflow:visible !important;
}

/* Dashboard panels: proper grid, less empty stretching */
.dashboard-grid.two,
.dashboard-main-grid,
.content-grid.two,
.overview-grid{
  display:grid !important;
  grid-template-columns:minmax(0, 1fr) minmax(0, 1fr) !important;
  gap:20px !important;
  width:100% !important;
  align-items:start !important;
}

.dashboard-panel,
.dashboard-card,
.table-card,
.panel-form,
.content-block{
  border-radius:16px !important;
  background:var(--vrap-panel) !important;
  border:1px solid var(--vrap-line) !important;
  box-shadow:0 10px 26px rgba(37,30,20,.06) !important;
  padding:20px !important;
  height:auto !important;
  min-height:0 !important;
  align-self:start !important;
}

.dashboard-panel-head,
.mini-head{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:space-between !important;
  gap:16px !important;
  margin:0 0 16px !important;
}

.dashboard-panel-head h3,
.mini-head h3{
  margin:0 0 3px !important;
}

.dashboard-panel-head p,
.mini-head p{
  font-size:13px !important;
  color:var(--vrap-muted) !important;
  margin:0 !important;
}

.dashboard-panel-head > a,
.mini-head > a{
  flex:0 0 auto !important;
  color:var(--vrap-green) !important;
  font-size:12px !important;
  font-weight:650 !important;
  text-decoration:none !important;
  padding:6px 9px !important;
  border-radius:8px !important;
}

.dashboard-panel-head > a:hover,
.mini-head > a:hover{
  background:var(--green-soft, #e5f0ea) !important;
}

/* Budget chart: cleaner and less toy-like */
.dashboard-year-chart{
  min-height:155px !important;
  display:grid !important;
  grid-template-columns:repeat(10, minmax(0, 1fr)) !important;
  gap:12px !important;
  align-items:end !important;
  padding:8px 0 0 !important;
}

.dashboard-year-col{
  gap:6px !important;
  font-size:10.5px !important;
  color:var(--vrap-muted) !important;
}

.dashboard-year-bar{
  width:22px !important;
  border-radius:5px 5px 2px 2px !important;
  box-shadow:none !important;
  background:var(--vrap-green) !important;
}

.dashboard-year-col strong{
  font-size:12px !important;
  font-weight:650 !important;
  color:var(--vrap-text) !important;
}

.dashboard-year-col span{
  font-size:10px !important;
  line-height:1.2 !important;
  max-width:64px !important;
}

/* Priority chart: use status colors without looking like a toy */
.priority-bar{
  margin:14px 0 !important;
}

.priority-bar-meta{
  display:flex !important;
  justify-content:space-between !important;
  gap:14px !important;
  margin-bottom:7px !important;
  font-size:12px !important;
}

.priority-bar-meta strong{
  font-weight:620 !important;
}

.priority-bar-meta span{
  color:var(--vrap-muted) !important;
  font-size:11.5px !important;
}

.priority-bar-track{
  height:8px !important;
  border-radius:4px !important;
  background:#e8ded0 !important;
}

.priority-bar-track i{
  height:100% !important;
  display:block !important;
  border-radius:4px !important;
  background:var(--vrap-green) !important;
}

.priority-bar-acute i{ background:#d93665 !important; }
.priority-bar-necessary i{ background:var(--vrap-orange) !important; }
.priority-bar-normal i{ background:#2fa564 !important; }
.priority-bar-beneficial i{ background:#b68a17 !important; }

/* Attention/task cards: cleaner list hierarchy */
.attention-list,
.task-preview-list{
  display:grid !important;
  gap:9px !important;
}

.attention-item,
.task-preview-item{
  background:#fffbf5 !important;
  border:1px solid var(--vrap-line) !important;
  border-radius:12px !important;
  padding:12px 14px !important;
  box-shadow:none !important;
}

.attention-item strong,
.task-preview-item strong{
  font-weight:610 !important;
}

.task-preview-item{
  grid-template-columns:auto minmax(0,1fr) auto auto !important;
}

/* Condition panel: should not look like a giant empty area */
.condition-panel{
  min-height:0 !important;
}

.condition-dashboard-grid,
.dashboard-condition-grid{
  display:grid !important;
  grid-template-columns:repeat(5, minmax(0, 1fr)) !important;
  gap:10px !important;
  margin:0 0 12px !important;
}

.condition-risk-card{
  min-height:78px !important;
  border-radius:12px !important;
  padding:10px 8px !important;
  box-shadow:none !important;
}

.condition-risk-card strong{
  font-size:20px !important;
  line-height:1 !important;
  font-weight:620 !important;
}

.condition-risk-card em{
  font-size:10px !important;
  line-height:1.2 !important;
}

.condition-stack{
  height:8px !important;
  border-radius:4px !important;
  overflow:hidden !important;
  background:#d6ded6 !important;
}

/* Section headers near bottom */
.dashboard-property-head{
  margin-top:22px !important;
  margin-bottom:14px !important;
  align-items:center !important;
}

.section-icon-badge{
  width:36px !important;
  height:36px !important;
  border-radius:10px !important;
  display:inline-grid !important;
  place-items:center !important;
  margin-right:10px !important;
  background:var(--vrap-green) !important;
  color:#fff !important;
}

/* Tables: green headers without feeling like a spreadsheet dump */
.table-card{
  overflow:hidden !important;
}

.table-card table{
  width:100% !important;
}

thead th,
table thead th{
  background:var(--vrap-green) !important;
  color:#fff !important;
  padding:12px 14px !important;
  font-size:12px !important;
  font-weight:590 !important;
  border-bottom:0 !important;
}

td,
th{
  padding:13px 14px !important;
  font-size:13px !important;
}

tbody tr:hover{
  background:#fbf6ee !important;
}

/* Property dashboard: avoid two-column cards stretching into huge empty blocks */
.property-hero-overview{
  width:100% !important;
  padding:22px 24px !important;
  border-radius:17px !important;
}

.property-hero-overview h2{
  font-size:31px !important;
  font-weight:560 !important;
}

.property-hero-actions{
  gap:8px !important;
}

.task-status-grid{
  display:grid !important;
  grid-template-columns:repeat(4, minmax(0,1fr)) !important;
  gap:10px !important;
}

.task-status-grid > div{
  min-height:68px !important;
  padding:12px !important;
  border-radius:12px !important;
}

.energy-card-display{
  min-height:132px !important;
  border-radius:14px !important;
}

.energy-card-display strong{
  font-family:var(--font-heading, "Outfit", "Inter", sans-serif) !important;
  font-weight:620 !important;
}

/* Forms and report design: keep inputs clean */
input,
textarea,
select{
  border:1px solid var(--vrap-line-strong) !important;
  background:var(--vrap-panel) !important;
  border-radius:9px !important;
  min-height:40px !important;
  padding:9px 11px !important;
  font-size:13px !important;
}

input:focus,
textarea:focus,
select:focus{
  border-color:var(--vrap-green) !important;
  box-shadow:0 0 0 3px rgba(11,63,46,.10) !important;
}

input[type="checkbox"],
input[type="radio"]{
  width:15px !important;
  height:15px !important;
  min-width:15px !important;
  min-height:15px !important;
  padding:0 !important;
}

label{
  gap:6px !important;
}

.field-help,
.help-text,
label small{
  font-size:12px !important;
  line-height:1.35 !important;
  color:var(--vrap-muted) !important;
}

/* Responsive */
@media(max-width:1280px){
  .metric-grid.dashboard-kpi-grid{
    grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
  }

  .dashboard-grid.two,
  .dashboard-main-grid,
  .content-grid.two,
  .overview-grid{
    grid-template-columns:1fr !important;
  }
}

@media(max-width:820px){
  .content{
    padding:22px 18px 56px !important;
  }

  .dashboard-hero{
    flex-direction:column !important;
    align-items:flex-start !important;
  }

  .dashboard-hero-actions{
    min-width:0 !important;
    width:100% !important;
    justify-content:flex-start !important;
  }

  .metric-grid.dashboard-kpi-grid,
  .metric-grid.four{
    grid-template-columns:1fr 1fr !important;
  }

  .condition-dashboard-grid,
  .dashboard-condition-grid,
  .task-status-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  }
}

@media(max-width:560px){
  .metric-grid.dashboard-kpi-grid,
  .metric-grid.four{
    grid-template-columns:1fr !important;
  }

  .task-preview-item{
    grid-template-columns:1fr !important;
  }
}


/* =========================================================
   VRAP v0.7.8 — LUCIDE ICON SCOPE FIX
   Important: stroke/fill is now scoped to real Lucide SVGs only.
   We do not force all SVG icons into outline mode anymore.
   ========================================================= */

.icon,
.rail-item .icon,
.rail-avatar .icon,
.nav-list .icon,
.metric-card-icon .icon,
.card-icon .icon,
.stat-icon .icon,
.section-icon-badge .icon,
.property-card-accent .icon{
  display:inline-grid !important;
  place-items:center !important;
  width:18px !important;
  height:18px !important;
  min-width:18px !important;
  min-height:18px !important;
  line-height:0 !important;
  overflow:visible !important;
}

.icon svg,
.rail-item .icon svg,
.rail-avatar .icon svg,
.nav-list .icon svg,
.metric-card-icon .icon svg,
.card-icon .icon svg,
.stat-icon .icon svg,
.section-icon-badge .icon svg,
.property-card-accent .icon svg{
  display:block !important;
  width:18px !important;
  height:18px !important;
  overflow:visible !important;
}

/* Only actual Lucide icons are outline/stroke icons */
svg.lucide,
.icon svg.lucide,
.rail-item .icon svg.lucide,
.rail-avatar .icon svg.lucide,
.nav-list .icon svg.lucide,
.metric-card-icon .icon svg.lucide,
.card-icon .icon svg.lucide,
.stat-icon .icon svg.lucide,
.section-icon-badge .icon svg.lucide,
.property-card-accent .icon svg.lucide{
  stroke:currentColor !important;
  fill:none !important;
  stroke-width:2 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
  vector-effect:non-scaling-stroke !important;
}

/* Do not destroy normal/filled SVGs if they are used later */
.icon svg:not(.lucide),
.rail-item .icon svg:not(.lucide),
.rail-avatar .icon svg:not(.lucide),
.nav-list .icon svg:not(.lucide),
.metric-card-icon .icon svg:not(.lucide),
.card-icon .icon svg:not(.lucide),
.stat-icon .icon svg:not(.lucide),
.section-icon-badge .icon svg:not(.lucide),
.property-card-accent .icon svg:not(.lucide){
  stroke:unset !important;
  fill:currentColor !important;
}

.rail-item,
.rail-avatar,
.nav-list a,
.metric-card-icon,
.card-icon,
.stat-icon,
.section-icon-badge,
.property-card-accent{
  overflow:visible !important;
}

.metric-card-icon,
.card-icon,
.stat-icon,
.section-icon-badge,
.property-card-accent{
  color:#fff !important;
}


/* =========================================================
   VRAP v0.7.9 — ICON + AVATAR POLISH
   Fixes:
   - Lucide icons were visually too heavy.
   - Previous patch still made outline icons dominate the UI.
   - User avatar in rail needs a real, clipped avatar treatment.
   ========================================================= */

/* Stop heavy outline feel: Lucide remains outline, but much thinner and calmer */
svg.lucide,
.icon svg.lucide,
.rail-item .icon svg.lucide,
.rail-avatar .icon svg.lucide,
.nav-list .icon svg.lucide,
.metric-card-icon .icon svg.lucide,
.card-icon .icon svg.lucide,
.stat-icon .icon svg.lucide,
.section-icon-badge .icon svg.lucide,
.property-card-accent .icon svg.lucide,
.topbar .btn svg.lucide,
.topbar-actions .btn svg.lucide{
  stroke-width:1.55 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
  fill:none !important;
}

/* Side navigation may be slightly stronger because it sits on dark green */
.rail-item svg.lucide,
.rail-logout svg.lucide,
.sidepanel .nav-list svg.lucide{
  stroke-width:1.65 !important;
}

/* Card badge icons should be smaller and more elegant */
.metric-card-icon,
.card-icon,
.stat-icon,
.section-icon-badge,
.property-card-accent{
  width:32px !important;
  height:32px !important;
  min-width:32px !important;
  min-height:32px !important;
  border-radius:9px !important;
}

.metric-card-icon .icon,
.card-icon .icon,
.stat-icon .icon,
.section-icon-badge .icon,
.property-card-accent .icon,
.metric-card-icon svg,
.card-icon svg,
.stat-icon svg,
.section-icon-badge svg,
.property-card-accent svg{
  width:15.5px !important;
  height:15.5px !important;
  min-width:15.5px !important;
  min-height:15.5px !important;
}

/* Rail icons: consistent but not cartoon-heavy */
.rail-item,
.rail-logout{
  width:38px !important;
  height:38px !important;
  border-radius:11px !important;
}

.rail-item .icon,
.rail-logout .icon,
.rail-item svg,
.rail-logout svg{
  width:17px !important;
  height:17px !important;
  min-width:17px !important;
  min-height:17px !important;
}

/* Avatar: should behave like a real avatar, not a loose image/icon */
.rail-avatar{
  width:38px !important;
  height:38px !important;
  min-width:38px !important;
  min-height:38px !important;
  padding:0 !important;
  border-radius:12px !important;
  overflow:hidden !important;
  display:grid !important;
  place-items:center !important;
  background:rgba(255,255,255,.10) !important;
  border:1px solid rgba(255,255,255,.16) !important;
  color:#fff !important;
  box-shadow:none !important;
}

.rail-avatar:hover,
.rail-avatar.active{
  background:rgba(255,255,255,.16) !important;
  border-color:rgba(255,255,255,.24) !important;
}

.rail-avatar img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  min-width:100% !important;
  min-height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  border-radius:inherit !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
}

.rail-avatar .icon,
.rail-avatar svg{
  width:17px !important;
  height:17px !important;
  min-width:17px !important;
  min-height:17px !important;
}

/* Do not allow the generic non-lucide fallback to turn uploaded images/inline graphics into filled blocks */
.rail-avatar img,
.profile-avatar-preview img{
  fill:initial !important;
  stroke:initial !important;
}

/* Topbar action icons/text should feel lighter */
.topbar .btn,
.topbar-actions .btn,
.save-state{
  font-weight:540 !important;
}

.topbar .btn svg.lucide,
.topbar-actions .btn svg.lucide{
  width:15px !important;
  height:15px !important;
  stroke-width:1.55 !important;
}

/* Section icon badges looked too loud next to headings */
.section-icon-badge{
  width:34px !important;
  height:34px !important;
  border-radius:9px !important;
}

.section-icon-badge svg.lucide{
  width:15.5px !important;
  height:15.5px !important;
  stroke-width:1.55 !important;
}

/* Property card icon should not overpower the title */
.property-card-accent{
  top:18px !important;
  right:18px !important;
}


/* =========================================================
   VRAP v0.8.0 — PROPERTY THUMBNAILS
   Adds property thumbnails to the property overview cards.
   Uses uploaded property_image_path when available, otherwise a
   controlled placeholder.
   ========================================================= */

.cards-grid{
  grid-template-columns:repeat(auto-fill, minmax(360px, 1fr)) !important;
  gap:22px !important;
  align-items:start !important;
}

.property-card.property-card-with-thumb{
  padding:0 !important;
  overflow:hidden !important;
  min-height:0 !important;
  border-radius:18px !important;
  background:var(--vrap-panel, #fffdf8) !important;
  border:1px solid var(--vrap-line, #ded2c3) !important;
  box-shadow:0 14px 32px rgba(37,30,20,.075) !important;
}

.property-card.property-card-with-thumb::before{
  display:none !important;
}

.property-thumb{
  position:relative;
  height:168px;
  width:100%;
  overflow:hidden;
  background:#e7ded1;
  border-bottom:1px solid var(--vrap-line, #ded2c3);
}

.property-thumb img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transition:transform .24s ease, filter .24s ease;
}

.property-card-with-thumb:hover .property-thumb img{
  transform:scale(1.025);
  filter:saturate(1.02) contrast(1.02);
}

.property-thumb::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(6,47,34,.06) 0%, rgba(6,47,34,.05) 48%, rgba(6,47,34,.18) 100%);
  pointer-events:none;
}

.property-thumb-placeholder{
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  color:rgba(11,63,46,.70);
  background:
    radial-gradient(circle at 18% 18%, rgba(238,84,30,.12), transparent 18rem),
    linear-gradient(135deg, #eee5d8 0%, #f8f1e8 100%);
  font-size:13px;
  font-weight:570;
}

.property-thumb-placeholder-icon{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:var(--vrap-green, #0b3f2e);
  color:#fff;
  box-shadow:0 10px 22px rgba(11,63,46,.14);
}

.property-thumb-placeholder-icon .icon,
.property-thumb-placeholder-icon svg{
  width:20px !important;
  height:20px !important;
}

.property-thumb-top{
  position:absolute;
  z-index:2;
  top:12px;
  right:12px;
  display:flex;
  align-items:center;
  gap:8px;
}

.property-thumb-plan{
  height:30px;
  display:inline-flex;
  align-items:center;
  padding:0 10px;
  border-radius:999px;
  background:rgba(255,253,248,.92);
  color:var(--vrap-green, #0b3f2e);
  border:1px solid rgba(255,255,255,.55);
  font-size:12px;
  font-weight:620;
  backdrop-filter:blur(10px);
  box-shadow:0 8px 18px rgba(7,27,20,.12);
}

.property-thumb-icon{
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:var(--vrap-green, #0b3f2e);
  color:#fff;
  box-shadow:0 8px 18px rgba(7,27,20,.18);
}

.property-thumb-icon .icon,
.property-thumb-icon svg{
  width:15.5px !important;
  height:15.5px !important;
}

.property-card-body{
  padding:20px 22px 22px !important;
}

.property-card-with-thumb .property-card-top{
  display:block !important;
  margin:0 !important;
}

.property-card-with-thumb .property-card-top strong{
  display:block;
  font-size:22px !important;
  line-height:1.06 !important;
  font-weight:610 !important;
  letter-spacing:-.025em !important;
  color:var(--vrap-text, #092018) !important;
}

.property-card-with-thumb p{
  min-height:45px !important;
  margin:18px 0 0 !important;
  color:#4f5b54 !important;
  font-size:14px !important;
  line-height:1.38 !important;
}

.property-card-with-thumb .property-meta{
  display:flex !important;
  justify-content:space-between !important;
  gap:16px !important;
  margin-top:15px !important;
  padding-top:14px !important;
  border-top:1px solid var(--vrap-line, #ded2c3) !important;
  color:#4d5a53 !important;
  font-size:13px !important;
}

.property-card-with-thumb .property-meta span:last-child{
  font-weight:620;
  color:var(--vrap-text, #092018);
}

.property-card-with-thumb .card-actions{
  display:grid !important;
  grid-template-columns:1fr 1fr 78px !important;
  gap:8px !important;
  margin-top:18px !important;
}

.property-card-with-thumb .card-actions .btn{
  width:100% !important;
  min-height:37px !important;
}

@media(max-width:780px){
  .cards-grid{
    grid-template-columns:1fr !important;
  }

  .property-thumb{
    height:190px;
  }
}

@media(max-width:480px){
  .property-card-with-thumb .card-actions{
    grid-template-columns:1fr !important;
  }
}


/* =========================================================
   VRAP v0.8.2 — PROPERTY THUMBNAIL URL FIX
   Uses stored image URL directly instead of relying on server-side
   is_file() checks. If the image URL fails, the placeholder appears.
   ========================================================= */

.property-thumb.has-image .property-thumb-placeholder{
  display:none !important;
}

.property-thumb.has-image.is-missing .property-thumb-placeholder,
.property-thumb.no-image .property-thumb-placeholder{
  display:flex !important;
}

.property-thumb.has-image.is-missing img{
  display:none !important;
}

.property-thumb.has-image img{
  display:block !important;
}

.property-thumb.no-image img{
  display:none !important;
}


/* =========================================================
   VRAP v0.8.4 — NO TOPBAR + DANISH PLURAL FIX
   Topbar is removed from layout. Profile and logout stay in the
   left rail, so the main pages get more focus and less duplication.
   ========================================================= */

.topbar{
  display:none !important;
}

.content.content-without-topbar,
.content{
  padding-top:34px !important;
}

/* With no topbar, the first section should feel intentional */
.content > .section-head:first-child,
.content > .dashboard-hero:first-child,
.content > .property-hero-overview:first-child,
.content > .plan-head:first-child,
.content > .panel-form:first-child,
.content > .table-card:first-child{
  margin-top:0 !important;
}

/* Property overview spacing after removing the redundant page bar */
.no-sidepanel .content.content-without-topbar{
  padding-top:40px !important;
}

.has-sidepanel .content.content-without-topbar{
  padding-top:32px !important;
}

/* Slightly calmer top alignment now that there is no H1 bar */
.section-head{
  margin-bottom:24px !important;
}

.section-head h2{
  margin-top:0 !important;
}

/* Keep the orange primary action visually available without the topbar */
.section-head .btn-primary{
  align-self:flex-start !important;
}


/* =========================================================
   VRAP v0.8.7 — AI helper buttons for building parts, tasks
   and photo captions
   ========================================================= */

.field-with-toolbar{
  display:block;
}

.textarea-toolbar .btn-ai{
  white-space:nowrap;
}

.photo-field-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:6px;
}

.btn.btn-tiny{
  min-height:0;
  padding:5px 8px;
  font-size:11px;
  line-height:1;
  border-radius:9px;
}

.photo-caption-label textarea{
  min-height:74px;
}


/* =========================================================
   VRAP v0.8.8 — AI textarea width/height fix
   Fixes textareas placed outside flex labels after AI toolbar was added.
   ========================================================= */

textarea{
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}

/* Full-width AI text fields */
.field-with-toolbar{
  width:100% !important;
  max-width:100% !important;
  display:block !important;
}

.field-with-toolbar textarea{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
}

/* Report/body text fields should have room for AI output */
.panel-form > .field-with-toolbar textarea,
.inline-create-form > .field-with-toolbar textarea{
  min-height:180px !important;
  resize:vertical !important;
}

/* Task edit specifically needs a proper writing area */
#task_description_existing,
#task_description_new{
  min-height:210px !important;
}

/* Building part report texts are longer and should breathe */
#part_description,
#part_maintenance_text{
  min-height:260px !important;
}

/* Photo captions stay compact */
.photo-card textarea,
.photo-caption-label textarea{
  min-height:82px !important;
}


/* =========================================================
   VRAP v0.8.9 — photo preview regression fix
   Keeps photo cards stable after AI toolbar/textarea changes.
   ========================================================= */

.photo-card img{
  display:block !important;
  width:100% !important;
  aspect-ratio:4/3 !important;
  min-height:150px !important;
  object-fit:cover !important;
  border-radius:14px !important;
  background:#f1ece3 !important;
}

.photo-card .photo-field-row{
  width:100% !important;
}

.photo-card .btn-tiny{
  flex:0 0 auto !important;
}


/* =========================================================
   VRAP v0.9.0 — user management + role UI
   ========================================================= */

.role-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin-bottom:22px;
}

.role-card{
  background:#fffdf8;
  border:1px solid rgba(12,55,39,.14);
  border-radius:18px;
  padding:18px 18px 16px;
  box-shadow:0 14px 34px rgba(29,24,16,.05);
}

.role-card strong{
  display:block;
  font-family:var(--font-heading);
  font-size:18px;
  color:var(--vrap-green-dark);
  margin-bottom:6px;
}

.role-card p{
  margin:0;
  color:#5f6f67;
  line-height:1.5;
  font-size:14px;
}

.role-badge{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:7px 10px;
  font-size:12px;
  font-weight:800;
  border:1px solid rgba(12,55,39,.12);
}

.role-badge-admin{
  background:#0b3f2e;
  color:#fff;
}

.role-badge-editor{
  background:#e7f5ee;
  color:#0b3f2e;
}

.role-badge-viewer{
  background:#f3eee5;
  color:#5f6f67;
}

.user-chip{
  display:inline-flex;
  align-items:center;
  margin-left:8px;
  padding:3px 7px;
  border-radius:999px;
  font-size:11px;
  font-weight:800;
  background:#eef8f2;
  color:#0b3f2e;
  vertical-align:middle;
}

.user-chip.super{
  background:#fff0e9;
  color:#ee541e;
}

.users-table-card table td{
  vertical-align:middle;
}

.user-admin-grid,
.user-edit-grid{
  align-items:start;
}

.danger-zone{
  margin-top:22px;
  padding:18px;
  border:1px solid rgba(192,31,26,.18);
  border-radius:16px;
  background:#fff8f6;
}

.danger-zone strong{
  display:block;
  color:#9c1916;
  margin-bottom:5px;
}

.danger-zone p{
  margin:0 0 14px;
  color:#76534d;
}

.readonly-note{
  border:1px solid rgba(12,55,39,.14);
  background:#eef8f2;
  color:#0b3f2e;
  border-radius:14px;
  padding:12px 14px;
  margin-bottom:18px;
  font-weight:700;
}

@media (max-width: 980px){
  .role-grid{
    grid-template-columns:1fr;
  }
}


/* =========================================================
   VRAP v0.9.3 — workflow, export and AI report polish
   ========================================================= */

.publish-card-pro{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
}

.publish-card-pro .publish-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:10px;
}

.workflow-dashboard{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:14px;
  margin:22px 0;
}

.workflow-card{
  background:#fffdf8;
  border:1px solid rgba(12,55,39,.12);
  border-radius:18px;
  padding:16px;
  box-shadow:0 14px 34px rgba(29,24,16,.05);
}

.workflow-card span{
  display:block;
  color:#6a746f;
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:7px;
}

.workflow-card strong{
  display:block;
  color:var(--vrap-green-dark);
  font-family:var(--font-heading);
  font-size:24px;
  letter-spacing:-.04em;
  margin-bottom:7px;
}

.workflow-card p{
  margin:0;
  color:#66736c;
  font-size:13px;
  line-height:1.42;
}

.workflow-card.highlight{
  background:#0b3f2e;
  border-color:#0b3f2e;
}

.workflow-card.highlight span,
.workflow-card.highlight p{
  color:rgba(255,255,255,.74);
}

.workflow-card.highlight strong{
  color:#fff;
}

.ai-polish-card,
.export-help-card{
  margin:18px 0;
  border:1px solid rgba(12,55,39,.12);
  border-radius:18px;
  background:#fffdf8;
  padding:18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}

.ai-polish-card{
  background:#fff7f2;
  border-color:rgba(238,84,30,.22);
}

.ai-polish-card strong,
.export-help-card strong{
  display:block;
  color:var(--vrap-green-dark);
  font-family:var(--font-heading);
  font-size:18px;
  margin-bottom:5px;
}

.ai-polish-card p,
.export-help-card p{
  margin:0;
  color:#64716a;
  line-height:1.45;
}

.ai-polish-card form{
  flex:0 0 auto;
}

@media (max-width: 1200px){
  .workflow-dashboard{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .publish-card-pro,
  .ai-polish-card,
  .export-help-card{
    display:block;
  }
  .publish-card-pro .publish-actions,
  .ai-polish-card form{
    margin-top:14px;
    justify-content:flex-start;
  }
}

@media (max-width: 720px){
  .workflow-dashboard{
    grid-template-columns:1fr;
  }
}


/* =========================================================
   VRAP v0.9.4 — simple total price + optional detailed price
   ========================================================= */

.task-price-box{
  grid-column:1 / -1;
  border:1px solid rgba(12,55,39,.14);
  border-radius:18px;
  background:#fffdf8;
  padding:18px;
  box-shadow:0 10px 24px rgba(29,24,16,.035);
}

.task-price-main{
  display:grid;
  grid-template-columns:minmax(260px,1fr) minmax(280px,1.15fr);
  gap:18px;
  align-items:end;
}

.task-price-main label{
  margin:0;
}

.task-price-main input[name="task_total_price"]{
  font-size:18px;
  font-weight:800;
  color:var(--vrap-green-dark);
}

.task-price-toggle{
  min-height:48px;
  align-items:flex-start;
  padding:12px 14px;
  border:1px dashed rgba(12,55,39,.22);
  border-radius:14px;
  background:#f7faf7;
}

.task-price-toggle input{
  margin-top:2px;
}

.task-price-toggle span{
  display:block;
  font-weight:800;
  color:var(--vrap-green-dark);
}

.task-price-toggle .field-help{
  margin-top:4px;
  font-weight:600;
  color:#68766f;
}

.task-price-details{
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid rgba(12,55,39,.12);
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}

.task-price-details[hidden]{
  display:none !important;
}

.task-price-box.is-detailed{
  background:#fffaf4;
  border-color:rgba(238,84,30,.22);
}

@media (max-width: 980px){
  .task-price-main,
  .task-price-details{
    grid-template-columns:1fr;
  }
}


/* =========================================================
   VRAP v0.9.5 — task form layout polish
   Tightens the add/edit task form so price, status and AI fields
   feel integrated instead of dropped into the page.
   ========================================================= */

.inline-create-form{
  align-items:start;
}

.inline-create-form h3{
  grid-column:1 / -1;
  margin-bottom:2px;
}

/* Keep the first task fields clean and even */
.inline-create-form > label{
  min-width:0;
}

/* The price area should feel like one controlled module */
.inline-create-form .task-price-box{
  margin-top:2px;
  margin-bottom:0;
  padding:16px;
}

.inline-create-form .task-price-main{
  grid-template-columns:minmax(320px,.95fr) minmax(360px,1.05fr);
  align-items:stretch;
}

.inline-create-form .task-price-main > label,
.inline-create-form .task-price-toggle{
  height:100%;
}

.inline-create-form .task-price-toggle{
  display:flex;
  gap:10px;
  margin:0;
  padding:14px 16px;
}

.inline-create-form .task-price-toggle input{
  flex:0 0 auto;
  width:16px;
  height:16px;
}

.inline-create-form .task-price-details{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

/* Place status as a compact full-width row after price instead of leaving it stranded */
.inline-create-form > label:has(select[name="task_status"]){
  grid-column:1 / -1;
  max-width:360px;
}

/* The description block should be visually connected and not feel like a leftover field */
.inline-create-form > .textarea-toolbar{
  grid-column:1 / -1;
  margin-top:2px;
  padding-top:4px;
}

.inline-create-form > .field-with-toolbar{
  grid-column:1 / -1;
}

.inline-create-form > .field-with-toolbar textarea{
  min-height:190px !important;
}

/* Button row should sit cleanly under the description */
.inline-create-form > .btn.btn-primary{
  grid-column:1 / -1;
  justify-self:start;
  margin-top:0;
}

/* Rediger opgave page gets same price module polish */
.panel-form .task-price-box{
  margin:2px 0 2px;
}

.panel-form .task-price-main{
  grid-template-columns:minmax(320px,.95fr) minmax(360px,1.05fr);
}

.panel-form .task-price-toggle{
  display:flex;
  gap:10px;
  margin:0;
  padding:14px 16px;
}

.panel-form .task-price-details{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

/* Make the helper text less visually noisy in the price card */
.task-price-box .field-help{
  max-width:680px;
}

.task-price-main > label .field-help{
  min-height:34px;
}

/* Existing tasks table: calmer spacing and less cramped controls */
.tasks-card table th,
.tasks-card table td{
  padding-top:14px;
  padding-bottom:14px;
}

.tasks-card .actions{
  white-space:nowrap;
}

/* Photo cards after AI button should keep a more deliberate card size */
.photo-card{
  align-self:start;
}

.photo-card img{
  min-height:165px !important;
}

/* Uploaded image missing/old-path state should not collapse the card visually */
.photo-card img[src=""],
.photo-card img:not([src]){
  background:#f1ece3 !important;
}

@media (max-width: 1180px){
  .inline-create-form .task-price-main,
  .panel-form .task-price-main,
  .inline-create-form .task-price-details,
  .panel-form .task-price-details{
    grid-template-columns:1fr;
  }

  .inline-create-form > label:has(select[name="task_status"]){
    max-width:none;
  }
}


/* =========================================================
   VRAP v0.9.6 — building part report status / quick scoping
   ========================================================= */

.plan-setup-card{
  margin:18px 0;
  padding:18px;
  border:1px solid rgba(12,55,39,.14);
  border-radius:18px;
  background:#fffdf8;
}

.plan-setup-card h3{
  margin:0 0 6px;
  font-family:var(--font-heading);
  color:var(--vrap-green-dark);
}

.plan-setup-card p{
  margin:0 0 14px;
  color:#66736c;
}

.setup-check-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.part-status-panel{
  margin:18px 0 22px;
  padding:18px;
  border:1px solid rgba(12,55,39,.14);
  border-radius:20px;
  background:#fffdf8;
  box-shadow:0 12px 28px rgba(29,24,16,.04);
}

.part-status-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
}

.part-status-head strong{
  display:block;
  color:var(--vrap-green-dark);
  font-family:var(--font-heading);
  font-size:18px;
  margin-bottom:4px;
}

.part-status-head p{
  margin:0;
  color:#66736c;
  line-height:1.45;
}

.part-status-badge,
.report-status-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  padding:6px 10px;
  font-size:11px;
  font-weight:900;
  border:1px solid rgba(12,55,39,.14);
  white-space:nowrap;
}

.part-status-full{background:#e9f5ee;color:#0b3f2e}
.part-status-no-work{background:#f5f0e7;color:#6b5538}
.part-status-not-relevant{background:#eef1f0;color:#53635c}
.part-status-not-assessed{background:#fff2e9;color:#bc3f12}
.part-status-merged{background:#edf0ff;color:#34427a}

.part-status-quick{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
}

.part-full-fields-note{
  margin:-6px 0 18px;
  padding:11px 14px;
  border-radius:14px;
  background:#eef8f2;
  color:#0b3f2e;
  font-size:13px;
  line-height:1.4;
}

.part-status-summary{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin:0 0 18px;
}

.part-status-summary div{
  background:#fffdf8;
  border:1px solid rgba(12,55,39,.12);
  border-radius:16px;
  padding:14px 16px;
}

.part-status-summary span{
  display:block;
  color:#66736c;
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.part-status-summary strong{
  display:block;
  color:var(--vrap-green-dark);
  font-family:var(--font-heading);
  font-size:28px;
  margin-top:2px;
}

.muted-row{
  opacity:.78;
}

@media (max-width: 840px){
  .setup-check-grid,
  .part-status-summary{
    grid-template-columns:1fr;
  }
  .part-status-head{
    display:block;
  }
  .part-status-head .part-status-badge{
    margin-top:12px;
  }
}


/* =========================================================
   VRAP v1.0.0 — dashboard KPI icon polish
   Fixes top KPI icons looking too high/heavy inside their green boxes.
   ========================================================= */

.dashboard-kpi-grid .metric-card-icon,
.metric-grid .metric-card .metric-card-icon{
  top:16px !important;
  right:16px !important;
  width:34px !important;
  height:34px !important;
  min-width:34px !important;
  min-height:34px !important;
  padding:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  place-items:center !important;
  border-radius:10px !important;
  line-height:0 !important;
  overflow:hidden !important;
  box-sizing:border-box !important;
}

.dashboard-kpi-grid .metric-card-icon .icon,
.metric-grid .metric-card .metric-card-icon .icon{
  width:17px !important;
  height:17px !important;
  min-width:17px !important;
  min-height:17px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  place-items:center !important;
  line-height:0 !important;
  padding:0 !important;
  margin:0 !important;
  position:static !important;
  transform:none !important;
}

.dashboard-kpi-grid .metric-card-icon svg,
.dashboard-kpi-grid .metric-card-icon .icon svg,
.metric-grid .metric-card .metric-card-icon svg,
.metric-grid .metric-card .metric-card-icon .icon svg{
  width:16px !important;
  height:16px !important;
  min-width:16px !important;
  min-height:16px !important;
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  transform:none !important;
  overflow:visible !important;
}

.dashboard-kpi-grid .metric-card-icon svg.lucide,
.dashboard-kpi-grid .metric-card-icon .icon svg.lucide,
.metric-grid .metric-card .metric-card-icon svg.lucide,
.metric-grid .metric-card .metric-card-icon .icon svg.lucide{
  stroke-width:1.35 !important;
  vector-effect:non-scaling-stroke !important;
  fill:none !important;
}

/* Keep the label from colliding with the more balanced icon box */
.dashboard-kpi-grid .metric-card span,
.metric-grid .metric-card span{
  margin-right:50px !important;
}


/* =========================================================
   VRAP v1.0.2 — fixed rail logo mark
   The image is constrained both in HTML and CSS so it can never
   render at natural size across the page.
   ========================================================= */

.rail-logo{
  width:38px !important;
  height:38px !important;
  min-width:38px !important;
  min-height:38px !important;
  max-width:38px !important;
  max-height:38px !important;
  border-radius:12px !important;
  background:#f36f21 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:7px !important;
  overflow:hidden !important;
  box-shadow:none !important;
  box-sizing:border-box !important;
  line-height:0 !important;
  flex:0 0 38px !important;
}

.rail-logo .rail-logo-mark,
.rail-logo > img{
  display:block !important;
  width:24px !important;
  height:24px !important;
  min-width:24px !important;
  min-height:24px !important;
  max-width:24px !important;
  max-height:24px !important;
  object-fit:contain !important;
  object-position:center center !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  flex:0 0 auto !important;
}

.rail-logo span{
  display:none !important;
}

/* === Unified condition badges === */
.condition-badge{display:inline-flex;align-items:center;gap:10px;vertical-align:middle;line-height:1.2}
.condition-badge-glyph{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;line-height:0}
.condition-symbol-svg{width:26px;height:26px;display:block;filter:drop-shadow(0 1px 0 rgba(255,255,255,.18))}
.condition-symbol-house{fill:currentColor;transition:fill .15s ease}
.condition-symbol-detail{stroke:#fff;stroke-width:1.65}
.condition-badge-text{font-weight:700;color:var(--green-deep,#0f3022)}
.condition-badge--variant-label{white-space:nowrap}
.condition-badge--variant-hero{gap:12px}
.condition-badge--variant-hero .condition-symbol-svg{width:42px;height:42px}
.condition-badge--variant-hero .condition-badge-text{font-size:18px;font-weight:800}
.condition-badge--variant-icon{gap:0}
.condition-badge--variant-icon .condition-symbol-svg{width:24px;height:24px}
.condition-badge--critical{color:#d92d5b}
.condition-badge--less-good{color:#ee541e}
.condition-badge--acceptable{color:#e3b600}
.condition-badge--very-good{color:#23a65a}
.condition-badge--not-assessed{color:#b7c2bb}
.condition-badge--critical .condition-badge-text{color:#8a1434}
.condition-badge--less-good .condition-badge-text{color:#8b2e0f}
.condition-badge--acceptable .condition-badge-text{color:#705900}
.condition-badge--very-good .condition-badge-text{color:#0f5c37}
.condition-badge--not-assessed .condition-badge-text{color:#606963}
.condition-risk-card .condition-badge{flex-direction:column;gap:8px;justify-content:center}
.condition-risk-card .condition-badge-text{display:none}
.condition-risk-card .condition-badge-glyph .condition-symbol-svg{width:30px;height:30px}
.condition-cell .condition-badge,.condition-stack .condition-badge{white-space:nowrap}
.condition-cell .condition-badge-text{font-weight:700}
.part-meta .condition-badge{justify-content:flex-end}
.legend-list .condition-badge{margin-bottom:10px}
@media (max-width: 860px){
  .condition-badge--variant-label .condition-badge-text{font-size:13px}
}


/* =========================================================
   VRAP v1.1.6 — Budget pr. år fordelt efter prioritet
   ========================================================= */
.dashboard-year-chart-wrap{
  display:flex;
  flex-direction:column;
  min-width:0;
}

.dashboard-year-chart-wrap .dashboard-year-chart{
  position:relative;
  min-height:162px !important;
  padding:10px 0 0 !important;
  background:
    linear-gradient(to top, rgba(16,55,36,.07) 1px, transparent 1px) 0 0 / 100% 38px;
  border-bottom:1px solid rgba(16,55,36,.12);
}

.dashboard-year-bar-stack{
  width:24px;
  min-height:4px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  overflow:hidden;
  border-radius:6px 6px 2px 2px;
  background:#e7ece9;
  box-shadow:inset 0 0 0 1px rgba(16,55,36,.06);
}

.dashboard-year-bar-stack.is-empty{
  background:#dfe6e2;
  box-shadow:none;
}

.dashboard-year-segment{
  display:block;
  width:100%;
  min-height:2px;
  flex:0 0 auto;
}

.dashboard-year-segment-acute,
.dashboard-chart-legend-dot-acute{background:#d93665;}

.dashboard-year-segment-necessary,
.dashboard-chart-legend-dot-necessary{background:var(--vrap-orange, #ee541e);}

.dashboard-year-segment-normal,
.dashboard-chart-legend-dot-normal{background:#2fa564;}

.dashboard-year-segment-beneficial,
.dashboard-chart-legend-dot-beneficial{background:#b68a17;}

.dashboard-chart-legend{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:9px 18px;
  padding:15px 0 0;
  color:var(--vrap-muted, #667069);
  font-size:11px;
  font-weight:600;
}

.dashboard-chart-legend > span{
  display:inline-flex;
  align-items:center;
  gap:7px;
  white-space:nowrap;
}

.dashboard-chart-legend-dot{
  width:10px;
  height:10px;
  display:inline-block;
  border-radius:50%;
  box-shadow:0 0 0 2px #fff, 0 0 0 3px rgba(16,55,36,.08);
}

@media (max-width: 980px){
  .dashboard-year-bar-stack{width:20px;}
  .dashboard-chart-legend{gap:8px 12px;}
}

/* =========================================================
   VRAP v1.1.8 — dashboard priority chart only
   Match chart segments/legend to the existing priority badge accents.
   No global badge or report changes in this patch.
   ========================================================= */
.dashboard-year-segment-acute,
.dashboard-chart-legend-dot-acute{
  background:#a2214c !important;
}

.dashboard-year-segment-necessary,
.dashboard-chart-legend-dot-necessary{
  background:#b34617 !important;
}

.dashboard-year-segment-normal,
.dashboard-chart-legend-dot-normal{
  background:#1f6f45 !important;
}

.dashboard-year-segment-beneficial,
.dashboard-chart-legend-dot-beneficial{
  background:#8a6810 !important;
}

/* =========================================================
   VRAP v1.2.1 — overordnet økonomistyring
   Scoped til economy.php. Eksisterende funktioner og tabeller bevares.
   ========================================================= */
.economy-page-head{align-items:center}
.economy-page-head .export-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.economy-kpi-grid{margin-bottom:18px}

.economy-outlook{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(260px,.82fr) minmax(0,1.55fr);
  gap:22px;
  align-items:center;
  margin:0 0 18px;
  padding:24px;
  border:1px solid #154d39;
  border-radius:24px;
  color:#fff;
  background-color:#0d422f !important;
  background-image:linear-gradient(135deg,#0f4a35 0%,#0b3829 72%,#092f23 100%) !important;
  box-shadow:0 18px 42px rgba(11,49,35,.14);
}
.economy-outlook::after{
  content:"";
  position:absolute;
  right:-95px;
  top:-145px;
  width:270px;
  height:270px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:50%;
  box-shadow:0 0 0 54px rgba(255,255,255,.025),0 0 0 108px rgba(255,255,255,.017);
  pointer-events:none;
}
.economy-outlook-copy,.economy-outlook-metrics{position:relative;z-index:1}
.economy-outlook-copy>span{
  display:block;
  margin-bottom:7px;
  color:#cfe2d8 !important;
  font-size:10px;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.content .economy-outlook .economy-outlook-copy h3{margin:0 0 7px;color:#fff !important;font-size:25px;line-height:1.08}
.content .economy-outlook .economy-outlook-copy p{max-width:390px;margin:0;color:#d8e7df !important;font-size:13px;line-height:1.55}
.economy-outlook-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.economy-outlook-card{
  min-width:0;
  min-height:112px;
  padding:16px;
  border:1px solid rgba(255,255,255,.48);
  border-radius:17px;
  color:var(--green-deep,#0d422f);
  background:#fffdf9;
  box-shadow:0 10px 22px rgba(0,0,0,.09);
}
.economy-outlook-card span,.economy-outlook-card em{display:block;color:#6d776f;font-size:10px;font-style:normal}
.economy-outlook-card strong{
  display:block;
  overflow:hidden;
  margin:11px 0 5px;
  color:#0d422f;
  font-family:var(--heading-font,"Outfit",sans-serif);
  font-size:23px;
  line-height:1.05;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.economy-main-grid{
  display:grid !important;
  grid-template-columns:minmax(0,1.35fr) minmax(330px,.85fr) !important;
  gap:18px !important;
  align-items:stretch !important;
  margin-bottom:18px;
}
.economy-panel{margin-bottom:18px;border-radius:22px}
.economy-main-grid .economy-panel{height:100%;margin-bottom:0}
.economy-panel .dashboard-panel-head{margin-bottom:16px}
.economy-panel-tag{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:5px 10px;
  border:1px solid #dce6df;
  border-radius:999px;
  color:var(--green-deep,#0d422f);
  background:#f3f7f4;
  font-size:10px;
  font-weight:800;
  white-space:nowrap;
}
.economy-year-chart-wrap .dashboard-year-chart{min-height:218px !important;padding-top:18px !important}
.economy-year-chart-wrap .dashboard-year-col span{font-size:10px}
.economy-priority-bars{gap:19px;padding-top:4px}
.economy-priority-bars .priority-bar-track{height:8px}
.economy-priority-total{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-top:20px;
  padding:14px 16px;
  border:1px solid #e9e0d5;
  border-radius:14px;
  background:#f9f6f0;
}
.economy-priority-total span{color:var(--muted,#667069);font-size:12px}
.economy-priority-total strong{color:var(--green-deep,#0d422f);font-size:16px}

.economy-heatmap-panel{margin-bottom:18px}
.economy-heat-legend{display:flex;align-items:center;gap:4px;color:var(--muted,#667069);font-size:10px;font-weight:700}
.economy-heat-legend i{width:17px;height:12px;border-radius:4px}
.economy-heatmap-scroll{overflow-x:auto;padding:2px 0 4px;scrollbar-width:thin}
.economy-heatmap{
  display:grid;
  grid-template-columns:minmax(210px,1.55fr) repeat(var(--economy-year-count),minmax(76px,1fr));
  min-width:940px;
  overflow:hidden;
  border:1px solid #e6ddd1;
  border-radius:16px;
  background:#fff;
}
.economy-heatmap>*{min-height:52px;border-right:1px solid #eee6dc;border-bottom:1px solid #eee6dc}
.economy-heatmap-corner,.economy-heatmap-year{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  color:#fff;
  background:#0d422f;
  font-size:11px;
  font-weight:800;
}
.economy-heatmap-corner{justify-content:flex-start;padding:0 14px}
.economy-heatmap-property{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:3px;
  padding:9px 14px;
  color:var(--green-deep,#0d422f);
  background:#fffdf9;
  text-decoration:none;
}
.economy-heatmap-property:hover{background:#f4f8f5}
.economy-heatmap-property strong{font-size:12px}
.economy-heatmap-property span{overflow:hidden;color:var(--muted,#667069);font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.economy-heat-cell{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:5px;
  color:#113a2a;
  font-size:10px;
  font-weight:800;
  text-align:center;
  text-decoration:none;
  transition:transform .15s ease,box-shadow .15s ease,filter .15s ease;
}
.economy-heat-cell[href]:hover{position:relative;z-index:2;transform:translateY(-1px);box-shadow:0 8px 18px rgba(13,66,47,.13);filter:saturate(1.08)}
.economy-heat-cell.heat-0{color:#a8b0ab;background:#faf9f6}
.economy-heat-cell.heat-1,.economy-heat-legend .heat-1{background:#e5f1e9}
.economy-heat-cell.heat-2,.economy-heat-legend .heat-2{background:#c8e2d1}
.economy-heat-cell.heat-3,.economy-heat-legend .heat-3{background:#91c5a4}
.economy-heat-cell.heat-4,.economy-heat-legend .heat-4{color:#fff;background:#4b9568}
.economy-heat-cell.heat-5,.economy-heat-legend .heat-5{color:#fff;background:#175a3b}
.economy-heatmap-total-label{background:#f3f0e9}
.economy-heat-total{color:#fff;background:#0d422f}
.economy-heat-total.is-empty{color:#7f8a83;background:#eef1ee}

.economy-benchmark-panel,.economy-parts-panel{margin-bottom:18px}
.economy-property-cards{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(245px,1fr));
  gap:12px;
}
.economy-property-card{
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  min-height:292px;
  padding:17px;
  border:1px solid #e7ded2;
  border-radius:18px;
  color:inherit;
  background:linear-gradient(180deg,#fffdf9 0%,#faf7f1 100%);
  text-decoration:none;
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.economy-property-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#1f6f45}
.economy-property-card:hover{transform:translateY(-2px);border-color:#cdded2;box-shadow:0 14px 28px rgba(26,55,40,.08)}
.economy-property-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.economy-property-rank{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:34px;
  height:26px;
  padding:0 8px;
  border-radius:999px;
  color:#0d422f;
  background:#eaf3ed;
  font-size:10px;
  font-weight:800;
}
.economy-property-arrow{color:#87958c;font-size:18px;line-height:1}
.economy-property-name{overflow:hidden;color:#0d422f;font-size:15px;text-overflow:ellipsis;white-space:nowrap}
.economy-property-address{overflow:hidden;margin-top:3px;color:#778078;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.economy-property-price{display:flex;align-items:baseline;gap:6px;margin:18px 0 8px}
.economy-property-price strong{color:#0d422f;font-family:var(--heading-font,"Outfit",sans-serif);font-size:25px;line-height:1}
.economy-property-price span{color:#778078;font-size:10px;font-weight:700}
.economy-property-comparison{
  align-self:flex-start;
  display:inline-flex;
  align-items:center;
  min-height:24px;
  margin-bottom:13px;
  padding:4px 9px;
  border:1px solid #dfe9e2;
  border-radius:999px;
  color:#34604b;
  background:#f1f7f3;
  font-size:9px;
  font-weight:800;
  line-height:1.2;
}
.economy-property-comparison.is-above{border-color:#f2c8b6;color:#a8431b;background:#fff2eb}
.economy-property-comparison.is-below{border-color:#cfe3d6;color:#24633f;background:#edf7f0}
.economy-property-comparison.is-neutral{border-color:#e4ded5;color:#6f766f;background:#f7f4ef}
.economy-property-benchmark{
  display:grid;
  gap:10px;
  margin:2px 0 13px;
  padding:12px;
  border:1px solid #e4ded4;
  border-radius:14px;
  background:#f8f5ef;
}
.economy-property-benchmark-row{display:grid;gap:6px}
.economy-property-benchmark-label{display:flex;align-items:center;justify-content:space-between;gap:12px}
.economy-property-benchmark-label span{color:#68746c;font-size:9px;font-weight:700}
.economy-property-benchmark-label strong{color:#153f2e;font-size:10px;white-space:nowrap}
.economy-property-benchmark-track{
  position:relative;
  overflow:hidden;
  width:100%;
  height:10px;
  border:1px solid #e3ddd3;
  border-radius:999px;
  background:#e9e4dc;
  box-shadow:inset 0 1px 2px rgba(13,66,47,.06);
}
.economy-property-benchmark-fill{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  height:100%;
  min-width:0;
  border-radius:999px;
  transition:width .25s ease;
}
.economy-property-benchmark-fill.has-value{min-width:4px}
.economy-property-benchmark-fill.is-property{background:linear-gradient(90deg,#0d422f 0%,#2d8557 100%) !important}
.economy-property-benchmark-fill.is-average{background:linear-gradient(90deg,#d84d1d 0%,#f07a42 100%) !important}
.economy-property-benchmark-scale{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#8a918c;font-size:8px;font-weight:700}
.economy-property-budget-share{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding-top:10px;border-top:1px dashed #e1d9ce}
.economy-property-budget-share span{color:#78827b;font-size:9px}
.economy-property-budget-share strong{color:#0d422f;font-size:10px;white-space:nowrap}
.economy-property-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:auto;padding-top:13px;border-top:1px solid #e9e0d5}
.economy-property-meta span{min-width:0}
.economy-property-meta small{display:block;margin-bottom:3px;color:#8a918c;font-size:9px}
.economy-property-meta strong{display:block;overflow:hidden;color:#253d31;font-size:11px;text-overflow:ellipsis;white-space:nowrap}

.economy-parts-flow{
  margin:3px 0 15px;
  padding:15px 16px 13px;
  border:1px solid #dfe8e1;
  border-radius:16px;
  background:linear-gradient(180deg,#f8fbf8 0%,#f2f7f3 100%);
}
.economy-parts-flow-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:11px}
.economy-parts-flow-head>span:first-child{display:flex;flex-direction:column;gap:2px}
.economy-parts-flow-head strong{color:#0d422f;font-size:12px}
.economy-parts-flow-head small{color:#68756d;font-size:9px}
.economy-parts-other{color:#66736b;font-size:9px;white-space:nowrap}
.economy-parts-other strong{font-size:10px}
.economy-parts-stack{
  display:flex;
  overflow:hidden;
  width:100%;
  height:18px;
  border:1px solid #d7e2da;
  border-radius:999px;
  background:#e8ece9;
  box-shadow:inset 0 1px 2px rgba(13,66,47,.08);
}
.economy-parts-stack-segment{display:block;height:100%;min-width:1px;border-right:1px solid rgba(255,255,255,.7)}
.economy-parts-stack-segment:last-child{border-right:0}
.economy-parts-stack-other{background:#cfd7d1}
.economy-parts-stack-scale{display:flex;align-items:center;justify-content:space-between;margin-top:5px;color:#89928c;font-size:8px;font-weight:700}
.economy-parts-tone-1{background:#0d422f}
.economy-parts-tone-2{background:#17603f}
.economy-parts-tone-3{background:#24774e}
.economy-parts-tone-4{background:#398b5d}
.economy-parts-tone-5{background:#58a374}
.economy-parts-tone-6{background:#78b78d}
.economy-parts-tone-7{background:#9bc9aa}
.economy-parts-tone-8{background:#bddbc5}

.economy-parts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px}
.economy-part-row{
  display:grid;
  grid-template-columns:28px minmax(0,1fr) auto;
  gap:11px;
  align-items:center;
  min-width:0;
  padding:12px 0;
  border-bottom:1px solid #eee5da;
}
.economy-part-rank{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:8px;color:#0d422f;background:#eef5f0;font-size:10px;font-weight:800}
.economy-part-main{min-width:0}
.economy-part-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px}
.economy-part-meta strong{overflow:hidden;color:var(--green-deep,#0d422f);font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.economy-part-meta span{color:var(--muted,#667069);font-size:9px;white-space:nowrap}
.economy-part-bar{height:10px;overflow:hidden;border:1px solid #e1ddd5;border-radius:999px;background:#efede8;box-shadow:inset 0 1px 2px rgba(13,66,47,.05)}
.economy-part-bar-fill{display:block;height:100%;min-width:0;border-radius:inherit;box-shadow:inset -1px 0 0 rgba(255,255,255,.4)}
.economy-part-bar-fill[style*="width: 0."]{min-width:3px}
.economy-part-value{color:var(--green-deep,#0d422f);font-size:11px;white-space:nowrap}

.economy-details{
  overflow:hidden;
  margin:0 0 18px;
  border:1px solid var(--line,#e4dbce);
  border-radius:22px;
  background:#fff;
  box-shadow:0 12px 32px rgba(20,30,24,.03);
}
.economy-details summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:19px 21px;
  cursor:pointer;
  list-style:none;
  background:linear-gradient(180deg,#fffdfa 0%,#faf7f1 100%);
}
.economy-details summary::-webkit-details-marker{display:none}
.economy-details summary span{display:block}
.economy-details summary strong{display:block;color:#0d422f;font-family:var(--heading-font,"Outfit",sans-serif);font-size:18px}
.economy-details summary small{display:block;margin-top:3px;color:#6f7771;font-size:11px}
.economy-details summary em{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:7px 12px;
  border:1px solid #dce6df;
  border-radius:999px;
  color:#0d422f;
  background:#f0f6f2;
  font-size:10px;
  font-style:normal;
  font-weight:800;
  white-space:nowrap;
}
.economy-details[open] summary{border-bottom:1px solid #e9e0d5}

.economy-details[open] summary em{font-size:0}
.economy-details[open] summary em::after{content:"Skjul tabeller";font-size:10px}
.economy-details-body{padding:18px}
.economy-detail-grid{align-items:start}
.economy-details .table-card{margin-bottom:18px}
.economy-table-scroll{overflow-x:auto}
.economy-table-scroll table{min-width:980px}

@media (max-width:1180px){
  .economy-outlook{grid-template-columns:1fr}
  .economy-main-grid{grid-template-columns:1fr !important}
  .economy-outlook-copy p{max-width:720px}
}
@media (max-width:900px){
  .economy-page-head{align-items:flex-start}
  .economy-outlook-metrics{grid-template-columns:1fr}
  .economy-outlook-card{min-height:0}
  .economy-parts-grid{grid-template-columns:1fr}
  .economy-parts-flow-head{align-items:flex-start;flex-direction:column;gap:7px}
}

@media (max-width:640px){
  .economy-page-head .export-actions{justify-content:flex-start}
  .economy-outlook{padding:20px;border-radius:19px}
  .economy-outlook-copy h3{font-size:22px}
  .economy-panel .dashboard-panel-head{align-items:flex-start;gap:10px}
  .economy-heat-legend{display:none}
  .economy-property-cards{grid-template-columns:1fr}
  .economy-part-row{grid-template-columns:24px minmax(0,1fr)}
  .economy-part-value{grid-column:2}
  .economy-details summary{align-items:flex-start}
  .economy-details summary em{display:none}
  .economy-details-body{padding:12px}
}


.sr-only{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}

/* =========================================================
   VRAP v1.2.2 — økonomiside til store ejendomsporteføljer
   Skalerer heatmap, benchmark og detailtabel til langt over 30 ejendomme.
   ========================================================= */
.economy-panel-tags,
.economy-heatmap-head-actions,
.economy-table-tools,
.economy-benchmark-tools{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:8px;
}

.economy-filter-field{display:block;min-width:210px}
.economy-filter-field-compact{min-width:170px}
.economy-filter-field input{
  width:100%;
  min-height:34px;
  padding:7px 11px;
  border:1px solid #dbe4dd;
  border-radius:10px;
  color:#123f2d;
  background:#fffdf9;
  font:inherit;
  font-size:11px;
  outline:none;
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
.economy-filter-field input::placeholder{color:#879189}
.economy-filter-field input:focus{
  border-color:#75a68a;
  background:#fff;
  box-shadow:0 0 0 3px rgba(31,111,69,.10);
}

.economy-heatmap-scroll{
  position:relative;
  max-height:min(66vh,640px);
  overflow:auto;
  padding:0;
  border:1px solid #e6ddd1;
  border-radius:16px;
  background:#fff;
  scrollbar-width:thin;
  overscroll-behavior:contain;
}
.economy-heatmap{
  min-width:max(940px,100%);
  overflow:visible;
  border:0;
  border-radius:0;
}
.economy-heatmap-corner,
.economy-heatmap-year{position:sticky;top:0;z-index:5}
.economy-heatmap-corner{left:0;z-index:7}
.economy-heatmap-property{position:sticky;left:0;z-index:3;box-shadow:1px 0 0 #eee6dc}
.economy-heatmap-total-label{bottom:0;z-index:7}
.economy-heat-total{position:sticky;bottom:0;z-index:5}
.economy-heatmap [hidden]{display:none !important}

.economy-benchmark-all{
  overflow:hidden;
  margin-top:14px;
  border:1px solid #dfe7e1;
  border-radius:16px;
  background:#fbfaf7;
}
.economy-benchmark-all>summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:14px 16px;
  cursor:pointer;
  list-style:none;
  background:linear-gradient(180deg,#fbfdfb 0%,#f4f8f5 100%);
}
.economy-benchmark-all>summary::-webkit-details-marker{display:none}
.economy-benchmark-all>summary span{display:block}
.economy-benchmark-all>summary strong{display:block;color:#0d422f;font-size:12px}
.economy-benchmark-all>summary small{display:block;margin-top:2px;color:#6f7b73;font-size:9px}
.economy-benchmark-all>summary em{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:5px 9px;
  border:1px solid #d5e2d8;
  border-radius:999px;
  color:#174b35;
  background:#fff;
  font-size:9px;
  font-style:normal;
  font-weight:800;
  white-space:nowrap;
}
.economy-benchmark-all[open]>summary{border-bottom:1px solid #dfe7e1}
.economy-benchmark-tools{justify-content:space-between;padding:12px 14px;border-bottom:1px solid #e8e2d9;background:#fffdf9}
.economy-page-size{display:flex;align-items:center;gap:6px;color:#69746d;font-size:10px;font-weight:700;white-space:nowrap}
.economy-page-size select{
  min-height:32px;
  padding:5px 28px 5px 9px;
  border:1px solid #dbe4dd;
  border-radius:9px;
  color:#123f2d;
  background:#fff;
  font:inherit;
  font-size:10px;
  font-weight:800;
}
.economy-benchmark-list{max-height:560px;overflow:auto;background:#fff;scrollbar-width:thin}
.economy-benchmark-list-row{
  display:grid;
  grid-template-columns:42px minmax(180px,1.15fr) minmax(160px,1fr) minmax(150px,.8fr) 120px 22px;
  gap:12px;
  align-items:center;
  min-width:860px;
  padding:11px 14px;
  border-bottom:1px solid #eee8df;
  color:inherit;
  text-decoration:none;
}
.economy-benchmark-list-row:hover{background:#f4f8f5}
.economy-benchmark-list-row[hidden]{display:none !important}
.economy-benchmark-list-rank{color:#6e7a72;font-size:10px;font-weight:800}
.economy-benchmark-list-property{min-width:0}
.economy-benchmark-list-property strong,
.economy-benchmark-list-value strong{display:block;color:#0d422f;font-size:11px}
.economy-benchmark-list-property small,
.economy-benchmark-list-value small{display:block;overflow:hidden;margin-top:2px;color:#7a837d;font-size:8px;text-overflow:ellipsis;white-space:nowrap}
.economy-benchmark-list-chart{position:relative;display:block;height:9px;overflow:hidden;border:1px solid #e0ded8;border-radius:999px;background:#ece9e3}
.economy-benchmark-list-chart-fill{position:absolute;inset:0 auto 0 0;display:block;width:0;min-width:0;border-radius:inherit;background:linear-gradient(90deg,#0d422f 0%,#3d9163 100%)}
.economy-benchmark-list-chart.has-value .economy-benchmark-list-chart-fill{min-width:4px}
.economy-benchmark-list-value{text-align:right}
.economy-benchmark-list-budget{color:#263e32;font-size:10px;font-weight:800;text-align:right;white-space:nowrap}
.economy-benchmark-list-arrow{color:#7e8c83;font-size:15px;text-align:right}

.economy-pagination,
.economy-table-pagination{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:11px 14px;
  border-top:1px solid #e8e2d9;
  color:#6d7770;
  background:#faf8f4;
  font-size:10px;
  font-weight:700;
}
.economy-pagination>div,
.economy-table-pagination>div{display:flex;gap:7px}
.economy-pagination .btn:disabled,
.economy-table-pagination .btn:disabled{opacity:.42;cursor:not-allowed;transform:none;box-shadow:none}

.economy-table-head{align-items:center}
.economy-table-tools{margin-left:auto}
.economy-property-table-card [data-economy-property-row][hidden]{display:none !important}

@media (max-width:980px){
  .economy-heatmap-head-actions{justify-content:flex-start;width:100%}
  .economy-benchmark-list-row{grid-template-columns:38px minmax(190px,1.2fr) minmax(150px,1fr) minmax(135px,.8fr) 110px 18px}
}
@media (max-width:760px){
  .economy-panel-tags,
  .economy-heatmap-head-actions,
  .economy-table-tools,
  .economy-benchmark-tools{align-items:stretch;justify-content:flex-start;width:100%}
  .economy-filter-field,
  .economy-filter-field-compact{flex:1 1 100%;min-width:0}
  .economy-page-size{justify-content:space-between;width:100%}
  .economy-heatmap-scroll{max-height:520px}
  .economy-pagination,
  .economy-table-pagination{align-items:flex-start;flex-direction:column}
  .economy-benchmark-all>summary{align-items:flex-start}
}

/* =========================================================
   VRAP v1.3.0 — Ejendomsoversigt
   Visuel porteføljeoversigt med vitale genveje og skalering.
   ========================================================= */
.properties-page{display:flex;flex-direction:column;gap:18px}
.properties-hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  padding:24px 26px;
  overflow:hidden;
  border:1px solid #dce6df;
  border-radius:24px;
  background:
    radial-gradient(circle at 92% 12%,rgba(245,99,35,.13),transparent 28%),
    linear-gradient(135deg,#fffdf8 0%,#f7faf7 100%);
  box-shadow:0 14px 34px rgba(37,55,45,.06)
}
.properties-hero-copy{display:flex;align-items:center;gap:18px;min-width:0}
.properties-hero-icon{
  display:grid;
  place-items:center;
  width:54px;
  height:54px;
  flex:0 0 54px;
  border-radius:16px;
  color:#fff;
  background:linear-gradient(145deg,#0b5439,#063e2b);
  box-shadow:0 10px 22px rgba(7,67,45,.20)
}
.properties-hero-icon .icon{width:25px;height:25px}
.properties-eyebrow{display:block;margin-bottom:3px;color:#557066;font-size:10px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.properties-hero h1{margin:0;color:#083e2b;font-family:Outfit,Inter,sans-serif;font-size:34px;line-height:1.02;letter-spacing:-.035em}
.properties-hero p{max-width:750px;margin:7px 0 0;color:#64736b;font-size:13px;line-height:1.5}
.properties-create-button{min-height:42px;padding-inline:17px;border-radius:12px;white-space:nowrap;box-shadow:0 9px 20px rgba(239,84,28,.18)}
.properties-create-button .icon{width:16px;height:16px}

.properties-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px
}
.properties-summary-item{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
  padding:15px 16px;
  border:1px solid #e1e7e2;
  border-radius:17px;
  background:#fffdf9;
  box-shadow:0 8px 22px rgba(35,50,41,.035)
}
.properties-summary-icon{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  flex:0 0 38px;
  border-radius:11px;
  color:#0b4d36;
  background:#e9f4ed
}
.properties-summary-icon .icon{width:18px;height:18px}
.properties-summary-item small{display:block;overflow:hidden;color:#718078;font-size:10px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}
.properties-summary-item strong{display:block;margin-top:3px;color:#0b3e2d;font-family:Outfit,Inter,sans-serif;font-size:20px;line-height:1.05;letter-spacing:-.025em}
.properties-summary-budget{background:linear-gradient(135deg,#0b4b35,#063927);border-color:#0b4b35}
.properties-summary-budget .properties-summary-icon{color:#fff;background:rgba(255,255,255,.13)}
.properties-summary-budget small{color:rgba(255,255,255,.70)}
.properties-summary-budget strong{color:#fff}

.properties-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:12px;
  border:1px solid #e2e7e3;
  border-radius:16px;
  background:#fff;
  box-shadow:0 8px 22px rgba(35,50,41,.035)
}
.properties-search{position:relative;display:block;flex:1;max-width:590px}
.properties-search input{width:100%;min-height:42px;padding:10px 14px 10px 42px;border-color:#dce4de;border-radius:12px;background:#fbfcfa;font-size:12px}
.properties-search input:focus{background:#fff}
.properties-search-icon{position:absolute;left:14px;top:50%;width:17px;height:17px;color:#6f7d75;transform:translateY(-50%);pointer-events:none}
.properties-search-icon svg{display:block;width:100%;height:100%}
.properties-toolbar-actions{display:flex;align-items:center;gap:10px}
.properties-sort-field,.properties-page-size-field{display:flex;flex-direction:row;align-items:center;gap:8px;color:#6f7a73;font-size:10px;font-weight:800;white-space:nowrap}
.properties-sort-field select,.properties-page-size-field select{min-height:38px;padding:8px 31px 8px 11px;border-radius:10px;background:#fff;font-size:11px;font-weight:700}
.properties-result-line{display:flex;align-items:baseline;gap:8px;padding:0 3px;color:#758079;font-size:11px}
.properties-result-line strong{color:#184b38;font-size:12px}

.properties-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;align-items:start}
.portfolio-property-card{
  overflow:hidden;
  border:1px solid #ddd8cf;
  border-radius:21px;
  background:#fffdf9;
  box-shadow:0 12px 27px rgba(49,43,35,.055);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease
}
.portfolio-property-card:hover{transform:translateY(-3px);border-color:#c9d5cd;box-shadow:0 20px 38px rgba(38,52,43,.105)}
.portfolio-property-card[hidden]{display:none!important}
.portfolio-property-cover{position:relative;display:block;height:174px;overflow:hidden;background:linear-gradient(145deg,#dce9e1,#c8d9cf)}
.portfolio-property-cover img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.portfolio-property-card:hover .portfolio-property-cover img{transform:scale(1.025)}
.portfolio-property-cover-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,34,23,.06) 15%,rgba(3,31,21,.28) 100%)}
.portfolio-property-cover.no-image .portfolio-property-cover-shade,.portfolio-property-cover.is-missing .portfolio-property-cover-shade{display:none}
.portfolio-property-placeholder{position:absolute;inset:0;display:none;place-items:center;align-content:center;gap:7px;color:#37624f;background:radial-gradient(circle at 50% 28%,#edf5ef,#dfeae3)}
.portfolio-property-cover.no-image .portfolio-property-placeholder,.portfolio-property-cover.is-missing .portfolio-property-placeholder{display:grid}
.portfolio-property-placeholder .icon{width:34px;height:34px;opacity:.75}
.portfolio-property-placeholder small{font-size:10px;font-weight:750}
.portfolio-property-cover-badges{position:absolute;top:12px;left:12px;display:flex;flex-wrap:wrap;gap:6px;z-index:2}
.portfolio-property-cover-badges span{display:inline-flex;align-items:center;min-height:28px;padding:5px 9px;border:1px solid rgba(255,255,255,.74);border-radius:999px;color:#123f2e;background:rgba(255,253,249,.91);box-shadow:0 5px 14px rgba(0,0,0,.07);font-size:9px;font-weight:800;backdrop-filter:blur(5px)}
.portfolio-property-cover-badges .has-tasks{color:#fff;border-color:rgba(255,255,255,.18);background:rgba(7,69,46,.90)}
.portfolio-property-open-mark{position:absolute;right:12px;top:12px;display:grid;place-items:center;width:34px;height:34px;z-index:2;border-radius:11px;color:#fff;background:#0a4a34;box-shadow:0 7px 17px rgba(3,45,30,.22)}
.portfolio-property-open-mark .icon{width:17px;height:17px}

.portfolio-property-body{padding:17px}
.portfolio-property-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.portfolio-property-heading>a{min-width:0}
.portfolio-property-heading h2{margin:0;color:#0a3f2d;font-family:Outfit,Inter,sans-serif;font-size:20px;line-height:1.08;letter-spacing:-.025em}
.portfolio-property-heading p{margin:7px 0 0;color:#718078;font-size:11px;line-height:1.45}
.portfolio-property-arrow{display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;border-radius:9px;color:#315b48;background:#eff5f0;font-size:15px;transition:transform .16s ease,background .16s ease}
.portfolio-property-heading:hover .portfolio-property-arrow{transform:translateX(2px);background:#e5f1e9}

.portfolio-property-metrics{display:grid;grid-template-columns:1.35fr .8fr .65fr;gap:1px;overflow:hidden;margin:15px 0;border:1px solid #e7e0d6;border-radius:12px;background:#e7e0d6}
.portfolio-property-metrics>div{min-width:0;padding:10px 9px;background:#faf8f4}
.portfolio-property-metrics small{display:block;overflow:hidden;color:#79837d;font-size:8px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}
.portfolio-property-metrics strong{display:block;overflow:hidden;margin-top:3px;color:#153f2f;font-size:11px;text-overflow:ellipsis;white-space:nowrap}

.portfolio-latest-plan{display:grid;grid-template-columns:32px minmax(0,1fr) auto 16px;gap:9px;align-items:center;padding:10px 11px;border:1px solid #dfe7e1;border-radius:12px;background:#f5f8f5;transition:border-color .16s ease,background .16s ease}
.portfolio-latest-plan:hover{border-color:#bdd2c4;background:#eef6f0}
.portfolio-latest-plan-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;color:#14523a;background:#dfeee4}
.portfolio-latest-plan-icon .icon{width:15px;height:15px}
.portfolio-latest-plan>span:nth-child(2){min-width:0}
.portfolio-latest-plan small,.portfolio-latest-plan strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.portfolio-latest-plan small{color:#77837b;font-size:8px;font-weight:700}
.portfolio-latest-plan strong{margin-top:2px;color:#143f2f;font-size:10px}
.portfolio-latest-plan em{padding:4px 7px;border:1px solid #d8e3da;border-radius:999px;color:#35604d;background:#fff;font-size:8px;font-style:normal;font-weight:800;white-space:nowrap}
.portfolio-latest-plan b{color:#6f8077;font-size:12px}
.portfolio-latest-plan.is-empty{border-style:dashed;background:#fbfaf7}

.portfolio-property-primary{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;padding:11px 13px;border-radius:11px;color:#fff;background:linear-gradient(135deg,#0b5138,#073c2a);box-shadow:0 7px 16px rgba(5,63,41,.14);font-size:10px;font-weight:800;transition:transform .16s ease,box-shadow .16s ease}
.portfolio-property-primary:hover{transform:translateY(-1px);box-shadow:0 10px 21px rgba(5,63,41,.20)}
.portfolio-property-primary span{display:flex;align-items:center;gap:7px}
.portfolio-property-primary .icon{width:14px;height:14px}
.portfolio-property-primary b{font-size:14px}

.portfolio-property-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:8px}
.portfolio-property-shortcuts a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:54px;padding:8px 4px;border:1px solid #e4dfd7;border-radius:10px;color:#315344;background:#fff;transition:border-color .15s ease,background .15s ease,transform .15s ease}
.portfolio-property-shortcuts a:hover{transform:translateY(-1px);border-color:#bcd1c3;background:#f3f8f4}
.portfolio-property-shortcuts .icon{width:15px;height:15px}
.portfolio-property-shortcuts span{font-size:8px;font-weight:800;white-space:nowrap}
.portfolio-property-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:11px;padding-top:10px;border-top:1px solid #eee8df;color:#98a09b;font-size:8px}
.portfolio-property-delete{color:#ae3d37;font-weight:750}
.portfolio-property-delete:hover{text-decoration:underline}

.properties-pagination{display:flex;align-items:center;justify-content:center;gap:14px;padding:4px 0 10px;color:#6d7972;font-size:10px;font-weight:700}
.properties-pagination[hidden]{display:none!important}
.properties-pagination button:disabled{opacity:.42;cursor:not-allowed}
.properties-no-results,.properties-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:270px;padding:34px;border:1px dashed #cfd9d1;border-radius:21px;color:#6d7972;background:#fbfcfa;text-align:center}
.properties-no-results[hidden]{display:none!important}
.properties-no-results>span,.properties-empty-state>span{display:grid;place-items:center;width:56px;height:56px;margin-bottom:12px;border-radius:17px;color:#1d5b42;background:#e7f2ea}
.properties-no-results .icon,.properties-empty-state .icon{width:25px;height:25px}
.properties-no-results h2,.properties-empty-state h2{margin:0;color:#123f2e;font-family:Outfit,Inter,sans-serif;font-size:22px}
.properties-no-results p,.properties-empty-state p{max-width:520px;margin:7px 0 18px;font-size:12px}

@media (max-width:1180px){
  .properties-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .properties-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  .properties-hero{align-items:flex-start;flex-direction:column;padding:20px}
  .properties-hero-copy{align-items:flex-start}
  .properties-hero h1{font-size:29px}
  .properties-create-button{width:100%;justify-content:center}
  .properties-summary{grid-template-columns:1fr}
  .properties-toolbar{align-items:stretch;flex-direction:column}
  .properties-search{max-width:none}
  .properties-toolbar-actions{justify-content:space-between}
  .properties-grid{grid-template-columns:1fr}
}
@media (max-width:440px){
  .properties-hero-copy{gap:12px}
  .properties-hero-icon{width:44px;height:44px;flex-basis:44px;border-radius:13px}
  .properties-hero-icon .icon{width:21px;height:21px}
  .properties-toolbar-actions{align-items:stretch;flex-direction:column}
  .properties-sort-field,.properties-page-size-field{justify-content:space-between}
  .properties-sort-field select,.properties-page-size-field select{flex:1}
  .portfolio-property-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Keep the portfolio creation action aligned with VRAP's orange primary CTA. */
.properties-page .properties-create-button{
  background:#f35c24 !important;
  border-color:#f35c24 !important;
  color:#fff !important;
}
.properties-page .properties-create-button:hover{
  background:#dc4d19 !important;
  border-color:#dc4d19 !important;
}

/* =========================================================
   VRAP v2.2.1 — Ejendomsoversigt, robust visuel rettelse
   Bruger solide farver og højere selector-specificitet, så
   ældre globale regler ikke kan udvaske hero, budgetkort eller CTA.
   ========================================================= */
.properties-page .properties-hero{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:27px 28px !important;
  border:1px solid #0a4a34 !important;
  border-radius:22px !important;
  background:#073f2c !important;
  background-image:none !important;
  box-shadow:0 16px 34px rgba(6,47,34,.16) !important;
}
.properties-page .properties-hero::after{
  content:"";
  position:absolute;
  z-index:-1;
  top:-92px;
  right:-54px;
  width:270px;
  height:270px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:50%;
  box-shadow:0 0 0 46px rgba(255,255,255,.025);
  pointer-events:none;
}
.properties-page .properties-hero-copy{
  position:relative;
  z-index:1;
}
.properties-page .properties-hero-icon{
  width:54px !important;
  height:54px !important;
  flex:0 0 54px !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.16) !important;
  background:#f15a24 !important;
  background-image:none !important;
  box-shadow:0 10px 22px rgba(0,0,0,.14) !important;
}
.properties-page .properties-hero-icon,
.properties-page .properties-hero-icon .icon,
.properties-page .properties-hero-icon svg{
  color:#fff !important;
  stroke:currentColor !important;
}
.properties-page .properties-eyebrow{
  color:rgba(255,255,255,.72) !important;
}
.properties-page .properties-hero h1{
  color:#fff !important;
}
.properties-page .properties-hero p{
  color:rgba(255,255,255,.76) !important;
}
.properties-page .properties-create-button{
  position:relative;
  z-index:1;
  background:#f15a24 !important;
  background-image:none !important;
  border-color:#f15a24 !important;
  color:#fff !important;
  box-shadow:0 9px 20px rgba(0,0,0,.15) !important;
}
.properties-page .properties-create-button:hover{
  background:#dc4d19 !important;
  background-image:none !important;
  border-color:#dc4d19 !important;
}

.properties-page .properties-summary-item{
  background:#fffdf9 !important;
  background-image:none !important;
}
.properties-page .properties-summary-budget{
  border-color:#0a4a34 !important;
  background:#0a4a34 !important;
  background-image:none !important;
  box-shadow:0 10px 24px rgba(6,47,34,.12) !important;
}
.properties-page .properties-summary-budget .properties-summary-icon{
  color:#fff !important;
  background:rgba(255,255,255,.13) !important;
  background-image:none !important;
}
.properties-page .properties-summary-budget .properties-summary-icon svg{
  color:#fff !important;
  stroke:currentColor !important;
}
.properties-page .properties-summary-budget small{
  color:rgba(255,255,255,.72) !important;
}
.properties-page .properties-summary-budget strong{
  color:#fff !important;
}

.properties-page .portfolio-property-primary{
  color:#fff !important;
  border:1px solid #0a4a34 !important;
  background:#0a4a34 !important;
  background-image:none !important;
  box-shadow:0 8px 18px rgba(6,47,34,.15) !important;
}
.properties-page .portfolio-property-primary,
.properties-page .portfolio-property-primary span,
.properties-page .portfolio-property-primary b,
.properties-page .portfolio-property-primary .icon,
.properties-page .portfolio-property-primary svg{
  color:#fff !important;
  stroke:currentColor !important;
}
.properties-page .portfolio-property-primary:hover{
  border-color:#073725 !important;
  background:#073725 !important;
  background-image:none !important;
}

@media (max-width:760px){
  .properties-page .properties-hero{
    padding:21px !important;
  }
}

/* Properties: search field — keep icon and text separated despite global !important input rules */
.properties-page .properties-toolbar .properties-search{
  position:relative !important;
  display:block !important;
  flex:1 1 420px !important;
  max-width:590px !important;
  min-width:240px !important;
  margin:0 !important;
}

.properties-page .properties-toolbar .properties-search input[type="search"]{
  width:100% !important;
  min-height:44px !important;
  padding:10px 44px 10px 46px !important;
  border:1px solid #d8caba !important;
  border-radius:11px !important;
  background:#fffdf8 !important;
  color:#082316 !important;
  font-size:13px !important;
  font-weight:550 !important;
  line-height:1.25 !important;
  -webkit-appearance:none;
  appearance:none;
}

.properties-page .properties-toolbar .properties-search input[type="search"]::placeholder{
  color:#7c827d !important;
  opacity:1 !important;
  font-weight:500 !important;
}

.properties-page .properties-toolbar .properties-search input[type="search"]:focus{
  border-color:#0b3f2e !important;
  background:#fff !important;
  box-shadow:0 0 0 3px rgba(11,63,46,.10) !important;
}

.properties-page .properties-toolbar .properties-search-icon{
  position:absolute !important;
  z-index:2 !important;
  left:16px !important;
  top:50% !important;
  display:flex !important;
  width:18px !important;
  height:18px !important;
  align-items:center !important;
  justify-content:center !important;
  color:#53685d !important;
  transform:translateY(-50%) !important;
  pointer-events:none !important;
}

.properties-page .properties-toolbar .properties-search-icon svg{
  display:block !important;
  width:18px !important;
  height:18px !important;
  overflow:visible !important;
}

.properties-page .properties-toolbar .properties-search input[type="search"]::-webkit-search-decoration{
  display:none;
}

.properties-page .properties-toolbar .properties-search input[type="search"]::-webkit-search-cancel-button{
  width:16px;
  height:16px;
  cursor:pointer;
}

@media (max-width:760px){
  .properties-page .properties-toolbar .properties-search{
    max-width:none !important;
    min-width:0 !important;
    flex-basis:auto !important;
  }
}

/* =========================================================
   VRAP v2.2.3 — Property context: return to portfolio
   Clear shortcut from an individual property back to the
   complete property overview. Kept outside the normal nav so
   it reads as a context switch rather than another subsection.
   ========================================================= */
.sidepanel .sidepanel-property-back{
  display:flex !important;
  align-items:center;
  justify-content:flex-start;
  gap:9px;
  width:100%;
  min-height:42px;
  margin:-9px 0 18px;
  padding:0 12px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:12px;
  background:var(--orange) !important;
  color:#fff !important;
  font-family:var(--font-heading);
  font-size:13px;
  font-weight:700;
  letter-spacing:-.01em;
  text-decoration:none;
  box-shadow:0 8px 18px rgba(44,21,8,.16);
  transition:transform .15s ease, background .15s ease, box-shadow .15s ease;
}

.sidepanel .sidepanel-property-back span{
  color:#fff !important;
}

.sidepanel .sidepanel-property-back .icon,
.sidepanel .sidepanel-property-back svg{
  width:16px !important;
  height:16px !important;
  min-width:16px !important;
  color:#fff !important;
  stroke:currentColor !important;
}

.sidepanel .sidepanel-property-back:hover{
  background:var(--orange-dark) !important;
  color:#fff !important;
  transform:translateY(-1px);
  box-shadow:0 10px 22px rgba(44,21,8,.20);
}

.sidepanel .sidepanel-property-back:focus-visible{
  outline:3px solid rgba(255,255,255,.42);
  outline-offset:2px;
}

/* =========================================================
   VRAP v2.3.0 — Porteføljeopgaver
   Scalable task overview with clearer prioritisation, compact
   portfolio insights, robust filters and paginated task table.
   ========================================================= */
.tasks-page{
  --tasks-green:#0a4a34;
  --tasks-green-deep:#073f2c;
  --tasks-orange:#f15a24;
  --tasks-surface:#fffdf9;
  --tasks-line:#e6dbcf;
  --tasks-muted:#68766e;
  width:100%;
}

.tasks-page .tasks-page-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-bottom:20px;
}
.tasks-page .tasks-page-title-wrap{
  display:flex;
  align-items:center;
  gap:15px;
  min-width:0;
}
.tasks-page .tasks-page-icon{
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  flex:0 0 46px;
  border-radius:13px;
  color:#fff;
  background:var(--tasks-green);
  box-shadow:0 9px 20px rgba(7,63,44,.16);
}
.tasks-page .tasks-page-icon .icon,
.tasks-page .tasks-page-icon svg{
  width:21px;
  height:21px;
  color:#fff;
  stroke:currentColor;
}
.tasks-page .tasks-page-eyebrow{
  margin-bottom:2px;
  color:#6c7c73;
  font-size:10px;
  font-weight:800;
  letter-spacing:.13em;
}
.tasks-page .tasks-page-head h1{
  margin:0;
  color:var(--tasks-green-deep);
  font-family:var(--font-heading);
  font-size:32px;
  line-height:1.02;
  letter-spacing:-.045em;
}
.tasks-page .tasks-page-head p{
  max-width:720px;
  margin:5px 0 0;
  color:var(--tasks-muted);
  font-size:13px;
  line-height:1.5;
}
.tasks-page .tasks-export-button{
  flex:0 0 auto;
  min-height:42px;
  padding:0 16px;
  border:1px solid var(--tasks-orange) !important;
  background:var(--tasks-orange) !important;
  color:#fff !important;
  box-shadow:0 9px 18px rgba(241,90,36,.18);
}
.tasks-page .tasks-export-button:hover{
  background:#dc4d19 !important;
  border-color:#dc4d19 !important;
}
.tasks-page .tasks-export-button .icon,
.tasks-page .tasks-export-button svg{
  width:16px;
  height:16px;
  color:#fff !important;
  stroke:currentColor !important;
}

.tasks-page .tasks-metric-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin-bottom:18px;
}
.tasks-page .tasks-metric-card{
  display:flex;
  align-items:flex-start;
  gap:13px;
  min-width:0;
  padding:17px;
  border:1px solid var(--tasks-line);
  border-radius:16px;
  background:var(--tasks-surface);
  box-shadow:0 9px 25px rgba(46,35,24,.045);
}
.tasks-page .tasks-metric-icon{
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  flex:0 0 36px;
  border-radius:10px;
  color:var(--tasks-green);
  background:#eaf4ee;
}
.tasks-page .tasks-metric-card-alert .tasks-metric-icon{
  color:#b8324d;
  background:#fff0f2;
}
.tasks-page .tasks-metric-icon .icon,
.tasks-page .tasks-metric-icon svg{
  width:17px;
  height:17px;
  color:inherit;
  stroke:currentColor;
}
.tasks-page .tasks-metric-card small{
  display:block;
  margin-bottom:4px;
  color:#68766e;
  font-size:10px;
  font-weight:700;
}
.tasks-page .tasks-metric-card strong{
  display:block;
  overflow:hidden;
  color:var(--tasks-green-deep);
  font-family:var(--font-heading);
  font-size:22px;
  line-height:1.08;
  letter-spacing:-.035em;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.tasks-page .tasks-metric-card div > span{
  display:block;
  margin-top:5px;
  color:#879087;
  font-size:10px;
  line-height:1.25;
}

.tasks-page .tasks-insight-grid{
  display:grid;
  grid-template-columns:minmax(0,1.18fr) minmax(360px,.82fr);
  gap:16px;
  margin-bottom:18px;
}
.tasks-page .tasks-insight-card{
  min-width:0;
  padding:18px;
  border:1px solid var(--tasks-line);
  border-radius:18px;
  background:var(--tasks-surface);
  box-shadow:0 10px 28px rgba(46,35,24,.04);
}
.tasks-page .tasks-insight-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:15px;
  margin-bottom:15px;
}
.tasks-page .tasks-insight-head h2{
  margin:0 0 3px;
  color:var(--tasks-green-deep);
  font-size:17px;
  line-height:1.2;
  letter-spacing:-.025em;
}
.tasks-page .tasks-insight-head p{
  margin:0;
  color:var(--tasks-muted);
  font-size:11px;
  line-height:1.45;
}
.tasks-page .tasks-overdue-pill{
  flex:0 0 auto;
  padding:6px 9px;
  border:1px solid #f1c8b7;
  border-radius:999px;
  color:#b63a12;
  background:#fff4ed;
  font-size:10px;
  font-weight:800;
  white-space:nowrap;
}
.tasks-page .tasks-priority-bars{
  display:grid;
  gap:11px;
}
.tasks-page .tasks-priority-row-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:5px;
  color:#193329;
  font-size:10px;
}
.tasks-page .tasks-priority-row-top > span{
  display:flex;
  align-items:center;
  gap:7px;
  font-weight:800;
}
.tasks-page .tasks-priority-row-top strong{
  color:#54665d;
  font-size:10px;
  font-weight:700;
  text-align:right;
}
.tasks-page .tasks-priority-dot{
  width:8px;
  height:8px;
  border-radius:50%;
}
.tasks-page .tasks-priority-dot.priority-acute,
.tasks-page .tasks-priority-fill.priority-acute{background:#d92d5b}
.tasks-page .tasks-priority-dot.priority-necessary,
.tasks-page .tasks-priority-fill.priority-necessary{background:#e64b18}
.tasks-page .tasks-priority-dot.priority-normal,
.tasks-page .tasks-priority-fill.priority-normal{background:#2f9b63}
.tasks-page .tasks-priority-dot.priority-beneficial,
.tasks-page .tasks-priority-fill.priority-beneficial{background:#b8890f}
.tasks-page .tasks-priority-track{
  height:6px;
  overflow:hidden;
  border-radius:999px;
  background:#ebe5dc;
}
.tasks-page .tasks-priority-fill{
  display:block;
  min-width:0;
  height:100%;
  border-radius:inherit;
}
.tasks-page .tasks-status-flow{
  display:flex;
  width:100%;
  height:9px;
  overflow:hidden;
  margin:3px 0 17px;
  border-radius:999px;
  background:#ebe5dc;
}
.tasks-page .tasks-status-flow > span{display:block;height:100%}
.tasks-page .tasks-status-flow .status-planned{background:#92ab9b}
.tasks-page .tasks-status-flow .status-in_progress{background:#f15a24}
.tasks-page .tasks-status-flow .status-done{background:#208a56}
.tasks-page .tasks-status-flow .status-cancelled{background:#c9ceca}
.tasks-page .tasks-status-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}
.tasks-page .tasks-status-item{
  min-width:0;
  padding:10px;
  border:1px solid #e9dfd4;
  border-radius:12px;
  background:#fff;
}
.tasks-page .tasks-status-item .status-badge{
  min-height:22px;
  padding:3px 7px;
  font-size:9px;
}
.tasks-page .tasks-status-item strong{
  display:block;
  margin-top:8px;
  color:var(--tasks-green-deep);
  font-family:var(--font-heading);
  font-size:21px;
  line-height:1;
}
.tasks-page .tasks-status-item small{
  display:block;
  margin-top:3px;
  color:#7a867f;
  font-size:9px;
}

.tasks-page .tasks-filter-panel{
  margin-bottom:18px;
  padding:18px;
  border:1px solid var(--tasks-line);
  border-radius:18px;
  background:var(--tasks-surface);
  box-shadow:0 10px 28px rgba(46,35,24,.04);
}
.tasks-page .tasks-filter-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  margin-bottom:14px;
}
.tasks-page .tasks-filter-top h2{
  margin:0 0 3px;
  color:var(--tasks-green-deep);
  font-size:17px;
  letter-spacing:-.025em;
}
.tasks-page .tasks-filter-top p{
  margin:0;
  color:var(--tasks-muted);
  font-size:11px;
}
.tasks-page .tasks-quick-filters{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:6px;
}
.tasks-page .tasks-quick-filters a{
  padding:7px 10px;
  border:1px solid #dfd5c9;
  border-radius:999px;
  color:#52645a;
  background:#fff;
  font-size:10px;
  font-weight:800;
  transition:.15s ease;
}
.tasks-page .tasks-quick-filters a:hover{
  border-color:#b9cdbf;
  color:var(--tasks-green-deep);
  background:#eef6f0;
}
.tasks-page .tasks-quick-filters a.active{
  border-color:var(--tasks-green);
  color:#fff;
  background:var(--tasks-green);
}
.tasks-page .tasks-filter-form{
  display:grid;
  grid-template-columns:1.15fr .72fr .9fr .9fr 1.45fr auto;
  gap:10px;
  align-items:end;
}
.tasks-page .tasks-filter-form label{
  min-width:0;
  gap:5px;
  color:#465a50;
  font-size:10px;
  font-weight:800;
}
.tasks-page .tasks-filter-form select,
.tasks-page .tasks-filter-form input[type="search"]{
  width:100%;
  min-height:40px;
  padding:9px 10px;
  border:1px solid #d9cdbf;
  border-radius:10px;
  background:#fff;
  color:#14261d;
  font-size:11px;
}
.tasks-page .tasks-search-input-wrap{
  position:relative;
  display:block;
}
.tasks-page .tasks-search-input-wrap svg{
  position:absolute;
  z-index:2;
  top:50%;
  left:12px;
  width:15px;
  height:15px;
  color:#738078;
  transform:translateY(-50%);
  pointer-events:none;
}
.tasks-page .tasks-filter-form .tasks-search-input-wrap input[type="search"]{
  padding-left:34px !important;
  padding-right:32px !important;
}
.tasks-page .tasks-filter-form select:focus,
.tasks-page .tasks-filter-form input[type="search"]:focus{
  border-color:var(--tasks-green) !important;
  box-shadow:0 0 0 3px rgba(10,74,52,.10) !important;
}
.tasks-page .tasks-filter-actions{
  display:flex;
  gap:7px;
  align-items:center;
}
.tasks-page .tasks-filter-submit,
.tasks-page .tasks-filter-reset{
  min-height:40px;
  padding:0 12px;
  border-radius:10px;
  font-size:10px;
  white-space:nowrap;
}
.tasks-page .tasks-filter-submit{
  border:1px solid var(--tasks-green) !important;
  background:var(--tasks-green) !important;
  color:#fff !important;
}
.tasks-page .tasks-filter-reset{
  border:1px solid #d9cdbf !important;
  background:#fff !important;
  color:var(--tasks-green-deep) !important;
}
.tasks-page .tasks-active-filter-note{
  margin-top:12px;
  padding-top:10px;
  border-top:1px solid #eee4d9;
  color:#6e7a73;
  font-size:10px;
}
.tasks-page .tasks-active-filter-note strong{color:var(--tasks-green-deep)}

.tasks-page .tasks-table-card{
  overflow:hidden;
  border:1px solid var(--tasks-line);
  border-radius:18px;
  background:var(--tasks-surface);
  box-shadow:0 12px 30px rgba(46,35,24,.05);
}
.tasks-page .tasks-table-toolbar{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  padding:17px 18px 14px;
  border-bottom:1px solid #eadfd4;
}
.tasks-page .tasks-table-toolbar h2{
  margin:0 0 3px;
  color:var(--tasks-green-deep);
  font-size:18px;
  letter-spacing:-.025em;
}
.tasks-page .tasks-table-toolbar p{
  margin:0;
  color:var(--tasks-muted);
  font-size:10px;
}
.tasks-page .tasks-table-toolbar p strong{color:var(--tasks-green-deep)}
.tasks-page .tasks-table-controls{
  display:flex;
  align-items:flex-end;
  gap:9px;
}
.tasks-page .tasks-table-controls label{
  gap:4px;
  color:#66766d;
  font-size:9px;
  font-weight:800;
}
.tasks-page .tasks-table-controls select{
  min-height:36px;
  padding:7px 30px 7px 9px;
  border:1px solid #d9cdbf;
  border-radius:9px;
  background:#fff;
  font-size:10px;
}
.tasks-page .tasks-table-scroll{
  /* Opgavelisten følger nu sidens normale højde i stedet for at have intern lodret scroll. */
  max-height:none;
  overflow-x:auto;
  overflow-y:visible;
  overscroll-behavior:auto;
  scrollbar-width:auto;
}
.tasks-page .tasks-data-table{
  min-width:1080px;
  border-collapse:separate;
  border-spacing:0;
  font-size:10px;
}
.tasks-page .tasks-data-table thead th{
  position:sticky;
  z-index:3;
  top:0;
  padding:11px 10px;
  border:0;
  border-bottom:1px solid #0b3f2e;
  color:#fff;
  background:var(--tasks-green) !important;
  font-size:9px;
  letter-spacing:.01em;
  white-space:nowrap;
}
.tasks-page .tasks-data-table thead th:first-child{padding-left:16px}
.tasks-page .tasks-data-table tbody td{
  padding:11px 10px;
  border-bottom:1px solid #eadfd4;
  color:#293b32;
  background:#fffdf9;
  vertical-align:middle;
}
.tasks-page .tasks-data-table tbody tr:hover td{background:#fff8f2}
.tasks-page .tasks-data-table tbody td:first-child{
  padding-left:13px;
  border-left:3px solid transparent;
}
.tasks-page .tasks-data-table .task-row-priority-acute td:first-child{border-left-color:#d92d5b}
.tasks-page .tasks-data-table .task-row-priority-necessary td:first-child{border-left-color:#e64b18}
.tasks-page .tasks-data-table .task-row-priority-normal td:first-child{border-left-color:#2f9b63}
.tasks-page .tasks-data-table .task-row-priority-beneficial td:first-child{border-left-color:#b8890f}
.tasks-page .tasks-property-link,
.tasks-page .tasks-title-cell > a{
  display:inline-block;
  color:var(--tasks-green-deep);
  font-weight:800;
  line-height:1.3;
}
.tasks-page .tasks-property-link:hover,
.tasks-page .tasks-title-cell > a:hover,
.tasks-page .tasks-part-link:hover{color:var(--tasks-orange)}
.tasks-page .tasks-part-link{
  display:inline-block;
  color:#31483d;
  font-weight:700;
}
.tasks-page .tasks-row-subline{
  display:block;
  max-width:310px;
  margin-top:3px;
  overflow:hidden;
  color:#7a857f;
  font-size:9px;
  font-weight:500;
  line-height:1.35;
  text-overflow:ellipsis;
}
.tasks-page .tasks-year-value{
  display:block;
  color:#31483d;
  font-size:10px;
}
.tasks-page .tasks-overdue-label{
  display:inline-flex;
  margin-top:4px;
  padding:3px 6px;
  border-radius:999px;
  color:#a53a18;
  background:#fff0e9;
  font-size:8px;
  font-weight:800;
}
.tasks-page .tasks-data-table .priority-badge,
.tasks-page .tasks-data-table .status-badge{
  min-height:22px;
  padding:3px 7px;
  font-size:9px;
}
.tasks-page .tasks-budget-value{
  color:#132b20;
  font-size:10px;
  white-space:nowrap;
}
.tasks-page .tasks-row-actions{text-align:right;white-space:nowrap}
.tasks-page .tasks-row-actions .btn-small{
  min-height:30px;
  padding:0 9px;
  border:1px solid #d8cdbf !important;
  border-radius:8px;
  color:var(--tasks-green-deep) !important;
  background:#f8f4ee !important;
  font-size:9px;
}
.tasks-page .tasks-row-actions .btn-small:hover{
  border-color:#b9cdbf !important;
  background:#eef6f0 !important;
}
.tasks-page .tasks-empty-state{
  padding:55px 20px !important;
  text-align:center;
}
.tasks-page .tasks-empty-state > span{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  margin:0 auto 10px;
  border-radius:12px;
  color:var(--tasks-green);
  background:#eaf4ee;
}
.tasks-page .tasks-empty-state svg{width:20px;height:20px}
.tasks-page .tasks-empty-state strong{
  display:block;
  color:var(--tasks-green-deep);
  font-size:15px;
}
.tasks-page .tasks-empty-state p{
  margin:4px 0 13px;
  color:var(--tasks-muted);
  font-size:11px;
}
.tasks-page .tasks-pagination{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  min-height:52px;
  padding:10px 16px;
  border-top:1px solid #eadfd4;
  color:#6c7971;
  background:#faf7f2;
  font-size:10px;
}
.tasks-page .tasks-pagination > div{
  display:flex;
  align-items:center;
  gap:9px;
}
.tasks-page .tasks-pagination button{
  min-height:31px;
  padding:0 10px;
  border:1px solid #d8cdbf;
  border-radius:8px;
  color:var(--tasks-green-deep);
  background:#fff;
  font-size:9px;
  font-weight:800;
  cursor:pointer;
}
.tasks-page .tasks-pagination button:hover:not(:disabled){background:#eef6f0;border-color:#b9cdbf}
.tasks-page .tasks-pagination button:disabled{cursor:not-allowed;opacity:.42}
.tasks-page .tasks-pagination.is-single-page > div{display:none}

@media (max-width:1180px){
  .tasks-page .tasks-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tasks-page .tasks-insight-grid{grid-template-columns:1fr}
  .tasks-page .tasks-filter-form{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tasks-page .tasks-search-field{grid-column:span 2}
  .tasks-page .tasks-filter-actions{justify-content:flex-end}
}

@media (max-width:760px){
  .tasks-page .tasks-page-head,
  .tasks-page .tasks-filter-top,
  .tasks-page .tasks-table-toolbar{
    align-items:stretch;
    flex-direction:column;
  }
  .tasks-page .tasks-page-title-wrap{align-items:flex-start}
  .tasks-page .tasks-page-head h1{font-size:28px}
  .tasks-page .tasks-export-button{align-self:flex-start}
  .tasks-page .tasks-metric-grid{grid-template-columns:1fr}
  .tasks-page .tasks-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tasks-page .tasks-quick-filters{justify-content:flex-start}
  .tasks-page .tasks-filter-form{grid-template-columns:1fr}
  .tasks-page .tasks-search-field{grid-column:auto}
  .tasks-page .tasks-filter-actions{justify-content:flex-start}
  .tasks-page .tasks-table-controls{flex-wrap:wrap}
  .tasks-page .tasks-table-scroll{max-height:none;overflow:visible}
  .tasks-page .tasks-data-table{min-width:0}
  .tasks-page .tasks-data-table thead{display:none}
  .tasks-page .tasks-data-table,
  .tasks-page .tasks-data-table tbody,
  .tasks-page .tasks-data-table tr,
  .tasks-page .tasks-data-table td{display:block;width:100%}
  .tasks-page .tasks-data-table tbody{display:grid;gap:12px;padding:12px}
  .tasks-page .tasks-data-table tr.task-data-row{
    overflow:hidden;
    border:1px solid var(--tasks-line);
    border-left:4px solid transparent;
    border-radius:14px;
    background:#fff;
  }
  .tasks-page .tasks-data-table tr.task-row-priority-acute{border-left-color:#d92d5b}
  .tasks-page .tasks-data-table tr.task-row-priority-necessary{border-left-color:#e64b18}
  .tasks-page .tasks-data-table tr.task-row-priority-normal{border-left-color:#2f9b63}
  .tasks-page .tasks-data-table tr.task-row-priority-beneficial{border-left-color:#b8890f}
  .tasks-page .tasks-data-table tbody td,
  .tasks-page .tasks-data-table tbody td:first-child{
    display:grid;
    grid-template-columns:105px minmax(0,1fr);
    align-items:start;
    gap:10px;
    padding:10px 12px;
    border:0;
    border-bottom:1px solid #eee5dc;
    border-left:0;
    background:#fff;
  }
  .tasks-page .tasks-data-table tbody td::before{
    content:attr(data-label);
    color:#77827c;
    font-size:9px;
    font-weight:800;
  }
  .tasks-page .tasks-data-table tbody td:last-child{border-bottom:0}
  .tasks-page .tasks-row-subline{max-width:none}
  .tasks-page .tasks-row-actions{text-align:left}
  .tasks-page .tasks-pagination{align-items:flex-start;flex-direction:column}
}

/* =========================================================
   v2.4.0 — Dashboard: property-first portfolio overview
   Namespaced to avoid side effects on other pages.
   ========================================================= */
.dashboard-page-v2 .dashboard-kpi-link{
  color:inherit;
  text-decoration:none;
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.dashboard-page-v2 .dashboard-kpi-link:hover{
  transform:translateY(-2px);
  border-color:#c9d7ce;
  box-shadow:0 15px 28px rgba(28,49,37,.09);
}
.dashboard-page-v2 .dashboard-kpi-link:focus-visible{
  outline:3px solid rgba(241,84,31,.25);
  outline-offset:3px;
}
.dashboard-page-v2 .dashboard-hero-actions .icon{
  width:16px;
  height:16px;
}
.dashboard-page-v2 .dashboard-hero-actions .icon svg{
  width:16px!important;
  height:16px!important;
}

.dashboard-properties-feature{
  position:relative;
  overflow:hidden;
  margin-top:22px;
  padding:23px;
  border:1px solid #ddd8ce;
  border-radius:24px;
  background:#fffdf9;
  box-shadow:0 14px 30px rgba(39,51,43,.07);
}
.dashboard-properties-feature::before{
  content:'';
  position:absolute;
  left:23px;
  top:0;
  width:88px;
  height:3px;
  border-radius:0 0 999px 999px;
  background:#f1541f;
}
.dashboard-properties-feature-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:18px;
}
.dashboard-section-kicker{
  display:block;
  margin-bottom:5px;
  color:#f1541f;
  font-size:9px;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.dashboard-properties-feature-head h2{
  margin:0;
  color:#073e2c!important;
  font-family:Outfit,Inter,sans-serif!important;
  font-size:27px;
  line-height:1.03;
  letter-spacing:-.045em;
}
.dashboard-properties-feature-head p{
  max-width:720px;
  margin:6px 0 0;
  color:#6d7972;
  font-size:12px;
  line-height:1.45;
}
.dashboard-properties-feature-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex:0 0 auto;
}
.dashboard-properties-feature-actions>span{
  display:inline-flex;
  align-items:center;
  min-height:31px;
  padding:5px 10px;
  border:1px solid #dce6df;
  border-radius:999px;
  color:#355a48;
  background:#f1f7f3;
  font-size:10px;
  font-weight:800;
}
.dashboard-properties-feature-actions .btn{
  min-height:34px;
  padding:8px 12px;
  color:#fff!important;
  border-color:#0b4a34!important;
  background:#0b4a34!important;
}
.dashboard-properties-feature-actions .btn:hover{
  color:#fff!important;
  border-color:#f1541f!important;
  background:#f1541f!important;
}

.dashboard-property-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:13px;
}
.dashboard-property-card{
  display:grid;
  grid-template-columns:124px minmax(0,1fr);
  min-width:0;
  overflow:hidden;
  border:1px solid #e4ded4;
  border-radius:17px;
  background:#fff;
  box-shadow:0 7px 17px rgba(45,56,48,.045);
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.dashboard-property-card:hover{
  transform:translateY(-2px);
  border-color:#c7d5cc;
  box-shadow:0 14px 25px rgba(33,54,41,.085);
}
.dashboard-property-image{
  position:relative;
  display:block;
  min-height:100%;
  overflow:hidden;
  color:#2a6048;
  background:linear-gradient(145deg,#e4eee8,#d4e2d9);
}
.dashboard-property-image img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .3s ease;
}
.dashboard-property-card:hover .dashboard-property-image img{
  transform:scale(1.035);
}
.dashboard-property-image-shade{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(2,31,20,.02) 35%,rgba(3,35,23,.28));
}
.dashboard-property-image.no-image .dashboard-property-image-shade,
.dashboard-property-image.is-missing .dashboard-property-image-shade{
  display:none;
}
.dashboard-property-placeholder{
  position:absolute;
  inset:0;
  display:none;
  place-items:center;
  align-content:center;
  gap:6px;
  color:#3a6954;
  background:radial-gradient(circle at 45% 30%,#f0f6f2,#dce8df);
}
.dashboard-property-image.no-image .dashboard-property-placeholder,
.dashboard-property-image.is-missing .dashboard-property-placeholder{
  display:grid;
}
.dashboard-property-placeholder .icon{
  width:27px;
  height:27px;
}
.dashboard-property-placeholder .icon svg{
  width:27px!important;
  height:27px!important;
}
.dashboard-property-placeholder small{
  color:#698074;
  font-size:8px;
  font-weight:800;
}
.dashboard-property-open-icon{
  position:absolute;
  left:10px;
  bottom:10px;
  display:grid;
  place-items:center;
  width:29px;
  height:29px;
  border:1px solid rgba(255,255,255,.4);
  border-radius:9px;
  color:#fff;
  background:rgba(8,65,45,.91);
  box-shadow:0 6px 14px rgba(3,36,23,.18);
  backdrop-filter:blur(5px);
}
.dashboard-property-open-icon .icon,
.dashboard-property-open-icon .icon svg{
  width:14px!important;
  height:14px!important;
}
.dashboard-property-content{
  min-width:0;
  padding:13px;
}
.dashboard-property-title-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:8px;
}
.dashboard-property-title-row>div{
  min-width:0;
}
.dashboard-property-title-row a{
  text-decoration:none;
}
.dashboard-property-title-row h3{
  overflow:hidden;
  margin:0;
  color:#083f2d!important;
  font-family:Outfit,Inter,sans-serif!important;
  font-size:17px;
  line-height:1.08;
  letter-spacing:-.025em;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dashboard-property-title-row a:hover h3{
  color:#f1541f!important;
}
.dashboard-property-title-row p{
  overflow:hidden;
  margin:4px 0 0;
  color:#748078;
  font-size:9px;
  line-height:1.35;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dashboard-property-plan-count{
  display:inline-flex;
  align-items:center;
  flex:0 0 auto;
  min-height:23px;
  padding:4px 7px;
  border:1px solid #e0e8e2;
  border-radius:999px;
  color:#3e604f;
  background:#f3f7f4;
  font-size:8px;
  font-weight:800;
}
.dashboard-property-status-row{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  min-height:23px;
  margin-top:9px;
}
.dashboard-property-alert{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:4px 7px;
  border-radius:999px;
  font-size:8px;
  font-weight:850;
}
.dashboard-property-alert.is-acute{
  color:#a4143a;
  background:#ffe8ee;
}
.dashboard-property-alert.is-overdue{
  color:#a9451e;
  background:#fff0e7;
}
.dashboard-property-alert.is-stable{
  color:#246244;
  background:#eaf5ed;
}
.dashboard-property-metrics{
  display:grid;
  grid-template-columns:.75fr 1.25fr;
  gap:1px;
  overflow:hidden;
  margin-top:9px;
  border:1px solid #e7e1d8;
  border-radius:10px;
  background:#e7e1d8;
}
.dashboard-property-metrics>div{
  min-width:0;
  padding:7px 8px;
  background:#faf8f4;
}
.dashboard-property-metrics span{
  display:block;
  overflow:hidden;
  color:#7b857f;
  font-size:7px;
  font-weight:700;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dashboard-property-metrics strong{
  display:block;
  overflow:hidden;
  margin-top:2px;
  color:#123f2e;
  font-size:10px;
  line-height:1.2;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dashboard-property-shortcuts{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:4px;
  margin-top:9px;
}
.dashboard-property-shortcuts a{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  min-width:0;
  min-height:29px;
  padding:5px 4px;
  border:1px solid #e4dfd7;
  border-radius:8px;
  color:#355a48;
  background:#fff;
  text-decoration:none;
  transition:border-color .15s ease,background .15s ease,color .15s ease;
}
.dashboard-property-shortcuts a:hover{
  color:#0a4a34;
  border-color:#b9cfbf;
  background:#eef6f0;
}
.dashboard-property-shortcuts .icon,
.dashboard-property-shortcuts .icon svg{
  width:12px!important;
  height:12px!important;
  flex:0 0 12px;
}
.dashboard-property-shortcuts span{
  overflow:hidden;
  font-size:7px;
  font-weight:800;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dashboard-properties-more{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-top:13px;
  padding:11px 13px;
  border:1px dashed #cad8ce;
  border-radius:12px;
  color:#68766e;
  background:#f7faf7;
  font-size:10px;
}
.dashboard-properties-more a{
  color:#0b5138;
  font-weight:850;
  text-decoration:none;
  white-space:nowrap;
}
.dashboard-properties-more a:hover{
  color:#f1541f;
}
.dashboard-properties-feature .dashboard-empty{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.dashboard-properties-feature .dashboard-empty strong{
  color:#153f2f;
}

.dashboard-page-v2 .dashboard-grid{
  margin-top:18px;
}
.dashboard-page-v2 .dashboard-panel{
  border-radius:21px;
}
.dashboard-page-v2 .dashboard-panel-head h3{
  font-size:22px;
}
.dashboard-page-v2 .dashboard-panel-head p{
  line-height:1.4;
}
.dashboard-page-v2 .attention-item,
.dashboard-page-v2 .task-preview-item{
  border-radius:13px;
}
.dashboard-page-v2 .budget-part-row{
  padding:10px 0;
}

@media(max-width:1450px){
  .dashboard-property-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:1040px){
  .dashboard-properties-feature-head{
    align-items:flex-start;
    flex-direction:column;
  }
  .dashboard-properties-feature-actions{
    width:100%;
    justify-content:space-between;
  }
  .dashboard-property-grid{
    grid-template-columns:1fr;
  }
  .dashboard-property-card{
    grid-template-columns:150px minmax(0,1fr);
  }
}
@media(max-width:720px){
  .dashboard-properties-feature{
    padding:18px;
    border-radius:18px;
  }
  .dashboard-properties-feature::before{
    left:18px;
  }
  .dashboard-properties-feature-actions{
    align-items:stretch;
    flex-direction:column;
  }
  .dashboard-properties-feature-actions .btn{
    justify-content:center;
  }
  .dashboard-property-card{
    grid-template-columns:1fr;
  }
  .dashboard-property-image{
    min-height:142px;
  }
  .dashboard-properties-more{
    align-items:flex-start;
    flex-direction:column;
  }
  .dashboard-properties-feature .dashboard-empty{
    align-items:flex-start;
    flex-direction:column;
  }
}
@media(max-width:430px){
  .dashboard-property-shortcuts{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .dashboard-property-shortcuts a{
    min-height:35px;
  }
  .dashboard-property-shortcuts span{
    font-size:8px;
  }
}

/* =========================================================
   v2.4.2 — Properties: stronger card readability
   Keeps the existing card layout and shortcuts, but raises
   the typographic scale so each property can be scanned easily.
   ========================================================= */
.properties-page .portfolio-property-cover-badges span{
  min-height:30px;
  padding:6px 10px;
  font-size:10.5px;
  line-height:1;
}

.properties-page .portfolio-property-body{
  padding:20px;
}

.properties-page .portfolio-property-heading h2{
  font-size:clamp(23px,1.45vw,27px);
  line-height:1.06;
  letter-spacing:-.03em;
}

.properties-page .portfolio-property-heading p{
  margin-top:8px;
  color:#617169;
  font-size:13px;
  line-height:1.5;
}

.properties-page .portfolio-property-arrow{
  width:32px;
  height:32px;
  flex-basis:32px;
  font-size:17px;
}

.properties-page .portfolio-property-metrics{
  margin:17px 0;
}

.properties-page .portfolio-property-metrics>div{
  padding:12px 11px;
}

.properties-page .portfolio-property-metrics small{
  font-size:10px;
  line-height:1.25;
}

.properties-page .portfolio-property-metrics strong{
  margin-top:5px;
  font-size:14px;
  line-height:1.2;
}

.properties-page .portfolio-latest-plan{
  grid-template-columns:36px minmax(0,1fr) auto 18px;
  gap:10px;
  min-height:62px;
  padding:11px 12px;
}

.properties-page .portfolio-latest-plan-icon{
  width:36px;
  height:36px;
}

.properties-page .portfolio-latest-plan-icon .icon{
  width:17px;
  height:17px;
}

.properties-page .portfolio-latest-plan small{
  font-size:10px;
  line-height:1.25;
}

.properties-page .portfolio-latest-plan strong{
  margin-top:3px;
  font-size:12.5px;
  line-height:1.3;
}

.properties-page .portfolio-latest-plan em{
  padding:5px 8px;
  font-size:9.5px;
}

.properties-page .portfolio-latest-plan b{
  font-size:14px;
}

.properties-page .portfolio-property-primary{
  min-height:44px;
  padding:12px 14px;
  font-size:12px;
}

.properties-page .portfolio-property-primary .icon{
  width:16px;
  height:16px;
}

.properties-page .portfolio-property-primary b{
  font-size:16px;
}

.properties-page .portfolio-property-shortcuts{
  gap:8px;
  margin-top:9px;
}

.properties-page .portfolio-property-shortcuts a{
  min-height:62px;
  padding:9px 5px;
}

.properties-page .portfolio-property-shortcuts .icon{
  width:17px;
  height:17px;
}

.properties-page .portfolio-property-shortcuts span{
  font-size:10px;
  line-height:1.15;
}

.properties-page .portfolio-property-footer{
  margin-top:13px;
  padding-top:11px;
  font-size:9.5px;
}

.properties-page .portfolio-property-placeholder small{
  font-size:11px;
}

@media(max-width:1100px){
  .properties-page .portfolio-property-heading h2{
    font-size:24px;
  }
  .properties-page .portfolio-property-shortcuts span{
    font-size:10.5px;
  }
}

@media(max-width:600px){
  .properties-page .portfolio-property-body{
    padding:18px;
  }
  .properties-page .portfolio-property-heading h2{
    font-size:25px;
  }
  .properties-page .portfolio-property-heading p{
    font-size:13.5px;
  }
  .properties-page .portfolio-property-metrics small{
    font-size:10.5px;
  }
  .properties-page .portfolio-property-metrics strong{
    font-size:14.5px;
  }
  .properties-page .portfolio-property-shortcuts a{
    min-height:60px;
  }
  .properties-page .portfolio-property-shortcuts span{
    font-size:10.5px;
  }
}


/* =========================================================
   v2.4.3 — Dashboard: stronger readability in property cards
   The dashboard cards used very small text. This raises the
   type scale, spacing and badge sizes without changing the
   existing dashboard structure or actions.
   ========================================================= */
.dashboard-property-grid{
  gap:18px;
}
.dashboard-property-card{
  grid-template-columns:136px minmax(0,1fr);
  border-radius:19px;
}
.dashboard-property-image{
  min-height:100%;
}
.dashboard-property-placeholder small{
  font-size:11px;
  letter-spacing:.02em;
}
.dashboard-property-open-icon{
  width:34px;
  height:34px;
  border-radius:11px;
}
.dashboard-property-open-icon .icon,
.dashboard-property-open-icon .icon svg{
  width:16px !important;
  height:16px !important;
}
.dashboard-property-content{
  padding:16px 16px 17px;
}
.dashboard-property-title-row{
  gap:10px;
}
.dashboard-property-title-row h3{
  font-size:28px;
  line-height:1.04;
}
.dashboard-property-title-row p{
  margin-top:6px;
  font-size:13px;
  line-height:1.4;
  white-space:normal;
  text-overflow:initial;
}
.dashboard-property-plan-count{
  min-height:28px;
  padding:6px 10px;
  font-size:11.5px;
  line-height:1;
}
.dashboard-property-status-row{
  gap:8px;
  min-height:30px;
  margin-top:12px;
}
.dashboard-property-alert{
  min-height:28px;
  padding:6px 10px;
  font-size:11.5px;
  line-height:1;
}
.dashboard-property-metrics{
  margin-top:12px;
  border-radius:12px;
}
.dashboard-property-metrics>div{
  padding:10px 12px;
}
.dashboard-property-metrics span{
  font-size:11px;
  line-height:1.25;
}
.dashboard-property-metrics strong{
  margin-top:4px;
  font-size:16px;
  line-height:1.25;
}
.dashboard-property-shortcuts{
  gap:8px;
  margin-top:12px;
}
.dashboard-property-shortcuts a{
  min-height:40px;
  gap:6px;
  padding:8px 8px;
  border-radius:10px;
}
.dashboard-property-shortcuts .icon,
.dashboard-property-shortcuts .icon svg{
  width:14px !important;
  height:14px !important;
  flex:0 0 14px;
}
.dashboard-property-shortcuts span{
  font-size:11px;
  line-height:1.15;
}
.dashboard-properties-more{
  font-size:12px;
}
@media(max-width:1200px){
  .dashboard-property-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .dashboard-property-title-row h3{
    font-size:24px;
  }
}
@media(max-width:980px){
  .dashboard-property-card{
    grid-template-columns:150px minmax(0,1fr);
  }
  .dashboard-property-title-row h3{
    font-size:22px;
  }
}
@media(max-width:720px){
  .dashboard-property-title-row h3{
    font-size:20px;
  }
  .dashboard-property-title-row p{
    font-size:12.5px;
  }
  .dashboard-property-shortcuts span{
    font-size:10.5px;
  }
}
@media(max-width:430px){
  .dashboard-property-metrics{
    grid-template-columns:1fr;
  }
}

/* =========================================================
   v2.4.4 — Tasks page: stronger readability
   Increases typographic scale and spacing on the portfolio
   tasks page so filters, summaries and the task table are
   easier to scan on desktop and tablet.
   ========================================================= */
.tasks-page .tasks-page-eyebrow{
  font-size:12px;
}
.tasks-page .tasks-page-head h1{
  font-size:26px;
}
.tasks-page .tasks-page-head p{
  font-size:14px;
  line-height:1.45;
}
.tasks-page .tasks-metric-card{
  padding:16px 18px;
}
.tasks-page .tasks-metric-card small{
  font-size:12px;
  line-height:1.3;
}
.tasks-page .tasks-metric-card strong{
  font-size:17px;
  line-height:1.2;
}
.tasks-page .tasks-metric-card div > span{
  font-size:12px;
  line-height:1.35;
}
.tasks-page .tasks-insight-head h2,
.tasks-page .tasks-filter-top h2,
.tasks-page .tasks-table-toolbar h2{
  font-size:20px;
  line-height:1.15;
}
.tasks-page .tasks-insight-head p,
.tasks-page .tasks-filter-top p,
.tasks-page .tasks-table-toolbar p,
.tasks-page .tasks-active-filter-note{
  font-size:13px;
  line-height:1.45;
}
.tasks-page .tasks-priority-row-top > span,
.tasks-page .tasks-priority-row-top strong{
  font-size:12.5px;
}
.tasks-page .tasks-status-item{
  padding:14px 14px 12px;
}
.tasks-page .tasks-status-item .status-badge{
  font-size:11.5px;
}
.tasks-page .tasks-status-item strong{
  font-size:18px;
}
.tasks-page .tasks-status-item small{
  font-size:12px;
}
.tasks-page .tasks-quick-filters a{
  min-height:32px;
  padding:7px 11px;
  font-size:11.5px;
}
.tasks-page .tasks-filter-form label,
.tasks-page .tasks-table-controls label{
  font-size:12px;
  line-height:1.35;
}
.tasks-page .tasks-filter-form select,
.tasks-page .tasks-filter-form input[type="search"],
.tasks-page .tasks-table-controls select{
  min-height:42px;
  padding-top:10px;
  padding-bottom:10px;
  font-size:13px;
}
.tasks-page .tasks-search-input-wrap svg{
  width:17px;
  height:17px;
}
.tasks-page .tasks-filter-form .tasks-search-input-wrap input[type="search"]{
  padding-left:38px;
}
.tasks-page .tasks-filter-submit,
.tasks-page .tasks-filter-reset,
.tasks-page .tasks-export-button,
.tasks-page .tasks-row-actions .btn-small{
  min-height:38px;
  font-size:12.5px;
}
.tasks-page .tasks-table-toolbar p strong{
  font-size:13px;
}
.tasks-page .tasks-data-table thead th{
  font-size:12.5px;
}
.tasks-page .tasks-data-table tbody td{
  padding-top:13px;
  padding-bottom:13px;
  font-size:13px;
}
.tasks-page .tasks-property-link,
.tasks-page .tasks-title-cell > a{
  font-size:13.5px;
  line-height:1.35;
}
.tasks-page .tasks-part-link,
.tasks-page .tasks-year-value,
.tasks-page .tasks-budget-value{
  font-size:12.5px;
}
.tasks-page .tasks-row-subline{
  margin-top:3px;
  font-size:11.5px;
  line-height:1.4;
}
.tasks-page .tasks-overdue-label,
.tasks-page .tasks-data-table .priority-badge,
.tasks-page .tasks-data-table .status-badge{
  font-size:11px;
  padding:5px 8px;
}
.tasks-page .tasks-pagination,
.tasks-page .tasks-pagination button,
.tasks-page .tasks-pagination > div{
  font-size:12px;
}
@media(max-width:960px){
  .tasks-page .tasks-page-head h1{
    font-size:24px;
  }
  .tasks-page .tasks-insight-head h2,
  .tasks-page .tasks-filter-top h2,
  .tasks-page .tasks-table-toolbar h2{
    font-size:18px;
  }
}
@media(max-width:720px){
  .tasks-page .tasks-metric-card strong{
    font-size:16px;
  }
  .tasks-page .tasks-data-table tbody td{
    font-size:12.5px;
  }
  .tasks-page .tasks-data-table tbody td::before{
    font-size:11px;
  }
}

/* =========================================================
   v2.4.6 — Property task overview
   A focused, scalable task workspace for one property.
   ========================================================= */
.property-tasks-page .property-tasks-head{
  padding:20px 22px;
  border:1px solid #ded5c8;
  border-radius:20px;
  background:
    radial-gradient(circle at 92% 14%,rgba(241,84,31,.12),transparent 14rem),
    linear-gradient(135deg,#fffdf8 0%,#f8f2e9 100%);
  box-shadow:0 12px 30px rgba(36,31,24,.06);
}
.property-tasks-page .property-tasks-head-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.property-tasks-page .property-tasks-head .btn-light{
  color:#0b4b35;
  border-color:#d5c8b8;
  background:#fffdf9;
}
.property-tasks-insight-grid{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:16px;
  margin-bottom:16px;
}
.property-tasks-year-card{
  min-width:0;
}
.property-tasks-year-chart{
  display:flex;
  align-items:flex-end;
  gap:10px;
  min-height:176px;
  padding:8px 2px 0;
  overflow-x:auto;
}
.property-tasks-year-col{
  display:grid;
  grid-template-rows:118px auto auto;
  gap:5px;
  min-width:46px;
  text-align:center;
}
.property-tasks-year-track{
  position:relative;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  overflow:hidden;
  border-radius:10px 10px 5px 5px;
  background:#eee8df;
}
.property-tasks-year-track span{
  display:block;
  width:100%;
  min-height:5px;
  border-radius:10px 10px 4px 4px;
  background:linear-gradient(180deg,#0e6a49 0%,#0a4a34 100%);
}
.property-tasks-year-col strong{
  color:#0b4b35;
  font-size:12px;
  line-height:1.1;
}
.property-tasks-year-col small{
  color:#6d766f;
  font-size:10px;
  line-height:1.2;
  white-space:nowrap;
}
.property-tasks-empty-chart{
  display:grid;
  place-items:center;
  min-height:150px;
  padding:20px;
  border:1px dashed #d8d0c5;
  border-radius:14px;
  color:#68746d;
  background:#faf7f2;
  font-size:13px;
  text-align:center;
}
.property-tasks-filter-form{
  grid-template-columns:minmax(120px,.8fr) minmax(150px,1fr) minmax(145px,1fr) minmax(260px,1.7fr) auto !important;
}
.property-tasks-data-table{
  min-width:980px;
}
.property-tasks-plan-title{
  color:#59665f;
  font-size:12px;
  line-height:1.35;
}
.property-tasks-table-wrap{
  max-height:none !important;
  overflow-x:auto !important;
  overflow-y:visible !important;
}
@media(max-width:1180px){
  .property-tasks-insight-grid{
    grid-template-columns:1fr;
  }
  .property-tasks-filter-form{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
  .property-tasks-filter-form .tasks-search-field{
    grid-column:span 2;
  }
}
@media(max-width:760px){
  .property-tasks-page .property-tasks-head{
    padding:18px;
  }
  .property-tasks-page .property-tasks-head-actions{
    width:100%;
  }
  .property-tasks-page .property-tasks-head-actions .btn{
    flex:1;
    justify-content:center;
  }
  .property-tasks-filter-form,
  .property-tasks-filter-form .tasks-search-field{
    grid-template-columns:1fr !important;
    grid-column:auto !important;
  }
  .property-tasks-year-chart{
    min-height:160px;
  }
}

/* =========================================================
   VRAP v2.5.0 — maintenance plan workflow
   A unified, guided five-step report flow. Existing data,
   AI actions, report generation and publishing are preserved.
   ========================================================= */
.plan-flow-page{
  --flow-green:#0b4a35;
  --flow-green-dark:#073b2a;
  --flow-orange:#f1541f;
  --flow-cream:#fffdf8;
  --flow-line:#e3d8ca;
  --flow-muted:#66736c;
  padding-bottom:24px;
}
.plan-head-flow{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:18px;
  padding:17px 20px !important;
  margin-bottom:16px !important;
  background:#fffdf8 !important;
  border-color:var(--flow-line) !important;
  box-shadow:0 12px 30px rgba(31,25,17,.055) !important;
}
.plan-head-flow .plan-head-identity{
  display:flex;
  flex-direction:column;
  min-width:0;
  text-align:center;
}
.plan-head-flow .plan-head-identity strong{
  overflow:hidden;
  color:var(--flow-green-dark) !important;
  font-family:Outfit,Inter,sans-serif !important;
  font-size:20px !important;
  line-height:1.05;
  letter-spacing:-.025em;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.plan-head-flow .plan-head-identity span{
  margin-top:4px;
  color:#6b7770;
  font-size:12.5px !important;
}
.plan-head-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
}
.plan-status-pill,
.plan-published-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:31px;
  padding:6px 10px;
  border-radius:999px;
  font-size:11px;
  font-weight:850;
  white-space:nowrap;
}
.plan-status-pill.is-draft{
  color:#80511f;
  border:1px solid #ead4b8;
  background:#fff4e7;
}
.plan-status-pill.is-published,
.plan-published-badge{
  color:#0b5338;
  border:1px solid #bcdcc9;
  background:#eaf6ee;
}
.plan-flow-page .wizard{
  gap:10px;
  margin-bottom:18px;
}
.plan-flow-page .wizard-step{
  min-width:0;
  min-height:66px;
  padding:11px 13px !important;
  border-radius:16px !important;
  background:#f8f2e9 !important;
  border-color:#dfd4c6 !important;
  box-shadow:0 7px 18px rgba(36,28,18,.035);
}
.plan-flow-page .wizard-step:hover{
  transform:translateY(-1px);
  border-color:#cbbdad !important;
  background:#fffaf3 !important;
}
.plan-flow-page .wizard-step.done{
  background:#edf7f1 !important;
  border-color:#cde5d6 !important;
}
.plan-flow-page .wizard-step.active{
  background:#fffdf8 !important;
  border-color:#688c7b !important;
  box-shadow:0 0 0 3px rgba(11,74,53,.10),0 10px 24px rgba(35,28,18,.06) !important;
}
.plan-flow-page .wizard-step .wizard-dot{
  width:30px !important;
  height:30px !important;
  flex:0 0 30px;
  border-width:1px !important;
  font-size:10px !important;
  font-weight:850;
}
.plan-flow-page .wizard-step.done .wizard-dot{
  color:#fff !important;
  background:var(--flow-green) !important;
  border-color:var(--flow-green) !important;
}
.plan-flow-page .wizard-copy{
  display:flex;
  flex-direction:column;
  min-width:0;
  line-height:1.1;
}
.plan-flow-page .wizard-copy em{
  overflow:hidden;
  color:#23372e;
  font-size:12px;
  font-style:normal;
  font-weight:850;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.plan-flow-page .wizard-copy small{
  margin-top:4px;
  color:#7a847e;
  font-size:9.5px;
  font-weight:650;
}
.plan-flow-step-head{
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:16px;
  margin:0 0 18px;
  padding:4px 2px 6px;
}
.plan-flow-step-icon{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:12px;
  color:#fff;
  background:var(--flow-green);
  box-shadow:0 9px 20px rgba(11,74,53,.16);
}
.plan-flow-step-icon .icon,
.plan-flow-step-icon svg{
  width:20px !important;
  height:20px !important;
}
.plan-flow-step-copy{
  min-width:0;
}
.plan-flow-step-copy>span{
  display:block;
  margin-bottom:3px;
  color:#5c6f65;
  font-size:10.5px;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.plan-flow-step-copy h1{
  margin:0;
  color:var(--flow-green-dark) !important;
  font-family:Outfit,Inter,sans-serif !important;
  font-size:32px !important;
  line-height:1.04;
  letter-spacing:-.045em;
}
.plan-flow-step-copy p{
  margin:6px 0 0;
  color:var(--flow-muted);
  font-size:13.5px;
  line-height:1.45;
}
.plan-flow-status{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:7px 12px;
  border:1px solid transparent;
  border-radius:999px;
  font-size:11.5px;
  font-weight:850;
  white-space:nowrap;
}
.plan-flow-status.is-ready{
  color:#0a5939;
  border-color:#bfddca;
  background:#eaf6ee;
}
.plan-flow-status.is-warning{
  color:#9a451f;
  border-color:#f1c9b7;
  background:#fff1e9;
}
.plan-flow-status.is-info{
  color:#52645b;
  border-color:#d6dfd9;
  background:#f0f4f1;
}
.plan-flow-form{
  display:block !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
.plan-section-card{
  margin-bottom:16px;
  padding:20px;
  border:1px solid var(--flow-line);
  border-radius:20px;
  background:var(--flow-cream);
  box-shadow:0 12px 28px rgba(35,28,18,.045);
}
.plan-section-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:16px;
}
.plan-section-card-head>div:first-child{
  display:flex;
  align-items:flex-start;
  gap:12px;
  min-width:0;
}
.plan-section-number{
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  flex:0 0 28px;
  border-radius:9px;
  color:#fff;
  background:var(--flow-green);
  font-size:11px;
  font-weight:900;
}
.plan-section-card h2{
  margin:0;
  color:var(--flow-green-dark) !important;
  font-family:Outfit,Inter,sans-serif !important;
  font-size:19px !important;
  line-height:1.15;
  letter-spacing:-.02em;
}
.plan-section-card-head p{
  margin:5px 0 0;
  color:var(--flow-muted);
  font-size:12.5px;
  line-height:1.45;
}
.plan-form-grid label{
  font-size:12.5px;
}
.plan-form-grid input{
  min-height:46px;
  font-size:14px;
}
.plan-text-section textarea{
  width:100%;
  min-height:180px;
  padding:15px 16px;
  border-color:#d9cdbf;
  border-radius:14px;
  color:#142a20;
  background:#fffefb;
  font-size:14px;
  line-height:1.58;
}
.plan-text-section textarea:focus{
  border-color:#6c9a83;
  box-shadow:0 0 0 3px rgba(11,74,53,.09);
}
.plan-text-tools{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex:0 0 auto;
}
.plan-char-count{
  color:#738079;
  font-size:11px;
  font-weight:750;
  white-space:nowrap;
}
.plan-field-note,
.plan-ai-trust-note{
  margin:10px 0 0;
  color:#69776f;
  font-size:12px;
  line-height:1.45;
}
.plan-ai-trust-note{
  padding:11px 13px;
  border:1px solid #d2e1d7;
  border-radius:12px;
  color:#426052;
  background:#f0f7f2;
}
.plan-flow-actions{
  position:sticky;
  z-index:16;
  bottom:12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-top:18px;
  padding:12px;
  border:1px solid rgba(214,202,187,.92);
  border-radius:17px;
  background:rgba(255,253,248,.94);
  box-shadow:0 14px 34px rgba(34,27,18,.11);
  backdrop-filter:blur(14px);
}
.plan-flow-actions-state{
  color:#6c7771;
  font-size:11.5px;
  font-weight:650;
  text-align:center;
}
.plan-flow-actions-buttons{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:9px;
}
.plan-flow-actions .btn{
  min-height:38px;
}
.plan-summary-grid{
  display:grid;
  gap:13px;
  margin-bottom:17px;
}
.plan-summary-grid-four{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.plan-summary-card{
  min-width:0;
  padding:16px;
  border:1px solid var(--flow-line);
  border-radius:17px;
  background:var(--flow-cream);
  box-shadow:0 9px 22px rgba(34,27,18,.04);
}
.plan-summary-card>span{
  display:block;
  color:#69776f;
  font-size:10px;
  font-weight:850;
  letter-spacing:.065em;
  text-transform:uppercase;
}
.plan-summary-card>strong{
  display:block;
  margin-top:5px;
  overflow:hidden;
  color:var(--flow-green-dark);
  font-family:Outfit,Inter,sans-serif;
  font-size:25px;
  line-height:1.1;
  letter-spacing:-.035em;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.plan-summary-card>strong.is-text-value{
  font-size:18px;
  line-height:1.2;
}
.plan-summary-card>small{
  display:block;
  margin-top:6px;
  color:#77827c;
  font-size:11px;
  line-height:1.35;
}
.plan-summary-card.is-success{
  border-color:#bedcc9;
  background:#f0f8f3;
}
.plan-summary-card.is-warning{
  border-color:#efcbb9;
  background:#fff4ed;
}
.plan-summary-card.is-highlight{
  color:#fff;
  border-color:var(--flow-green);
  background:var(--flow-green);
}
.plan-summary-card.is-highlight>span,
.plan-summary-card.is-highlight>small{
  color:rgba(255,255,255,.74);
}
.plan-summary-card.is-highlight>strong{
  color:#fff;
}
.plan-part-filter-panel{
  display:grid;
  grid-template-columns:minmax(210px,.7fr) minmax(460px,1.6fr) minmax(190px,.55fr);
  align-items:end;
  gap:16px;
  margin-bottom:14px;
  padding:16px;
  border:1px solid var(--flow-line);
  border-radius:18px;
  background:var(--flow-cream);
}
.plan-part-filter-copy h2{
  margin:0;
  color:var(--flow-green-dark);
  font-family:Outfit,Inter,sans-serif;
  font-size:18px;
}
.plan-part-filter-copy p{
  margin:4px 0 0;
  color:var(--flow-muted);
  font-size:11.5px;
  line-height:1.4;
}
.plan-part-filters{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:7px;
}
.plan-part-filters button{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:34px;
  padding:7px 10px;
  border:1px solid #ddd2c5;
  border-radius:999px;
  color:#4c5c54;
  background:#fff;
  font-size:10.5px;
  font-weight:800;
  cursor:pointer;
}
.plan-part-filters button span{
  display:grid;
  place-items:center;
  min-width:20px;
  height:20px;
  padding:0 5px;
  border-radius:999px;
  background:#f2ede5;
  font-size:9px;
}
.plan-part-filters button:hover,
.plan-part-filters button.active{
  color:#fff;
  border-color:var(--flow-green);
  background:var(--flow-green);
}
.plan-part-filters button.active span{
  color:var(--flow-green);
  background:#fff;
}
.plan-part-search{
  gap:5px;
  font-size:11px;
}
.plan-part-search input{
  min-height:38px;
  padding:9px 11px;
  font-size:12px;
}
.plan-parts-table-card{
  padding:12px !important;
  overflow:visible !important;
}
.plan-parts-table-card::before{
  display:none !important;
}
.plan-parts-table{
  table-layout:auto;
}
.plan-parts-table thead th{
  position:sticky;
  z-index:3;
  top:0;
  padding:11px 9px;
  color:#fff !important;
  background:var(--flow-green) !important;
  font-size:10.5px;
}
.plan-parts-table thead th:first-child{
  border-radius:10px 0 0 0;
}
.plan-parts-table thead th:last-child{
  border-radius:0 10px 0 0;
}
.plan-parts-table tbody td{
  padding:13px 9px;
  font-size:11.5px;
  vertical-align:middle;
}
.plan-parts-table tbody tr:hover td{
  background:#fff9f2;
}
.plan-part-name{
  display:block;
  color:#15382a;
  font-size:12.5px;
}
.plan-part-note{
  display:block;
  max-width:300px;
  margin-top:4px;
  color:#77847d;
  font-size:10px;
  line-height:1.35;
}
.plan-part-checks{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  margin-top:7px;
}
.plan-part-checks span{
  display:inline-flex;
  align-items:center;
  min-height:20px;
  padding:3px 6px;
  border-radius:999px;
  font-size:8.5px;
  font-weight:800;
}
.plan-part-checks .is-ok{
  color:#2f6048;
  background:#eaf5ed;
}
.plan-part-checks .is-missing{
  color:#9c451f;
  background:#fff0e7;
}
.plan-readiness{
  display:inline-flex;
  align-items:center;
  max-width:150px;
  min-height:27px;
  padding:5px 8px;
  border-radius:999px;
  font-size:9px;
  font-weight:850;
  line-height:1.15;
}
.plan-readiness.is-ready{
  color:#15543a;
  background:#e8f4ec;
}
.plan-readiness.is-warning{
  color:#a34a21;
  background:#fff0e8;
}
.plan-budget-overview-card{
  margin-bottom:16px;
  padding:18px 20px 16px;
  border:1px solid var(--flow-line);
  border-radius:20px;
  background:var(--flow-cream);
  box-shadow:0 12px 28px rgba(35,28,18,.045);
}
.plan-budget-overview-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
}
.plan-budget-overview-head h2{
  margin:0;
  color:var(--flow-green-dark);
  font-family:Outfit,Inter,sans-serif;
  font-size:19px;
}
.plan-budget-overview-head p{
  margin:4px 0 0;
  color:var(--flow-muted);
  font-size:12px;
}
.plan-budget-legend{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:10px;
}
.plan-budget-legend span{
  display:inline-flex;
  align-items:center;
  gap:5px;
  color:#536159;
  font-size:10px;
  font-weight:750;
}
.plan-budget-legend span::before{
  content:'';
  width:8px;
  height:8px;
  border-radius:50%;
  background:currentColor;
}
.plan-budget-legend .priority-acute{color:#d92d5b}
.plan-budget-legend .priority-necessary{color:#d95019}
.plan-budget-legend .priority-normal{color:#23845a}
.plan-budget-legend .priority-beneficial{color:#9b7611}
.plan-budget-chart{
  display:grid;
  grid-template-columns:repeat(10,minmax(48px,1fr));
  align-items:end;
  gap:12px;
  min-height:210px;
  margin-top:20px;
  padding:0 4px;
}
.plan-budget-year{
  display:flex;
  flex-direction:column;
  align-items:center;
  min-width:0;
}
.plan-budget-bar-area{
  display:flex;
  align-items:flex-end;
  justify-content:center;
  width:100%;
  height:142px;
}
.plan-budget-bar-stack{
  display:flex;
  flex-direction:column-reverse;
  justify-content:flex-start;
  overflow:hidden;
  width:min(38px,75%);
  min-height:3px;
  border-radius:6px 6px 2px 2px;
  background:#e5ebe7;
  box-shadow:inset 0 0 0 1px rgba(7,59,42,.05);
}
.plan-budget-bar-stack>span{
  display:block;
  width:100%;
  min-height:2px;
}
.plan-budget-bar-stack .priority-acute{background:#d92d5b}
.plan-budget-bar-stack .priority-necessary{background:#c74617}
.plan-budget-bar-stack .priority-normal{background:#1f7650}
.plan-budget-bar-stack .priority-beneficial{background:#98730e}
.plan-budget-bar-stack.is-empty{
  height:3px !important;
  background:#dfe7e2;
}
.plan-budget-year>strong{
  margin-top:9px;
  color:#123e2e;
  font-size:11px;
}
.plan-budget-year>span{
  overflow:hidden;
  width:100%;
  margin-top:3px;
  color:#748078;
  font-size:8.5px;
  text-align:center;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.plan-budget-table-wrap{
  overflow:auto !important;
  padding:12px !important;
}
.plan-budget-table-wrap::before{
  display:none !important;
}
.plan-budget-table{
  min-width:1100px !important;
}
.plan-budget-table thead th{
  position:sticky;
  z-index:4;
  top:0;
  color:#fff !important;
  background:var(--flow-green) !important;
}
.plan-budget-table th:first-child,
.plan-budget-table td:first-child{
  position:sticky;
  z-index:2;
  left:0;
  min-width:180px;
  background:#fffdf8;
  box-shadow:7px 0 12px rgba(43,34,22,.035);
}
.plan-budget-table thead th:first-child{
  z-index:6;
  background:var(--flow-green) !important;
}
.plan-budget-table th:last-child,
.plan-budget-table td:last-child{
  position:sticky;
  z-index:2;
  right:0;
  min-width:115px;
  background:#f2f7f3;
  box-shadow:-7px 0 12px rgba(43,34,22,.04);
}
.plan-budget-table thead th:last-child{
  z-index:6;
  color:#fff !important;
  background:var(--flow-green) !important;
}
.plan-budget-table td.is-empty{
  color:#aeb7b1;
}
.plan-budget-table td.has-value{
  color:#163f2e;
  font-weight:700;
}
.plan-conclusion-facts{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:13px;
  margin-bottom:16px;
}
.plan-conclusion-facts>div{
  padding:15px 16px;
  border:1px solid var(--flow-line);
  border-radius:16px;
  background:var(--flow-cream);
}
.plan-conclusion-facts span{
  display:block;
  color:#6c7972;
  font-size:10px;
  font-weight:850;
  letter-spacing:.055em;
  text-transform:uppercase;
}
.plan-conclusion-facts strong{
  display:block;
  margin-top:4px;
  color:var(--flow-green-dark);
  font-family:Outfit,Inter,sans-serif;
  font-size:22px;
}
.plan-conclusion-facts small{
  display:block;
  margin-top:4px;
  color:#7a857f;
  font-size:10.5px;
  line-height:1.35;
}
.plan-conclusion-card textarea{
  min-height:330px;
}
.plan-publish-hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-bottom:17px;
  padding:20px;
  border:1px solid var(--flow-line);
  border-radius:20px;
  background:linear-gradient(135deg,#fffdf8 0%,#f9f2e9 100%);
  box-shadow:0 12px 28px rgba(35,28,18,.05);
}
.plan-publish-kicker{
  display:block;
  color:#607269;
  font-size:10px;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.plan-publish-hero h2{
  margin:4px 0 0;
  color:var(--flow-green-dark);
  font-family:Outfit,Inter,sans-serif;
  font-size:25px;
  letter-spacing:-.035em;
}
.plan-publish-hero p{
  margin:6px 0 0;
  color:var(--flow-muted);
  font-size:13px;
}
.plan-publish-hero .publish-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:9px;
}
.plan-publish-hero form{
  display:inline-flex;
}
.plan-publish-metrics{
  margin-top:0;
}
.plan-preflight-card{
  margin:17px 0;
  padding:18px;
  border:1px solid var(--flow-line);
  border-radius:20px;
  background:var(--flow-cream);
  box-shadow:0 11px 25px rgba(35,28,18,.04);
}
.plan-preflight-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:13px;
}
.plan-preflight-head h2{
  margin:0;
  color:var(--flow-green-dark);
  font-family:Outfit,Inter,sans-serif;
  font-size:20px;
}
.plan-preflight-head p{
  margin:4px 0 0;
  color:var(--flow-muted);
  font-size:12px;
}
.plan-preflight-score{
  display:inline-flex;
  align-items:center;
  min-height:31px;
  padding:6px 10px;
  border-radius:999px;
  font-size:10.5px;
  font-weight:850;
  white-space:nowrap;
}
.plan-preflight-score.is-ready{
  color:#14583d;
  background:#e8f4ec;
}
.plan-preflight-score.is-warning{
  color:#a34a21;
  background:#fff0e8;
}
.plan-preflight-list{
  display:grid;
  gap:7px;
}
.plan-preflight-item{
  display:grid;
  grid-template-columns:30px minmax(0,1fr) auto;
  align-items:center;
  gap:11px;
  padding:11px 12px;
  border:1px solid #e5ddd3;
  border-radius:13px;
  background:#fff;
}
.plan-preflight-item>span{
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:50%;
  font-size:12px;
  font-weight:900;
}
.plan-preflight-item.is-ok>span{
  color:#fff;
  background:#1c8055;
}
.plan-preflight-item.is-warning>span{
  color:#a3441e;
  background:#ffe9dc;
}
.plan-preflight-item.is-info>span{
  color:#426052;
  background:#e9f0eb;
}
.plan-preflight-item strong{
  display:block;
  color:#183b2c;
  font-size:12px;
}
.plan-preflight-item p{
  margin:3px 0 0;
  color:#6f7b74;
  font-size:10.5px;
  line-height:1.35;
}
.plan-preflight-item>a{
  color:var(--flow-green);
  font-size:10.5px;
  font-weight:850;
}
.plan-ai-polish-card,
.plan-export-help-card{
  border-radius:18px !important;
}
.plan-export-help-card>a{
  flex:0 0 auto;
}
@media(max-width:1280px){
  .plan-summary-grid-four,
  .plan-conclusion-facts{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .plan-part-filter-panel{
    grid-template-columns:1fr;
    align-items:start;
  }
  .plan-part-search{
    max-width:360px;
  }
  .plan-parts-table-card{
    overflow-x:auto !important;
  }
  .plan-parts-table{
    min-width:1060px;
  }
}
@media(max-width:1100px){
  .plan-flow-page .wizard{
    grid-template-columns:repeat(5,minmax(140px,1fr));
    overflow-x:auto;
    padding-bottom:5px;
  }
  .plan-budget-chart{
    overflow-x:auto;
    grid-template-columns:repeat(10,minmax(72px,1fr));
  }
}
@media(max-width:900px){
  .plan-head-flow{
    grid-template-columns:1fr;
    justify-items:start;
  }
  .plan-head-flow .plan-head-identity{
    text-align:left;
  }
  .plan-head-actions{
    justify-content:flex-start;
    flex-wrap:wrap;
  }
  .plan-flow-step-head{
    grid-template-columns:auto minmax(0,1fr);
  }
  .plan-flow-status{
    grid-column:1 / -1;
    justify-self:start;
  }
  .plan-flow-actions{
    position:static;
    align-items:stretch;
    flex-direction:column;
  }
  .plan-flow-actions-state{
    order:2;
    text-align:left;
  }
  .plan-flow-actions-buttons{
    justify-content:flex-start;
    flex-wrap:wrap;
  }
  .plan-publish-hero,
  .plan-preflight-head{
    align-items:flex-start;
    flex-direction:column;
  }
  .plan-publish-hero .publish-actions{
    justify-content:flex-start;
  }
}
@media(max-width:720px){
  .plan-flow-step-copy h1{
    font-size:27px !important;
  }
  .plan-section-card{
    padding:16px;
  }
  .plan-section-card-head{
    flex-direction:column;
  }
  .plan-text-tools{
    width:100%;
    justify-content:space-between;
  }
  .plan-summary-grid-four,
  .plan-conclusion-facts{
    grid-template-columns:1fr;
  }
  .plan-part-filters{
    align-items:stretch;
    flex-direction:column;
  }
  .plan-part-filters button{
    justify-content:space-between;
    width:100%;
  }
  .plan-budget-overview-head{
    flex-direction:column;
  }
  .plan-budget-legend{
    justify-content:flex-start;
  }
  .plan-preflight-item{
    grid-template-columns:30px minmax(0,1fr);
  }
  .plan-preflight-item>a{
    grid-column:2;
  }
}

/* =========================================================
   VRAP v2.5.1 — report wizard layout correction
   The old generic .wizard-step span rule also affected the
   text wrapper and compressed every label into an 18px circle.
   ========================================================= */
.plan-flow-page .wizard-step > .wizard-copy{
  display:flex !important;
  flex:1 1 auto !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:center !important;
  place-items:initial !important;
  width:auto !important;
  height:auto !important;
  min-width:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:inherit !important;
  font-size:inherit !important;
  line-height:1.15 !important;
}

.plan-flow-page .wizard-step > .wizard-copy em{
  display:block !important;
  width:100% !important;
  color:#18372b !important;
  font-size:13px !important;
  line-height:1.2 !important;
  font-weight:800 !important;
  text-align:left !important;
  white-space:nowrap !important;
}

.plan-flow-page .wizard-step > .wizard-copy small{
  display:block !important;
  width:100% !important;
  margin-top:4px !important;
  color:#748078 !important;
  font-size:10.5px !important;
  line-height:1.2 !important;
  font-weight:600 !important;
  text-align:left !important;
  white-space:normal !important;
}

.plan-flow-page .wizard-step{
  gap:11px !important;
}

@media(max-width:1100px){
  .plan-flow-page .wizard-step{
    min-width:190px !important;
  }
}

/* =========================================================
   VRAP v2.5.2 — simplified report flow
   Removes secondary information and duplicate status blocks,
   while preserving all existing actions, validation and data.
   ========================================================= */
.plan-flow-page .wizard{
  gap:10px !important;
  margin-bottom:22px !important;
}
.plan-flow-page .wizard-step{
  min-height:58px !important;
  padding:11px 14px !important;
  gap:10px !important;
}
.plan-flow-page .wizard-step > .wizard-copy{
  justify-content:center !important;
}
.plan-flow-page .wizard-step > .wizard-copy em{
  font-size:13px !important;
  line-height:1.2 !important;
  white-space:normal !important;
}
.plan-flow-page .wizard-step > .wizard-copy small{
  display:none !important;
}
.plan-flow-page .plan-flow-step-head{
  grid-template-columns:auto minmax(0,1fr) !important;
  gap:14px !important;
  margin:0 0 18px !important;
  padding:0 2px !important;
}
.plan-flow-page .plan-flow-step-copy>span,
.plan-flow-page .plan-flow-status{
  display:none !important;
}
.plan-flow-page .plan-flow-step-copy h1{
  margin:0 0 4px !important;
  font-size:30px !important;
}
.plan-flow-page .plan-flow-step-copy p{
  max-width:760px !important;
  margin:0 !important;
  font-size:13.5px !important;
}
.plan-flow-page .plan-summary-grid,
.plan-flow-page .plan-conclusion-facts,
.plan-flow-page .plan-budget-chart-card,
.plan-flow-page .workflow-dashboard.plan-publish-metrics,
.plan-flow-page .plan-ai-polish-card,
.plan-flow-page .plan-export-help-card{
  display:none !important;
}
.plan-flow-page .plan-section-number,
.plan-flow-page .plan-char-count,
.plan-flow-page .plan-field-note,
.plan-flow-page .plan-ai-trust-note{
  display:none !important;
}
.plan-flow-page .plan-section-card{
  padding:20px !important;
}
.plan-flow-page .plan-section-card-head{
  margin-bottom:12px !important;
}
.plan-flow-page .plan-section-card-head h2{
  font-size:18px !important;
}
.plan-flow-page .plan-section-card-head p{
  margin-top:3px !important;
  font-size:12.5px !important;
}
.plan-flow-page .plan-text-tools{
  margin-left:auto !important;
}
.plan-flow-page .plan-part-filter-panel{
  display:flex !important;
  justify-content:flex-end !important;
  margin:0 0 12px !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
.plan-flow-page .plan-part-filter-copy,
.plan-flow-page .plan-part-filters{
  display:none !important;
}
.plan-flow-page .plan-part-search{
  width:min(340px,100%) !important;
}
.plan-flow-page .plan-part-search>span{
  font-size:11px !important;
}
.plan-flow-page .plan-part-checks{
  display:none !important;
}
.plan-flow-page .plan-parts-table th:nth-child(2),
.plan-flow-page .plan-parts-table td:nth-child(2){
  display:none !important;
}
.plan-flow-page .plan-part-name{
  font-size:13px !important;
}
.plan-flow-page .plan-part-note{
  margin-top:4px !important;
}
.plan-flow-page .plan-parts-table th,
.plan-flow-page .plan-parts-table td{
  padding-top:12px !important;
  padding-bottom:12px !important;
}
.plan-flow-page .plan-flow-actions{
  justify-content:space-between !important;
  min-height:58px !important;
}
.plan-flow-page .plan-flow-actions-state{
  display:none !important;
}
.plan-flow-page .plan-flow-actions-buttons{
  margin-left:auto !important;
}
.plan-flow-page .plan-preflight-head p{
  display:none !important;
}
.plan-flow-page .plan-preflight-card{
  margin-top:18px !important;
}
.plan-flow-page .plan-preflight-item{
  padding-top:12px !important;
  padding-bottom:12px !important;
}
@media(max-width:1100px){
  .plan-flow-page .wizard-step{
    min-width:165px !important;
  }
}
@media(max-width:720px){
  .plan-flow-page .plan-flow-step-copy h1{
    font-size:25px !important;
  }
  .plan-flow-page .plan-part-filter-panel{
    justify-content:stretch !important;
  }
  .plan-flow-page .plan-part-search{
    width:100% !important;
  }
}


/* =========================================================
   VRAP v2.5.3 — minimal rich-text editor
   Strictly scoped to report text fields to avoid affecting any
   other textarea, form, table or editor in the platform.
   ========================================================= */
.vrap-rich-editor{
  overflow:hidden;
  border:1px solid #d8cbbc;
  border-radius:13px;
  background:#fffdf9;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.vrap-rich-editor:focus-within{
  border-color:#0b5138;
  box-shadow:0 0 0 3px rgba(11,81,56,.10);
}
.vrap-rich-toolbar,
.vrap-rich-surface{
  display:none;
}
.vrap-rich-editor.is-ready .vrap-rich-toolbar{
  display:flex;
}
.vrap-rich-editor.is-ready .vrap-rich-surface{
  display:block;
}
.vrap-rich-editor.is-ready .vrap-rich-editor-source{
  display:none !important;
}
.vrap-rich-toolbar{
  align-items:center;
  flex-wrap:wrap;
  gap:5px;
  min-height:43px;
  padding:6px 8px;
  border-bottom:1px solid #e8dfd5;
  background:#faf7f2;
}
.vrap-rich-toolbar button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:34px;
  min-height:30px;
  padding:5px 9px;
  border:1px solid transparent;
  border-radius:8px;
  color:#173b2d;
  background:transparent;
  font:inherit;
  font-size:12px;
  font-weight:700;
  line-height:1;
  cursor:pointer;
}
.vrap-rich-toolbar button:hover,
.vrap-rich-toolbar button:focus-visible{
  border-color:#d6cbbf;
  background:#fff;
  outline:none;
}
.vrap-rich-toolbar button strong,
.vrap-rich-toolbar button em{
  font-size:15px;
}
.vrap-rich-toolbar-divider{
  width:1px;
  height:22px;
  margin:0 2px;
  background:#ddd2c7;
}
.vrap-rich-surface{
  min-height:180px;
  max-height:370px;
  overflow:auto;
  padding:15px 16px;
  color:#10271e;
  background:#fffdf9;
  font-size:14px;
  line-height:1.6;
  outline:none;
  white-space:normal;
}
.vrap-rich-editor-large .vrap-rich-surface{
  min-height:250px;
  max-height:480px;
}
.vrap-rich-surface p{
  margin:0 0 13px;
}
.vrap-rich-surface p:last-child{
  margin-bottom:0;
}
.vrap-rich-surface ul,
.vrap-rich-surface ol{
  margin:0 0 13px 22px;
  padding:0;
}
.vrap-rich-surface li{
  margin:0 0 5px;
  padding-left:2px;
}
.vrap-rich-surface strong{
  font-weight:750;
}
.vrap-rich-surface em{
  font-style:italic;
}
.vrap-rich-editor-source{
  width:100%;
  min-height:180px;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
}
.vrap-rich-editor[data-readonly="true"] .vrap-rich-toolbar{
  display:none !important;
}
.vrap-rich-editor[data-readonly="true"] .vrap-rich-surface{
  background:#f8f6f1;
  cursor:default;
}
@media(max-width:720px){
  .vrap-rich-toolbar{
    gap:3px;
  }
  .vrap-rich-toolbar button{
    min-height:34px;
    padding:6px 8px;
  }
  .vrap-rich-toolbar-divider{
    display:none;
  }
  .vrap-rich-surface,
  .vrap-rich-editor-large .vrap-rich-surface{
    min-height:210px;
    max-height:430px;
    font-size:14px;
  }
}

/* =========================================================
   VRAP v2.5.4 — minimal rich editor across larger text fields
   Still isolated: captions and ordinary inputs remain untouched.
   ========================================================= */
.vrap-rich-editor-small .vrap-rich-surface{
  min-height:112px;
  max-height:250px;
}
.vrap-rich-editor-small .vrap-rich-editor-source{
  min-height:112px;
}
.rich-field-block{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin-top:4px;
}
.rich-field-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  color:#18372b;
  font-size:14px;
}
.field-with-toolbar > .vrap-rich-editor,
.rich-field-block > .vrap-rich-editor{
  width:100%;
}
@media(max-width:720px){
  .vrap-rich-editor-small .vrap-rich-surface{
    min-height:150px;
  }
}

/* =========================================================
   v2.5.5 — Property tasks: reliable annual budget bars
   Percentage heights inside the previous flex track were not
   resolved consistently by the browser, leaving grey columns.
   The fill is now anchored absolutely to the bottom.
   ========================================================= */
.property-tasks-page .property-tasks-year-chart{
  align-items:stretch;
  min-height:182px;
}
.property-tasks-page .property-tasks-year-col{
  grid-template-rows:124px auto auto;
  min-width:52px;
}
.property-tasks-page .property-tasks-year-track{
  position:relative;
  display:block;
  width:100%;
  height:124px;
  overflow:hidden;
  border:1px solid #e4dbcf;
  border-radius:11px 11px 6px 6px;
  background:
    linear-gradient(to top, rgba(255,255,255,.55) 1px, transparent 1px) 0 0/100% 25%,
    #eee8df;
}
.property-tasks-page .property-tasks-year-track > span{
  position:absolute !important;
  right:0;
  bottom:0;
  left:0;
  display:block !important;
  width:100% !important;
  height:var(--year-bar-height, 0%) !important;
  min-height:0;
  border-radius:9px 9px 4px 4px;
  background:linear-gradient(180deg,#17825a 0%,#0a4a34 100%) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.24);
}
.property-tasks-page .property-tasks-year-col strong{
  margin-top:2px;
  font-size:12.5px;
}
.property-tasks-page .property-tasks-year-col small{
  font-size:10.5px;
}

/* =========================================================
   v2.5.6 — Property tasks: annual budget split by priority
   Uses the same category colors as the main dashboard:
   Akut, Nødvendig, Normal and Fordelagtig.
   ========================================================= */
.property-tasks-page .property-tasks-year-track > span{
  display:none !important;
}

.property-tasks-page .property-tasks-year-stack{
  position:absolute;
  right:0;
  bottom:0;
  left:0;
  display:flex;
  flex-direction:column;
  width:100%;
  min-height:0;
  overflow:hidden;
  border-radius:9px 9px 4px 4px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22);
}

.property-tasks-page .property-tasks-year-segment{
  display:block;
  flex:0 0 auto;
  width:100%;
  min-height:0;
}

.property-tasks-page .property-tasks-year-segment.priority-acute,
.property-tasks-page .property-tasks-year-legend i.priority-acute{
  background:#d92d5b;
}

.property-tasks-page .property-tasks-year-segment.priority-necessary,
.property-tasks-page .property-tasks-year-legend i.priority-necessary{
  background:#e64b18;
}

.property-tasks-page .property-tasks-year-segment.priority-normal,
.property-tasks-page .property-tasks-year-legend i.priority-normal{
  background:#2f9b63;
}

.property-tasks-page .property-tasks-year-segment.priority-beneficial,
.property-tasks-page .property-tasks-year-legend i.priority-beneficial{
  background:#b8890f;
}

.property-tasks-page .property-tasks-year-legend{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:10px 16px;
  margin-top:12px;
  padding-top:11px;
  border-top:1px solid #ebe3d8;
  color:#536159;
  font-size:11.5px;
  font-weight:700;
}

.property-tasks-page .property-tasks-year-legend span{
  display:inline-flex;
  align-items:center;
  gap:6px;
}

.property-tasks-page .property-tasks-year-legend i{
  width:9px;
  height:9px;
  flex:0 0 9px;
  border-radius:50%;
}

@media(max-width:720px){
  .property-tasks-page .property-tasks-year-legend{
    justify-content:flex-start;
  }
}

/* =========================================================
   v2.5.7 — Property tasks chart matches dashboard exactly
   Removes the large full-height grey tracks and reuses the
   compact stacked chart language from "Budget pr. år".
   ========================================================= */
.property-tasks-page .property-tasks-year-chart-wrap{
  min-width:0;
}

.property-tasks-page .property-tasks-dashboard-year-chart{
  grid-template-columns:repeat(var(--property-year-count), minmax(48px,1fr)) !important;
  gap:12px !important;
  min-height:158px !important;
  padding:10px 4px 0 !important;
  overflow-x:auto;
}

.property-tasks-page .property-tasks-dashboard-year-chart .dashboard-year-col{
  min-width:48px;
  gap:6px !important;
}

.property-tasks-page .property-tasks-dashboard-year-chart .dashboard-year-bar-stack{
  width:24px !important;
  box-shadow:none !important;
}

.property-tasks-page .property-tasks-dashboard-year-chart .dashboard-year-col strong{
  font-size:12px !important;
}

.property-tasks-page .property-tasks-dashboard-year-chart .dashboard-year-col span{
  min-height:0 !important;
  max-width:72px !important;
  font-size:10px !important;
  white-space:nowrap;
}

.property-tasks-page .property-tasks-year-chart-wrap .dashboard-chart-legend{
  padding-top:13px;
  border-top:1px solid rgba(16,55,36,.10);
}

/* Retire the previous bespoke chart implementation. */
.property-tasks-page .property-tasks-year-chart,
.property-tasks-page .property-tasks-year-legend{
  display:none !important;
}

@media(max-width:720px){
  .property-tasks-page .property-tasks-dashboard-year-chart{
    justify-content:start;
    grid-template-columns:repeat(var(--property-year-count), 58px) !important;
  }
}


/* =========================================================
   v2.5.8 — Mobile field registrations: admin review area
   All selectors are isolated to field-admin/field-review wrappers.
   ========================================================= */
.field-admin-page,.field-review-page{display:grid;gap:20px;min-width:0}
.field-admin-head,.field-review-head{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;padding:24px 26px;border:1px solid #e8e0d5;border-radius:22px;background:linear-gradient(145deg,#fff 0%,#faf7f1 100%);box-shadow:0 12px 32px rgba(16,55,36,.07)}
.field-admin-head>div,.field-review-head>div{min-width:0}
.field-admin-eyebrow{display:block;margin-bottom:7px;color:#e64b18;font-size:11px;font-weight:800;letter-spacing:.13em}
.field-admin-head h1,.field-review-head h1{margin:0;color:#103724;font:700 clamp(30px,3vw,42px)/1.02 Outfit,sans-serif;letter-spacing:-.035em}
.field-admin-head p,.field-review-head p{max-width:760px;margin:9px 0 0;color:#66736c;font-size:14px}
.field-admin-head .btn,.field-review-head .btn{flex:0 0 auto;min-height:46px}
.field-admin-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.field-admin-metrics article{min-width:0;padding:17px 18px;border:1px solid #e8e0d5;border-radius:18px;background:#fff;box-shadow:0 8px 22px rgba(16,55,36,.045)}
.field-admin-metrics small,.field-admin-metrics span{display:block;color:#6d7771;font-size:11px}
.field-admin-metrics small{font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.field-admin-metrics strong{display:block;margin:7px 0 4px;color:#103724;font:700 31px/1 Outfit,sans-serif}
.field-admin-metrics .is-urgent strong{color:#d92d5b}
.field-admin-filter-card,.field-admin-list-card,.field-review-card{min-width:0;padding:20px;border:1px solid #e8e0d5;border-radius:20px;background:#fff;box-shadow:0 8px 24px rgba(16,55,36,.045)}
.field-admin-filters{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(150px,1fr)) auto;gap:12px;align-items:end}
.field-admin-filters label{min-width:0;color:#294438;font-size:12px;font-weight:800}
.field-admin-filters input,.field-admin-filters select{width:100%;min-height:44px;margin-top:6px;padding:9px 11px;border:1px solid #dcd3c7;border-radius:12px;background:#fff;color:#18372b;font-size:14px}
.field-admin-filter-actions{display:flex;gap:8px}
.field-admin-filter-actions .btn{min-height:44px}
.field-admin-list-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.field-admin-list-head h2{margin:0;color:#103724;font:700 24px/1.1 Outfit,sans-serif}
.field-admin-list-head p{margin:4px 0 0;color:#6d7771;font-size:12px}
.field-admin-table-wrap{overflow-x:auto}
.field-admin-table{width:100%;border-collapse:collapse;min-width:920px}
.field-admin-table th{padding:11px 12px;border-bottom:1px solid #e7dfd5;color:#718078;font-size:10px;font-weight:800;text-align:left;text-transform:uppercase;letter-spacing:.08em}
.field-admin-table td{padding:13px 12px;border-bottom:1px solid #eee8df;vertical-align:middle;font-size:13px}
.field-admin-table tr:last-child td{border-bottom:0}
.field-admin-table td>strong,.field-admin-table td>small{display:block}
.field-admin-table td>small{margin-top:3px;color:#78827c;font-size:10.5px}
.field-admin-registration{display:grid;grid-template-columns:50px minmax(0,1fr);gap:10px;align-items:center;min-width:260px}
.field-admin-registration>span{display:flex;align-items:center;justify-content:center;width:50px;height:50px;overflow:hidden;border-radius:12px;background:#e9f1ec;color:#103724}
.field-admin-registration img{width:100%;height:100%;object-fit:cover}
.field-admin-registration>div{min-width:0}
.field-admin-registration strong,.field-admin-registration small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.field-admin-registration small{margin-top:3px;color:#748079;font-size:10.5px}
.field-admin-status,.field-admin-severity{display:inline-flex;align-items:center;min-height:27px;padding:5px 9px;border-radius:999px;font-size:10.5px;font-weight:800;white-space:nowrap}
.field-admin-status-review{background:#fff0e7;color:#a53b13}.field-admin-status-approved{background:#e2f2e7;color:#17623a}.field-admin-status-rejected{background:#ffe7ed;color:#a41f42}.field-admin-status-archived{background:#edf0ee;color:#59645e}
.field-admin-severity-low{background:#e8f4ed;color:#236440}.field-admin-severity-medium{background:#fff3d7;color:#806009}.field-admin-severity-high{background:#ffe9dc;color:#aa3f13}.field-admin-severity-urgent{background:#ffe2e9;color:#ab2146}
.field-admin-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:230px;padding:28px;border:1px dashed #d9d0c5;border-radius:16px;background:#fbfaf7;text-align:center}
.field-admin-empty>.icon{margin-bottom:8px;color:#e64b18}.field-admin-empty strong{color:#103724;font:700 20px Outfit,sans-serif}.field-admin-empty p{margin:5px 0 0;color:#6f7973;font-size:13px}
.field-review-breadcrumb a{display:inline-flex;align-items:center;gap:7px;color:#315245;font-size:13px;font-weight:800}.field-review-breadcrumb .icon svg{width:18px;height:18px}
.field-review-badges{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px}
.field-review-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);gap:18px;align-items:start}
.field-review-main,.field-review-side{display:grid;gap:18px;min-width:0}
.field-review-card .mini-head h2,.field-review-card>h2{font-size:22px}
.field-review-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}
.field-review-gallery a{aspect-ratio:1.2;overflow:hidden;border-radius:13px;background:#eee9e1}
.field-review-gallery img{width:100%;height:100%;object-fit:cover}
.field-review-form>label:first-of-type{display:block}
.field-review-form .vrap-rich-editor{margin-top:7px}
.field-review-facts dl{display:grid;gap:0;margin:12px 0 0}
.field-review-facts dl>div{display:grid;grid-template-columns:105px minmax(0,1fr);gap:10px;padding:10px 0;border-bottom:1px solid #eee8df}
.field-review-facts dl>div:last-child{border-bottom:0}
.field-review-facts dt{color:#748079;font-size:11px;font-weight:800;text-transform:uppercase}.field-review-facts dd{margin:0;color:#203c30;font-size:12.5px;font-weight:700}
.field-convert-card .panel-form{margin-top:12px}.field-convert-note{margin:10px 0 0;color:#77817b;font-size:10.5px;line-height:1.4}
.field-approved-card{background:#f0f8f3}.field-approved-card>strong{color:#17623a;font:700 22px Outfit,sans-serif}.field-approved-card p{color:#567064;font-size:13px}.field-approved-card .btn{margin-top:8px}
.role-badge-service,.role-card-service{--role-accent:#e64b18}.role-badge-service{background:#fff0e7!important;color:#a53b13!important}
@media(max-width:1100px){.field-admin-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.field-admin-filter-actions{grid-column:1/-1}.field-review-grid{grid-template-columns:1fr}.field-review-side{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
  .field-admin-head,.field-review-head{align-items:flex-start;flex-direction:column;padding:20px}.field-admin-head .btn,.field-review-head .btn{width:100%}
  .field-admin-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .field-admin-filters{grid-template-columns:1fr}.field-admin-filter-actions{grid-column:auto}.field-admin-filter-actions .btn{flex:1}
  .field-admin-table{min-width:0}.field-admin-table thead{display:none}.field-admin-table,.field-admin-table tbody,.field-admin-table tr,.field-admin-table td{display:block;width:100%}.field-admin-table tr{margin-bottom:12px;padding:13px;border:1px solid #e7dfd5;border-radius:15px;background:#fcfbf8}.field-admin-table td{display:grid;grid-template-columns:105px minmax(0,1fr);gap:10px;padding:8px 0;border:0}.field-admin-table td::before{content:attr(data-label);color:#7a847e;font-size:10px;font-weight:800;text-transform:uppercase}.field-admin-registration{min-width:0}.field-admin-table td:last-child .btn{width:100%}
  .field-review-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.field-review-side{grid-template-columns:1fr}
}
@media(max-width:430px){.field-admin-metrics{grid-template-columns:1fr 1fr}.field-admin-metrics article{padding:14px}.field-admin-metrics strong{font-size:27px}.field-admin-filter-card,.field-admin-list-card,.field-review-card{padding:16px}.field-admin-table td{grid-template-columns:88px minmax(0,1fr)}}

/* v2.5.8a — Field review readability refinements */
.field-admin-table th{font-size:11px}
.field-admin-table td>small,.field-admin-registration small{font-size:12px}
.field-admin-status,.field-admin-severity{font-size:11px}
.field-review-facts dt{font-size:11.5px}
.field-convert-note{font-size:12px}
@media(max-width:760px){.field-admin-table td::before{font-size:11px}}

/* v2.5.8b — Field list pagination + four-role overview */
.role-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.field-admin-pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:18px;padding-top:16px;border-top:1px solid #eee8df}
.field-admin-pagination span{color:#68756e;font-size:12px;font-weight:800}
.field-admin-pagination .btn{min-width:100px;justify-content:center}
.field-admin-pagination .is-disabled{pointer-events:none;opacity:.42}
@media(max-width:1000px){.role-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.role-grid{grid-template-columns:1fr}.field-admin-pagination{justify-content:space-between}.field-admin-pagination .btn{min-width:88px}}

/* Task edit: source photos from converted field registrations (v2.5.9) */
.task-field-source{margin:18px 0 22px;padding:18px;border:1px solid #e5ddd1;border-radius:18px;background:#fbf8f2;box-shadow:0 7px 20px rgba(16,55,36,.045);min-width:0}
.task-field-source-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}
.task-field-source-head>div{min-width:0}
.task-field-source-kicker{display:block;margin-bottom:4px;color:#e55522;font-size:11px;font-weight:850;letter-spacing:.09em;text-transform:uppercase}
.task-field-source h2{margin:0;color:#103724;font:700 21px/1.15 Outfit,sans-serif;letter-spacing:-.02em}
.task-field-source p{margin:6px 0 0;color:#68756f;font-size:13px;line-height:1.45}
.task-field-source-head .btn{flex:0 0 auto;min-height:42px}
.task-field-source-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;min-width:0}
.task-field-source-gallery a{display:block;aspect-ratio:1.3;overflow:hidden;border:1px solid #e2d9cc;border-radius:13px;background:#eee9e1;box-shadow:0 4px 12px rgba(16,55,36,.06)}
.task-field-source-gallery img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .18s ease}
.task-field-source-gallery a:hover img{transform:scale(1.025)}
@media(max-width:760px){.task-field-source-head{flex-direction:column}.task-field-source-head .btn{width:100%}.task-field-source-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:390px){.task-field-source{padding:14px}.task-field-source-gallery{gap:8px}}



/* v2.5.10 — Connected field documentation across task, part and report workflow */
.task-field-source-meta{display:flex;flex-wrap:wrap;align-items:center;gap:7px 12px;margin-top:9px;color:#65736c;font-size:12px;font-weight:700}
.task-field-source-meta>span:not(.field-admin-severity){position:relative;padding-left:11px}
.task-field-source-meta>span:not(.field-admin-severity)::before{content:"";position:absolute;left:0;top:50%;width:4px;height:4px;border-radius:50%;background:#c8bcae;transform:translateY(-50%)}
.task-field-source-observation{margin:0 0 14px;padding:13px 14px;border:1px solid #e8dfd3;border-radius:13px;background:#fff}
.task-field-source-observation>strong{display:block;margin-bottom:5px;color:#294438;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}
.task-field-source-prose{color:#43574e;font-size:13px;line-height:1.55}
.task-field-source-prose>*:first-child{margin-top:0}.task-field-source-prose>*:last-child{margin-bottom:0}
.task-field-source-footnote,.task-field-source-empty{margin:10px 0 0;color:#6d7972;font-size:11.5px;line-height:1.45}
.task-field-source-empty{padding:11px 12px;border:1px dashed #d9d0c4;border-radius:11px;background:#fff}
.field-admin-row-actions{display:flex;flex-direction:column;align-items:flex-start;gap:5px}
.field-admin-row-actions>a:not(.btn){color:#49675a;font-size:11px;font-weight:800;text-decoration:underline;text-underline-offset:2px}
.part-field-photos{margin-top:22px;padding-top:20px;border-top:1px solid #e8e0d5}
.part-field-photos-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:13px}
.part-field-photos-head span{display:block;margin-bottom:4px;color:#e55522;font-size:10px;font-weight:850;letter-spacing:.09em}
.part-field-photos-head h3{margin:0;color:#103724;font:700 20px/1.15 Outfit,sans-serif}
.part-field-photos-head p{max-width:730px;margin:6px 0 0;color:#68756f;font-size:12.5px;line-height:1.45}
.part-field-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.part-field-photo-card{min-width:0;overflow:hidden;border:1px solid #e4dbcf;border-radius:15px;background:#fbfaf7}
.part-field-photo-card>a{display:block;aspect-ratio:1.45;overflow:hidden;background:#eee9e1}
.part-field-photo-card img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .18s ease}
.part-field-photo-card>a:hover img{transform:scale(1.025)}
.part-field-photo-card>div{padding:12px}
.part-field-photo-card strong,.part-field-photo-card span{display:block}
.part-field-photo-card strong{color:#1c3a2e;font-size:13px}
.part-field-photo-card span{margin-top:3px;color:#718078;font-size:10.5px;font-weight:700}
.part-field-photo-card p{display:-webkit-box;overflow:hidden;margin:8px 0 0;color:#56665e;font-size:11.5px;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:3}
.part-field-photo-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.part-field-photo-links a{color:#184e37;font-size:11px;font-weight:850;text-decoration:underline;text-underline-offset:2px}
@media(max-width:900px){.part-field-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.part-field-photo-grid{grid-template-columns:1fr}.task-field-source-meta{align-items:flex-start;flex-direction:column;gap:5px}.task-field-source-meta>span:not(.field-admin-severity){padding-left:0}.task-field-source-meta>span:not(.field-admin-severity)::before{display:none}.field-admin-row-actions{width:100%}.field-admin-row-actions .btn{width:100%}}

/* =========================================================
   v2.5.11 — Field workflow polish and photo management
   Isolated to field administration and converted task source.
   ========================================================= */
.field-admin-quick-filters{display:flex;flex-wrap:wrap;gap:8px;margin-top:-4px}
.field-admin-quick-filters a{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:8px 12px;border:1px solid #dfd6ca;border-radius:999px;background:#fff;color:#385247;font-size:12px;font-weight:800;box-shadow:0 4px 12px rgba(16,55,36,.035)}
.field-admin-quick-filters a span{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 7px;border-radius:999px;background:#f0ede7;color:#536159;font-size:11px}
.field-admin-quick-filters a:hover,.field-admin-quick-filters a.is-active{border-color:#174c36;background:#174c36;color:#fff}
.field-admin-quick-filters a:hover span,.field-admin-quick-filters a.is-active span{background:rgba(255,255,255,.16);color:#fff}
.field-admin-quick-filters a.is-urgent{color:#b5234c}
.field-admin-quick-filters a.is-urgent:hover,.field-admin-quick-filters a.is-urgent.is-active{border-color:#d92d5b;background:#d92d5b;color:#fff}
.field-review-head-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.field-review-gallery-editable{align-items:start}
.field-review-photo-card{min-width:0;overflow:hidden;border:1px solid #e4dbcf;border-radius:15px;background:#fbfaf7}
.field-review-photo-card>a{display:block!important;aspect-ratio:1.25!important;border-radius:0!important}
.field-review-photo-card>label{display:block;padding:10px 11px 4px;color:#345045;font-size:11px;font-weight:800}
.field-review-photo-card input{display:block;width:100%;min-height:40px;margin-top:5px;padding:8px 9px;border:1px solid #ddd4c8;border-radius:10px;background:#fff;color:#203c30;font-size:12px}
.field-review-photo-delete{width:calc(100% - 22px);min-height:36px;margin:7px 11px 11px;padding:7px 9px;border:1px solid #efc5d0;border-radius:10px;background:#fff4f6;color:#a52043;font-size:11px;font-weight:800;cursor:pointer}
.field-admin-photo-form>.btn{margin-top:12px}
.field-admin-photo-upload{display:flex;align-items:end;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid #eee7dd}
.field-admin-photo-upload label{flex:1;color:#345045;font-size:12px;font-weight:800}
.field-admin-photo-upload input{display:block;width:100%;min-height:44px;margin-top:6px;padding:8px;border:1px solid #ddd4c8;border-radius:11px;background:#fff;font-size:12px}
.field-review-closed-card{background:#fbf7ef}
.field-review-closed-card>strong{color:#6f5420;font:700 21px Outfit,sans-serif}
.field-review-closed-card p{margin:7px 0 0;color:#6e675b;font-size:13px;line-height:1.5}
.task-field-source-gallery figure{min-width:0;margin:0}
.task-field-source-gallery figure>a{display:block}
.task-field-source-gallery figcaption{margin-top:6px;color:#52655b;font-size:11px;line-height:1.35}
@media(max-width:760px){
  .field-review-head-actions{width:100%;justify-content:stretch}.field-review-head-actions .btn{flex:1}
  .field-admin-photo-upload{align-items:stretch;flex-direction:column}.field-admin-photo-upload .btn{width:100%}
}
@media(max-width:430px){.field-admin-quick-filters{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.field-admin-quick-filters a{flex:0 0 auto}}
.field-review-readonly-prose{margin-top:13px;padding:14px 15px;border:1px solid #e8dfd3;border-radius:13px;background:#fbfaf7;color:#40564b;font-size:13.5px;line-height:1.6}
.field-review-readonly-prose>*:first-child{margin-top:0}.field-review-readonly-prose>*:last-child{margin-bottom:0}

/* VRAP v2.5.12 — opgaver uden for vedligeholdelsesplanen */
.task-plan-scope-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin: 0 0 22px;
    padding: 16px 18px;
    border: 1px solid #c9dbd3;
    border-radius: 16px;
    background: #f3faf6;
}
.task-plan-scope-card.is-excluded {
    border-color: #e4d2b3;
    background: #fff9ed;
}
.task-plan-scope-toggle {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    margin: 0;
    cursor: pointer;
}
.task-plan-scope-toggle input {
    width: 20px;
    height: 20px;
    min-width: 20px;
    margin-top: 2px;
    accent-color: #0d4b3b;
}
.task-plan-scope-toggle > span {
    display: grid;
    gap: 4px;
    line-height: 1.35;
}
.task-plan-scope-toggle strong {
    color: #0b382e;
    font-size: 15px;
}
.task-plan-scope-toggle small,
.task-plan-scope-toggle .field-help {
    color: #66766f;
    font-size: 13px;
    line-height: 1.45;
}
.task-plan-scope-toggle-create {
    margin: 16px 0 20px;
    padding: 15px 16px;
    border: 1px solid #d6e3dd;
    border-radius: 14px;
    background: #f7fbf9;
}
.task-plan-scope-state,
.task-scope-badge,
.tasks-head-scope-note,
.tasks-budget-excluded {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    border-radius: 999px;
    font-weight: 700;
    line-height: 1.2;
}
.task-plan-scope-state {
    flex: 0 0 auto;
    padding: 7px 11px;
    background: #dff1e7;
    color: #15543f;
    font-size: 12px;
}
.task-plan-scope-card.is-excluded .task-plan-scope-state {
    background: #f5e4bf;
    color: #795315;
}
.task-scope-badge {
    margin: 5px 0 0 8px;
    padding: 4px 8px;
    font-size: 10px;
    vertical-align: middle;
    letter-spacing: .02em;
}
.task-scope-badge-included {
    background: #e2f2e8;
    color: #17553f;
}
.task-scope-badge-excluded {
    background: #f7e8c9;
    color: #76521a;
}
.tasks-head-scope-note {
    margin-top: 8px;
    padding: 6px 10px;
    background: #f5e8cf;
    color: #73511d;
    font-size: 12px;
}
.tasks-budget-excluded {
    margin-top: 5px;
    padding: 3px 7px;
    background: #f7e8c9;
    color: #76521a;
    font-size: 10px;
}
.inline-delete-form {
    display: inline-flex;
    margin: 0;
}
.btn-danger-soft {
    border-color: #ecc7c2 !important;
    background: #fff4f2 !important;
    color: #a33d34 !important;
}
.btn-danger-soft:hover {
    border-color: #d99d96 !important;
    background: #ffe9e6 !important;
}
.task-delete-zone {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    max-width: 1120px;
    margin: 18px auto 0;
    padding: 18px 20px;
    border: 1px solid #ecc7c2;
    border-radius: 16px;
    background: #fff8f7;
}
.task-delete-zone strong {
    display: block;
    margin-bottom: 3px;
    color: #842f28;
}
.task-delete-zone p {
    max-width: 760px;
    margin: 0;
    color: #75615e;
    font-size: 13px;
    line-height: 1.5;
}
.tasks-row-actions {
    gap: 6px;
}
.tasks-data-table .tasks-title-cell .task-scope-badge {
    margin-left: 0;
}

@media (max-width: 760px) {
    .task-plan-scope-card,
    .task-delete-zone {
        align-items: stretch;
        flex-direction: column;
    }
    .task-plan-scope-state {
        align-self: flex-start;
    }
    .task-delete-zone .btn {
        width: 100%;
        min-height: 46px;
    }
    .tasks-row-actions {
        display: flex;
        flex-wrap: wrap;
    }
}

@media (min-width: 1181px) {
    .tasks-page .tasks-filter-form {
        grid-template-columns: 1.05fr .65fr .85fr .85fr 1.05fr 1.4fr auto;
    }
    .tasks-page .property-tasks-filter-form {
        grid-template-columns: minmax(110px,.7fr) minmax(135px,.9fr) minmax(135px,.9fr) minmax(165px,1.05fr) minmax(235px,1.55fr) auto !important;
    }
}


/* VRAP v2.5.13 — permanent sletning af afviste feltregistreringer */
.field-report-delete-zone{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;padding-top:16px;border-top:1px solid #ead8d2}
.field-report-delete-zone>div{min-width:0}
.field-report-delete-zone>div>strong{display:block;color:#922f28;font:700 15px Inter,sans-serif}
.field-report-delete-zone p{max-width:520px;margin:5px 0 0;color:#75615e;font-size:12px;line-height:1.5}
.field-report-delete-zone form{flex:0 0 auto;margin:0}
.field-report-delete-zone .btn{white-space:nowrap}
@media(max-width:760px){.field-report-delete-zone{align-items:stretch;flex-direction:column}.field-report-delete-zone .btn{width:100%;min-height:46px}}

/* =========================================================
   v2.5.14 — Properties: energy rating on property cards
   Side-scoped and overlay-only so card layout, metrics and
   existing property actions remain unchanged.
   ========================================================= */
.properties-page .portfolio-property-energy-badge{
  --property-energy-color:#0b5138;
  position:absolute;
  left:12px;
  bottom:12px;
  z-index:2;
  display:inline-flex;
  align-items:center;
  gap:7px;
  max-width:calc(100% - 24px);
  min-height:34px;
  padding:4px 10px 4px 5px;
  border:1px solid rgba(255,255,255,.78);
  border-radius:11px;
  color:#173f30;
  background:rgba(255,253,249,.94);
  box-shadow:0 7px 18px rgba(0,0,0,.12);
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
}
.properties-page .portfolio-property-energy-grade{
  display:grid;
  place-items:center;
  min-width:28px;
  min-height:26px;
  padding:2px 6px;
  border-radius:7px;
  color:#fff;
  background:var(--property-energy-color);
  font-family:Outfit,Inter,sans-serif;
  font-size:12px;
  font-weight:800;
  line-height:1;
  letter-spacing:-.01em;
  white-space:nowrap;
}
.properties-page .portfolio-property-energy-text{
  overflow:hidden;
  font-size:10px;
  font-weight:800;
  line-height:1;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.properties-page .portfolio-property-energy-badge.grade-a{--property-energy-color:#168247}
.properties-page .portfolio-property-energy-badge.grade-b{--property-energy-color:#58a947}
.properties-page .portfolio-property-energy-badge.grade-c{--property-energy-color:#9aae33}
.properties-page .portfolio-property-energy-badge.grade-d{--property-energy-color:#d2a91f}
.properties-page .portfolio-property-energy-badge.grade-e{--property-energy-color:#e58a2d}
.properties-page .portfolio-property-energy-badge.grade-f{--property-energy-color:#df5e32}
.properties-page .portfolio-property-energy-badge.grade-g{--property-energy-color:#c83f3c}
.properties-page .portfolio-property-energy-badge.is-expired{
  border-color:rgba(190,55,50,.55);
}
.properties-page .portfolio-property-energy-badge.is-expired::after{
  content:'Udløbet';
  margin-left:1px;
  color:#b23c37;
  font-size:8px;
  font-weight:850;
  line-height:1;
  text-transform:uppercase;
}
@media(max-width:600px){
  .properties-page .portfolio-property-energy-badge{
    min-height:36px;
    padding-right:11px;
  }
  .properties-page .portfolio-property-energy-grade{
    min-width:30px;
    min-height:28px;
    font-size:13px;
  }
  .properties-page .portfolio-property-energy-text{
    font-size:10.5px;
  }
}


/* =========================================================
   v2.5.15 — Properties: clickable energy report badge
   Only changes the energy badge interaction on properties.php.
   ========================================================= */
.properties-page .portfolio-property-cover-wrap{
  position:relative;
}
.properties-page a.portfolio-property-energy-badge.is-link{
  cursor:pointer;
  text-decoration:none;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;
}
.properties-page a.portfolio-property-energy-badge.is-link:hover{
  transform:translateY(-1px);
  border-color:rgba(255,255,255,.92);
  box-shadow:0 10px 24px rgba(0,0,0,.18);
}
.properties-page a.portfolio-property-energy-badge.is-link:focus-visible{
  outline:3px solid rgba(255,255,255,.96);
  outline-offset:3px;
}

/* =========================================================
   VRAP v2.5.16 — PENDING FIELD REPORT BADGE
   Scoped only to the field-registration icon in the desktop rail.
   ========================================================= */

.rail-field-link{
  position:relative !important;
  overflow:visible !important;
}

.rail-notification-count{
  position:absolute;
  top:-5px;
  right:-6px;
  z-index:3;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:18px;
  height:18px;
  padding:0 4px;
  border:2px solid var(--green-dark);
  border-radius:999px;
  background:var(--orange);
  color:#fff !important;
  font-family:var(--font-body);
  font-size:10px;
  font-weight:800;
  line-height:1;
  letter-spacing:-.02em;
  box-shadow:0 2px 7px rgba(0,0,0,.22);
  pointer-events:none;
}

.rail-field-link:hover .rail-notification-count,
.rail-field-link.active .rail-notification-count{
  border-color:#315d4b;
}


/* =========================================================
   VRAP v2.5.18 — read-only admin AI assistant
   Isolated floating widget. No existing page layout selectors changed.
   ========================================================= */
.vrap-ai-assistant{
  position:fixed;
  right:22px;
  bottom:20px;
  z-index:1200;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.vrap-ai-launcher{
  display:flex;
  align-items:center;
  gap:9px;
  min-height:52px;
  padding:0 17px 0 13px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:999px;
  background:var(--green-dark);
  color:#fff;
  box-shadow:0 14px 32px rgba(8,44,30,.25);
  cursor:pointer;
  font-weight:800;
  transition:transform .16s ease,box-shadow .16s ease,background .16s ease;
}
.vrap-ai-launcher:hover{transform:translateY(-2px);box-shadow:0 17px 38px rgba(8,44,30,.31);background:#064c35}
.vrap-ai-launcher:focus-visible{outline:3px solid rgba(244,124,34,.35);outline-offset:3px}
.vrap-ai-launcher-icon{
  display:grid;
  place-items:center;
  width:31px;
  height:31px;
  border-radius:50%;
  background:var(--orange);
  color:#fff;
}
.vrap-ai-launcher .icon,.vrap-ai-brand-icon .icon,.vrap-ai-avatar .icon{display:grid;place-items:center}
.vrap-ai-launcher svg{width:18px;height:18px}
.vrap-ai-assistant.is-open .vrap-ai-launcher{display:none}
.vrap-ai-panel{
  width:min(410px,calc(100vw - 28px));
  height:min(650px,calc(100vh - 36px));
  overflow:hidden;
  border:1px solid #d8e3dc;
  border-radius:22px;
  background:#fff;
  box-shadow:0 28px 75px rgba(8,38,26,.24);
}
.vrap-ai-panel:not([hidden]){display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto auto}
.vrap-ai-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:15px 15px 14px;
  background:var(--green-dark);
  color:#fff;
}
.vrap-ai-brand{display:flex;align-items:center;gap:10px;min-width:0}
.vrap-ai-brand-icon{
  display:grid;
  place-items:center;
  flex:0 0 auto;
  width:36px;
  height:36px;
  border-radius:12px;
  background:var(--orange);
}
.vrap-ai-brand-icon svg{width:20px;height:20px}
.vrap-ai-brand strong{display:block;font-family:Outfit,Inter,sans-serif;font-size:17px;line-height:1.1}
.vrap-ai-brand small{display:block;margin-top:3px;color:rgba(255,255,255,.72);font-size:10.5px;line-height:1.2}
.vrap-ai-header-actions{display:flex;gap:5px}
.vrap-ai-header-actions button{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  padding:0;
  border:0;
  border-radius:10px;
  background:transparent;
  color:#fff;
  cursor:pointer;
  font-size:22px;
  line-height:1;
}
.vrap-ai-header-actions button:first-child{font-size:18px}
.vrap-ai-header-actions button:hover{background:rgba(255,255,255,.12)}
.vrap-ai-context{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:9px 15px;
  border-bottom:1px solid #e8ece9;
  background:#f6faf7;
  color:#647169;
  font-size:10px;
}
.vrap-ai-context span{text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.vrap-ai-context strong{overflow:hidden;color:#174734;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.vrap-ai-messages{
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:16px 14px 10px;
  background:linear-gradient(180deg,#fbfcfb 0%,#fff 24%);
  scrollbar-width:thin;
}
.vrap-ai-message{display:flex;align-items:flex-start;gap:8px;margin:0 0 13px}
.vrap-ai-message.is-user{justify-content:flex-end;padding-left:44px}
.vrap-ai-message.is-assistant{padding-right:18px}
.vrap-ai-avatar{
  display:grid;
  place-items:center;
  flex:0 0 auto;
  width:28px;
  height:28px;
  margin-top:3px;
  border-radius:10px;
  background:#e6f3eb;
  color:var(--green-dark);
}
.vrap-ai-avatar svg{width:15px;height:15px}
.vrap-ai-bubble{
  max-width:100%;
  padding:11px 13px;
  border:1px solid #e2e8e4;
  border-radius:5px 15px 15px 15px;
  background:#f5f7f5;
  color:#24312a;
  box-shadow:0 5px 15px rgba(26,45,34,.035);
  font-size:12.5px;
  line-height:1.52;
}
.vrap-ai-message.is-user .vrap-ai-bubble{
  border-color:#0f6547;
  border-radius:15px 5px 15px 15px;
  background:var(--green-dark);
  color:#fff;
}
.vrap-ai-bubble strong{display:block;margin-bottom:4px;color:#143e2e;font-size:13px}
.vrap-ai-message.is-user .vrap-ai-bubble strong{color:#fff}
.vrap-ai-bubble p{margin:0}
.vrap-ai-message-text{white-space:pre-wrap;overflow-wrap:anywhere}
.vrap-ai-thinking{display:flex;align-items:center;gap:4px;min-width:32px;min-height:16px}
.vrap-ai-thinking i{display:block;width:6px;height:6px;border-radius:50%;background:#7b9185;animation:vrapAiThinking 1.1s infinite ease-in-out}
.vrap-ai-thinking i:nth-child(2){animation-delay:.14s}.vrap-ai-thinking i:nth-child(3){animation-delay:.28s}
@keyframes vrapAiThinking{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-4px);opacity:1}}
.vrap-ai-quick{
  display:flex;
  gap:7px;
  overflow-x:auto;
  padding:8px 13px 10px;
  border-top:1px solid #edf0ee;
  background:#fff;
  scrollbar-width:none;
}
.vrap-ai-quick::-webkit-scrollbar{display:none}
.vrap-ai-quick button{
  flex:0 0 auto;
  max-width:250px;
  min-height:34px;
  padding:7px 10px;
  border:1px solid #dbe5df;
  border-radius:999px;
  background:#f7faf8;
  color:#24513f;
  cursor:pointer;
  font-size:10.5px;
  font-weight:700;
  line-height:1.25;
  white-space:nowrap;
}
.vrap-ai-quick button:hover{border-color:#a9cbbb;background:#edf7f1}
.vrap-ai-quick button:disabled{opacity:.55;cursor:wait}
.vrap-ai-quick.is-condensed{padding-top:6px;padding-bottom:7px}
.vrap-ai-composer{
  display:flex;
  align-items:flex-end;
  gap:8px;
  padding:10px 12px;
  border-top:1px solid #e5eae7;
  background:#fff;
}
.vrap-ai-composer textarea{
  flex:1;
  min-width:0;
  min-height:44px;
  max-height:132px;
  padding:11px 12px;
  resize:none;
  border:1px solid #cfdad3;
  border-radius:14px;
  background:#fbfcfb;
  color:#17241d;
  font-size:13px;
  line-height:1.4;
}
.vrap-ai-composer textarea:focus{border-color:#4c9475;box-shadow:0 0 0 3px rgba(0,89,60,.09)}
.vrap-ai-composer button{
  display:grid;
  place-items:center;
  flex:0 0 auto;
  width:44px;
  height:44px;
  padding:0;
  border:0;
  border-radius:14px;
  background:var(--orange);
  color:#fff;
  cursor:pointer;
  box-shadow:0 7px 16px rgba(244,124,34,.2);
}
.vrap-ai-composer button:hover{background:#e96f16}
.vrap-ai-composer button:disabled{opacity:.55;cursor:wait;box-shadow:none}
.vrap-ai-composer button svg{width:19px;height:19px}
.vrap-ai-footer{
  padding:0 14px 10px;
  background:#fff;
  color:#829087;
  font-size:9.5px;
  line-height:1.35;
  text-align:center;
}
.vrap-ai-assistant.is-busy .vrap-ai-composer textarea{background:#f4f6f4}
@media(max-width:720px){
  .vrap-ai-assistant{right:10px;bottom:10px;left:10px}
  .vrap-ai-launcher{margin-left:auto;min-height:50px}
  .vrap-ai-panel{width:100%;height:calc(100dvh - 20px);max-height:none;border-radius:20px}
  .vrap-ai-panel:not([hidden]){grid-template-rows:auto auto minmax(0,1fr) auto auto auto}
  .vrap-ai-message.is-assistant{padding-right:4px}
  .vrap-ai-message.is-user{padding-left:32px}
  .vrap-ai-quick button{min-height:38px;font-size:11px}
  .vrap-ai-composer textarea{font-size:16px}
}
@media(max-width:420px){
  .vrap-ai-launcher-label{display:none}
  .vrap-ai-launcher{width:54px;padding:0;justify-content:center}
  .vrap-ai-launcher-icon{width:34px;height:34px}
  .vrap-ai-brand small{display:none}
}

/* VRAP v2.5.19: EMOData integration on property master data. */
.form-grid-span-2,
.emodata-card {
  grid-column: 1 / -1;
}

.emodata-card {
  border: 1px solid #d7dfd9;
  border-radius: 18px;
  padding: 18px;
  background: linear-gradient(135deg, #f7faf7 0%, #fffaf4 100%);
  box-shadow: 0 10px 26px rgba(17, 63, 43, 0.06);
}

.emodata-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}

.emodata-card-head h3 {
  margin: 3px 0 5px;
  font-size: clamp(20px, 2vw, 25px);
}

.emodata-card-head p {
  margin: 0;
  max-width: 760px;
  color: #5d6d64;
  line-height: 1.55;
}

.emodata-lookup-button {
  min-height: 46px;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.emodata-lookup-button .icon,
.emodata-lookup-button svg {
  width: 18px;
  height: 18px;
}

.emodata-lookup-button.is-loading,
.emodata-result-actions .is-loading {
  opacity: .7;
  cursor: wait;
}

.emodata-readiness {
  margin-top: 13px;
  padding: 10px 12px;
  border-radius: 11px;
  background: #f1eee8;
  color: #637068;
  font-size: 13px;
}

.emodata-readiness.is-ready {
  background: #e9f5ee;
  color: #155d3d;
}

.emodata-status {
  margin-top: 12px;
  padding: 11px 13px;
  border-radius: 11px;
  font-size: 14px;
  line-height: 1.45;
}

.emodata-status.is-info,
.emodata-status.is-loading { background: #edf3f0; color: #315546; }
.emodata-status.is-success { background: #e7f5ec; color: #145c39; }
.emodata-status.is-warning { background: #fff4df; color: #8a5712; }
.emodata-status.is-error { background: #fff0ed; color: #a23423; }

.emodata-results {
  margin-top: 14px;
  border-top: 1px solid #dde5df;
  padding-top: 14px;
}

.emodata-results-head {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 10px;
}

.emodata-results-head strong,
.emodata-results-head span {
  display: block;
}

.emodata-results-head span {
  margin-top: 3px;
  color: #65736c;
  font-size: 13px;
}

.emodata-result-list {
  display: grid;
  gap: 9px;
}

.emodata-result-card {
  display: grid;
  grid-template-columns: auto 54px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 12px;
  border: 1px solid #d9e2dc;
  border-radius: 14px;
  background: rgba(255,255,255,.9);
  cursor: pointer;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.emodata-result-card:hover,
.emodata-result-card:has(input:checked) {
  border-color: #176442;
  box-shadow: 0 8px 18px rgba(17, 83, 55, .09);
  transform: translateY(-1px);
}

.emodata-result-card.is-expired {
  opacity: .76;
}

.emodata-result-card input {
  width: 18px;
  height: 18px;
  accent-color: #0e5a3a;
}

.emodata-result-grade {
  width: 50px;
  min-height: 42px;
  border-radius: 11px;
  display: grid;
  place-items: center;
  background: #0d5a3b;
  color: #fff;
  font-family: Outfit, sans-serif;
  font-weight: 800;
  font-size: 18px;
}

.emodata-result-copy {
  min-width: 0;
}

.emodata-result-copy strong,
.emodata-result-copy small {
  display: block;
}

.emodata-result-copy strong {
  color: #0c3829;
  margin-bottom: 3px;
}

.emodata-result-copy small {
  color: #66756d;
  line-height: 1.4;
}

.emodata-result-flags {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
}

.emodata-result-flags em {
  font-style: normal;
  font-size: 11px;
  font-weight: 700;
  padding: 5px 8px;
  border-radius: 999px;
  background: #edf4f0;
  color: #245844;
  white-space: nowrap;
}

.emodata-result-card.is-expired .emodata-result-flags em:first-child {
  background: #fff0e9;
  color: #a34d28;
}

.emodata-result-actions {
  display: flex;
  gap: 9px;
  margin-top: 12px;
}

.emodata-empty {
  padding: 14px;
  border-radius: 12px;
  background: #fff7e8;
  color: #77531d;
}

.emodata-empty p {
  margin: 4px 0 0;
}

@media (max-width: 760px) {
  .emodata-card-head {
    flex-direction: column;
  }
  .emodata-lookup-button {
    width: 100%;
    justify-content: center;
  }
  .emodata-result-card {
    grid-template-columns: auto 48px minmax(0, 1fr);
  }
  .emodata-result-flags {
    grid-column: 2 / -1;
    justify-content: flex-start;
  }
  .emodata-result-actions {
    flex-direction: column;
  }
  .emodata-result-actions .btn {
    width: 100%;
  }
}

/* v22: kontrolleret årsskifte for vedligeholdelsesplaner */
.plan-create-form{max-width:980px}
.plan-create-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:4px}
.plan-create-head h1{margin:2px 0 6px;font-size:clamp(1.75rem,3vw,2.4rem)}
.plan-create-head p{margin:0;color:var(--muted,#65736c);max-width:720px}
.plan-create-eyebrow{display:block;font-size:.72rem;line-height:1.2;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--accent,#ee541e)}
.plan-rollover-card{margin-top:4px;padding:20px;border:1px solid #d9e3dd;border-radius:18px;background:linear-gradient(180deg,#fbfdfb 0%,#f5f9f6 100%)}
.plan-rollover-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:16px}
.plan-rollover-card-head h2{margin:3px 0 5px;font-size:1.35rem}
.plan-rollover-card-head p{margin:0;max-width:660px;color:#65736c}
.plan-rollover-source-year{display:inline-flex;align-items:center;justify-content:center;min-width:108px;padding:10px 13px;border-radius:999px;background:#0d4e38;color:#fff;font-weight:800;white-space:nowrap}
.plan-create-choice{display:flex;align-items:flex-start;gap:12px;padding:15px 16px;border:1px solid #d8dfdb;border-radius:14px;background:#fff;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.plan-create-choice+ .plan-create-choice{margin-top:12px}
.plan-create-choice:hover{border-color:#9bb7a8;box-shadow:0 8px 22px rgba(10,58,41,.07)}
.plan-create-choice input{margin-top:4px;width:18px;height:18px;accent-color:#0d5a3f;flex:0 0 auto}
.plan-create-choice-copy{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.plan-create-choice-copy strong{font-size:1rem;color:#073d2d}
.plan-create-choice-copy small{font-size:.88rem;line-height:1.45;color:#65736c}
.plan-create-choice-badge{align-self:center;padding:5px 9px;border-radius:999px;background:#e8f4ed;color:#17623a;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.plan-create-choice.is-recommended:has(input:checked){border-color:#6fa48b;box-shadow:0 0 0 3px rgba(30,112,75,.09)}
.plan-rollover-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}
.plan-rollover-summary>div{padding:12px;border:1px solid #dde6e1;border-radius:12px;background:rgba(255,255,255,.78)}
.plan-rollover-summary strong{display:block;font-size:1.35rem;color:#073d2d}
.plan-rollover-summary span{display:block;margin-top:2px;font-size:.78rem;line-height:1.3;color:#65736c}
.plan-rollover-overdue{padding:14px 15px;margin:0 0 14px;border-left:3px solid #ee541e;border-radius:10px;background:#fff8f3}
.plan-rollover-overdue label{margin:0;font-weight:700;color:#173d31}
.plan-rollover-overdue select{margin-top:8px;background:#fff}
.plan-rollover-overdue .hint{margin:8px 0 0}
.plan-rollover-history-note{display:flex;align-items:flex-start;gap:10px;padding:13px 15px;border-radius:12px;background:#f1f3f2;color:#53635c;font-size:.88rem;line-height:1.45}
.plan-rollover-history-note strong{color:#173d31;white-space:nowrap}
.plans-history-note{margin:0 0 12px;padding:12px 15px;border:1px solid #dbe4df;border-radius:12px;background:#f7faf8;color:#5c6d65;font-size:.88rem}
.plan-current-pill{background:#e4f3e9!important;color:#17623a!important}
.plan-history-pill{background:#edf0ee!important;color:#59645e!important}
.plan-status-pill.is-archived{background:#edf0ee;color:#59645e;border-color:#d8ddda}
.historical-plan-note{border-color:#d8ddda;background:#f3f5f4;color:#53605a}
.historical-plan-note strong{color:#273d34}
@media(max-width:720px){
  .plan-rollover-card-head{flex-direction:column}
  .plan-rollover-source-year{align-self:flex-start}
  .plan-rollover-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .plan-rollover-history-note{flex-direction:column;gap:3px}
}
@media(max-width:420px){
  .plan-rollover-card{padding:15px}
  .plan-create-choice{padding:13px}
  .plan-create-choice-badge{display:none}
  .plan-rollover-summary{grid-template-columns:1fr 1fr}
}


/* =========================================================
   VRAP v2.5.21 — ENERGY LABEL PORTFOLIO OVERVIEW
   Entirely scoped to the new energy overview and its rail icon.
   ========================================================= */
.rail-energy-link{position:relative!important;overflow:visible!important}.emodata-card{scroll-margin-top:24px}
.rail-energy-link:hover .rail-notification-count,.rail-energy-link.active .rail-notification-count{border-color:#315d4b}
.energy-overview-page{display:grid;gap:20px;max-width:1500px;margin:0 auto}
.energy-overview-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px 28px;border:1px solid #e5e9e6;border-radius:24px;background:linear-gradient(135deg,#fff 0%,#f3f8f5 100%);box-shadow:0 14px 34px rgba(18,54,39,.07)}
.energy-overview-hero-copy{display:flex;align-items:center;gap:17px;min-width:0}.energy-overview-hero-icon{width:54px;height:54px;flex:0 0 54px;display:grid;place-items:center;border-radius:17px;background:#0b4d36;color:#fff}.energy-overview-hero-icon .icon,.energy-overview-hero-icon svg{width:28px;height:28px}.energy-overview-eyebrow{display:block;margin-bottom:3px;color:#e56f1b;font-size:11px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.energy-overview-hero h1{margin:0;font-family:Outfit,sans-serif;font-size:36px;line-height:1.05;color:#123526}.energy-overview-hero p{max-width:760px;margin:7px 0 0;color:#617068;font-size:14px}.energy-overview-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.energy-overview-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.energy-kpi-card{min-width:0;padding:18px;border:1px solid #e4e9e6;border-radius:18px;background:#fff;box-shadow:0 8px 22px rgba(18,54,39,.05);transition:.16s ease}.energy-kpi-card:hover{transform:translateY(-2px);border-color:#cbd9d1;box-shadow:0 12px 26px rgba(18,54,39,.08)}.energy-kpi-card span,.energy-kpi-card small{display:block}.energy-kpi-card span{color:#6c776f;font-size:12px;font-weight:700}.energy-kpi-card strong{display:block;margin:5px 0 2px;font-family:Outfit,sans-serif;font-size:30px;line-height:1;color:#153d2d}.energy-kpi-card small{color:#8a938e;font-size:11px}.energy-kpi-card.is-good{border-top:3px solid #2e9a61}.energy-kpi-card.is-attention{border-top:3px solid #ddaa24}.energy-kpi-card.is-danger{border-top:3px solid #d8505d}.energy-kpi-card.is-warning{border-top:3px solid #ef7d26}.energy-kpi-card.is-neutral{border-top:3px solid #729184}
.energy-overview-top-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:16px}.energy-overview-panel,.energy-overview-list-panel{border:1px solid #e4e9e6;border-radius:22px;background:#fff;box-shadow:0 10px 28px rgba(18,54,39,.055)}.energy-overview-panel{padding:22px}.energy-overview-panel-head,.energy-overview-list-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.energy-overview-panel-head h2,.energy-overview-list-head h2{margin:0;font-family:Outfit,sans-serif;font-size:21px;color:#163b2c}.energy-overview-panel-head p,.energy-overview-list-head p{margin:4px 0 0;color:#77827c;font-size:12px}.energy-overview-panel-head>a{color:#0f6346;font-size:12px;font-weight:800;white-space:nowrap}
.energy-grade-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;margin-top:20px}.energy-grade-tile{display:grid;place-items:center;gap:5px;min-height:82px;border-radius:14px;color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);transition:.16s ease}.energy-grade-tile:hover{transform:translateY(-2px);filter:saturate(1.08)}.energy-grade-tile strong{font-family:Outfit,sans-serif;font-size:26px;line-height:1}.energy-grade-tile span{min-width:24px;padding:3px 7px;border-radius:999px;background:rgba(0,0,0,.18);font-size:11px;font-weight:800;text-align:center}.energy-overview-page .grade-a{background:#14854f}.energy-overview-page .grade-b{background:#50a448}.energy-overview-page .grade-c{background:#96b93c;color:#17331d}.energy-overview-page .grade-d{background:#d4b437;color:#332d13}.energy-overview-page .grade-e{background:#ed8c2f}.energy-overview-page .grade-f{background:#dc5e36}.energy-overview-page .grade-g{background:#c33f4a}.energy-overview-page .grade-none{background:#89958e}
.energy-attention-list{display:grid;margin-top:12px}.energy-attention-list>a{display:grid;grid-template-columns:40px minmax(0,1fr) 18px;align-items:center;gap:12px;padding:11px 4px;border-bottom:1px solid #edf0ee}.energy-attention-list>a:last-child{border-bottom:0}.energy-attention-list>a:hover strong{color:#0c6747}.energy-attention-list strong,.energy-attention-list small{display:block}.energy-attention-list strong{font-size:13px;color:#20382e}.energy-attention-list small{margin-top:2px;color:#7b857f;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.energy-attention-list b{color:#809088;font-size:17px}.energy-mini-grade,.energy-table-grade{display:inline-grid;place-items:center;border-radius:10px;color:#fff;font-family:Outfit,sans-serif;font-weight:800;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}.energy-mini-grade{width:38px;height:38px;font-size:15px}.energy-table-grade{min-width:48px;height:42px;padding:0 9px;font-size:17px}.energy-mini-grade.grade-c,.energy-mini-grade.grade-d,.energy-table-grade.grade-c,.energy-table-grade.grade-d{color:#203019}.energy-mini-grade.grade-none,.energy-table-grade.grade-none{background:#89958e}.energy-overview-empty-small{padding:24px 4px 6px;text-align:center}.energy-overview-empty-small strong{color:#18432f}.energy-overview-empty-small p{margin:4px 0;color:#7b857f;font-size:12px}
.energy-overview-list-panel{overflow:hidden}.energy-overview-list-head{padding:22px 24px 0}.energy-overview-list-head>strong{padding:6px 10px;border-radius:999px;background:#edf5f1;color:#1b674b;font-size:11px}.energy-overview-toolbar{display:grid;grid-template-columns:minmax(240px,1.5fr) repeat(4,minmax(118px,.55fr)) auto auto;align-items:end;gap:10px;padding:18px 24px;border-bottom:1px solid #e9edea}.energy-overview-toolbar label{display:grid;gap:5px;color:#6d7871;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.energy-overview-toolbar input,.energy-overview-toolbar select{height:42px;border:1px solid #dfe6e1;border-radius:12px;background:#fff;color:#21382e;font:600 13px Inter,sans-serif}.energy-overview-toolbar select{padding:0 34px 0 11px}.energy-overview-search{position:relative}.energy-overview-search svg{position:absolute;left:13px;bottom:12px;width:18px;height:18px;color:#829088}.energy-overview-search input{width:100%;padding:0 12px 0 40px}.energy-overview-toolbar .btn{height:42px;white-space:nowrap}
.energy-overview-table-wrap{overflow-x:auto}.energy-overview-table{width:100%;border-collapse:collapse}.energy-overview-table th{padding:13px 18px;background:#f7f9f8;color:#77827c;font-size:10px;font-weight:800;text-align:left;text-transform:uppercase;letter-spacing:.055em;white-space:nowrap}.energy-overview-table td{padding:15px 18px;border-top:1px solid #edf0ee;vertical-align:middle}.energy-overview-table tbody tr:hover{background:#fbfcfb}.energy-property-link strong,.energy-property-link span{display:block}.energy-property-link strong{color:#1b3b2d;font-size:13px}.energy-property-link span{margin-top:3px;color:#7b857f;font-size:11px}.energy-status-badge{display:inline-flex;align-items:center;min-height:25px;padding:4px 9px;border-radius:999px;font-size:10px;font-weight:800;white-space:nowrap}.energy-status-badge.is-valid{background:#e3f3e9;color:#17613b}.energy-status-badge.is-missing{background:#fff1d9;color:#925c13}.energy-status-badge.is-expired{background:#fde7e8;color:#a83542}.energy-status-badge.is-expiring{background:#ffeddc;color:#a45516}.energy-status-badge.is-warning{background:#f3efdd;color:#75631b}.energy-valid-date{display:block;margin-top:5px;color:#7f8983;font-size:10px}.energy-report-link{color:#126a4b;font-size:11px;font-weight:800}.energy-report-link:hover{text-decoration:underline}.energy-muted{color:#929a95;font-size:11px}.energy-source-tag{display:inline-flex;padding:5px 8px;border-radius:8px;background:#edf2ef;color:#53675d;font-size:10px;font-weight:800}.energy-source-tag.is-emodata{background:#e2f2e9;color:#17613b}.energy-source-tag.is-external{background:#e8eff5;color:#355b77}.energy-source-tag.is-manual{background:#f3ede3;color:#76592f}.energy-source-tag.is-missing{background:#f1f1f0;color:#7f8782}.energy-table-actions{text-align:right}.energy-overview-pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #edf0ee}.energy-overview-pagination span{color:#68756e;font-size:11px;font-weight:700}.energy-overview-pagination .is-disabled{opacity:.45;pointer-events:none}.energy-overview-empty{display:grid;place-items:center;padding:50px 24px;text-align:center}.energy-overview-empty>.icon{width:54px;height:54px;display:grid;place-items:center;border-radius:17px;background:#edf3f0;color:#315e4c}.energy-overview-empty>.icon svg{width:27px;height:27px}.energy-overview-empty h3{margin:14px 0 3px;font-family:Outfit,sans-serif;font-size:20px}.energy-overview-empty p{margin:0 0 14px;color:#7a857f}
@media(max-width:1250px){.energy-overview-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.energy-overview-toolbar{grid-template-columns:minmax(260px,1fr) repeat(3,minmax(125px,.5fr));}.energy-overview-toolbar label:nth-of-type(5){grid-column:auto}.energy-overview-toolbar .btn{width:auto}.energy-grade-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:900px){.energy-overview-hero{align-items:flex-start}.energy-overview-top-grid{grid-template-columns:1fr}.energy-overview-toolbar{grid-template-columns:1fr 1fr}.energy-overview-search{grid-column:1/-1}.energy-overview-toolbar .btn{width:100%}.energy-overview-table thead{display:none}.energy-overview-table,.energy-overview-table tbody,.energy-overview-table tr,.energy-overview-table td{display:block;width:100%}.energy-overview-table tr{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:17px 18px;border-top:1px solid #e8ece9}.energy-overview-table td{padding:0;border:0}.energy-overview-table td:before{content:attr(data-label);display:block;margin-bottom:5px;color:#87918b;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.energy-overview-table td:first-child{grid-column:1/-1}.energy-table-actions{text-align:left}.energy-overview-pagination{justify-content:center}}
@media(max-width:650px){.energy-overview-page{gap:14px}.energy-overview-hero{display:grid;padding:20px;border-radius:19px}.energy-overview-hero-copy{align-items:flex-start}.energy-overview-hero-icon{width:46px;height:46px;flex-basis:46px;border-radius:14px}.energy-overview-hero h1{font-size:29px}.energy-overview-actions{justify-content:stretch}.energy-overview-actions .btn{flex:1}.energy-overview-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.energy-kpi-card{padding:15px}.energy-kpi-card strong{font-size:27px}.energy-overview-panel{padding:18px}.energy-grade-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.energy-grade-tile{min-height:70px}.energy-overview-list-head{padding:18px 18px 0}.energy-overview-toolbar{grid-template-columns:1fr;padding:15px 18px}.energy-overview-search{grid-column:auto}.energy-overview-table tr{grid-template-columns:1fr}.energy-overview-table td:first-child{grid-column:auto}.energy-overview-pagination{padding:14px 18px;gap:8px}.energy-overview-pagination .btn{padding-left:10px;padding-right:10px}}

/* VRAP v2.5.22 — Porteføljekort */
.portfolio-map-page-head{align-items:flex-end}
.portfolio-map-head-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.portfolio-map-head-actions .btn{display:inline-flex;align-items:center;gap:7px}
.portfolio-map-kpis .metric-card small{display:block;margin-top:4px;color:var(--muted,#65736b);font-size:11px;font-weight:600}
.portfolio-map-kpis .metric-card.is-accent{background:#0e5539;color:#fff}
.portfolio-map-kpis .metric-card.is-accent span,.portfolio-map-kpis .metric-card.is-accent small{color:#e5f2eb}
.portfolio-map-kpis .metric-card.is-accent .metric-card-icon{background:rgba(255,255,255,.14);color:#fff}
.portfolio-map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0 14px;padding:13px 14px;border:1px solid #e9e2d7;border-radius:17px;background:#fff;box-shadow:0 8px 25px rgba(35,55,43,.05)}
.portfolio-map-mode-group{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.portfolio-map-mode-group>span{margin-right:4px;color:#627069;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.portfolio-map-mode-group button{min-height:38px;padding:0 13px;border:1px solid #e4dbcf;border-radius:999px;background:#fff;color:#1b4b38;font:700 12px/1 Inter,sans-serif;cursor:pointer;transition:.16s ease}
.portfolio-map-mode-group button:hover{border-color:#bfd3c8;background:#f4f8f5}
.portfolio-map-mode-group button.is-active{border-color:#0e5539;background:#0e5539;color:#fff;box-shadow:0 5px 14px rgba(14,85,57,.18)}
.portfolio-map-search{flex:0 0 min(320px,32vw)}
.portfolio-map-search input{width:100%;min-height:42px;padding:0 14px;border:1px solid #ddcfbe;border-radius:12px;background:#fff;font-size:14px}
.portfolio-map-shell{display:grid;grid-template-columns:minmax(0,1fr) 350px;min-height:660px;border:1px solid #e4ddd2;border-radius:22px;overflow:hidden;background:#fff;box-shadow:0 16px 42px rgba(32,52,41,.09)}
.portfolio-map-canvas-wrap{position:relative;min-width:0;background:#e9eee9}
.portfolio-map-canvas{position:absolute;inset:0;min-height:660px;background:linear-gradient(145deg,#e7eee9,#f4f1e9)}
.portfolio-map-state{position:absolute;z-index:8;left:50%;top:50%;width:min(420px,calc(100% - 42px));transform:translate(-50%,-50%);padding:22px 24px;border:1px solid #d8e2dc;border-radius:18px;background:rgba(255,255,255,.96);box-shadow:0 18px 50px rgba(24,51,38,.16);text-align:center}
.portfolio-map-state[hidden]{display:none}
.portfolio-map-state strong{display:block;color:#0d4933;font-family:Outfit,sans-serif;font-size:20px}
.portfolio-map-state p{margin:7px 0 0;color:#64716a;font-size:13px;line-height:1.55}
.portfolio-map-state.is-warning{border-color:#efd4bc;background:#fffaf5}
.portfolio-map-state.is-error{border-color:#efc0c6;background:#fff7f8}
.portfolio-map-legend{position:absolute;z-index:6;left:14px;bottom:14px;display:flex;gap:8px;flex-wrap:wrap;max-width:calc(100% - 28px);padding:9px 11px;border:1px solid rgba(210,220,214,.9);border-radius:12px;background:rgba(255,255,255,.94);box-shadow:0 8px 24px rgba(26,48,37,.11);backdrop-filter:blur(6px)}
.portfolio-map-legend span{display:inline-flex;align-items:center;gap:5px;color:#496056;font-size:10px;font-weight:700;white-space:nowrap}
.portfolio-map-legend i{width:9px;height:9px;border-radius:50%;background:var(--legend-color);box-shadow:0 0 0 2px rgba(255,255,255,.9),0 0 0 3px color-mix(in srgb,var(--legend-color) 45%,transparent)}
.portfolio-map-progress{position:absolute;z-index:7;right:14px;top:14px;max-width:min(430px,calc(100% - 28px));padding:10px 13px;border:1px solid #d6e1da;border-radius:12px;background:rgba(255,255,255,.96);color:#244f3c;font-size:11px;font-weight:700;box-shadow:0 8px 24px rgba(29,51,41,.1)}
.portfolio-map-progress[hidden]{display:none}
.portfolio-map-progress.is-warning{border-color:#efd5b9;color:#8b4a1f}
.portfolio-map-progress.is-error{border-color:#efb9c2;color:#9b263e}
.portfolio-map-list-panel{display:flex;min-width:0;flex-direction:column;border-left:1px solid #e7e0d6;background:#fff}
.portfolio-map-list-head{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:66px;padding:14px 16px;border-bottom:1px solid #eee6dc;background:#fbfaf7}
.portfolio-map-list-head div{display:flex;align-items:baseline;gap:7px}
.portfolio-map-list-head span{color:#68746e;font-size:11px;font-weight:700}
.portfolio-map-list-head strong{color:#0e5137;font-family:Outfit,sans-serif;font-size:21px}
.portfolio-map-list-head em{padding:5px 8px;border-radius:999px;background:#fff3e8;color:#a34a1b;font-size:9px;font-style:normal;font-weight:800}
.portfolio-map-list{flex:1;max-height:660px;overflow:auto;scrollbar-width:thin}
.portfolio-map-list-item{display:grid;width:100%;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:center;padding:14px 13px;border:0;border-bottom:1px solid #eee7dd;background:#fff;text-align:left;cursor:pointer;transition:.15s ease}
.portfolio-map-list-item:hover{background:#f5f8f6}
.portfolio-map-list-item.is-selected{background:#edf5f0;box-shadow:inset 3px 0 #0e5539}
.portfolio-map-list-pin,.portfolio-map-popup-pin{position:relative;display:block;width:32px;height:42px;flex:0 0 auto;color:#fff;line-height:1}
.portfolio-map-list-pin{width:29px;height:38px}
.portfolio-pin-svg{display:block;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 5px 6px rgba(18,50,35,.20))}
.portfolio-pin-shape{fill:var(--pin-color);stroke:#fff;stroke-width:2.6;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.portfolio-pin-glyph{position:absolute;z-index:1;top:38%;left:50%;transform:translate(-50%,-50%);color:#fff;font:900 10px/1 Inter,sans-serif;text-align:center;white-space:nowrap;pointer-events:none}
.portfolio-map-list-pin .portfolio-pin-glyph{font-size:9px}
.portfolio-map-list-copy{min-width:0}
.portfolio-map-list-copy strong,.portfolio-map-list-copy small,.portfolio-map-list-copy span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.portfolio-map-list-copy strong{color:#123f2e;font-family:Outfit,sans-serif;font-size:14px}
.portfolio-map-list-copy small{margin-top:2px;color:#7b847f;font-size:10px}
.portfolio-map-list-copy span{margin-top:5px;color:#42604f;font-size:10px;font-weight:700}
.portfolio-map-list-meta{text-align:right}
.portfolio-map-list-meta strong,.portfolio-map-list-meta small,.portfolio-map-list-meta em{display:block;white-space:nowrap}
.portfolio-map-list-meta strong{color:#174a35;font-size:10px}
.portfolio-map-list-meta small{margin-top:3px;color:#69756f;font-size:9px}
.portfolio-map-list-meta em{margin-top:5px;color:#c1462b;font-size:8px;font-style:normal;font-weight:800}
.portfolio-map-list-empty{padding:35px 20px;text-align:center}
.portfolio-map-list-empty strong{color:#174b36;font-family:Outfit,sans-serif;font-size:16px}
.portfolio-map-list-empty p{color:#758078;font-size:12px}
.portfolio-google-pin{position:absolute;z-index:2;display:block;width:40px;height:52px;padding:0;border:0;border-radius:0;transform:translate(-50%,-100%);transform-origin:50% 100%;background:transparent;color:#fff;cursor:pointer;transition:transform .15s ease,filter .15s ease;user-select:none;overflow:visible}
.portfolio-google-pin .portfolio-pin-svg{filter:drop-shadow(0 7px 7px rgba(18,50,35,.28))}
.portfolio-google-pin .portfolio-pin-glyph{top:37%;font-size:10px}
.portfolio-google-pin:hover,.portfolio-google-pin.is-selected{z-index:20;transform:translate(-50%,-100%) scale(1.09);filter:brightness(1.04)}
.portfolio-google-pin:focus-visible{outline:3px solid rgba(238,84,30,.45);outline-offset:3px;border-radius:16px}
.portfolio-map-popup{width:315px;padding:2px;color:#173e2f;font-family:Inter,sans-serif}
.portfolio-map-popup header{display:flex;align-items:center;gap:13px;padding:4px 2px 12px;border-bottom:1px solid #ece5dc}
.portfolio-map-popup header .portfolio-map-popup-pin{flex:0 0 auto;width:32px;height:42px}
.portfolio-map-popup header .portfolio-pin-glyph{font-size:9px}
.portfolio-map-popup header div{min-width:0}
.portfolio-map-popup header strong{display:block;font-family:Outfit,sans-serif;font-size:18px}
.portfolio-map-popup header small{display:block;margin-top:2px;color:#718078;font-size:10px}
.portfolio-map-popup-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:11px 0}
.portfolio-map-popup-grid div{padding:9px 10px;border:1px solid #eee7dd;border-radius:10px;background:#faf9f6}
.portfolio-map-popup-grid span,.portfolio-map-popup-lines span{display:block;color:#7b837f;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.portfolio-map-popup-grid strong{display:block;margin-top:3px;color:#10462f;font-size:12px}
.portfolio-map-popup-lines{display:grid;gap:7px}
.portfolio-map-popup-lines p{margin:0;padding:8px 9px;border-radius:9px;background:#f3f7f4}
.portfolio-map-popup-lines p.is-warning{background:#fff4eb}
.portfolio-map-popup-lines strong{display:block;margin-top:2px;font-size:11px}
.portfolio-map-popup-lines small{display:block;margin-top:2px;color:#68766f;font-size:9px;line-height:1.35}
.portfolio-map-popup footer{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:11px}
.portfolio-map-popup footer a{display:flex;align-items:center;justify-content:center;min-height:34px;padding:5px;border:1px solid #d9e3dc;border-radius:9px;color:#0e5539;font-size:9px;font-weight:800;text-align:center;text-decoration:none}
.portfolio-map-popup footer a:hover{background:#0e5539;color:#fff}

@media (max-width:1150px){
  .portfolio-map-shell{grid-template-columns:minmax(0,1fr) 310px}
  .portfolio-map-toolbar{align-items:flex-start;flex-direction:column}
  .portfolio-map-search{width:100%;max-width:none;flex-basis:auto}
}
@media (max-width:900px){
  .portfolio-map-page-head{align-items:flex-start}
  .portfolio-map-shell{grid-template-columns:1fr;min-height:auto}
  .portfolio-map-canvas-wrap,.portfolio-map-canvas{position:relative;min-height:540px}
  .portfolio-map-canvas{position:absolute}
  .portfolio-map-list-panel{border-top:1px solid #e7e0d6;border-left:0}
  .portfolio-map-list{max-height:420px}
}
@media (max-width:620px){
  .portfolio-map-head-actions{width:100%}
  .portfolio-map-head-actions .btn{flex:1;justify-content:center}
  .portfolio-map-toolbar{padding:12px}
  .portfolio-map-mode-group{width:100%;display:grid;grid-template-columns:1fr 1fr}
  .portfolio-map-mode-group>span{grid-column:1/-1}
  .portfolio-map-mode-group button{min-height:43px;padding:0 9px;font-size:10px}
  .portfolio-map-canvas-wrap,.portfolio-map-canvas{min-height:470px}
  .portfolio-map-legend{right:10px;bottom:10px;left:10px;gap:6px}
  .portfolio-map-legend span{font-size:8px}
  .portfolio-map-list-item{grid-template-columns:35px minmax(0,1fr);padding:13px 11px}
  .portfolio-map-list-meta{grid-column:2;display:flex;gap:8px;text-align:left}
  .portfolio-map-list-meta>*{margin:0!important}
  .portfolio-map-popup{width:260px}
  .portfolio-map-popup footer{grid-template-columns:1fr}
}

/* v30 property Street View reference — scoped to Stamdata cover-image block */
#property-cover-image .property-image-source-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,.82fr);
  gap:16px;
  align-items:start;
}
#property-cover-image .property-image-upload-source,
#property-cover-image .property-streetview-source{
  min-width:0;
  padding:16px;
  border:1px solid #e8ded2;
  border-radius:18px;
  background:#fcfaf6;
}
#property-cover-image .property-streetview-source{
  background:linear-gradient(180deg,#f5f9f6 0%,#fbfaf7 100%);
  border-color:#d8e6dc;
}
#property-cover-image .property-image-source-head{
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin-bottom:14px;
}
#property-cover-image .property-image-source-head>div{min-width:0}
#property-cover-image .property-image-source-head strong{
  display:block;
  color:var(--green-deep);
  font-family:Outfit,sans-serif;
  font-size:17px;
  line-height:1.2;
}
#property-cover-image .property-image-source-head p{
  margin:4px 0 0;
  color:var(--muted);
  font-size:12px;
  line-height:1.5;
}
#property-cover-image .property-image-source-icon{
  display:inline-flex;
  width:40px;
  height:40px;
  flex:0 0 40px;
  align-items:center;
  justify-content:center;
  border:1px solid #e4d9cb;
  border-radius:13px;
  background:#fff;
  color:var(--green-deep);
  box-shadow:0 7px 18px rgba(29,62,43,.08);
}
#property-cover-image .property-image-source-icon.is-google{
  border-color:#f1cdbd;
  background:#fff4ed;
  color:var(--orange);
}
#property-cover-image .property-image-source-icon .icon{display:flex}
#property-cover-image .property-image-upload-source .drop-upload{margin:0}
#property-cover-image .property-image-upload-source .drop-upload-zone{
  min-height:144px;
  justify-content:center;
}
#property-cover-image .property-streetview-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
#property-cover-image .property-streetview-actions .btn{
  min-height:42px;
  justify-content:center;
}
#property-cover-image .property-streetview-status{
  margin-top:11px;
  padding:10px 11px;
  border-radius:11px;
  background:#eef5f0;
  color:#476557;
  font-size:11px;
  line-height:1.45;
}
#property-cover-image .property-streetview-status[data-tone="loading"]{background:#fff6e8;color:#805b20}
#property-cover-image .property-streetview-status[data-tone="warning"]{background:#fff0e7;color:#9b431d}
#property-cover-image .property-streetview-status[data-tone="error"]{background:#fff0f1;color:#9b2d42}
#property-cover-image .property-streetview-status[data-tone="success"]{background:#e9f5ed;color:#1d6a46}
#property-cover-image .property-streetview-preview{
  position:relative;
  height:340px;
  margin-top:12px;
  overflow:hidden;
  border:1px solid #d5e1d8;
  border-radius:14px;
  background:#e8eeea;
}
#property-cover-image .property-streetview-preview[hidden]{display:none!important}
#property-cover-image .property-streetview-canvas{position:absolute;inset:0}
#property-cover-image .property-streetview-close{
  position:absolute;
  z-index:3;
  top:10px;
  right:10px;
  display:flex;
  width:36px;
  height:36px;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(25,64,44,.16);
  border-radius:11px;
  background:rgba(255,255,255,.94);
  color:#174b35;
  box-shadow:0 8px 20px rgba(20,55,38,.16);
  font:500 24px/1 Inter,sans-serif;
  cursor:pointer;
}
#property-cover-image .property-streetview-policy-note{
  display:flex;
  gap:8px;
  align-items:flex-start;
  margin-top:12px;
  padding-top:11px;
  border-top:1px solid #dfe8e2;
  color:#66766d;
  font-size:10px;
  line-height:1.45;
}
#property-cover-image .property-streetview-policy-note strong{
  flex:0 0 auto;
  color:#a14924;
  text-transform:uppercase;
  letter-spacing:.04em;
  font-size:9px;
}
#property-cover-image>.property-cover-card,
#property-cover-image>.notice{margin-top:16px}
@media (max-width:1000px){
  #property-cover-image .property-image-source-grid{grid-template-columns:1fr}
  #property-cover-image .property-streetview-preview{height:390px}
}
@media (max-width:620px){
  #property-cover-image{padding:14px}
  #property-cover-image .property-image-upload-source,
  #property-cover-image .property-streetview-source{padding:13px}
  #property-cover-image .property-streetview-actions{display:grid;grid-template-columns:1fr}
  #property-cover-image .property-streetview-actions .btn{width:100%}
  #property-cover-image .property-streetview-preview{height:320px}
  #property-cover-image .property-streetview-policy-note{display:block}
  #property-cover-image .property-streetview-policy-note strong{display:block;margin-bottom:4px}
}


/* =========================================================
   VRAP — explicit admin scoping with BBR as guidance only
   ========================================================= */

.setup-presence-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}

.setup-presence-card{
  min-width:0;
  margin:0;
  padding:15px;
  border:1px solid rgba(12,55,39,.13);
  border-radius:16px;
  background:#fff;
}

.setup-presence-card legend{
  padding:0 7px;
  color:var(--vrap-green-dark);
  font-family:var(--font-heading);
  font-size:15px;
  font-weight:850;
}

.setup-presence-options{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
}

.setup-presence-options label{
  display:block !important;
  position:relative;
  min-width:0;
  cursor:pointer;
}

.setup-presence-options input{
  position:absolute !important;
  opacity:0 !important;
  pointer-events:none !important;
}

.setup-presence-options span{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:8px 9px;
  border:1px solid #d9dfdb;
  border-radius:11px;
  background:#fffdf8;
  color:#4f5c55;
  font-size:12px;
  font-weight:800;
  text-align:center;
  transition:border-color .16s ease, background .16s ease, color .16s ease, box-shadow .16s ease;
}

.setup-presence-options label:hover span{
  border-color:rgba(12,55,39,.32);
}

.setup-presence-options input:focus-visible + span{
  box-shadow:0 0 0 3px rgba(0,184,107,.13);
}

.setup-presence-options input:checked + span{
  border-color:var(--vrap-green-dark);
  background:#eaf5ef;
  color:var(--vrap-green-dark);
  box-shadow:inset 0 0 0 1px rgba(12,55,39,.05);
}

.setup-presence-options label:nth-child(2) input:checked + span{
  border-color:#ba4a22;
  background:#fff0e9;
  color:#a83e17;
}

.setup-presence-options label:nth-child(3) input:checked + span{
  border-color:#b9c2bd;
  background:#f1f3f2;
  color:#53615a;
}

.setup-bbr-hint{
  margin:11px 0 0 !important;
  padding-top:10px;
  border-top:1px solid rgba(12,55,39,.09);
  color:#6d7772 !important;
  font-size:11px;
  line-height:1.45;
}

.setup-bbr-hint > span{
  display:inline-flex;
  align-items:center;
  margin-right:5px;
  padding:3px 6px;
  border-radius:999px;
  background:#f0f2f1;
  color:#59655f;
  font-size:9px;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
}

.setup-bbr-hint.is-positive > span{
  background:#e8f5ed;
  color:#0b5a3d;
}

@media (max-width: 840px){
  .setup-presence-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width: 480px){
  .setup-presence-options{
    grid-template-columns:1fr;
  }
}

/* VRAP v2.5.13 — slettede kladder og ejendomsejede opgaver */
.plans-row-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
}
.task-scope-badge-detached{
  background:#e8edf8;
  color:#41577f;
}
.property-tasks-plan-title.is-detached,
.tasks-row-subline.is-detached{
  color:#506586;
  font-weight:750;
}
.detached-task-note{
  border-color:#cfd8eb;
  background:#f3f6fc;
  color:#384e72;
}
.detached-task-note strong{
  color:#243e69;
}
@media(max-width:760px){
  .plans-row-actions{
    justify-content:flex-start;
  }
  .plans-row-actions .inline-delete-form,
  .plans-row-actions .btn{
    width:100%;
  }
  .plans-row-actions .inline-delete-form .btn{
    justify-content:center;
  }
}


/* Stable report share links */
.report-share-grid{align-items:start}
.report-share-panel,.report-share-info{padding:26px}
.report-share-link-label{display:block;margin-top:22px;font-weight:800;color:#123f2e}
.report-share-link-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-top:9px}
.report-share-link-row input{min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}
.report-share-status-row{display:flex;align-items:center;gap:10px;margin-top:13px;color:#718078}
.report-share-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:24px}
.report-share-actions form{margin:0}
.report-share-info-list{display:grid;gap:14px}
.report-share-info-list>div{padding:15px 16px;border:1px solid #e2e8e4;border-radius:14px;background:#fbfcfb}
.report-share-info-list strong{display:block;color:#123f2e;margin-bottom:4px}
.report-share-info-list p{margin:0;color:#66736c;font-size:13px;line-height:1.5}
@media(max-width:720px){.report-share-link-row{grid-template-columns:1fr}.report-share-link-row .btn{width:100%}.report-share-panel,.report-share-info{padding:20px}}
.status-badge.is-share-active{background:#e3f3e9;color:#17613b}
.status-badge.is-share-inactive{background:#eef1ef;color:#66736c}

/* VRAP v2.5.14 — selvstændige ejendomsopgaver og opgavebilleder */
.tasks-create-button{
  background:var(--vrap-orange,#ee541e);
  color:#fff;
  border-color:var(--vrap-orange,#ee541e);
  box-shadow:0 8px 22px rgba(238,84,30,.18);
}
.tasks-create-button:hover{filter:brightness(.96);color:#fff}
.tasks-empty-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:12px}
.task-photo-count-badge{background:#eef5f1;color:#245a43}
.task-create-plan-note{border-color:#bddfcf;background:#eef8f3;color:#245a43}
.task-create-head>span:last-child{min-width:1px}
.task-create-photo-box,
.task-inline-photo-upload{
  display:grid;
  grid-template-columns:minmax(220px,.75fr) minmax(280px,1.25fr);
  gap:18px;
  align-items:center;
  margin:22px 0;
  padding:18px;
  border:1px solid #dde6e0;
  border-radius:16px;
  background:#f8fbf9;
}
.task-create-photo-box p,
.task-inline-photo-upload p{margin:5px 0 0;color:#68756e;font-size:13px;line-height:1.5}
.task-create-photo-picker{min-height:110px}
.task-photo-section{margin-top:18px}
.task-photo-upload{margin-bottom:20px}
.task-photo-grid{margin-bottom:18px}
.task-photo-card{position:relative}
.task-photo-preview-link{display:block;border-radius:12px;overflow:hidden;background:#eef1ef}
.task-photo-preview-link img{display:block;width:100%;height:190px;object-fit:cover}
.task-photo-origin{display:block;margin-top:9px;color:#76817b;font-size:11px;line-height:1.4}
.task-photo-delete-link{
  appearance:none;border:0;background:transparent;padding:0;color:#a23d2b;font:inherit;font-weight:800;cursor:pointer
}
.task-photo-delete-link:hover{text-decoration:underline}
.task-photo-empty{
  padding:24px;border:1px dashed #cfd9d3;border-radius:16px;background:#fafcfb;text-align:center;color:#66736c
}
.task-photo-empty strong{display:block;color:#173d2e;margin-bottom:5px}
.task-photo-empty p{margin:0;font-size:13px}
.task-photo-meta-form>button{margin-top:4px}

@media(max-width:900px){
  .property-tasks-head-actions{align-items:stretch}
  .task-create-photo-box,.task-inline-photo-upload{grid-template-columns:1fr}
}
@media(max-width:640px){
  .property-tasks-head-actions .btn{width:100%;justify-content:center}
  .task-photo-preview-link img{height:160px}
}

/* Task photo report ordering */
.task-photo-sort-label{
  display:flex;
  align-items:center;
  gap:7px;
  margin:0;
  color:#5f6f67;
  font-size:11px!important;
  font-weight:700;
  line-height:1.2;
  white-space:nowrap;
}
.task-photo-sort-label span{display:block}
.photo-card-bottom .task-photo-sort-label input[type=number]{width:58px;margin:0}
@media (max-width:620px){
  .photo-card-bottom{align-items:flex-start;flex-wrap:wrap}
  .task-photo-sort-label{width:100%;justify-content:flex-start}
}
