/* Scoped to Basics and photo tagging; existing care, upload and inventory components remain intact. */
.al-basicsRows{display:grid;gap:12px;margin-block:24px}
html body .al-basicsRow{display:grid;grid-template-columns:24px 1fr 24px;gap:16px;align-items:center;text-align:start;width:100%;min-height:88px;padding:20px;background:#fff;border:1px solid #dbe5e1;border-radius:14px;color:#163c30;box-shadow:none}
.al-basicsRow strong,.al-basicsRow small{display:block}.al-basicsRow small{margin-top:6px;color:#536b63;font-size:.875rem;font-weight:400}
.al-basicsWaterVolume{padding:16px;background:#f0f7f3;border-radius:12px;margin-block:16px}
.al-photoTagsHeroActions{position:absolute;inset:auto 12px 12px 12px;display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;z-index:2}
html body .al-photoTagsHeroActions>.al-aquariumProfileCard__heroAction,html body .al-photoTagsHeroActions>.al-photoTagsHeroAction{position:static}
.al-photoTags,.al-photoTagsPublic{--al-btn-shadow:none;--al-btn-transform:none;--tag-ink:var(--al-color-text-ink);--tag-muted:var(--al-color-text-muted);--tag-border:var(--al-color-border-default);--tag-surface:var(--al-color-surface-card);--tag-hover:var(--al-color-surface-subtle);--tag-accent:var(--al-color-moss)}
html body dialog.al-photoTags{padding:0;border:1px solid #dbe5e1;border-radius:18px;width:min(1120px,calc(100vw - 48px));max-width:none;height:min(880px,calc(100dvh - 48px));max-height:calc(100dvh - 48px);color:#173c30;background:white;overflow:hidden}
dialog.al-photoTags[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.al-photoTags::backdrop{background:#112b2180}.al-photoTags__head,.al-photoTags__foot{display:flex;align-items:center;gap:12px;padding:16px 24px;background:white}
.al-photoTags button,.al-photoTags input{touch-action:manipulation}
.al-photoTags__head{justify-content:space-between;border-bottom:1px solid #dbe5e1}.al-photoTags__head h2{font-size:1.25rem;margin:0}
.al-photoTags__body{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,32%);grid-template-rows:minmax(0,1fr);gap:16px;overflow:hidden;padding:16px;overscroll-behavior:contain;min-height:0}
.al-photoTags__foot{border-top:1px solid #dbe5e1;padding-bottom:max(16px,env(safe-area-inset-bottom));justify-content:flex-end;flex-wrap:wrap}.al-photoTags__status{flex:1 1 220px;font-size:.875rem;margin:0}.al-photoTags__status:empty{display:none}.al-photoTags__status button{margin-inline-start:8px}
.al-photoTags__canvas{display:grid;grid-template-rows:minmax(180px,1fr) auto;min-width:0;min-height:0}.al-photoTags__hint{font-size:.875rem;margin:10px 0 0;color:#536b63}
.al-photoTags__stage{position:relative;height:100%;min-height:180px;background:#10251e;overflow:hidden;border-radius:12px;cursor:crosshair}
.al-photoTags__stage>img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:50% 50%;touch-action:manipulation}
.al-photoTags__points{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.al-photoTags__points[hidden],.al-photoTags__picker[hidden],.al-photoTags__preview[hidden],.al-photoTags__chip[hidden],.al-photoTags__locate[hidden],.al-photoTags [hidden]{display:none!important}
html body .al-photoTags__dot{position:absolute;pointer-events:auto;touch-action:none;width:44px;height:44px;min-width:44px;min-height:44px;max-width:44px;max-height:44px;padding:0;border:0;border-radius:50%;background:transparent;box-shadow:none;outline:0;transform:translate(-50%,-50%);cursor:pointer;transition:none}
html body .al-photoTags__dot:hover,html body .al-photoTags__dot:active,html body .al-photoTags__dot:focus{background:transparent;box-shadow:none;transform:translate(-50%,-50%)}
html body .al-photoTags__dot::after{content:'';position:absolute;inset:14px;border:1.5px solid #fff;border-radius:50%;background:#ffffff08;box-shadow:0 0 0 1px #10251e60;pointer-events:none}
html body .al-photoTags__dot.is-selected::after{inset:13px;background:#ffffff60;border-width:2px}
html body .al-photoTags__dot:focus-visible::after{outline:2px solid white;outline-offset:4px}
html body .al-photoTags__dot.is-pending{pointer-events:none}.al-photoTags__dot.is-pending::after{border-style:dashed}
.al-photoTags__inspector{align-self:start;display:grid;gap:6px;min-width:0}.al-photoTags__inspector:empty{display:none}.al-photoTags__inspector strong{overflow-wrap:anywhere}.al-photoTags__inspector small{color:#536b63}
.al-photoTags__markerActions{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px}.al-photoTags__markerActions>button{padding:8px 10px;min-height:44px;font-size:.875rem}
html body button.al-photoTags__close{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;min-height:44px;padding:0;border:0;border-radius:10px;color:var(--tag-muted);background:transparent;box-shadow:none}
.al-photoTags__close svg{pointer-events:none}
.al-photoTags__picker{grid-column:2;grid-row:1;align-self:stretch;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto;gap:12px;max-height:100%;min-height:0;min-width:0;background:var(--tag-surface);border:0;border-left:1px solid var(--tag-border);border-radius:0;padding:0 0 0 16px;overflow:hidden}
.al-photoTags__pickerHead{display:flex;align-items:center;justify-content:space-between;gap:8px}.al-photoTags__pickerHead>.al-photoTags__close{display:none}.al-photoTags__editorTools{display:none}.al-photoTags__plant .al-photoTags__zone{display:none}.al-photoTags__pickerHead h3{font-size:1rem;margin:0}
.al-photoTags__picker input{box-sizing:border-box;width:100%;min-width:0;min-height:44px;padding:10px 12px;border:1px solid #cbd8d1;border-radius:10px;font:inherit;font-size:1rem}
.al-photoTags__plantList{overflow:auto;overscroll-behavior:contain;min-height:0;display:grid;grid-auto-rows:max-content;align-content:start;gap:4px}
html body button.al-photoTags__plant{box-sizing:border-box;display:grid;grid-template-columns:40px minmax(0,1fr);gap:10px;align-items:center;width:100%;height:auto;max-height:none;min-height:64px;margin:0;padding:10px;text-align:start;border:1px solid transparent;border-radius:var(--al-radius-card);background:transparent;color:var(--tag-ink);box-shadow:none;font:inherit;line-height:1.4;white-space:normal;transform:none}
html body button.al-photoTags__plant:not(:has(.al-photoTags__thumb)){grid-template-columns:minmax(0,1fr)}
html body button.al-photoTags__plant:is(:hover,:focus,:active){background:transparent;border-color:transparent;color:var(--tag-ink);box-shadow:none;transform:none;filter:none;text-shadow:none;-webkit-text-fill-color:currentColor}
html body button.al-photoTags__plant[aria-pressed=true]{background:var(--tag-hover);border-color:var(--tag-border);box-shadow:none}
.al-photoTags__plant>span:last-child{min-width:0}
.al-photoTags__plant strong{display:block;font-size:.875rem;line-height:1.4;font-weight:600;overflow-wrap:break-word}.al-photoTags__plant small{display:block;margin-top:3px;font-size:.8125rem;color:var(--tag-muted)}
.al-photoTags__thumb{display:block;flex-shrink:0;position:relative;width:40px;height:40px;border-radius:8px;overflow:hidden}.al-photoTags__thumb img{display:block;width:100%;height:100%;object-fit:cover}
html body button.al-photoTags__add,html body button.al-photoTags__panelToggle{min-height:44px;border:0;padding:8px 4px;background:transparent;color:var(--tag-accent);text-align:start;box-shadow:none;font:inherit;font-size:.875rem;transform:none}
/* These editor actions must keep their own skin on initial focus as well as
   hover/press; Elementor's generic button states otherwise add a raised tile. */
html body button:is(.al-photoTags__close,.al-photoTags__add,.al-photoTags__panelToggle),html body button:is(.al-photoTags__close,.al-photoTags__add,.al-photoTags__panelToggle):is(:hover,:focus,:active){background:transparent;box-shadow:none;transform:none;filter:none;text-shadow:none;text-decoration:none;-webkit-text-fill-color:currentColor;transition:none}
html body button.al-photoTags__close:is(:hover,:focus,:active){color:var(--tag-muted)}
html body button:is(.al-photoTags__add,.al-photoTags__panelToggle):is(:hover,:focus,:active){color:var(--tag-accent)}
dialog.al-photoTags :is(button,input):focus-visible{outline:2px solid var(--al-color-border-focus);outline-offset:2px}
.al-photoTags__stage:focus-visible{outline:2px solid var(--al-color-border-focus);outline-offset:-3px}
.al-photoTags__panelToggle{display:none}.al-photoTags__panelToggle.is-cancel{display:block}
.al-photoTags__empty{font-size:.875rem;color:#536b63;padding:8px}
.al-photoTags.is-picking .al-photoTags__inspector{visibility:hidden}
.al-photoTags__feedback{position:absolute;left:16px;right:16px;z-index:6;display:flex;justify-content:flex-end;pointer-events:none}.al-photoTags__feedback .al-toast{min-width:0;max-width:100%;pointer-events:none!important}.al-photoTags.is-picking .al-photoTags__feedback{display:none}
.al-photoTagsPublic{position:relative;min-width:0}.al-photoTagsPublic__photo{position:relative;display:flex;flex:1;min-height:0;min-width:0}.al-photoTagsPublic__photo>.al-photoTags__points{z-index:2}
/* A translucent 34px pill inside a 44px hit area; keep photo details unblurred. */
html body button.al-photoTags__chip,html body button.al-photoTags__chip:is(:hover,:focus,:active){position:absolute;isolation:isolate;left:auto;right:auto;top:0;bottom:auto;z-index:3;display:inline-flex;align-items:center;gap:4px;height:44px;min-height:44px;padding:5px var(--tag-chip-padding,9px);border:0;border-radius:var(--al-radius-pill);background:transparent;color:var(--al-color-text-inverse);-webkit-text-fill-color:currentColor;font:inherit;font-size:var(--tag-chip-size,.75rem);font-weight:600;line-height:1.2;box-shadow:none;transform:none;filter:none;text-shadow:0 1px 2px #000;touch-action:manipulation}
.al-photoTags__chip::before{content:'';position:absolute;inset:5px 0;z-index:-1;border:1px solid #ffffff60;border-radius:inherit;background:rgba(0,0,0,.22);pointer-events:none}
.al-photoTags__chip[aria-pressed=true]::before{border-color:#ffffff80}.al-photoTags__chip[aria-pressed=false]::before{border-style:dashed;border-color:#ffffff40}
@media(hover:hover){html body button.al-photoTags__plant:not([aria-pressed=true]):hover{background:var(--al-color-surface-raised);border-color:var(--tag-border)}.al-photoTags__chip:hover::before{background:rgba(0,0,0,.30)}}
html body .al-photoTags__chip:focus-visible{outline:2px solid #fff;outline-offset:3px}.al-photoTags__chip svg{flex:none;pointer-events:none}
.al-photoTags__preview{box-sizing:border-box;position:absolute;z-index:4;display:flex;align-items:flex-start;gap:8px;padding:8px 44px 8px 8px;border:1px solid var(--tag-border);background:var(--tag-surface);color:var(--tag-ink);border-radius:var(--al-radius-card);margin:0;box-shadow:var(--al-shadow-subtle);max-width:calc(100% - 16px);overflow:auto;overscroll-behavior:contain;pointer-events:auto}
.al-photoTags__preview button{pointer-events:auto}
.al-photoTags__previewCopy{min-width:0;display:grid;gap:2px;flex:1}.al-photoTags__preview strong{font-size:.8125rem;line-height:1.35;font-weight:600;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.al-photoTags__preview small{font-size:.75rem;color:var(--tag-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body .al-photoTags__preview>.al-photoTags__close{position:absolute;right:0;top:0;width:44px;height:44px;min-width:44px;border-radius:10px}
/* These semantic buttons are text actions, not theme-raised buttons. Keep the
   same treatment while hovered, pressed or focused; keyboard focus is separate. */
html body button:is(.al-photoTags__view,.al-photoTags__locate){width:fit-content;min-height:44px;padding:6px 0;border:0;background:transparent;color:var(--al-color-moss);box-shadow:none;font:inherit;font-size:.8125rem;text-align:start;text-decoration:underline;text-underline-offset:3px;transform:none;filter:none;text-shadow:none;transition:none}
html body button:is(.al-photoTags__view,.al-photoTags__locate):is(:hover,:focus,:active){background:transparent;color:var(--al-color-moss);box-shadow:none;transform:none;filter:none;text-shadow:none}
html body button:is(.al-photoTags__view,.al-photoTags__locate):focus-visible{outline:2px solid var(--al-color-border-focus);outline-offset:2px}
/* Narrow photos use one selected-only line below the image, never a card over it. */
.al-photoTags__preview.is-mobile{position:relative;inset:auto;flex:none;align-items:center;gap:0;width:100%;max-width:none;min-height:48px;max-height:52px;padding:0 44px 0 10px;border:0;border-top:1px solid var(--tag-border);border-radius:0;box-shadow:none;overflow:visible}
.al-photoTags__preview.is-mobile>.al-photoTags__thumb,.al-photoTags__preview.is-mobile small{display:none}
.al-photoTags__preview.is-mobile .al-photoTags__previewCopy{display:flex;align-items:center;gap:4px;min-width:0}
.al-photoTags__preview.is-mobile strong{display:block;min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.8125rem;line-height:1.4;-webkit-line-clamp:unset}
html body .al-photoTags__preview.is-mobile .al-photoTags__view{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;padding:0;font-size:18px;text-decoration:none}
.al-photoTags__preview.is-mobile .al-photoTags__viewLabel{display:none}
html body .al-photoTags__preview.is-mobile>.al-photoTags__close{top:2px;right:0}
/* One semantic card with sibling link and locate button, never nested controls. */
.al-publicAquarium .al-photoPlantItem{min-width:0;display:grid;grid-template-columns:48px minmax(0,1fr) 44px;align-items:center;column-gap:10px;border:1px solid var(--al-surface-border);border-radius:var(--al-surface-radius-card);background:var(--al-surface-card);padding:8px 10px}
.al-publicAquarium .al-photoPlantItem>.al-publicAquarium__item,.al-publicAquarium .al-photoPlantItem>.al-publicAquarium__item.has-media{grid-column:1 / 3;grid-row:1;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:10px;width:100%;height:100%;min-height:48px;padding:0;border:0;background:transparent;box-shadow:none;transform:none;text-decoration:none}
.al-publicAquarium .al-photoPlantItem .al-publicAquarium__itemMedia{width:48px;height:48px;background:transparent;border-radius:var(--al-surface-radius-control,8px)}
.al-publicAquarium .al-photoPlantItem .al-publicAquarium__itemCopy strong{font-size:14px;line-height:1.45;overflow-wrap:normal;word-break:normal}
.al-publicAquarium .al-photoPlantItem .al-photoPlantItem__quantity{display:inline;white-space:nowrap;font-size:12px;font-weight:500;color:var(--al-public-muted);overflow-wrap:normal}
.al-publicAquarium .al-photoPlantItem>.al-publicAquarium__item:is(:hover,:focus-visible){transform:none;box-shadow:none}
.al-photoPlantItem:has(:focus-visible){outline:2px solid var(--al-color-border-focus);outline-offset:2px}
html body .al-photoPlantItem>.al-photoTags__locate{grid-column:3;grid-row:1;display:grid;place-items:center;width:44px;height:44px;margin:0;padding:0;border-radius:var(--al-surface-radius-control,8px);text-decoration:none}
@media(hover:hover){.al-publicAquarium .al-photoPlantItem:has(a:hover){border-color:var(--al-color-border-focus)}}
@media(max-width:640px){.al-publicAquarium .al-publicAquarium__grid:has(.al-photoPlantItem){grid-template-columns:minmax(0,1fr)}body:has(.al-publicAquarium) :is(#ast-scroll-top,.ast-scroll-top){display:none!important}}
/* Dense public photos retain 44px keyboard/touch targets but only 13px ink. */
html body .al-photoTagsPublic .al-photoTags__dot::after{inset:15.5px;border-width:1px;background:transparent;box-shadow:0 0 0 1px #10251e50}
html body .al-photoTagsPublic .al-photoTags__dot.is-selected::after{inset:15px;border-width:2px;background:#ffffff10}
html body .al-photoTagsPublic .al-photoTags__dot.is-muted::after{opacity:.38}
.al-photoPlantItem .al-publicAquarium__itemCopy{min-width:0}
@media(prefers-reduced-motion:reduce){.al-photoTagsPublic *,.al-photoTags *{scroll-behavior:auto!important;transition:none!important}}
.al-developmentContext{position:relative;padding:16px 56px 16px 16px;border:1px solid #dbe5e1;background:#f3f8f5;border-radius:14px;margin-block:12px}
.al-developmentContext p{margin:6px 0 0}
.al-developmentContext__actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}
html body #alMemberArea .al-developmentContext__close{position:absolute;inset:4px 4px auto auto;display:grid;place-items:center;width:44px;height:44px;min-width:44px;padding:0;margin:0;border:0;border-radius:8px;background:transparent;color:var(--al-text-muted,#64756e);box-shadow:none;transform:none;transition:none;cursor:pointer}
html body #alMemberArea .al-developmentContext__close:is(:hover,:active){background:transparent;color:var(--al-text-muted,#64756e);box-shadow:none;transform:none}
html body #alMemberArea .al-developmentContext__close:focus-visible{outline:2px solid var(--al-primary,#2c6748);outline-offset:-4px}
.al-developmentContext__close svg{display:block;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;pointer-events:none}
/* Mobile selection reuses the editor's existing picker in the same dialog.
   Only the results list scrolls; the photograph never shares a tiny list row. */
@media(max-width:640px){
 html body dialog.al-photoTags{position:fixed;inset:0 auto auto 0;width:100%;height:100dvh;max-height:none;max-width:100%;margin:0;border:0;border-radius:0}
 .al-photoTags__head,.al-photoTags__foot{padding:10px 16px}
 .al-photoTags__head{padding-top:max(10px,env(safe-area-inset-top))}
 .al-photoTags__foot{padding-bottom:max(12px,env(safe-area-inset-bottom))}
 .al-photoTags__body,.al-photoTags__body.is-panel-collapsed{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:0;padding:12px}
 .al-photoTags__status{flex-basis:100%}
 .al-photoTags__canvas{grid-template-rows:minmax(90px,1fr) auto auto auto;gap:4px;overflow:hidden}
 .al-photoTags__stage{min-height:90px;background:var(--al-color-surface-subtle,#edf3ef)}
 .al-photoTags__hint{margin-top:6px;font-size:.8125rem}
 .al-photoTags__editorTools{display:flex;justify-content:space-between;gap:8px;align-items:center;min-width:0}
 .al-photoTags__editorTools>[data-choose-plant]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
 .al-photoTags__editorTools>[data-cancel-selection]{flex:none}
 .al-photoTags__inspector{gap:3px}.al-photoTags__inspector>strong{font-size:.875rem}
 .al-photoTags__markerActions{margin-top:2px}
 .al-photoTags__picker{position:absolute;inset:auto 0 0;z-index:5;grid-column:auto;grid-row:auto;height:min(var(--tag-picker-height,78dvh),100%);max-height:100%;padding:12px 16px max(12px,env(safe-area-inset-bottom));border:1px solid var(--tag-border);border-bottom:0;border-radius:18px 18px 0 0;gap:8px;grid-template-rows:auto auto minmax(0,1fr) auto;box-shadow:0 -4px 18px #10251e12}
 .al-photoTags__picker.is-collapsed{display:none}
 .al-photoTags__pickerHead{min-height:44px}.al-photoTags__pickerHead>.al-photoTags__close{display:grid}
 .al-photoTags__pickerHead>.al-photoTags__panelToggle{display:none}
 .al-photoTags__picker .al-photoTags__plant .al-photoTags__zone{display:block}
 .al-photoTags__picker .al-photoTags__plantList{max-height:none}
 .al-photoTags.is-picking .al-photoTags__body::before{content:'';position:absolute;inset:0;z-index:4;background:var(--al-overlay-backdrop,#112b2147)}
 .al-photoTagsPublic{--tag-chip-size:.6875rem;--tag-chip-padding:8px}.al-photoTags__chip svg{width:14px;height:14px}
}
@media(max-height:500px){.al-photoTags__head,.al-photoTags__foot{padding-block:6px}.al-photoTags__body{padding:8px}.al-photoTags__hint{margin-top:4px}.al-photoTags__picker{gap:4px}}
