/* =============================================
   电子衣橱 Smart Wardrobe
   设计风格：莫兰迪色系 · 卡片式 · 移动端优先
   ============================================= */

:root{
  --primary:#F2C4CE;        /* 淡粉 */
  --primary-dark:#D89AA8;
  --primary-light:#FBE9ED;
  --accent:#F9E0E6;         /* 浅粉 */
  --accent-dark:#DBA6B4;
  --bg:#F7F5F0;             /* 米白背景 */
  --card:#FFFFFF;
  --ink:#3B3A36;            /* 主文字 */
  --ink-2:#8A877E;          /* 次要文字 */
  --line:#ECE9E2;           /* 分割线 */
  --danger:#C96F5F;
  --warn:#D9A441;
  --radius:16px;
  --radius-sm:10px;
  --shadow:0 2px 10px rgba(59,58,54,.06), 0 8px 24px rgba(59,58,54,.05);
  --shadow-lg:0 8px 30px rgba(59,58,54,.12);
  --nav-h:62px;
  --header-h:54px;
  --maxw:1100px;
}

*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{height:100%}
body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Segoe UI",Roboto,sans-serif;
  background:linear-gradient(180deg,var(--bg) 0%,#FFFFFF 46%,var(--bg) 100%);background-attachment:fixed;color:var(--ink);line-height:1.55;
  -webkit-font-smoothing:antialiased;height:100%;
}
img{max-width:100%;display:block}
button{font-family:inherit;border:none;background:none;cursor:pointer;color:inherit}
input,select,textarea{font-family:inherit;font-size:15px;color:var(--ink);border:1.5px solid var(--line);background:#fff;border-radius:var(--radius-sm);padding:11px 13px;width:100%;outline:none;transition:border-color .15s}
input:focus,select:focus,textarea:focus{border-color:var(--primary)}
a{color:var(--primary-dark);text-decoration:none}

/* ---------- 通用按钮 ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:11px 18px;border-radius:12px;font-size:15px;font-weight:600;
  transition:transform .12s, box-shadow .12s, background .12s;user-select:none;
}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--primary);color:#fff;box-shadow:0 4px 14px rgba(124,154,114,.35)}
.btn-primary:hover{background:var(--primary-dark)}
.btn-accent{background:var(--accent);color:#5A4433}
.btn-ghost{background:#fff;color:var(--primary-dark);border:1.5px solid var(--line)}
.btn-danger{background:#FDF1EE;color:var(--danger)}
.btn-block{width:100%}
.btn-sm{padding:8px 13px;font-size:13.5px;border-radius:10px}
.btn[disabled]{opacity:.5;pointer-events:none}

/* =============================================
   登录 / 注册页
   ============================================= */
.auth-body{display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:20px;
  background:linear-gradient(160deg,var(--primary-light) 0%,var(--bg) 45%,#F3EAE1 100%);}
.auth-wrap{width:100%;max-width:880px;display:flex;border-radius:24px;overflow:hidden;
  background:var(--card);box-shadow:var(--shadow-lg);flex-wrap:wrap}
.auth-brand{flex:1 1 340px;padding:48px 44px;background:linear-gradient(150deg,var(--primary),var(--primary-dark) 70%);
  color:#fff;display:flex;flex-direction:column;justify-content:center;gap:14px}
.auth-logo{font-size:52px;line-height:1}
.auth-brand h1{font-size:32px;font-weight:800;letter-spacing:1px}
.auth-brand p{opacity:.92;font-size:15px}
.auth-features{list-style:none;margin-top:18px;display:flex;flex-direction:column;gap:10px;font-size:14px;opacity:.95}
.auth-features li{background:rgba(255,255,255,.14);padding:9px 14px;border-radius:10px}
.auth-card{flex:1 1 340px;padding:36px 38px}
.auth-tabs{display:flex;gap:8px;margin-bottom:26px;background:var(--bg);border-radius:12px;padding:5px}
.auth-tab{flex:1;padding:10px;border-radius:9px;font-size:15px;font-weight:600;color:var(--ink-2);transition:all .15s}
.auth-tab.active{background:#fff;color:var(--primary-dark);box-shadow:var(--shadow)}
.auth-form{display:flex;flex-direction:column;gap:16px}
.auth-form[hidden]{display:none} /* 修复 hidden 被 display:flex 覆盖导致登录/注册表单同时显示 */
.field label{display:block;font-size:13px;color:var(--ink-2);margin-bottom:6px;font-weight:600}
.auth-tip{text-align:center;font-size:13.5px;color:var(--ink-2)}
.auth-msg{margin-top:16px;padding:12px 14px;border-radius:10px;font-size:14px;text-align:center}
.auth-msg.ok{background:var(--primary-light);color:var(--primary-dark)}
.auth-msg.err{background:#FDF1EE;color:var(--danger)}
.auth-msg.hide{display:none}

/* =============================================
   主应用布局
   ============================================= */
.app{max-width:var(--maxw);margin:0 auto;min-height:100dvh;position:relative;
  padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom));}
.app-header{
  position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.header-inner{max-width:var(--maxw);margin:0 auto;height:var(--header-h);padding:0 16px;
  display:flex;align-items:center;justify-content:space-between;gap:10px}
.app-title{font-size:17.5px;font-weight:800;color:var(--primary-dark);letter-spacing:.5px}
.header-date{font-size:12.5px;color:var(--ink-2)}
.header-right{display:flex;align-items:center;gap:10px}
@media (max-width:420px){.header-date{display:none}}

.app-main{padding:16px 16px 28px;max-width:var(--maxw);margin:0 auto}

/* 底部导航 */
.bottom-nav{
  position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:var(--maxw);
  height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);
  background:rgba(255,255,255,.96);backdrop-filter:blur(12px);
  border-top:1px solid var(--line);display:flex;z-index:50;
}
.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  font-size:11.5px;color:var(--ink-2);font-weight:600;transition:color .15s}
.nav-ico{font-size:21px;line-height:1;filter:grayscale(.4);opacity:.75;transition:all .15s}
.nav-item.active{color:var(--primary-dark)}
.nav-item.active .nav-ico{filter:none;opacity:1;transform:scale(1.1)}

/* =============================================
   首页
   ============================================= */
.greet{display:flex;align-items:baseline;gap:8px;margin:6px 0 14px}
.greet h2{font-size:22px;font-weight:800}
.greet .sub{font-size:13px;color:var(--ink-2)}

.overview-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-bottom:14px}
@media (min-width:640px){.overview-grid{grid-template-columns:repeat(4,1fr)}}
.ov-card{background:var(--card);border-radius:var(--radius);padding:11px 13px;box-shadow:var(--shadow);
  position:relative;overflow:hidden}
.ov-card .ov-label{font-size:11.5px;color:var(--ink-2);display:flex;align-items:center;gap:5px}
.ov-card .ov-value{font-size:19px;font-weight:800;margin-top:3px;color:var(--ink)}
.ov-card .ov-value small{font-size:11.5px;font-weight:600;color:var(--ink-2)}
.ov-card.hl{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff}
.ov-card.hl .ov-label,.ov-card.hl .ov-value small{color:rgba(255,255,255,.85)}
.ov-card.hl .ov-value{color:#fff}

.section-title{display:flex;align-items:center;justify-content:space-between;margin:20px 0 12px}
.section-title h3{font-size:16.5px;font-weight:800}
.section-title a,.section-title button{font-size:13px;color:var(--primary-dark);font-weight:600}

.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media (min-width:640px){.mini-grid{grid-template-columns:repeat(4,1fr);gap:14px}}
@media (min-width:900px){.mini-grid{grid-template-columns:repeat(5,1fr)}}
.mini-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);cursor:pointer;transition:transform .12s}
.mini-card:active{transform:scale(.98)}
.mini-card .mc-photo{aspect-ratio:1/1.02;background:var(--primary-light);position:relative;overflow:hidden}
.mini-card .mc-photo img{width:100%;height:100%;object-fit:cover}
.mini-card .mc-photo .mc-emoji{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:38px}
.mini-card .mc-body{padding:9px 11px 11px}
.mini-card .mc-name{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mini-card .mc-meta{display:flex;justify-content:space-between;align-items:center;margin-top:5px;font-size:11px;color:var(--ink-2)}
.mini-card .mc-price{color:var(--accent-dark);font-weight:800;font-size:12.5px}
.mc-badge{position:absolute;top:7px;left:7px;background:rgba(255,255,255,.7);padding:2px 6px;border-radius:20px;font-size:10px;font-weight:700;color:var(--primary-dark);box-shadow:var(--shadow)}

/* 闲置榜 */
.idle-item{display:flex;align-items:center;gap:10px;background:#fff;border-radius:var(--radius-sm);padding:8px 10px;box-shadow:var(--shadow)}
.idle-item .ii-photo{width:40px;height:40px;border-radius:10px;object-fit:cover;background:var(--primary-light);flex:none}
.idle-item .ii-name{flex:1;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.idle-item .ii-days{font-size:11px;color:var(--warn);font-weight:700;white-space:nowrap}

/* =============================================
   衣橱列表
   ============================================= */
.filter-bar{position:sticky;top:var(--header-h);z-index:30;background:var(--bg);
  padding:10px 0 12px;display:flex;flex-direction:column;gap:9px}
.search-row{display:flex;gap:8px}
.search-row input{flex:1;border-radius:12px}
.search-row .btn{padding:0 16px;border-radius:12px}
.chips{display:flex;gap:7px;overflow-x:auto;padding:2px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;padding:7px 14px;border-radius:20px;background:#fff;border:1.5px solid var(--line);
  font-size:13px;font-weight:600;color:var(--ink-2);transition:all .15s}
.chip.active{background:var(--primary);border-color:var(--primary);color:#fff}
.chip-row{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none}
.chip-row::-webkit-scrollbar{display:none}

.closet-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media (min-width:560px){.closet-grid{grid-template-columns:repeat(4,1fr);gap:14px}}
@media (min-width:900px){.closet-grid{grid-template-columns:repeat(5,1fr);gap:18px}}
.cloth-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);cursor:pointer;transition:transform .15s}
.cloth-card:active{transform:scale(.97)}
.cloth-photo{aspect-ratio:1/1.02;background:var(--primary-light);position:relative;overflow:hidden}
.cloth-photo img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.cloth-card:hover .cloth-photo img{transform:scale(1.04)}
.cloth-photo .no-photo{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:40px;background:linear-gradient(160deg,var(--primary-light),#F3EAE1)}
.cloth-photo .no-photo span{font-size:11px;color:var(--ink-2);font-weight:600}
.c-badges{position:absolute;top:7px;left:7px;display:flex;gap:5px}
.c-badge{background:rgba(255,255,255,.7);padding:2px 6px;border-radius:20px;font-size:10px;font-weight:700;color:var(--primary-dark);box-shadow:var(--shadow)}
.c-badge.winter{color:#5B7FA6}.c-badge.summer{color:#D98B3C}
.cloth-body{padding:9px 11px 11px}
.cloth-name{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cloth-meta{display:flex;align-items:center;gap:9px;margin-top:6px;flex-wrap:wrap}
.cloth-meta .price{color:var(--accent-dark);font-weight:800;font-size:13px}
.cloth-meta .wears{font-size:11px;color:var(--ink-2);background:var(--bg);padding:2px 7px;border-radius:20px}
.cloth-cost{margin-top:5px;font-size:11px;color:var(--ink-2);display:flex;gap:8px;flex-wrap:wrap}
.cloth-cost b{color:var(--primary-dark)}

.empty-state{text-align:center;padding:56px 20px;color:var(--ink-2)}
.empty-state .es-ico{font-size:56px;margin-bottom:12px}
.empty-state h4{font-size:17px;color:var(--ink);margin-bottom:6px}
.pager{display:flex;justify-content:center;gap:10px;margin-top:18px;align-items:center;font-size:13px;color:var(--ink-2)}

/* =============================================
   详情页
   ============================================= */
.detail-wrap{max-width:640px;margin:0 auto}
.detail-photo{width:100%;aspect-ratio:3/3.2;border-radius:var(--radius);overflow:hidden;position:relative;background:var(--primary-light);box-shadow:var(--shadow)}
.detail-photo img{width:100%;height:100%;object-fit:cover}
.detail-photo .no-photo{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:72px;background:linear-gradient(160deg,var(--primary-light),#F3EAE1)}
.detail-head{display:flex;align-items:flex-start;justify-content:space-between;margin-top:18px;gap:10px}
.detail-head h2{font-size:22px;font-weight:800;line-height:1.3}
.detail-tags{display:flex;gap:7px;margin-top:9px;flex-wrap:wrap}
.dtag{font-size:12px;font-weight:700;padding:4px 11px;border-radius:20px;background:#fff;border:1.5px solid var(--line);color:var(--ink-2)}
.dtag.cat{background:var(--primary-light);color:var(--primary-dark);border-color:transparent}

.cost-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}
.cost-cell{background:#fff;border-radius:var(--radius-sm);padding:13px;text-align:center;box-shadow:var(--shadow)}
.cost-cell .cc-label{font-size:11.5px;color:var(--ink-2);margin-bottom:5px}
.cost-cell .cc-value{font-size:18px;font-weight:800;color:var(--ink)}
.cost-cell .cc-value small{font-size:11px;color:var(--ink-2);font-weight:600}
.cost-cell.win{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff}
.cost-cell.win .cc-label,.cost-cell.win small{color:rgba(255,255,255,.85)}

.action-bar{display:flex;gap:10px;margin-top:16px}
.action-bar .btn{flex:1}

.info-list{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);margin-top:16px;padding:6px 16px}
.info-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}
.info-row:last-child{border-bottom:none}
.info-row .k{color:var(--ink-2)}
.info-row .v{font-weight:600;text-align:right;max-width:60%}

.logs-head{display:flex;align-items:center;justify-content:space-between;margin:20px 0 10px}
.logs-head h3{font-size:16px;font-weight:800}
.log-list{display:flex;flex-direction:column;gap:8px}
.log-item{display:flex;align-items:center;gap:10px;background:#fff;border-radius:var(--radius-sm);padding:9px 12px;box-shadow:var(--shadow);font-size:13.5px}
.log-item .log-date{font-weight:700;flex:1}
.log-item .log-x{color:var(--ink-2);font-size:12px}

/* =============================================
   统计页
   ============================================= */
.stats-section{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin-bottom:16px}
.stats-section h3{font-size:16px;font-weight:800;margin-bottom:14px;display:flex;align-items:center;gap:8px}
.donut-wrap{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.donut{position:relative;width:150px;height:150px;flex:none}
.donut svg{transform:rotate(-90deg)}
.donut-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.donut-center b{font-size:24px;font-weight:800}
.donut-center span{font-size:11.5px;color:var(--ink-2)}
.legend{display:flex;flex-direction:column;gap:8px;flex:1;min-width:170px}
.legend-item{display:flex;align-items:center;gap:9px;font-size:13px}
.legend-item .dot{width:11px;height:11px;border-radius:3.5px;flex:none}
.legend-item .name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.legend-item .num{color:var(--ink-2);font-weight:600}

.bar-list{display:flex;flex-direction:column;gap:11px}
.bar-row{display:flex;align-items:center;gap:10px;font-size:13px}
.bar-row .br-name{width:76px;flex:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.bar-row .br-track{flex:1;height:12px;background:var(--bg);border-radius:8px;overflow:hidden}
.bar-row .br-fill{height:100%;border-radius:8px;background:linear-gradient(90deg,var(--primary),var(--primary-dark));min-width:6px;transition:width .4s}
.bar-row .br-val{width:64px;text-align:right;color:var(--accent-dark);font-weight:800;flex:none}

.trend-chart{width:100%}
.trend-chart .tc-axis{display:flex;justify-content:space-between;font-size:10.5px;color:var(--ink-2);margin-top:4px}

.rank-list{display:flex;flex-direction:column;gap:10px}
.rank-item{display:flex;align-items:center;gap:11px;background:var(--bg);border-radius:var(--radius-sm);padding:8px 11px}
.rank-item .ri-no{width:26px;height:26px;border-radius:50%;background:var(--primary);color:#fff;font-size:12.5px;font-weight:800;display:flex;align-items:center;justify-content:center;flex:none}
.rank-item:nth-child(2) .ri-no{background:var(--accent-dark)}
.rank-item:nth-child(3) .ri-no{background:#B8A98E}
.rank-item .ri-photo{width:38px;height:38px;border-radius:9px;object-fit:cover;background:var(--primary-light);flex:none}
.rank-item .ri-info{flex:1;min-width:0}
.rank-item .ri-name{font-size:13.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rank-item .ri-sub{font-size:11.5px;color:var(--ink-2)}
.rank-item .ri-val{font-size:13.5px;font-weight:800;color:var(--primary-dark);flex:none}

/* =============================================
   表单（新增/编辑）
   ============================================= */
.form-wrap{max-width:560px;margin:0 auto}
.form-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 20px 132px;margin-bottom:8px}
.form-card h3{font-size:17px;font-weight:800;margin-bottom:16px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}
@media (max-width:460px){.form-grid{grid-template-columns:1fr}}
.form-grid .full{grid-column:1/-1}
.form-field label{display:block;font-size:13px;font-weight:700;color:var(--ink-2);margin-bottom:6px}
.form-field input,.form-field select,.form-field textarea{width:100%}
.photo-pick{display:flex;gap:14px;align-items:flex-start}
.photo-pick .pp-preview{width:118px;height:150px;border-radius:12px;background:var(--bg);border:2px dashed var(--line);
  display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--ink-2);font-size:12px;gap:4px;overflow:hidden;cursor:pointer;flex:none;transition:border-color .15s}
.photo-pick .pp-preview:hover{border-color:var(--primary)}
.photo-pick .pp-preview img{width:100%;height:100%;object-fit:cover}
.photo-pick .pp-actions{display:flex;flex-direction:column;gap:8px;padding-top:6px}
.photo-pick .pp-actions .btn{width:100%;justify-content:center}
/* 提交操作区：sticky 悬浮固定在底部导航上方，永不遮挡，手机端点击稳定 */
.form-actions{display:flex;gap:10px;margin-top:20px;position:sticky;bottom:76px;z-index:5;background:linear-gradient(to top,#fff 78%,rgba(255,255,255,0));padding:12px 0 8px}
.form-actions .btn{flex:1}
.form-tip{font-size:12px;color:var(--ink-2);margin-top:8px}

/* =============================================
   我的 / 用户管理
   ============================================= */
.profile-card{background:linear-gradient(135deg,var(--primary),var(--primary-dark));border-radius:var(--radius);padding:24px;color:#fff;box-shadow:var(--shadow)}
.profile-card .pc-avatar{width:60px;height:60px;border-radius:50%;background:rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;font-size:28px;margin-bottom:12px}
.profile-card h3{font-size:20px;font-weight:800}
.profile-card .pc-sub{font-size:13px;opacity:.9;margin-top:4px}
.profile-card .pc-badge{display:inline-block;margin-top:10px;background:rgba(255,255,255,.22);padding:4px 12px;border-radius:20px;font-size:12px;font-weight:700}

.me-menu{display:flex;flex-direction:column;gap:10px;margin-top:16px}
.me-item{display:flex;align-items:center;gap:12px;background:#fff;border-radius:var(--radius-sm);padding:14px 16px;box-shadow:var(--shadow);font-size:14.5px;font-weight:600;width:100%;text-align:left}
.me-item .mi-ico{font-size:20px}
.me-item .mi-arrow{margin-left:auto;color:var(--ink-2);font-size:13px}

/* 用户管理表格 */
.users-table-wrap{overflow-x:auto;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow)}
.users-table{width:100%;border-collapse:collapse;min-width:640px;font-size:13.5px}
.users-table th{text-align:left;padding:13px 14px;color:var(--ink-2);font-size:12px;font-weight:700;border-bottom:1px solid var(--line);background:var(--bg)}
.users-table td{padding:13px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
.users-table tr:last-child td{border-bottom:none}
.tag{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:700}
.tag.admin{background:var(--primary-light);color:var(--primary-dark)}
.tag.member{background:#F1EEE6;color:#8A877E}
.tag.on{background:#EAF4EA;color:#4C8A4C}
.tag.off{background:#FDF1EE;color:var(--danger)}
.u-actions{display:flex;gap:6px;flex-wrap:wrap}

/* =============================================
   Toast / 弹窗
   ============================================= */
#toast{position:fixed;left:50%;top:66px;transform:translateX(-50%) translateY(-8px);
  background:rgba(46,44,41,.94);color:#fff;padding:11px 20px;border-radius:12px;font-size:14px;
  opacity:0;pointer-events:none;transition:all .25s;z-index:99;max-width:86vw;text-align:center;box-shadow:var(--shadow-lg)}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
#toast.ok{background:rgba(94,122,86,.95)}
#toast.err{background:rgba(201,111,95,.95)}

.modal-mask{position:fixed;inset:0;background:rgba(46,44,41,.45);z-index:80;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .15s}
.modal{background:#fff;border-radius:var(--radius);width:100%;max-width:400px;padding:22px;box-shadow:var(--shadow-lg);animation:popIn .18s}
.modal h3{font-size:16.5px;font-weight:800;margin-bottom:14px}
.modal .field{margin-bottom:13px}
.modal-actions{display:flex;gap:10px;margin-top:16px}
.modal-actions .btn{flex:1}
@keyframes fadeIn{from{opacity:0}}
@keyframes popIn{from{opacity:0;transform:scale(.94)}}

/* 加载与空状态 */
.loading{text-align:center;padding:48px 0;color:var(--ink-2);font-size:14px}
.spinner{width:30px;height:30px;border:3.5px solid var(--line);border-top-color:var(--primary);border-radius:50%;margin:0 auto 12px;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* 桌面端微调 */
@media (min-width:900px){
  .app-header{position:sticky}
  .closet-grid{gap:18px}
  .detail-photo{max-width:420px;margin:0 auto}
  .detail-wrap .side{max-width:420px;margin:0 auto}
}

/* =============================================
   v2.1：分类小计 / 分类速览 / 搭配 / 分类管理 / 备份
   ============================================= */

/* 分类 chips 带数量小标签 */
.chips .chip small{font-size:10.5px;margin-left:4px;opacity:.75;font-weight:700}

/* 选中分类后的小计条 */
.subtotal-bar{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;
  border-radius:var(--radius);padding:14px 16px;margin-bottom:14px;box-shadow:var(--shadow)}
.st-head{font-size:14.5px;font-weight:800;margin-bottom:10px}
.st-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
@media (max-width:420px){.st-grid{grid-template-columns:repeat(2,1fr);gap:8px}}
.st-cell{background:rgba(255,255,255,.16);border-radius:10px;padding:9px 11px}
.st-cell span{display:block;font-size:11px;opacity:.85;margin-bottom:2px}
.st-cell b{font-size:16px}
.st-cell small{font-size:10.5px;font-weight:600;opacity:.85}

/* 首页分类速览 */
.cat-chips{display:flex;gap:9px;overflow-x:auto;padding:2px;scrollbar-width:none}
.cat-chips::-webkit-scrollbar{display:none}
.cat-chips .chip{white-space:nowrap}

/* 统计页分类小计卡片 */
.cat-summary{display:flex;flex-direction:column;gap:10px}
.cat-sum-item{background:var(--bg);border-radius:var(--radius-sm);padding:11px 13px;cursor:pointer;transition:transform .12s}
.cat-sum-item:active{transform:scale(.98)}
.csi-head{display:flex;align-items:center;gap:9px}
.csi-icon{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:17px;flex:none}
.csi-name{font-size:14.5px;font-weight:800;flex:1}
.csi-count{font-size:12px;color:var(--ink-2);font-weight:600}
.csi-stats{display:flex;gap:14px;margin-top:6px;font-size:12px;color:var(--ink-2);flex-wrap:wrap}
.csi-stats b{color:var(--primary-dark)}
.tip-sm{font-size:12px;color:var(--ink-2);margin-top:8px}

/* 搭配 */
.outfit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media (min-width:640px){.outfit-grid{grid-template-columns:repeat(4,1fr);gap:14px}}
@media (min-width:900px){.outfit-grid{grid-template-columns:repeat(5,1fr)}}
.outfit-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);cursor:pointer;transition:transform .15s}
.outfit-card:active{transform:scale(.97)}
.oc-cover{aspect-ratio:1/1.02;background:linear-gradient(150deg,var(--primary-light),#F3EAE1);position:relative;overflow:hidden}
.oc-cover img{width:100%;height:100%;object-fit:cover}
.oc-cover .oc-emoji{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:38px;opacity:.7}
.oc-count{position:absolute;top:9px;right:9px;background:rgba(255,255,255,.94);padding:3px 10px;border-radius:20px;font-size:11.5px;font-weight:800;color:var(--primary-dark);box-shadow:var(--shadow)}
.oc-wear{position:absolute;left:7px;bottom:7px;background:rgba(255,255,255,.95);border:1.5px solid var(--primary);border-radius:16px;padding:3px 9px;font-size:11px;font-weight:800;color:var(--primary-dark);box-shadow:var(--shadow);cursor:pointer;z-index:2}
.oc-wear:active{transform:scale(.94)}
/* 我的搭配排序切换 */
.mini-tabs{display:flex;gap:8px}
.mini-tab{flex:1;padding:8px 0;border:1.5px solid var(--line);background:#fff;border-radius:var(--radius-sm);font-size:12.5px;font-weight:600;color:var(--ink-2);cursor:pointer;transition:all .15s}
.mini-tab.on{border-color:var(--primary);background:var(--primary-light);color:var(--primary-dark)}
.oc-body{padding:9px 11px 11px}
.oc-name{font-size:13px;font-weight:700}
.oc-desc{font-size:11px;color:var(--ink-2);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.oc-meta{display:flex;gap:10px;margin-top:5px;font-size:11px;color:var(--ink-2);flex-wrap:wrap}
.oc-meta .oc-cost{color:var(--primary-dark);font-weight:700}

/* 搭配表单：多选单品 */
.pick-tools{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.pick-tools input[type=search]{padding:10px 13px;border:1.5px solid var(--line);border-radius:var(--radius-sm);font-size:14px;background:#fff;outline:none}
.pick-tools input[type=search]:focus{border-color:var(--primary)}
.pick-chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:2px}
.pick-chips::-webkit-scrollbar{display:none}
.pick-chips .chip{flex:none;padding:5px 12px;border-radius:16px;background:#fff;border:1.5px solid var(--line);font-size:12.5px;cursor:pointer;transition:all .15s}
.pick-chips .chip.active{background:var(--primary);border-color:var(--primary);color:#fff}
.pick-groups{max-height:52vh;overflow-y:auto;padding-right:4px;display:flex;flex-direction:column;gap:12px}
.pick-group{display:flex;flex-direction:column;gap:8px}
.pg-title{display:flex;align-items:center;gap:6px;font-size:13.5px;font-weight:800;color:var(--primary-dark);padding:0 2px}
.pg-title small{font-size:11.5px;color:var(--ink-2);font-weight:600}
.pick-items{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding-right:4px}
@media (min-width:640px){.pick-items{grid-template-columns:repeat(4,1fr)}}
@media (min-width:900px){.pick-items{grid-template-columns:repeat(5,1fr)}}
/* 搭配选择：竖向封面卡片，点选高亮 */
.pick-item{display:flex;flex-direction:column;align-items:stretch;background:#fff;border:2px solid var(--line);border-radius:var(--radius-sm);
  overflow:hidden;cursor:pointer;transition:all .15s;position:relative}
.pick-item:active{transform:scale(.97)}
.pick-item.checked{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-light)}
.pick-item .pi-thumb{aspect-ratio:1/1.02;background:linear-gradient(150deg,var(--primary-light),#F6EDE7);display:flex;align-items:center;justify-content:center;font-size:24px;overflow:hidden;position:relative;flex:none}
.pick-item .pi-thumb img{width:100%;height:100%;object-fit:cover}
.pick-item .pi-info{padding:6px 8px 9px;flex:1;min-width:0}
.pick-item .pi-name{display:block;font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pick-item .pi-sub{display:block;font-size:10px;color:var(--ink-2);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pick-item .pi-check{position:absolute;top:6px;right:6px;width:20px;height:20px;border-radius:50%;background:rgba(255,255,255,.96);border:2px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff;box-shadow:var(--shadow);flex:none}
.pick-item.checked .pi-check{background:var(--primary);border-color:var(--primary)}
/* 已选搭配实时预览条 */
.look-sel-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px;min-height:42px}
.look-sel-chip{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1.5px solid var(--primary);border-radius:22px;padding:4px 12px 4px 5px;font-size:12.5px;font-weight:600;color:var(--primary-dark);box-shadow:var(--shadow);cursor:pointer}
.look-sel-chip:active{transform:scale(.95)}
.look-sel-chip img{width:30px;height:30px;border-radius:50%;object-fit:cover;flex:none}
.look-sel-chip span:last-child{white-space:nowrap;max-width:110px;overflow:hidden;text-overflow:ellipsis}
.ls-placeholder{font-size:12px;color:var(--ink-2)}

/* 主题配色选择 */
.theme-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:14px}
@media (min-width:520px){.theme-grid{grid-template-columns:repeat(3,1fr)}}
.theme-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:7px;padding:12px 10px 10px;background:#fff;
  border:2px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s}
.theme-card.active{border-color:var(--primary);background:var(--primary-light)}
.theme-card .tc-swatch{width:100%;height:46px;border-radius:9px;display:block}
.theme-card .tc-name{font-size:13px;font-weight:700;color:var(--ink)}
.theme-card .tc-check{position:absolute;top:8px;right:8px;width:20px;height:20px;border-radius:50%;background:var(--primary);
  color:#fff;display:none;align-items:center;justify-content:center;font-size:12px}
.theme-card.active .tc-check{display:flex}

/* 分类管理弹窗 */
.cat-mgr-row{display:flex;align-items:center;gap:8px}
.cat-mgr-icon{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:17px;flex:none}
.cat-mgr-ico{width:34px;height:34px;border-radius:9px;background:var(--primary-light,#FBE9ED);display:flex;align-items:center;justify-content:center;font-size:17px;flex:none;cursor:pointer;border:1px solid transparent}
.cat-mgr-ico:active{border-color:var(--primary,#F2C4CE)}
.cat-mgr-name{flex:1;padding:8px 10px}
.cat-mgr-del{flex:none}
.cat-mgr-sort{display:flex;flex-direction:column;gap:2px;flex:none}
.cat-mgr-move{width:26px;height:18px;border-radius:5px;background:#f7f1f3;color:var(--primary-dark,#D89AA8);font-size:12px;line-height:1;display:flex;align-items:center;justify-content:center}
.cat-mgr-move:disabled{opacity:.3}
.catm-icons{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.catm-ico{width:36px;height:36px;border-radius:9px;background:#faf4f6;font-size:18px;display:flex;align-items:center;justify-content:center;border:1.5px solid transparent}
.catm-ico.on{border-color:var(--primary,#F2C4CE);background:#FBE9ED}
.catm-add{display:flex;flex-direction:column;gap:8px;align-items:stretch;background:#fff;border-radius:14px;border:1px dashed var(--primary-dark);padding:10px 12px}
.catm-add input{flex:1;padding:8px 10px}

/* 颜色输入行 */
.color-pick-row{display:flex;gap:8px;align-items:center}
.color-pick-row input[type=color]{width:46px;height:42px;padding:3px;border:1.5px solid var(--line);border-radius:9px;background:#fff;cursor:pointer}


/* ============ v2.2 每日穿搭 / 季节多选 ============ */
.look-editor{padding:14px}
#seasonSel{width:100%;padding:9px 10px;border:1.5px solid var(--line);border-radius:10px;background:#fff;font-size:14px;color:var(--text);min-height:118px}
#seasonSel option{padding:4px 6px;border-radius:6px}
#seasonSel option:checked{background:var(--primary);color:#fff;font-weight:600}
.look-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:10px;box-shadow:var(--shadow)}
.lc-date{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.lc-date b{font-size:14.5px;color:var(--primary-dark)}
.lc-note{font-size:11.5px;color:var(--ink-2);background:var(--primary-light);padding:2px 9px;border-radius:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:55%}
.lc-covers{display:flex;gap:6px;margin-bottom:8px}
.lc-cover{width:64px;height:76px;border-radius:9px;overflow:hidden;flex:none;background:var(--bg-1);border:1px solid var(--line)}
.lc-cover img{width:100%;height:100%;object-fit:cover}
.lc-cover-empty{display:flex;align-items:center;justify-content:center;font-size:22px;background:var(--bg-1)}
.lc-meta{display:flex;gap:14px;font-size:12px;color:var(--ink-2);margin-bottom:8px;flex-wrap:wrap}
.lc-stat b{font-size:14px;color:var(--ink-1)}
.lc-actions{display:flex;gap:8px;justify-content:flex-end}
.mini-table{width:100%;border-collapse:collapse;font-size:13px;margin:10px 0}
.mini-table th,.mini-table td{padding:7px 9px;border-bottom:1px solid var(--line);text-align:left}
.mini-table th{color:var(--ink-2);font-weight:600}

/* ============ v2.3 闲置页 / 每日穿搭单品 ============ */
.idle-more{display:block;text-align:center;color:var(--primary);font-size:13px;padding:8px 0 2px;text-decoration:none}
.look-items-row{display:flex;flex-wrap:wrap;gap:7px}
.look-item-tag{display:flex;align-items:center;gap:6px;background:var(--bg-1);border:1px dashed var(--line);border-radius:12px;padding:5px 10px 5px 5px}
.look-item-tag img{width:28px;height:28px;border-radius:8px;object-fit:cover}
.lit-emoji{font-size:18px;width:28px;text-align:center}
.lit-name{font-size:13px;font-weight:600}
.lit-sub{font-size:11px;color:var(--ink-2)}

/* 季节选择：春夏秋冬与「四季」平级原生多选下拉 */
#seasonSel{width:100%;border:1px solid var(--line);border-radius:10px;padding:6px;font-size:14px;background:#fff}
#seasonSel:disabled{background:var(--pink-1);opacity:.7}
#seasonSel option{padding:6px 8px;border-radius:6px}
#seasonSel option:checked{background:var(--pink-2);color:#fff}
.req{color:#D8433B;font-size:12px;font-weight:600;margin-left:4px}
.field-error{border:1.5px solid #D8433B!important;box-shadow:0 0 0 2px rgba(216,67,59,.15)}
.photo-pick.field-error{border-radius:12px}

/* =============================================
   衣橱新界面：顶部工具行 + 分类标签栏 + 卡片网格 + 添加卡片
   ============================================= */
.closet-head{background:linear-gradient(160deg,var(--primary-light),#fff);border-radius:0 0 20px 20px;padding:14px 16px 0;margin:-16px -16px 0}
.ch-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.ch-title h2{font-size:22px;font-weight:800;margin:0;display:flex;align-items:baseline;gap:6px}
.ch-count{font-size:13px;font-weight:600;color:var(--ink-2)}
.ch-stat-link{font-size:12.5px;color:var(--primary-dark);text-decoration:none;font-weight:600}
.ch-tools{display:flex;gap:6px;flex-wrap:wrap}
.tool-btn{width:36px;height:36px;border-radius:12px;border:1.5px solid var(--line);background:#fff;color:var(--ink);font-size:15px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;text-decoration:none;box-shadow:var(--shadow)}
.tool-btn:active{transform:scale(.94)}
.cat-tabs{display:flex;gap:8px;overflow-x:auto;padding:12px 2px 10px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.cat-tabs::-webkit-scrollbar{display:none}
.cat-tab{flex:none;display:inline-flex;align-items:center;gap:4px;padding:8px 14px;border-radius:20px;border:1.5px solid var(--line);background:#fff;font-size:13.5px;font-weight:700;color:var(--ink);cursor:pointer}
.cat-tab small{font-size:11px;color:var(--ink-2);font-weight:600}
.cat-tab.active{background:var(--primary-dark);border-color:var(--primary-dark);color:#fff}
.cat-tab.active small{color:rgba(255,255,255,.85)}
.filter-tags{display:flex;gap:6px;flex-wrap:wrap;padding:6px 4px}
.ftag{font-size:12px;font-weight:600;color:var(--primary-dark);background:var(--primary-light);border:1px solid var(--primary);border-radius:12px;padding:3px 10px}
/* 添加卡片 */
.add-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:2px dashed var(--primary);background:var(--primary-light);color:var(--primary-dark);min-height:210px;cursor:pointer}
.add-ico{font-size:44px;font-weight:300;line-height:1;color:var(--primary-dark)}
.add-txt{font-size:14px;font-weight:700;color:var(--primary-dark)}
/* 批量选择角标 */
.cloth-card,.cloth-row{position:relative}
.sel-mark{position:absolute;top:8px;right:8px;width:24px;height:24px;border-radius:50%;background:var(--primary-dark);color:#fff;font-size:14px;font-weight:800;display:flex;align-items:center;justify-content:center;z-index:3;box-shadow:0 2px 6px rgba(0,0,0,.15)}
.cloth-card.sel,.cloth-row.sel{outline:2.5px solid var(--primary-dark);outline-offset:2px}
/* 列表视图 */
.closet-list{display:flex;flex-direction:column;gap:10px;padding:14px 16px 90px}
.cloth-row{display:flex;align-items:center;gap:12px;background:#fff;border:1.5px solid var(--line);border-radius:var(--radius);padding:10px;box-shadow:var(--shadow)}
.cr-photo{width:64px;height:64px;border-radius:12px;overflow:hidden;flex:none;background:var(--primary-light)}
.cr-photo img{width:100%;height:100%;object-fit:cover}
.cr-photo .no-photo{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:22px}
.cr-body{flex:1;min-width:0}
.cr-name{font-size:15px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cr-meta{display:flex;gap:6px;margin-top:4px;flex-wrap:wrap}
.cr-tag{font-size:11px;color:var(--ink-2);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:1px 7px;white-space:nowrap}
.cr-cost{font-size:12px;color:var(--ink-2);margin-top:4px}
.cr-cost b{color:var(--primary-dark)}
.cr-right{text-align:right;flex:none}
.cr-right .price{font-size:15px;font-weight:800;color:var(--ink)}
.cr-right .wears{font-size:12px;color:var(--ink-2)}
/* 批量操作条 */
.batch-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:84px;width:min(92%,560px);display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:10px 14px;box-shadow:var(--shadow-lg);z-index:40}
.bb-count{font-size:14px;font-weight:700;color:var(--ink)}
/* 底部弹窗 sheet */
.sheet-mask{position:fixed;inset:0;background:rgba(30,20,24,.45);z-index:99;display:flex;align-items:flex-end;justify-content:center}
.sheet-panel{width:100%;max-width:560px;background:#fff;border-radius:22px 22px 0 0;padding:16px 18px calc(18px + env(safe-area-inset-bottom));max-height:86vh;display:flex;flex-direction:column;animation:sheetUp .22s ease}
@keyframes sheetUp{from{transform:translateY(40px);opacity:.4}to{transform:none;opacity:1}}
.sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.sheet-head h4{font-size:17px;font-weight:800;margin:0}
.sheet-x{width:32px;height:32px;border-radius:50%;border:none;background:var(--bg);font-size:20px;color:var(--ink-2);cursor:pointer}
.sheet-body{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:2px 2px 6px}
.sheet-foot{display:flex;gap:10px;padding-top:12px}
.sheet-foot .btn{flex:1}
.sheet-group{margin-bottom:14px}
.sg-title{font-size:13px;font-weight:700;color:var(--ink-2);margin-bottom:8px}
.sheet-2col{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.sheet-opt{text-align:center;padding:11px 6px;border:1.5px solid var(--line);border-radius:12px;background:#fff;font-size:13.5px;font-weight:600;color:var(--ink);cursor:pointer}
.sheet-opt.on{background:var(--primary-dark);border-color:var(--primary-dark);color:#fff}
/* 齿轮菜单 */
.sheet-menu{display:flex;flex-direction:column;gap:4px}
.sheet-menu-item{text-align:left;padding:14px 16px;border:none;background:#fff;border-radius:12px;font-size:15px;font-weight:600;color:var(--ink);cursor:pointer}
.sheet-menu-item:active{background:var(--primary-light)}
/* 搜索页 */
.search-page{min-height:100%;display:flex;flex-direction:column}
.sp-top{display:flex;align-items:center;justify-content:space-between;padding:4px 0 14px}
.sp-title{font-size:17px;font-weight:800}
.sp-input-row{display:flex;gap:10px}
.sp-input-row input{flex:1}
.sp-input-row .btn{flex:none;padding:0 22px;border-radius:14px}
.sp-result{padding-top:16px;flex:1}

/* =============================================
   v2.11 添加/详情页列表式 + 弹窗选择器 + 二级分类
   ============================================= */
/* 添加/编辑物品（列表式） */
.form-card { max-width: 560px; margin: 0 auto; }
.dl-photo { width: 100%; aspect-ratio: 1/1; max-height: 340px; border-radius: 16px; overflow: hidden; background: linear-gradient(135deg, var(--primary-light), #fff); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; color: var(--primary-dark); font-size: 13px; cursor: pointer; margin-bottom: 14px; }
.dl-photo img { width: 100%; height: 100%; object-fit: cover; }
.dl-ph-ico { font-size: 40px; }
.dl-list { border-radius: 14px; overflow: hidden; background: #fff; border: 1px solid var(--line, #f0e4e7); }
.dl-row { display: flex; align-items: center; gap: 10px; padding: 13px 14px; border-bottom: 1px solid #f6eef0; cursor: pointer; min-height: 46px; }
.dl-row:last-child { border-bottom: none; }
.dl-row.dl-row-input { cursor: default; }
.dl-input { flex: 1; min-width: 0; border: none; background: transparent; font-size: 14px; color: var(--ink-1, #4a3d42); text-align: right; outline: none; padding: 2px 0; }
.dl-input::placeholder { color: #c9b7bd; font-size: 13px; }
.dl-input:focus { border-bottom: 1.5px solid var(--primary, #F2C4CE); }
.dl-k { flex: 0 0 86px; font-size: 13px; color: var(--ink-2, #8a7d82); }
.dl-k em { color: #E05B5B; font-style: normal; margin-left: 2px; }
.dl-v { flex: 1; text-align: right; font-size: 14px; color: var(--ink-1, #4a3d42); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dl-v.ph { color: #c9b7bd; }
.dl-arrow { color: #d5c3c9; font-size: 17px; line-height: 1; }
.dl-wears { display: inline-flex; align-items: center; gap: 14px; }
.wears-btn { width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--primary, #F2C4CE); background: #fff; color: var(--primary-dark, #D89AA8); font-size: 17px; line-height: 1; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.wears-btn:active { background: var(--primary-light, #FBE9ED); }
.dl-wears b { min-width: 24px; text-align: center; font-size: 16px; color: var(--ink-1, #4a3d42); }
.sheet-input { width: 100%; padding: 12px 14px; border: 1px solid var(--line, #f0e4e7); border-radius: 10px; font-size: 15px; box-sizing: border-box; outline: none; background: #fff; }
.sheet-input:focus { border-color: var(--primary, #F2C4CE); box-shadow: 0 0 0 3px rgba(242, 196, 206, .25); }

/* 分类两级选择 */
.cat-pick { display: flex; flex-direction: column; gap: 4px; max-height: 56vh; overflow-y: auto; }
.cat-pick-main { width: 100%; padding: 12px 14px; border: none; background: #fff; border-bottom: 1px solid #f6eef0; font-size: 15px; text-align: left; cursor: pointer; border-radius: 8px; color: var(--ink-1, #4a3d42); }
.cat-pick-main.on { background: var(--primary-light, #FBE9ED); color: var(--primary-dark, #D89AA8); font-weight: 600; }
.cat-pick-sub { display: flex; flex-wrap: wrap; gap: 8px; padding: 4px 10px 10px; }
.cat-pick-sub-opt { padding: 7px 14px; border-radius: 999px; border: 1px solid var(--line, #f0e4e7); background: #fff; font-size: 13px; cursor: pointer; color: var(--ink-1, #4a3d42); }
.cat-pick-sub-opt.on { background: var(--primary, #F2C4CE); border-color: var(--primary, #F2C4CE); color: #fff; font-weight: 600; }

/* 详情页 v2（参考图风格） */
.dl2 { max-width: 560px; margin: 0 auto; padding-bottom: 30px; }
.dl2-top { display: flex; justify-content: space-between; align-items: center; padding: 4px 2px 12px; }
.dl2-top-acts { display: flex; gap: 8px; }
.dl2-photo { width: 100%; aspect-ratio: 1/1; max-height: 360px; border-radius: 18px; overflow: hidden; background: linear-gradient(135deg, var(--primary-light), #fff); display: flex; align-items: center; justify-content: center; margin-bottom: 14px; }
.dl2-photo img { width: 100%; height: 100%; object-fit: cover; }
.dl2-tabs { display: flex; border-bottom: 2px solid #f2e6ea; margin-bottom: 14px; }
.dl2-tab { flex: 1; padding: 12px 0; text-align: center; border: none; background: none; font-size: 15px; color: var(--ink-2, #8a7d82); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -2px; }
.dl2-tab.on { color: var(--primary-dark, #D89AA8); font-weight: 700; border-bottom-color: var(--primary-dark, #D89AA8); }
.dl2-tab-n { display: inline-block; min-width: 18px; margin-left: 4px; padding: 1px 6px; border-radius: 999px; background: var(--primary, #F2C4CE); color: #fff; font-size: 11px; line-height: 1.5; }
.dl2-list { border-radius: 14px; overflow: hidden; background: #fff; border: 1px solid var(--line, #f0e4e7); }
.dl2-row { display: flex; align-items: center; gap: 10px; padding: 13px 14px; border-bottom: 1px solid #f6eef0; font-size: 14px; min-height: 46px; }
.dl2-row:last-child { border-bottom: none; }
.dl2-k { flex: 0 0 92px; font-size: 13px; color: var(--ink-2, #8a7d82); }
.dl2-v { flex: 1; text-align: right; color: var(--ink-1, #4a3d42); }
.dl2-v.ph { color: #c9b7bd; }
.dl2-note .dl2-v { text-align: left; white-space: pre-wrap; }
.dl2-bottom-actions { display: flex; gap: 10px; margin: 16px 0; }
.dl2-bottom-actions .btn { flex: 1; }
.dl2-wear-log { margin-top: 6px; }
.dl2-outfits { display: flex; flex-direction: column; gap: 10px; }
.dl2-outfit { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid var(--line, #f0e4e7); border-radius: 14px; padding: 12px 14px; cursor: pointer; }
.dl2-outfit:active { background: var(--primary-light, #FBE9ED); }
.do-ico { width: 44px; height: 44px; border-radius: 12px; background: var(--primary-light, #FBE9ED); display: flex; align-items: center; justify-content: center; font-size: 22px; }
.do-info { flex: 1; min-width: 0; }
.do-name { font-size: 15px; font-weight: 600; color: var(--ink-1, #4a3d42); }
.do-sub { font-size: 12px; color: var(--ink-2, #8a7d82); margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.do-date { font-size: 11px; color: #c9b7bd; margin-top: 2px; }

/* ============ v2.12 编辑分类独立页 ============ */
.catm-page{max-width:560px;margin:0 auto;padding:14px 16px calc(40px + env(safe-area-inset-bottom))}
.catm-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.catm-head .back-btn{font-size:20px;width:36px;height:36px;border-radius:50%;background:var(--primary-light);color:var(--primary-dark);display:flex;align-items:center;justify-content:center;flex:none;text-decoration:none}
.catm-head h2{font-size:17px;font-weight:800;margin:0;flex:1}
.catm-head .catm-tip{font-size:12px;color:#b0888f}
.catm-card{background:#fff;border-radius:14px;border:1px solid var(--line,#f0e4e7);padding:12px;margin-bottom:12px}
.cat-mgr-sub{border-top:1px dashed #f2e2e6;margin-top:8px;padding-top:8px}
.cat-mgr-sub-tip{font-size:11px;color:#b0888f;margin-bottom:6px}
.cat-mgr-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.cat-mgr-chip{background:var(--primary-light);color:var(--primary-dark);font-size:12px;padding:4px 10px;border-radius:20px;display:inline-flex;align-items:center;gap:6px}
.cat-mgr-chip i{font-style:normal;cursor:pointer;font-weight:800;opacity:.6;padding:0 2px}
.cat-mgr-chip i:active{opacity:1}
.cat-mgr-sub-add{display:flex;gap:8px}
.cat-mgr-sub-input{flex:1;padding:7px 10px;font-size:13px}
.catm-add{display:flex;flex-direction:column;gap:8px;background:#fff;border-radius:14px;border:1px dashed var(--primary-dark);padding:10px 12px}
.catm-add input{flex:1;padding:8px 10px}
.catm-add .btn{width:100%}
/* 每日穿搭 · 无搭配空态引导卡片 */
.look-empty-card{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:34px 22px;background:linear-gradient(180deg,rgba(255,255,255,.85),rgba(255,255,255,.5));border:1.5px dashed var(--primary-light,#F9E0E6);border-radius:16px;margin:2px 0 6px}
.look-empty-card .le-ico{width:68px;height:68px;border-radius:50%;background:var(--primary-light,#F9E0E6);display:flex;align-items:center;justify-content:center;font-size:32px;box-shadow:inset 0 -8px 16px rgba(0,0,0,.05)}
.look-empty-card h4{font-size:17px;font-weight:800;margin:2px 0 0;color:var(--ink-1)}
.look-empty-card p{font-size:13.5px;color:var(--ink-2);line-height:1.7;margin:0;max-width:280px}
.look-empty-card .btn{width:100%;max-width:280px;padding:12px 0;font-size:15px;border-radius:12px}
.look-empty-card .btn-primary{box-shadow:0 4px 12px var(--primary-light,#F9E0E6)}
.look-empty-card .btn-ghost{background:#fff;border:1px solid var(--line,#F0E3E6)}

/* 历史穿搭详情：可点行 */
.lk-row{cursor:pointer;transition:background .12s}
.lk-row:active{background:var(--primary-light)}

/* 分享衣橱弹窗：物品多选 */
.sp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.sp-item{position:relative;background:#fff;border:2px solid var(--line);border-radius:10px;overflow:hidden;cursor:pointer;transition:all .12s}
.sp-item.on{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-light)}
.sp-ph{aspect-ratio:1/1;background:var(--primary-light);display:flex;align-items:center;justify-content:center;font-size:22px;overflow:hidden}
.sp-ph img{width:100%;height:100%;object-fit:cover}
.sp-nm{font-size:10.5px;padding:3px 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}
.sp-chk{position:absolute;top:4px;right:4px;width:18px;height:18px;border-radius:50%;background:var(--primary);color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center;font-weight:800}

/* v2.25 衣橱切换器 */
.wardrobe-switcher{display:inline-flex;align-items:center;gap:5px;margin-left:10px;padding:5px 11px;background:var(--primary-light);color:var(--primary-dark);border:none;border-radius:14px;font-size:12.5px;font-weight:600;cursor:pointer;transition:transform .1s}
.wardrobe-switcher:active{transform:scale(.96)}
.wardrobe-switcher .ws-arrow{font-size:10px;opacity:.7}
.ws-list{display:flex;flex-direction:column;gap:6px}
.ws-item{display:flex;align-items:center;gap:10px;padding:11px 13px;background:#fff;border:1.5px solid var(--line);border-radius:12px;cursor:pointer;transition:all .15s}
.ws-item.cur{border-color:var(--primary);background:var(--primary-light)}
.ws-item .ws-ico{font-size:22px}
.ws-item .ws-name{flex:1;font-weight:600;font-size:14px}
.ws-item .ws-meta{font-size:11px;color:#888}
.ws-item .ws-chk{color:var(--primary);font-weight:800}
.ws-actions{display:flex;gap:6px;margin-top:8px}
.ws-actions .btn{flex:1;font-size:12.5px}
