:root{--paper:#f7f8f3;--white:#fff;--ink:#263b30;--muted:#81877f;--line:#e3e8de;--green:#385a44;--sage:#eaf0e5;--orange:#b7833b;--red:#b96752;--serif:'Yu Mincho','Hiragino Mincho ProN',serif;font-family:'Hiragino Kaku Gothic ProN','Noto Sans JP',Meiryo,sans-serif;color:var(--ink);background:var(--paper);font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{opacity:.5;cursor:default}button{border:0;background:none}button:focus-visible,a:focus-visible{outline:2px solid var(--green);outline-offset:4px}svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}a{color:var(--green)}.shell{display:grid;grid-template-columns:236px 1fr;min-height:100vh}.sidebar{padding:34px 23px;background:#fff;border-right:1px solid var(--line);position:fixed;inset:0 auto 0 0;width:236px;display:flex;flex-direction:column;z-index:3}.brand{display:flex;gap:11px;align-items:center;margin-bottom:42px}.brand img{width:49px;height:49px;border-radius:14px;object-fit:cover}.brand strong{font-family:var(--serif);font-size:22px;letter-spacing:2px;display:block}.brand small{font-size:8px;letter-spacing:1.6px;color:var(--muted)}.nav{display:flex;flex-direction:column;gap:9px}.nav button{display:flex;align-items:center;gap:12px;padding:13px 16px;text-align:left;border-radius:9px;color:#788075;font-size:13px}.nav button.active{background:var(--sage);color:var(--green);font-weight:600}.nav button:hover{background:#f3f5ef}.side-label{color:#a1a59b;font-size:10px;letter-spacing:1.5px;margin:28px 16px 12px}.side-bottom{margin-top:auto;border-top:1px solid var(--line);padding:21px 8px 0;font-size:11px;color:var(--muted);line-height:1.9}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#7d9769;margin-right:7px}.workspace{grid-column:2;padding:0 48px 50px;max-width:1500px;width:100%;margin:auto}.topbar{height:89px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.place-switch{display:flex;align-items:center;gap:10px}.place-switch select{border:0;background:none;font-size:14px;font-weight:600;max-width:180px;color:var(--ink)}.top-actions{display:flex;align-items:center;gap:17px}.date{font-size:11px;letter-spacing:1px;color:var(--muted)}.icon-btn{width:37px;height:37px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;background:white}.icon-btn:hover{background:var(--sage)}.heading{display:flex;justify-content:space-between;align-items:center;margin:35px 0 27px;gap:15px}.eyebrow{font-size:9px;letter-spacing:2.5px;color:#8b947f;margin:0 0 9px}.heading h1{font-family:var(--serif);font-weight:500;letter-spacing:2px;font-size:29px;margin:0}.subtitle{color:var(--muted);font-size:12px;margin:10px 0 0}.primary{background:var(--green);color:#fff;border-radius:7px;padding:12px 18px;display:inline-flex;justify-content:center;align-items:center;gap:8px;font-size:12px;white-space:nowrap}.primary:hover{background:#264633}.secondary{border:1px solid var(--line);border-radius:7px;padding:10px 14px;background:#fff;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:12px}.danger{color:var(--red)}.season-panel{display:flex;align-items:center;justify-content:space-between;padding:18px 23px;border:1px solid #dfe6d6;border-radius:10px;background:linear-gradient(100deg,#edf2e7,#f4f6ee);gap:16px}.season-caption{display:flex;gap:12px;align-items:center}.season-caption>svg{color:#7f9169;width:28px;height:28px}.season-caption strong{display:block;font-size:12px;font-weight:500}.season-caption small{display:block;font-size:10px;color:#8b947f;margin-top:5px}.segments{display:flex;padding:4px;background:#e5eadd;border-radius:7px;gap:3px}.segments button{font-size:11px;padding:8px 17px;border-radius:5px;display:flex;gap:7px;align-items:center;justify-content:center;color:#7f8977;white-space:nowrap}.segments svg{width:15px;height:15px}.segments button.active{background:white;color:var(--green);box-shadow:0 1px 5px #283b2b0b}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin:23px 0 29px}.stat{background:#fff;border:1px solid var(--line);border-radius:9px;padding:19px 21px;display:flex;align-items:center;justify-content:space-between}.stat-label{font-size:11px;color:var(--muted);margin-bottom:8px}.stat-number{font-family:Georgia,serif;font-size:29px;line-height:1}.stat-number small{font-family:Meiryo,sans-serif;font-size:10px;margin-left:7px;color:#92988c}.stat-icon{width:40px;height:40px;background:#f3f5ed;color:#8f9e7d;border-radius:50%;display:grid;place-items:center}.stat.attention .stat-icon{color:var(--orange);background:#faf4e8}.toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:0 0 17px;flex-wrap:wrap}.filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.filter{border:1px solid var(--line);border-radius:6px;background:white;font-size:11px;padding:9px 11px;color:#6f796b;max-width:145px}.search{display:flex;align-items:center;gap:7px;background:white;border:1px solid var(--line);border-radius:6px;padding:8px 11px}.search svg{width:16px;height:16px;color:#9aa291}.search input{border:0;background:none;outline:none;width:140px;font-size:11px}.view-toggle{display:flex;border:1px solid var(--line);border-radius:6px;padding:3px;background:white}.view-toggle button{display:flex;padding:6px 8px;border-radius:4px;color:#a0a697}.view-toggle button.active{background:var(--sage);color:var(--green)}.list-caption{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#939b8c;margin:15px 2px 10px}.plant-list{display:flex;flex-direction:column;gap:12px}.plant-row{background:white;border:1px solid var(--line);border-radius:10px;display:flex;align-items:center;gap:18px;padding:15px 19px;transition:box-shadow .2s}.plant-row:hover{box-shadow:0 4px 15px #2b41230a}.plant-select{accent-color:var(--green);width:15px;height:15px;margin:0}.plant-photo{width:93px;height:101px;border-radius:7px;object-fit:cover;flex-shrink:0;cursor:pointer;background:#e9ece0}.plant-info{min-width:0;flex:1;cursor:pointer}.plant-meta{display:flex;gap:6px;align-items:center;font-size:9px;color:#959d8d;margin-bottom:8px;flex-wrap:wrap}.tag{border-radius:3px;background:#f0f3e9;color:#7a8b67;padding:3px 6px;font-size:9px}.plant-info h3{font-family:var(--serif);font-size:18px;font-weight:500;margin:0;overflow-wrap:anywhere}.nickname{color:#8b927f;font-size:10px;margin-top:5px}.care-line{display:flex;align-items:center;gap:7px;font-size:11px;margin-top:11px;color:#818a77;flex-wrap:wrap}.care-line svg{width:14px;height:14px}.due{color:var(--orange)}.overdue{color:var(--red)}.care-extra{font-size:9px;color:#9ba18f;margin-top:6px}.plant-days{text-align:right;margin:0 6px 0 12px;min-width:60px}.plant-days strong{font-family:Georgia,serif;font-size:25px;font-weight:400}.plant-days small{font-size:9px;color:#919a86}.plant-days span{display:block;font-size:9px;color:#a0a593;margin-top:4px}.row-actions{display:flex;gap:8px}.water-btn{width:45px;height:45px;background:#edf3e8;border-radius:50%;display:grid;place-items:center;color:var(--green)}.water-btn:hover{background:#dde9d5}.water-btn svg{width:25px;height:25px}.more-btn{border:0;background:none;color:#a0a795}.plant-list.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:18px}.grid .plant-row{display:flex;flex-wrap:wrap;padding:12px;gap:9px;position:relative}.grid .plant-photo{width:100%;height:200px}.grid .plant-select{position:absolute;top:23px;left:22px;z-index:1}.grid .plant-info{width:100%;flex:auto;padding:5px}.grid .plant-info h3{font-size:16px}.grid .plant-days{margin:0 5px;flex:1;text-align:left}.grid .plant-days strong{font-size:20px}.grid .plant-days span{display:inline;margin-left:5px}.empty{padding:57px 20px;text-align:center;background:white;border:1px dashed #d9e0d1;border-radius:10px}.empty svg{width:40px;height:40px;color:#a3b195}.empty h2{font-family:var(--serif);font-size:20px;font-weight:500;margin:16px 0 10px}.empty p{font-size:12px;color:var(--muted);line-height:1.9;margin-bottom:22px}.bulkbar{background:#eaf0e4;border:1px solid #d6e1cd;padding:12px 16px;border-radius:8px;display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap;font-size:12px}.footnote{font-size:10px;color:#969e8d;text-align:center;margin:26px 0;line-height:1.8}.panel{background:white;border:1px solid var(--line);border-radius:10px;padding:24px;margin-bottom:18px}.panel h2{font-family:var(--serif);font-weight:500;font-size:19px;margin:0 0 18px}.panel p{font-size:12px;line-height:1.9;color:var(--muted)}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.settings-grid .panel{margin:0}.item-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.item-line:last-child{border:0}.item-line strong{font-size:13px;font-weight:500}.item-line small{display:block;font-size:11px;color:var(--muted);margin-top:6px}.item-line .actions{display:flex;gap:8px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.full{grid-column:1/-1}label.field{display:flex;flex-direction:column;gap:7px;font-size:11px;color:#717c67}.field input,.field select,.field textarea{width:100%;padding:11px 12px;border:1px solid #dfe5d8;background:#fdfefa;border-radius:6px;color:var(--ink);outline:none;font-size:13px}.field input:focus,.field select:focus,.field textarea:focus{border-color:#829a70;box-shadow:0 0 0 2px #eaf0e4}.field textarea{min-height:86px;resize:vertical}.hint{font-size:10px;color:#929b87;line-height:1.7}.form-section{margin:22px 0 14px;border-top:1px solid var(--line);padding-top:18px;font-size:12px;font-weight:600}.intervals{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.check-label{display:flex;align-items:center;gap:8px;font-size:12px;margin:10px 0}.check-label input{accent-color:var(--green)}dialog{padding:0;border:1px solid #dce3d4;border-radius:13px;max-width:600px;width:calc(100% - 28px);max-height:90vh;color:var(--ink);box-shadow:0 20px 100px #17291933}dialog::backdrop{background:#24382c66;backdrop-filter:blur(3px)}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:22px 26px 17px;border-bottom:1px solid var(--line);position:sticky;top:0;background:white;z-index:2}.dialog-header h2{font-family:var(--serif);font-weight:500;font-size:21px;margin:0}.dialog-body{padding:23px 26px}.dialog-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.close{font-size:23px;color:#929b87}.detail-hero{display:flex;gap:25px;align-items:center}.detail-hero img{width:150px;height:165px;object-fit:cover;border-radius:9px}.detail-hero h2{font-family:var(--serif);font-size:26px;font-weight:500;margin:8px 0}.detail-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:15px}.detail-data{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-top:25px;padding-top:20px;border-top:1px solid var(--line)}.detail-data small{font-size:10px;color:var(--muted);display:block;margin-bottom:7px}.detail-data strong{font-size:14px;font-weight:500}.detail-actions{display:flex;gap:9px;margin:20px 0;flex-wrap:wrap}.timeline-item{display:flex;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}.timeline-marker{width:32px;height:32px;display:grid;place-items:center;background:var(--sage);border-radius:50%;flex-shrink:0}.timeline-marker svg{width:16px;height:16px}.timeline-content{flex:1;min-width:0}.timeline-content small{font-size:10px;color:var(--muted)}.timeline-content h3{font-size:12px;font-weight:500;margin:6px 0}.timeline-content p{font-size:12px;margin:6px 0;white-space:pre-wrap;overflow-wrap:anywhere}.timeline-content img{width:120px;height:120px;object-fit:cover;border-radius:6px;margin:9px 6px 0 0;cursor:pointer}.timeline-item .icon-btn{width:29px;height:29px}.timeline-item .icon-btn svg{width:14px;height:14px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#263f32;color:white;box-shadow:0 5px 30px #25392933;border-radius:9px;max-width:90vw;padding:15px 21px;font-size:12px;z-index:20;display:none;align-items:center;gap:18px}#toast.show{display:flex}#toast button{color:#d9e7b8;white-space:nowrap;text-decoration:underline}.mobile-brand{display:none}.back{font-size:12px;color:#8a947d;display:flex;align-items:center;gap:5px}.back svg{width:15px}.loading{text-align:center;margin-top:40vh;color:var(--muted)}.banner{padding:13px 17px;border-radius:7px;background:#faf3e8;color:#947b4c;font-size:11px;line-height:1.8;margin-bottom:20px}.table{width:100%;border-collapse:collapse;font-size:12px}.table th,.table td{text-align:left;padding:13px 9px;border-bottom:1px solid var(--line)}.table th{font-size:10px;color:var(--muted);font-weight:400}.table input{width:70px;padding:7px;border:1px solid var(--line);border-radius:5px}.badge{font-size:10px;color:var(--muted);background:var(--sage);padding:5px 8px;border-radius:4px}.photo-preview{width:85px;height:85px;border-radius:7px;object-fit:cover}.currency{font-family:Georgia,serif;font-size:27px}.control-row{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.note{font-size:11px;color:var(--muted);line-height:1.8}.file-label{cursor:pointer;border:1px dashed #bdccb1;border-radius:7px;padding:18px;display:flex;gap:10px;align-items:center;color:#7b8d6c;font-size:12px}.file-label input{max-width:100%;font-size:11px}.summary-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.summary-cards .panel{margin:0}.summary-cards small{display:block;font-size:11px;color:var(--muted);margin-bottom:15px}.summary-cards p{margin:8px 0 0;font-size:10px}.hidden{display:none!important}
@media(min-width:1400px){.workspace{padding-left:65px;padding-right:65px}}@media(max-width:1100px){.workspace{padding:0 25px 40px}.sidebar{width:205px;padding:30px 16px}.shell{grid-template-columns:205px 1fr}.date{display:none}.plant-row{gap:12px;padding:13px}.plant-days{margin-left:0}.plant-photo{width:78px;height:91px}.plant-info h3{font-size:16px}.search input{width:105px}.segments button{padding:8px 12px}}@media(max-width:760px){.shell{display:block}.sidebar{inset:auto 0 0 0;width:100%;height:67px;flex-direction:row;padding:0 8px;border:0;border-top:1px solid var(--line);background:#fffffff5;backdrop-filter:blur(10px)}.brand,.side-label,.side-bottom{display:none}.nav{flex-direction:row;justify-content:space-around;width:100%;gap:0}.nav button{flex-direction:column;gap:5px;padding:10px 5px 7px;font-size:9px;flex:1;border-radius:0}.nav button.active{background:none}.nav button.active svg{color:var(--green);stroke-width:2}.nav svg{width:21px;height:21px}.workspace{padding:0 18px 90px}.topbar{height:69px}.place-switch select{max-width:130px;font-size:12px}.mobile-brand{display:flex;align-items:center;gap:6px;font-family:var(--serif);font-size:16px;letter-spacing:1px}.mobile-brand img{width:32px;height:32px;border-radius:8px}.top-actions{gap:8px}.top-actions .icon-btn{width:31px;height:31px}.heading{margin:27px 0 22px}.heading h1{font-size:25px}.eyebrow{font-size:8px}.subtitle{font-size:10px}.primary{padding:11px 13px;font-size:11px}.primary svg{width:17px;height:17px}.season-panel{padding:14px;gap:8px;flex-wrap:wrap}.season-caption{gap:8px}.season-caption strong{font-size:11px}.season-caption small{font-size:9px}.season-caption>svg{width:23px}.segments{padding:3px}.segments button{padding:7px 11px;font-size:10px}.segments svg{width:13px}.stats{gap:8px;margin:16px 0 22px}.stat{padding:13px 12px}.stat-icon{display:none}.stat-label{font-size:9px}.stat-number{font-size:25px}.stat-number small{font-size:9px}.filters{gap:6px}.filter{font-size:10px;padding:9px 6px;max-width:108px}.search{padding:8px}.search input{width:95px;font-size:10px}.toolbar{gap:8px}.plant-row{gap:11px;padding:12px 10px}.plant-photo{width:72px;height:87px}.plant-info h3{font-family:inherit;font-size:13px;line-height:1.6}.plant-meta{font-size:8px;margin-bottom:4px;gap:4px}.tag{font-size:8px;padding:2px 4px}.care-line{font-size:10px;margin-top:7px;gap:4px}.nickname{font-size:9px}.care-extra{font-size:8px}.plant-days{display:none}.water-btn{width:36px;height:36px}.water-btn svg{width:22px;height:22px}.row-actions{gap:1px;flex-direction:column}.more-btn{width:36px;height:26px}.plant-select{width:13px;height:13px}.plant-list.grid{grid-template-columns:repeat(2,1fr);gap:10px}.grid .plant-row{padding:9px;gap:5px}.grid .plant-photo{height:160px}.grid .plant-info h3{font-size:12px}.grid .row-actions{flex-direction:row;margin-left:auto}.grid .plant-select{top:18px;left:17px}.grid .plant-days{display:block;min-width:0}.grid .plant-days strong{font-size:18px}.settings-grid,.summary-cards{grid-template-columns:1fr}.panel{padding:19px}.detail-hero{gap:17px}.detail-hero img{width:105px;height:125px}.detail-hero h2{font-size:21px}.detail-data{grid-template-columns:repeat(2,1fr)}.dialog-header{padding:18px 20px}.dialog-body{padding:20px}.form-grid{gap:13px}.field input,.field select{font-size:14px}.intervals{gap:8px}#toast{bottom:82px;padding:13px 16px;width:max-content;max-width:94vw}.summary-cards .panel{display:flex;justify-content:space-between;align-items:center;gap:10px}.summary-cards small{margin:0}.summary-cards p{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Compact collection layout: counters, season control, then plants. */
.add-plant-btn{background:var(--green);border-color:var(--green);color:white;width:40px;height:40px;flex-shrink:0}
.add-plant-btn:hover{background:#264633}
.collection-stats{margin:23px 0 10px}
.season-strip{display:flex;align-items:center;min-height:38px;margin:0 0 20px}
.season-strip .segments{background:#eaf0e4}
.place-seasons{display:flex;gap:7px;flex-wrap:wrap}
.place-season{display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:6px;padding:6px 9px;font-size:11px;background:#fff}
.plant-info h3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:760px){
 .topbar{height:64px;gap:8px}
 .mobile-brand{font-size:15px;gap:6px;flex-shrink:0;white-space:nowrap}
 .mobile-brand img{width:28px;height:28px}
 .place-switch{flex:1;min-width:0;gap:4px;justify-content:flex-end}
 .place-switch>svg{width:17px;height:17px}
 .place-switch select{min-width:0;max-width:120px;width:100%;font-size:11px}
 .top-actions{gap:6px;flex-shrink:0}
 .top-actions .add-plant-btn{width:36px;height:36px}
 .collection-stats{margin:15px 0 9px}
 .collection-stats .stat{padding:11px 10px}
 .collection-stats .stat-label{font-size:9px;margin-bottom:7px;white-space:nowrap}
 .collection-stats .stat-number{font-size:24px}
 .season-strip{margin:0 0 16px;min-height:34px}
 .season-strip .segments button{padding:7px 13px}
 .season-strip .place-season{font-size:10px;padding:5px 8px}
 .plant-info h3{font-size:13px;line-height:1.7}
 .sidebar{height:calc(67px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom)}
 .workspace{padding-bottom:calc(90px + env(safe-area-inset-bottom))}
}
@media(max-width:370px){
 .workspace{padding-left:12px;padding-right:12px}
 .mobile-brand{font-size:14px;gap:4px}
 .mobile-brand img{width:25px;height:25px}
 .place-switch>svg{display:none}
 .top-actions{gap:4px}
 .top-actions .icon-btn{width:32px;height:34px}
 .plant-row{gap:8px}
 .plant-photo{width:64px;height:81px}
}
@media(max-width:760px){
 .toolbar .filters{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr);gap:6px;width:100%}
 .toolbar .search{min-width:0;padding:8px 7px;gap:4px}
 .toolbar .search input{width:100%;min-width:0}
 .toolbar .filter{width:100%;max-width:none;min-width:0;padding:9px 5px}
 .field input,.field select,.field textarea{font-size:16px}
 .search input:focus{font-size:16px}
}

/* Keep seasonal controls directly below the collection filters. */
.toolbar{display:block}
.collection-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:9px}
.collection-controls .season-strip{margin:0;min-height:34px;min-width:0}
.collection-controls .view-toggle{margin-left:auto;flex-shrink:0}
.collection-stats{margin-bottom:18px}
@media(max-width:760px){.collection-stats{margin-bottom:16px}.collection-controls .season-strip{margin:0}}

.search-button.active{background:var(--sage);border-color:#9bad89;color:var(--green)}
@media(max-width:760px){
 .toolbar .filters{grid-template-columns:repeat(2,minmax(0,1fr))}
 .toolbar .filters:has(#archive-filter){grid-template-columns:repeat(3,minmax(0,1fr))}
 .topbar{gap:6px}
 .top-actions{gap:4px}
 .top-actions .search-button{width:32px;height:34px}
 .place-switch select{max-width:105px}
}

/* Collection controls: place on the left, seasons in the center. */
.top-actions{margin-left:auto}
.collection-controls.with-place{display:grid;grid-template-columns:minmax(90px,1fr) auto minmax(82px,1fr);gap:8px}
.collection-controls.with-place>.place-switch{justify-self:start;max-width:180px;min-width:0}
.collection-controls.with-place>.season-strip{justify-self:center}
.collection-controls.with-place>.view-toggle{justify-self:end;margin-left:0}
@media(max-width:760px){
 .collection-controls.with-place{grid-template-columns:90px minmax(0,1fr) auto;gap:5px}
 .collection-controls.with-place>.place-switch{width:90px;max-width:90px;justify-content:flex-start}
 .collection-controls.with-place>.place-switch>svg{display:none}
 .collection-controls.with-place>.place-switch select{width:100%;max-width:none;font-size:10px;font-weight:500;margin:0;padding:7px 0}
 .collection-controls.with-place .segments{gap:1px;padding:3px}
 .collection-controls.with-place .segments button{padding:7px 8px;gap:4px}
 .collection-controls.with-place .segments svg{width:12px;height:12px}
 .collection-controls.with-place .view-toggle button{padding:6px}
}
@media(max-width:350px){
 .collection-controls.with-place{grid-template-columns:76px minmax(0,1fr) auto;gap:3px}
 .collection-controls.with-place>.place-switch{width:76px;max-width:76px}
 .collection-controls.with-place .segments button{padding:7px 6px;gap:3px}
 .collection-controls.with-place .segments svg{display:none}
}

/* Archive location filter shares the lower controls row. */
.collection-controls.archive-controls>.place-switch{justify-content:flex-start;flex:0 1 auto;min-width:0}
@media(max-width:760px){.collection-controls.archive-controls>.place-switch select{width:auto;max-width:180px;font-size:10px;font-weight:500;padding:7px 0}.collection-controls.archive-controls>.place-switch>svg{display:none}}

#plant-form div.field{display:flex;flex-direction:column;gap:7px;font-size:11px;color:#717c67;min-width:0}.genus-actions{display:flex;gap:6px;flex-wrap:wrap}.genus-actions .secondary{padding:8px 10px;font-size:11px}#plant-genus-editor{padding:10px;border:1px solid var(--line);border-radius:6px;background:var(--paper)}#plant-genus-editor[hidden]{display:none}

/* Match location and season controls to the outlined collection filters. */
.collection-controls>.place-switch{border:1px solid var(--line);border-radius:6px;background:var(--white);padding:0 8px;min-height:38px}
.collection-controls>.place-switch select{padding:9px 0;font-size:11px;font-weight:400;color:#6f796b}
.collection-controls .season-strip .segments{border:1px solid var(--line);border-radius:6px;background:var(--white);box-shadow:none}
.collection-controls .season-strip .segments button.active{background:var(--sage);box-shadow:none}
@media(max-width:760px){
 .collection-controls.with-place{grid-template-columns:minmax(0,1fr) auto auto;gap:6px}
 .collection-controls.with-place>.place-switch{width:100%;max-width:none;padding:0 5px}
 .collection-controls.with-place>.place-switch select{padding:9px 0;font-weight:400}
 .collection-controls.archive-controls>.place-switch{padding:0 5px}
 .collection-controls.archive-controls>.place-switch select{padding:9px 0}
 .collection-controls .season-strip .segments button{padding:7px 6px;gap:3px}
}
@media(max-width:350px){.collection-controls.with-place>.place-switch{width:100%;max-width:none}.collection-controls.with-place .segments button{padding:7px 5px}}

/* Let image cards shrink within their grid tracks, including long names. */
.workspace,#content,.plant-list.grid,.grid .plant-row{min-width:0}
.grid .plant-row{max-width:100%;overflow:hidden}
.grid .plant-photo{min-width:0;max-width:100%}
.grid .plant-info{min-width:0;max-width:100%}
.grid .care-line,.grid .care-extra{overflow-wrap:anywhere}
.grid .plant-days{min-width:0;max-width:100%}
@media(max-width:760px){
 .plant-list.grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .grid .plant-photo{height:auto;aspect-ratio:1;object-fit:cover}
 .grid .plant-info{flex-basis:100%;padding:5px 0}
 .grid .plant-info h3{max-width:100%}
 .grid .care-line{align-items:flex-start}
 .grid .plant-days{margin:0;flex:1 1 60px}
 .grid .plant-days span{display:block;margin-left:0}
 .grid .row-actions{flex:0 0 auto;gap:0}
}

/* Compact phone list rows with visible growing days and purchase price. */
.list-facts{display:none}
@media(max-width:760px){
 .plant-list:not(.grid){gap:8px}
 .plant-list:not(.grid) .plant-row{padding:8px;gap:8px}
 .plant-list:not(.grid) .plant-photo{width:56px;height:68px}
 .plant-list:not(.grid) .plant-info{min-width:0}
 .plant-list:not(.grid) .plant-meta{margin-bottom:2px}
 .plant-list:not(.grid) .plant-info h3{font-size:12px;line-height:1.45}
 .plant-list:not(.grid) .nickname{margin-top:2px;font-size:9px}
 .plant-list:not(.grid) .list-facts{display:flex;gap:9px;align-items:center;font-size:10px;color:var(--muted);margin-top:3px;line-height:1.4}
 .plant-list:not(.grid) .list-facts>span:first-child{color:var(--ink)}
 .plant-list:not(.grid) .care-line{margin-top:3px;font-size:9px;gap:3px;line-height:1.5}
 .plant-list:not(.grid) .care-line>span:last-child{font-size:8px!important}
 .plant-list:not(.grid) .care-extra{margin-top:2px}
 .plant-list:not(.grid) .row-actions{gap:0}
 .plant-list:not(.grid) .plant-days{display:none}
}

/* Growth type colors and one compact metadata row. */
.tag.growth-summer{background:#fff0dc;color:#a45c13}
.tag.growth-mild{background:#eaf2e4;color:#426b3b}
.tag.growth-winter{background:#e4f4fc;color:#327590}
@media(max-width:760px){
 .plant-list:not(.grid) .plant-meta{gap:6px;align-items:center}
 .plant-list:not(.grid) .plant-meta .list-facts{display:flex;margin:0;gap:7px;font-size:9px;line-height:1.4}
}

/* Collection order: location and season, counters, then filters and view. */
.collection-controls.location-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin:18px 0 0}
.collection-controls.location-row>.place-switch{width:100%;max-width:none;justify-content:flex-start}
.collection-controls.location-row>.place-switch select{width:100%;max-width:none}
.collection-controls.location-row>.season-strip{justify-self:end}
.toolbar .filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:8px}
.toolbar .filters:has(#archive-filter){grid-template-columns:repeat(3,minmax(0,1fr))}
.toolbar .filters>.filter{width:100%;max-width:none;min-width:0}
@media(max-width:760px){
 .mobile-brand{font-size:20px;gap:8px;letter-spacing:1px}
 .mobile-brand img{width:36px;height:36px;border-radius:9px}
 .topbar{height:72px}
 .top-actions .icon-btn{width:35px;height:35px}
 .top-actions .add-plant-btn{width:38px;height:38px}
 .top-actions svg{width:23px;height:23px}
 .collection-controls.location-row{margin-top:14px;gap:8px}
 .collection-controls.location-row>.place-switch{padding:0 7px}
 .collection-controls.location-row>.place-switch>svg{display:none}
 .collection-controls.location-row>.place-switch select{font-size:11px}
 .collection-controls.location-row .segments button{padding:8px 10px;gap:4px;font-size:11px}
 .collection-stats{margin-top:12px;margin-bottom:12px}
 .toolbar .filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:6px;align-items:stretch}
 .toolbar .filters>.view-toggle{align-self:center}
 .toolbar .filters>.view-toggle button{padding:6px}
}
@media(max-width:350px){.mobile-brand{font-size:18px;gap:5px}.mobile-brand img{width:31px;height:31px}.collection-controls.location-row .segments button{padding:8px 7px}}

/* Shared outlined banner actions. */
.top-actions .icon-btn,.top-actions .add-plant-btn{background:var(--white);border:1px solid var(--line);color:var(--ink);width:37px;height:37px;border-radius:8px;flex-shrink:0}
.top-actions .icon-btn:hover{background:var(--sage)}
.season-menu{justify-content:space-between;border:1px solid var(--line);background:var(--paper)}
.season-menu button{flex:1}
@media(max-width:760px){
 .topbar{gap:8px}
 .top-actions{gap:4px}
 .top-actions .icon-btn,.top-actions .add-plant-btn{width:32px;height:34px}
 .top-actions svg{width:21px;height:21px}
 .mobile-brand{font-size:19px;gap:6px;letter-spacing:0}
 .mobile-brand img{width:33px;height:33px}
 .collection-stats{margin-top:14px}
}
@media(max-width:350px){.mobile-brand{font-size:17px;gap:4px}.mobile-brand img{width:28px;height:28px}.top-actions{gap:3px}.top-actions .icon-btn,.top-actions .add-plant-btn{width:29px;height:32px}}

.toolbar .filters{grid-template-columns:repeat(3,minmax(0,1fr)) auto}
.toolbar .filters:has(#archive-filter){grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:760px){.toolbar .filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,.8fr) auto;gap:4px}.toolbar .filter{font-size:10px;padding:9px 2px}.toolbar .filters>.view-toggle button{padding:6px 4px}.toolbar .view-toggle svg{width:18px;height:18px}.toolbar .filters:has(#archive-filter){grid-template-columns:repeat(2,minmax(0,1fr))}}

.sort-controls{display:flex;gap:5px;align-items:center;justify-content:flex-end}
.sort-controls .icon-btn{height:37px;width:32px}
.sort-menu-button{height:37px;padding:7px 9px;gap:5px}
.sort-menu-button svg{width:18px;height:18px}
.sort-menu-options{display:flex;flex-direction:column;gap:8px}
.sort-menu-options .secondary{justify-content:flex-start;min-height:44px;font-size:13px}
.sort-menu-options .secondary>svg:last-child{margin-left:auto}
.sort-menu-options .chosen{background:var(--sage);border-color:#9bad89}
.sort-menu-options .view-section{margin-top:10px;border-top:1px solid var(--line);padding-top:15px}
.toolbar .filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}
.toolbar .filters:has(#archive-filter){grid-template-columns:repeat(3,minmax(0,1fr)) auto}
@media(max-width:760px){.toolbar .filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:5px}.sort-controls{gap:4px}.sort-menu-button{font-size:10px;padding:7px 5px}.sort-controls .icon-btn{width:29px}.sort-menu-button svg{width:16px;height:16px}.toolbar .filters:has(#archive-filter){grid-template-columns:repeat(3,minmax(0,1fr))}.toolbar .filters:has(#archive-filter) .sort-controls{grid-column:1/-1}}

/* Separate care filters from sorting controls. */
.toolbar .filters>.sort-controls{margin-left:12px}
@media(max-width:760px){.toolbar .filters>.sort-controls{margin-left:8px}}

/* Compact filter widths, with sorting aligned at the right edge. */
.toolbar .filters{display:flex;gap:6px;flex-wrap:nowrap}
.toolbar .filters>#growth-filter{flex:0 1 112px;width:112px}
.toolbar .filters>#care-filter{flex:0 1 106px;width:106px}
.toolbar .filters>.sort-controls{margin-left:auto;padding-left:12px;flex-shrink:0}
.toolbar .filters>#archive-filter{flex:0 1 115px;width:115px}
@media(max-width:760px){.toolbar .filters>#growth-filter{flex-basis:100px;width:100px}.toolbar .filters>#care-filter{flex-basis:94px;width:94px}.toolbar .filters>.sort-controls{padding-left:8px}.toolbar .filters:has(#archive-filter){flex-wrap:wrap}}

.tab-spacing{height:20px}.supplies-heading{justify-content:space-between;margin-bottom:12px}.supplies-heading h2{font-family:var(--serif);font-size:20px;font-weight:500;margin:0}.supplies-settings>.panel{margin-bottom:0}
.calendar-panel{margin-top:18px}.calendar-heading{display:flex;align-items:center;gap:10px}.calendar-heading h1{font-family:var(--serif);font-size:23px;font-weight:500;margin:0 auto 0 0}.next-month svg{transform:rotate(180deg)}.calendar-scope{margin:10px 0 12px}.calendar-grid{background:white;border:1px solid var(--line);border-radius:9px;overflow:hidden}.calendar-weekdays,.calendar-dates{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays{text-align:center;background:var(--paper);font-size:11px;color:var(--muted);padding:10px 0}.calendar-weekdays>span:first-child{color:var(--red)}.calendar-weekdays>span:last-child{color:#438ba6}.calendar-date{min-width:0;min-height:100px;border-top:1px solid var(--line);border-right:1px solid var(--line);padding:7px;text-align:left;display:flex;flex-direction:column;gap:5px;background:white}.calendar-date:nth-child(7n){border-right:0}.calendar-date.outside{background:#fafbf7;color:#a0a795}.calendar-date.selected{background:var(--sage);box-shadow:inset 0 0 0 2px #829a70}.day-number{font-size:12px;width:24px;height:24px;display:grid;place-items:center}.calendar-date.today .day-number{background:var(--green);color:white;border-radius:50%}.calendar-chips{display:flex;flex-direction:column;gap:3px;min-width:0;width:100%}.calendar-chips>span{font-size:10px;background:#edf2e8;color:var(--green);border-radius:3px;padding:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-chips small{font-size:9px;color:var(--muted)}.calendar-records{margin-top:15px}.calendar-record{display:flex;gap:12px;width:100%;text-align:left;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line)}.calendar-record:last-child{border:0}.calendar-record>span{min-width:0;flex:1;overflow-wrap:anywhere}.calendar-record strong{font-size:12px;display:block;font-weight:500}.calendar-record span>span{font-size:11px;display:block;color:var(--green);margin-top:5px}.calendar-record small{font-size:10px;color:var(--muted);display:block;margin-top:5px;white-space:pre-wrap}.calendar-record>svg{width:18px;height:18px;color:var(--green)}
@media(max-width:760px){.calendar-heading{gap:7px}.calendar-heading h1{font-size:20px}.calendar-date{min-height:86px;padding:4px 2px;gap:3px}.day-number{font-size:11px;width:21px;height:21px}.calendar-chips>span{font-size:8px;padding:3px 1px}.calendar-chips small{font-size:8px}.calendar-records{padding:15px}.calendar-scope{font-size:9px}}

.settings-grid>.panel:first-child{grid-column:1/-1}

.supplies-settings .supplies-heading{margin-bottom:0;justify-content:space-between}.supplies-settings .supplies-heading h2{margin:0;font-size:19px}.supplies-list>.empty{padding:20px 0}.supplies-list>.empty>svg{display:none}.supplies-list>.empty h2{font-family:inherit;font-size:12px;margin:12px 0}.supplies-list>.empty p{margin-bottom:0}

/* Bring the banner divider closer to the logo and action buttons. */
.topbar{height:77px;padding-top:6px;align-items:center}
@media(max-width:760px){.topbar{height:60px;padding-top:7px}}

.counter-card{text-align:left;min-width:0;width:100%;font:inherit;color:inherit}
.counter-card>div{min-width:0;max-width:100%}
.counter-caret{font-family:sans-serif;margin-left:4px;color:var(--muted);font-size:10px}
.counter-money{font-size:24px;overflow-wrap:anywhere;line-height:1.2}
.counter-options{display:flex;flex-direction:column;gap:8px}
.counter-options>.secondary{justify-content:flex-start;text-align:left;min-height:54px}
.counter-options .chosen{background:var(--sage);border-color:#9bad89}
.counter-options strong{display:block;font-weight:500;font-size:12px}
.counter-options small{display:block;font-size:10px;color:var(--muted);margin-top:5px;line-height:1.5}
.counter-options>.secondary>svg:last-child{margin-left:auto}
@media(max-width:760px){.collection-stats .counter-card{padding:10px 8px}.collection-stats .counter-money{font-size:clamp(14px,4.5vw,19px)}.counter-card .stat-label{font-size:9px;letter-spacing:-.2px}.counter-caret{margin-left:2px;font-size:9px}}

/* Larger list typography and visible quick care actions. */
.postpone-btn{width:44px;height:44px;display:grid;place-items:center;background:var(--white);border:1px solid var(--line);border-radius:50%;color:var(--green);flex-shrink:0}
.postpone-btn:hover{background:var(--sage)}
.postpone-btn svg{width:23px;height:23px}
.plant-list:not(.grid) .plant-row{padding-top:17px;padding-bottom:17px}
.plant-list:not(.grid) .plant-info h3{font-size:19.8px}
.plant-list:not(.grid) .tag{font-size:9.9px}
.plant-list:not(.grid) .nickname{font-size:11px}
.plant-list:not(.grid) .care-line{font-size:12.1px}
.plant-list:not(.grid) .care-line>svg{width:15.4px;height:15.4px}
.plant-list:not(.grid) .care-extra{font-size:9.9px}
.plant-list:not(.grid) .water-btn svg{width:27.5px;height:27.5px}
.more-btn{display:grid;place-items:center;border:1px solid #ccd8c4;border-radius:7px;background:var(--sage);color:var(--green);min-width:30px;min-height:28px}
.more-btn svg{width:23px;height:23px;stroke-width:2.2}
.grid .postpone-btn{display:none}
@media(max-width:1100px) and (min-width:761px){.plant-list:not(.grid) .plant-info h3{font-size:17.6px}}
@media(max-width:760px){
 .plant-list:not(.grid) .plant-row{padding:10px 8px;gap:8px;min-height:96px}
 .plant-list:not(.grid) .plant-photo{width:60px;height:75px}
 .plant-list:not(.grid) .plant-info h3{font-size:13.2px;line-height:1.5}
 .plant-list:not(.grid) .tag{font-size:8.8px}
 .plant-list:not(.grid) .nickname{font-size:9.9px}
 .plant-list:not(.grid) .plant-meta .list-facts{font-size:9.9px;gap:6px}
 .plant-list:not(.grid) .plant-meta{gap:5px}
 .plant-list:not(.grid) .care-line{font-size:9.9px;line-height:1.5;margin-top:4px}
 .plant-list:not(.grid) .care-line>span:last-child{font-size:8.8px!important}
 .plant-list:not(.grid) .care-extra{font-size:8.8px}
 .plant-list:not(.grid) .row-actions{display:grid;grid-template-columns:repeat(2,37px);gap:5px 4px;flex-shrink:0;align-items:center}
 .plant-list:not(.grid) .postpone-btn,.plant-list:not(.grid) .water-btn{width:37px;height:39px}
 .plant-list:not(.grid) .postpone-btn svg{width:23px;height:23px}
 .plant-list:not(.grid) .water-btn svg{width:24.2px;height:24.2px}
 .plant-list:not(.grid) .more-btn{grid-column:1/-1;width:100%;height:27px;min-height:27px}
 .plant-list:not(.grid) .plant-select{width:14px;height:14px}
}

/* Expand multi-selection only when needed; no reserved column while closed. */
.selection-controls{display:inline-flex;align-items:center;gap:12px;flex-wrap:wrap}
.selection-toggle{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border:1px solid var(--line);border-radius:6px;background:var(--white);color:var(--green);font-size:11px;white-space:nowrap}
.selection-toggle svg{width:15px;height:15px}
.selection-toggle[aria-expanded="true"]{background:var(--sage);border-color:#ccd8c4}
.selection-controls label{display:inline-flex;align-items:center;gap:4px}
@media(max-width:760px){.selection-controls{gap:7px}.selection-toggle{font-size:10px;padding:5px 7px}.selection-toggle svg{width:14px;height:14px}.list-caption{gap:8px;flex-wrap:wrap}}

/* Stack quick care actions in their task order. */
.plant-list:not(.grid) .row-actions{display:flex;flex-direction:column;gap:4px}
.plant-list:not(.grid) .water-btn{order:0}
.plant-list:not(.grid) .postpone-btn{order:1;background:var(--sage);border-color:transparent}
.plant-list:not(.grid) .more-btn{order:2}
@media(max-width:760px){
 .plant-list:not(.grid) .row-actions{gap:3px}
 .plant-list:not(.grid) .postpone-btn,.plant-list:not(.grid) .water-btn{width:37px;height:37px}
 .plant-list:not(.grid) .more-btn{width:37px;height:27px;min-height:27px}
}

/* Compact the last action and improve readability of care details. */
.plant-list:not(.grid) .more-btn{height:20px;min-height:20px;padding:0}
.plant-list:not(.grid) .more-btn svg{height:18px;width:23px}
.plant-list:not(.grid) .care-line{font-size:13px}
.plant-list:not(.grid) .care-line>span:last-child{font-size:10px!important}
@media(max-width:760px){
 .plant-list:not(.grid) .plant-row{padding-top:8px;padding-bottom:8px}
 .plant-list:not(.grid) .more-btn{height:18px;min-height:18px}
 .plant-list:not(.grid) .care-line{font-size:10.8px;line-height:1.5}
 .plant-list:not(.grid) .care-line>span:last-child,.plant-list:not(.grid) .care-extra{font-size:9.9px!important}
}

/* Configurable care shortcuts share one compact visual style. */
.quick-care-btn{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border-radius:50%;background:var(--sage);color:var(--green)}
.quick-care-btn svg{width:27px;height:27px}
.grid .row-actions{flex-wrap:wrap;gap:4px;max-width:100%}
.list-care-settings{border:0;padding:0;margin:0 0 22px;min-width:0}
.list-care-settings legend{font-size:13px;margin-bottom:7px}
.list-care-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.list-care-options .check-label{display:flex;align-items:center;gap:7px;margin:0;min-width:0}
.list-care-options svg{width:19px;height:19px}
@media(max-width:760px){.quick-care-btn{width:37px;height:37px}.quick-care-btn svg{width:24px;height:24px}.list-care-options{gap:12px 8px}.list-care-options .check-label{font-size:11px}.list-care-options svg{width:17px;height:17px}}

/* Use the list's existing height for more readable text on phones. */
@media(max-width:760px){
 .plant-list:not(.grid) .tag{font-size:10px}
 .plant-list:not(.grid) .plant-meta .list-facts{font-size:11.2px}
 .plant-list:not(.grid) .plant-meta{margin-bottom:4px}
 .plant-list:not(.grid) .plant-info h3{font-size:15px;line-height:1.6}
 .plant-list:not(.grid) .nickname{font-size:11.2px;line-height:1.5}
 .plant-list:not(.grid) .care-line{font-size:12px;line-height:1.55;margin-top:6px}
 .plant-list:not(.grid) .care-line>span:last-child,.plant-list:not(.grid) .care-extra{font-size:11px!important}
}

/* Keep editing within the plant information card. */
.detail-overview{margin-top:18px}
.detail-panel-actions{display:flex;justify-content:flex-end;margin-bottom:14px}
.detail-panel-actions .secondary{padding:8px 12px}

/* Keep the selected metric's symbol beside its label, including on phones. */
.counter-card .stat-label{display:flex;align-items:center;gap:5px;white-space:normal}
.counter-title-icon{display:inline-flex;align-items:center;color:var(--green);flex-shrink:0}
.counter-title-icon svg{width:17px;height:17px}
.counter-title-text{min-width:0;line-height:1.4}
.counter-card .counter-caret{margin-left:0;flex-shrink:0}
@media(max-width:760px){
 .counter-card .stat-label{gap:3px;font-size:clamp(8px,2.3vw,9px);letter-spacing:-.2px}
 .counter-title-icon svg{width:12px;height:12px}
 .counter-card .counter-caret{font-size:8px}
}

/* Image-card footer: paired facts above compact, vertically centered actions. */
.plant-days .growing-duration{display:inline;margin:0;color:inherit;font-size:inherit}
.plant-list.grid .plant-days{display:flex;flex:1 1 100%;align-items:center;gap:14px;margin:0 0 3px;text-align:left}
.plant-list.grid .plant-days .growing-duration{display:inline-flex;align-items:baseline;gap:3px;white-space:nowrap}
.plant-list.grid .plant-days .plant-price{display:inline;margin:0;font-size:11px;line-height:1.4}
.plant-list.grid .row-actions{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:5px;margin-left:auto}
.plant-list.grid .quick-care-btn{width:30px;height:30px}
.plant-list.grid .quick-care-btn svg{width:19px;height:19px}
.plant-list.grid .more-btn{display:grid;place-items:center;min-width:28px;width:28px;min-height:24px;height:24px;padding:0}
.plant-list.grid .more-btn svg{width:20px;height:20px}

/* Native date picker with a consistent Japanese visible value. */
.dialog-body .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.dialog-body .field{min-width:0}
.dialog-body .field input:not([type="checkbox"]),.dialog-body .field select{min-width:0;max-width:100%;height:48px;margin:0;box-sizing:border-box}
/* The wrapper owns the visible border; native iOS date sizing stays out of layout. */
.record-date-control{display:block;position:relative;isolation:isolate;overflow:hidden;box-sizing:border-box;min-width:0;max-width:100%;width:100%;height:48px;min-height:48px;flex:0 0 48px;border:1px solid #dfe5d8;background:#fdfefa;border-radius:6px}
.dialog-body .field .record-date-control input[type="date"]{position:absolute;inset:0;display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;height:100%;min-height:0;max-height:100%;padding:0;margin:0;border:0;border-radius:0;opacity:0;z-index:2;-webkit-appearance:none;appearance:none;font-size:16px;cursor:pointer}
.record-date-control:focus-within{border-color:#829a70;box-shadow:0 0 0 2px #eaf0e4}
.record-date-display{position:absolute;inset:0;display:flex;align-items:center;padding:0 10px;pointer-events:none;color:var(--ink);font-size:14px;white-space:nowrap;overflow:hidden}

.search-results-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 14px;padding:12px;border:1px solid var(--line);border-radius:9px;background:var(--white)}
.search-results-bar>span{font-size:12px;overflow-wrap:anywhere;min-width:0}
.search-results-bar .secondary{flex-shrink:0}
@media(max-width:760px){.search-results-bar{gap:9px;padding:10px}.search-results-bar>span{font-size:11px}.search-results-bar .secondary{font-size:11px;padding:8px}}

.plant-photo-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:12px;margin-top:18px}
.gallery-photo{padding:0;text-align:left;min-width:0}
.gallery-photo img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:7px;display:block}
.gallery-photo span{display:block;margin-top:5px;color:var(--muted);font-size:10px}

/* Five banner actions stay on one line on phones. */
@media(max-width:420px){
 .topbar{gap:5px}
 .top-actions{gap:3px}
 .top-actions .icon-btn,.top-actions .add-plant-btn{width:30px;height:34px}
 .mobile-brand{font-size:18px;gap:5px;white-space:nowrap}
 .mobile-brand img{width:31px;height:31px}
}
@media(max-width:360px){
 .top-actions{gap:2px}
 .top-actions .icon-btn,.top-actions .add-plant-btn{width:27px;height:32px}
 .mobile-brand{font-size:16px;gap:4px}
 .mobile-brand img{width:27px;height:27px}
}
#quick-care-products-form .field>svg{width:19px;height:19px;vertical-align:middle}

/* Compact calendar: one icon per recorded care type. */
.calendar-date{min-height:82px;gap:5px}.calendar-icons{display:flex;flex-wrap:wrap;gap:4px;align-content:flex-start;width:100%}.calendar-icons>span{display:inline-flex;align-items:center;justify-content:center;width:23px;height:23px;border-radius:5px;background:var(--sage);color:var(--green)}.calendar-icons svg{width:16px;height:16px}.calendar-date.selected .calendar-icons>span{background:#fff}.calendar-records h2{font-size:18px}
@media(max-width:760px){.calendar-date{min-height:72px;padding:5px 3px}.calendar-icons{gap:3px}.calendar-icons>span{width:17px;height:19px;background:transparent}.calendar-icons svg{width:15px;height:15px}.calendar-records h2{font-size:16px}}

.product-care-schedule{gap:12px}.product-care-schedule>.control-row{min-width:0;flex:1;flex-wrap:nowrap}.product-care-schedule strong{overflow-wrap:anywhere}.product-care-schedule svg{color:var(--green)}.care-countdown{white-space:nowrap;font-size:14px;flex-shrink:0}
