@font-face{font-family:Jost Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/jost-cyrillic-wght-normal-CjwCQKo9.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Jost Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/jost-latin-ext-wght-normal-BDUtSsKd.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Jost Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/jost-latin-wght-normal-ObQm3Zd1.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2)format("woff2"),url(/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff)format("woff")}*{box-sizing:border-box}button,input,select,textarea{font:inherit;color:inherit}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#110f0d;--surface:#1e1b18;--sunken:#2c2824;--tag:#312d28;--header:#25221f;--hover:#24211d;--ink:#f2eee7;--on-ink:#110f0d;--text-2:#cbc7c0;--muted:#b1ada7;--icon:#9c9892;--faint:#a29e98;--line:#6f6b65;--divider:#33302b;--highlight:#45391e;--accent:#d2465c;--today:#d2465c;--string:#d2465c;--danger:#f08c6d;--danger-bg:#3b2b24;--success:#94d186;--success-bg:#2f3427;--scrim:#0009;--shadow:0 1px 2px #00000080;--font-figures:"Barlow Condensed", "Jost Variable", system-ui, sans-serif;--radius:16px;--radius-sm:12px;--radius-xs:8px;--radius-control:8px;--radius-badge:4px}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#d1c9bf;--surface:#f5f1ea;--sunken:#e8e2d9;--tag:#f5f1ea;--header:#ebe5dd;--hover:#eee9e1;--ink:#1e1a15;--on-ink:#f5f1ea;--text-2:#413c36;--muted:#514c46;--icon:#68625c;--faint:#625d56;--line:#746e66;--divider:#d9d3cc;--highlight:#e6d5a8;--danger:#a73a1b;--danger-bg:#eddfd5;--success:#3a6830;--success-bg:#dfe1d4;--scrim:#1e1a1573;--shadow:0 1px 2px #0000001a}body{background:var(--bg);color:var(--ink);margin:0;font-family:Jost Variable,system-ui,sans-serif}.fig{font-family:var(--font-figures);letter-spacing:.01em;font-size:1.12em;font-weight:600;line-height:1}.app{max-width:1400px;margin:0 auto;padding:24px}h1{letter-spacing:-.01em;margin-bottom:16px;font-size:1.75rem;font-weight:600}.item-table,.preview-pane,.stats-block,.pair-row,.pair-item,.grid-card{border-radius:var(--radius);box-shadow:var(--shadow)}.view-nav button,.theme-toggle,.filter-bar select,.filter-bar .search-box,.sort-control select,.sort-control button,.worn-filters select,.worn-day-pick,.upload-actions button,.detail-actions>button{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface)}.file-pick,.upload-confirm,.detail-actions>button:first-child{background:var(--ink);border-color:var(--ink);color:var(--on-ink);border-radius:var(--radius-control);cursor:pointer}.detail-actions>button{cursor:pointer;padding:10px 18px}.detail-actions>button:disabled{opacity:.5;cursor:default}.file-pick{padding:12px 18px;font-size:.95rem;display:inline-block}.pair-row{align-items:center;gap:10px;padding:8px;display:flex}.pair-thumb{object-fit:cover;border-radius:calc(var(--radius) - 8px);flex-shrink:0}.pair-title,.grid-card-title{font-size:.9rem;font-weight:600}.pair-sub,.grid-card-sub{color:var(--muted);font-size:.8rem}.pair-title,.grid-card-title,.grid-card-sub{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pair-info:focus-visible,.pivot-row:focus-visible,.item-table th:focus-visible,.grid-card-open:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.icon-button{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;padding:0;display:inline-flex;position:relative}.icon-button-badge{border-radius:var(--radius-badge);background:var(--ink);min-width:20px;height:20px;color:var(--on-ink);font-family:var(--font-figures);padding:0 5px;font-size:.8rem;font-weight:600;line-height:20px;position:absolute;top:-4px;right:-4px}.text-button{text-underline-offset:3px;cursor:pointer;background:0 0;border:none;min-height:40px;padding:0 4px;font-size:.9rem;font-weight:500;text-decoration:underline}.text-button--on{border-radius:var(--radius-control);background:var(--ink);color:var(--on-ink);padding:0 14px;text-decoration:none}.primary-button{border-radius:var(--radius-control);background:var(--ink);width:100%;height:52px;color:var(--on-ink);cursor:pointer;border:none;font-size:1rem;font-weight:500}.chip{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);white-space:nowrap;cursor:pointer;flex:none;align-items:center;gap:6px;height:36px;padding:0 14px;font-size:.9rem;display:inline-flex}.chip svg{color:var(--accent)}.chip--on{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}.chip-count{font-family:var(--font-figures);color:var(--muted);font-size:.9rem;font-weight:600}.chip--on .chip-count{color:inherit}.chip-wrap{flex-wrap:wrap;gap:8px;display:flex}.swatch{border-radius:50%;width:14px;height:14px;box-shadow:inset 0 0 0 1px #80808073}.pair-controls button:disabled,.sort-control button:disabled{opacity:.35;cursor:default}.file-pick input,.pair-thumb--pick input{display:none}.preview-pane--empty,.preview-no-image,.item-detail-image-placeholder{color:var(--faint);font-size:.85rem}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.view-intro{color:var(--text-2);margin-top:0;font-size:.9rem}.favorite-button{border-radius:var(--radius-control);width:36px;height:36px;color:var(--icon);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.favorite-button:hover{background:var(--sunken)}.favorite-button--on{color:var(--accent)}.filter-favorites{cursor:pointer;align-items:center;gap:6px;padding:6px 14px;font-size:.9rem;display:inline-flex}.filter-favorites svg{color:var(--accent)}.filter-favorites.active{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}.app-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.app-header h1{margin-bottom:0}.header-actions{align-items:center;gap:8px;display:flex}.view-nav{gap:8px;display:flex}.theme-toggle{cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;padding:0;display:flex}.view-nav button{cursor:pointer;padding:8px 14px;font-size:.9rem}.view-nav button.active{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}.filter-bar{z-index:10;background:var(--bg);gap:12px;margin-bottom:16px;padding:12px 0;display:flex;position:sticky;top:0}.filter-bar select,.filter-bar .search-box{padding:6px 10px;font-size:.9rem}.filter-bar .filter-favorites{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface)}.item-table{border-collapse:collapse;background:var(--surface);width:100%;overflow:hidden}.item-table th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--text-2);background:var(--header);cursor:pointer;-webkit-user-select:none;user-select:none;padding:10px 12px;font-size:.75rem}.item-table td{border-top:1px solid var(--divider);padding:10px 12px;font-size:.9rem}.item-table td.col-id,.item-table td.col-size,.item-table td.col-wear_count,.item-table td.col-last_worn,.item-table td.col-created_at{font-family:var(--font-figures);font-size:1rem;font-weight:600}.item-table .col-favorite{width:1%;color:var(--icon);padding:4px 0 4px 8px}.item-table tbody tr{cursor:pointer}.item-table tbody tr:hover{background:var(--hover)}.item-table tbody tr.selected{background:var(--highlight)}.loading,.empty,.error{color:var(--muted);font-size:.9rem}.error{color:var(--danger)}.browse-toolbar{align-items:center;gap:8px;margin-bottom:12px;display:flex}.layout-switch{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);gap:2px;padding:3px;display:inline-flex}.layout-switch button{border-radius:calc(var(--radius-control) - 3px);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;height:32px;padding:0 14px;font-size:.9rem;display:inline-flex}.layout-switch button.active{background:var(--ink);color:var(--on-ink)}.content-area{align-items:flex-start;gap:16px;margin-top:16px;display:flex}.table-col{flex:1;min-width:0;overflow-x:auto}.preview-col{flex-shrink:0;align-self:flex-start;width:240px;position:sticky;top:60px}.preview-pane{background:var(--surface);justify-content:center;align-items:center;min-height:160px;display:flex;overflow:hidden}.preview-image{width:100%;display:block}.preview-pane--stack{flex-direction:column;justify-content:flex-start;align-items:stretch;gap:10px;max-height:calc(100vh - 76px);padding:10px;overflow-y:auto}.preview-card{border-radius:calc(var(--radius) - 10px);background:var(--sunken);overflow:hidden}.preview-card .preview-no-image{text-align:center;padding:24px 0}.preview-caption{flex-direction:column;gap:2px;padding:6px 8px;display:flex}.preview-title{font-size:.8rem;font-weight:600}.preview-sub{color:var(--muted);font-size:.75rem}.stats-panel{margin-top:32px}.stats-panel h2{margin-bottom:12px;font-size:1.1rem}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;display:grid}.stats-panel>summary{cursor:pointer;-webkit-user-select:none;user-select:none;list-style-position:inside}.stats-panel>summary h2{margin:0 0 12px;display:inline-block}.stats-block{background:var(--surface);padding:12px 16px}.stats-block h3{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);margin:0 0 8px;font-size:.8rem}.stats-block ul{margin:0;padding:0;font-size:.9rem;list-style:none}.stats-list{max-height:280px;overflow:hidden auto}.stats-block li{justify-content:space-between;padding:3px 0;display:flex}.stats-block .pivot-row{cursor:pointer;border-radius:var(--radius-xs);padding:3px 6px}.pivot-row:hover{background:var(--sunken)}.pivot-row.active{background:var(--ink);color:var(--on-ink)}.pivot-row>span:last-child{font-family:var(--font-figures);font-size:1rem;font-weight:600}.item-detail-overlay{background:var(--scrim);z-index:100;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.item-detail{background:var(--bg);border-radius:var(--radius);overscroll-behavior:contain;width:100%;max-width:440px;max-height:88vh;padding:14px 18px 18px;position:relative;overflow-y:auto}.detail-topbar{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.detail-topbar .favorite-button{border:1px solid var(--line);background:var(--surface);width:44px;height:44px}.item-detail-image{aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius);background:var(--sunken);width:100%;max-height:46vh;display:block}.item-detail-image-placeholder{background:var(--sunken);border-radius:var(--radius);justify-content:center;align-items:center;width:100%;height:180px;display:flex}.detail-title{margin:14px 4px 12px}.detail-title h2{margin:0;font-size:1.35rem;font-weight:600;line-height:1.25}.detail-title p{color:var(--muted);margin:4px 0 0;font-size:.9rem}.detail-card{border-radius:var(--radius);background:var(--surface);margin:0 0 4px;padding:4px 14px}.detail-card .detail-row:last-child{border-bottom:none}.detail-row{border-bottom:1px solid var(--divider);justify-content:space-between;gap:16px;padding:10px 0;font-size:.95rem;display:flex}.detail-row dt{color:var(--muted);font-weight:500}.detail-row dd{text-align:right;overflow-wrap:anywhere;margin:0}.detail-row--editing dd{flex:1;max-width:60%}.detail-row--editing input,.detail-row--editing select{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-control);text-align:right;text-align-last:right;width:100%;padding:4px 6px;font-size:.9rem}.detail-row--editing:has(textarea){flex-direction:column;gap:6px}.detail-row--editing:has(textarea) dd{flex:none;max-width:none}.detail-row--editing textarea{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-control);text-align:left;resize:none;width:100%;padding:4px 6px;font-size:.9rem;line-height:1.4;display:block;overflow:hidden}.detail-actions{align-items:center;gap:8px;margin-top:12px;display:flex}.file-pick--secondary{background:var(--surface);border:1px solid var(--line);color:var(--ink);padding:10px 18px;font-size:.95rem}.tag-chip,.chip--tag,.filter-bar .filter-tag{--tag-point:12px;--tag-hole:2.7px;--string-w:22px;--string-h:14px;isolation:isolate;color:var(--ink);filter:drop-shadow(0 0 .5px var(--line)) drop-shadow(0 0 .5px var(--line));background:0 0;border:none;border-radius:0;align-items:center;margin-left:7px;display:inline-flex;position:relative}.tag-chip:before,.chip--tag:before,.filter-bar .filter-tag:before{content:"";z-index:-1;background:var(--tag);clip-path:polygon(var(--tag-point) 0, 100% 0, 100% 100%, var(--tag-point) 100%, 0 50%);-webkit-mask:radial-gradient(circle at var(--tag-point) 50%, transparent var(--tag-hole), #000 calc(var(--tag-hole) + .6px));mask:radial-gradient(circle at var(--tag-point) 50%, transparent var(--tag-hole), #000 calc(var(--tag-hole) + .6px));position:absolute;inset:0}.tag-chip:after,.chip--tag:after,.filter-bar .filter-tag:after{content:"";left:calc(var(--tag-point) - var(--string-w) * 21 / 22);top:calc(50% - var(--string-h) * 12 / 14);width:var(--string-w);height:var(--string-h);background:var(--string);pointer-events:none;position:absolute;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 14' preserveAspectRatio='none'%3E%3Cpath d='M21 12 C15 12 8 5 1.5 1.5' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") 50%/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 14' preserveAspectRatio='none'%3E%3Cpath d='M21 12 C15 12 8 5 1.5 1.5' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") 50%/100% 100% no-repeat}.tag-chips{flex-wrap:wrap;gap:4px;display:inline-flex}.tag-chip{padding:4px 4px 4px calc(var(--tag-point) + 12px);gap:2px;font-size:.85rem}.tag-chip--small{--tag-point:8px;--tag-hole:2px;--string-w:15px;--string-h:10px;padding:2px 8px 2px calc(var(--tag-point) + 9px);color:var(--text-2);margin-left:5px;font-size:.75rem}.tag-chip button{border-radius:var(--radius-badge);width:24px;height:24px;color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0;line-height:1}.tag-chip button:hover{background:var(--sunken);color:var(--ink)}.chip--tag{padding:0 14px 0 calc(var(--tag-point) + 12px)}.chip--tag.chip--on{color:var(--on-ink);background:0 0}.chip--tag.chip--on:before{background:var(--ink)}.tag-editor{flex-direction:column;gap:8px;margin:4px 0 12px;display:flex}.tag-list{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.tag-add{gap:6px;display:flex}.tag-add input,.tag-add button{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);padding:8px 14px;font-size:.85rem}.tag-add input{flex:1;min-width:0}.tag-add button{cursor:pointer}.tag-add button:disabled{opacity:.5;cursor:default}.filter-bar .filter-tag{padding:6px 12px 6px calc(var(--tag-point) + 12px);color:var(--on-ink);cursor:pointer;gap:6px;font-size:.9rem}.filter-bar .filter-tag:before{background:var(--ink)}.filter-bar .filter-select{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);cursor:pointer;padding:6px 14px;font-size:.9rem}.filter-bar .filter-select.active{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}.filter-bar .filter-select{margin-left:auto}.stats-empty{color:var(--muted);margin:0;font-size:.85rem}.item-table .col-select{width:1%;padding-right:0}.item-table .col-select input{width:18px;height:18px;accent-color:var(--ink);cursor:pointer}.bulk-bar{z-index:20;border:1px solid var(--divider);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:8px;margin-top:16px;padding:12px 14px;display:flex;position:sticky;bottom:12px;box-shadow:0 8px 24px #00000040}.bulk-bar-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.bulk-bar button,.bulk-bar input{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);padding:8px 14px;font-size:.85rem}.bulk-bar button{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.bulk-bar button svg{color:var(--accent)}.bulk-bar button:disabled{opacity:.45;cursor:default}.bulk-bar .bulk-done{background:var(--ink);border-color:var(--ink);color:var(--on-ink);margin-left:auto}.bulk-count{font-weight:600}.bulk-tag{flex-wrap:wrap;gap:6px;display:flex}.bulk-tag input{width:140px}.bulk-message{color:var(--success);margin:0;font-size:.85rem}.bulk-bar .error{margin:0}.wear-history{border-radius:var(--radius);background:var(--sunken);flex-direction:column;gap:10px;margin:4px 0 12px;padding:14px;display:flex}.wear-history-head{color:var(--muted);justify-content:space-between;align-items:baseline;font-size:.85rem;display:flex}.wear-history-head h3{color:var(--ink);margin:0;font-size:1rem;font-weight:500}.wear-strip{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:4px;display:grid}.wear-day{aspect-ratio:1;background:var(--surface);cursor:pointer;border:none;border-radius:3px;padding:0}.wear-day--on{background:var(--ink)}.wear-day--today{box-shadow:inset 0 0 0 2px var(--today)}.wear-day:disabled{cursor:default;opacity:.5}.wear-strip-ends{color:var(--muted);justify-content:space-between;margin-top:-4px;font-size:.75rem;display:flex}.wear-history-last{color:var(--text-2);margin:0;font-size:.85rem}.wear-history-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.wear-today{border:1px solid var(--ink);border-radius:var(--radius-control);background:var(--ink);color:var(--on-ink);cursor:pointer;padding:10px 18px;font-weight:500}.wear-today--on{background:var(--surface);color:var(--ink)}.wear-today:disabled{opacity:.5;cursor:default}.wear-other{align-items:center;gap:6px;display:inline-flex}.wear-other input,.wear-other button{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);padding:8px 12px;font-size:.85rem}.wear-other button{cursor:pointer}.wear-other button:disabled{opacity:.5;cursor:default}.preview-pane .wear-today{width:100%}.worn-view{max-width:960px}.worn-day{margin-top:20px}.worn-day h2{margin:0 0 8px;font-size:1.1rem;font-weight:600}.worn-outfit{border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);margin-bottom:12px;padding:12px}.worn-outfit h3{color:var(--muted);margin:0 0 10px;font-size:.85rem;font-weight:500}.worn-items{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.worn-item{text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;gap:6px;width:100%;padding:0;display:flex}.worn-item-photo{aspect-ratio:4/5;object-fit:cover;border-radius:calc(var(--radius) - 12px);background:var(--sunken);width:100%}.worn-item-photo--empty{color:var(--faint);justify-content:center;align-items:center;font-size:.75rem;display:flex}.worn-item-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.8rem;line-height:1.3;display:-webkit-box;overflow:hidden}.worn-item--dim{opacity:.4}.worn-filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.worn-filters select{padding:6px 10px;font-size:.9rem}.worn-day-pick{white-space:nowrap;align-items:center;gap:6px;padding:6px 12px;font-size:.9rem;display:inline-flex;position:relative}.worn-day-pick--on{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}.worn-day-pick input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.upload-page{max-width:640px}.upload-hint{color:var(--muted);font-size:.85rem}.pair-list{flex-direction:column;gap:8px;margin-top:16px;display:flex}.pair-row,.pair-item{background:var(--surface)}.pair-item .pair-row{box-shadow:none;background:0 0;border-radius:0}.pair-details{border-top:1px solid var(--divider);margin:0;padding:0 10px 8px}.pair-details dt{flex-shrink:0}.pair-details dd{overflow-wrap:anywhere;padding-left:12px}.pair-caret{color:var(--icon);margin-right:4px;font-size:.75rem}.pair-thumb{width:64px;height:64px}.pair-thumb--pick{background:var(--sunken);border:1px dashed var(--faint);color:var(--text-2);cursor:pointer;justify-content:center;align-items:center;font-size:.8rem;display:flex}.pair-info{cursor:pointer;flex-direction:column;flex:1;min-width:0;display:flex}.pair-info:focus-visible{border-radius:var(--radius-xs)}.pair-controls{gap:4px;display:flex}.pair-controls button{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--sunken);cursor:pointer;min-width:44px;min-height:44px;font-size:1rem}.skip-button,.undo-button{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:12px 4px;font-size:.8rem;text-decoration:underline}.upload-confirm{border:none;width:100%;margin-top:16px;padding:14px;font-size:1rem}.upload-confirm:disabled{opacity:.4;cursor:default}.status-badge{border-radius:var(--radius-badge);background:var(--sunken);color:var(--text-2);flex-shrink:0;padding:4px 8px;font-size:.75rem}.status-badge.uploading{background:var(--ink);color:var(--on-ink)}.status-badge.done{background:var(--success-bg);color:var(--success)}.status-badge.failed{background:var(--danger-bg);color:var(--danger)}.status-badge.cleared{background:var(--highlight);color:var(--ink)}.upload-actions{gap:8px;margin-top:16px;display:flex}.upload-actions button{border-radius:var(--radius-control);cursor:pointer;flex:1;padding:12px;font-size:.95rem}.batch-error{color:var(--danger);margin-top:12px;font-size:.9rem}.new-item{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);margin-top:16px;padding:12px}.new-item .upload-hint{margin:0 0 8px}.new-item-photo{border-radius:var(--radius-sm);max-width:100%;max-height:45vh;margin:0 auto 12px;display:block}.new-item-log{margin:16px 0 0;padding:0;font-size:.9rem;list-style:none}.new-item-log li{padding:4px 0}.mobile-browse{flex-direction:column;gap:12px;display:flex}.mobile-search-row{gap:10px;display:flex}.mobile-search{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);min-width:0;height:44px;color:var(--muted);flex:1;align-items:center;gap:10px;padding:0 14px;display:flex}.mobile-search input{min-width:0;color:var(--ink);background:0 0;border:none;outline:none;flex:1;font-size:1rem}.chip-row{scrollbar-width:none;align-items:center;gap:8px;margin:0 -12px;padding:0 12px 2px;display:flex;overflow-x:auto}.chip-divider{background:var(--divider);flex:none;width:1px;height:20px}.mobile-meta{align-items:center;gap:8px;display:flex}.mobile-count{color:var(--muted);margin-right:auto;font-size:.9rem}.sort-control{gap:6px;display:flex}.sort-control select{max-width:150px;height:40px;padding:0 12px;font-size:.9rem}.sort-control button{cursor:pointer;width:40px;height:40px;font-size:1rem}.item-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.grid-card{background:var(--surface);min-width:0;position:relative}.grid-card--selected,.grid-card--checked{background:var(--highlight)}.grid-card--checked{outline:2px solid var(--ink);outline-offset:-2px}.grid-card-open{border-radius:var(--radius);text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;gap:2px;width:100%;padding:6px 6px 10px;display:flex}.grid-card-photo{margin-bottom:6px;display:block;position:relative}.grid-card-img{aspect-ratio:4/5;object-fit:cover;border-radius:calc(var(--radius) - 6px);background:var(--sunken);width:100%;display:block}.grid-card-img--empty{color:var(--faint);justify-content:center;align-items:center;font-size:.8rem;display:flex}.grid-card-title,.grid-card-sub{padding:0 4px}.grid-card-badge,.grid-card-check,.grid-card .favorite-button{background:color-mix(in srgb, var(--surface) 82%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:absolute}.grid-card-badge{border-radius:var(--radius-badge);padding:3px 9px;font-size:.75rem;font-weight:500;bottom:7px;left:7px}.grid-card-check{border:2px solid var(--ink);border-radius:var(--radius-badge);justify-content:center;align-items:center;width:26px;height:26px;display:flex;top:8px;left:8px}.grid-card--checked .grid-card-check{background:var(--ink);color:var(--on-ink)}.grid-card .favorite-button{top:10px;right:10px}.sheet-overlay{z-index:100;background:var(--scrim);align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{border-radius:calc(var(--radius) + 6px) calc(var(--radius) + 6px) 0 0;background:var(--surface);flex-direction:column;width:100%;max-height:calc(100dvh - 48px);display:flex}.sheet-grabber{background:var(--line);border-radius:999px;align-self:center;width:38px;height:5px;margin-top:8px}.sheet-head{align-items:center;gap:8px;padding:4px 16px 8px 20px;display:flex}.sheet-head h2{margin:0 auto 0 0;font-size:1.3rem;font-weight:600}.sheet-body{overscroll-behavior:contain;flex-direction:column;flex:1;gap:22px;min-height:0;padding:4px 20px 20px;display:flex;overflow-y:auto}.sheet-section{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.sheet-section h3{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.78rem;font-weight:600}.sheet-switch-row{justify-content:space-between;align-items:center;min-height:44px;display:flex}.sheet-switch-row span{color:var(--ink);align-items:center;gap:8px;display:flex}.sheet-switch-row svg{color:var(--accent)}.switch{border-radius:var(--radius-control);background:var(--icon);cursor:pointer;border:none;justify-content:flex-start;width:52px;height:32px;padding:3px;display:flex}.switch--on{background:var(--accent);justify-content:flex-end}.switch-knob{border-radius:calc(var(--radius-control) - 3px);background:#fff;width:26px;height:26px;box-shadow:0 1px 3px #00000040}.sheet-foot{padding:12px 20px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--divider)}.tab-bar{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:50;border:1px solid var(--divider);border-radius:var(--radius);background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:4px;height:64px;padding:6px;display:grid;position:fixed;box-shadow:0 8px 24px #00000040}.tab{border-radius:calc(var(--radius) - 6px);color:var(--muted);white-space:nowrap;cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:1px;font-size:.7rem;display:flex}.tab--active{background:var(--sunken);color:var(--ink);font-weight:600}@media (width<=768px){.app{padding:12px}.app--mobile{padding-bottom:calc(100px + env(safe-area-inset-bottom))}.app-header{margin-bottom:12px}.app-header h1{font-size:1.6rem}.content-area{margin-top:12px;display:block}.table-col{overflow-x:visible}.item-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.item-detail-overlay{padding:0}.item-detail{border-radius:0;max-width:none;height:100dvh;max-height:none;padding:12px 14px 0}.item-detail .detail-actions{padding:12px 14px calc(14px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--divider);margin:12px -14px 0;position:sticky;bottom:0}.item-detail .detail-actions>*{text-align:center;flex:1}.detail-row--editing dd{max-width:55%}.bulk-bar{left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));margin:0;padding:10px;position:fixed}.bulk-bar-row{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.bulk-bar-row>*,.bulk-tag>*{flex:none}.bulk-bar .bulk-done{position:sticky;right:0}.bulk-tag{flex-wrap:nowrap}.bulk-tag input{width:110px;font-size:1rem}.detail-row--editing input,.detail-row--editing select,.detail-row--editing textarea,.worn-filters select,.worn-day-pick,.worn-day-pick input{font-size:1rem}.worn-filters{scrollbar-width:none;flex-wrap:nowrap;padding-bottom:2px;overflow-x:auto}.worn-filters>*{flex:none}.view-intro{font-size:.85rem}}
