:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#21332d;background:#f6f5f0;font-size:15px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:#255849}.layout{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}aside{background:#23453c;color:#edf5ee;padding:27px 18px;display:flex;flex-direction:column;min-height:100vh}.brand{display:flex;align-items:center;gap:12px;padding:0 13px 36px}.brand strong{display:block;letter-spacing:.1em;font-size:19px}.brand small{display:block;font-size:10px;letter-spacing:.18em;opacity:.7}.logo{background:#d4ba8f;color:#24483e;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:21px;font-weight:800}.nav{display:flex;flex-direction:column;gap:6px}.navlink{border:0;background:transparent;color:#c7dbd0;text-align:left;padding:13px 15px;border-radius:12px;display:flex;gap:14px;align-items:center;font-weight:600}.navlink>span{font-size:20px;line-height:1;width:22px;text-align:center}.navlink:hover,.navlink.active{background:#3d6254;color:#fff}.aside-foot{margin-top:auto;border-top:1px solid #527267;padding:24px 14px;color:#bcd5c6;font-size:12px}.aside-foot strong{display:block;color:white;margin-top:7px;font-size:19px}.logout{background:transparent;border:0;color:#d9eee1;margin-top:24px;padding:0}main{padding:38px 4vw 80px;max-width:1600px;width:100%;margin:0 auto}.heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:750;color:#5d8171}.heading h1,.login h1{font-family:Georgia,serif;font-size:clamp(27px,3vw,43px);letter-spacing:-.03em;line-height:1.1;margin:8px 0}.muted{color:#83918a;margin:0}.primary,.outline,.soft,.danger{border-radius:10px;padding:11px 16px;border:1px solid transparent;font-weight:650;white-space:nowrap}.primary{background:#285346;color:white}.primary:hover{background:#163e33}.outline{border-color:#d8dfd8;color:#33564a;background:white}.soft{background:#eef3ed;color:#285346;margin-top:14px}.danger{background:#fff0ed;color:#a33d31}.small{font-size:12px;text-decoration:none}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:22px}.stats.two{grid-template-columns:repeat(2,minmax(0,1fr));max-width:640px}.stat{background:white;padding:24px;border-radius:16px;border:1px solid #e8ebe5}.stat p{margin:0 0 15px;color:#71837a;font-size:12px;font-weight:700}.stat strong{display:block;font-family:Georgia,serif;font-size:clamp(20px,2.1vw,32px);font-weight:600;letter-spacing:-.035em}.stat small{display:block;margin-top:8px;color:#a1aaa3;font-size:11px}.cols{display:grid;grid-template-columns:1.2fr 1fr;gap:20px}.panel{padding:25px;background:#fff;border:1px solid #e6eae2;border-radius:17px;margin-bottom:20px;min-width:0}.panel h2{font-family:Georgia,serif;font-weight:600;font-size:22px;margin:0 0 22px;display:flex;justify-content:space-between;align-items:center;gap:12px}.panel h2 span{color:#9aa7a0;font-family:inherit;font-size:14px}.panel h2 .primary{font:600 12px Inter,sans-serif;padding:9px 12px}.roomgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.roomgrid.larger{grid-template-columns:repeat(3,minmax(0,1fr))}.room-card{border:1px solid #e3eae2;border-radius:12px;padding:17px;background:#f9faf7;text-align:left;display:flex;flex-direction:column;align-items:flex-start;gap:7px;color:#2f4b3d}.room-card:hover{border-color:#799b84;background:#eff5ef}.room-icon{display:grid;place-items:center;width:35px;height:35px;border-radius:9px;background:#e5ede6;font-size:22px}.room-card b{margin-top:5px}.room-card small{color:#84988b}.entry{display:flex;align-items:flex-start;gap:12px;padding:16px 2px;border-bottom:1px solid #edf0eb}.entry:last-child{border:0}.entry-main{flex:1;min-width:0}.entry-main b{display:block;font-size:14px;font-weight:650}.entry-main small{display:block;font-size:12px;color:#8a9b8f;margin-top:6px;word-break:break-word}.check{height:23px;width:23px;flex:none;border:1.5px solid #b9cac1;background:white;border-radius:7px;color:white}.check.checked{background:#35644c;border-color:#35644c}.struck{text-decoration:line-through;color:#99a69d}.iconbtn{border:0;background:transparent;color:#829689;padding:2px 7px;font-size:21px}.amount{text-align:right}.amount b{display:block;white-space:nowrap}.amount small{display:block;color:#8c9d92;font-size:11px;margin-top:5px;white-space:nowrap}.item-symbol{width:33px;height:33px;display:grid;place-items:center;border-radius:10px;background:#edf3ec;color:#3c7051}.empty{padding:36px 10px;color:#93a095;text-align:center;font-size:14px}.hint{color:#859a89;font-size:12px;margin:14px 2px}.milestones{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.milestones>div{border-top:3px solid #b2c7b8;padding:12px 4px;display:grid;gap:8px}.milestones span{font-size:11px;color:#84988a}.milestones b{font-size:13px}.subcheck{display:flex;align-items:center;gap:4px;font-size:12px;color:#667c6c;margin-top:7px}.text-button{border:0;background:none;color:#a2aba4}.checkadd{display:flex;margin-top:6px;gap:5px}.checkadd input{min-width:0;width:100%;border:1px solid #e7e9e4;border-radius:6px;padding:5px;font-size:12px}.checkadd button{border:0;border-radius:6px;background:#e8eee8}.filterrow{display:flex;align-items:center;gap:14px;margin-bottom:20px}.filterrow select,.field input,.field select,.field textarea{border:1px solid #dfe5dc;background:white;border-radius:9px;padding:11px;width:100%;color:#293c31}.filterrow select{max-width:290px}.filterrow .muted{font-size:12px}.datebox{font-size:12px;background:#eef3ee;border-radius:9px;padding:10px;color:#326149;min-width:100px;text-align:center}.timeline-head,.timeline-row{display:grid;grid-template-columns:195px 1fr;gap:20px;align-items:center;padding:13px 0;border-bottom:1px solid #edf0eb}.timeline-head{font-size:11px;color:#7e8f84}.timeline-head>div{display:flex;justify-content:space-between}.timeline-row b{display:block;font-size:12px}.timeline-row small{display:block;font-size:11px;color:#91a094}.track{height:27px;background:repeating-linear-gradient(90deg,#edf1ec 0,#edf1ec calc(25% - 1px),#d9e2d8 calc(25% - 1px),#d9e2d8 25%);border-radius:5px;position:relative}.bar{background:#4b7d62;position:absolute;top:7px;height:13px;border-radius:10px}.overlay{position:fixed;inset:0;background:#18282099;display:grid;place-items:center;padding:18px;z-index:9}.modal{width:min(540px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:18px;padding:28px;box-shadow:0 24px 100px #10251b40}.modal-title{display:flex;align-items:center;justify-content:space-between}.modal-title h2{font-family:Georgia,serif;font-size:26px}.field{display:block;font-size:12px;font-weight:700;color:#607368;margin:14px 0}.field input,.field textarea,.field select{display:block;margin-top:7px;font-weight:400;color:#293c31}.field textarea{min-height:82px;resize:vertical}.modal-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:24px}.modal-actions .danger{margin-right:auto}.login{min-height:100vh;display:grid;place-items:center;padding:20px;background:#e9eee6}.login-box{width:min(440px,100%);padding:42px;background:white;border-radius:20px;box-shadow:0 30px 80px #1f442312}.login .brand{color:#2a5140;padding:0 0 25px}.login h1{margin-bottom:10px}.login .primary{width:100%;margin-top:8px}.error{color:#c04033}.loading{padding:5rem;text-align:center}@media(max-width:1150px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.cols{grid-template-columns:1fr}}@media(max-width:750px){.layout{display:block}aside{min-height:0;padding:13px 14px 10px}.brand{padding:0 5px 10px}.nav{display:flex;flex-direction:row;overflow:auto;gap:3px}.navlink{flex:0 0 auto;padding:10px;font-size:11px;gap:7px}.navlink span{font-size:15px;width:auto}.aside-foot{display:none}main{padding:23px 15px 90px}.heading{align-items:flex-start;flex-wrap:wrap}.heading h1{font-size:31px}.heading .primary{margin-left:auto}.panel{padding:17px}.roomgrid.larger{grid-template-columns:repeat(2,minmax(0,1fr))}.milestones{grid-template-columns:repeat(2,minmax(0,1fr))}.timeline-head,.timeline-row{grid-template-columns:125px 1fr;gap:10px}}@media(max-width:430px){.stats{gap:9px}.stat{padding:14px}.stat strong{font-size:21px}.roomgrid,.roomgrid.larger{grid-template-columns:repeat(2,minmax(0,1fr))}.room-card{padding:12px}.entry{gap:6px}.amount{font-size:12px}.modal{padding:18px}.heading h1{font-size:28px}}

.room-tabs{display:flex;gap:8px;overflow-x:auto;margin:0 0 20px;padding-bottom:8px}.room-tab{border:1px solid #ddd9cd;background:#fff;border-radius:999px;padding:10px 17px;white-space:nowrap;cursor:pointer;color:#35473d;font-weight:600}.room-tab.current{background:#24483e;color:white;border-color:#24483e}.asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px;margin-top:16px}.asset-tile{border:1px solid #e7e3d9;border-radius:13px;overflow:hidden;background:white;min-width:0}.asset-tile img,.asset-placeholder{height:170px;width:100%;object-fit:cover;display:flex;align-items:center;justify-content:center;background:#e8ebe4;font-size:42px;color:#688373}.asset-caption{padding:14px;display:grid;gap:9px;overflow-wrap:anywhere}.asset-caption small{color:#747a75}.asset-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.asset-actions button{max-width:100%}.asset-actions .primary{font-size:13px}

/* HOME 0.2.1: independent Pinterest moodboard and plan archive */
.board-heading{display:flex;gap:18px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap}.board-heading h2{margin-bottom:8px}.board-heading p{max-width:580px}.pin-grid{columns:4 190px;column-gap:17px;margin-top:22px}.pin-card{display:inline-block;width:100%;break-inside:avoid;border-radius:17px;overflow:hidden;background:#fff;border:1px solid #e8e4dd;margin:0 0 16px;box-shadow:0 4px 14px #203d2d0c}.pin-card img{display:block;width:100%;height:auto;max-height:490px;object-fit:cover}.pin-info{padding:12px 14px}.pin-info strong{display:block;font-size:14px}.pin-info p,.plan-detail p{margin:7px 0;font-size:13px;line-height:1.45;color:#6d766f}.pin-placeholder{min-height:145px;background:#edf0e8;display:flex;align-items:center;justify-content:center;flex-direction:column;font-size:35px;color:#345744}.pin-placeholder small{font-size:11px}.pin-card .asset-actions{margin-top:8px}.plan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:18px;margin-top:22px}.plan-card{overflow:hidden;border:1px solid #e6e2da;border-radius:16px;background:#fff}.plan-preview{height:200px;display:flex;align-items:center;justify-content:center;background:#e9ece7}.plan-preview img{height:100%;width:100%;object-fit:contain}.plan-preview span{font-size:30px;font-weight:800;color:#527260}.plan-detail{padding:16px;display:grid;gap:9px}.plan-detail small{font-size:12px;color:#7a817b}.plan-detail .asset-actions{margin-top:3px}@media(max-width:650px){.pin-grid{columns:2 135px;column-gap:10px}.pin-card{margin-bottom:10px}.board-heading{display:block}.board-heading .asset-actions{margin-top:14px}.plan-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.plan-preview{height:130px}}

/* HOME 0.2.2: room subnavigation and image-only moodboard */
.inspiration-room-nav{display:flex;gap:8px;overflow-x:auto;padding:3px 0 14px;margin-bottom:16px;scrollbar-width:thin}
.inspiration-room-link{flex:0 0 auto;border:1px solid #ddd9cd;border-radius:999px;padding:11px 18px;background:white;color:#345044;font-weight:650;white-space:nowrap}
.inspiration-room-link.selected{background:#24483e;color:white;border-color:#24483e}
.pin-image-only{display:inline-block;padding:0;border:0;text-align:left;overflow:hidden;cursor:zoom-in;line-height:0;background:#edf1eb;box-shadow:0 4px 14px #203d2d12}
.pin-image-only img{width:100%;height:auto;max-height:none;object-fit:cover;display:block}
.pin-image-only .pin-placeholder{line-height:1.5;min-height:180px}
.pin-image-only:hover{box-shadow:0 8px 22px #203d2d26;transform:translateY(-2px)}
.pin-image-only:focus-visible{outline:3px solid #5b846f;outline-offset:3px}
.pin-modal{width:min(760px,96vw);position:relative;padding:0;overflow:auto;max-height:92vh}
.pin-close{position:absolute;right:10px;top:10px;border-radius:100%;width:38px;height:38px;background:#ffffffeb;color:#1f3f32;z-index:2;line-height:1}
.pin-large-image{width:100%;max-height:65vh;object-fit:contain;display:block;background:#f3f2ed}
.pin-detail-body{padding:24px 26px 28px}.pin-detail-body h2{font-family:Georgia,serif;font-size:25px;margin:0 0 12px}
.pin-notes{font-size:14px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;color:#536b5b;margin:0 0 20px}
.pin-detail-body .asset-actions{margin-top:14px}
.pin-large-placeholder{min-height:220px}
@media(max-width:650px){.pin-detail-body{padding:18px}.inspiration-room-link{padding:10px 14px}}

/* HOME 0.2.3 – image-only, room-filtered plan library */
.plan-visual-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));align-items:start}
.plan-image-card{border:1px solid #e6e2da;border-radius:16px;overflow:hidden;background:#eff1ea;min-height:150px;cursor:zoom-in;padding:0;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px #203d2d0c;transition:transform .15s,box-shadow .15s}
.plan-image-card img{width:100%;height:auto;max-height:420px;object-fit:contain;display:block}
.plan-file-symbol{display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:750;color:#426753;min-height:165px}
.plan-image-card:hover{transform:translateY(-2px);box-shadow:0 8px 22px #203d2d24}
.plan-image-card:focus-visible{outline:3px solid #5b846f;outline-offset:3px}
.plan-meta{color:#758078;font-size:12px;word-break:break-word}
@media(max-width:650px){.plan-visual-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.plan-file-symbol{min-height:130px}}

/* HOME v0.2.4: Kopf-Umschalter Einkäufe / Baumaßnahmen */
.item-switch{display:flex;align-items:center;gap:5px;padding:5px;margin:0 0 20px;width:max-content;max-width:100%;background:#e8ede6;border-radius:13px}
.item-switch-button{border:0;background:transparent;color:#476355;padding:12px 20px;border-radius:9px;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}
.item-switch-button.selected{background:#24483e;color:white;box-shadow:0 2px 6px #18372920}
.item-switch-button:focus-visible{outline:3px solid #8bac96;outline-offset:2px}
@media(max-width:450px){.item-switch{width:100%}.item-switch-button{flex:1;padding:12px 10px}}

/* HOME v0.2.5 Einkaufszettel */
.shopping-list-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.shopping-list-card{display:flex;flex-direction:column;text-align:left;gap:12px;padding:23px;border:1px solid #e0e7de;background:#f8faf5;border-radius:13px;color:#24483e}.shopping-list-card strong{font-size:18px}.shopping-list-card small{color:#7b8d80}.shopping-list-card:hover{background:#eaf1e8}.shop-toolbar{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:20px}.shopping-lines{display:grid}.shopping-line{display:flex;align-items:center;gap:14px;border-bottom:1px solid #e8ede5;padding:15px 0;flex-wrap:wrap}.shopping-line label{display:flex;align-items:center;gap:12px;flex:1 1 220px;font-weight:650}.shopping-line input{width:19px;height:19px;accent-color:#24483e}.shopping-qty{min-width:45px}.shopping-line small{color:#8d9a90}.shopping-note{flex-basis:100%;padding-left:32px}.shop-product-options{margin-top:18px;max-height:48vh;overflow:auto}.shop-product-option{display:flex;align-items:center;gap:13px;border-bottom:1px solid #ebeeea;padding:12px}.shop-product-option input{height:19px;width:19px;accent-color:#24483e}.shop-product-option span{display:grid;gap:4px}.shop-product-option small{font-size:12px;color:#819185}.shopping-print-footer{margin-top:24px}
@media print{body{background:white!important;color:black!important}aside,.heading,.shop-toolbar,.overlay,.shop-no-print,.nav,.aside-foot{display:none!important}.layout{display:block!important}main{padding:0!important;margin:0!important;max-width:none!important}.panel.shopping-print-area{display:block;border:0;padding:0;margin:0}.shopping-print-area h2{font-size:24pt!important}.shopping-line{break-inside:avoid}.shopping-line input{appearance:none;border:1px solid #111;width:15px;height:15px}.shopping-line input:checked:before{content:'✓';font-weight:bold}.shopping-line small{color:#555!important}}

/* HOME v0.2.7 candidate comparison */
.candidate-modal{width:min(1000px,96vw)}.candidate-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:14px;margin:22px 0}.candidate-card{border:1px solid #e1e8dd;border-radius:14px;overflow:hidden;background:#fff}.candidate-card>img,.candidate-placeholder{width:100%;height:175px;object-fit:contain;background:#f4f5f1}.candidate-placeholder{display:grid;place-items:center;font-size:48px;color:#9ead9e}.candidate-content{padding:13px;display:grid;gap:8px}.candidate-content b{font-size:14px}.candidate-content small,.candidate-content p{color:#687b6c;font-size:12px;overflow-wrap:anywhere}.candidate-content strong{font-size:19px}.candidate-actions{display:flex;flex-wrap:wrap;gap:6px}.candidate-actions .outline{font-size:11px;padding:7px 9px;text-decoration:none}.fav-label{color:#35644c;font-size:12px;font-weight:700}.candidate-form{padding:18px;border-radius:12px;background:#f7f7f4;margin-top:18px}.candidate-form h3{margin:0 0 12px}.entry .outline{padding:8px 10px;font-size:12px;white-space:nowrap}@media(max-width:600px){.candidate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.candidate-card>img,.candidate-placeholder{height:125px}}

/* HOME v0.2.8 product cards */
.candidate-modal{width:min(920px,96vw);max-height:92vh;overflow:auto}.candidate-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px}.candidate-card>img{height:195px;object-fit:contain;background:#f5f5f1}.candidate-form .field input[type=file]{width:100%;padding:12px;background:white}.candidate-content{gap:10px}.candidate-content b{font-size:15px}.candidate-actions{align-items:center}

/* HOME v0.2.9 – Produktfotos vollständig und proportional anzeigen */
.candidate-grid{align-items:start;grid-template-columns:repeat(auto-fill,minmax(min(100%,205px),1fr))}
.candidate-card{min-width:0;display:flex;flex-direction:column;overflow:hidden}
.candidate-card>img{
  display:block;
  width:100%;
  height:220px;
  max-width:100%;
  object-fit:contain;
  object-position:center center;
  padding:14px;
  background:#f5f5f1;
  border-bottom:1px solid #edf0ea;
}
.candidate-placeholder{height:220px;display:grid;place-items:center}
.candidate-content{min-width:0}
.candidate-content b{overflow-wrap:anywhere}
@media(max-width:600px){
  .candidate-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .candidate-card>img,.candidate-placeholder{height:165px}
  .candidate-card>img{padding:8px}
}
