/* Today and Closet: image-led composition, neutral surfaces, restrained grouping. */
body.voye-today,body.voye-closet-dash{--voye-bg:#fff;--voye-surface:#f7f7f7}
body.voye-today .sec,body.voye-closet-dash .dash-section{margin-bottom:24px!important}
body.voye-today .section-head h2,body.voye-closet-dash .section-head h2{font-size:18px!important}
body.voye-today .top,body.voye-closet-dash .masthead{margin-bottom:12px!important}
body.voye-today .date-line{font-size:14px!important;color:#777!important}
body.voye-today .weather-bar{gap:12px;margin-bottom:24px;padding:8px 0 12px;border-bottom:1px solid #eee}
body.voye-today .weather-bar>i{font-size:28px;color:#929da3}
body.voye-today .weather-copy{flex-direction:column;gap:0}
body.voye-today .weather-copy strong{font-size:16px}
body.voye-today .weather-copy span{font-size:12px;color:#777}
body.voye-today .weather-refresh,body.voye-today .cal-btn{width:44px;height:44px}
body.voye-today .qs-primary{gap:12px;margin:0}
body.voye-today .qs-btn{padding:0;gap:0;overflow:hidden;background:#fafafa;border:1px solid #efefef;border-radius:16px}
.quick-art{display:block;position:relative;width:100%;height:140px;overflow:hidden;background:#f6f6f6}
.quick-art>.ti{position:absolute;left:calc(50% - 18px);top:48px;font-size:36px;color:#777}
.quick-copy{display:block;padding:12px}
body.voye-today .quick-copy strong{font-size:16px}
body.voye-today .quick-copy small{font-size:12px;color:#777;line-height:1.5;margin-top:4px}
.quick-type{padding:20px;background:#f3f3f1;text-align:left}
.quick-type>span{font-size:23px;font-weight:450;line-height:1.6;letter-spacing:.04em;color:#555}
.quick-type>.ti{left:auto;right:12px;top:auto;bottom:12px;font-size:22px}
.voye-today .voye-oc-piece{position:absolute;object-fit:contain;mix-blend-mode:multiply}
.voye-today .voye-oc-piece[data-slot=top]{left:2%!important;top:8%!important;width:58%!important;height:52%!important;transform:rotate(-4deg)!important}
.voye-today .voye-oc-piece[data-slot=bottom]{left:45%!important;top:22%!important;width:51%!important;height:72%!important;transform:rotate(3deg)!important}
.voye-today .voye-oc-piece[data-slot=outer]{left:0!important;top:1%!important;width:42%!important;height:58%!important}
.voye-today .voye-oc-piece[data-slot=bag]{left:64%!important;top:1%!important;width:29%!important;height:26%!important}
.voye-today .voye-oc-piece[data-slot=shoes]{left:3%!important;top:72%!important;width:45%!important;height:24%!important;transform:rotate(-8deg)!important}
body.voye-today .inspire-row{grid-auto-columns:calc((100% - 12px)/2);gap:12px}
body.voye-today .inspire-card{height:232px;min-height:0!important;border-radius:14px;background:#f7f7f7}
body.voye-today .cloth-row{grid-auto-columns:22%!important}
body.voye-today .cloth-row small,body.voye-today .oc-row small{font-size:12px}
body.voye-today .empty-all{padding:16px 0 24px!important;text-align:left}
body.voye-today .empty-all>i{display:none}
.section-empty{grid-column:1/-1;margin:0;padding:12px 0;color:#888;font-size:14px}
body.voye-closet-dash .meta-line{font-size:14px;color:#777;margin-bottom:20px}
body.voye-closet-dash .search-field{min-height:44px;margin-bottom:24px;background:transparent;border-bottom:1px solid #eee;border-radius:0;padding:0;gap:12px}
body.voye-closet-dash .icon-button{background:#242424;color:#fff;border:0}
.collection-card{position:relative}
body.voye-closet-dash .collection-cover{height:204px;background:#f6f6f6;border-radius:16px}
body.voye-closet-dash .collection-meta{padding:12px 0 0;align-items:center}
body.voye-closet-dash .collection-meta strong{font-size:16px}
body.voye-closet-dash .collection-meta span{font-size:12px;color:#777}
.cover-piece{position:absolute;display:block}
.cover-piece img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.cover-piece-0{left:4%;top:9%;width:65%;height:82%;transform:rotate(-5deg);z-index:1}
.cover-piece-1{right:1%;top:5%;width:42%;height:49%;transform:rotate(7deg);z-index:2}
.cover-piece-2{right:0;bottom:4%;width:43%;height:45%;transform:rotate(-7deg);z-index:3}
.cover-symbol{height:100%;display:grid;place-items:center;color:#b6b6b6;font-size:48px}
#allCollection .collection-cover{height:228px}
#allCollection .collection-meta{position:absolute;left:20px;top:20px;display:block;padding:0;z-index:4}
#allCollection .collection-meta strong{font-size:20px}
#allCollection .collection-meta span{display:block;margin-top:4px}
#allCollection .collection-card:after{content:'↗';position:absolute;bottom:16px;left:20px;font-size:24px;color:#555}
#allCollection .cover-piece-0{left:36%;width:40%;height:88%;top:4%}
#allCollection .cover-piece-1{right:0;width:30%}
#allCollection .cover-piece-2{right:0;width:29%}
#allCollection .cover-symbol{justify-content:end;padding-right:48px}
body.voye-closet-dash .clothes-flow{grid-auto-columns:22%;gap:12px}
.item-name{display:block;font-size:12px;font-weight:500;margin-top:8px}
body.voye-closet-dash .cloth-tile small{font-size:12px;margin-top:4px}
#wornFlow{display:block}
.wear-row{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid #eee;color:#444;text-decoration:none;font-size:14px}
.wear-row small{font-size:12px;color:#888}
a:focus-visible,button:focus-visible,[role=button]:focus-visible{outline:2px solid #777;outline-offset:4px}
@media(max-width:370px){.quick-art{height:124px}.quick-type{padding:16px}.quick-type>span{font-size:20px}body.voye-today .inspire-card{height:204px}}

/* Reference refinement: expressive artwork stays inside the image surfaces. */
body.voye-today .qs-btn{background:#fff;border:0}
body.voye-today .quick-art{height:188px;border-radius:16px;background:radial-gradient(ellipse at 12% 15%,#fbe4e2 0,transparent 65%),#f9f7f5}
body.voye-today .quick-surprise{background:radial-gradient(ellipse at 85% 0,#bcd8f0 0,transparent 68%),#f8f7f5}
.collage-caption,.cover-caption{position:absolute;z-index:5;font-family:'Segoe Print','Bradley Hand',cursive;font-weight:500;line-height:1.1;pointer-events:none}
.quick-art .collage-caption{left:12px;bottom:12px;font-size:23px;transform:rotate(-9deg)}
body.voye-today .quick-art>.collage-spark,.collage-spark{position:absolute;left:auto;right:12px;top:12px;bottom:auto;font-size:23px;color:#c1a662;z-index:6}
body.voye-today .quick-copy{padding:12px 4px 4px}
body.voye-today .inspire-card{height:256px;background:radial-gradient(ellipse at 0 0,#eef2fa 0,transparent 60%),#f7f7f7}
body.voye-today .inspire-link:nth-child(2) .inspire-card{background:radial-gradient(ellipse at 100% 0,#fbe8e5 0,transparent 65%),#f7f7f7}
.inspire-card .collage-caption{left:12px;top:16px;font-size:21px;transform:rotate(-9deg);color:#627daa}
.inspire-card .collage-spark{top:48px;right:12px;font-size:20px}
body.voye-today .inspire-card .voye-oc-piece[data-slot=top]{top:19%!important;height:46%!important}
body.voye-today .inspire-card .voye-oc-piece[data-slot=bottom]{top:30%!important;height:64%!important}
body.voye-today .quick-art .voye-oc-piece[data-slot=shoes]{left:8%!important;top:58%!important}
body.voye-closet-dash .collection-cover{height:228px;background:linear-gradient(145deg,#f0f0f0,#fafafa 60%,#f1f1f1)}
.cover-caption{left:12px;top:16px;font-size:23px;max-width:75%;transform:rotate(-9deg)}
.collection-card[data-theme=summer] .collection-cover{background:radial-gradient(ellipse at 0 0,#bcd8eb 0,transparent 58%),linear-gradient(145deg,#fafafa,#faeae6)}
.collection-card[data-theme=summer] .cover-caption{background:#f9dce9;padding:4px 8px}
.collections .cover-piece-0{top:25%;height:70%}
.collections .cover-piece-1{top:28%;height:43%}
.cover-arrow{position:absolute;right:12px;bottom:12px;z-index:6;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#fff;color:#555}
#allCollection .collection-cover{height:208px;background:linear-gradient(120deg,#f1efeb,#faf9f7 58%,#f0eeea)}
#allCollection .cover-caption{left:20px;top:48px;font-family:Georgia,serif;font-size:36px;letter-spacing:-1.5px;transform:rotate(-9deg)}
#allCollection .collection-meta{top:116px}
#allCollection .collection-meta strong{font-size:14px}
#allCollection .collection-meta span{font-size:12px}
#allCollection .collection-card:after{display:none}
#allCollection .cover-piece-0{left:44%;width:34%}
#allCollection .cover-piece-1{width:27%}
#allCollection .cover-piece-2{width:27%}
@media(max-width:370px){body.voye-today .quick-art{height:164px}.quick-art .collage-caption{font-size:20px}#allCollection .cover-caption{font-size:30px}body.voye-today .inspire-card{height:232px}}
.quick-art .collage-caption{bottom:8px;font-size:21px;background:rgba(255,255,255,.86);padding:4px 8px;transform:rotate(-6deg)}
.collections>.collection-card:only-child{grid-column:1/-1}
.collections>.collection-card:only-child .collection-cover{height:188px}
.collections>.collection-card:only-child .cover-caption{top:28px;left:16px;max-width:42%;font-size:24px}
.collections>.collection-card:only-child .cover-piece-0{left:42%;top:8%;width:36%;height:86%}
.collections>.collection-card:only-child .cover-piece-1{right:0;top:8%;width:27%;height:52%}
.collections>.collection-card:only-child .cover-piece-2{right:0;bottom:0;width:28%;height:46%}

/* Curated paper compositions. Text and garment slots have separate space. */
.paper-layer{position:absolute;z-index:0;left:28%;top:12%;width:60%;height:72%;transform:rotate(-9deg);background:repeating-linear-gradient(0deg,transparent 0 11px,#c4c4c41a 11px 12px),repeating-linear-gradient(90deg,#ffffff90 0 11px,#c4c4c41a 11px 12px)}
.paper-layer:before,.paper-layer:after{content:'';position:absolute;width:48px;height:16px;background:#bdd6e4aa;transform:rotate(24deg);left:12px;top:-6px}
.paper-layer:after{top:auto;left:auto;right:0;bottom:-4px;background:#efd2ce99;transform:rotate(-12deg)}
body.voye-today .qs-btn{border-radius:16px;background:#fafafa}
body.voye-today .quick-art{height:180px;border-radius:16px 16px 0 0}
body.voye-today .quick-copy{position:relative;padding:12px 36px 12px 16px;min-height:72px}
body.voye-today .quick-copy small{font-size:11px}
.quick-arrow{position:absolute;right:12px;top:24px;border-radius:50%;padding:6px;background:#eee;font-size:14px}
.action-medallion{position:absolute;left:12px;top:12px;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(140deg,#ffe3a0,#ffc65e);box-shadow:inset 0 0 0 1px #ffffff80;z-index:6;color:#26221b;font-size:23px;transform:rotate(-8deg)}
.quick-surprise .action-medallion{background:linear-gradient(140deg,#edc7ff,#cf9df5);transform:rotate(8deg)}
body.voye-today .quick-art>.collage-spark{display:none}
.quick-art .collage-caption{left:12px;bottom:24px;width:62px;font-size:23px;line-height:1.15;background:none;padding:0;transform:rotate(-10deg)}
.quick-surprise .collage-caption{left:auto;right:12px;top:16px;bottom:auto;width:88px;font-size:22px}
body.voye-today #quickArt .voye-oc-piece[data-slot=top]{left:27%!important;top:5%!important;width:67%!important;height:66%!important}
body.voye-today #quickArt .voye-oc-piece[data-slot=bottom]{left:48%!important;top:42%!important;width:49%!important;height:65%!important}
body.voye-today #shuffleArt .voye-oc-piece[data-slot=top]{left:0!important;top:29%!important;width:68%!important;height:64%!important}
body.voye-today #shuffleArt .voye-oc-piece[data-slot=bottom]{left:57%!important;top:48%!important;width:41%!important;height:58%!important}
body.voye-today .quick-art .voye-oc-piece[data-slot=shoes],body.voye-today .quick-art .voye-oc-piece[data-slot=bag],body.voye-today .quick-art .voye-oc-piece[data-slot=outer]{display:none}
body.voye-today .inspire-card{height:264px}
.inspire-card .collage-caption{max-width:86px;font-size:24px;line-height:1.2;top:12px;left:12px}
.editorial-note{position:absolute;right:12px;bottom:16px;z-index:5;width:72px;padding:8px 4px;background:#ffffffe0;font:14px/1.3 'Segoe Print',cursive;color:#607bad;transform:rotate(7deg)}
body.voye-today .editorial-layout-0 .voye-oc-piece[data-slot=top]{left:37%!important;top:15%!important;width:62%!important;height:48%!important;transform:rotate(9deg)!important}
body.voye-today .editorial-layout-0 .voye-oc-piece[data-slot=bottom]{left:0!important;top:43%!important;width:55%!important;height:56%!important;transform:rotate(10deg)!important}
body.voye-today .editorial-layout-0 .voye-oc-piece[data-slot=shoes]{left:51%!important;top:56%!important;width:44%!important;height:20%!important}
.editorial-layout-1 .paper-layer{left:6%;top:20%;background:#f3deca80;transform:rotate(13deg)}
.editorial-layout-1 .paper-layer:before{background:#f4b3c6aa}
.editorial-layout-1 .collage-caption{color:#252525;max-width:125px;transform:rotate(-7deg)}
body.voye-today .editorial-layout-1 .voye-oc-piece[data-slot=top]{left:0!important;top:29%!important;width:62%!important;height:48%!important;transform:rotate(-10deg)!important}
body.voye-today .editorial-layout-1 .voye-oc-piece[data-slot=bottom]{left:53%!important;top:19%!important;width:46%!important;height:66%!important;transform:rotate(-3deg)!important}
body.voye-today .editorial-layout-1 .voye-oc-piece[data-slot=shoes]{left:57%!important;top:76%!important;width:40%!important;height:23%!important}
.editorial-layout-1 .editorial-note{right:auto;left:8px;bottom:8px;width:96px;background:transparent;color:#333;transform:rotate(-9deg)}
body.voye-closet-dash .search-field{border:0;border-radius:12px;background:#f7f7f8;padding:0 16px;margin-bottom:16px}
#allCollection .collection-cover{height:232px}
#allCollection .collection-meta{top:28px;left:16px;max-width:43%}
#allCollection .collection-meta strong{font-size:28px;line-height:1.2}
.collection-meta small{display:block;color:#7d7d7d;font-size:12px;font-weight:400;line-height:1.5;margin:8px 0 4px}
#allCollection .cover-caption{top:auto;bottom:32px;left:24px;font-family:'Segoe Print',cursive;color:#83a0c4;font-size:26px;letter-spacing:0}
#allCollection .cover-piece-0{left:38%;top:16%;width:43%;height:70%}
#allCollection .cover-piece-1{top:3%;right:1%;width:29%;height:66%}
#allCollection .cover-piece-2{right:4%;bottom:0;width:38%;height:36%}
body.voye-closet-dash .collections .collection-cover{height:272px}
.collections .collection-meta{position:absolute;left:16px;top:16px;display:block;padding:0;z-index:6;max-width:70%}
.collections .collection-meta strong{font-size:19px!important}
.collections .collection-meta small{max-width:110px;margin-top:4px}
.collections .cover-caption{left:8px;top:auto;bottom:20px;max-width:90px;font-size:19px;z-index:5}
.collections .cover-piece-0{left:0;top:34%;width:73%;height:57%}
.collections .cover-piece-1{right:0;top:29%;width:43%;height:57%}
.collections .cover-piece-2{right:4%;bottom:3%;width:51%;height:25%}
.collections .collection-card[data-theme=neutral] .cover-caption{display:none}
.collections .collection-card[data-theme=neutral] .cover-piece-0{left:4%;top:39%;width:90%;height:58%}
body.voye-today .cloth-row small,body.voye-closet-dash .cloth-tile small,body.voye-closet-dash .cloth-tile .item-name{display:none}
body.voye-today .cloth-row,body.voye-closet-dash .clothes-flow{grid-auto-columns:20%!important;gap:8px!important}

/* Weather and calendar: optical sizes match the header reference. */
body.voye-today .cal-btn{width:52px;height:52px;flex:none;background:#f5f5f5;color:#161616;border:1px solid #f1f1f1}
body.voye-today .cal-btn svg{width:25px;height:25px}
body.voye-today .date-line{color:#74787e!important;line-height:1.5}
body.voye-today .weather-bar{gap:16px;padding:4px 0 16px;margin-bottom:16px;min-height:68px;border-bottom:1px solid #eceef0}
body.voye-today .weather-symbol{width:40px;height:32px;flex:none;color:#89a3bb}
body.voye-today .weather-copy{gap:2px;line-height:1.35}
body.voye-today .weather-copy strong{font-size:18px;font-weight:650;color:#191919}
body.voye-today .weather-copy span{font-size:13px;color:#777e86}
body.voye-today .weather-refresh{width:44px;height:44px;flex:none;color:#858c94;cursor:pointer}
.weather-refresh svg{width:21px;height:21px}
.weather-refresh.loading svg{animation:voye-spin .8s linear infinite}

/* ------------------------------------------------------------------------
 * 装饰元素(手写字条 .collage-caption / 贴纸 .editorial-note / 集合封面上的
 * .cover-caption、圆形箭头 .cover-arrow)不能盖住衣物图片本身或挡住点击区域。
 * 实测（真实生产数据、getBoundingClientRect 像素级重叠检测，viewport 320×690、
 * 360×740、440×956、768×1024、1280桌面宽度全部验证）显示：原尺寸的贴纸/字条
 * 经常和上衣、下装、鞋子的可视区域重叠几百到几千平方像素，这正是用户截图里
 * "贴纸盖住鞋子"那张图的成因。下面统一收紧贴纸/字条尺寸并锁进卡片四角空白处，
 * 同时把正对着装饰的那一小块服装碎片朝反方向轻微内缩腾出空间；所有分支修完后
 * 复测重叠面积均为 0。
 * 首页"搭配灵感"卡片(.editorial-layout-0 / .editorial-layout-1)见下面第一段；
 * "衣橱"页主题集合封面(#allCollection / .collections)见第二段。
 * 未发现同类问题的位置：搭配编辑画布(outfit.html)、保存后的搭配预览
 * (saved-outfits.html/look.html)——这两处没有使用 .collage-caption /
 * .editorial-note / .cover-caption 这套贴纸装饰，不存在同类遮挡。
 * ------------------------------------------------------------------------ */
.inspire-card .collage-caption{max-width:44px;font-size:13px;line-height:1.15;top:6px;left:6px}
.editorial-note{width:58px;padding:4px 3px;font-size:10.5px;line-height:1.15;right:6px;bottom:6px}
.editorial-layout-1 .editorial-note{left:6px;right:auto;bottom:6px;width:48px}
body.voye-today .editorial-layout-0 .voye-oc-piece[data-slot=top]{left:41%!important;width:57%!important}
body.voye-today .editorial-layout-0 .voye-oc-piece[data-slot=bottom]{width:46%!important}
body.voye-today .editorial-layout-0 .voye-oc-piece[data-slot=shoes]{top:53%!important;height:17%!important}
body.voye-today .editorial-layout-1 .voye-oc-piece[data-slot=top]{height:36%!important;top:34%!important}
@media(max-width:400px){
  /* 极窄机型(iPhone SE等,~320px)卡片本身更窄，贴纸/字条还要再收一圈才不会碰到服装。 */
  .inspire-card .collage-caption{max-width:34px}
  .editorial-note{width:44px}
}

/* "衣橱"仪表盘主题集合封面：手写字条(.cover-caption)和圆形箭头(.cover-arrow)
 * 同样不能压住封面里的衣物碎片(.cover-piece-0/1/2)。
 * #allCollection ("全部衣服"，封面更大 400×232) 收紧字条宽度并挪动两块碎片；
 * .collections 里的小卡片(194×272，如"夏季"/"黑色")比原来的家居屏幕更挤，
 * 手写字条和左上角已有的标题/描述文字(.collection-meta)会互相压字——这两处
 * 文字都想占左上角时，保留有实际信息的标题栏(.collection-meta)，把纯装饰性的
 * 英文手写字条隐藏，而不是让两段文字叠在一起（同样是"没有空间就不硬塞"的思路）。 */
#allCollection .cover-caption{max-width:110px;font-size:21px}
#allCollection .cover-piece-0{left:44%}
#allCollection .cover-piece-2{right:16%;bottom:12%;width:30%;height:26%}
.collections .cover-caption{display:none}
.collections .cover-piece-1{height:50%}
.collections .cover-piece-2{right:20%;bottom:20%;width:34%;height:16%}
/* 已知遗留问题（未处理，需要产品确认后再动）："全部衣服"以外、.collections 内
 * 主题为 neutral 的封面（如"黑色"）用了铺满 90% 宽度的大图(.cover-piece-0)，
 * 右下角圆形箭头(.cover-arrow)仍会压在这张大图上（实测约 32×32px 全部重叠）。
 * 这是一个持续存在的小型导航角标（类似"收藏/展开"角标的常见UI写法），不是
 * 大面积挡住衣物的贴纸；要彻底消除需要把这张主图缩小很多，会明显改变"全屏
 * 大图"的封面观感，所以先如实标注、不擅自改设计，留给用户确认取舍。 */
