:root{--bg:#f5f0e8;--paper:#fffdf9;--ink:#24201c;--muted:#756d64;--line:#ded5ca;--accent:#2e4a3f;--accent-soft:#dfe9e4;--danger:#8a3d35;--shadow:0 12px 35px rgba(48,39,30,.08);--r:22px;--max:1320px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
button,input,select,textarea{font:inherit}.shell{min-height:100vh;padding-bottom:88px}.topbar{max-width:var(--max);margin:auto;padding:28px 24px 14px;display:flex;align-items:end;justify-content:space-between;gap:16px}
h1{font-size:clamp(24px,4vw,40px);margin:2px 0 0;letter-spacing:-.04em}.eyebrow{font-size:11px;letter-spacing:.18em;color:var(--muted);font-weight:700}
.status-pill{border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:8px 12px;font-size:12px;color:var(--muted)}
main{max-width:var(--max);margin:auto;padding:12px 24px 32px}.nav{position:fixed;z-index:20;left:50%;bottom:12px;transform:translateX(-50%);display:flex;gap:4px;background:rgba(255,253,249,.94);backdrop-filter:blur(16px);padding:7px;border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow)}
.nav button{border:0;background:transparent;color:var(--muted);padding:10px 15px;border-radius:999px;cursor:pointer}.nav button.active{background:var(--ink);color:#fff}
.view-head{display:flex;align-items:end;justify-content:space-between;gap:18px;margin:14px 0 22px}.view-head h2{font-size:28px;margin:0;letter-spacing:-.03em}.view-head p{margin:6px 0 0;color:var(--muted)}
.hero{display:grid;grid-template-columns:1.3fr .7fr;gap:18px;margin-bottom:22px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:20px;box-shadow:var(--shadow)}.panel h3{margin:0 0 14px;font-size:17px}
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.metric{padding:14px;border:1px solid var(--line);border-radius:16px;background:#fff}.metric b{display:block;font-size:26px}.metric span{font-size:12px;color:var(--muted)}
.toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}.toolbar input,.toolbar select,.field input,.field select,.field textarea{border:1px solid var(--line);background:#fff;border-radius:14px;padding:11px 13px;color:var(--ink);min-width:0}.toolbar input{flex:1;min-width:180px}
.btn{border:0;background:var(--ink);color:#fff;padding:11px 16px;border-radius:14px;cursor:pointer}.btn.secondary{background:var(--accent-soft);color:var(--accent)}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn.danger{background:var(--danger)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.garment{background:var(--paper);border:1px solid var(--line);border-radius:20px;overflow:hidden;cursor:pointer;transition:.18s transform,.18s border-color}.garment:hover{transform:translateY(-2px);border-color:#bbb0a4}.garment.selected{outline:3px solid var(--accent);outline-offset:1px}
.photo{aspect-ratio:4/5;background:linear-gradient(135deg,#ece5db,#ddd6ce);display:grid;place-items:center;overflow:hidden;position:relative}.photo img{width:100%;height:100%;object-fit:cover}.photo .fallback{font-size:13px;color:var(--muted);padding:20px;text-align:center}
.garment-body{padding:12px}.garment-body h4{margin:0 0 5px;font-size:15px}.meta{font-size:12px;color:var(--muted);display:flex;gap:6px;flex-wrap:wrap}.chip{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:4px 8px;font-size:11px;color:var(--muted)}.chip.ok{background:var(--accent-soft);border-color:transparent;color:var(--accent)}
.empty{min-height:220px;display:grid;place-items:center;text-align:center;color:var(--muted);padding:30px}.spinner{width:26px;height:26px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12px;color:var(--muted)}.field.full{grid-column:1/-1}.drop{border:1.5px dashed #b9aea2;border-radius:20px;padding:30px;text-align:center;background:#fff;position:relative}.drop input[type=file]{max-width:100%}
.draft{margin-top:18px}.draft-banner{background:#f0e9dc;border-radius:14px;padding:12px 14px;color:#675c50;font-size:13px;margin-bottom:14px}.outfit-row{display:flex;gap:9px;overflow:auto;padding-bottom:6px}.mini{width:90px;flex:0 0 90px}.mini .photo{border-radius:14px}
.result{border-top:1px solid var(--line);padding:14px 0}.result:first-child{border-top:0;padding-top:0}.result h4{margin:0 0 8px}.score{font-variant-numeric:tabular-nums;color:var(--accent);font-weight:700}.timeline{display:grid;gap:10px}.event{display:flex;justify-content:space-between;gap:16px;padding:14px;border:1px solid var(--line);background:#fff;border-radius:15px}.event small{color:var(--muted)}
.more-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.more-card{padding:22px;text-align:left;border:1px solid var(--line);background:var(--paper);border-radius:20px;cursor:pointer}.more-card b{display:block;font-size:18px;margin-bottom:5px}.more-card span{color:var(--muted);font-size:13px}.toast{position:fixed;z-index:40;right:20px;top:20px;background:var(--ink);color:#fff;padding:12px 16px;border-radius:14px;box-shadow:var(--shadow)}
@media(max-width:780px){.topbar,main{padding-left:14px;padding-right:14px}.topbar{padding-top:18px}.hero{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.more-grid{grid-template-columns:1fr}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.garment-body{padding:10px}.nav{bottom:8px;width:calc(100% - 20px);justify-content:space-between}.nav button{padding:10px 11px;font-size:12px}.view-head{align-items:start;flex-direction:column}}

.login-panel{max-width:560px;margin:40px auto}.toolbar select{min-width:140px}
@media(max-width:780px){.toolbar input,.toolbar select,.toolbar .btn{width:100%}.toolbar input{min-width:0}.login-panel{margin:12px auto}}

/* v0.5.0 mobile, accessibility, calendar and capture polish */
button,.garment,.calendar-cell{min-height:44px}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.garment:focus-visible,.calendar-cell:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:2px}
.garment{padding:0;text-align:left;color:inherit;font:inherit;width:100%}.garment-body{display:block}.garment .meta{display:flex}
.feedback-row{align-items:center}.feedback-row button[disabled]{opacity:.48;cursor:not-allowed}
.duplicate-warning{background:#f8e6df;border:1px solid #e5c4b7;border-radius:14px;padding:13px 14px;margin-bottom:14px;color:#6e342d}
.draft-row{display:grid;grid-template-columns:72px minmax(0,1fr) auto auto;gap:12px;align-items:center}.draft-thumb{width:72px;height:72px;object-fit:cover;border-radius:12px}.draft-copy{min-width:0}
.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.calendar-head h3{margin-bottom:4px}
.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.calendar-weekdays{margin:8px 0 6px}.calendar-weekdays span{text-align:center;font-size:11px;color:var(--muted)}
.calendar-cell{aspect-ratio:1;border:1px solid var(--line);background:#fff;border-radius:12px;color:var(--ink);position:relative;cursor:pointer;display:grid;place-items:center}.calendar-cell.muted-cell{border-color:transparent;background:transparent;min-height:0}.calendar-cell.has-wear{background:var(--accent-soft);border-color:#b9cec3}.day-num{font-size:13px}.wear-dot{position:absolute;right:5px;bottom:4px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;display:grid;place-items:center;background:var(--accent);color:#fff;font-size:10px}
.login-panel input{font-size:16px}
@media(max-width:780px){
  .shell{padding-bottom:calc(96px + env(safe-area-inset-bottom))}
  .nav{bottom:calc(8px + env(safe-area-inset-bottom));padding-bottom:max(7px,env(safe-area-inset-bottom))}
  .nav button{min-width:44px;min-height:44px}
  .topbar{padding-top:calc(18px + env(safe-area-inset-top))}
  .draft-row{grid-template-columns:58px minmax(0,1fr);gap:10px}.draft-thumb{width:58px;height:58px}.draft-row .btn{width:100%;grid-column:auto}
  .calendar-head{align-items:flex-start;flex-direction:column}.calendar-head .toolbar{width:100%;display:grid;grid-template-columns:44px 1fr 44px}
  .calendar-grid,.calendar-weekdays{gap:4px}.calendar-cell{border-radius:10px}.wear-dot{right:3px;bottom:3px}
  .outfit-row{scroll-snap-type:x proximity}.mini{scroll-snap-align:start}
  input,select,textarea{font-size:16px}
}
@media(max-width:430px){
  .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .garment-body h4{font-size:14px}
  .calendar-cell{min-height:42px}
}


/* v0.5.1 mobile layout fixes */
.grid>.empty{grid-column:1/-1;width:100%;white-space:nowrap}
.capture-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:460px;margin:16px auto 0;align-items:stretch}
.capture-actions .btn{display:flex;align-items:center;justify-content:center;width:100%;margin:0;box-sizing:border-box}
.capture-actions .capture-analyze{grid-column:1/-1}
@media(max-width:430px){
  .grid>.empty{font-size:14px;padding-left:8px;padding-right:8px}
  .capture-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%}
  .capture-actions .btn{min-width:0;padding-left:10px;padding-right:10px;white-space:nowrap}
}
