.main-content-wrapper.photos-wrapper-main{width:100%;max-width:100%;overflow:hidden}.ph-tile{isolation:isolate;background:#d9d6ce;border-radius:5px;position:relative;overflow:hidden}.ph-tile:before{content:"";background:var(--t-bg,linear-gradient(160deg, #e6e2d9, #c9c4b8));position:absolute;inset:0}.ph-tile:after{content:"";background:radial-gradient(90% 70% at var(--sx,32%) var(--sy,18%), #ffffff6b, #fff0 62%), linear-gradient(180deg, #fff0 62%, #1c202829);position:absolute;inset:0}.ph-tile.ph-has-img:before,.ph-tile.ph-has-img:after{display:none}.ph-tile img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.ph-tone-twilight{--t-bg:linear-gradient(178deg, #39415f 0%, #5d5670 34%, #a97f68 52%, #5a5148 66%, #3b3a35 100%)}.ph-tone-exterior{--t-bg:linear-gradient(178deg, #b7cee2 0%, #d2dde6 38%, #e7e3d8 46%, #93a289 62%, #6e7d66 100%)}.ph-tone-living{--t-bg:linear-gradient(158deg, #f2ece2 0%, #e2d9ca 48%, #cdc2ae 72%, #ab9f8c 100%)}.ph-tone-kitchen{--t-bg:linear-gradient(166deg, #f5f2ec 0%, #e6e2d7 52%, #c8ccc6 78%, #a8ada7 100%)}.ph-tone-bedroom{--t-bg:linear-gradient(152deg, #efe8dd 0%, #dcd2c3 50%, #bfb4a3 76%, #9d9484 100%)}.ph-tone-bath{--t-bg:linear-gradient(160deg, #f4f6f5 0%, #e0e6e6 50%, #c3cdce 76%, #a4b0b1 100%)}.ph-tone-entry{--t-bg:linear-gradient(160deg, #f3eee5 0%, #e4dccd 55%, #c8bda9 80%, #a89c88 100%)}.ph-tone-pool{--t-bg:linear-gradient(178deg, #ccd7c7 0%, #c6d2c2 20%, #8dbdc0 21%, #54929e 62%, #3d7280 100%)}.ph-tone-deck{--t-bg:linear-gradient(178deg, #bad2e5 0%, #d0e0ea 34%, #cdbb9a 36%, #b39c76 68%, #8e7a5b 100%)}.ph-tone-beach{--t-bg:linear-gradient(178deg, #b5cde3 0%, #cfe1ec 38%, #8ec0c6 44%, #c9d8cf 54%, #e7dec8 66%, #d3c6aa 100%)}.ph-tone-aerial{--t-bg:linear-gradient(200deg, #7fb0bd 0%, #a3c3bf 26%, #c9c7a6 52%, #a3b08e 74%, #7e8c6d 100%)}.ph-tone-sunset{--t-bg:linear-gradient(178deg, #565a86 0%, #8d6f8c 30%, #c78f74 52%, #e0a76d 62%, #6f6459 100%)}.ph-tone-green{--t-bg:linear-gradient(178deg, #c2d3de 0%, #c9d7cf 24%, #94b07e 25%, #719363 68%, #5b7a52 100%)}.ph-tone-game{--t-bg:linear-gradient(150deg, #414b5c 0%, #5d6070 48%, #7d7a70 76%, #948e7e 100%)}.ph-tile-empty{background:var(--surface-bg-alt);border:1px dashed var(--border-default)}.ph-tile-empty:before,.ph-tile-empty:after{display:none}.ph-page{background:var(--surface-bg);box-sizing:border-box;width:100%;height:100%;font-family:var(--font-sans);color:var(--fg-primary);flex-direction:column;display:flex;overflow:hidden}.ph-crumb{color:var(--fg-muted);align-items:center;gap:6px;margin-bottom:8px;font-size:11.5px;display:flex}.ph-crumb a{color:var(--fg-muted);text-decoration:none}.ph-crumb a:hover{color:var(--brand-navy)}.ph-crumb .sep{opacity:.5}.ph-crumb .cur{color:var(--fg-secondary);font-weight:500}.ph-head{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:16px;padding-bottom:14px;display:flex}.ph-eye{letter-spacing:.12em;text-transform:uppercase;color:var(--brand-gold);align-items:center;gap:6px;margin-bottom:6px;font-size:10.5px;font-weight:600;display:inline-flex}.ph-eye:before{content:"";background:var(--brand-gold);border-radius:50%;width:5px;height:5px}.ph-title{font-family:var(--font-display);letter-spacing:.005em;text-transform:uppercase;margin:0 0 6px;font-size:30px;font-weight:400;line-height:1.05}.ph-sub{color:var(--fg-secondary);text-wrap:pretty;max-width:70ch;margin:0;font-size:13px;line-height:1.55}.ph-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.ph-paths{grid-template-columns:1fr 1fr;gap:18px;margin-bottom:24px;display:grid}.ph-path{border:1px solid var(--border-default);cursor:pointer;transition:box-shadow .18s var(--ease-out), border-color .18s;background:#fff;border-radius:10px;flex-direction:column;display:flex;position:relative;overflow:hidden}.ph-path:hover{box-shadow:var(--shadow-md);border-color:var(--brand-navy)}.ph-path-art{background:var(--border-subtle);grid-template-columns:repeat(4,1fr);gap:2px;height:150px;display:grid;position:relative}.ph-path-art .ph-tile{border-radius:0}.ph-path-art:after{content:"";background:linear-gradient(#fff0 40%,#ffffffeb 100%);position:absolute;inset:0}.ph-path-body{flex-direction:column;flex:1;gap:8px;padding:16px 20px 20px;display:flex}.ph-path-kicker{letter-spacing:.12em;text-transform:uppercase;color:var(--brand-navy);font-size:10.5px;font-weight:600}.ph-path-title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.005em;margin:0;font-size:23px;font-weight:400;line-height:1.1}.ph-path-desc{color:var(--fg-secondary);text-wrap:pretty;margin:0;font-size:12.5px;line-height:1.55}.ph-path-foot{align-items:center;gap:10px;margin-top:auto;padding-top:12px;display:flex}.ph-stat-row{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px;display:grid}.ph-stat{border:1px solid var(--border-subtle);background:var(--surface-bg-alt);border-radius:8px;padding:14px 16px}.ph-stat-n{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.005em;color:var(--brand-navy);font-size:28px;font-weight:400;line-height:1}.ph-stat-l{color:var(--fg-secondary);margin-top:6px;font-size:11.5px;line-height:1.4}.ph-sec-label{letter-spacing:.1em;text-transform:uppercase;color:var(--fg-muted);align-items:center;gap:10px;margin:15px 0;font-size:11px;font-weight:600;display:flex}.ph-sec-label:after{content:"";background:var(--border-subtle);flex:1;height:1px}.ph-recent{background:var(--border-subtle);border:1px solid var(--border-subtle);border-radius:8px;flex-direction:column;gap:1px;display:flex;overflow:hidden}.ph-recent-row{cursor:pointer;background:#fff;grid-template-columns:52px 1fr auto auto;align-items:center;gap:14px;padding:11px 14px;display:grid}.ph-recent-row:hover{background:var(--surface-bg-alt)}.ph-recent-name{font-size:13.5px;font-weight:600}.ph-recent-meta{color:var(--fg-muted);margin-top:2px;font-size:11.5px}.ph-firsttime{border:1px dashed var(--border-default);text-align:center;background:var(--surface-bg-alt);border-radius:10px;flex-direction:column;align-items:center;padding:34px;display:flex}.ph-vault-layout{flex:1;grid-template-columns:236px minmax(0,1fr);gap:18px;min-height:0;display:grid}.ph-filters{border-right:1px solid var(--border-subtle);flex-direction:column;gap:16px;padding-right:16px;display:flex}.ph-filters .ph-search{flex:none;min-width:0}.ph-filter-group{flex-direction:column;gap:7px;display:flex}.ph-filter-label{letter-spacing:.1em;text-transform:uppercase;color:var(--fg-muted);font-size:10.5px;font-weight:600}.ph-check{color:var(--fg-secondary);cursor:pointer;align-items:center;gap:8px;font-size:12.5px;display:flex}.ph-check .box{border:1.5px solid var(--border-strong);color:#fff;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;display:flex}.ph-check.is-on{color:var(--fg-primary);font-weight:500}.ph-check.is-on .box{background:var(--brand-navy);border-color:var(--brand-navy)}.ph-check .count{color:var(--fg-muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:11px}.ph-daterange{gap:6px;display:flex}.ph-daterange input{border:1px solid var(--border-default);background:var(--surface-bg-alt);min-width:0;color:var(--fg-secondary);border-radius:5px;flex:1;padding:6px 8px;font-family:inherit;font-size:11.5px}.ph-tagcloud{flex-wrap:wrap;gap:5px;display:flex}.ph-tag{background:var(--neutral-100);color:var(--fg-secondary);white-space:nowrap;cursor:default;border:1px solid #0000;border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:10.5px;display:inline-flex}.ph-tag.is-on{background:var(--brand-navy-08);color:var(--brand-navy);border-color:#202a4447;font-weight:600}.ph-tag.is-ai{background:var(--brand-plum-08);color:var(--ai);border-color:var(--brand-plum-14)}button.ph-tag{border:none;font-family:inherit}.ph-vault-main{flex-direction:column;min-width:0;display:flex}.ph-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.ph-chipbar{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;display:flex}.ph-chip{border:1px solid var(--ai);background:var(--brand-plum-08,#7c6bad1a);color:var(--ai);border-radius:999px;align-items:center;gap:6px;padding:4px 8px 4px 10px;font-size:11.5px;font-weight:600;display:inline-flex}.ph-chip button{color:inherit;cursor:pointer;opacity:.6;background:0 0;border:0;padding:0;display:flex}.ph-chip button:hover{opacity:1}.ph-chip-clear{color:var(--fg-muted);cursor:pointer;text-underline-offset:2px;background:0 0;border:0;font-size:11.5px;text-decoration:underline}.ph-count{color:var(--fg-muted);font-variant-numeric:tabular-nums;font-size:12px}.ph-viewtoggle{border:1px solid var(--border-default);border-radius:6px;display:inline-flex;overflow:hidden}.ph-viewtoggle button{cursor:pointer;color:var(--fg-muted);background:#fff;border:0;align-items:center;padding:6px 9px;display:flex}.ph-viewtoggle button.is-on{background:var(--brand-navy);color:#fff}.ph-grid{grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px;display:grid}.ph-asset{border:1px solid var(--border-subtle);background:#fff;border-radius:8px;transition:box-shadow .16s,border-color .16s;position:relative;overflow:hidden}.ph-asset:hover{box-shadow:var(--shadow-sm);border-color:var(--border-default)}.ph-asset.is-selected{border-color:var(--brand-navy);box-shadow:0 0 0 2px var(--brand-navy-08)}.ph-asset-thumb{aspect-ratio:16/10;position:relative}.ph-asset-thumb .ph-tile{border-radius:0;position:absolute;inset:0}.ph-asset-body{flex-direction:column;gap:6px;padding:9px 10px 11px;display:flex}.ph-asset-name{text-wrap:pretty;font-size:12.5px;font-weight:600;line-height:1.35}.ph-asset-meta{color:var(--fg-muted);align-items:center;gap:6px;font-size:10.5px;display:flex}.ph-srcbadge{letter-spacing:.02em;color:var(--brand-navy);background:#fffffff0;border-radius:4px;align-items:center;gap:4px;padding:3px 7px;font-size:10px;font-weight:600;display:inline-flex;position:absolute;top:8px;left:8px;box-shadow:0 1px 3px #00000024}.ph-srcbadge.is-sky{color:#2f5f7a}.ph-srcbadge.is-gold{color:#7d661c}.ph-selbox{color:#fff;background:#ffffffeb;border:1.5px solid #202a4459;border-radius:4px;justify-content:center;align-items:center;width:18px;height:18px;display:flex;position:absolute;top:8px;right:8px}.ph-selbox.is-on{background:var(--brand-navy);border-color:var(--brand-navy)}.ph-hoveracts{background:linear-gradient(#10141c00 0%,#10141c9e 100%);gap:4px;padding:8px;display:flex;position:absolute;inset:auto 0 0}.ph-hoveract{color:var(--brand-navy);cursor:pointer;background:#fffffff0;border:0;border-radius:4px;align-items:center;gap:4px;padding:4px 8px;font-size:10.5px;font-weight:600;display:inline-flex}.ph-hoveract:hover{background:#fff}.ph-hoveract.is-danger{color:var(--error)}.ph-bulkbar{background:var(--brand-navy);color:#fff;border-radius:8px;align-items:center;gap:10px;margin-bottom:12px;padding:9px 14px;display:flex}.ph-bulkbar b{font-size:13px;font-weight:600}.ph-bulkbar .spacer{flex:1}.ph-bulkbtn{color:#fff;cursor:pointer;background:#ffffff24;border:1px solid #ffffff3d;border-radius:5px;align-items:center;gap:6px;padding:5px 10px;font-family:inherit;font-size:12px;font-weight:600;display:inline-flex}.ph-bulkbtn:hover{background:#ffffff3d}.ph-bulkbtn.is-danger{color:#f0c7c3;border-color:#f0c7c34d}.ph-empty{border:1px dashed var(--border-default);text-align:center;background:var(--surface-bg-alt);border-radius:10px;flex-direction:column;align-items:center;padding:52px 34px;display:flex}.ph-empty-t{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.005em;margin:14px 0 6px;font-size:20px;font-weight:400}.ph-empty-d{color:var(--fg-secondary);max-width:46ch;margin:0 auto 16px;font-size:12.5px;line-height:1.6}.ph-detail{flex:1;grid-template-columns:minmax(0,1.55fr) 340px;gap:22px;min-height:0;display:grid}.ph-detail-stage{background:#191d24;border-radius:10px;justify-content:center;align-self:start;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden}.ph-detail-stage .ph-tile{aspect-ratio:16/10;border-radius:0;width:100%;height:auto}.ph-detail-caption{color:#fff;background:linear-gradient(#0000,#0009);justify-content:space-between;gap:14px;padding:14px 18px;font-size:11.5px;display:flex;position:absolute;bottom:0;left:0;right:0}.ph-side{flex-direction:column;gap:14px;display:flex;overflow:hidden}.ph-kv{border-bottom:1px solid var(--border-subtle);flex-direction:column;gap:3px;padding:9px 0;display:flex}.ph-kv-k{letter-spacing:.09em;text-transform:uppercase;color:var(--fg-muted);font-size:10.5px;font-weight:600}.ph-kv-v{color:var(--fg-primary);text-wrap:pretty;font-size:13px;line-height:1.5}.ph-usage{background:var(--brand-gold-12);color:#6f5a17;border:1px solid #b8972a40;border-radius:8px;align-items:center;gap:10px;padding:11px 13px;font-size:12.5px;display:flex}.ph-usage b{font-weight:600}.ph-ws-head{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:14px;padding-bottom:14px;display:flex}.ph-homeid{align-items:center;gap:12px;display:flex}.ph-unit{font-family:var(--font-mono);letter-spacing:.06em;background:var(--brand-navy);color:#fff;border-radius:4px;padding:3px 7px;font-size:11px}.ph-changehome{color:var(--brand-navy);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;align-items:center;gap:5px;font-size:11.5px;font-weight:600;text-decoration:underline;display:inline-flex}.ph-savenote{color:var(--fg-muted);font-size:11.5px}.ph-restore{background:var(--surface-bg-alt);border:1px solid var(--border-default);border-left:3px solid var(--brand-gold);border-radius:8px;align-items:center;gap:14px;margin-bottom:16px;padding:12px 16px;display:flex}.ph-restore-t{font-size:13px;font-weight:600}.ph-restore-d{color:var(--fg-secondary);margin-top:2px;font-size:11.5px}.ph-ws{flex:1;grid-template-columns:minmax(0,1fr) 252px;gap:18px;min-height:0;display:grid}.ph-ws.no-vault{grid-template-columns:minmax(0,1fr) 200px}.ph-ws-main{flex-direction:column;gap:14px;min-width:0;display:flex}.ph-ws-main>*{flex:none}.ph-toolrow{border:1px solid var(--border-subtle);background:var(--surface-bg-alt);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:9px 11px;display:flex}.ph-ai-btn{color:var(--ai);border:1px solid var(--brand-plum-14);cursor:pointer;background:#fff;border-radius:5px;align-items:center;gap:6px;padding:7px 12px;font-family:inherit;font-size:12.5px;font-weight:600;transition:all .14s;display:inline-flex}.ph-ai-btn:hover{background:var(--brand-plum-08);border-color:var(--ai)}.ph-ai-btn[disabled]{opacity:.5;cursor:not-allowed}.ph-band{border:1px solid var(--border-subtle);border-radius:10px;padding:12px 14px 14px}.ph-band.is-hook{background:linear-gradient(#b8972a12,#b8972a00);border-color:#b8972a4d}.ph-band-head{align-items:baseline;gap:10px;margin-bottom:11px;display:flex}.ph-band-t{letter-spacing:.1em;text-transform:uppercase;color:var(--brand-gold);font-size:11.5px;font-weight:600}.ph-band.is-tour .ph-band-t{color:var(--fg-muted)}.ph-band-d{color:var(--fg-secondary);font-size:11.5px}.ph-photogrid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px;display:grid}.ph-photogrid.is-tight{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:10px}.ph-densityrow{justify-content:flex-end;margin:-4px 0 8px;display:flex}.ph-roomlevel{margin-bottom:14px}.ph-roomlevel-t{letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);margin:6px 2px 8px;font-size:11px;font-weight:600}.ph-roomrow{border:1px solid var(--border-default);border-radius:8px;margin-bottom:10px;padding:10px}.ph-roomrow.is-over{border-color:var(--brand-navy);background:var(--brand-navy-08)}.ph-roomrow-head{justify-content:space-between;margin-bottom:6px;font-size:12.5px;font-weight:600;display:flex}.ph-roomrow-count{color:var(--fg-muted);font-weight:400}.ph-roomrow-strip{flex-wrap:wrap;gap:6px;min-height:78px;display:flex}.ph-roomrow-strip.is-empty{flex-wrap:nowrap;align-items:center}.ph-roomcard{cursor:grab;background:0 0;border:0;border-radius:5px;flex:none;width:104px;height:78px;padding:0;position:relative;overflow:hidden}.ph-roomcard .ph-tile{border-radius:5px;width:100%;height:100%;display:block}.ph-photo{border:1px solid var(--border-subtle);cursor:pointer;text-align:left;box-shadow:var(--shadow-sm);background:0 0;border:0;border-radius:8px;flex-direction:column;justify-content:space-between;padding:0;transition:transform .3s ease-in-out;display:flex;position:relative;overflow:hidden}.ph-photo:hover{transform:rotate(1deg)}.ph-photo.is-drag{box-shadow:var(--shadow-lg);border-color:var(--brand-navy);z-index:3;opacity:.85;cursor:grabbing;transform:rotate(-1.4deg)scale(1.02)}.ph-photo.is-drop-target{outline:2px dashed var(--brand-navy);outline-offset:0;background:var(--brand-navy-08)}.ph-photo.is-selected{border-color:var(--brand-navy);box-shadow:0 0 0 2px var(--brand-navy-08)}.ph-photo-thumb{aspect-ratio:16/10;position:relative}.ph-photo-thumb .ph-tile{border-radius:0;position:absolute;inset:0}.ph-rank{min-width:20px;height:20px;color:var(--brand-navy);font-variant-numeric:tabular-nums;background:#fffffff0;border-radius:4px;justify-content:center;align-items:center;padding:0 5px;font-size:11px;font-weight:700;display:flex;position:absolute;top:7px;left:7px;box-shadow:0 1px 3px #00000029}.ph-rank.is-hook{background:var(--brand-gold);color:#fff}.ph-appeal{color:#fff;font-variant-numeric:tabular-nums;background:#10141c9e;border-radius:4px;align-items:center;gap:3px;height:20px;padding:0 6px;font-size:10.5px;font-weight:600;display:inline-flex;position:absolute;top:7px;right:7px}.ph-photo-body{flex-direction:column;gap:5px;height:100%;padding:8px 9px 10px;display:flex}.ph-photo-cat{font-size:11.5px;font-weight:600;line-height:1.3}.ph-photo-room{color:var(--fg-muted);align-items:center;gap:4px;font-size:10.5px;display:flex}.ph-photo-cap{color:var(--fg-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:11px;line-height:1.45;display:-webkit-box;overflow:hidden}.ph-photo-flags{flex-wrap:wrap;align-items:center;gap:5px;margin-top:auto;display:flex}.ph-flag{letter-spacing:.03em;text-transform:uppercase;border-radius:3px;align-items:center;gap:3px;padding:2px 5px;font-size:9.5px;font-weight:600;display:inline-flex}.ph-flag.ok{color:#4f6b4f;background:#6b8e6b24}.ph-flag.missing{color:#8a5f33;background:#b8895a29}.ph-dropline{border:1.5px dashed var(--brand-navy);background:var(--brand-navy-08);color:var(--brand-navy);border-radius:8px;justify-content:center;align-items:center;min-height:120px;font-size:11px;font-weight:600;display:flex}.ph-vpanel{border-left:1px solid var(--border-subtle);flex-direction:column;gap:12px;min-height:0;padding-left:16px;display:flex}.ph-vpanel-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.ph-vpanel-t{letter-spacing:.1em;text-transform:uppercase;color:var(--fg-muted);font-size:11px;font-weight:600}.ph-vpanel-note{color:var(--fg-secondary);background:var(--surface-bg-alt);text-wrap:pretty;border-radius:6px;padding:8px 10px;font-size:11px;line-height:1.5}.ph-vcontrols{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}.ph-seg.ph-vscope{width:100%}.ph-seg.ph-vscope button{flex:1;justify-content:center}.ph-vfilter-row{gap:6px;display:flex}.ph-vtype,.ph-vquery{border:1px solid var(--border-default);color:var(--fg-primary);background:#fff;border-radius:6px;padding:4px 7px;font-family:inherit;font-size:11.5px}.ph-vquery{flex:1;min-width:0}.ph-vgroup-t{justify-content:space-between;align-items:center;margin:0 0 7px;font-size:11.5px;font-weight:600;display:flex}.ph-vgroup-t span{color:var(--fg-muted);font-size:10.5px;font-weight:400}.ph-vgrid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.ph-vcard{border:1px solid var(--border-subtle);cursor:grab;background:#fff;border-radius:6px;position:relative;overflow:hidden}.ph-vcard.is-selected{border-color:var(--brand-navy);box-shadow:0 0 0 2px var(--brand-navy-08)}.ph-vcard .ph-tile{aspect-ratio:16/10;border-radius:0}.ph-vcard-n{color:var(--fg-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;padding:5px 6px 6px;font-size:10px;line-height:1.35;display:-webkit-box;overflow:hidden}.ph-vcollapsed{border-left:1px solid var(--border-subtle);flex-direction:column;align-items:center;gap:12px;width:44px;padding-top:6px;display:flex}.ph-vcollapsed-label{writing-mode:vertical-rl;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-muted);font-size:10.5px;font-weight:600}.ph-rail{border-left:1px solid var(--border-subtle);flex-direction:column;gap:12px;padding-left:16px;display:flex}.ph-rail-card{border:1px solid var(--border-subtle);background:var(--surface-bg-alt);border-radius:8px;flex-direction:column;gap:8px;padding:12px;display:flex}.ph-rail-card button{justify-content:center;display:inline-flex}.ph-rail-t{letter-spacing:.1em;text-transform:uppercase;color:var(--fg-muted);font-size:10.5px;font-weight:600}.ph-readyrow{color:var(--fg-secondary);justify-content:space-between;align-items:center;font-size:11.5px;display:flex}.ph-readyrow b{color:var(--fg-primary);font-variant-numeric:tabular-nums;font-weight:600}.ph-btn-block{justify-content:center;width:100%}.ph-edge-tabs,.ph-drawer-backdrop,.ph-rail-drawerhead{display:none}@media (max-width:1440px){.ph-photogrid.is-tight{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.ph-ws,.ph-ws.no-vault{grid-template-columns:minmax(0,1fr)!important}.ph-vcollapsed{display:none}.ph-edge-tabs{z-index:56;flex-direction:column;gap:8px;display:flex;position:fixed;top:50%;right:0;transform:translateY(-50%)}.ph-edge-tab{letter-spacing:.02em;color:#fff;background:var(--brand-navy);cursor:pointer;box-shadow:var(--shadow-sm);white-space:nowrap;border:0;border-radius:8px 0 0 8px;padding:10px 13px;font-family:inherit;font-size:11px;font-weight:600}.ph-edge-tab.is-active{background:var(--brand-gold)}.ph-drawer-backdrop.is-open{z-index:58;background:#10141c66;display:block;position:fixed;inset:0}.ph-vpanel,.ph-rail{border-left:1px solid var(--border-subtle);background:var(--surface-bg);z-index:60;pointer-events:none;width:min(380px,92vw);margin:0;padding:18px 18px 24px;transition:transform .26s;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(100%);box-shadow:-14px 0 30px #10141c38}.ph-vpanel.is-open,.ph-rail.is-open{pointer-events:auto;transform:translate(0)}.ph-rail-drawerhead{justify-content:space-between;align-items:center;margin-bottom:2px;display:flex}}.ph-ensuite{letter-spacing:.04em;text-transform:uppercase;background:var(--brand-sky-20);color:#2f5f7a;border-radius:3px;align-items:center;gap:3px;padding:2px 5px;font-size:9.5px;font-weight:600;display:inline-flex}.ph-ota{flex-wrap:wrap;gap:4px;display:flex}.ph-ota-chip{background:var(--neutral-100);color:var(--fg-muted);white-space:nowrap;border-radius:3px;padding:2px 6px;font-size:9.5px}.ph-ota-chip b{color:var(--fg-secondary);font-weight:600}.ph-scrim{z-index:99;background:#10141c70;justify-content:center;align-items:center;padding:36px;display:flex;position:fixed;inset:0}.ph-modal{box-shadow:var(--shadow-xl);background:#fff;border-radius:12px;flex-direction:column;width:100%;max-width:620px;max-height:100%;display:flex;overflow:hidden}.ph-modal.is-wide{max-width:960px}.ph-modal.is-narrow{max-width:460px}.ph-modal-head{border-bottom:1px solid var(--border-subtle);align-items:flex-start;gap:14px;padding:18px 22px 14px;display:flex}.ph-modal-t{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.005em;margin:0;font-size:21px;font-weight:400;line-height:1.1}.ph-modal-s{color:var(--fg-secondary);text-wrap:pretty;margin:5px 0 0;font-size:12.5px;line-height:1.55}.ph-modal-body{flex-direction:column;gap:16px;padding:18px 22px;display:flex;overflow:auto}.ph-overflow-select:has(.ui-select-trigger[aria-expanded=true]){overflow:visible}.ph-modal:has(.ph-overflow-select .ui-select-trigger[aria-expanded=true]){overflow:visible}.ph-modal-foot{border-top:1px solid var(--border-subtle);background:var(--surface-bg-alt);align-items:center;gap:10px;padding:14px 22px;display:flex}.ph-modal-foot .spacer{flex:1}.ph-modal-x{cursor:pointer;color:var(--fg-muted);background:0 0;border:0;margin-left:auto;padding:4px;display:flex}.ph-field{flex-direction:column;gap:6px;display:flex}.ph-field-l{letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);font-size:11px;font-weight:600}.ph-input,.ph-textarea,.ph-select{border:1px solid var(--border-default);color:var(--fg-primary);box-sizing:border-box;background:#fff;border-radius:6px;width:100%;padding:9px 11px;font-family:inherit;font-size:13px;line-height:1.5}.ph-textarea{resize:none}.ph-input.is-focused{border-color:var(--brand-navy);box-shadow:0 0 0 3px var(--brand-navy-08)}.ph-help{color:var(--fg-muted);justify-content:space-between;gap:10px;font-size:11px;display:flex}.ph-radio-row{gap:8px;display:flex}.ph-radio{border:1px solid var(--border-default);cursor:pointer;text-align:left;background:#fff;border-radius:7px;flex:1;padding:10px 12px;font-family:inherit}.ph-radio.is-on{border-color:var(--brand-navy);background:var(--brand-navy-08)}.ph-radio-t{align-items:center;gap:6px;font-size:12.5px;font-weight:600;display:flex}.ph-radio-d{color:var(--fg-muted);margin-top:3px;font-size:10.5px;line-height:1.4}.ph-uploadrow{border-bottom:1px solid var(--border-subtle);grid-template-columns:78px 1fr auto;align-items:center;gap:12px;padding:9px 0;display:grid}.ph-progress{background:var(--neutral-100);border-radius:2px;height:4px;margin-top:6px;overflow:hidden}.ph-progress i{background:var(--brand-navy);border-radius:2px;height:100%;display:block}.ph-ai-panel{border:1px solid var(--brand-plum-14);background:var(--brand-plum-08);border-radius:9px;flex-direction:column;gap:10px;padding:14px 16px;display:flex}.ph-ai-t{letter-spacing:.1em;text-transform:uppercase;color:var(--ai);align-items:center;gap:7px;font-size:11px;font-weight:600;display:flex}.ph-ai-body{color:var(--fg-secondary);text-wrap:pretty;font-size:12.5px;line-height:1.6}.ph-diff{border:1px solid var(--border-subtle);background:#fff;border-radius:7px;padding:11px 13px}.ph-diff-l{letter-spacing:.09em;text-transform:uppercase;color:var(--fg-muted);margin-bottom:5px;font-size:10px;font-weight:600}.ph-diff.is-old{opacity:.62}.ph-diff.is-new{border-color:var(--brand-plum-14);box-shadow:0 0 0 2px var(--brand-plum-08)}.ph-diff-txt{color:var(--fg-primary);text-wrap:pretty;font-size:12.5px;line-height:1.55}.ph-spinner{border:2px solid var(--brand-plum-14);border-top-color:var(--ai);border-radius:50%;width:16px;height:16px;animation:.9s linear infinite ph-spin}@keyframes ph-spin{to{transform:rotate(360deg)}}.ph-progress-lg{background:#7c6bad2e;border-radius:3px;height:6px;overflow:hidden}.ph-progress-lg i{background:var(--ai);border-radius:3px;height:100%;display:block}.ph-steps{flex-direction:column;gap:7px;display:flex}.ph-step{color:var(--fg-muted);align-items:center;gap:9px;font-size:12px;display:flex}.ph-step.is-done{color:var(--fg-secondary)}.ph-step.is-active{color:var(--ai);font-weight:600}.ph-step-dot{border:1.5px solid;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:15px;height:15px;display:flex}.ph-step.is-done .ph-step-dot{background:var(--ai);border-color:var(--ai);color:#fff}.ph-thumbstrip{flex-wrap:wrap;gap:5px;display:flex}.ph-thumbstrip .ph-tile{border-radius:3px;width:40px;height:30px}.ph-thumbstrip .ph-tile.is-pending{opacity:.35}.ph-toast{background:var(--brand-navy);color:#fff;box-shadow:var(--shadow-lg);z-index:30;border-radius:8px;align-items:center;gap:14px;padding:10px 14px;font-size:12.5px;display:flex;position:absolute;bottom:26px;left:50%;transform:translate(-50%)}.ph-toast button{color:#fff;cursor:pointer;background:#ffffff29;border:1px solid #ffffff42;border-radius:5px;padding:4px 10px;font-family:inherit;font-size:12px;font-weight:600}.ph-valid{border:1px solid var(--border-subtle);border-radius:8px;flex-direction:column;gap:1px;display:flex;overflow:hidden}.ph-valid-row{background:#fff;align-items:center;gap:10px;padding:10px 13px;font-size:12.5px;display:flex}.ph-valid-row+.ph-valid-row{border-top:1px solid var(--border-subtle)}.ph-valid-row .n{font-variant-numeric:tabular-nums;color:var(--fg-muted);margin-left:auto;font-size:12px}.ph-valid-ic{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:flex}.ph-valid-ic.ok{background:var(--success)}.ph-valid-ic.warn{background:var(--warning)}.ph-filelist{font-family:var(--font-mono);color:var(--fg-secondary);flex-direction:column;gap:1px;font-size:11.5px;display:flex}.ph-filelist div{border-bottom:1px solid var(--border-subtle);justify-content:space-between;padding:6px 0;display:flex}.ph-saves{border:1px solid var(--border-subtle);border-radius:8px;flex-direction:column;display:flex;overflow:hidden}.ph-save{background:#fff;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:13px 16px;display:grid}.ph-save+.ph-save{border-top:1px solid var(--border-subtle)}.ph-save.is-current{background:var(--surface-bg-alt)}.ph-save-dot{background:var(--border-strong);border-radius:50%;width:9px;height:9px}.ph-save.is-current .ph-save-dot{background:var(--brand-gold);box-shadow:0 0 0 3px var(--brand-gold-12)}.ph-save-when{font-size:13px;font-weight:600}.ph-save-meta{color:var(--fg-muted);margin-top:3px;font-size:11.5px}.ph-save-note{color:var(--fg-secondary);text-wrap:pretty;margin-top:4px;font-size:11.5px}.ph-save-acts{gap:6px;display:flex}.ph-danger-box{color:#7d3d38;background:#b06a6412;border:1px solid #b06a644d;border-radius:8px;padding:12px 14px;font-size:12.5px;line-height:1.55}.ph-hd-section{border:1px solid var(--border-subtle);background:#fff;border-radius:10px;overflow:hidden}.ph-hd-head{border-bottom:1px solid var(--border-subtle);align-items:center;gap:14px;padding:14px 18px;display:flex}.ph-hd-t{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.005em;margin:0;font-size:19px;font-weight:400}.ph-hd-body{padding:16px 18px 18px}.ph-hd-strip{grid-template-columns:repeat(8,1fr);gap:6px;margin-bottom:14px;display:grid}.ph-hd-strip .ph-tile{aspect-ratio:16/10}.ph-hd-more{background:var(--surface-bg-alt);border:1px solid var(--border-subtle);color:var(--fg-muted);border-radius:5px;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:flex}.ph-hd-metrics{gap:26px;padding:12px 0 0;display:flex}.ph-hd-metric-n{font-variant-numeric:tabular-nums;font-size:19px;font-weight:600;line-height:1}.ph-hd-metric-l{letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);margin-top:5px;font-size:10.5px}.ph-pub{z-index:3;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:5px;align-items:center;gap:5px;height:20px;padding:0 7px;font-size:9.5px;font-weight:700;line-height:1;display:inline-flex;position:absolute;bottom:7px;left:7px}.ph-pub.web{color:var(--fg-secondary);background:#ffffffeb;border:1px solid #00000012}.ph-pub.synced{background:var(--brand-navy);color:#fff}.ph-pub.pending{color:var(--fg-muted);border:1px solid var(--border-default);background:#ffffffeb}.ph-pub.failed{background:var(--warning);color:#fff}.ph-pub.off{color:#fff;background:#0000008c}.ph-pub.is-static{position:static}.ph-pub-sp{border:1.5px solid;border-right-color:#0000;border-radius:50%;flex-shrink:0;width:9px;height:9px;animation:.9s linear infinite ph-spin}.ph-segrow{align-items:center;gap:12px;margin-bottom:12px;display:flex}.ph-seg{border:1px solid var(--border-default);background:#fff;border-radius:7px;width:fit-content;display:inline-flex;overflow:hidden}.ph-seg button{color:var(--fg-secondary);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:6px 12px;font-family:inherit;font-size:11.5px;font-weight:600;display:inline-flex}.ph-seg button+button{border-left:1px solid var(--border-subtle)}.ph-seg button .n{font-variant-numeric:tabular-nums;color:var(--fg-muted);font-weight:500}.ph-seg button.is-on{background:var(--brand-navy);color:#fff}.ph-seg button.is-on .n{color:#ffffffb3}.ph-switch{cursor:pointer;color:var(--fg-primary);align-items:center;gap:9px;font-size:12.5px;display:inline-flex}.ph-switch .track{background:#d7d3ca;border-radius:999px;flex-shrink:0;width:34px;height:19px;transition:background .15s;position:relative}.ph-switch .track i{background:#fff;border-radius:50%;width:15px;height:15px;transition:left .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000038}.ph-switch.is-on .track{background:var(--brand-navy)}.ph-switch.is-on .track i{left:17px}.ph-syncline{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.ph-syncpill{background:var(--neutral-100);color:var(--fg-secondary);font-variant-numeric:tabular-nums;border:1px solid #0000;border-radius:999px;align-items:center;gap:4px;padding:2px 7px;font-family:inherit;font-size:10.5px;font-weight:600;display:inline-flex}.ph-syncpill.ok{color:#4f6b4f;background:#6b8e6b24}.ph-syncpill.warn{color:#8a5f33;cursor:pointer;text-underline-offset:2px;background:#b8895a33;text-decoration:underline}.ph-pubbox{border:1px solid var(--border-subtle);background:var(--surface-bg-alt);border-radius:8px;flex-direction:column;gap:10px;padding:12px;display:flex}.ph-pubbox.is-failed{background:#b8895a14;border-color:#b8895a80}.ph-pubstate{color:var(--fg-secondary);align-items:center;gap:8px;font-size:12px;display:flex}.ph-hr{background:var(--border-subtle);border:0;height:1px;margin:0}.ph-scroll{min-height:0;overflow-y:auto}.ph-note{color:var(--fg-muted);font-size:11.5px;line-height:1.55}.ph-search{border:1px solid var(--border-default);border-radius:var(--radius-pill);height:34px;color:var(--fg-muted);background:#fff;align-items:center;gap:8px;padding:0 10px;display:flex}.ph-search input{font:inherit;color:var(--fg-primary);background:0 0;border:0;outline:0;width:100%;font-size:12.5px}.ph-btn-danger{color:var(--error);border-color:#b06a6459}.ph-btn-danger:hover{background:#b06a6414;border-color:#b06a6480}.ph-tbl-toolbar{flex-wrap:wrap;gap:12px;margin:4px 0 14px;display:flex}.ph-tbl-search{border:1px solid var(--border-default);width:320px;max-width:100%;height:38px;color:var(--fg-muted);background:#fff;border-radius:8px;align-items:center;gap:9px;padding:0 12px;display:flex}.ph-tbl-search input{font:inherit;color:var(--fg-primary);background:0 0;border:0;outline:0;width:100%;font-size:13px}.ph-tbl-search-x{color:var(--fg-muted);cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.ph-tbl-filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ph-tbl-clear{font:inherit;color:var(--ai);cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;font-size:12px;font-weight:600;display:inline-flex}.ph-tbl-sortbar{border-top:1px solid var(--border-subtle);justify-content:flex-end;align-items:center;gap:16px;padding:12px 0;display:flex}.ph-tbl-sortbar-group{align-items:center;gap:8px;display:flex}.ph-tbl-sortbar-label{letter-spacing:.05em;text-transform:uppercase;color:var(--fg-muted);white-space:nowrap;font-size:10.5px;font-weight:700}.ph-tbl-sortbar-div{background:var(--border-subtle);width:1px;height:18px}.ph-tbl{border:1px solid var(--border-subtle);box-shadow:var(--shadow-xs);background:#fff;border-radius:10px;overflow:hidden}.ph-tbl-head,.ph-tbl-row{grid-template-columns:56px minmax(0,1fr) 200px 160px 130px 26px;align-items:center;gap:14px;padding:0 16px;display:grid}.ph-tbl-head{background:var(--surface-bg-alt);border-bottom:1px solid var(--border-subtle);letter-spacing:.08em;text-transform:uppercase;height:38px;color:var(--fg-muted);font-size:10.5px;font-weight:600}.ph-tbl-row{border-bottom:1px solid var(--border-subtle);cursor:pointer;min-height:62px;color:inherit;text-decoration:none;transition:background .12s}.ph-tbl-row:last-child{border-bottom:0}.ph-tbl-row:hover{background:var(--surface-bg-alt)}.ph-tbl-row.is-archived{opacity:.5}.ph-tbl-thumb{border-radius:5px;flex-shrink:0;width:56px;height:38px}.ph-tbl-main{flex-direction:column;gap:2px;min-width:0;display:flex}.ph-tbl-title{color:var(--fg-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:600;overflow:hidden}.ph-tbl-sub{font-family:var(--font-mono);color:var(--fg-muted);white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;overflow:hidden}.ph-tbl-cell{color:var(--fg-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.ph-tbl-go{color:var(--fg-muted);place-items:center;display:grid}.ph-tbl-empty{text-align:center;color:var(--fg-muted);padding:40px;font-size:13px}.ph-tbl-pagerow{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:14px;display:flex}.ph-tbl-pagecount{color:var(--fg-muted);white-space:nowrap;font-size:12px}.ph-tbl-pagination{flex-wrap:wrap;align-items:center;gap:3px;display:flex}.ph-tbl-page-btn,.ph-tbl-page-num{border:1px solid var(--border-default);color:var(--fg-secondary);font:inherit;cursor:pointer;background:#fff;border-radius:7px;min-width:30px;height:30px;padding:0 9px;font-size:12px;font-weight:600}.ph-tbl-page-btn:hover:not(:disabled),.ph-tbl-page-num:hover:not(.is-on){border-color:var(--ai);color:var(--ai)}.ph-tbl-page-btn:disabled{opacity:.4;cursor:default}.ph-tbl-page-num{padding:0}.ph-tbl-page-num.is-on{background:var(--ai);border-color:var(--ai);color:#fff}.ph-tbl-page-dots{color:var(--fg-muted);padding:0 2px;font-size:12px}
