1import{b as Ee,c as Ve,d as ze}from"./chunk-OI3YYN3B.js";import{a as Ne}from"./chunk-PZBK56T7.js";import{a as Ae}from"./chunk-D6F4WKHU.js";import{a as q,c as Be,d as Y}from"./chunk-EROZ2YN4.js";import{a as De}from"./chunk-XHHOCJWD.js";import{b as Se}from"./chunk-6YYECMED.js";import{d as $e}from"./chunk-BZEW4A32.js";import{a as Te}from"./chunk-VIPA5FPP.js";import{a as Oe}from"./chunk-SA6DI4J7.js";import{f as Fe}from"./chunk-KHVO34KM.js";import{e as Pe}from"./chunk-EDP5PE5H.js";import"./chunk-KTU3GP67.js";import{a as Le}from"./chunk-OH5GQFZ5.js";import{a as Ie}from"./chunk-TTSPYX3E.js";import"./chunk-35MWW22M.js";import{b as be,d as ue,g as ke}from"./chunk-5JLE6DRO.js";import{c as ye}from"./chunk-APN36WPJ.js";import{a as Me}from"./chunk-FOLOXTJB.js";import{a as Ce}from"./chunk-TYY62NAK.js";import{c as ve,f as we}from"./chunk-7WRD6ZE6.js";import{a as G}from"./chunk-5AWSMXQO.js";import{Bb as le,Cb as se,Db as de,Ea as $,Hb as ce,Ia as oe,Ib as pe,Ic as he,Ja as l,Jb as I,Jc as fe,Lb as p,Ma as ne,Mb as k,Nb as L,Ob as A,Pb as ge,Qa as z,Sb as N,Tb as j,Ub as U,Va as ie,Vb as _e,W as T,_a as b,f as X,id as xe,ja as _,jb as B,jc as me,ka as m,la as u,ma as C,ob as g,pb as r,qb as a,rb as f,s as ee,sb as re,tb as ae,vb as v,wb as x,xb as s,y as te}from"./chunk-4Z7OETUB.js";import{a as H,b as R,h as W}
1from"./chunk-2WMEOVCX.js";var Ge=["mapContainer"];function He(i,c){i&1&&(r(0,"div",13),f(1,"div",14),r(2,"p"),p(3,"Loading lookbook..."),a()())}function Re(i,c){if(i&1){let o=v();r(0,"div",15)(1,"div",16),u(),r(2,"svg",17),f(3,"circle",18)(4,"polyline",19),a(),C(),r(5,"h2"),p(6,"Link Expired"),a(),r(7,"p"),p(8),a(),r(9,"button",20),x("click",function(){_(o);let e=s();return m(e.goHome())}),p(10,"Back to Home"),a()()()}if(i&2){let o=s();l(8),L('"',o.expiredName,'" \u2014 this share link has expired. Please contact the sender for a new link.')}}function We(i,c){if(i&1&&(r(0,"p",30),p(1),a()),i&2){let o=s(2);l(),k(o.passwordError)}}function qe(i,c){if(i&1){let o=v();r(0,"div",21)(1,"div",22),u(),r(2,"svg",23),f(3,"rect",24)(4,"path",25),a(),C(),r(5,"h2"),p(6),a(),r(7,"p"),p(8,"This lookbook is password protected. Enter the password to view it."),a(),r(9,"div",26)(10,"input",27),U("ngModelChange",function(e){_(o);let n=s();return j(n.passwordInput,e)||(n.passwordInput=e),m(e)}),x("keydown.enter",function(){_(o);let e=s();return m(e.submitPassword())}),a(),b(11,We,2,1,"p",28),r(12,"button",29),x("click",function(){_(o);let e=s();return m(e.submitPassword())}),p(13),a()()()()}if(i&2){let o=s();
1l(6),k(o.protectedName||"Protected Lookbook"),l(4),N("ngModel",o.passwordInput),l(),g("ngIf",o.passwordError),l(),g("disabled",!o.passwordInput.trim()||o.loading),l(),L(" ",o.loading?"Checking...":"Unlock"," ")}}function Ye(i,c){if(i&1){let o=v();r(0,"div",31)(1,"div",16),u(),r(2,"svg",17),f(3,"path",32),a(),C(),r(4,"h2"),p(5,"Lookbook Not Found"),a(),r(6,"p"),p(7,"This lookbook link may have expired or doesn't exist."),a(),r(8,"button",33),x("click",function(){_(o);let e=s();return m(e.goHome())}),p(9,"Back to Home"),a()()()}}function Ze(i,c){if(i&1&&(r(0,"div",104),p(1),a()),i&2){let o=s(2);l(),L(" ",o.locationLoadError," ")}}function Je(i,c){if(i&1){let o=v();r(0,"button",105),x("click",function(){_(o);let e=s(2);return m(e.toggleMobileDrawer())}),u(),r(1,"svg",106),f(2,"line",107)(3,"line",108)(4,"line",109),a()()}}function Qe(i,c){i&1&&(u(),r(0,"svg",48),f(1,"path",110)(2,"path",111),a())}function Ke(i,c){i&1&&(u(),r(0,"svg",48),f(1,"polyline",112),a())}function Xe(i,c){i&1&&(u(),r(0,"svg",48),f(1,"path",115)(2,"polyline",116)(3,"line",117),a())}function et(i,c){i&1&&(u(),r(0,"svg",118),f(1,"path",119),a())}function tt(i,c){if(i&1){let o=v();r(0,"button",113),x("click",function(){_(o);let e=s(2);return m(e.downloadLookbook())}),b(1,Xe,4,0,"svg",55)(2,et,2,0,"svg",114),r(3,"span"),p(4),a()()}if(i&2){let o=s(2);
1g("disabled",o.downloading),l(),g("ngIf",!o.downloading),l(),g("ngIf",o.downloading),l(2),k(o.downloading?"Downloading...":"Download")}}function ot(i,c){if(i&1&&(r(0,"span",120),u(),r(1,"svg",121),f(2,"path",122)(3,"circle",123),a(),p(4),a()),i&2){let o=s(2);l(4),L(" ",o.lookbook.views," views ")}}function nt(i,c){if(i&1&&(r(0,"p",124),p(1),a()),i&2){let o=s(2);l(),k(o.lookbook.projectName)}}function it(i,c){if(i&1&&(r(0,"p",125),p(1),a()),i&2){let o=s(2);l(),k(o.lookbook.description)}}function rt(i,c){if(i&1){let o=v();r(0,"div",141),x("click",function(){let e=_(o).$implicit,n=s(5);return m(n.selectFolder(e))})("keyup.enter",function(){let e=_(o).$implicit,n=s(5);return m(n.selectFolder(e))})("keyup.space",function(){let e=_(o).$implicit,n=s(5);return m(n.selectFolder(e))}),u(),r(1,"svg",142),f(2,"path",135),a(),C(),r(3,"span",136),p(4),a(),r(5,"span",130),p(6),a()()}if(i&2){let o=c.$implicit,t=s(5);I("active",t.isActiveFolder(o)),B("data-testid","sidebar-sub-"+o.id),l(4),k(o.name),l(2),k((o.locations==null?null:o.locations.length)||0)}}function at(i,c){if(i&1){let o=v();r(0,"div",143),x("click",function(){let e=_(o).$implicit,n=s(5);return m(n.goToLocationDetail(e))})("keyup.enter",function(){let e=_(o).$implicit,n=s(5);return m(n.goToLocationDetail(e))})("keyup.space",function(){let e=_(o).$implicit,n=s(5);return m(n.goToLocationDetail(e))}),u(),r(1,"svg",142),f(2,"path",144)(3,"circle",145),a(),C(),r(4,"span",136),p(5),a()()}if(i&2){let o=c.$implicit;B("data-testid","sidebar-loc-"+o.id),l(5),k(o.locationName)}}function lt(i,c){if(i&1&&(r(0,"div",138),b(1,rt,7,5,"div",139)(2,at,6,2,"div",140),a()),i&2){let o=s().$implicit,t=s(3);l(),g("ngForOf",o.subfolders)("ngForTrackBy",t.trackById),l(),g("ngForOf",o.locations)("ngForTrackBy",t.trackById)}}function st(i,c){if(i&1){let o=v();r(0,"div",132)(1,"div",128),x("click",function(){let e=_(o).$implicit,n=s(3);return m(n.sidebarSelectFolder(e))})("keyup.enter",function(){let e=_(o).$implicit,n=s(3);return m(n.sidebarSelectFolder(e))})("keyup.space",function(){let e=_(o).$implicit,n=s(3);return m(n.sidebarSelectFolder(e))}),u(),r(2,"svg",133),x("click",function(e){let n=_(o).$implicit,d=s(3);return m(d.toggleSidebarExpand(n,e))}),f(3,"path",134),a(),r(4,"svg",129),f(5,"path",135),a(),C(),r(6,"span",136),p(7),a(),r(8,"span",130),p(9),a()(),b(10,lt,3,4,"div",137),a()}if(i&2){let o=c.$implicit,t=s(3);l(),I("active",t.isActiveFolder(o)),l(),I("open",t.isFolderExpanded(o.id)),l(5),k(o.name),l(2),k(t.getFolderLocationCount(o)),l(),g("ngIf",t.isFolderExpanded(o.id)&&((o.subfolders==null?null:o.subfolders.length)||(o.locations==null?null:o.locations.length)))}}function dt(i,c){if(i&1){let o=v();r(0,"div",126)(1,"div",127),p(2,"Folders"),a(),r(3,"div",128),x("click",function(){_(o);let e=s(2);return m(e.clearFolder())})("keyup.enter",function(){_(o);let e=s(2);return m(e.clearFolder())})("keyup.space",function(){_(o);let e=s(2);return m(e.clearFolder())}),u(),r(4,"svg",129),f(5,"rect",97)(6,"rect",98)(7,"rect",99)(8,"rect",100),a(),C(),r(9,"span"),p(10,"All Folders"),a(),r(11,"span",130),p(12),a()(),b(13,st,11,7,"div",131),a()}if(i&2){let o=s(2);l(3),I("active",!o.getEffectiveFolder()&&o.showFolderLanding),l(9),k((o.lookbook.resolvedFolders==null?null:o.lookbook.resolvedFolders.length)||0),l(),g("ngForOf",o.lookbook.resolvedFolders)("ngForTrackBy",o.trackById)}}function ct(i,c){if(i&1){let o=v();r(0,"div",146)(1,"button",147),x("click",function(){_(o);let e=s(2);return m(e.clearFolder())}),u(),r(2,"svg",148),f(3,"path",149),a(),p(4," Folders "),a(),C(),r(5,"h2"),p(6),a()()}if(i&2){let o,t=s(2);l(6),k((o=t.getEffectiveFolder())==null?null:o.name)}}function pt(i,c){if(i&1&&f(0,"img",158),i&2){let o=s().$implicit,t=s(3);g("src",t.getFolderThumbnail(o),$)("alt",o.name)}}function gt(i,c){i&1&&(r(0,"div",159),u(),r(1,"svg",160),f(2,"path",135),a()())}function _t(i,c){if(i&1&&(r(0,"div",163),f(1,"img",164),a()),i&2){let o=c.$implicit;l(),g("src",o,$)}}function mt(i,c){if(i&1&&(r(0,"div",161),b(1,_t,2,1,"div",162),a()),i&2){let o=s().$implicit,t=s(3);l(),g("ngForOf",t.getFolderThumbStrip(o))}}function ht(i,c){if(i&1){let o=v();r(0,"div",152),x("click",function(){let e=_(o).$implicit,n=s(3);return m(n.sidebarSelectFolder(e))})("keyup.enter",function(){let e=_(o).$implicit,n=s(3);return m(n.sidebarSelectFolder(e))})("keyup.space",function(){let e=_(o).$implicit,n=s(3);return m(n.sidebarSelectFolder(e))}),r(1,"div",153),b(2,pt,1,2,"img",154)(3,gt,3,0,"div",155)(4,mt,2,1,"div",156),a(),r(5,"div",157)(6,"h3"),p(7),a(),r(8,"p"),p(9),a()()()}if(i&2){let o=c.$implicit,t=s(3);l(2),g("ngIf",t.getFolderThumbnail(o)),l(),g("ngIf",!t.getFolderThumbnail(o)),l(),g("ngIf",t.getFolderThumbStrip(o).length>0),l(3),k(o.name),l(2),A("",t.getFolderLocationCount(o)," location",t.getFolderLocationCount(o)===1?"":"s")}}function ft(i,c){if(i&1&&(r(0,"div",150),b(1,ht,10,6,"div",151),a()),i&2){let o=s(2);l(),g("ngForOf",o.lookbook.resolvedFolders)("ngForTrackBy",o.trackById)}}function xt(i,c){if(i&1&&f(0,"img",158),i&2){let o=s().$implicit,t=s(3);g("src",t.getFolderThumbnail(o),$)("alt",o.name)}}function bt(i,c){i&1&&(r(0,"div",174),u(),r(1,"svg",175),f(2,"path",135),a()())}function ut(i,c){if(i&1&&(r(0,"div",178),f(1,"img",164),a()),i&2){let o=c.$implicit;l(),g("src",o,$)}}function kt(i,c){if(i&1&&(r(0,"div",176),b(1,ut,2,1,"div",177),a()),i&2){let o=s().$implicit,t=s(3);l(),g("ngForOf",t.getFolderThumbStrip(o))}}function vt(i,c){if(i&1){let o=v();r(0,"div",167),x("click",function(){let e=_(o).$implicit,n=s(3);return m(n.sidebarSelectFolder(e))})("keyup.enter",function(){let e=_(o).$implicit,n=s(3);return m(n.sidebarSelectFolder(e))})("keyup.space",function(){let e=_(o).$implicit,n=s(3);return m(n.sidebarSelectFolder(e))}),r(1,"div",168),b(2,xt,1,2,"img",154)(3,bt,3,0,"div",169),a(),b(4,kt,2,1,"div",170),r(5,"div",171)(6,"span",172),p(7),a(),r(8,"span",173),p(9),a()()()}if(i&2){let o=c.$implicit,t=s(3);l(2),g("ngIf",t.getFolderThumbnail(o)),l(),g("ngIf",!t.getFolderThumbnail(o)),l(),g("ngIf",t.getFolderThumbStrip(o).length>0),l(3),k(o.name),l(2),A("",t.getFolderLocationCount(o)," location",t.getFolderLocationCount(o)===1?"":"s")}}function wt(i,c){if(i&1&&(r(0,"div",165),b(1,vt,10,6,"div",166),a()),i&2){let o,t=s(2);l(),g("ngForOf",(o=t.getEffectiveFolder())==null?null:o.subfolders)("ngForTrackBy",t.trackById)}}function Ct(i,c){if(i&1&&f(0,"img",158),i&2){let o=s().$implicit;g("src",o.thumbnailImage,$)("alt",o.locationName)}}function Mt(i,c){i&1&&(r(0,"div",192),u(),r(1,"svg",175),f(2,"rect",193)(3,"circle",194)(4,"path",195),a()())}function yt(i,c){if(i&1&&(r(0,"div",196),u(),r(1,"svg",197),f(2,"rect",193)(3,"circle",194)(4,"path",195),a(),p(5),a()),i&2){let o=s().$implicit;l(5),L(" ",o.gallery.length," ")}}function Pt(i,c){if(i&1){let o=v();r(0,"div",201),x("click",function(e){let n=_(o).index,d=s(2).$implicit;return s(3).openLightbox(d,n),m(e.stopPropagation())})("keyup.enter",function(e){let n=_(o).index,d=s(2).$implicit;return s(3).openLightbox(d,n),m(e.stopPropagation())})("keyup.space",function(e){let n=_(o).index,d=s(2).$implicit;return s(3).openLightbox(d,n),m(e.stopPropagation())}),f(1,"img",202),a()}if(i&2){let o=c.$implicit;l(),g("src",o.thumbnailPath||o.imagePath,$)}}function Ot(i,c){if(i&1){let o=v();r(0,"div",203),x("click",function(e){_(o);let n=s(2).$implicit;return s(3).openLightbox(n,4),m(e.stopPropagation())})("keyup.enter",function(e){_(o);let n=s(2).$implicit;return s(3).openLightbox(n,4),m(e.stopPropagation())})("keyup.space",function(e){_(o);let n=s(2).$implicit;return s(3).openLightbox(n,4),m(e.stopPropagation())}),p(1),a()}if(i&2){let o=s(2).$implicit;l(),L(" +",o.gallery.length-4," ")}}function St(i,c){if(i&1&&(r(0,"div",198),b(1,Pt,2,1,"div",199)(2,Ot,2,1,"div",200),a()),i&2){let o=s().$implicit;l(),g("ngForOf",o.gallery.slice(0,4)),l(),g("ngIf",o.gallery.length>4)}}function It(i,c){if(i&1&&(r(0,"span"),p(1),a()),i&2){let o=s(2).$implicit;l(),L(", ",o.state)}}function Lt(i,c){if(i&1&&(r(0,"p",204),p(1),b(2,It,2,1,"span",205),a()),i&2){let o=s().$implicit;l(),k(o.city),l(),g("ngIf",o.state)}}function Ft(i,c){if(i&1&&(r(0,"p",206),p(1),a()),i&2){let o=s().$implicit;l(),k(o.address)}}function Tt(i,c){if(i&1){let o=v();r(0,"div",181),x("click",function(){let e=_(o).$implicit,n=s(3);return m(n.goToLocationDetail(e))})("keyup.enter",function(){let e=_(o).$implicit,n=s(3);return m(n.goToLocationDetail(e))})("keyup.space",function(){let e=_(o).$implicit,n=s(3);return m(n.goToLocationDetail(e))}
1),r(1,"div",182),b(2,Ct,1,2,"img",154)(3,Mt,5,0,"div",183),r(4,"button",184),x("click",function(e){let n=_(o).$implicit,d=s(3);return m(d.toggleLocationFavorite(n,e))}),u(),r(5,"svg",58),f(6,"polygon",59),a()(),C(),r(7,"button",185),x("click",function(e){let n=_(o).$implicit,d=s(3);return m(d.downloadLocationPhotos(n,e))}),u(),r(8,"svg",186),f(9,"path",115)(10,"polyline",116)(11,"line",117),a()(),b(12,yt,6,1,"div",187),a(),b(13,St,3,2,"div",188),C(),r(14,"div",189)(15,"h3"),p(16),a(),b(17,Lt,3,2,"p",190)(18,Ft,2,1,"p",191),a()()}if(i&2){let o=c.$implicit,t=s(3);B("data-testid","location-card-"+o.id),l(2),g("ngIf",o.thumbnailImage),l(),g("ngIf",!o.thumbnailImage),l(),I("is-fav",t.favLocationIds.has(o.id))("toggling",t.favTogglingLocations.has(o.id)),g("title",_e(t.favLocationIds.has(o.id)?"Remove from favourites":"Add to favourites")),B("data-testid","loc-fav-icon-"+o.id)("data-tooltip",t.favLocationIds.has(o.id)?"Remove from favourites":"Add to favourites"),l(),B("fill",t.favLocationIds.has(o.id)?"#22c55e":"none")("stroke",t.favLocationIds.has(o.id)?"#22c55e":"#fff"),l(2),B("data-testid","download-location-btn-"+o.id),l(5),g("ngIf",o.gallery&&o.gallery.length>1),l(),g("ngIf",o.gallery&&o.gallery.length>1),l(3),k(o.locationName),l(),g("ngIf",o.city),l(),g("ngIf",o.address)}}function Et(i,c){if(i&1&&(r(0,"div",179),b(1,Tt,19,19,"div",180),a()),i&2){let o=s(2);l(),g("ngForOf",o.displayLocations)}}function Vt(i,c){if(i&1&&(r(0,"div",207)(1,"p"),p(2),a()()),i&2){let o=s(2);l(2),L("No locations in ",o.activeFolder?"this folder":"this lookbook"," yet.")}}function zt(i,c){if(i&1){let o=v();r(0,"button",208),x("click",function(){_(o);let e=s(2);return m(e.exitMapFullscreen())}),u(),r(1,"svg",148),f(2,"line",92)(3,"line",93),a(),p(4," Close Map "),C(),r(5,"span",209),p(6,"ESC"),a()()}}function $t(i,c){if(i&1){let o=v();r(0,"div",210),u(),r(1,"svg",211),f(2,"circle",18)(3,"line",212)(4,"line",213),a(),C(),r(5,"span"),p(6,"Map unavailable \u2014 the list is complete."),a(),r(7,"button",214),x("click",function(){_(o);let e=s(2);return m(e.retryMapLoad())}),p(8," Retry "),a()()}}function Bt(i,c){if(i&1&&(r(0,"footer",215)(1,"p"),p(2),a()()),i&2){let o=s(2);l(2),k(o.lookbookDisclaimer)}}function Dt(i,c){if(i&1){let o=v();r(0,"div",216),x("click",function(){_(o);let e=s(2);return m(e.closeMobileDrawer())}),a()}}function At(i,c){if(i&1){let o=v();r(0,"div",223),x("click",function(){let e=_(o).$implicit,n=s(4);return n.selectFolder(e),m(n.closeMobileDrawer())})("keyup.enter",function(){let e=_(o).$implicit,n=s(4);return n.selectFolder(e),m(n.closeMobileDrawer())})("keyup.space",function(){let e=_(o).$implicit,n=s(4);return n.selectFolder(e),m(n.closeMobileDrawer())}),u(),r(1,"svg",224),f(2,"path",135),a(),C(),r(3,"span",101),p(4),a(),r(5,"span",102),p(6),a()()}if(i&2){let o=c.$implicit,t=s(4);I("active",t.isActiveFolder(o)),l(4),k(o.name),l(2),k((o.locations==null?null:o.locations.length)||0)}}function Nt(i,c){if(i&1){let o=v();r(0,"div",225),x("click",function(){let e=_(o).$implicit,n=s(4);return n.goToLocationDetail(e),m(n.closeMobileDrawer())})("keyup.enter",function(){let e=_(o).$implicit,n=s(4);return n.goToLocationDetail(e),m(n.closeMobileDrawer())})("keyup.space",function(){let e=_(o).$implicit,n=s(4);return n.goToLocationDetail(e),m(n.closeMobileDrawer())}),u(),r(1,"svg",226),f(2,"path",144)(3,"circle",145),a(),C(),r(4,"span",101),p(5),a()()}if(i&2){let o=c.$implicit;l(5),k(o.locationName)}}function jt(i,c){if(i&1&&(r(0,"div",220),b(1,At,7,4,"div",221)(2,Nt,6,1,"div",222),a()),i&2){let o=s().$implicit,t=s(2);l(),g("ngForOf",o.subfolders)("ngForTrackBy",t.trackById),l(),g("ngForOf",o.locations)("ngForTrackBy",t.trackById)}}function Ut(i,c){if(i&1){let o=v();r(0,"div",217)(1,"div",95),x("click",function(){let e=_(o).$implicit,n=s(2);return n.sidebarSelectFolder(e),m(n.closeMobileDrawer())})("keyup.enter",function(){let e=_(o).$implicit,n=s(2);return n.sidebarSelectFolder(e),m(n.closeMobileDrawer())})("keyup.space",function(){let e=_(o).$implicit,n=s(2);return n.sidebarSelectFolder(e),m(n.closeMobileDrawer())}),u(),r(2,"svg",218),x("click",function(e){let n=_(o).$implicit,d=s(2);return m(d.toggleSidebarExpand(n,e))}),f(3,"path",134),a(),r(4,"svg",96),f(5,"path",135),a(),C(),r(6,"span",101),p(7),a(),r(8,"span",102),p(9),a()(),b(10,jt,3,4,"div",219),a()}if(i&2){let o=c.$implicit,t=s(2);l(),I("active",t.isActiveFolder(o)),l(),I("open",t.isFolderExpanded(o.id)),l(5),k(o.name),l(2),k(t.getFolderLocationCount(o)),l(),g("ngIf",t.isFolderExpanded(o.id)&&((o.subfolders==null?null:o.subfolders.length)||(o.locations==null?null:o.locations.length)))}}function Gt(i,c){if(i&1){let o=v();r(0,"div",34),b(1,Ze,2,1,"div",35),r(2,"header",36)(3,"div",37)(4,"div",38),b(5,Je,5,0,"button",39),r(6,"div",40),x("click",function(){_(o);let e=s();return m(e.goHome())})("keyup.enter",function(){_(o);let e=s();return m(e.goHome())})("keyup.space",function(){_(o);let e=s();return m(e.goHome())}),u(),r(7,"svg",41),f(8,"rect",42)(9,"line",43)(10,"line",44)(11,"line",45),a(),C(),r(12,"span"),p(13),a()(),r(14,"div",46)(15,"button",47),x("click",function(){_(o);let e=s();return m(e.openShareModal())}),u(),r(16,"svg",48),f(17,"circle",49)(18,"circle",50)(19,"circle",51)(20,"line",52)(21,"line",53),a(),C(),r(22,"span"),p(23,"Share"),a()(),r(24,"button",54),x("click",function(){_(o);let e=s();return m(e.copyLink())}),b(25,Qe,3,0,"svg",55)(26,Ke,2,0,"svg",55),r(27,"span"),p(28),a()(),b(29,tt,5,4,"button",56),r(30,"button",57),x("click",function(){_(o);let e=s();return m(e.toggleSelected())}
1),u(),r(31,"svg",58),f(32,"polygon",59),a(),C(),r(33,"span"),p(34,"Selected"),a()(),r(35,"button",60),x("click",function(){_(o);let e=s();return m(e.toggleMapPanel())}),u(),r(36,"svg",48),f(37,"polygon",61)(38,"line",62)(39,"line",63),a(),C(),r(40,"span"),p(41),a()()()(),r(42,"div",64)(43,"span",65),p(44,"Shared Lookbook"),a(),b(45,ot,5,1,"span",66),a(),r(46,"h1",67),p(47),a(),b(48,nt,2,1,"p",68)(49,it,2,1,"p",69),r(50,"div",70)(51,"span"),p(52),a(),f(53,"span",71),r(54,"span"),p(55),a(),f(56,"span",71),r(57,"span"),p(58),a()()()(),r(59,"div",72),b(60,dt,14,5,"div",73),r(61,"div",74),b(62,ct,7,1,"div",75)(63,ft,2,2,"div",76)(64,wt,2,2,"div",77)(65,Et,2,1,"div",78)(66,Vt,3,1,"div",79),a(),r(67,"div",80),f(68,"app-production-zone-tool",81),r(69,"div",82,0),b(71,zt,7,0,"button",83)(72,$t,9,0,"div",84),a()()(),b(73,Bt,3,1,"footer",85)(74,Dt,1,0,"div",86),r(75,"div",87)(76,"div",88)(77,"span",89),p(78,"Folders"),a(),r(79,"button",90),x("click",function(){_(o);let e=s();return m(e.closeMobileDrawer())}),u(),r(80,"svg",91),f(81,"line",92)(82,"line",93),a()()(),C(),r(83,"div",94)(84,"div",95),x("click",function(){_(o);let e=s();return e.clearFolder(),m(e.closeMobileDrawer())})("keyup.enter",function(){_(o);let e=s();return e.clearFolder(),m(e.closeMobileDrawer())})("keyup.space",function(){_(o);let e=s();return e.clearFolder(),m(e.closeMobileDrawer())}),u(),r(85,"svg",96),f(86,"rect",97)(87,"rect",98)(88,"rect",99)(89,"rect",100),a(),C(),r(90,"span",101),p(91,"All Folders"),a(),r(92,"span",102),p(93),a()(),b(94,Ut,11,7,"div",103),a()()()}if(i&2){let o,t,e=s();l(),g("ngIf",e.locationLoadError),l(4),g("ngIf",e.lookbook.resolvedFolders&&e.lookbook.resolvedFolders.length>0),l(8),k(e.orgName),l(11),I("copied",e.linkCopied),l(),g("ngIf",!e.linkCopied),l(),g("ngIf",e.linkCopied),l(2),k(e.linkCopied?"Copied!":"Copy Link"),l(),g("ngIf",e.getEffectiveFolder()),l(),I("active",e.showOnlyFav),l(),B("fill",e.showOnlyFav?"#22c55e":"none")("stroke",e.showOnlyFav?"#22c55e":"currentColor"),l(4),I("active",e.showMapPanel),l(6),k(e.showMapPanel?"Hide Map":"Map"),l(4),g("ngIf",e.lookbook.views),l(2),k(e.lookbook.name),l(),g("ngIf",e.lookbook.projectName),l(),g("ngIf",e.lookbook.description),l(3),L("",(e.lookbook.resolvedLocations==null?null:e.lookbook.resolvedLocations.length)||0," Locations"),l(3),L("",(e.lookbook.resolvedFolders==null?null:e.lookbook.resolvedFolders.length)||0," Folders"),l(3),L("Updated ",e.formatDate(e.lookbook.updatedAt)),l(),I("map-open",e.showMapPanel),l(),g("ngIf",e.lookbook.resolvedFolders&&e.lookbook.resolvedFolders.length>0),l(2),g("ngIf",e.getEffectiveFolder()),l(),g("ngIf",e.showFolderLanding&&!e.getEffectiveFolder()&&e.lookbook.resolvedFolders&&e.lookbook.resolvedFolders.length>0),l(),g("ngIf",(o=e.getEffectiveFolder())==null||o.subfolders==null?null:o.subfolders.length),l(),g("ngIf",e.getEffectiveFolder()||!e.showFolderLanding||!(e.lookbook.resolvedFolders!=null&&e.lookbook.resolvedFolders.length)),l(),g("ngIf",(e.getEffectiveFolder()||!e.showFolderLanding||!(e.lookbook.resolvedFolders!=null&&e.lookbook.resolvedFolders.length))&&e.displayLocations.length===0&&!(!((t=e.getEffectiveFolder())==null||t.subfolders==null)&&t.subfolders.length)),l(),pe("display",e.showMapPanel?"flex":"none"),l(),g("map",e.map),l(3),g("ngIf",e.isMapFullscreen),l(),g("ngIf",e.mapUnavailable),l(),g("ngIf",e.lookbookDisclaimer),l(),g("ngIf",e.mobileDrawerOpen),l(),I("open",e.mobileDrawerOpen),l(9),I("active",!e.getEffectiveFolder()&&e.showFolderLanding),l(9),k((e.lookbook.resolvedLocations==null?null:e.lookbook.resolvedLocations.length)||0),l(),g("ngForOf",e.lookbook.resolvedFolders)("ngForTrackBy",e.trackById)}}function Ht(i,c){if(i&1&&(r(0,"span",242),p(1),a()),i&2){let o=c.$implicit;l(),k(o)}}function Rt(i,c){if(i&1){let o=v();re(0),r(1,"div",233)(2,"div",234),u(),r(3,"svg",235),f(4,"path",236),a()(),C(),r(5,"h2",237),p(6,"Shared Successfully!"),a(),r(7,"p",238),p(8,"This location has been shared with:"),a(),r(9,"div",239),b(10,Ht,2,1,"span",240),a(),r(11,"button",241),x("click",function(){_(o);let e=s(2);return m(e.closeShareModal())}),p(12,"Done"),a()(),ae()}if(i&2){let o=s(2);l(10),g("ngForOf",o.sharedEmails)}}function Wt(i,c){if(i&1&&(r(0,"p",260),p(1),a()),i&2){let o=s(3);l(),k(o.lookbook==null?null:o.lookbook.name)}}function qt(i,c){if(i&1&&(r(0,"p",261),p(1),a()),i&2){let o=s(3);l(),k(o.shareError)}}function Yt(i,c){i&1&&(u(),r(0,"svg",262),f(1,"line",263)(2,"polygon",264),a())}function Zt(i,c){if(i&1){let o=v();r(0,"div",243)(1,"div",244),u(),r(2,"svg",245),f(3,"circle",49)(4,"circle",50)(5,"circle",51)(6,"line",52)(7,"line",53),a()(),C(),r(8,"h2",246),p(9,"Share this Location"),a(),b(10,Wt,2,1,"p",247),a(),r(11,"div",248)(12,"label",249),p(13,"Email address(es)"),a(),r(14,"input",250),U("ngModelChange",function(e){_(o);let n=s(2);return j(n.shareEmailInput,e)||(n.shareEmailInput=e),m(e)}),x("keydown.enter",function(){_(o);let e=s(2);return m(e.submitShare())}),a(),r(15,"p",251),p(16,"To share with multiple people or team members, enter emails and separate by comma like:"),f(17,"br"),p(18,"[email protected],[email protected], etc"),a(),r(19,"label",252),p(20,"Message "),r(21,"span",253),p(22,"(optional)"),a()(),r(23,"textarea",254),U("ngModelChange",function(e){_(o);let n=s(2);return j(n.shareMessage,e)||(n.shareMessage=e),m(e)}),a(),b(24,qt,2,1,"p",255),a(),r(25,"div",256)(26,"button",257),x("click",function(){_(o);let e=s(2);return m(e.closeShareModal())}),p(27,"Cancel"),a(),r(28,"button",258),x("click",function(){_(o);let e=s(2);return m(e.submitShare())}),b(29,Yt,3,0,"svg",259),p(30),a()()}if(i&2){let o=s(2);l(10),g("ngIf",o.lookbook==null?null:o.lookbook.name),l(4),N("ngModel",o.shareEmailInput),l(9),N("ngModel",o.shareMessage),l(),g("ngIf",o.shareError),l(2),g("disabled",o.shareSending),l(2),g("disabled",!o.shareEmailInput.trim()||o.shareSending),l(
1),g("ngIf",!o.shareSending),l(),L(" ",o.shareSending?"Sharing...":"Share"," ")}}function Jt(i,c){if(i&1){let o=v();r(0,"div",227),x("click",function(){_(o);let e=s();return m(e.closeShareModal())}),r(1,"div",228),x("click",function(e){return _(o),m(e.stopPropagation())}),r(2,"button",229),x("click",function(){_(o);let e=s();return m(e.closeShareModal())}),u(),r(3,"svg",48),f(4,"path",230)(5,"path",231),a()(),b(6,Rt,13,1,"ng-container",232)(7,Zt,31,8,"ng-template",null,1,me),a()()}if(i&2){let o=ce(8),t=s();l(6),g("ngIf",t.shareSuccess)("ngIfElse",o)}}function Qt(i,c){if(i&1){let o=v();r(0,"button",281),x("click",function(){_(o);let e=s(2);return m(e.pickerOnlyStarred())}),p(1,"Only selected locations"),a()}}function Kt(i,c){if(i&1&&f(0,"img",158),i&2){let o=s().$implicit;g("src",o.thumbnailImage,$)("alt",o.locationName)}}function Xt(i,c){i&1&&f(0,"span",290)}function eo(i,c){if(i&1&&(r(0,"span"),p(1),a()),i&2){let o=s(2).$implicit;l(),L(", ",o.state)}}function to(i,c){if(i&1&&(r(0,"span"),p(1),b(2,eo,2,1,"span",205),a()),i&2){let o=s().$implicit;l(),k(o.city),l(),g("ngIf",o.state)}}function oo(i,c){if(i&1&&(r(0,"span"),p(1),a()),i&2){let o=s().$implicit;l(),ge("",o.city?" \xB7 ":"","",o.gallery.length," photo",o.gallery.length===1?"":"s")}}function no(i,c){i&1&&(r(0,"span",291),p(1,"Selected"),a())}function io(i,c){if(i&1){let o=v();r(0,"label",282)(1,"input",283),x("change",function(){let e=_(o).$implicit,n=s(2);return m(n.togglePickerRow(e.id))}),a(),r(2,"span",284),b(3,Kt,1,2,"img",154)(4,Xt,1,0,"span",285),a(),r(5,"span",286)(6,"span",287),p(7),a(),r(8,"span",288),b(9,to,3,2,"span",205)(10,oo,2,3,"span",205),a()(),b(11,no,2,0,"span",289),a()}if(i&2){let o=c.$implicit,t=s(2);B("data-testid","download-picker-row-"+o.id),l(),g("checked",t.isPickerRowChecked(o.id)),B("data-testid","download-picker-checkbox-"+o.id),l(2),g("ngIf",o.thumbnailImage),l(),g("ngIf",!o.thumbnailImage),l(3),k(o.locationName),l(2),g("ngIf",o.city),l(),g("ngIf",o.gallery==null?null:o.gallery.length),l(),g("ngIf",t.favLocationIds.has(o.id))}}function ro(i,c){i&1&&(r(0,"p",292),p(1,"No locations in this folder yet."),a())}function ao(i,c){if(i&1){let o=v();r(0,"div",265),x("click",function(){_(o);let e=s();return m(e.closeDownloadPicker())}),r(1,"div",266),x("click",function(e){return _(o),m(e.stopPropagation())}),r(2,"button",267),x("click",function(){_(o);let e=s();return m(e.closeDownloadPicker())}),u(),r(3,"svg",48),f(4,"path",230)(5,"path",231),a()(),C(),r(6,"div",268)(7,"h2",269),p(8,"Download photos"),a(),r(9,"p",270),p(10),a()(),r(11,"div",271)(12,"button",272),x("click",function(){_(o);let e=s();return m(e.pickerSelectAll())}),p(13,"Select all"),a(),r(14,"button",273),x("click",function(){_(o);let e=s();return m(e.pickerSelectNone())}),p(15,"Select none"),a(),b(16,Qt,2,0,"button",274),a(),r(17,"div",275),b(18,io,12,9,"label",276)(19,ro,2,0,"p",277),a(),r(20,"div",278)(21,"button",279),x("click",function(){_(o);let e=s();return m(e.closeDownloadPicker())}),p(22,"Cancel"),a(),r(23,"button",280),x("click",function(){_(o);let e=s();return m(e.submitDownloadPicker())}),p(24),a()()()()}if(i&2){let o=s();l(10),L("Folder: ",o.pickerFolder==null?null:o.pickerFolder.name),l(6),g("ngIf",o.pickerHasStarred),l(2),g("ngForOf",o.pickerLocations)("ngForTrackBy",o.trackById),l(),g("ngIf",!o.pickerLocations.length),l(4),g("disabled",o.pickerCheckedCount===0),l(),A(" Download (",o.pickerCheckedCount," location",o.pickerCheckedCount===1?"":"s",") ")}}function lo(i,c){if(i&1&&(r(0,"div",293),u(),r(1,"svg",294),f(2,"path",119),a(),C(),r(3,"div",295)(4,"strong"),p(5,"Preparing your download"),a(),r(6,"span"),p(7),a()()()),i&2){let o=s();l(7),A("Preparing ",o.downloadProgress.imageCount," photo",o.downloadProgress.imageCount===1?"":"s","\u2026")}}function so(i,c){if(i&1&&(r(0,"a",300),p(1,"Download it here"),a()),i&2){let o=s(2);g("href",o.downloadReadyLink,$)}}function co(i,c){if(i&1){let o=v();r(0,"div",296),u(),r(1,"svg",297),f(2,"circle",18)(3,"path",236),a(),C(),r(4,"div",295)(5,"strong"),p(6,"Download Started"),a(),r(7,"span"),p(8,"Your ZIP is on its way to your downloads folder. Not there? "),b(9,so,2,1,"a",298),p(10,"."),a()(),r(11,"button",299),x("click",function(){_(o);let e=s();return m(e.downloadSuccess=!1)}),u(),r(12,"svg",121),f(13,"path",230)(14,"path",231),a()()()}if(i&2){let o=s();l(9),g("ngIf",o.downloadReadyLink)}}function po(i,c){if(i&1){let o=v();r(0,"div",301),u(),r(1,"svg",302),f(2,"circle",18)(3,"line",212)(4,"line",213),a(),C(),r(5,"div",295)(6,"strong"),p(7,"Download Failed"),a(),r(8,"span"),p(9),a()(),r(10,"button",299),x("click",function(){_(o);let e=s();return m(e.downloadError=!1)}),u(),r(11,"svg",121),f(12,"path",230)(13,"path",231),a()()()}if(i&2){let o=s();l(9),k(o.downloadErrorMessage||"Could not prepare your images. Please try again.")}}function go(i,c){if(i&1){let o=v();r(0,"button",310),x("click",function(e){return _(o),s(2).prevImage(),m(e.stopPropagation())}
1),u(),r(1,"svg",311),f(2,"path",149),a()()}}function _o(i,c){if(i&1){let o=v();r(0,"button",312),x("click",function(e){return _(o),s(2).nextImage(),m(e.stopPropagation())}),u(),r(1,"svg",311),f(2,"path",134),a()()}}function mo(i,c){if(i&1){let o=v();r(0,"div",303),x("click",function(){_(o);let e=s();return m(e.closeLightbox())}),r(1,"button",304),x("click",function(){_(o);let e=s();return m(e.closeLightbox())}),u(),r(2,"svg",305),f(3,"path",230)(4,"path",231),a()(),b(5,go,3,0,"button",306),C(),r(6,"img",307),x("click",function(e){return _(o),m(e.stopPropagation())}),a(),b(7,_o,3,0,"button",308),r(8,"div",309),x("click",function(e){return _(o),m(e.stopPropagation())}),p(9),a()()}if(i&2){let o=s();l(5),g("ngIf",o.lightboxIndex>0),l(),g("src",o.lightboxImage,$),l(),g("ngIf",o.lightboxIndex<o.lightboxGallery.length-1),l(2),A("",o.lightboxIndex+1," / ",o.lightboxGallery.length)}}var Ho=(()=>{let c=class c{route;router;http;siteService;externalApiService;ngZone;lpEvents;platformService;authService;imageDownloadService;trackById=Ie;destroy$=new X;lookbook=null;loading=!0;notFound=!1;locationLoadError="";expired=!1;expiredName="";passwordRequired=!1;passwordInput="";passwordError="";protectedName="";lookbookId="";shareToken="";initialFolderId="";activeFolder=null;showFolderLanding=!0;lightboxImage=null;lightboxIndex=0;lightboxGallery=[];expandedFolders=new Set;favLocationIds=new Set;favRecordId=null;favTogglingLocations=new Set;clientIp="";showOnlyFav=!1;linkCopied=!1;showShareModal=!1;shareEmailInput="";shareMessage="";shareSending=!1;shareError="";shareSuccess=!1;sharedEmails=[];apiUrl=G.apiUrl;localApiUrl=G.localApiUrl;downloading=!1;downloadSuccess=!1;downloadReadyLink=null;downloadError=!1;downloadErrorMessage="";downloadProgress=null;showDownloadPicker=!1;pickerFolder=null;pickerLocations=[];pickerChecked=new Set;mobileDrawerOpen=!1;boundFolderToggle=()=>this.toggleMobileDrawer();toggleMobileDrawer(){this.mobileDrawerOpen=!this.mobileDrawerOpen,document.body.style.overflow=this.mobileDrawerOpen?"hidden":""}closeMobileDrawer(){this.mobileDrawerOpen=!1,document.body.style.overflow=""}mapContainer;showMapPanel=!0;map=null;mapMarkers=[];markerCluster=null;infoWindow=null;get isNmFilmTheme(){return this.siteService.hasFeature("isNmFilmTenant")}get orgName(){var e;let t=this.siteService.getCurrentSite();return((e=t==null?void 0:t.ext)==null?void 0:e.orgName)||(t==null?void 0:t.siteName)||this.siteService.getContactInfo().orgName}get lookbookDisclaimer(){var e,n;let t=(n=(e=this.siteService.getCurrentSite())==null?void 0:e.ext)==null?void 0:n.lookbookDisclaimer;return typeof t=="string"?t.trim():""}isMapFullscreen=!1;onFullscreenChange=()=>{this.ngZone.run(()=>{this.isMapFullscreen=!!document.fullscreenElement})};exitMapFullscreen(){document.fullscreenElement&&document.exitFullscreen().catch(()=>{})}constructor(t,e,n,d,h,w,y,P,S,F){this.route=t,this.router=e,this.http=n,this.siteService=d,this.externalApiService=h,this.ngZone=w,this.lpEvents=y,this.platformService=P,this.authService=S,this.imageDownloadService=F}onEscapeKey(){this.showDownloadPicker&&this.closeDownloadPicker()}ngOnInit(){this.platformService.isBrowser&&(document.addEventListener("fullscreenchange",this.onFullscreenChange),window.addEventListener("lookbook:toggleFolders",this.boundFolderToggle)),this.http.get(`${G.apiUrl}/public/whoami`).pipe(T(this.destroy$)).subscribe({next:d=>{var h;this.clientIp=((h=d==null?void 0:d.data)==null?void 0:h.ip)||"",this.lookbookId&&this.syncFavsFromApi(this.lookbookId)},error:()=>{this.clientIp=""}});let t=this.route.snapshot.paramMap.get("token"),e=this.route.snapshot.paramMap.get("id"),n=this.platformService.isBrowser?new URLSearchParams(window.location.search):null;if(this.initialFolderId=(n==null?void 0:n.get("folder"))||this.route.snapshot.queryParamMap.get("folder")||"",t){this.shareToken=t;let d=(this.platformService.isBrowser?sessionStorage.getItem(`lb_pwd_${t}`):null)||void 0;this.loadLookbookByToken(t,d)}else e?(this.lookbookId=e,this.resolveIdToShareLink(e)):(this.notFound=!0,this.loading=!1)}loadLookbookByToken(t,e){this.loading=!0,this.passwordError="";let n=e?`${this.localApiUrl}/external/lookbook/shared/${t}?password=${encodeURIComponent(e)}`:`${this.localApiUrl}/external/lookbook/shared/${t}`;this.http.get(n).pipe(T(this.destroy$)).subscribe({next:d=>{if(d!=null&&d.passwordRequired){this.passwordRequired=!0,this.protectedName=d.lookbookName||"",this.passwordError=e?"Incorrect password. Please try again.":"",this.loading=!1;return}e&&sessionStorage.setItem(`lb_pwd_${t}`,e);let h=(d==null?void 0:d.lookbook)||d;this.lookbookId=String(h.id),this.passwordRequired=!1;let w=h.resolvedLocations||[],y=h.resolvedFolders||[],P=w.map(E=>this.mapToResolvedLocation(E)),S=new Map;P.forEach(E=>
1S.set(String(E.id),E));let F=E=>E.map(V=>R(H({},V),{locations:(V.locations||[]).map(D=>S.get(String(D.id))||this.mapToResolvedLocation(D)),subfolders:V.subfolders?F(V.subfolders):[]}));if(this.lpEvents.fire("lookbook_view","lookbook"),this.platformService.isBrowser){let E=V=>V.flatMap(D=>[...(D.locations||[]).map(M=>M==null?void 0:M.id),...D.subfolders?E(D.subfolders):[]]);Se([...P.map(V=>V.id),...this.toIdArray(h.locationIds||h.location_ids),...E(y||[])])}this.lookbook={id:h.id,projectName:h.projectName||h.project_name||"",name:h.name,description:h.description||"",folders:h.folders||[],locationIds:this.toIdArray(h.locationIds||h.location_ids),views:h.views||0,shares:h.shares||0,createdAt:h.created_at||h.createdAt||"",updatedAt:h.updated_at||h.updatedAt||"",resolvedLocations:P,resolvedFolders:F(y)},this.loadFavLocations(this.lookbookId),this.applyInitialFolder(this.lookbook.resolvedFolders),this.loading=!1,setTimeout(()=>this.initMap(),0)},error:d=>{var h;d.status===410?(this.expired=!0,this.expiredName=((h=d.error)==null?void 0:h.lookbookName)||""):d.status===401||d.status===403?(this.passwordRequired=!0,this.passwordError=e?"Incorrect password. Please try again.":""):this.notFound=!0,this.loading=!1}})}submitPassword(){!this.passwordInput.trim()||this.loading||this.loadLookbookByToken(this.shareToken,this.passwordInput.trim())}resolveIdToShareLink(t){this.loading=!0,this.http.get(`${this.localApiUrl}/external/lookbook/${encodeURIComponent(t)}/share-token`).pipe(T(this.destroy$)).subscribe({next:e=>{if(e!=null&&e.shareToken){let n=this.initialFolderId?{folder:this.initialFolderId}:{};this.router.navigate(["/lookbook/shared",e.shareToken],{queryParams:n,replaceUrl:!0});return}this.fallbackToIdView(t)},error:()=>this.fallbackToIdView(t)})}fallbackToIdView(t){if(this.authService.hasUserSession()){this.loadLookbookById(t);return}this.notFound=!0,this.loading=!1}loadLookbookById(t){this.loading=!0,this.locationLoadError="",this.http.get(`${this.apiUrl}/lookbook`).pipe(T(this.destroy$)).subscribe({next:e=>{let n=Oe((e==null?void 0:e.data)||(e==null?void 0:e.lookbooks)||(Array.isArray(e)?e:[])),d=Array.isArray(n)?n.find(h=>String(h.id)===String(t)):null;if(!d){this.notFound=!0,this.loading=!1;return}this.lookbook={id:d.id,projectName:d.project_name||d.projectName||"",name:d.name,description:d.description||"",folders:[],locationIds:this.toIdArray(d.locationIds||d.location_ids),views:d.views||0,shares:d.shares||0,createdAt:d.created_at||d.createdAt||"",updatedAt:d.updated_at||d.updatedAt||"",resolvedLocations:[],resolvedFolders:[]},this.fetchFoldersAndLocations(t),this.loadFavLocations(t)},error:()=>{this.notFound=!0,this.loading=!1}})}toIdArray(t){if(!t)return[];if(Array.isArray(t))return t;if(typeof t=="string"){try{let e=JSON.parse(t);if(Array.isArray(e))return e}catch{}return t.split(",").filter(Boolean)}return[]}fetchFoldersAndLocations(t){this.locationLoadError="",this.http.get(`${this.apiUrl}/lookbook/${t}/folders`).pipe(T(this.destroy$)).subscribe({next:e=>{var w;let n=(e==null?void 0:e.data)||(e==null?void 0:e.folders)||e||[],d=new Set,h=y=>{y.forEach(P=>{var S;this.toIdArray(P.location_ids||P.locationIds).forEach(F=>d.add(Number(F))),((S=P.subfolders)==null?void 0:S.length)>0&&h(P.subfolders)})};if(h(n),this.toIdArray((w=this.lookbook)==null?void 0:w.locationIds).forEach(y=>d.add(Number(y))),d.size>0){let y=Array.from(d),P=[];for(let S=0;S<y.length;S+=300)P.push(y.slice(S,S+300));te(P.map(S=>this.http.post(`${this.apiUrl}/location/getbyids`,{ids:S,includeGallery:!0}).pipe(ee(F=>Array.isArray(F)?F:(F==null?void 0:F.data)||[])))).pipe(T(this.destroy$)).subscribe({next:S=>{let E=S.flat().map(M=>this.mapToResolvedLocation(M)).filter(M=>M!==null),V=new Map;E.forEach(M=>V.set(String(M.id),M));let D=M=>{var Q;let je=new Set(this.toIdArray(M.hidden_location_ids).map(O=>Number(O))),Z=this.toIdArray(M.location_ids||M.locationIds).map(O=>Number(O)).filter(O=>!je.has(O)),J=new Set(this.toIdArray(M.hidden_image_ids).map(O=>Number(O)));M.locations=Z.map(O=>V.get(String(O))).filter(O=>!!O).map(O=>{var K;return J.size===0||!((K=O.gallery)!=null&&K.length)?O:R(H({},O),{gallery:O.gallery.filter(Ue=>!J.has(Number(Ue.id)))})}),M.locationIds=Z,((Q=M.subfolders)==null?void 0:Q.length)>
10&&M.subfolders.forEach(O=>D(O))};n.forEach(M=>D(M)),this.lookbook&&(this.lookbook.resolvedLocations=E,this.lookbook.resolvedFolders=n),this.locationLoadError="",this.applyInitialFolder(n),this.loading=!1,setTimeout(()=>this.initMap(),0)},error:()=>{this.locationLoadError="Unable to load all lookbook locations. Please try again.",this.loading=!1}})}else this.lookbook&&(this.lookbook.resolvedFolders=n),this.locationLoadError="",this.applyInitialFolder(n),this.loading=!1},error:()=>{this.loading=!1}})}applyInitialFolder(t){if(!this.initialFolderId)return;let e=this.findFolderById(t,this.initialFolderId);e&&(this.activeFolder=e)}findFolderById(t,e){var n,d;for(let h of t){let w=String((d=(n=h.id)!=null?n:h.folder_id)!=null?d:"");if(w&&w===String(e))return h;let y=h.subfolders||h.children||h.folders||[];if(y.length){let P=this.findFolderById(y,e);if(P)return P}}return null}isActiveFolder(t){var n,d,h;let e=String((d=(n=t.id)!=null?n:t.folder_id)!=null?d:"");return e?this.activeFolder?String((h=this.activeFolder.id)!=null?h:"")===e:this.initialFolderId!==""&&e===this.initialFolderId:!1}mapToResolvedLocation(t){let e=(t.images||t.gallery||[]).filter(d=>d.visibility!==void 0&&d.visibility!==null?!(d.visibility==0||d.visibility===!1||d.visibility==="0"):d.isVisible!==!1&&d.is_visible!==!1),n=t.thumbnail_url||t.thumbnail_image||t.thumbnailImage||(e.length>0?e[0].thumbnail_url||e[0].image_url||e[0].thumbnailPath||e[0].imagePath:"");return{id:t.id,locationName:t.location_name||t.locationName||t.name||"",city:t.city||"",state:t.state||"",thumbnailImage:this.resolveImgUrl(n),address:t.address||"",description:t.description||"",gallery:e.map(d=>({id:Number(d.id),imagePath:this.resolveImgUrl(d.image_url||d.imagePath||d.image_path||""),thumbnailPath:this.resolveImgUrl(d.thumbnail_url||d.thumbnailPath||d.thumbnail_path||d.image_url||d.imagePath||"")})),latitude:parseFloat(String(t.latitude||t.lat||""))||void 0,longitude:parseFloat(String(t.longitude||t.lng||""))||void 0}}resolveImgUrl(t){return t?t.startsWith("http://")||t.startsWith("https://")?t:`${this.externalApiService.getCloudFrontBase()}/${t.replace(/^\//,"")}`:""}toggleFolderExpand(t){this.expandedFolders.has(t)?this.expandedFolders.delete(t):this.expandedFolders.add(t)}isFolderExpanded(t){return this.expandedFolders.has(t)}selectFolder(t){this.activeFolder=t,this.showFolderLanding=!1,this.router.navigate([],{queryParams:{folder:t.id},queryParamsHandling:"merge",replaceUrl:!0}),this.showMapPanel&&setTimeout(()=>this.updateMapMarkers(),0)}getFolderLocationCount(t){var n,d;let e=((n=t.locations)==null?void 0:n.length)||0;return(d=t.subfolders)!=null&&d.length&&t.subfolders.forEach(h=>{e+=this.getFolderLocationCount(h)}),e}sidebarSelectFolder(t){var e,n;this.selectFolder(t),((e=t.subfolders)!=null&&e.length||(n=t.locations)!=null&&n.length)&&this.expandedFolders.add(t.id)}toggleSidebarExpand(t,e){e.stopPropagation(),this.toggleFolderExpand(t.id)}clearFolder(){this.activeFolder=null,this.initialFolderId="",this.showFolderLanding=!0,this.router.navigate([],{queryParams:{folder:null},queryParamsHandling:"merge",replaceUrl:!0}),this.showMapPanel&&setTimeout(()=>this.updateMapMarkers(),0)}showAllLocationsView(){this.activeFolder=null,this.initialFolderId="",this.showFolderLanding=!1,this.router.navigate([],{queryParams:{folder:null},queryParamsHandling:"merge",replaceUrl:!0}),this.showMapPanel&&setTimeout(()=>this.updateMapMarkers(),0)}getEffectiveFolder(){var t,e;return this.activeFolder?this.activeFolder:this.initialFolderId&&((e=(t=this.lookbook)==null?void 0:t.resolvedFolders)!=null&&e.length)?this.findFolderById(this.lookbook.resolvedFolders,this.initialFolderId):null}getFolderThumbStrip(t){let e=[],n=d=>{for(let h of d.locations||[]){let w=h.thumbnailImage||h.thumbnail_image||"";w&&e.push(w)}for(let h of d.subfolders||[])n(h)};return n(t),e.slice(1,5)}getFolderThumbnail(t){if(t.imgThumbnail)return t.imgThumbnail;if(t.thumbnail)return t.thumbnail;if(t.cover_image)return t.cover_image;for(let e of t.locations||[]){let n=e.thumbnail_image||e.thumbnailImage||e.coverImage||"";if(n)return n}for(let e of t.subfolders||[]){let n=this.getFolderThumbnail(e);if(n)return n}return""}getProxyUrl(t){return $e(this.apiUrl,t)}get displayLocations(){var n;let t=this.getEffectiveFolder(),e=t?t.locations||[]:((n=this.lookbook)==null?void 0:n.resolvedLocations)||[];return this.showOnlyFav?e.filter(d=>this.favLocationIds.has(d.id)):e}get mapLocations(){var n;let t=this.getEffectiveFolder(),e=t?this.collectFolderLocations(t):((n=this.lookbook)==null?void 0:n.resolvedLocations)||[];return this.showOnlyFav?e.filter(d=>this.favLocationIds.has(d.id)):e}collectFolderLocations(t){let e=new Set,n=[],d=h=>{for(let w of(h==null?void 0:h.locations)||[])w&&!e.has(w.id)&&(e.add(w.id),n.push(w));for(let w of(h==null?void 0:h.subfolders)||[])d(w)};return d(t),n}get selectedCount(){var n;let t=this.getEffectiveFolder();return(t?t.locations||[]:((n=this.lookbook)==null?void 0:n.resolvedLocations)||[]).filter(d=>this.favLocationIds.has(d.id)).length}toggleSelected(){this.showOnlyFav=!this.showOnlyFav,this.showMapPanel&&setTimeout(()=>this.updateMapMarkers(),0)}copyLink(){navigator.clipboard.writeText(window.location.href).then(()=>{this.linkCopied=!0,setTimeout(()=>this.linkCopied=!1,2e3)})}openShareModal(){var t;this.lpEvents.fire("lookbook_share","lookbook",Number((t=this.lookbook)==null?void 0:t.id)||void 0),this.showShareModal=!0,this.shareEmailInput="",this.shareError="",this.shareSuccess=!1,this.sharedEmails=[]}closeShareModal(){this.showShareModal=!1,this.shareEmailInput="",this.shareMessage="",this.shareError="",this.shareSuccess=!1,this.sharedEmails=[]}submitShare(){let t=this.shareEmailInput.trim();if(!t||this.shareSending)return;let e=t.split(",").map(n=>n.trim()).filter(n=>n.length>0);e.length&&(this.shareSending=!0,this.shareError="",this.http.post(`${this.apiUrl}/lookbook/${this.lookbookId}/share`,{emails:e,message:this.shareMessage||"",allowDownload:!0}).pipe(T(this.destroy$)).subscribe({next:()=>{this.shareSending=!1,this.shareSuccess=!0,this.sharedEmails=e},error:n=>{var d;this.shareSending=!1,this.shareError=((d=n==null?void 0:n.error)==null?void 0:d.message)||"Failed to share. Please try again."}}))}downloadLookbook(){this.getEffectiveFolder()&&this.openDownloadPicker()}openDownloadPicker(){let t=this.getEffectiveFolder();t&&(this.pickerFolder=t,this.pickerLocations=this.collectFolderLocations(t),this.pickerChecked=new Set(this.pickerLocations.map(e=>e.id)),this.showDownloadPicker=!0)}closeDownloadPicker(){this.showDownloadPicker=!1,this.pickerFolder=null,this.pickerLocations=[],this.pickerChecked=new Set}isPickerRowChecked(t){return this.pickerChecked.has(t)}togglePickerRow(t){this.pickerChecked.has(t)?this.pickerChecked.delete(t):this.pickerChecked.add(t)}pickerSelectAll(){this.pickerChecked=new Set(this.pickerLocations.map(t=>
1t.id))}pickerSelectNone(){this.pickerChecked=new Set}pickerOnlyStarred(){this.pickerChecked=new Set(this.pickerLocations.filter(t=>this.favLocationIds.has(t.id)).map(t=>t.id))}get pickerHasStarred(){return this.pickerLocations.some(t=>this.favLocationIds.has(t.id))}get pickerCheckedCount(){return this.pickerChecked.size}submitDownloadPicker(){var n;let t=Array.from(this.pickerChecked);if(!t.length)return;let e=((n=this.pickerFolder)==null?void 0:n.name)||"folder";this.closeDownloadPicker(),this.startDownload(t,e)}downloadLocationPhotos(t,e){e.stopPropagation(),this.startDownload([t.id],t.locationName||"location")}startDownload(t,e){this.downloading||!t.length||(this.downloading=!0,this.downloadError=!1,this.downloadErrorMessage="",this.downloadProgress={imageCount:0},this.imageDownloadService.start(t,this.shareToken||void 0).pipe(T(this.destroy$)).subscribe({next:n=>{n.phase==="started"?this.downloadProgress={imageCount:n.imageCount||0}:n.phase==="done"?(this.downloading=!1,this.downloadProgress=null,n.link&&(this.downloadReadyLink=n.link,this.imageDownloadService.deliver(n.link)),this.downloadSuccess=!0,setTimeout(()=>{this.downloadSuccess=!1},8e3)):n.phase==="error"&&(this.downloading=!1,this.downloadProgress=null,this.downloadError=!0,this.downloadErrorMessage=n.error||"",setTimeout(()=>{this.downloadError=!1},5e3))},error:()=>{this.downloading=!1,this.downloadProgress=null,this.downloadError=!0,setTimeout(()=>{this.downloadError=!1},5e3)}}))}openLightbox(t,e){var n;t.gallery&&t.gallery.length>0?(this.lightboxGallery=t.gallery,this.lightboxIndex=e,this.lightboxImage=((n=t.gallery[e])==null?void 0:n.imagePath)||t.thumbnailImage):t.thumbnailImage&&(this.lightboxGallery=[{imagePath:t.thumbnailImage}],this.lightboxIndex=0,this.lightboxImage=t.thumbnailImage)}closeLightbox(){this.lightboxImage=null,this.lightboxGallery=[]}prevImage(){var t;this.lightboxIndex>0&&(this.lightboxIndex--,this.lightboxImage=((t=this.lightboxGallery[this.lightboxIndex])==null?void 0:t.imagePath)||null)}nextImage(){var t;this.lightboxIndex<this.lightboxGallery.length-1&&(this.lightboxIndex++,this.lightboxImage=((t=this.lightboxGallery[this.lightboxIndex])==null?void 0:t.imagePath)||null)}goHome(){this.router.navigate(["/"])}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete(),this.platformService.isBrowser&&(document.removeEventListener("fullscreenchange",this.onFullscreenChange),window.removeEventListener("lookbook:toggleFolders",this.boundFolderToggle)),this.markerCluster&&this.markerCluster.clearMarkers(),this.mapMarkers.forEach(t=>t.setMap(null))}toggleMapPanel(){this.showMapPanel=!this.showMapPanel,this.showMapPanel&&setTimeout(()=>{this.map?(Y()&&google.maps.event.trigger(this.map,"resize"),this.updateMapMarkers()):this.initMap()},0)}mapInitAttempts=0;mapUnavailable=!1;initMap(){if(!this.mapContainer){let t=q(this.mapInitAttempts);if(t===null){this.reportMapLoadFailure(!1);return}this.mapInitAttempts++,setTimeout(()=>this.initMap(),t);return}if(!Y()){Be().then(t=>{if(t==="blocked"){this.reportMapLoadFailure(!0);return}if(!this.mapContainer)return;if(t==="ready"){this.mapInitAttempts=0,this.mapUnavailable=!1,this.initMap();return}let e=q(this.mapInitAttempts);if(e===null){this.reportMapLoadFailure(!1);return}this.mapInitAttempts++,setTimeout(()=>this.initMap(),e)});return}try{this.buildMap()}catch{this.reportMapLoadFailure(!1)}}reportMapLoadFailure(t){var d;if(this.mapUnavailable)return;this.mapUnavailable=!0;let e=(d=this.siteService.getCurrentSiteId())!=null?d:void 0,n=t?"[map][expected-visitor-block] Google Maps script unreachable for this visitor \u2014 blocked or offline, not a site fault":`[map][expected-visitor-block] Google Maps failed to load after ${this.mapInitAttempts} attempts`;this.http.post(`${this.apiUrl}/log/client-error`,{message:n,url:window.location.href.slice(0,500),idSite:e}).subscribe({error:()=>{console.error("[map] failed to report map-load failure to /log/client-error")}})}retryMapLoad(){this.mapUnavailable=!1,this.mapInitAttempts=0,this.initMap()}buildMap(){if(!this.mapContainer){this.reportMapLoadFailure(!1);return}this.map=new google.maps.Map(this.mapContainer.nativeElement,{center:{lat:39.5,lng:-98.35},zoom:4,zoomControl:!0,mapTypeControl:!1,streetViewControl:!1,fullscreenControl:!0,fullscreenControlOptions:{position:google.maps.ControlPosition.RIGHT_TOP}}),this.infoWindow=new google.maps.InfoWindow,this.updateMapMarkers()}updateMapMarkers(){if(!this.map||this.mapUnavailable)return;this.markerCluster&&(this.markerCluster.clearMarkers(),this.markerCluster
1=null),this.mapMarkers.forEach(e=>e.setMap(null)),this.mapMarkers=[];let t=new google.maps.LatLngBounds;for(let e of this.mapLocations){let n=parseFloat(String(e.latitude||"")),d=parseFloat(String(e.longitude||""));if(!(isNaN(n)||isNaN(d)||n===0&&d===0))try{this.createMapMarker(e,t)}catch{this.mapUnavailable=!0,this.mapMarkers.forEach(h=>{try{h.setMap(null)}catch{}}),this.mapMarkers=[];return}}this.mapMarkers.length>0&&(this.map.fitBounds(t),this.mapMarkers.length===1&&this.map.setZoom(14),this.initMarkerCluster())}createMapMarker(t,e){let n=parseFloat(String(t.latitude)),d=parseFloat(String(t.longitude)),h=new google.maps.Marker({position:{lat:n,lng:d},title:t.locationName,icon:{path:google.maps.SymbolPath.CIRCLE,scale:10,fillColor:"#2563eb",fillOpacity:1,strokeColor:"#fff",strokeWeight:2}});h.addListener("click",()=>{let w=t.thumbnailImage?`<img src="${t.thumbnailImage}" style="width:100%;height:100px;object-fit:cover;border-radius:6px;margin-bottom:8px;">`:"",y=` 2 <div id="lb-map-info-${t.id}" style="width:200px;cursor:pointer;padding:4px;"> 3 ${w} 4 <div style="font-weight:600;font-size:13px;color:#1a2b4a;">${t.locationName}</div> 5 ${t.city?`<div style="font-size:12px;color:#64748b;">${t.city}${t.state?", "+t.state:""}</div>`:""} 6 <div style="font-size:11px;color:#2563eb;margin-top:6px;">View details \u2192</div> 7 </div> 8 `;this.infoWindow.setContent(y),this.infoWindow.open(this.map,h),google.maps.event.addListenerOnce(this.infoWindow,"domready",()=>{let P=document.getElementById(`lb-map-info-${t.id}`);P&&P.addEventListener("click",()=>this.goToLocationDetail(t))})}),this.mapMarkers.push(h),e.extend(h.getPosition())}initMarkerCluster(){if(!this.map||this.mapMarkers.length===0)return;let t={render:({count:e,position:n})=>{let d=e>=100?56:e>=10?48:40,h=`<svg xmlns="http://www.w3.org/2000/svg" width="${d}" height="${d}" viewBox="0 0 ${d} ${d}"> 9 <circle cx="${d/2}" cy="${d/2}" r="${d/2-2}" fill="#2563eb" fill-opacity="0.85" stroke="#fff" stroke-width="2"/> 10 <text x="${d/2}" y="${d/2+5}" text-anchor="middle" fill="#fff" font-family="Arial,sans-serif" 11 font-size="${d>=56?16:d>=48?14:12}px" font-weight="bold">${e}</text> 12 </svg>`;return new google.maps.Marker({position:n,icon:{url:`data:image/svg+xml;charset=UTF-8,${encodeURIComponent(h)}`,scaledSize:new google.maps.Size(d,d),anchor:new google.maps.Point(d/2,d/2)},zIndex:1e3+e})}};this.markerCluster=new ze({map:this.map,markers:this.mapMarkers,algorithm:new Ve({radius:60,maxZoom:16,minPoints:2}),renderer:t})}formatDate(t){let e=Ce(t);return e?e.toLocaleDateString("en-US",{month:"long",day:"numeric",year:"numeric"}):""}goToLocationDetail(t){let e=t.id||t.location_id;e&&this.router.navigate(["/locations",e],this.shareToken?{queryParams:{lookbook:this.shareToken}}:void 0)}loadFavLocations(t){try{let e=localStorage.getItem(`lb_fav_${t}`);if(e){let n=JSON.parse(e);this.favRecordId=n.id||null,this.favLocationIds=new Set((n.location_ids||[]).map(Number))}}catch{}this.clientIp&&this.syncFavsFromApi(t)}syncFavsFromApi(t){!this.clientIp||!t||this.http.get(`${this.apiUrl}/lookbook/lookbookfav?lookbookId=${t}&ip=${encodeURIComponent(this.clientIp)}`).pipe(T(this.destroy$)).subscribe({next:e=>{let n=(e==null?void 0:e.data)||e;if(n!=null&&n.id){this.favRecordId=n.id;let d=n.location_ids,h=Array.isArray(d)?d.map(Number):typeof d=="string"?(()=>{try{return JSON.parse(d)}catch{return[]}})():[];this.favLocationIds=new Set(h.map(Number)),this.persistFavs()}},error:()=>{}})}persistFavs(){try{localStorage.setItem(`lb_fav_${this.lookbookId}`,JSON.stringify({id:this.favRecordId,location_ids:Array.from(this.favLocationIds)}))}catch{}}toggleLocationFavorite(t,e){e.stopPropagation();let n=Number(t.id);if(!n||this.favTogglingLocations.has(n))return;if(this.favTogglingLocations.add(n),this.favLocationIds.has(n)){let h=Array.from(this.favLocationIds).filter(w=>w!==n);this.favRecordId?this.http.patch(`${this.apiUrl}/lookbook/lookbookfav`,{id:this.favRecordId,location_ids:h}).pipe(T(this.destroy$)).subscribe({next:()=>{this.favLocationIds.delete(n),this.favTogglingLocations.delete(n),this.persistFavs()},error:()=>{this.favLocationIds.delete(n),this.favTogglingLocations.delete(n),this.persistFavs()}}):(this.favLocationIds.delete(n),this.favTogglingLocations.delete(n),this.persistFavs())}else{let h=Array.from(this.favLocationIds).concat([n]);this.favRecordId?this.http.patch(`${this.apiUrl}/lookbook/lookbookfav`,{id:this.favRecordId,location_ids:h}).pipe(T(this.destroy$)).subscribe({next:()=>{this.favLocationIds.add(n),this.favTogglingLocations.delete(n),this.persistFavs()},error:()=>{this.favLocationIds.add(n),this.favTogglingLocations.delete(n),this.persistFavs()}}):this.http.post(`${this.apiUrl}
12/lookbook/lookbookfav`,{user_id:this.clientIp,lookbook_id:this.lookbookId,location_ids:[n]}).pipe(T(this.destroy$)).subscribe({next:w=>{var y;this.favRecordId=((y=w==null?void 0:w.data)==null?void 0:y.id)||(w==null?void 0:w.id)||this.favRecordId,this.favLocationIds.add(n),this.favTogglingLocations.delete(n),this.persistFavs()},error:()=>{this.favLocationIds.add(n),this.favTogglingLocations.delete(n),this.persistFavs()}})}}};W(c,"\u0275fac",function(e){return new(e||c)(z(ve),z(we),z(xe),z(ye),z(De),z(ne),z(Ae),z(Me),z(Pe),z(Ne))}),W(c,"\u0275cmp",ie({type:c,selectors:[["app-shared-lookbook"]],viewQuery:function(e,n){if(e&1&&le(Ge,5),e&2){let d;se(d=de())&&(n.mapContainer=d.first)}},hostVars:2,hostBindings:function(e,n){e&1&&x("keydown.escape",function(){return n.onEscapeKey()},oe),e&2&&I("nm-film-theme",n.isNmFilmTheme)},decls:11,vars:11,consts:[["mapContainer",""],["shareForm",""],["class","shared-loading","data-testid","shared-lookbook-loading",4,"ngIf"],["class","shared-not-found","data-testid","shared-lookbook-expired",4,"ngIf"],["class","shared-password-gate","data-testid","password-gate",4,"ngIf"],["class","shared-not-found","data-testid","shared-lookbook-not-found",4,"ngIf"],["class","shared-lookbook","data-testid","shared-lookbook-view",4,"ngIf"],["class","share-modal-overlay","data-testid","share-modal-overlay",3,"click",4,"ngIf"],["class","download-picker-overlay","data-testid","download-picker-overlay",3,"click",4,"ngIf"],["class","download-toast download-toast-progress","data-testid","download-progress-toast","role","status",4,"ngIf"],["class","download-toast","data-testid","download-success-toast",4,"ngIf"],["class","download-toast download-toast-error","data-testid","download-error-toast","role","alert",4,"ngIf"],["class","lightbox-overlay","data-testid","lightbox",3,"click",4,"ngIf"],["data-testid","shared-lookbook-loading",1,"shared-loading"],[1,"loading-spinner"],["data-testid","shared-lookbook-expired",1,"shared-not-found"],[1,"not-found-card"],["xmlns","http://www.w3.org/2000/svg","width","48","height","48","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","1.5"],["cx","12","cy","12","r","10"],["points","12 6 12 12 16 14"],["data-testid","go-home-btn-expired",1,"btn-home",3,"click"],["data-testid","password-gate",1,"shared-password-gate"],[1,"password-gate-card"],["xmlns","http://www.w3.org/2000/svg","width","44","height","44","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","1.5"],["x","3","y","11","width","18","height","11","rx","2","ry","2"],["d","M7 11V7a5 5 0 0 1 10 0v4"],[1,"password-gate-form"],["type","password","placeholder","Enter password","data-testid","password-gate-input","autofocus","",1,"password-gate-input",3,"ngModelChange","keydown.enter","ngModel"],["class","password-gate-error",4,"ngIf"],["data-testid","password-gate-submit",1,"password-gate-btn",3,"click","disabled"],[1,"password-gate-error"],["data-testid","shared-lookbook-not-found",1,"shared-not-found"],["d","m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z"],["data-testid","go-home-btn",1,"btn-home",3,"click"],["data-testid","shared-lookbook-view",1,"shared-lookbook"],["class","shared-location-error","role","alert","data-testid","shared-lookbook-location-error",4,"ngIf"],[1,"lb-hero"],[1,"lb-hero-inner"],[1,"lb-hero-top"],["class","lb-hero-burger","aria-label","Folders","data-testid","hero-folders-burger",3,"click",4,"ngIf"],["data-testid","brand-link","role","button","tabindex","0",1,"lb-brand",3,"click","keyup.enter","keyup.space"],["xmlns","http://www.w3.org/2000/svg","width","20","height","20","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2"],["x","2","y","2","width","20","height","20","rx","2.18","ry","2.18"],["x1","7","y1","2","x2","7","y2","22"],["x1","17","y1","2","x2","17","y2","22"],["x1","2","y1","12","x2","22","y2","12"],[1,"lb-hero-actions"],["title","Share","data-testid","hero-share-btn",1,"lb-action-btn",3,"click"],["xmlns","http://www.w3.org/2000/svg","width","18","height","18","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2"],["cx","18","cy","5","r","3"],["cx","6","cy","12","r","3"],["cx","18","cy","19","r","3"],["x1","8.59","y1","13.51","x2","15.42","y2","17.49"],["x1","15.41","y1","6.51","x2","8.59","y2","10.49"],["title","Copy link","data-testid","hero-copy-link-btn",1,"lb-action-btn",3,"click"],["xmlns","http://www.w3.org/2000/svg","width","18","height","18","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2",4,"ngIf"],["class","lb-action-btn","title","Download","data-testid","hero-download-btn",3,"disabled","click",4,"ngIf"],["title","Show selected","data-testid","hero-selected-btn",1,"lb-action-btn",3,"click"],["xmlns","http://www.w3.org/2000/svg","width","18","height","18","viewBox","0 0 24 24","stroke-width","2"],["points","12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"],["title","Toggle map","data-testid","hero-map-btn",1,"lb-action-btn",3,"click"],["points","3 6 9 3 15 6 21 3 21 18 15 21 9 18 3 21"],["x1","9","y1","3","x2","9","y2","18"],["x1","15","y1","6","x2","15","y2","21"],[1,"lb-meta-row"],[1,"lb-badge"],["class","lb-views",4,"ngIf"],["data-testid","lookbook-title"],["class","lb-project",4,"ngIf"],["class","lb-desc",4,"ngIf"],[1,"lb-stats"],[1,"stat-dot"],[1,"lb-body"],["class","lb-sidebar",4,"ngIf"],[1,"lb-content"],["class","active-folder-header",4,"ngIf"],["class","folder-landing-grid",4,"ngIf"],["class","subfolder-grid",4,"ngIf"],["class","location-grid","data-testid","location-grid",4,"ngIf"],["class","empty-locations","data-testid","empty-locations",4,"ngIf"],[1,"lb-map-panel"],[3,"map"],[1,"lb-map-container"],["class","map-fullscreen-exit-btn","aria-label","Exit fullscreen",3,"click",4,"ngIf"],["class","map-load-failed","data-testid","map-load-failed","role","alert",4,"ngIf"],["class","lb-disclaimer","data-testid","lookbook-disclaimer",4,"ngIf"],["class","mobile-drawer-overlay",3,"click",4,"ngIf"],["data-testid","mobile-folder-drawer",1,"mobile-folder-drawer"],[1,"mfd-header"],[1,"mfd-title"],["aria-label","Close","data-tooltip","Close",1,"mfd-close",3,"click"],["xmlns","http://www.w3.org/2000/svg","width","20","height","20","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2.5"],["x1","18","y1","6","x2","6","y2","18"],["x1","6","y1","6","x2","18","y2","18"],[1,"mfd-body"],["role","button","tabindex","0",1,"mfd-item",3,"click","keyup.enter","keyup.space"],["xmlns","http://www.w3.org/2000/svg","width","16","height","16","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2",1,"mfd-icon"],["x","3","y","3","width","7","height","7"],["x","14","y","3","width","7","height","7"],["x","3","y","14","width","7","height","7"],["x","14","y","14","width","7","height","7"],[1,"mfd-name"],[1,"mfd-count"],["class","mfd-folder-group",4,"ngFor","ngForOf","ngForTrackBy"],["role","alert","data-testid","shared-lookbook-location-error",1,"shared-location-error"],["aria-label","Folders","data-testid","hero-folders-burger",1,"lb-hero-burger",3,"click"],["xmlns","http://www.w3.org/2000/svg","width","22","height","22","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2"],["x1","3","y1","6","x2","21","y2","6"],["x1","3","y1","12","x2","21","y2","12"],["x1","3","y1","18","x2","21","y2","18"],["d","M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"],["d","M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"],["points","20 6 9 17 4 12"],["title","Download","data-testid","hero-download-btn",1,"lb-action-btn",3,"click","disabled"],["xmlns","http://www.w3.org/2000/svg","width","18","height","18","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2","style","animation:spin 1s linear infinite",4,"ngIf"],["d","M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"],["points","7 10 12 15 17 10"],["x1","12","y1","15","x2","12","y2","3"],["xmlns","http://www.w3.org/2000/svg","width","18","height","18","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2",2,"animation","spin 1s linear infinite"],["d","M21 12a9 9 0 1 1-6.219-8.56"],[1,"lb-views"],["xmlns","http://www.w3.org/2000/svg","width","14","height","14","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2"],["d","M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"],["cx","12","cy","12","r","3"],[1,"lb-project"],[1,"lb-desc"],[1,"lb-sidebar"],[1,"sidebar-label"],["role","button","tabindex","0",1,"sidebar-item",3,"click","keyup.enter","keyup.space"],["xmlns","http://www.w3.org/2000/svg","width","15","height","15","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2",1,"sidebar-icon"],[1,"sidebar-count"],["class","sidebar-folder-group",4,"ngFor","ngForOf","ngForTrackBy"],[1,"sidebar-folder-group"],["xmlns","http://www.w3.org/2000/svg","width","14","height","14","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2.5",1,"sidebar-chevron",3,"click"],["d","m9 18 6-6-6-6"],["d","M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"],[1,"sidebar-name"],["class","sidebar-sublist",4,"ngIf"],[1,"sidebar-sublist"],["class","sidebar-item sidebar-subitem","role","button","tabindex","0",3,"active","click","keyup.enter","keyup.space",4,"ngFor","ngForOf","ngForTrackBy"],["class","sidebar-item sidebar-loc-item","role","button","tabindex","0",3,"click","keyup.enter","keyup.space",4,"ngFor","ngForOf","ngForTrackBy"],["role","button","tabindex","0",1,"sidebar-item","sidebar-subitem",3,"click","keyup.enter","keyup.space"],["xmlns","http://www.w3.org/2000/svg","width","13","height","13","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2",1,"sidebar-icon"],["role","button","tabindex","0",1,"sidebar-item","sidebar-loc-item",3,"click","keyup.enter","keyup.space"],["d","M20 10c0 6-8 12-8 12S4 16 4 10a8 8 0 1 1 16 0z"],["cx","12","cy","10","r","3"],[1,"active-folder-header"],[1,"back-link",3,"click"],["xmlns","http://www.w3.org/2000/svg","width","16","height","16","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2"],["d","m15 18-6-6 6-6"],[1,"folder-landing-grid"],["class","folder-landing-card","role","button","tabindex","0",3,"click","keyup.enter","keyup.space",4,"ngFor","ngForOf","ngForTrackBy"],["role","button","tabindex","0",1,"folder-landing-card",3,"click","keyup.enter","keyup.space"],[1,"flc-cover"],["loading","lazy",3,"src","alt",4,"ngIf"],["class","flc-placeholder",4,"ngIf"],["class","flc-strip",4,"ngIf"],[1,"flc-details"],["loading","lazy",3,"src","alt"],[1,"flc-placeholder"],["xmlns","http://www.w3.org/2000/svg","width","40","height","40","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","1.5"],[1,"flc-strip"],["class","flc-strip-item",4,"ngFor","ngForOf"],[1,"flc-strip-item"],["loading","lazy","alt","",3,"src"],[1,"subfolder-grid"],["class","subfolder-card","role","button","tabindex","0",3,"click","keyup.enter","keyup.space",4,"ngFor","ngForOf","ngForTrackBy"],["role","button","tabindex","0",1,"subfolder-card",3,"click","keyup.enter","keyup.space"],[1,"subfolder-card-cover"],["class","subfolder-card-icon",4,"ngIf"],["class","subfolder-thumb-strip",4,"ngIf"],[1,"subfolder-card-info"],[1,"subfolder-card-name"],[1,"subfolder-card-count"],[1,"subfolder-card-icon"],["xmlns","http://www.w3.org/2000/svg","width","32","height","32","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","1.5"],[1,"subfolder-thumb-strip"],["class","subfolder-thumb-item",4,"ngFor","ngForOf"],[1,"subfolder-thumb-item"],["data-testid","location-grid",1,"location-grid"],["class","loc-card","style","cursor: pointer;","role","button","tabindex","0",3,"click","keyup.enter","keyup.space",4,"ngFor","ngForOf"],["role","button","tabindex","0",1,"loc-card",2,"cursor","pointer",3,"click","keyup.enter","keyup.space"],[1,"loc-image"],["class","loc-placeholder",4,"ngIf"],[1,"loc-fav-icon",3,"click","title"],["title","Download photos","aria-label","Download photos","data-tooltip","Download photos",1,"loc-download-icon",3,"click"],["xmlns","http://www.w3.org/2000/svg","width","16","height","16","viewBox","0 0 24 24","fill","none","stroke","#fff","stroke-width","2"],["class","loc-gallery-count",4,"ngIf"],["class","loc-thumbstrip",4,"ngIf"],[1,"loc-detail
12s"],["class","loc-city",4,"ngIf"],["class","loc-address",4,"ngIf"],[1,"loc-placeholder"],["width","18","height","18","x","3","y","3","rx","2","ry","2"],["cx","9","cy","9","r","2"],["d","m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"],[1,"loc-gallery-count"],["xmlns","http://www.w3.org/2000/svg","width","12","height","12","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2"],[1,"loc-thumbstrip"],["class","thumb-item","role","button","tabindex","0",3,"click","keyup.enter","keyup.space",4,"ngFor","ngForOf"],["tabindex","0","role","button","class","thumb-more",3,"click","keyup.enter","keyup.space",4,"ngIf"],["role","button","tabindex","0",1,"thumb-item",3,"click","keyup.enter","keyup.space"],["loading","lazy","alt","Lookbook image",3,"src"],["tabindex","0","role","button",1,"thumb-more",3,"click","keyup.enter","keyup.space"],[1,"loc-city"],[4,"ngIf"],[1,"loc-address"],["data-testid","empty-locations",1,"empty-locations"],["aria-label","Exit fullscreen",1,"map-fullscreen-exit-btn",3,"click"],[1,"esc-hint"],["data-testid","map-load-failed","role","alert",1,"map-load-failed"],["aria-hidden","true","xmlns","http://www.w3.org/2000/svg","width","18","height","18","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2"],["x1","12","y1","8","x2","12","y2","12"],["x1","12","y1","16","x2","12.01","y2","16"],["type","button","data-testid","map-reload-btn",1,"map-load-failed-retry",3,"click"],["data-testid","lookbook-disclaimer",1,"lb-disclaimer"],[1,"mobile-drawer-overlay",3,"click"],[1,"mfd-folder-group"],["xmlns","http://www.w3.org/2000/svg","width","14","height","14","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2.5",1,"mfd-chevron",3,"click"],["class","mfd-sublist",4,"ngIf"],[1,"mfd-sublist"],["class","mfd-item mfd-subitem","role","button","tabindex","0",3,"active","click","keyup.enter","keyup.space",4,"ngFor","ngForOf","ngForTrackBy"],["class","mfd-item mfd-locitem","role","button","tabindex","0",3,"click","keyup.enter","keyup.space",4,"ngFor","ngForOf","ngForTrackBy"],["role","button","tabindex","0",1,"mfd-item","mfd-subitem",3,"click","keyup.enter","keyup.space"],["xmlns","http://www.w3.org/2000/svg","width","14","height","14","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2",1,"mfd-icon"],["role","button","tabindex","0",1,"mfd-item","mfd-locitem",3,"click","keyup.enter","keyup.space"],["xmlns","http://www.w3.org/2000/svg","width","13","height","13","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2",1,"mfd-icon"],["data-testid","share-modal-overlay",1,"share-modal-overlay",3,"click"],["data-testid","share-modal","role","dialog","aria-modal","true","aria-labelledby","shareModalTitle",1,"share-modal",3,"click"],["data-testid","share-modal-close","aria-label","Close","data-tooltip","Close",1,"share-modal-close",3,"click"],["d","M18 6 6 18"],["d","m6 6 12 12"],[4,"ngIf","ngIfElse"],[1,"share-success"],[1,"share-success-icon"],["xmlns","http://www.w3.org/2000/svg","width","36","height","36","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2.2"],["d","m9 12 2 2 4-4"],[1,"share-success-title"],[1,"share-success-msg"],[1,"share-success-emails"],["class","share-success-email",4,"ngFor","ngForOf"],["data-testid","share-success-done",1,"share-modal-btn-share","share-success-done",3,"click"],[1,"share-success-email"],[1,"share-modal-header"],["aria-hidden","true",1,"share-modal-icon"],["xmlns","http://www.w3.org/2000/svg","width","30","height","30","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2"],["id","shareModalTitle",1,"share-modal-title"],["class","share-modal-subtitle",4,"ngIf"],[1,"share-modal-body"],["for","shareEmailField",1,"share-modal-label"],["id","shareEmailField","type","text","placeholder","Enter email address(es)","data-testid","share-email-input",1,"share-modal-input",3,"ngModelChange","keydown.enter","ngModel"],[1,"share-modal-hint"],["for","shareMessageField",1,"share-modal-label"],[1,"share-modal-label-opt"],["id","shareMessageField","placeholder","Add a personal message","data-testid","share-message-input","rows","3",1,"share-modal-input","share-modal-textarea",3,"ngModelChange","ngModel"],["class","share-modal-error",4,"ngIf"],[1,"share-modal-footer"],["data-testid","share-modal-cancel",1,"share-modal-btn-cancel",3,"click","disabled"],["data-testid","share-modal-submit",1,"share-modal-btn-share",3,"click","disabled"],["class","share-modal-btn-icon","xmlns","http://www.w3.org/2000/svg","width","16","height","16","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2",4,"ngIf"],[1,"share-modal-subtitle"],[1,"share-modal-error"],["xmlns","http://www.w3.org/2000/svg","width","16","height","16","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2",1,"share-modal-btn-icon"],["x1","22","y1","2","x2","11","y2","13"],["points","22 2 15 22 11 13 2 9 22 2"],["data-testid","download-picker-overlay",1,"download-picker-overlay",3,"click"],["data-testid","download-picker","role","dialog","aria-modal","true","aria-labelledby","downloadPickerTitle",1,"download-picker",3,"click"],["data-testid","download-picker-close","aria-label","Close","data-tooltip","Close",1,"download-picker-close",3,"click"],[1,"download-picker-header"],["id","downloadPickerTitle"],["data-testid","download-picker-subtitle",1,"download-picker-subtitle"],[1,"download-picker-control
12s"],["type","button","data-testid","download-picker-select-all",1,"dp-ctrl-btn",3,"click"],["type","button","data-testid","download-picker-select-none",1,"dp-ctrl-btn",3,"click"],["type","button","class","dp-ctrl-btn dp-ctrl-starred","data-testid","download-picker-only-starred",3,"click",4,"ngIf"],["data-testid","download-picker-list",1,"download-picker-list"],["class","download-picker-row",4,"ngFor","ngForOf","ngForTrackBy"],["class","download-picker-empty",4,"ngIf"],[1,"download-picker-footer"],["type","button","data-testid","download-picker-cancel",1,"dp-btn-cancel",3,"click"],["type","button","data-testid","download-picker-submit",1,"dp-btn-submit",3,"click","disabled"],["type","button","data-testid","download-picker-only-starred",1,"dp-ctrl-btn","dp-ctrl-starred",3,"click"],[1,"download-picker-row"],["type","checkbox",1,"dp-row-checkbox",3,"change","checked"],[1,"dp-row-thumb"],["class","dp-row-thumb-placeholder",4,"ngIf"],[1,"dp-row-info"],[1,"dp-row-name"],[1,"dp-row-meta"],["class","dp-row-badge",4,"ngIf"],[1,"dp-row-thumb-placeholder"],[1,"dp-row-badge"],[1,"download-picker-empty"],["data-testid","download-progress-toast","role","status",1,"download-toast","download-toast-progress"],["xmlns","http://www.w3.org/2000/svg","width","20","height","20","viewBox","0 0 24 24","fill","none","stroke","#2563eb","stroke-width","2",2,"animation","spin 1s linear infinite"],[1,"download-toast-text"],["data-testid","download-success-toast",1,"download-toast"],["xmlns","http://www.w3.org/2000/svg","width","20","height","20","viewBox","0 0 24 24","fill","none","stroke","#16a34a","stroke-width","2"],["data-testid","download-ready-link",3,"href",4,"ngIf"],["aria-label","Close","data-tooltip","Close",1,"download-toast-close",3,"click"],["data-testid","download-ready-link",3,"href"],["data-testid","download-error-toast","role","alert",1,"download-toast","download-toast-error"],["xmlns","http://www.w3.org/2000/svg","width","20","height","20","viewBox","0 0 24 24","fill","none","stroke","#dc2626","stroke-width","2"],["data-testid","lightbox",1,"lightbox-overlay",3,"click"],["aria-label","Close","data-tooltip","Close",1,"lightbox-close",3,"click"],["xmlns","http://www.w3.org/2000/svg","width","24","height","24","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2"],["class","lightbox-nav prev",3,"click",4,"ngIf"],["data-testid","lightbox-image","alt","Enlarged view",3,"click","src"],["class","lightbox-nav next","aria-label","Next image","data-tooltip","Next image",3,"click",4,"ngIf"],[1,"lightbox-counter",3,"click"],[1,"lightbox-nav","prev",3,"click"],["xmlns","http://www.w3.org/2000/svg","width","28","height","28","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2"],["aria-label","Next image","data-tooltip","Next image",1,"lightbox-nav","next",3,"click"]],template:function(e,n){e&1&&b(0,He,4,0,"div",2)(1,Re,11,1,"div",3)(2,qe,14,5,"div",4)(3,Ye,10,0,"div",5)(4,Gt,95,45,"div",6)(5,Jt,9,2,"div",7)(6,ao,25,8,"div",8)(7,lo,8,2,"div",9)(8,co,15,1,"div",10)(9,po,14,1,"div",11)(10,mo,10,5,"div",12),e&2&&(g("ngIf",n.loading),l(),g("ngIf",!n.loading&&n.expired),l(),g("ngIf",!n.loading&&n.passwordRequired&&!n.lookbook),l(),g("ngIf",!n.loading&&n.notFound),l(),g("ngIf",!n.loading&&!n.notFound&&n.lookbook),l(),g("ngIf",n.showShareModal),l(),g("ngIf",n.showDownloadPicker),l(),g("ngIf",n.downloadProgress),l(),g("ngIf",n.downloadSuccess),l(),g("ngIf",n.downloadError),l(),g("ngIf",n.lightboxImage))},dependencies:[Te,he,fe,be,ue,ke,Le,Fe,Ee],styles:[`[_nghost-%COMP%]{display:block}.shared-loading[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;color:#64748b}.shared-loading[_ngcontent-%COMP%] .loading-spinner[_ngcontent-%COMP%]{width:36px;height:36px;border:3px solid #e2e8f0;border-top-color:var(--primary-color, #1a3d68);border-radius:50%;animation:_ngcontent-%COMP%_spin .8s linear infinite}.shared-loading[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin-top:16px;font-size:14px}@keyframes _ngcontent-%COMP%_spin{to{transform:rotate(360deg)}}.shared-not-found[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;min-height:60vh}.shared-not-found[_ngcontent-%COMP%] .not-found-card[_ngcontent-%COMP%]{text-align:center;padding:40px}.shared-not-found[_ngcontent-%COMP%] .not-found-card[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{stroke:#94a3b8;margin-bottom:16px}.shared-not-found[_ngcontent-%COMP%] .not-found-card[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{font-size:22px;font-weight:700;
12color:#1a2b4a;margin-bottom:8px}.shared-not-found[_ngcontent-%COMP%] .not-found-card[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{font-size:14px;color:#64748b;margin-bottom:20px;max-width:400px}.shared-not-found[_ngcontent-%COMP%] .not-found-card[_ngcontent-%COMP%] .btn-home[_ngcontent-%COMP%]{padding:10px 24px;border-radius:8px;border:none;background:var(--primary-color, #1a3d68);color:#fff;font-size:14px;font-weight:600;cursor:pointer}.shared-not-found[_ngcontent-%COMP%] .not-found-card[_ngcontent-%COMP%] .btn-home[_ngcontent-%COMP%]:hover{background:#153257}.shared-lookbook[_ngcontent-%COMP%]{max-width:1400px;margin:0 auto}.lb-hero[_ngcontent-%COMP%]{background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);padding:24px 40px 16px;color:#fff}.nm-film-theme[_nghost-%COMP%] .lb-hero[_ngcontent-%COMP%]{padding:24px 40px 16px;background:linear-gradient(#000000bf,#000000bf),url(/assets/images/nm-header-bg.webp) center/cover no-repeat}.nm-film-theme[_nghost-%COMP%] .lb-hero[_ngcontent-%COMP%] .lb-brand[_ngcontent-%COMP%], .nm-film-theme[_nghost-%COMP%] .lb-hero[_ngcontent-%COMP%] .lb-brand[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{color:#ffffffd9;stroke:#ffffffb3}.nm-film-theme[_nghost-%COMP%] .lb-hero[_ngcontent-%COMP%] .lb-badge[_ngcontent-%COMP%]{color:#fff;background:#ffffff26}.nm-film-theme[_nghost-%COMP%] .lb-hero[_ngcontent-%COMP%] .lb-views[_ngcontent-%COMP%]{color:#fffc}.nm-film-theme[_nghost-%COMP%] .lb-hero[_ngcontent-%COMP%] .lb-views[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{stroke:#ffffffb3}.nm-film-theme[_nghost-%COMP%] .lb-hero[_ngcontent-%COMP%] .lb-hero-inner[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{color:#fff}.nm-film-theme[_nghost-%COMP%] .lb-hero[_ngcontent-%COMP%] .lb-project[_ngcontent-%COMP%]{color:#ffffffd9}.nm-film-theme[_nghost-%COMP%] .lb-hero[_ngcontent-%COMP%] .lb-desc[_ngcontent-%COMP%]{color:#ffffffbf}.nm-film-theme[_nghost-%COMP%] .lb-hero[_ngcontent-%COMP%] .lb-stats[_ngcontent-%COMP%]{color:#fffc}.nm-film-theme[_nghost-%COMP%] .lb-hero[_ngcontent-%COMP%] .lb-action-btn[_ngcontent-%COMP%]{background:#00000073;border-color:#ffffff59;color:#fff}.nm-film-theme[_nghost-%COMP%] .lb-hero[_ngcontent-%COMP%] .lb-action-btn[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{stroke:#fff}.nm-film-theme[_nghost-%COMP%] .lb-hero[_ngcontent-%COMP%] .lb-action-btn[_ngcontent-%COMP%]:hover{background:#000000a6;border-color:#fff9}.lb-hero-inner[_ngcontent-%COMP%]{max-width:1400px;margin:0 auto}.lb-hero-top[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;margin-bottom:16px}.lb-hero-top[_ngcontent-%COMP%] .lb-hero-burger[_ngcontent-%COMP%]{display:none}.lb-hero-top[_ngcontent-%COMP%] .lb-hero-actions[_ngcontent-%COMP%]{margin-left:auto}.lb-brand[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#fff9;cursor:pointer}.lb-brand[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{stroke:#ffffff80}.lb-brand[_ngcontent-%COMP%]:hover{color:#ffffffe6}.lb-brand[_ngcontent-%COMP%]:hover svg[_ngcontent-%COMP%]{stroke:#fffc}.lb-hero-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;flex-shrink:0}.lb-action-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#ffffff14;color:#ffffffd9;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.lb-action-btn[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{flex-shrink:0}.lb-action-btn[_ngcontent-%COMP%]:hover{background:#ffffff2e;border-color:#fff6;color:#fff}.lb-action-btn.active[_ngcontent-%COMP%]{background:#22c55e33;border-color:#22c55e;color:#22c55e}.lb-action-btn.copied[_ngcontent-%COMP%]{background:#22c55e26;border-color:#22c55e;color:#22c55e}.lb-action-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#22c55e;color:#fff;font-size:10px;font-weight:700;margin-left:2px}.lb-meta-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;margin-bottom:8px}.lb-badge[_ngcontent-%COMP%]{display:inline-block;padding:3px 12px;border-radius:20px;background:#ffffff1f;color:#fffc;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.lb-views[_ngcontent-%COMP%]{display:flex;align-items:center;gap:4px;font-size:12px;color:#ffffff80}.lb-views[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{stroke:#fff6}.lb-hero-inner[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{font-size:28px;font-weight:800;color:#fff;margin:0 0 6px;text-shadow:0 2px 4px rgba(0,0,0,.2)}.lb-project[_ngcontent-%COMP%]{font-size:14px;color:#fff9;margin:0 0 4px}
12.lb-desc[_ngcontent-%COMP%]{font-size:13px;color:#ffffff80;margin:0 0 12px;max-width:600px}.lb-stats[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;font-size:13px;color:#fff9}.lb-stats[_ngcontent-%COMP%] .stat-dot[_ngcontent-%COMP%]{width:4px;height:4px;border-radius:50%;background:#ffffff4d}.lb-body[_ngcontent-%COMP%]{display:flex;align-items:flex-start}.lb-sidebar[_ngcontent-%COMP%]{width:220px;flex-shrink:0;border-right:1px solid #e5e7eb;padding:20px 0 48px;background:#fff;position:sticky;top:0;align-self:flex-start;height:100vh;overflow-y:auto}.sidebar-label[_ngcontent-%COMP%]{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#94a3b8;padding:0 16px 10px}.sidebar-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:7px;padding:9px 14px 9px 16px;font-size:13px;font-weight:500;color:#475569;cursor:pointer;border-left:3px solid transparent;transition:background .12s,color .12s,border-color .12s;-webkit-user-select:none;user-select:none}.sidebar-item[_ngcontent-%COMP%]:hover{background:#f0f5ff;color:var(--primary-color, #1a3d68)}.sidebar-item.active[_ngcontent-%COMP%]{background:#eff6ff;color:var(--primary-color, #1a3d68);border-left-color:var(--primary-color, #1a3d68);font-weight:600}.sidebar-icon[_ngcontent-%COMP%]{flex-shrink:0;opacity:.6}.sidebar-name[_ngcontent-%COMP%]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-count[_ngcontent-%COMP%]{flex-shrink:0;font-size:11px;font-weight:600;color:#94a3b8;background:#f1f5f9;padding:1px 7px;border-radius:10px}.sidebar-chevron[_ngcontent-%COMP%]{flex-shrink:0;color:#94a3b8;transition:transform .2s;cursor:pointer;padding:2px;border-radius:3px}.sidebar-chevron[_ngcontent-%COMP%]:hover{background:#e2e8f0;color:#475569}.sidebar-chevron.open[_ngcontent-%COMP%]{transform:rotate(90deg)}.sidebar-sublist[_ngcontent-%COMP%]{background:#fafafa}.sidebar-subitem[_ngcontent-%COMP%]{padding-left:38px;font-size:12px}.sidebar-loc-item[_ngcontent-%COMP%]{padding-left:38px;font-size:12px;color:#64748b}.sidebar-loc-item[_ngcontent-%COMP%] .sidebar-icon[_ngcontent-%COMP%]{opacity:.5}.sidebar-loc-item[_ngcontent-%COMP%]:hover{color:var(--primary-color, #1a3d68)}.lb-hero-burger[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:38px;height:38px;flex-shrink:0;padding:0;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#ffffffd9;cursor:pointer;transition:background .15s}.lb-hero-burger[_ngcontent-%COMP%]:hover{background:#ffffff2e}.mobile-folder-bar[_ngcontent-%COMP%]{display:none;align-items:center;gap:8px;margin-bottom:16px}.mobile-folder-btn[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;flex:1;padding:10px 14px;border:1.5px solid #e2e8f0;border-radius:8px;background:#fff;font-size:14px;font-weight:500;color:#475569;cursor:pointer;text-align:left;transition:border-color .15s,background .15s}.mobile-folder-btn[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{flex-shrink:0;color:#94a3b8}.mobile-folder-btn[_ngcontent-%COMP%] .mfb-label[_ngcontent-%COMP%]{font-weight:600;color:#1e293b}.mobile-folder-btn[_ngcontent-%COMP%] .mfb-active[_ngcontent-%COMP%]{background:var(--primary-color, #1a3d68);color:#fff;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:600}.mobile-folder-btn[_ngcontent-%COMP%] .mfb-count[_ngcontent-%COMP%]{margin-left:auto;font-size:12px;color:#94a3b8;white-space:nowrap}.mobile-folder-btn[_ngcontent-%COMP%]:hover{border-color:var(--primary-color, #1a3d68);background:#f8faff}.mfb-clear[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:38px;height:38px;flex-shrink:0;border:1.5px solid #e2e8f0;border-radius:8px;background:#fff;color:#64748b;cursor:pointer;transition:border-color .15s,color .15s}.mfb-clear[_ngcontent-%COMP%]:hover{border-color:#ef4444;color:#ef4444}.mobile-drawer-overlay[_ngcontent-%COMP%]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1099}.mobile-folder-drawer[_ngcontent-%COMP%]{display:none;position:fixed;top:0;left:-300px;width:300px;height:100vh;background:#fff;z-index:1100;box-shadow:4px 0 24px #00000026;transition:left .3s ease;flex-direction:column;overflow-y:auto}.mobile-folder-drawer.open[_ngcontent-%COMP%]{left:0}.mfd-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:20px 16px 16px;border-bottom:1px solid #e5e7eb;flex-shrink:0}.mfd-title[_ngcontent-%COMP%]{font-size:16px;font-weight:700;
12color:#1a2b4a}.mfd-close[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:8px;background:transparent;color:#64748b;cursor:pointer}.mfd-close[_ngcontent-%COMP%]:hover{background:#f1f5f9;color:#1e293b}.mfd-body[_ngcontent-%COMP%]{flex:1;padding:8px 0 24px;overflow-y:auto}.mfd-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;padding:11px 14px 11px 16px;font-size:14px;font-weight:500;color:#475569;cursor:pointer;border-left:3px solid transparent;transition:background .12s,color .12s,border-color .12s;-webkit-user-select:none;user-select:none}.mfd-item[_ngcontent-%COMP%]:hover{background:#f0f5ff;color:var(--primary-color, #1a3d68)}.mfd-item.active[_ngcontent-%COMP%]{background:#eff6ff;color:var(--primary-color, #1a3d68);border-left-color:var(--primary-color, #1a3d68);font-weight:600}.mfd-icon[_ngcontent-%COMP%]{flex-shrink:0;opacity:.6}.mfd-chevron[_ngcontent-%COMP%]{flex-shrink:0;color:#94a3b8;transition:transform .2s;cursor:pointer;padding:2px;border-radius:3px}.mfd-chevron[_ngcontent-%COMP%]:hover{background:#e2e8f0;color:#475569}.mfd-chevron.open[_ngcontent-%COMP%]{transform:rotate(90deg)}.mfd-name[_ngcontent-%COMP%]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mfd-count[_ngcontent-%COMP%]{flex-shrink:0;font-size:11px;font-weight:600;color:#94a3b8;background:#f1f5f9;padding:1px 7px;border-radius:10px}.mfd-sublist[_ngcontent-%COMP%]{background:#fafafa}.mfd-subitem[_ngcontent-%COMP%]{padding-left:40px;font-size:13px}.mfd-locitem[_ngcontent-%COMP%]{padding-left:40px;font-size:13px;color:#64748b}.mfd-locitem[_ngcontent-%COMP%] .mfd-icon[_ngcontent-%COMP%]{opacity:.5}.mfd-locitem[_ngcontent-%COMP%]:hover{color:var(--primary-color, #1a3d68)}.folder-nav-mobile[_ngcontent-%COMP%]{display:none;width:100%;box-sizing:border-box;flex-wrap:nowrap!important;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;scrollbar-width:none;border-bottom:1px solid #e5e7eb;padding-bottom:12px;padding-right:24px;margin-bottom:20px;gap:8px}.folder-nav-mobile[_ngcontent-%COMP%]::-webkit-scrollbar{display:none}.folder-nav-mobile[_ngcontent-%COMP%] .folder-chip[_ngcontent-%COMP%]{flex:0 0 auto}.lb-content[_ngcontent-%COMP%]{flex:1;min-width:0;padding:24px 24px 48px}.lb-map-panel[_ngcontent-%COMP%]{width:340px;flex-shrink:0;position:sticky;top:0;align-self:flex-start;height:100vh;flex-direction:column;border-left:1px solid #e5e7eb;overflow:hidden}.lb-map-container[_ngcontent-%COMP%]{width:100%;height:100%;position:relative}app-production-zone-tool[_ngcontent-%COMP%]{--zone-tool-top: 10px}.map-load-failed[_ngcontent-%COMP%]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:8px;padding:10px 16px;background:linear-gradient(135deg,#fef2f2,#fee2e2);color:#991b1b;font-size:12px;font-weight:500;border:1px solid #fca5a5;border-radius:8px;box-shadow:0 2px 8px #00000014;max-width:90%;text-align:center;z-index:5}.map-load-failed[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{flex-shrink:0}.map-load-failed-retry[_ngcontent-%COMP%]{border:1px solid #991b1b;background:transparent;color:#991b1b;font-size:11px;font-weight:600;padding:3px 9px;border-radius:6px;cursor:pointer}.map-load-failed-retry[_ngcontent-%COMP%]:hover{background:#991b1b14}html.dark-mode[_ngcontent-%COMP%] .map-load-failed[_ngcontent-%COMP%], .dark-mode[_ngcontent-%COMP%] .map-load-failed[_ngcontent-%COMP%]{background:linear-gradient(135deg,#450a0a,#7f1d1d);color:#fca5a5;border-color:#991b1b}html.dark-mode[_ngcontent-%COMP%] .map-load-failed-retry[_ngcontent-%COMP%], .dark-mode[_ngcontent-%COMP%] .map-load-failed-retry[_ngcontent-%COMP%]{border-color:#fca5a5;color:#fca5a5}html.dark-mode[_ngcontent-%COMP%] .map-load-failed-retry[_ngcontent-%COMP%]:hover, .dark-mode[_ngcontent-%COMP%] .map-load-failed-retry[_ngcontent-%COMP%]:hover{background:#fca5a51a}.map-open[_ngcontent-%COMP%] .location-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(4,1fr)}@media (max-width: 1400px){.map-open[_ngcontent-%COMP%] .location-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(3,1fr)}}@media (max-width: 1100px){.map-open[_ngcontent-%COMP%] .location-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(2,1fr)}}.folder-nav[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #e5e7eb}.folder-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:20px;border:1.5px solid #e2e8f0;background:#fff;color:#475569;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.folder-chip[_ngcontent-%COMP%]:hover{border-color:var(--primary-color, #1a3d68);color:var(--primary-color, #1a3d68);background:#f0f5ff}.folder-chip.active[_ngcontent-%COMP%]{background:var(--primary-color, #1a3d68);color:#fff;border-color:var(--primary-color, #1a3d68)}.folder-chip.active[_ngcontent-%COMP%] .chip-count[_ngcontent-%COMP%]{background:#fff3;color:#fff}.folder-chip[_ngcontent-%COMP%] .chip-thumb[_ngcontent-%COMP%]{width:20px;height:20px;border-radius:4px;object-fit:cover;flex-shrink:0}.folder-chip[_ngcontent-%COMP%] .chip-count[_ngcontent-%COMP%]{background:#f1f5f9;color:#64748b;padding:1px 8px;border-radius:10px;font-size:11px;font-weight:600}.folder-chip.subfolder-chip[_ngcontent-%COMP%]{padding-left:12px;font-size:12px;border-style:dashed}.active-folder-header[_ngcontent-%COMP%]{margin-bottom:20px}.active-folder-header[_ngcontent-%COMP%] .back-link[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:4px;background:none;border:none;color:#64748b;font-size:13px;
12cursor:pointer;padding:0;margin-bottom:8px}.active-folder-header[_ngcontent-%COMP%] .back-link[_ngcontent-%COMP%]:hover{color:var(--primary-color, #1a3d68)}.active-folder-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{font-size:20px;font-weight:700;color:#1a2b4a;margin:0}.subfolder-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-bottom:24px}.subfolder-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;cursor:pointer;overflow:hidden;transition:box-shadow .15s,border-color .15s}.subfolder-card[_ngcontent-%COMP%]:hover{border-color:#cbd5e1;box-shadow:0 2px 8px #00000014}.subfolder-card[_ngcontent-%COMP%] .subfolder-card-cover[_ngcontent-%COMP%]{position:relative;width:100%;height:180px;overflow:hidden;background:#f1f5f9}.subfolder-card[_ngcontent-%COMP%] .subfolder-card-cover[_ngcontent-%COMP%] > img[_ngcontent-%COMP%]{width:100%;height:100%;object-fit:cover;transition:transform .25s}.subfolder-card[_ngcontent-%COMP%] .subfolder-card-cover[_ngcontent-%COMP%] .subfolder-card-icon[_ngcontent-%COMP%]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#cbd5e1}.subfolder-card[_ngcontent-%COMP%] .subfolder-thumb-strip[_ngcontent-%COMP%]{display:flex;gap:3px;padding:4px 8px 0}.subfolder-card[_ngcontent-%COMP%] .subfolder-thumb-strip[_ngcontent-%COMP%] .subfolder-thumb-item[_ngcontent-%COMP%]{flex:1;height:44px;border-radius:4px;overflow:hidden}.subfolder-card[_ngcontent-%COMP%] .subfolder-thumb-strip[_ngcontent-%COMP%] .subfolder-thumb-item[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:100%;height:100%;object-fit:cover;display:block}.subfolder-card[_ngcontent-%COMP%] .subfolder-card-info[_ngcontent-%COMP%]{display:flex;flex-direction:column;min-width:0;padding:10px 12px}.subfolder-card[_ngcontent-%COMP%] .subfolder-card-name[_ngcontent-%COMP%]{font-size:13px;font-weight:600;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.subfolder-card[_ngcontent-%COMP%] .subfolder-card-count[_ngcontent-%COMP%]{font-size:11px;color:#94a3b8;margin-top:2px}.folder-landing-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-bottom:32px}.folder-landing-card[_ngcontent-%COMP%]{background:#fff;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;cursor:pointer;transition:box-shadow .15s,border-color .15s}.folder-landing-card[_ngcontent-%COMP%]:hover{border-color:#cbd5e1;box-shadow:0 4px 20px #0000001f}.folder-landing-card[_ngcontent-%COMP%]:hover .flc-cover[_ngcontent-%COMP%] > img[_ngcontent-%COMP%]{transform:scale(1.03)}.folder-landing-card[_ngcontent-%COMP%] .flc-cover[_ngcontent-%COMP%]{position:relative;width:100%;height:180px;overflow:hidden;background:#f1f5f9}.folder-landing-card[_ngcontent-%COMP%] .flc-cover[_ngcontent-%COMP%] > img[_ngcontent-%COMP%]{width:100%;height:100%;object-fit:cover;transition:transform .25s;padding-bottom:56px;box-sizing:border-box}.folder-landing-card[_ngcontent-%COMP%] .flc-cover[_ngcontent-%COMP%] .flc-placeholder[_ngcontent-%COMP%]{width:100%;height:calc(100% - 56px);display:flex;align-items:center;justify-content:center;background:#f1f5f9}.folder-landing-card[_ngcontent-%COMP%] .flc-cover[_ngcontent-%COMP%] .flc-placeholder[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{stroke:#cbd5e1}.folder-landing-card[_ngcontent-%COMP%] .flc-strip[_ngcontent-%COMP%]{position:absolute;bottom:0;left:0;right:0;height:56px;display:flex;gap:2px;background:#e9eef4}.folder-landing-card[_ngcontent-%COMP%] .flc-strip-item[_ngcontent-%COMP%]{flex:1;overflow:hidden}.folder-landing-card[_ngcontent-%COMP%] .flc-strip-item[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:100%;height:100%;object-fit:cover;display:block}.folder-landing-card[_ngcontent-%COMP%] .flc-details[_ngcontent-%COMP%]{padding:10px 12px 12px}.folder-landing-card[_ngcontent-%COMP%] .flc-details[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{font-size:13px;font-weight:700;
12color:#1a2b4a;text-transform:uppercase;letter-spacing:.03em;margin:0 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.folder-landing-card[_ngcontent-%COMP%] .flc-details[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{font-size:12px;color:#64748b;margin:0}.location-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.loc-card[_ngcontent-%COMP%]{background:#fff;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;transition:all .15s}.loc-card[_ngcontent-%COMP%]:hover{border-color:#cbd5e1;box-shadow:0 4px 16px #00000014}.loc-card[_ngcontent-%COMP%]:hover .loc-image[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{transform:scale(1.03)}.loc-image[_ngcontent-%COMP%]{width:100%;height:160px;overflow:hidden;position:relative}.loc-image[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:100%;height:100%;object-fit:cover;transition:transform .25s}.loc-image[_ngcontent-%COMP%] .loc-placeholder[_ngcontent-%COMP%]{width:100%;height:100%;background:#f1f5f9;display:flex;align-items:center;justify-content:center}.loc-image[_ngcontent-%COMP%] .loc-placeholder[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{stroke:#cbd5e1}.loc-fav-icon[_ngcontent-%COMP%]{position:absolute;top:10px;right:10px;z-index:2;background:#00000059;border:none;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,transform .15s;padding:0}.loc-fav-icon[_ngcontent-%COMP%]:hover{background:#0000008c;transform:scale(1.1)}.loc-fav-icon.is-fav[_ngcontent-%COMP%]{background:#22c55e33}.loc-fav-icon.toggling[_ngcontent-%COMP%]{opacity:.6;pointer-events:none;animation:_ngcontent-%COMP%_pulse .6s infinite}@keyframes _ngcontent-%COMP%_pulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.loc-download-icon[_ngcontent-%COMP%]{position:absolute;top:10px;left:10px;z-index:2;background:#00000059;border:none;border-radius:50%;width:30px;height:30px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,transform .15s;padding:0}.loc-download-icon[_ngcontent-%COMP%]:hover{background:#0000008c;transform:scale(1.1)}.loc-gallery-count[_ngcontent-%COMP%]{position:absolute;bottom:10px;right:10px;z-index:2;background:#0009;color:#fff;padding:3px 8px;border-radius:6px;font-size:11px;font-weight:600;display:flex;align-items:center;gap:4px}.loc-gallery-count[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{stroke:#fff}
12.loc-details[_ngcontent-%COMP%]{padding:12px 14px}.loc-details[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{font-size:14px;font-weight:600;color:#1a2b4a;margin:0 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.loc-details[_ngcontent-%COMP%] .loc-city[_ngcontent-%COMP%]{font-size:12px;color:#64748b;margin:0}.loc-details[_ngcontent-%COMP%] .loc-address[_ngcontent-%COMP%]{font-size:11px;color:#94a3b8;margin:3px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.loc-thumbstrip[_ngcontent-%COMP%]{display:flex;gap:3px;padding:4px 8px 0}.loc-thumbstrip[_ngcontent-%COMP%] .thumb-item[_ngcontent-%COMP%]{flex:1;height:44px;border-radius:4px;overflow:hidden;cursor:pointer}.loc-thumbstrip[_ngcontent-%COMP%] .thumb-item[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:100%;height:100%;object-fit:cover}.loc-thumbstrip[_ngcontent-%COMP%] .thumb-item[_ngcontent-%COMP%]:hover{opacity:.8}.loc-thumbstrip[_ngcontent-%COMP%] .thumb-more[_ngcontent-%COMP%]{width:44px;height:44px;border-radius:4px;background:#f1f5f9;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#64748b;cursor:pointer}.loc-thumbstrip[_ngcontent-%COMP%] .thumb-more[_ngcontent-%COMP%]:hover{background:#e2e8f0}.empty-locations[_ngcontent-%COMP%]{text-align:center;padding:60px 20px;color:#94a3b8}.empty-locations[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{font-size:15px}.lightbox-overlay[_ngcontent-%COMP%]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#000000eb;display:flex;align-items:center;justify-content:center}.lightbox-overlay[_ngcontent-%COMP%] .lightbox-close[_ngcontent-%COMP%]{position:absolute;top:16px;right:16px;background:none;border:none;cursor:pointer}.lightbox-overlay[_ngcontent-%COMP%] .lightbox-close[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{stroke:#fff;width:28px;height:28px}.lightbox-overlay[_ngcontent-%COMP%] .lightbox-nav[_ngcontent-%COMP%]{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff1a;border:none;border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;cursor:pointer}.lightbox-overlay[_ngcontent-%COMP%] .lightbox-nav[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{stroke:#fff}.lightbox-overlay[_ngcontent-%COMP%] .lightbox-nav.prev[_ngcontent-%COMP%]{left:20px}.lightbox-overlay[_ngcontent-%COMP%] .lightbox-nav.next[_ngcontent-%COMP%]{right:20px}.lightbox-overlay[_ngcontent-%COMP%] .lightbox-nav[_ngcontent-%COMP%]:hover{background:#fff3}.lightbox-overlay[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{max-width:85vw;max-height:80vh;object-fit:contain;border-radius:4px}.lightbox-overlay[_ngcontent-%COMP%] .lightbox-counter[_ngcontent-%COMP%]{position:absolute;bottom:20px;left:50%;transform:translate(-50%);color:#fff;font-size:14px;opacity:.7}@media (max-width: 1400px){.location-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(4,1fr)}.lb-map-panel[_ngcontent-%COMP%]{width:320px}}@media (max-width: 1100px){.location-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(3,1fr)}.lb-map-panel[_ngcontent-%COMP%]{width:300px}}@media (max-width: 900px){.lb-body[_ngcontent-%COMP%]{flex-direction:column}.lb-sidebar[_ngcontent-%COMP%]{display:none}.mobile-folder-drawer[_ngcontent-%COMP%]{display:flex}.lb-hero-top[_ngcontent-%COMP%]{flex-wrap:nowrap}.lb-hero-top[_ngcontent-%COMP%] .lb-hero-burger[_ngcontent-%COMP%]{display:flex}.lb-hero-top[_ngcontent-%COMP%] .lb-brand[_ngcontent-%COMP%]{display:none}.lb-hero-top[_ngcontent-%COMP%] .lb-hero-actions[_ngcontent-%COMP%]{margin-left:auto}.lb-action-btn[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:none}.lb-action-btn[_ngcontent-%COMP%]{padding:7px 10px}.lb-content[_ngcontent-%COMP%]{padding:20px}.lb-map-panel[_ngcontent-%COMP%]{width:100%;position:static;height:400px;border-left:none;border-top:1px solid #e5e7eb}.lb-map-container[_ngcontent-%COMP%]{height:100%}.location-grid[_ngcontent-%COMP%], .map-open[_ngcontent-%COMP%] .location-grid[_ngcontent-%COMP%], .folder-landing-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(2,1fr)}.lb-hero[_ngcontent-%COMP%]{padding:24px 20px 20px}.lb-hero-inner[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{font-size:22px}}@media (max-width: 640px){.location-grid[_ngcontent-%COMP%], .map-open[_ngcontent-%COMP%] .location-grid[_ngcontent-%COMP%], .folder-landing-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(2,1fr);gap:10px}.folder-landing-card[_ngcontent-%COMP%] .flc-image[_ngcontent-%COMP%], .loc-image[_ngcontent-%COMP%]{height:120px}.loc-thumbstrip[_ngcontent-%COMP%]{display:none}
12.loc-details[_ngcontent-%COMP%]{padding:8px 10px}.loc-details[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{font-size:13px}.folder-nav[_ngcontent-%COMP%]{gap:6px}.folder-chip[_ngcontent-%COMP%]{padding:6px 12px;font-size:12px}.lb-hero-top[_ngcontent-%COMP%]{gap:6px}.lb-content[_ngcontent-%COMP%]{padding:16px}.lb-map-panel[_ngcontent-%COMP%]{height:360px}}@media (max-width: 480px){.share-modal[_ngcontent-%COMP%]{max-width:100%;border-radius:22px 22px 0 0;animation:_ngcontent-%COMP%_shareSheetIn .26s cubic-bezier(.16,1,.3,1)}.share-modal-overlay[_ngcontent-%COMP%]{align-items:flex-end;padding:0}.share-modal-header[_ngcontent-%COMP%]{padding:30px 22px 18px}.share-modal-body[_ngcontent-%COMP%]{padding:4px 22px}.share-modal-footer[_ngcontent-%COMP%]{padding:16px 22px calc(20px + env(safe-area-inset-bottom,0px))}.lb-hero-inner[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{font-size:18px}.lb-desc[_ngcontent-%COMP%]{font-size:12px}.lb-hero-top[_ngcontent-%COMP%], .lb-hero-actions[_ngcontent-%COMP%]{gap:4px}.lb-action-btn[_ngcontent-%COMP%]{padding:6px 8px}.loc-fav-icon[_ngcontent-%COMP%]{width:40px;height:40px}.active-folder-header[_ngcontent-%COMP%] .back-link[_ngcontent-%COMP%]{padding:8px 4px;margin-bottom:4px}.download-toast[_ngcontent-%COMP%]{min-width:unset;width:calc(100vw - 32px);max-width:360px;top:auto;bottom:calc(16px + var(--cookie-banner-height, 0px))}.loc-details[_ngcontent-%COMP%] .loc-address[_ngcontent-%COMP%]{font-size:12px}}.download-toast[_ngcontent-%COMP%]{position:fixed;top:24px;left:50%;transform:translate(-50%);z-index:9999;background:#fff;border:1px solid #bbf7d0;border-radius:12px;box-shadow:0 8px 32px #0000001f;padding:16px 20px;display:flex;align-items:flex-start;gap:12px;min-width:300px;max-width:380px;animation:_ngcontent-%COMP%_slideInDown .3s ease}@keyframes _ngcontent-%COMP%_slideInDown{0%{opacity:0;transform:translate(-50%) translateY(-20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.download-toast-text[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:2px}.download-toast-text[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{font-size:14px;font-weight:700;color:#111}.download-toast-text[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:12px;color:#6b7280;line-height:1.4}.download-toast-close[_ngcontent-%COMP%]{background:none;border:none;cursor:pointer;color:#9ca3af;padding:2px;flex-shrink:0}.download-toast-close[_ngcontent-%COMP%]:hover{color:#111}.download-toast-error[_ngcontent-%COMP%]{border-color:#fecaca}.dark-mode[_nghost-%COMP%] .download-toast-error[_ngcontent-%COMP%], .dark-mode [_nghost-%COMP%] .download-toast-error[_ngcontent-%COMP%]{background:#1f1315;border-color:#ef444466}.dark-mode[_nghost-%COMP%] .download-toast-error[_ngcontent-%COMP%] .download-toast-text[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .dark-mode [_nghost-%COMP%] .download-toast-error[_ngcontent-%COMP%] .download-toast-text[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:#fecaca}.dark-mode[_nghost-%COMP%] .download-toast-error[_ngcontent-%COMP%] .download-toast-text[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .dark-mode [_nghost-%COMP%] .download-toast-error[_ngcontent-%COMP%] .download-toast-text[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#f8b4b4}.dark-mode[_nghost-%COMP%] .download-toast-error[_ngcontent-%COMP%] .download-toast-close[_ngcontent-%COMP%], .dark-mode [_nghost-%COMP%] .download-toast-error[_ngcontent-%COMP%] .download-toast-close[_ngcontent-%COMP%]{color:#fca5a5}.dark-mode[_nghost-%COMP%] .download-toast-error[_ngcontent-%COMP%] .download-toast-close[_ngcontent-%COMP%]:hover, .dark-mode [_nghost-%COMP%] .download-toast-error[_ngcontent-%COMP%] .download-toast-close[_ngcontent-%COMP%]:hover{color:#fff}.download-toast-progress[_ngcontent-%COMP%]{border-color:#bfdbfe}.download-toast-progress[_ngcontent-%COMP%] .download-toast-text[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#64748b}.download-picker-overlay[_ngcontent-%COMP%]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);z-index:1001;display:flex;align-items:center;justify-content:center;padding:16px;animation:_ngcontent-%COMP%_shareOverlayIn .18s ease}.download-picker[_ngcontent-%COMP%]{--dp-accent: #1a3d68;
12--dp-accent-2: #2a5a8e;position:relative;background:#fff;border-radius:20px;width:100%;max-width:460px;max-height:85vh;display:flex;flex-direction:column;border:1px solid rgba(15,23,42,.06);box-shadow:0 28px 80px #0f172a52;overflow:hidden;animation:_ngcontent-%COMP%_shareModalIn .24s cubic-bezier(.16,1,.3,1)}.download-picker-close[_ngcontent-%COMP%]{position:absolute;top:14px;right:14px;z-index:2;background:none;border:none;cursor:pointer;color:#94a3b8;padding:6px;display:flex;align-items:center;border-radius:8px;transition:color .15s,background .15s}.download-picker-close[_ngcontent-%COMP%]:hover{color:#0f172a;background:#0f172a0f}.download-picker-header[_ngcontent-%COMP%]{padding:26px 28px 14px}.download-picker-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-size:20px;font-weight:800;letter-spacing:-.01em;color:#0f172a}.download-picker-subtitle[_ngcontent-%COMP%]{font-size:13.5px;color:#64748b;margin:6px 0 0}.download-picker-controls[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:8px;padding:0 28px 14px}.dp-ctrl-btn[_ngcontent-%COMP%]{border:1px solid #e2e8f0;background:#f8fafc;color:#334155;font-size:12.5px;font-weight:600;border-radius:8px;padding:6px 12px;cursor:pointer;transition:background .15s,border-color .15s}.dp-ctrl-btn[_ngcontent-%COMP%]:hover{background:#eef2f7;border-color:#cbd5e1}.dp-ctrl-starred[_ngcontent-%COMP%]{border-color:color-mix(in srgb,#22c55e 40%,#e2e8f0);color:#15803d;background:color-mix(in srgb,#22c55e 8%,#fff)}.dp-ctrl-starred[_ngcontent-%COMP%]:hover{background:color-mix(in srgb,#22c55e 16%,#fff)}.download-picker-list[_ngcontent-%COMP%]{flex:1;overflow-y:auto;padding:4px 16px;border-top:1px solid #f1f5f9;border-bottom:1px solid #f1f5f9}.download-picker-empty[_ngcontent-%COMP%]{padding:24px 12px;text-align:center;color:#94a3b8;font-size:13px}.download-picker-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;cursor:pointer;transition:background .12s}.download-picker-row[_ngcontent-%COMP%]:hover{background:#f8fafc}.dp-row-checkbox[_ngcontent-%COMP%]{width:17px;height:17px;flex-shrink:0;cursor:pointer;accent-color:var(--dp-accent)}.dp-row-thumb[_ngcontent-%COMP%]{width:44px;height:44px;border-radius:8px;overflow:hidden;flex-shrink:0;background:#f1f5f9}.dp-row-thumb[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:100%;height:100%;object-fit:cover}.dp-row-thumb[_ngcontent-%COMP%] .dp-row-thumb-placeholder[_ngcontent-%COMP%]{display:block;width:100%;height:100%}.dp-row-info[_ngcontent-%COMP%]{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.dp-row-name[_ngcontent-%COMP%]{font-size:13.5px;font-weight:600;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dp-row-meta[_ngcontent-%COMP%]{font-size:12px;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dp-row-badge[_ngcontent-%COMP%]{flex-shrink:0;font-size:10.5px;font-weight:700;color:#15803d;background:color-mix(in srgb,#22c55e 12%,#fff);border:1px solid color-mix(in srgb,#22c55e 30%,#fff);border-radius:20px;padding:3px 9px}.download-picker-footer[_ngcontent-%COMP%]{display:flex;gap:11px;padding:16px 28px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}.dp-btn-cancel[_ngcontent-%COMP%], .dp-btn-submit[_ngcontent-%COMP%]{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:12px 20px;font-size:14px;font-weight:600;border-radius:12px;cursor:pointer}.dp-btn-cancel[_ngcontent-%COMP%]{border:1px solid #e2e8f0;background:#fff;color:#475569;transition:background .15s,border-color .15s}.dp-btn-cancel[_ngcontent-%COMP%]:hover{background:#f1f5f9;border-color:#cbd5e1}.dp-btn-submit[_ngcontent-%COMP%]{border:none;background:linear-gradient(135deg,var(--dp-accent) 0%,var(--dp-accent-2) 100%);color:#fff;box-shadow:0 8px 20px color-mix(in srgb,var(--dp-accent) 32%,transparent);transition:filter .15s,box-shadow .15s,opacity .15s,transform .1s}.dp-btn-submit[_ngcontent-%COMP%]:hover:not(:disabled){filter:brightness(1.07)}.dp-btn-submit[_ngcontent-%COMP%]:active:not(:disabled){transform:translateY(1px)}.dp-btn-submit[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}@media (max-width: 480px){.download-picker-overlay[_ngcontent-%COMP%]{align-items:flex-end;padding:0 0 var(--cookie-banner-height, 0px)}.download-picker[_ngcontent-%COMP%]{max-width:100%;max-height:calc(88vh - var(--cookie-banner-height, 0px));border-radius:20px 20px 0 0;animation:_ngcontent-%COMP%_shareSheetIn .22s ease}.download-picker-header[_ngcontent-%COMP%]{padding:24px 20px 12px}
12.download-picker-controls[_ngcontent-%COMP%]{padding:0 20px 12px}.download-picker-list[_ngcontent-%COMP%]{padding:4px 12px}.download-picker-footer[_ngcontent-%COMP%]{padding:14px 20px calc(18px + env(safe-area-inset-bottom,0px))}}.share-modal-overlay[_ngcontent-%COMP%]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);z-index:1001;display:flex;align-items:center;justify-content:center;padding:16px;animation:_ngcontent-%COMP%_shareOverlayIn .18s ease}.share-modal[_ngcontent-%COMP%]{--share-accent: #1a3d68;--share-accent-2: #2a5a8e;--share-accent-ring: color-mix(in srgb, var(--share-accent) 22%, transparent);position:relative;background:#fff;border-radius:22px;width:100%;max-width:440px;border:1px solid rgba(15,23,42,.06);box-shadow:0 28px 80px #0f172a52;overflow:hidden;animation:_ngcontent-%COMP%_shareModalIn .24s cubic-bezier(.16,1,.3,1)}.share-modal-close[_ngcontent-%COMP%]{position:absolute;top:16px;right:16px;z-index:2;background:none;border:none;cursor:pointer;color:#94a3b8;padding:6px;display:flex;align-items:center;border-radius:8px;transition:color .15s,background .15s}.share-modal-close[_ngcontent-%COMP%]:hover{color:#0f172a;background:#0f172a0f}.share-modal-header[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;text-align:center;padding:34px 28px 20px}.share-modal-icon[_ngcontent-%COMP%]{width:70px;height:70px;border-radius:20px;display:flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(155deg,var(--share-accent) 0%,var(--share-accent-2) 100%);box-shadow:0 12px 28px color-mix(in srgb,var(--share-accent) 38%,transparent);margin-bottom:18px}.share-modal-title[_ngcontent-%COMP%]{font-size:23px;font-weight:800;letter-spacing:-.01em;color:#0f172a;margin:0;line-height:1.2}.share-modal-subtitle[_ngcontent-%COMP%]{font-size:14px;color:#64748b;margin:6px 0 0;line-height:1.4}.share-modal-body[_ngcontent-%COMP%]{padding:6px 28px 4px}.share-modal-label[_ngcontent-%COMP%]{display:block;font-size:12.5px;font-weight:600;color:#334155;margin:0 0 7px}.share-modal-label-opt[_ngcontent-%COMP%]{font-weight:400;color:#94a3b8}.share-modal-hint[_ngcontent-%COMP%]{font-size:12px;color:#94a3b8;margin:8px 0 16px;line-height:1.5}.share-modal-input[_ngcontent-%COMP%]{width:100%;box-sizing:border-box;padding:12px 14px;font-size:13.5px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:11px;outline:none;color:#0f172a;transition:border-color .15s,box-shadow .15s,background .15s}.share-modal-input[_ngcontent-%COMP%]:hover{border-color:#cbd5e1}.share-modal-input[_ngcontent-%COMP%]:focus{background:#fff;border-color:var(--share-accent);box-shadow:0 0 0 3px var(--share-accent-ring)}.share-modal-input[_ngcontent-%COMP%]::placeholder{color:#aab4c2}.share-modal-textarea[_ngcontent-%COMP%]{resize:vertical;min-height:78px;font-family:inherit;line-height:1.5}.share-modal-error[_ngcontent-%COMP%]{margin:10px 0 0;font-size:12px;color:#dc2626}.share-success[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;align-items:center;padding:40px 28px 32px;text-align:center}.share-success-icon[_ngcontent-%COMP%]{width:70px;height:70px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:18px;color:#16a34a;background:#f0fdf4;box-shadow:0 0 0 7px #16a34a14;animation:_ngcontent-%COMP%_sharePop .32s cubic-bezier(.16,1,.3,1)}.share-success-title[_ngcontent-%COMP%]{font-size:20px;font-weight:800;letter-spacing:-.01em;color:#0f172a;margin:0 0 8px}.share-success-msg[_ngcontent-%COMP%]{font-size:13.5px;color:#64748b;margin:0 0 16px}.share-success-emails[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:7px;justify-content:center;margin-bottom:26px}.share-success-email[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--share-accent) 8%,#fff);color:var(--share-accent);border:1px solid color-mix(in srgb,var(--share-accent) 22%,#fff);border-radius:20px;padding:5px 13px;font-size:12px;font-weight:600}.share-success-done[_ngcontent-%COMP%]{min-width:150px;justify-content:center}.share-modal-footer[_ngcontent-%COMP%]{display:flex;gap:11px;padding:18px 28px 26px}.share-modal-btn-cancel[_ngcontent-%COMP%], .share-modal-btn-share[_ngcontent-%COMP%]{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:12px 20px;font-size:14px;font-weight:600;border-radius:12px;cursor:pointer}.share-modal-btn-cancel[_ngcontent-%COMP%]{border:1px solid #e2e8f0;background:#fff;color:#475569;transition:background .15s,border-color .15s}.share-modal-btn-cancel[_ngcontent-%COMP%]:hover:not(:disabled){background:#f1f5f9;border-color:#cbd5e1}.share-modal-btn-cancel[_ngcontent-%COMP%]:disabled{opacity:.55;cursor:not-allowed}.share-modal-btn-share[_ngcontent-%COMP%]{border:none;background:linear-gradient(135deg,var(--share-accent) 0%,var(--share-accent-2) 100%);color:#fff;box-shadow:0 8px 20px color-mix(in srgb,var(--share-accent) 32%,transparent);transition:filter .15s,box-shadow .15s,opacity .15s,transform .1s}.share-modal-btn-share[_ngcontent-%COMP%]:hover:not(:disabled){filter:brightness(1.07);box-shadow:0 10px 26px color-mix(in srgb,var(--share-accent) 40%,transparent)}.share-modal-btn-share[_ngcontent-%COMP%]:active:not(:disabled){transform:translateY(1px)}.share-modal-btn-share[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.share-modal-btn-icon[_ngcontent-%COMP%]{flex-shrink:0}@keyframes _ngcontent-%COMP%_shareOverlayIn{0%{opacity:0}
12to{opacity:1}}@keyframes _ngcontent-%COMP%_shareModalIn{0%{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes _ngcontent-%COMP%_sharePop{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.08)}to{transform:scale(1);opacity:1}}@keyframes _ngcontent-%COMP%_shareSheetIn{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.shared-password-gate[_ngcontent-%COMP%]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--background-color, #f5f5f5);padding:24px}.password-gate-card[_ngcontent-%COMP%]{background:#fff;border-radius:12px;padding:40px 36px;max-width:400px;width:100%;text-align:center;box-shadow:0 4px 20px #0000001a}.password-gate-card[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{color:#6b7280;margin-bottom:16px}.password-gate-card[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{font-size:20px;font-weight:700;color:#111;margin:0 0 8px}.password-gate-card[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{font-size:14px;color:#6b7280;margin:0 0 24px;line-height:1.5}.password-gate-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}.password-gate-input[_ngcontent-%COMP%]{width:100%;padding:10px 14px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;outline:none;box-sizing:border-box}.password-gate-input[_ngcontent-%COMP%]:focus{border-color:var(--primary-color, #6366f1);box-shadow:0 0 0 3px #6366f11f}.password-gate-error[_ngcontent-%COMP%]{font-size:13px;color:#dc2626;text-align:left;margin:0}.password-gate-btn[_ngcontent-%COMP%]{padding:10px 0;background:var(--primary-color, #6366f1);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s,opacity .15s}.password-gate-btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--primary-color, #4f46e5)}.password-gate-btn[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed}@media print{.lb-hero-actions[_ngcontent-%COMP%], .folder-nav[_ngcontent-%COMP%], .lightbox-overlay[_ngcontent-%COMP%], .loc-fav-icon[_ngcontent-%COMP%], .loc-gallery-count[_ngcontent-%COMP%]{display:none!important}.shared-lookbook[_ngcontent-%COMP%]{max-width:100%;margin:0}.lb-hero[_ngcontent-%COMP%]{background:var(--menu-color, #1a1a2e)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.location-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(3,1fr)!important}}.map-fullscreen-exit-btn[_ngcontent-%COMP%]{position:fixed;top:16px;right:16px;z-index:9999;display:flex;align-items:center;gap:8px;padding:10px 18px;background:#000000d1;color:#fff;border:2px solid rgba(255,255,255,.3);border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 2px 12px #0006;transition:background .15s,border-color .15s}.map-fullscreen-exit-btn[_ngcontent-%COMP%] .esc-hint[_ngcontent-%COMP%]{padding:2px 6px;border:1px solid rgba(255,255,255,.5);border-radius:4px;font-size:11px;font-family:monospace;opacity:.8}.map-fullscreen-exit-btn[_ngcontent-%COMP%]:hover{background:#000000f2;border-color:#fff9}.lb-disclaimer[_ngcontent-%COMP%]{margin-top:8px;padding:20px 24px 32px;border-top:1px solid #e2e8f0;background:#f8fafc}.lb-disclaimer[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{max-width:900px;margin:0 auto;color:#64748b;font-size:12px;line-height:1.6}.dark-mode[_nghost-%COMP%] .lb-disclaimer[_ngcontent-%COMP%], .dark-mode [_nghost-%COMP%] .lb-disclaimer[_ngcontent-%COMP%]{border-top-color:#334155;background:#0f172a}.dark-mode[_nghost-%COMP%] .lb-disclaimer[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .dark-mode [_nghost-%COMP%] .lb-disclaimer[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:#94a3b8} 13/*# sourceMappingURL=shared-lookbook.component-MHEFPR4B.css.map */`]}));let i=c;return i})();export{Ho as SharedLookbookComponent}; 14//# sourceMappingURL=chunk-ENPKR6NT.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.