:root{font-family:Noto Sans SC,PingFang SC,sans-serif;color:#1f2937;background:radial-gradient(circle at top right,rgba(253,186,116,.22),transparent 28%),linear-gradient(180deg,#fffaf3,#f3f7fb);line-height:1.5;font-weight:400}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}#app{min-height:100vh}.page-shell{width:min(1480px,calc(100% - 32px));margin:0 auto;padding:18px 0 28px}.dashboard-bar,.card,.inventory-card,.login-panel,.app-loading-card,.catalog-image-viewer,.empty-panel{border:1px solid rgba(148,163,184,.24);border-radius:20px;background:#ffffffe6;box-shadow:0 24px 60px #0f172a14;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.dashboard-bar{position:relative;z-index:5;display:flex;flex-direction:column;gap:10px;padding:12px 14px;margin-bottom:12px;overflow:visible}.dashboard-bar-head{display:flex;width:100%;justify-content:space-between;align-items:center;gap:12px}.topbar-copy{min-width:0}.topbar-title{margin-bottom:0;font-size:clamp(1.1rem,2vw,1.45rem);line-height:1.2}.eyebrow{margin:0 0 4px;text-transform:uppercase;letter-spacing:.18em;font-size:10px;color:#92400e}h1,h2,p,dl,dd,dt{margin-top:0}h1,h2{font-family:STSong,Songti SC,serif}.intro,.login-copy,.image-dialog-copy{color:#6b7280;margin-bottom:0}.status-panel{min-width:auto;display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid #e5e7eb;border-radius:12px;background:linear-gradient(180deg,#fff7ed,#fff)}.status-label{display:inline;margin-bottom:0;font-size:12px;color:#6b7280}.status-user{font-size:13px}.status-subtext{display:inline;margin-top:0;color:#6b7280;white-space:nowrap}.status-logout-button{margin-top:0;padding:6px 10px;white-space:nowrap}.message{margin:0 0 16px;padding:14px 18px;border-radius:16px}.message.error{background:#fef2f2;color:#b91c1c}.message.success{background:#ecfdf5;color:#047857}.login-shell{min-height:calc(100vh - 220px);display:flex;align-items:center;justify-content:center}.login-panel{width:min(460px,100%);padding:36px 32px}.restoring-panel{min-height:220px;display:flex;align-items:center;justify-content:center}.login-header{margin-bottom:24px}.login-title{margin-bottom:10px;font-size:clamp(1.8rem,3vw,2.5rem)}.login-form,.filter-grid{display:grid;gap:16px}.login-form label,.filter-grid label{display:flex;flex-direction:column;gap:8px}.login-button{width:100%;margin-top:8px}.toolbar{display:flex;width:100%;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}.filter-grid{flex:1;grid-template-columns:repeat(6,minmax(132px,1fr));gap:8px}.filter-checkbox{flex-direction:row!important;align-items:center;gap:10px!important;padding:7px 10px;border:1px solid #d1d5db;border-radius:12px;background:#fff;min-height:36px}.filter-checkbox input{width:16px;height:16px;margin:0}.filter-checkbox span{color:#111827}.actions{display:flex;gap:6px;flex-wrap:wrap}.stats-grid{position:relative;z-index:1;display:grid;width:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:0;overflow:visible}.stat-card{position:relative;padding:10px 12px;border-radius:12px;background:linear-gradient(180deg,#fff7edcc,#fffffff2);border:1px solid rgba(251,191,36,.2)}.stat-card span{display:block;margin-bottom:4px;color:#6b7280;font-size:12px}.stat-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}.stat-card-label{margin-bottom:0!important}.stat-card-action{flex-shrink:0;padding:4px 10px;border:1px solid #cbd5e1;border-radius:999px;background:#ffffffeb;color:#475569;font-size:12px;line-height:1.2;cursor:pointer}.stat-card-action:hover,.stat-card-action:focus-visible{border-color:#93c5fd;color:#1d4ed8;outline:none}.stat-card strong{font-size:clamp(1.1rem,2vw,1.5rem);color:#111827}.stat-popup{position:absolute;top:calc(100% + 10px);right:0;z-index:10;width:min(320px,calc(100vw - 48px));padding:14px;border:1px solid rgba(147,197,253,.7);border-radius:16px;background:#fffffffa;box-shadow:0 20px 36px #0f172a24;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.stat-popup-title{margin-bottom:10px;color:#1e3a8a;font-size:13px;font-weight:700}.stat-popup-list{margin:0;padding:0;list-style:none}.stat-popup-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid #e2e8f0}.stat-popup-item:first-child{padding-top:0;border-top:0}.stat-popup-item span{margin-bottom:0;color:#334155;font-size:13px}.stat-popup-item strong{font-size:1rem;color:#1d4ed8}.stat-popup-empty{margin-bottom:0;color:#64748b;font-size:13px}.inventory-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;align-items:start}.inventory-card{padding:10px}.inventory-card-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;padding:0 2px}.inventory-card-summary span{margin-bottom:0;color:#6b7280;font-size:12px}.inventory-card-quantity{display:inline-flex;align-items:baseline;gap:6px}.inventory-card-quantity strong{color:#c2410c;font-size:1.05rem;font-weight:800}.inventory-card-value{color:#0f172a;font-size:.95rem;font-weight:600}.inventory-tile{display:block;width:100%;padding:0;border:0;background:transparent;cursor:pointer}.inventory-image{width:100%;aspect-ratio:3 / 4;object-fit:cover;border-radius:16px;background:linear-gradient(180deg,#fff7ed,#f8fafc);transition:transform .18s ease,box-shadow .18s ease}.inventory-tile:hover .inventory-image,.inventory-tile:focus-visible .inventory-image{transform:translateY(-2px);box-shadow:0 18px 34px #0f172a1f}.inventory-tile:focus-visible{outline:2px solid #ea580c;outline-offset:4px;border-radius:18px}.inventory-image-empty{display:flex;width:100%;aspect-ratio:3 / 4;align-items:center;justify-content:center;color:#94a3b8;border:1px dashed #cbd5e1;background:linear-gradient(180deg,#fff7ed,#f8fafc)}.inventory-name-placeholder{padding:18px;text-align:center}.inventory-name-placeholder span{display:-webkit-box;overflow:hidden;color:#475569;font-weight:700;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:4}.inventory-meta h2{margin-bottom:6px;font-size:1.08rem}.inventory-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.inventory-tags span{padding:4px 10px;border-radius:999px;background:#fff7ed;color:#9a3412;font-size:12px}.inventory-spec{color:#6b7280;margin-bottom:0}.inventory-info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:0;margin-top:14px}.inventory-info div{padding:12px;border-radius:14px;background:#f8fafc}.inventory-spec-table-card{grid-column:1 / -1}.inventory-summary-row{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0!important;background:transparent!important}.inventory-summary-item{padding:12px;border-radius:14px;background:#f8fafc}.inventory-info dt{margin-bottom:4px;color:#6b7280;font-size:12px}.inventory-info dd{margin-bottom:0;color:#111827;font-weight:600;word-break:break-word}.inventory-spec-table{width:100%;border-collapse:collapse;table-layout:fixed;font-weight:500}.inventory-spec-table th,.inventory-spec-table td{padding:8px 0;text-align:left;vertical-align:top;word-break:break-word}.inventory-spec-table thead th{padding-top:2px;color:#6b7280;font-size:12px;font-weight:600}.inventory-spec-table tbody tr+tr{border-top:1px solid #e5e7eb}.inventory-spec-table tfoot th{padding-top:12px;border-top:1px solid #cbd5e1;color:#111827;font-weight:700}.inventory-spec-total-row th{color:#1d4ed8}.inventory-stock-badge{display:inline-flex;min-width:56px;justify-content:center;align-items:center;padding:6px 12px;border-radius:999px;background:#ffedd5;border:1px solid #fdba74;color:#9a3412;font-size:1rem;font-weight:700;line-height:1}.inventory-stock-badge-total{background:#dbeafe;border-color:#93c5fd;color:#1d4ed8;box-shadow:inset 0 0 0 1px #ffffff80}.inventory-remark{margin-bottom:0;padding:12px 14px;border-radius:14px;background:#fffbeb;color:#92400e}.empty-panel{padding:32px;text-align:center;color:#64748b}.app-loading-overlay,.image-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:24px;background:#0f172a47;z-index:20}.app-loading-card,.catalog-image-viewer{width:min(1080px,100%);padding:24px}.catalog-image-viewer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.catalog-dialog-body{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:20px;align-items:start;max-height:calc(90vh - 140px)}.catalog-dialog-media{display:flex;align-items:center;justify-content:center;min-width:0}.catalog-dialog-details{min-width:0;max-height:calc(90vh - 140px);overflow:auto;padding-right:6px}.catalog-image-large{width:100%;max-width:360px;max-height:calc(90vh - 180px);aspect-ratio:3 / 4;object-fit:contain;border-radius:16px;background:linear-gradient(180deg,#fff7ed,#f8fafc)}.catalog-image-fallback{max-width:360px}.catalog-inventory-info{margin-top:0}.panel-loading,.inline-loading{display:flex;align-items:center;justify-content:center;gap:12px}.loading-spinner{width:22px;height:22px;border:3px solid rgba(148,163,184,.3);border-top-color:#ea580c;border-radius:50%;animation:spin .8s linear infinite}button,input,select{border-radius:14px}input,select{width:100%;padding:12px 14px;border:1px solid #d1d5db;background:#fff}button{border:0;padding:11px 16px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}button:hover{transform:translateY(-1px)}button:disabled{cursor:not-allowed;opacity:.6;transform:none}.primary-button{background:linear-gradient(135deg,#ea580c,#f59e0b);color:#fff;box-shadow:0 14px 28px #ea580c33}.secondary-button{background:linear-gradient(135deg,#0f172a,#334155);color:#fff}.ghost-button{background:#fff;color:#0f172a;border:1px solid #d1d5db}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:960px){.topbar-card,.dashboard-bar-head,.toolbar,.catalog-image-viewer-head{flex-direction:column;align-items:stretch}.status-panel,.filter-grid,.stats-grid,.inventory-info{width:100%}.filter-grid{grid-template-columns:repeat(3,minmax(132px,1fr))}.stats-grid,.inventory-info{grid-template-columns:1fr}.inventory-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.catalog-image-viewer{width:min(760px,100%)}.catalog-dialog-body{grid-template-columns:1fr;max-height:calc(90vh - 120px);overflow:auto}.catalog-dialog-media{justify-content:center}.catalog-dialog-details{max-height:none;overflow:visible;padding-right:0}.catalog-image-large{max-width:min(320px,100%);max-height:50vh}}@media(max-width:640px){.inventory-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}
