:root {
  --bg: #f5f1ec;
  --card: rgba(255,255,255,0.84);
  --line: rgba(52,44,36,0.10);
  --text: #2f2924;
  --muted: #74685e;
  --warm: #a86d3d;
  --sage: #5e6e54;
  --sage-bg: rgba(94,110,84,0.10);
  --ink: #29313a;
  --danger: #8b4a43;
  --danger-bg: rgba(139,74,67,0.08);
  --shadow: 0 16px 40px rgba(63,44,26,0.08);
  --shadow-hover: 0 18px 34px rgba(63,44,26,0.13);
  --r-xl: 24px;
  --r-lg: 18px;
  --r-md: 12px;
  --r-sm: 8px;
  --ease: 200ms cubic-bezier(.4,0,.2,1);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;overflow-wrap:break-word;word-break:break-word}
body{font-family:"Avenir Next","Trebuchet MS",system-ui,sans-serif;color:var(--text);background:linear-gradient(180deg,#f8f4ef 0%,var(--bg) 50%,#ece4db 100%);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.modal-open{overflow:hidden}
button,input{font:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--warm);outline-offset:2px;border-radius:var(--r-sm)}
img{display:block;max-width:100%}

/* Shell */
.app-shell{width:min(1060px,calc(100vw - 32px));margin:20px auto 48px}
.shell{display:grid;gap:16px}
.view{display:grid;gap:14px}

/* Loading */
.loading-state,.error-state{min-height:55vh;display:grid;place-items:center;text-align:center;padding:40px 20px}
.loading-state h1,.error-state h1{margin:8px 0 0;font-family:"Iowan Old Style",Georgia,serif;font-size:clamp(1.8rem,4vw,3rem);font-weight:600}
.loading-dots{display:flex;gap:6px;justify-content:center;margin-top:16px}
.loading-dots span{width:7px;height:7px;border-radius:50%;background:var(--warm);animation:pulse 1.2s ease-in-out infinite}
.loading-dots span:nth-child(2){animation-delay:.2s}
.loading-dots span:nth-child(3){animation-delay:.4s}
@keyframes pulse{0%,80%,100%{opacity:.25;transform:scale(.85)}40%{opacity:1;transform:scale(1)}}

/* Eyebrow */
.eyebrow{margin:0;text-transform:uppercase;letter-spacing:.2em;font-size:.7rem;font-weight:700;color:var(--muted)}

/* Card */
.card{background:var(--card);border:1px solid rgba(255,255,255,.6);border-radius:var(--r-lg);backdrop-filter:blur(14px);box-shadow:var(--shadow)}
.mini-section{padding:16px}
.section-title{margin:4px 0 6px;font-family:"Iowan Old Style",Georgia,serif;font-weight:600;letter-spacing:-.02em;font-size:1.1rem}
.section-subtitle{margin:0;color:var(--muted);line-height:1.55;font-size:.88rem}
.empty-state{padding:28px;text-align:center}

/* Banner */
.banner{padding:10px 14px;border-radius:12px;background:rgba(41,49,58,.92);color:white;font-size:.86rem;box-shadow:var(--shadow);display:flex;align-items:center;gap:8px;justify-content:space-between}
.banner-dismiss{border:none;background:rgba(255,255,255,.2);color:white;width:28px;height:28px;border-radius:50%;font-size:1rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;transition:background var(--ease);line-height:1}
.banner-dismiss:active{background:rgba(255,255,255,.35)}
@media(hover:hover){.banner-dismiss:hover{background:rgba(255,255,255,.35)}}
.banner-subtle{background:rgba(255,255,255,.74);color:var(--muted);border:1px solid var(--line)}
.banner-subtle code{color:var(--ink)}

/* Owner access */
.owner-bar{display:flex;justify-content:flex-end;align-items:center;gap:10px;min-height:32px}
.owner-status{color:var(--sage);font-size:.76rem;font-weight:700}
.owner-btn{border:0;background:transparent;color:var(--muted);padding:7px 8px;font-size:.76rem;font-weight:700;min-height:32px}
@media(hover:hover){.owner-btn:hover{color:var(--ink)}}
.auth-backdrop{position:fixed;inset:0;display:grid;place-items:center;padding:16px;background:rgba(30,27,24,.6);backdrop-filter:blur(8px);z-index:80;animation:fadeIn 160ms ease}
.auth-modal{width:min(420px,100%);padding:24px;border-radius:18px;background:rgba(248,244,239,.98);box-shadow:0 30px 60px rgba(0,0,0,.22);animation:slideUp 180ms ease}
.auth-modal .add-submit-btn{margin-top:16px}
.owner-recovery{display:block;margin:14px auto 0;border:0;background:transparent;color:var(--muted);font-size:.8rem;text-decoration:underline;text-underline-offset:3px}
.auth-back-btn{margin-top:18px}
.owner-gate{max-width:560px;margin:32px auto;padding:28px;text-align:center}
.owner-gate .action-btn{margin-top:16px}

/* Nav */
.nav-row{display:flex;gap:5px;padding:5px;border-radius:999px;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;background:rgba(255,255,255,.72);border:1px solid rgba(52,44,36,.05);box-shadow:var(--shadow)}
.nav-row::-webkit-scrollbar{display:none}
.nav-btn{border:none;background:transparent;border-radius:999px;padding:10px 16px;color:var(--muted);font-weight:600;font-size:.86rem;transition:background var(--ease),color var(--ease);display:inline-flex;align-items:center;gap:5px;min-height:44px;white-space:nowrap;word-break:normal;flex:0 0 auto}
.nav-btn:active{transform:scale(.96)}
.nav-btn.active{background:linear-gradient(135deg,var(--ink),#3f5365);color:white;box-shadow:0 5px 14px rgba(41,49,58,.2)}
.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 5px;border-radius:999px;background:var(--warm);color:white;font-size:.64rem;font-weight:700}
.nav-btn.active .tab-badge{background:rgba(255,255,255,.3)}

/* ================================================================= */
/* TODAY                                                              */
/* ================================================================= */

.weather-hero{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;padding:24px 28px;border-radius:var(--r-xl);background:linear-gradient(135deg,rgba(255,255,255,.88),rgba(255,248,241,.76));border:1px solid rgba(255,255,255,.6);box-shadow:var(--shadow)}
.weather-main{display:flex;align-items:center;gap:16px}
.weather-icon-big{font-size:3.2rem;line-height:1}
.weather-temp{font-family:"Iowan Old Style",Georgia,serif;font-size:3.4rem;font-weight:600;letter-spacing:-.04em;line-height:1;color:var(--ink)}
.weather-desc{font-size:.92rem;color:var(--muted);margin-top:2px}
.weather-details{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}
.weather-location{font-weight:600;color:var(--ink)}
.weather-range{color:var(--muted);font-size:.88rem}
.weather-precip{padding:4px 10px;border-radius:999px;background:rgba(100,160,220,.12);color:#4a7fa8;font-size:.78rem;font-weight:600}

/* OOTD bar */
.ootd-bar{display:flex;justify-content:center;padding:4px 0 8px}
.ootd-btn{display:flex;align-items:center;gap:10px;padding:12px 28px;min-height:48px;background:var(--card);border:1.5px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);font-size:0.95rem;font-weight:600;color:var(--text);letter-spacing:.01em;transition:all var(--ease)}
.ootd-btn:active{transform:scale(.97);box-shadow:none}
@media(hover:hover){.ootd-btn:hover{border-color:var(--warm);color:var(--warm);box-shadow:var(--shadow-hover)}}
.ootd-icon{font-size:1.35rem;line-height:1}
.ootd-label{white-space:nowrap}

/* Outfit cards — lookbook layout */
.outfit-list{display:grid;gap:18px}
.outfit-card{padding:22px 24px}
.outfit-header{margin-bottom:16px}
.outfit-title{margin:4px 0 0;font-family:"Iowan Old Style",Georgia,serif;font-size:1.5rem;font-weight:600;letter-spacing:-.02em}

.look-layout{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}

/* Hero piece — featured large */
.look-hero{position:relative;border-radius:var(--r-lg);overflow:hidden;background:rgba(255,255,255,.5)}
.look-hero-img{border:none;padding:0;background:transparent;width:100%;display:block;cursor:pointer}
.look-hero-img img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:var(--r-lg)}
.look-hero-label{padding:10px 12px}
.look-hero-label strong{display:block;font-size:.92rem;color:var(--ink);line-height:1.25}
.look-hero-label span{display:block;font-size:.76rem;color:var(--muted);margin-top:2px}

/* Supporting pieces — 2-column grid */
.look-supporting{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-content:start}
.look-piece{position:relative;border-radius:var(--r-md);overflow:hidden;background:rgba(255,255,255,.5);transition:transform var(--ease)}
.look-piece:active{transform:scale(.98)}
@media(hover:hover){.look-piece:hover{transform:translateY(-2px)}}
.look-piece-img{border:none;padding:0;background:transparent;width:100%;display:block;cursor:pointer}
.look-piece-img img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--r-md)}
.look-piece-label{padding:6px 8px}
.look-piece-label strong{display:block;font-size:.74rem;color:var(--ink);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.look-piece-label span{display:block;font-size:.66rem;color:var(--muted);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Swap buttons */
.swap-btn{position:absolute;top:8px;right:8px;width:44px;height:44px;border:none;border-radius:50%;background:rgba(255,255,255,.88);color:var(--ink);font-size:1rem;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.12);opacity:.7;transition:opacity var(--ease),transform var(--ease);backdrop-filter:blur(4px);z-index:2}
.swap-btn-sm{width:44px;height:44px;font-size:.82rem;top:5px;right:5px}
.swap-btn:active{opacity:1;background:white;transform:scale(.92)}
@media(hover:hover){.swap-btn{opacity:0}.look-hero:hover .swap-btn,.look-piece:hover .swap-btn{opacity:1}.swap-btn:hover{background:white}}

/* Placeholder images */
.placeholder-img{width:100%;aspect-ratio:3/4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,#ede8e2,#e2dbd3);border-radius:var(--r-md)}
.look-piece .placeholder-img{aspect-ratio:1}
.placeholder-img.small{aspect-ratio:1;border-radius:var(--r-sm)}
.placeholder-icon{font-size:2.4rem;line-height:1;filter:grayscale(.3)}
.placeholder-label{font-size:.68rem;color:var(--muted);text-align:center;padding:0 8px;line-height:1.3;max-height:2.6em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.week-placeholder-thumb{width:36px;height:36px;border-radius:var(--r-sm);background:linear-gradient(135deg,#ede8e2,#e2dbd3);display:inline-flex;align-items:center;justify-content:center;font-size:1.1rem}

.outfit-note{margin:16px 0 0;color:var(--muted);font-size:.88rem;line-height:1.55;font-style:italic}

/* ================================================================= */
/* WEEK                                                               */
/* ================================================================= */

.week-grid{display:grid;gap:8px}
.week-day-card{overflow:hidden;padding:0}
.week-day-header{width:100%;display:grid;grid-template-columns:auto 1fr auto auto;gap:12px;align-items:center;padding:14px 18px;border:none;background:transparent;text-align:left;cursor:pointer;transition:background var(--ease)}
.week-day-header:active{background:rgba(255,255,255,.4)}
@media(hover:hover){.week-day-header:hover{background:rgba(255,255,255,.4)}}
.week-day-left{display:grid}
.week-day-name{font-weight:700;font-size:.92rem;color:var(--ink)}
.week-day-name.is-today{color:var(--warm)}
.week-day-date{font-size:.74rem;color:var(--muted)}
.week-day-weather{display:flex;align-items:center;gap:8px}
.week-day-icon{font-size:1.3rem}
.week-day-temps{font-size:.88rem;font-weight:600;color:var(--ink)}
.week-day-precip{padding:2px 8px;border-radius:999px;background:rgba(100,160,220,.12);color:#4a7fa8;font-size:.72rem;font-weight:600}
.week-day-preview{display:flex;gap:7px;align-items:center}
.week-day-preview img{width:74px;height:98px;border-radius:10px;object-fit:contain;background:#f3f0ec;box-shadow:0 2px 6px rgba(63,44,26,.08)}
.week-placeholder-thumb{width:74px;height:98px;border-radius:10px;background:#f3f0ec;display:flex;align-items:center;justify-content:center;font-size:1.5rem}
.week-chevron{font-size:.7rem;color:var(--muted);transition:transform var(--ease)}
.week-chevron.open{transform:rotate(180deg)}
.week-day-outfit{padding:0 18px 18px}
.week-outfit-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:14px}
.week-outfit-item{border:none;padding:0;background:rgba(255,255,255,.6);border-radius:var(--r-md);overflow:hidden;text-align:left;box-shadow:0 4px 12px rgba(63,44,26,.05);transition:transform var(--ease)}
.week-outfit-item:active{transform:scale(.98)}
@media(hover:hover){.week-outfit-item:hover{transform:translateY(-2px)}}
.week-outfit-item img{width:100%;aspect-ratio:3/4;object-fit:cover}
.week-outfit-item strong{display:block;padding:10px 12px 2px;font-size:.92rem;color:var(--ink)}
.week-outfit-item span{display:block;padding:0 12px 12px;font-size:.8rem;color:var(--muted)}

/* ================================================================= */
/* CLOSET                                                             */
/* ================================================================= */

.closet-header-card{padding:18px}
.closet-header{display:flex;justify-content:space-between;align-items:center;gap:12px}
.closet-title{margin:2px 0 0;font-family:"Iowan Old Style",Georgia,serif;font-size:1.4rem;font-weight:600}
.closet-controls{display:grid;gap:8px;margin-top:14px}
.closet-filter-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.color-dropdown{position:relative;min-width:0}
.color-dropdown summary{list-style:none;display:flex;align-items:center;gap:9px;width:100%;min-height:44px;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.82);color:var(--text);font:inherit;cursor:pointer}
.color-dropdown summary::-webkit-details-marker{display:none}
.closet-color-dropdown{min-width:154px}
.closet-color-dropdown summary{border-radius:999px;background:rgba(255,255,255,.72)}
.color-choice-swatch{width:20px;height:20px;flex:0 0 20px;border-radius:50%;border:1px solid rgba(52,44,36,.2);box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
.color-choice-swatch.is-auto{background:linear-gradient(135deg,#fff 0 46%,#6d747b 47% 53%,#fff 54% 100%)}
.color-choice-chevron{margin-left:auto;font-size:.62rem;color:var(--muted);transition:transform var(--ease)}
.color-dropdown[open] .color-choice-chevron{transform:rotate(180deg)}
.color-dropdown-menu{position:absolute;z-index:30;top:calc(100% + 6px);right:0;width:max-content;min-width:100%;max-height:310px;overflow:auto;padding:6px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 14px 34px rgba(45,37,29,.18)}
.color-dropdown-option{display:grid;grid-template-columns:20px minmax(100px,1fr) 18px;align-items:center;gap:9px;width:100%;min-height:40px;padding:7px 9px;border:0;border-radius:8px;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}
.color-dropdown-option.selected{background:rgba(41,49,58,.07);font-weight:700}
.color-choice-check{color:var(--warm);font-weight:800;text-align:center}
@media(hover:hover){.color-dropdown-option:hover{background:rgba(41,49,58,.05)}}
.search-shell input{width:100%;padding:10px 14px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.72);color:var(--text);outline:none;font-size:1rem;transition:border-color var(--ease),box-shadow var(--ease)}
.search-shell input:focus{border-color:rgba(41,49,58,.25);box-shadow:0 0 0 3px rgba(41,49,58,.05)}
.pill-row{display:flex;gap:5px;flex-wrap:wrap}
.pill{border:1px solid var(--line);background:rgba(255,255,255,.68);border-radius:999px;padding:10px 14px;color:var(--muted);font-weight:600;font-size:.8rem;transition:all var(--ease);display:inline-flex;align-items:center;gap:3px;min-height:44px}
.pill:active{transform:scale(.96)}
.pill.active{border-color:rgba(41,49,58,.18);background:rgba(41,49,58,.9);color:white}
.pill-n{font-size:.72rem;opacity:.65}
.filter-chips{display:flex;gap:5px;flex-wrap:wrap}
.filter-chip{border:1px dashed rgba(52,44,36,.14);background:rgba(255,255,255,.5);border-radius:999px;padding:10px 14px;color:var(--muted);font-size:.76rem;font-weight:600;transition:all var(--ease);min-height:44px}
.filter-chip:active{transform:scale(.96)}
.filter-chip.active{border-style:solid;border-color:var(--warm);background:rgba(168,109,61,.08);color:var(--warm)}
.view-toggle{display:inline-flex;padding:4px;gap:3px;border-radius:999px;background:rgba(255,255,255,.7);border:1px solid rgba(52,44,36,.05)}
.view-toggle button{border:none;padding:10px 14px;border-radius:999px;background:transparent;color:var(--muted);font-weight:700;font-size:.8rem;transition:all var(--ease);min-height:44px}
.view-toggle button:active{transform:scale(.96)}
.view-toggle button.active{background:var(--ink);color:white}

.closet-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.closet-list{display:grid;gap:7px}
.closet-list .rack-card{display:grid;grid-template-columns:110px 1fr}
.closet-list .rack-card img{height:100%;aspect-ratio:auto}

.rack-card{border:none;text-align:left;background:rgba(255,255,255,.78);border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow);transition:transform var(--ease)}
.rack-card:active{transform:scale(.98)}
@media(hover:hover){.rack-card:hover{transform:translateY(-2px)}}
.rack-card.busy{opacity:.45;pointer-events:none}
.rack-card.is-favorite{box-shadow:0 0 0 2px rgba(196,69,85,.18), var(--shadow-hover)}
.rack-card-visual{background:#f3f0ec}
.rack-card img{width:100%;aspect-ratio:3/4;object-fit:contain;background:#f3f0ec}
.review-img{background:#f3f0ec}
.card-copy{padding:10px}
.card-copy strong{display:block;color:var(--ink);font-size:.84rem;line-height:1.25}
.card-copy span{display:block;color:var(--muted);font-size:.74rem;line-height:1.35}
.card-img-btn,.dupe-img,.restore-img{border:none;padding:0;background:transparent;width:100%}

/* Buttons */
.action-row,.action-grid{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.action-btn{border:none;border-radius:999px;padding:10px 14px;background:var(--ink);color:white;font-size:.74rem;font-weight:700;transition:background var(--ease),transform var(--ease);min-height:44px}
.action-btn:active{transform:scale(.97)}
@media(hover:hover){.action-btn:hover{transform:translateY(-1px)}}
.sm{padding:8px 12px;font-size:.72rem}
.ghost-btn{background:rgba(255,255,255,.74);color:var(--ink);border:1px solid var(--line)}
@media(hover:hover){.ghost-btn:hover{background:rgba(255,255,255,.95)}}
.danger-btn{background:var(--danger)}
@media(hover:hover){.danger-btn:hover{background:#7a403a}}
.danger-btn.confirm-pulse{background:#c0392b;animation:pulse-confirm .6s ease-in-out infinite alternate}
@keyframes pulse-confirm{from{box-shadow:0 0 0 0 rgba(192,57,43,.45)}to{box-shadow:0 0 0 6px rgba(192,57,43,0)}}
.keep-btn{background:var(--sage)}
@media(hover:hover){.keep-btn:hover{background:#4e5e44}}
.action-menu{position:relative;display:inline-flex;align-items:center}
.action-menu summary{list-style:none;width:44px;height:44px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.72);color:var(--muted);font-weight:800;display:flex;align-items:center;justify-content:center;cursor:pointer;line-height:1;transition:background var(--ease),color var(--ease)}
.action-menu summary::-webkit-details-marker{display:none}
.action-menu[open] summary,.action-menu summary:active{background:white;color:var(--ink)}
.action-menu-popover{position:absolute;right:0;top:calc(100% + 6px);z-index:20;min-width:168px;padding:6px;border-radius:14px;background:rgba(255,255,255,.98);border:1px solid var(--line);box-shadow:0 18px 38px rgba(30,27,24,.16);display:grid;gap:4px}
.action-menu:not([open]) .action-menu-popover{display:none}
.action-menu-popover .action-btn,.menu-action{width:100%;border:none;border-radius:10px;padding:10px 12px;background:transparent;color:var(--ink);font-size:.78rem;font-weight:700;text-align:left;min-height:40px}
.action-menu-popover .danger,.action-menu-popover .danger-btn{color:var(--danger);background:var(--danger-bg)}
.lookbook-card .action-menu,.rack-card .action-menu{display:grid;justify-items:end}
.lookbook-card .action-menu-popover,.rack-card .action-menu-popover{position:static;margin-top:6px;box-shadow:none;background:rgba(255,255,255,.82)}
.lookbook-lightbox .action-menu-popover{top:auto;bottom:calc(100% + 6px);background:rgba(255,255,255,.98)}
@media(hover:hover){.action-menu summary:hover{background:white;color:var(--ink)}.action-menu-popover .action-btn:hover,.menu-action:hover{background:rgba(41,49,58,.06)}.action-menu-popover .danger:hover,.action-menu-popover .danger-btn:hover{background:var(--danger);color:white}}

/* Favorite */
.rack-card-visual{position:relative}
.fav-btn{position:absolute;top:6px;right:6px;width:44px;height:44px;border:none;border-radius:50%;background:rgba(255,255,255,.88);color:var(--muted);font-size:1.2rem;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.12);opacity:.55;transition:opacity var(--ease),color var(--ease),transform var(--ease);backdrop-filter:blur(4px);line-height:1;z-index:2}
.fav-btn.is-fav{opacity:1;color:#c45;background:rgba(255,255,255,.95)}
.fav-btn:active{opacity:1;transform:scale(.92)}
@media(hover:hover){.rack-card:hover .fav-btn{opacity:.85}.fav-btn:hover{opacity:1;transform:scale(1.12)}}

/* Image review */
.review-section{border-left:3px solid var(--sage)}
.review-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-top:14px}
.review-card{border-radius:var(--r-md);background:rgba(255,255,255,.82);box-shadow:0 4px 12px rgba(63,44,26,.05);overflow:hidden}
.review-img{border:none;padding:0;background:transparent;width:100%;cursor:pointer}
.review-img img{width:100%;aspect-ratio:3/4;object-fit:contain;background:#f3f0ec}
.review-copy{padding:10px}
.review-copy strong{display:block;font-size:.82rem;color:var(--ink);line-height:1.2}
.review-copy span{display:block;margin-top:2px;font-size:.72rem;color:var(--muted)}

/* Duplicates */
.dupe-section{border-left:3px solid var(--warm)}
.duplicate-stack{display:grid;gap:12px;margin-top:14px}
.duplicate-group{padding:12px;border-radius:14px;background:rgba(255,255,255,.5);border:1px solid rgba(52,44,36,.05)}
.dupe-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;margin-bottom:10px}
.dupe-num{font-size:.68rem;font-weight:700;letter-spacing:.05em;color:var(--warm);background:rgba(168,109,61,.08);padding:2px 7px;border-radius:999px}
.dupe-head strong{font-size:.92rem;color:var(--ink)}
.dupe-count{font-size:.78rem;color:var(--muted)}
.duplicate-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.duplicate-card{border-radius:var(--r-md);background:rgba(255,255,255,.82);box-shadow:0 4px 12px rgba(63,44,26,.05);overflow:hidden;display:flex;flex-direction:column}
.dupe-keeper{outline:2px solid var(--sage);outline-offset:-2px}
.dupe-extra{outline:1px dashed rgba(139,74,67,.25);outline-offset:-1px}
.dupe-ribbon{padding:4px 8px;font-size:.66rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:var(--sage-bg);color:var(--sage);text-align:center}
.dupe-ribbon-extra{background:var(--danger-bg);color:var(--danger)}
.duplicate-card img{width:100%;aspect-ratio:1;object-fit:cover}
.dupe-copy{padding:8px 10px 4px;flex:1}
.dupe-copy strong{display:block;font-size:.82rem;color:var(--ink);line-height:1.2}
.dupe-copy span{display:block;margin-top:2px;font-size:.72rem;color:var(--muted)}
.dupe-actions{padding:4px 10px 10px;display:flex;flex-wrap:wrap;gap:4px}

/* Removed drawer */
.removed-section{padding:0;overflow:hidden}
.removed-header{width:100%;display:flex;justify-content:space-between;align-items:center;padding:16px;border:none;background:transparent;text-align:left;cursor:pointer;transition:background var(--ease)}
.removed-header:active{background:rgba(255,255,255,.4)}
@media(hover:hover){.removed-header:hover{background:rgba(255,255,255,.4)}}
.chevron{font-size:.75rem;color:var(--muted);transition:transform var(--ease)}
.chevron.open{transform:rotate(180deg)}
.removed-body{padding:0 16px 16px}
.restore-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.restore-card{border-radius:var(--r-md);background:rgba(255,255,255,.82);box-shadow:0 4px 12px rgba(63,44,26,.05);overflow:hidden}
.restore-card img{width:100%;aspect-ratio:1;object-fit:cover}
.restore-copy{padding:8px}
.restore-copy strong{display:block;font-size:.8rem;color:var(--ink)}
.restore-copy span{display:block;margin-top:2px;font-size:.72rem;color:var(--muted)}
.restore-copy em{font-style:normal;color:var(--danger)}
.show-all-btn{display:block;width:100%;margin-top:8px;padding:12px;border:1px dashed var(--line);background:transparent;border-radius:10px;color:var(--muted);font-size:.8rem;font-weight:600;cursor:pointer;transition:all var(--ease);min-height:44px}
.show-all-btn:active{transform:scale(.98)}
@media(hover:hover){.show-all-btn:hover{background:rgba(255,255,255,.5);color:var(--ink)}}

/* ================================================================= */
/* MODAL                                                              */
/* ================================================================= */

.modal-backdrop{position:fixed;inset:0;display:grid;place-items:center;padding:16px;background:rgba(30,27,24,.6);backdrop-filter:blur(8px);z-index:50;animation:fadeIn 160ms ease}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.modal{width:min(960px,100%);max-height:calc(100dvh - 32px);overflow:auto;padding:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));border-radius:22px;background:linear-gradient(180deg,rgba(248,244,239,.98),rgba(241,235,227,.96));box-shadow:0 30px 60px rgba(0,0,0,.22);animation:slideUp 180ms ease}
@keyframes slideUp{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
.modal-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:14px}
.modal-visual{display:grid;gap:6px}
.modal-main-img{overflow:hidden;border-radius:18px;background:rgba(255,255,255,.6);position:relative}
.modal-main-img img{width:100%;max-height:64vh;object-fit:contain;background:#f3f0ec}
.img-counter{position:absolute;top:8px;right:8px;padding:3px 8px;border-radius:999px;background:rgba(25,23,21,.55);color:white;font-size:.68rem;font-weight:600;backdrop-filter:blur(4px)}
.thumb-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
.thumb-row button{border:none;padding:0;border-radius:10px;overflow:hidden;background:transparent;opacity:.6;transition:opacity var(--ease)}
.thumb-row button.active{outline:2px solid var(--ink);opacity:1}
@media(hover:hover){.thumb-row button:hover{opacity:.85}}
.thumb-row img{width:100%;aspect-ratio:1;object-fit:cover}

/* Managed thumbnail row */
.thumb-manage-row{display:flex;gap:6px;flex-wrap:wrap;align-items:start}
.thumb-managed{position:relative;border-radius:10px;overflow:visible;flex:0 0 auto;width:calc(25% - 5px)}
.thumb-managed.active .thumb-img-btn{outline:2px solid var(--ink);border-radius:10px}
.thumb-img-btn{border:none;padding:0;background:transparent;width:100%;display:block;border-radius:10px;overflow:hidden;opacity:.6;transition:opacity var(--ease);cursor:pointer}
.thumb-managed.active .thumb-img-btn{opacity:1}
@media(hover:hover){.thumb-img-btn:hover{opacity:.85}}
.thumb-img-btn img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.thumb-actions{display:flex;gap:2px;justify-content:center;margin-top:3px}
.thumb-act-btn{border:none;padding:6px 10px;border-radius:6px;background:rgba(255,255,255,.82);color:var(--muted);font-size:.72rem;font-weight:700;cursor:pointer;transition:all var(--ease);line-height:1.1;min-height:32px}
@media(hover:hover){.thumb-act-btn:hover{background:var(--ink);color:white}.thumb-del-btn:hover{background:var(--danger);color:white}}
.thumb-main-badge{display:block;text-align:center;font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--warm);padding:3px 0}
.add-photo-btn{display:flex;align-items:center;justify-content:center;width:calc(25% - 5px);aspect-ratio:1;border:2px dashed var(--line);border-radius:10px;color:var(--muted);font-size:.78rem;font-weight:700;cursor:pointer;transition:all var(--ease);text-align:center}
@media(hover:hover){.add-photo-btn:hover{border-color:var(--warm);color:var(--warm)}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.modal-copy{padding:10px 6px;display:flex;flex-direction:column}
.modal-top{display:flex;justify-content:space-between;gap:10px;align-items:start}
.modal-close{border:none;background:rgba(255,255,255,.78);border-radius:999px;width:44px;height:44px;font-size:1.2rem;color:var(--ink);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:background var(--ease)}
.modal-close:active{transform:scale(.9)}
@media(hover:hover){.modal-close:hover{background:white}}
.modal-title{margin:4px 0 0;font-family:"Iowan Old Style",Georgia,serif;font-size:clamp(1.4rem,3vw,2rem);font-weight:600;letter-spacing:-.02em}
.modal-brand{margin-top:3px;color:var(--muted);font-size:.88rem}
.modal-badges{display:flex;flex-wrap:wrap;gap:5px;margin:12px 0}
.badge{padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.78);border:1px solid rgba(52,44,36,.05);font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.badge-removed{background:var(--danger-bg);color:var(--danger)}
.modal-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:10px}
.meta-cell{padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.6);border:1px solid rgba(52,44,36,.05)}
.meta-cell strong{display:block;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.meta-cell span{display:block;margin-top:3px;font-size:.86rem;color:var(--ink)}
.modal-note{margin-top:10px;padding:12px;border-radius:14px;background:rgba(255,255,255,.58);border:1px solid rgba(52,44,36,.05)}
.modal-note strong{display:block;margin-bottom:5px;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--warm)}
.modal-note p{margin:0;color:var(--muted);line-height:1.5;font-size:.86rem}
.notes-input{width:100%;min-height:88px;resize:vertical;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:rgba(255,255,255,.82);color:var(--text);outline:none;line-height:1.45;font-size:1rem}
.notes-input:focus{border-color:rgba(41,49,58,.25);box-shadow:0 0 0 3px rgba(41,49,58,.05)}
.badge-favorite{background:rgba(196,69,85,.12);color:#b14a59}
.modal-hint{margin:10px 0 0;font-size:.72rem;color:var(--muted);opacity:.6}

/* ================================================================= */
/* ADD ITEM MODAL                                                     */
/* ================================================================= */

.add-item-backdrop{position:fixed;inset:0;display:grid;place-items:center;padding:16px;background:rgba(30,27,24,.6);backdrop-filter:blur(8px);z-index:60;animation:fadeIn 160ms ease}
.add-item-modal{width:min(580px,100%);max-height:calc(100dvh - 32px);overflow:auto;padding:24px;padding-bottom:calc(24px + env(safe-area-inset-bottom,0px));border-radius:22px;background:linear-gradient(180deg,rgba(248,244,239,.98),rgba(241,235,227,.96));box-shadow:0 30px 60px rgba(0,0,0,.22);animation:slideUp 180ms ease}
.add-item-top{display:flex;justify-content:space-between;align-items:start;margin-bottom:16px}
.add-item-title{margin:4px 0 0;font-family:"Iowan Old Style",Georgia,serif;font-size:1.6rem;font-weight:600;letter-spacing:-.02em}

.add-tabs{display:flex;gap:4px;padding:4px;border-radius:999px;background:rgba(255,255,255,.6);border:1px solid rgba(52,44,36,.05);margin-bottom:16px}
.add-tab{border:none;background:transparent;border-radius:999px;padding:10px 14px;color:var(--muted);font-weight:600;font-size:.84rem;transition:all var(--ease);flex:1;text-align:center;min-height:44px}
.add-tab:active{transform:scale(.96)}
.add-tab.active{background:linear-gradient(135deg,var(--ink),#3f5365);color:white;box-shadow:0 4px 12px rgba(41,49,58,.18)}
@media(hover:hover){.add-tab:hover:not(.active){background:rgba(255,255,255,.6)}}

.add-body{min-height:120px}

.add-error{padding:10px 14px;border-radius:12px;background:var(--danger-bg);color:var(--danger);font-size:.84rem;font-weight:600;margin-bottom:12px}

.add-form{display:grid;gap:14px}
.add-label{display:block;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.add-input{width:100%;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.82);color:var(--text);outline:none;font-size:1rem;transition:border-color var(--ease),box-shadow var(--ease)}
.add-input:focus{border-color:rgba(41,49,58,.25);box-shadow:0 0 0 3px rgba(41,49,58,.05)}
select.add-input{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2374685e' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}
.brand-custom-label{margin-top:8px}
.add-textarea{min-height:72px;resize:vertical;line-height:1.45}
.add-hint{margin:0;font-size:.78rem;color:var(--muted);line-height:1.5}
.add-submit-btn{width:100%;padding:12px;font-size:.92rem;margin-top:4px}

.add-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.add-field.full-width{grid-column:1/-1}

/* Upload area */
.upload-area{position:relative;border:2px dashed var(--line);border-radius:16px;overflow:hidden;transition:border-color var(--ease);cursor:pointer;background:rgba(255,255,255,.4)}
@media(hover:hover){.upload-area:hover{border-color:var(--warm)}}
.upload-file-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.upload-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:36px 20px;color:var(--muted)}
.upload-icon{font-size:2.6rem;line-height:1}
.upload-placeholder span:last-child{font-size:.86rem;font-weight:600}
.upload-preview{display:flex;justify-content:center;padding:8px;background:rgba(255,255,255,.5)}
.upload-preview img{max-height:240px;max-width:100%;border-radius:12px;object-fit:contain}
.product-prompt-card{border:1px solid rgba(52,44,36,.08);border-radius:14px;background:rgba(255,255,255,.58);overflow:hidden}
.product-prompt-card summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;cursor:pointer;list-style:none}
.product-prompt-card summary::-webkit-details-marker{display:none}
.product-prompt-card strong{display:block;color:var(--ink);font-size:.86rem}
.product-prompt-card em{display:block;margin-top:2px;color:var(--muted);font-size:.76rem;font-style:normal;line-height:1.35}
.prompt-copy-btn{border:1px solid rgba(52,44,36,.1);border-radius:999px;background:rgba(255,255,255,.82);color:var(--ink);padding:7px 12px;font-size:.78rem;font-weight:700;cursor:pointer;flex-shrink:0}
@media(hover:hover){.prompt-copy-btn:hover{background:white;box-shadow:0 3px 10px rgba(63,44,26,.08)}}
.product-prompt-card pre{margin:0;padding:12px 14px;border-top:1px solid rgba(52,44,36,.06);white-space:pre-wrap;color:var(--muted);font-family:inherit;font-size:.78rem;line-height:1.5;background:rgba(255,255,255,.42);user-select:text}

/* Success state */
.add-success{text-align:center;padding:12px 0}
.add-success-icon{width:52px;height:52px;margin:0 auto 12px;border-radius:50%;background:var(--sage);color:white;display:flex;align-items:center;justify-content:center;font-size:1.6rem}
.add-success h3{margin:0 0 16px;font-family:"Iowan Old Style",Georgia,serif;font-size:1.3rem;font-weight:600}
.add-success-card{display:flex;gap:14px;align-items:center;padding:14px;border-radius:14px;background:rgba(255,255,255,.7);border:1px solid rgba(52,44,36,.05);text-align:left;margin-bottom:16px}
.add-success-card img{width:80px;height:100px;border-radius:10px;object-fit:cover;flex-shrink:0}
.add-success-info{display:grid;gap:2px}
.add-success-info strong{font-size:.92rem;color:var(--ink)}
.add-success-info span{font-size:.78rem;color:var(--muted)}
.add-success-cat{display:inline-block;padding:2px 8px;border-radius:999px;background:rgba(41,49,58,.06);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;width:fit-content}
.add-success-price{font-weight:700;color:var(--warm)}
.add-warning{margin:0 0 14px;padding:10px 12px;border:1px solid rgba(151,102,34,.22);border-radius:8px;background:rgba(255,246,226,.86);color:#76501f;font-size:.82rem;line-height:1.4;text-align:left}
.add-success-actions{display:flex;gap:8px;justify-content:center}

/* Loading state */
.add-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:32px 0}
.add-loading p{margin:0;color:var(--muted);font-size:.88rem}

/* Add Item button in closet header */
.closet-header-actions{display:flex;align-items:center;gap:8px}
.closet-downloads{display:flex;align-items:center;gap:6px}
.export-download{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:44px;padding:9px 11px;border:1px solid rgba(52,44,36,.12);border-radius:8px;background:rgba(255,255,255,.72);color:var(--ink);font-size:.72rem;font-weight:700;text-decoration:none;white-space:nowrap}
.export-download:active{transform:scale(.97)}
@media(hover:hover){.export-download:hover{background:white}}
.add-item-btn{background:var(--warm);font-size:.82rem;white-space:nowrap}
@media(hover:hover){.add-item-btn:hover{background:#966032}}

/* ================================================================= */
/* EDIT FORM (in modal)                                               */
/* ================================================================= */

.edit-form{display:grid;gap:16px;margin-top:12px}
.edit-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.edit-field{display:grid;gap:3px}
.edit-field.full-width{grid-column:1/-1}
.edit-actions{display:flex;gap:8px;margin-top:4px}

/* ================================================================= */
/* RESPONSIVE                                                         */
/* ================================================================= */

@media(max-width:980px){
  .week-day-preview img,.week-placeholder-thumb{width:56px;height:74px}
  .weather-hero{flex-direction:column;align-items:flex-start}
  .modal-layout{grid-template-columns:1fr}
  .closet-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .duplicate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .restore-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:720px){
  .app-shell{width:min(100vw - 16px,100%);margin:10px auto 28px}
  .closet-header{flex-direction:column;align-items:flex-start}
  .closet-header-actions{width:100%;flex-wrap:wrap}
  .closet-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .closet-list .rack-card{grid-template-columns:1fr}
  .week-day-header{grid-template-columns:auto 1fr auto}
  .week-day-preview{display:none}
  .look-layout{grid-template-columns:1fr;gap:12px}
  .look-supporting{grid-template-columns:repeat(4,1fr)}
  .look-piece-img img{aspect-ratio:3/4}
  .duplicate-grid{grid-template-columns:1fr}
  .restore-grid{grid-template-columns:1fr}
  .thumb-row{grid-template-columns:repeat(3,minmax(0,1fr))}
  .modal-meta-grid,.action-grid,.edit-form-grid{grid-template-columns:1fr}
  .closet-filter-row{grid-template-columns:1fr}
  .closet-color-dropdown{width:100%}
  .closet-color-dropdown .color-dropdown-menu{left:0;right:auto;width:100%}
}
@media(max-width:480px){
  .nav-btn{padding:8px 7px;font-size:.74rem;min-height:44px}
  .closet-grid{grid-template-columns:1fr 1fr}
  .weather-temp{font-size:2.4rem}
  .weather-icon-big{font-size:2.2rem}
  .look-supporting{grid-template-columns:1fr 1fr}
  .week-outfit-items{grid-template-columns:1fr 1fr}
  .add-form-grid{grid-template-columns:1fr}
  .add-item-modal{padding:16px}
  .add-success-card{flex-direction:column;text-align:center}
  .add-success-card img{width:100px;height:130px}
  .lookbook-grid{grid-template-columns:1fr}
  .lookbook-detail-modal{padding:16px}
}

/* Lookbook */
.lookbook-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:12px}
.lookbook-header h2{margin:0;font-family:"Iowan Old Style",Georgia,serif;font-size:1.9rem;font-weight:600;letter-spacing:-.03em}
.lookbook-header .muted{margin:6px 0 0;font-size:.86rem;color:var(--muted)}
.btn-primary{background:var(--ink);color:#fff;border:none;padding:10px 20px;border-radius:999px;font-size:.84rem;cursor:pointer;font-weight:600;transition:background var(--ease),transform var(--ease)}
.btn-primary:active{transform:scale(.97)}
@media(hover:hover){.btn-primary:hover{background:#3f5365;transform:translateY(-1px)}}
.btn-small{background:rgba(255,255,255,.78);border:1px solid var(--line);padding:10px 14px;border-radius:999px;font-size:.76rem;font-weight:600;cursor:pointer;transition:all var(--ease);min-height:44px}
@media(hover:hover){.btn-small:hover{background:white}}
.btn-small.ghost{border-color:transparent;color:var(--muted)}
@media(hover:hover){.btn-small.ghost:hover{color:var(--danger)}}
.btn-small.danger{color:var(--danger);border-color:rgba(139,74,67,.18);background:var(--danger-bg)}
@media(hover:hover){.btn-small.danger:hover{background:var(--danger);border-color:var(--danger);color:white}}
.lookbook-controls{padding:14px 16px;margin-bottom:18px;background:linear-gradient(180deg,rgba(255,252,247,.96),rgba(244,237,228,.88));backdrop-filter:blur(12px)}
.lookbook-search-row{display:flex;gap:10px;align-items:center}
.lookbook-search-row .search-shell{flex:1}
.lookbook-filter-disclosure{margin-top:10px;border-top:1px solid rgba(52,44,36,.08)}
.lookbook-filter-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:10px;color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;list-style:none;min-height:34px}
.lookbook-filter-summary::-webkit-details-marker{display:none}
.lookbook-filter-summary::after{content:"";width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform var(--ease);flex-shrink:0}
.lookbook-filter-disclosure[open] .lookbook-filter-summary::after{transform:rotate(225deg);margin-top:5px}
.lookbook-filter-panel{padding-top:10px}
.lookbook-suggestions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.lookbook-suggestion{border:1px solid rgba(52,44,36,.12);background:rgba(255,255,255,.78);border-radius:999px;padding:8px 14px;color:var(--ink);font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:capitalize;min-height:40px}
@media(hover:hover){.lookbook-suggestion:hover{background:white;border-color:var(--warm);color:var(--warm)}}
.lookbook-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.lookbook-filter{display:grid;gap:6px}
.lookbook-filter span{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.lookbook-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:22px}
.lookbook-card{display:flex;flex-direction:column;overflow:hidden;border-radius:28px;transition:transform var(--ease),box-shadow var(--ease);background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(247,241,234,.86));border:1px solid rgba(255,255,255,.85)}
.lookbook-card:active{transform:scale(.99)}
@media(hover:hover){.lookbook-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover)}}
.lookbook-photo-wrap{position:relative;background:linear-gradient(180deg,#f8f6f3 0%,#eae6e1 100%);overflow:hidden;border:none;padding:0;border-radius:28px 28px 0 0;cursor:zoom-in}
.lookbook-photo{width:100%;aspect-ratio:3/4;object-fit:contain;display:block;filter:brightness(1.08) contrast(1.04) saturate(1.04);transition:transform .4s cubic-bezier(.4,0,.2,1)}
@media(hover:hover){.lookbook-card:hover .lookbook-photo{transform:scale(1.01)}}
.lookbook-photo-action{position:absolute;right:10px;bottom:10px;padding:7px 10px;border-radius:999px;background:rgba(30,27,24,.72);color:white;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;opacity:0;transform:translateY(4px);transition:opacity var(--ease),transform var(--ease);pointer-events:none}
@media(hover:hover){.lookbook-photo-wrap:hover .lookbook-photo-action,.lookbook-sheet-image-btn:hover .lookbook-photo-action{opacity:1;transform:translateY(0)}}
.lookbook-card-body{padding:18px 20px;display:flex;flex-direction:column;gap:10px;flex:1}
.lookbook-card-topline{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.lookbook-occasion{font-family:"Iowan Old Style",Georgia,serif;font-weight:600;font-size:1.14rem;margin:0;color:var(--ink);letter-spacing:-.02em}
.lookbook-confidence{font-size:.78rem;color:#ba9153;letter-spacing:1px;white-space:nowrap}
.lookbook-note{font-size:.82rem;color:var(--muted);line-height:1.55}
.lookbook-chip-row,.lookbook-items-row{display:flex;gap:7px;flex-wrap:wrap}
.lookbook-chip{padding:6px 10px;border-radius:999px;background:rgba(41,49,58,.06);font-size:.72rem;font-weight:600;color:var(--ink)}
.lookbook-swatch{width:20px;height:20px;border-radius:50%;border:1px solid rgba(52,44,36,.12);box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
.lookbook-untagged{font-size:.72rem;color:var(--muted);padding:4px 10px;border:1px dashed var(--line);border-radius:999px;display:inline-block}
.lookbook-actions{display:flex;gap:6px;margin-top:auto;padding-top:10px;align-items:center}
.empty-lookbook{grid-column:1/-1;text-align:center;padding:56px 24px;color:var(--muted)}
.empty-lookbook p:first-child{font-family:"Iowan Old Style",Georgia,serif;font-size:1.1rem;color:var(--ink)}
.empty-lookbook code{background:rgba(255,255,255,.7);padding:2px 8px;border-radius:6px;font-size:.8rem}
.lookbook-formulas{margin-bottom:16px;padding:16px 20px}
.lookbook-formulas .eyebrow{margin-bottom:10px}
.lookbook-prompts-card{padding:0;margin-bottom:18px;background:linear-gradient(180deg,rgba(255,250,244,.92),rgba(244,238,229,.78));overflow:visible}
.lookbook-prompts-summary{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:16px 20px;cursor:pointer}
.lookbook-prompts-summary::-webkit-details-marker{display:none}
.lookbook-prompts-summary::after{content:"";width:10px;height:10px;margin-top:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform var(--ease);flex-shrink:0}
.lookbook-prompts-card[open] .lookbook-prompts-summary::after{transform:rotate(225deg);margin-top:12px}
.lookbook-prompts-card .formula-chips,.lookbook-prompts-card .section-subtitle{margin:0 20px 16px}
.lookbook-prompt-scenes{font-size:.72rem;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.formula-chips{display:flex;flex-wrap:wrap;gap:8px}
.formula-chip{background:rgba(255,255,255,.7);border:1px solid rgba(52,44,36,.06);padding:10px 14px;border-radius:999px;font-size:.76rem;font-weight:600;white-space:nowrap;min-height:44px;display:inline-flex;align-items:center}
.formula-chip strong{color:var(--warm)}

.lookbook-detail-modal{width:min(1240px,96vw);max-height:94dvh;overflow-y:auto;background:linear-gradient(180deg,rgba(249,245,239,.99),rgba(239,231,221,.97));border-radius:30px;padding:24px;padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}
.lookbook-detail-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.95fr);gap:22px;margin:16px 0}
.lookbook-sheet{display:grid;grid-template-columns:minmax(0,1.2fr) 320px;gap:0;border-radius:26px;overflow:hidden;background:rgba(255,251,246,.88);border:1px solid rgba(255,255,255,.8);box-shadow:0 18px 44px rgba(63,44,26,.1)}
.lookbook-sheet-main{padding:0;background:linear-gradient(180deg,#faf5ee,#efe4d7)}
.lookbook-sheet-hero{background:#ede3d7}
.lookbook-sheet-image-btn{position:relative;width:100%;height:100%;min-height:180px;border:none;padding:0;background:#ede3d7;display:grid;place-items:center;overflow:hidden;cursor:zoom-in}
.lookbook-sheet-image-btn.hero{min-height:420px}
.lookbook-sheet-image-btn img{width:100%;height:100%;display:block;object-fit:contain}
.lookbook-sheet-image-btn.hero img{aspect-ratio:3/4}
.lookbook-sheet-secondary{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid rgba(52,44,36,.08)}
.lookbook-sheet-secondary-card{min-height:180px;background:#eadfce}
.lookbook-sheet-rail{padding:22px 22px 20px;background:linear-gradient(180deg,rgba(248,244,238,.98),rgba(243,235,226,.92));border-left:1px solid rgba(52,44,36,.08);display:flex;flex-direction:column;gap:14px}
.lookbook-detail-title{margin:0;font-family:"Iowan Old Style",Georgia,serif;font-size:2rem;line-height:1.02;color:var(--ink);letter-spacing:-.03em}
.lookbook-detail-copy{margin:0;color:var(--muted);line-height:1.65;font-size:.95rem}
.lookbook-detail-tags{display:flex;gap:8px;flex-wrap:wrap}
.lookbook-detail-tag{padding:7px 10px;border-radius:999px;background:rgba(41,49,58,.06);font-size:.74rem;font-weight:600;color:var(--ink)}
.lookbook-detail-list{display:grid;gap:8px;color:var(--muted);font-size:.9rem;line-height:1.55}
.lookbook-editor-section{display:grid;gap:8px;padding-top:12px;border-top:1px solid rgba(52,44,36,.08)}
.lookbook-sheet-placeholder{min-height:260px;display:grid;place-items:center;background:linear-gradient(135deg,#efe3d5,#e2d3c2);color:var(--muted);font-family:"Iowan Old Style",Georgia,serif;font-size:1.1rem}
.lookbook-sheet-placeholder.small{min-height:180px;font-size:.96rem}
.lookbook-editor-grid{display:grid;gap:18px}
.lookbook-view-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}
.lookbook-view-card{padding:18px;border-radius:20px;background:rgba(255,255,255,.76);border:1px solid rgba(255,255,255,.85);box-shadow:0 10px 24px rgba(63,44,26,.05)}
.lookbook-linked-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.lookbook-linked-item{display:grid;gap:6px;padding:10px;border-radius:14px;background:rgba(255,255,255,.68)}
.lookbook-linked-item img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:10px}
.lookbook-linked-item strong{font-size:.78rem;color:var(--ink);line-height:1.25}
.lookbook-linked-item span{font-size:.7rem;color:var(--muted)}
.lookbook-editor-card{padding:18px;border-radius:20px;background:rgba(255,255,255,.76);border:1px solid rgba(255,255,255,.85);box-shadow:0 10px 24px rgba(63,44,26,.05)}
.lookbook-editor-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.lookbook-check{display:flex;align-items:center;gap:8px;padding-top:4px;color:var(--ink);font-weight:600}
.lookbook-upload-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.lookbook-upload-slot{display:grid;gap:6px}
.lookbook-upload-slot span{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.tagging-item-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px;max-height:min(400px,50dvh);overflow-y:auto;-webkit-overflow-scrolling:touch}
.tagging-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px;border:2px solid transparent;border-radius:10px;background:rgba(255,255,255,.6);cursor:pointer;transition:border-color var(--ease),background var(--ease);min-height:44px}
.tagging-item:active{transform:scale(.96)}
.tagging-item img{width:60px;height:60px;object-fit:cover;border-radius:6px}
.tagging-item-label{font-size:.68rem;text-align:center;line-height:1.2;max-height:2.4em;overflow:hidden;color:var(--muted)}
.tagging-item.selected{border-color:var(--ink);background:rgba(41,49,58,.06)}
.modal-header{display:flex;justify-content:space-between;align-items:center;gap:6px}
.modal-header h3{margin:0;font-family:"Iowan Old Style",Georgia,serif;font-size:1.2rem;font-weight:600;flex:1;min-width:0}
.lookbook-modal-title{display:flex;align-items:center;gap:8px;flex:1;min-width:0;overflow:hidden}
.lookbook-modal-title h3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lookbook-nav-counter{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:.75rem;font-weight:500;color:var(--muted);white-space:nowrap;flex-shrink:0}
.lookbook-nav-btn{background:none;border:1px solid var(--line);border-radius:8px;padding:4px 10px;font-size:1.1rem;cursor:pointer;color:var(--ink);line-height:1;flex-shrink:0;transition:background .15s}
.lookbook-nav-btn:hover{background:var(--warm-bg)}
.lookbook-lightbox-nav{border-color:rgba(255,255,255,.3);color:#fff}
.lookbook-lightbox-nav:hover{background:rgba(255,255,255,.12)}
.modal-header .modal-close{background:none;border:none;font-size:1.4rem;cursor:pointer;padding:8px 10px;color:var(--muted);width:44px;height:44px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.lookbook-title-row{display:flex;align-items:flex-start;gap:8px}
.lookbook-title-row .lookbook-detail-title{flex:1}
.lookbook-rename-btn{background:none;border:none;cursor:pointer;color:var(--muted);font-size:.95rem;padding:4px;line-height:1;flex-shrink:0;transition:color .15s;margin-top:4px}
.lookbook-rename-btn:hover{color:var(--ink)}
.lookbook-provenance{margin:-6px 0 0;color:var(--muted);font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;line-height:1.45}
.lookbook-rename-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.lookbook-rename-input{flex:1;min-width:0}
.modal-footer{display:flex;gap:10px;justify-content:flex-end;padding-top:14px;border-top:1px solid var(--line)}
.modal-overlay{position:fixed;inset:0;background:rgba(30,27,24,.55);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:1000}
.lookbook-lightbox{position:fixed;inset:0;z-index:1200;padding:16px;background:rgba(20,18,16,.84);backdrop-filter:blur(8px);display:grid;place-items:center;cursor:zoom-out}
.lookbook-lightbox-panel{width:min(1200px,100%);height:min(900px,calc(100dvh - 32px));display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:10px;cursor:default}
.lookbook-lightbox-top{display:flex;align-items:center;justify-content:space-between;gap:10px;color:white;min-width:0}
.lookbook-lightbox-title{display:grid;gap:2px;flex:1;min-width:0;text-align:center}
.lookbook-lightbox-title h3{margin:0;font-family:"Iowan Old Style",Georgia,serif;font-size:clamp(1rem,2.4vw,1.45rem);font-weight:600;line-height:1.2;min-width:0}
.lookbook-lightbox-title h3 span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lookbook-lightbox-actions{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;min-width:0}
.lookbook-lightbox-modes{display:flex;align-items:center;gap:8px}
.lookbook-lightbox-modes .btn-small.active{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.28);color:#fff}
.lookbook-lightbox-zoom{display:flex;align-items:center;gap:8px}
.icon-btn{width:44px;padding-inline:0}
.zoom-reset{min-width:64px}
.lookbook-lightbox-stage{min-height:0;display:flex;align-items:center;justify-content:center;padding:12px;border-radius:16px;background:rgba(255,255,255,.08);overflow:hidden;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}
.lookbook-lightbox-stage[data-zoomed="true"]{overflow:auto}
.lookbook-lightbox-stage img{display:block;max-width:none;max-height:none;width:auto;height:auto;object-fit:contain;flex:0 0 auto}

@media(max-width:1080px){
  .lookbook-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .lookbook-detail-layout,.lookbook-sheet{grid-template-columns:1fr}
  .lookbook-view-grid{grid-template-columns:1fr}
  .lookbook-sheet-rail{border-left:none;border-top:1px solid rgba(52,44,36,.08)}
}
@media(max-width:760px){
  .lookbook-search-row,.lookbook-header,.lookbook-prompts-summary{flex-direction:column;align-items:flex-start}
  .lookbook-search-row .search-shell{width:100%}
  .lookbook-filter-grid,.lookbook-editor-fields,.lookbook-upload-grid{grid-template-columns:1fr}
  .lookbook-sheet-secondary{grid-template-columns:1fr}
  .lookbook-controls{position:static;padding:14px}
  .lookbook-prompts-card{display:none}
  .lookbook-lightbox{padding:10px}
  .lookbook-lightbox-panel{width:100%;height:calc(100dvh - 20px)}
  .lookbook-lightbox-top{gap:6px}
  .lookbook-lightbox-stage{padding:8px;border-radius:12px}
  .lookbook-lightbox-actions{justify-content:space-between;gap:6px;padding:8px;border-radius:14px;background:rgba(255,255,255,.08)}
  .lookbook-lightbox-modes{order:1;width:100%;display:grid;grid-template-columns:1fr 1fr;gap:6px}
  .lookbook-lightbox-modes .btn-small{width:100%;padding-inline:8px}
  .lookbook-lightbox-zoom{order:2;gap:6px}
  .lookbook-lightbox-actions .action-menu{order:3;margin-left:auto}
  .lookbook-modal-title{display:grid;gap:2px}
  .lookbook-modal-title h3{max-width:100%}
  .modal-footer{position:sticky;bottom:0;background:rgba(245,239,232,.96);backdrop-filter:blur(10px);z-index:2;flex-wrap:wrap}
}

/* ================================================================= */
/* CHAT (AI Stylist)                                                   */
/* ================================================================= */

.chat-view{display:flex;flex-direction:column;min-height:0}
.chat-container{display:flex;flex-direction:column;height:calc(100dvh - 140px);min-height:280px;padding:0;overflow:hidden}
.chat-header{padding:20px 24px 12px;border-bottom:1px solid var(--line)}
.chat-header .section-title{margin:4px 0 0}

.chat-messages{flex:1;overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:16px;scroll-behavior:smooth}

/* Empty state */
.chat-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;flex:1;padding:40px 20px;min-height:240px}
.chat-empty-icon{font-size:2.8rem;margin-bottom:12px;line-height:1}
.chat-empty h3{margin:0 0 8px;font-family:"Iowan Old Style",Georgia,serif;font-size:1.3rem;font-weight:600;color:var(--ink)}
.chat-empty p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.55;max-width:400px}

/* Suggestion chips */
.chat-chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 24px 16px;justify-content:center}
.chat-chip{border:1px solid var(--line);background:rgba(255,255,255,.72);border-radius:999px;padding:10px 16px;color:var(--muted);font-weight:600;font-size:.82rem;transition:all var(--ease);cursor:pointer;white-space:nowrap;min-height:44px}
@media(hover:hover){.chat-chip:hover{border-color:var(--warm);color:var(--warm);background:rgba(168,109,61,.06)}}
.chat-chip:active{transform:scale(.97)}

/* Bubbles */
.chat-bubble{max-width:85%;display:flex;flex-direction:column;gap:10px}
.chat-bubble.user{align-self:flex-end}
.chat-bubble.assistant{align-self:flex-start}

.chat-bubble-text{padding:14px 18px;border-radius:20px;font-size:.9rem;line-height:1.55;color:var(--text)}
.chat-bubble.user .chat-bubble-text{background:linear-gradient(135deg,var(--ink),#3f5365);color:white;border-bottom-right-radius:6px}
.chat-bubble.assistant .chat-bubble-text{background:rgba(255,255,255,.82);border:1px solid rgba(52,44,36,.06);border-bottom-left-radius:6px;box-shadow:0 2px 8px rgba(63,44,26,.04)}

/* Typing indicator */
.chat-typing{display:flex;gap:5px;padding:14px 18px;align-items:center}
.chat-typing span{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:chatPulse 1.2s ease-in-out infinite}
.chat-typing span:nth-child(2){animation-delay:.2s}
.chat-typing span:nth-child(3){animation-delay:.4s}
@keyframes chatPulse{0%,80%,100%{opacity:.3;transform:scale(.85)}40%{opacity:1;transform:scale(1)}}

/* Error */
.chat-error{padding:10px 14px;border-radius:12px;background:var(--danger-bg);color:var(--danger);font-size:.84rem;font-weight:600;align-self:center}

/* Outfit card strip */
.chat-outfit-strip{display:flex;gap:10px;overflow-x:auto;padding:4px 0;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.chat-outfit-strip::-webkit-scrollbar{display:none}
.chat-outfit-card{flex:0 0 auto;width:110px;border:none;padding:0;background:rgba(255,255,255,.82);border-radius:var(--r-md);overflow:hidden;text-align:left;box-shadow:0 2px 8px rgba(63,44,26,.06);cursor:pointer;transition:transform var(--ease)}
@media(hover:hover){.chat-outfit-card:hover{transform:translateY(-2px)}}
.chat-outfit-card img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block}
.chat-outfit-card .placeholder-img{width:100%;aspect-ratio:3/4}
.chat-outfit-name{display:block;padding:6px 8px 1px;font-size:.72rem;font-weight:600;color:var(--ink);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-outfit-brand{display:block;padding:0 8px 6px;font-size:.66rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Input bar */
.chat-input-bar{display:flex;gap:8px;padding:14px 20px;padding-bottom:calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:rgba(255,255,255,.5);align-items:center}
.chat-input{flex:1;padding:12px 16px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.82);color:var(--text);outline:none;font-size:1rem;transition:border-color var(--ease),box-shadow var(--ease)}
.chat-input:focus{border-color:rgba(41,49,58,.25);box-shadow:0 0 0 3px rgba(41,49,58,.05)}
.chat-input:disabled{opacity:.5}
.chat-send-btn{width:44px;height:44px;border:none;border-radius:50%;background:linear-gradient(135deg,var(--ink),#3f5365);color:white;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform var(--ease),opacity var(--ease);box-shadow:0 2px 8px rgba(41,49,58,.18)}
@media(hover:hover){.chat-send-btn:hover{transform:scale(1.06)}}
.chat-send-btn:active{transform:scale(.95)}
.chat-send-btn:disabled{opacity:.4;pointer-events:none}
.chat-send-btn svg{display:block}

/* Chat responsive */
@media(max-width:720px){
  .chat-container{height:calc(100dvh - 120px)}
  .chat-bubble{max-width:92%}
  .chat-outfit-card{width:100px}
  .chat-chips{padding:0 16px 12px}
  .chat-messages{padding:16px}
  .chat-input-bar{padding:10px 12px}
}
@media(max-width:480px){
  .chat-container{height:calc(100dvh - 100px)}
  .chat-outfit-card{width:90px}
}
