/* ChatGPT 三千岁 / 项目进度重同步2, turn 85f429a3: exact approved tokens.
   Signed-in surfaces plus the explicitly requested original login button. */
.login-card .primary,.login-card .primary:hover{background:linear-gradient(135deg,var(--hq),var(--sq));color:#fff}
.app-shell .side-brand{padding:0 10px 18px;min-height:84px}
.app-shell .side-brand-logo{display:block;width:172px;max-width:100%;height:auto;opacity:1;object-fit:contain}
.app-shell .material-row-actions{flex-wrap:nowrap;gap:14px}
.material-editor-specs{grid-column:1/-1}
.material-editor-specs .row-actions{margin:10px 0;justify-content:space-between}
.placeholder-thumb{display:inline-flex;align-items:center;justify-content:center;text-align:center;white-space:normal;font-size:12px;color:var(--xq)}
.app-shell,.modal-overlay,.toast {
  --admin-ink:var(--xq);--admin-ink-2:var(--hq);--admin-canvas:var(--iv);
  --admin-surface:#fff;--admin-surface-2:var(--iv);
  --admin-line:color-mix(in srgb,var(--xq) 14%,transparent);
  --admin-line-strong:color-mix(in srgb,var(--hq) 28%,transparent);
  --admin-muted:color-mix(in srgb,var(--xq) 75%,white);
  --admin-accent:var(--hq);--admin-accent-soft:var(--ty);
  --admin-success:var(--sq);--admin-warning:var(--xq);--admin-danger:var(--xq);
  --admin-radius-lg:12px;--admin-shadow:0 1px 2px #3d3b4f06;
  color:var(--xq);
}
.app-shell{grid-template-columns:224px minmax(0,1fr)}
.app-shell .sidebar{width:224px;background:var(--hq);box-shadow:none;padding:22px 12px 16px}
.app-shell .side-brand-seal{color:var(--ty);border-color:var(--ty);background:transparent}
.app-shell .side-brand-copy strong{color:var(--iv)}
.app-shell .side-brand-copy>span,.app-shell .nav-group-label{color:color-mix(in srgb,var(--iv) 72%,transparent);font-size:12px;letter-spacing:0}
.app-shell .sidebar nav button,.app-shell .logout{font-size:14px;color:var(--iv);min-height:42px}
.app-shell .sidebar nav button.active{background:var(--ty);color:var(--hq);box-shadow:none;border-color:transparent}
.app-shell .sidebar nav button.active .nav-seal{background:transparent;color:var(--hq)}
.app-shell .nav-seal{color:var(--iv);font-family:inherit;font-size:13px}
.app-shell .main{background:var(--iv);background-image:none}
.app-shell .main>header{height:74px;background:#fff;padding:14px 28px;backdrop-filter:none}
.app-shell .main h2{font-family:inherit;font-size:21px;font-weight:650;line-height:1.4}
.app-shell .header-eyebrow{display:none}
.app-shell .main header p{font-size:12px;margin-top:2px}
.app-shell .content{max-width:1700px;padding:24px 28px 48px}
.app-shell .card,.app-shell .panel,.app-shell .material-kpi{background:#fff;box-shadow:var(--admin-shadow)}
.app-shell .material-kpi{padding:16px 20px;border-radius:10px}
.app-shell .card span,.app-shell .material-kpi span{font-size:13px}
.app-shell .card strong,.app-shell .material-kpi strong{font-family:inherit;font-weight:600}
.app-shell .panel h3,.modal-overlay .modal-head h3{font-family:inherit;font-size:16px}
.app-shell .primary,.modal-overlay .primary{background:var(--hq);color:#fff;box-shadow:none}
.app-shell .primary:hover,.modal-overlay .primary:hover{background:color-mix(in srgb,var(--hq) 90%,black);box-shadow:none;transform:none}
.app-shell .primary,.app-shell .secondary,.modal-overlay button,.app-shell .header-search,.app-shell .header-refresh{font-size:14px;min-height:38px;display:inline-flex;align-items:center;justify-content:center;line-height:1.3}
.app-shell .workspace-tabs{background:transparent;border:0;border-bottom:1px solid var(--admin-line);border-radius:0;width:100%;padding:0;margin-top:18px;gap:20px}
.app-shell .workspace-tabs button{font-size:14px;border-radius:0;border-bottom:2px solid transparent;background:none;padding:10px 2px;box-shadow:none}
.app-shell .workspace-tabs button.active{color:var(--hq);border-bottom-color:var(--hq)}
.app-shell .workspace-tabs button.active .tab-count{color:var(--hq);background:var(--ty)}
.app-shell table,.modal-overlay table{font-size:14px}
.app-shell th,.modal-overlay th{font-size:12px;letter-spacing:0;text-transform:none;background:var(--iv);color:var(--xq)}
.app-shell td,.modal-overlay td{color:var(--xq);height:64px}
.app-shell tbody tr:hover{background:color-mix(in srgb,var(--ty) 20%,white)}
.app-shell .muted,.modal-overlay .muted,.app-shell .status-pill,.modal-overlay .status-pill{font-size:12px}
.app-shell .material-cell strong{font-size:14px}.app-shell .material-cell small{font-size:12px}
.app-shell .material-thumb{width:48px;height:48px;object-fit:contain;background:var(--iv);padding:3px}
.app-shell .gallery-toolbar{background:#fff;border:0;padding:0;gap:10px}
.app-shell .gallery-search{background:#fff;min-width:190px;font-size:14px}
.app-shell .link-btn,.modal-overlay .link-btn{color:var(--hq)}
.app-shell .notice,.modal-overlay .notice{color:var(--xq);background:var(--iv)}
.app-shell .badge,.app-shell .status-pill,.modal-overlay .status-pill{color:var(--xq);background:color-mix(in srgb,var(--ag) 35%,white);border-color:var(--cg)}
.app-shell .status-pill.warn,.modal-overlay .status-pill.warn{color:var(--xq);background:color-mix(in srgb,var(--kh) 25%,white);border-color:color-mix(in srgb,var(--kh) 50%,white)}
.app-shell .status-pill.bad,.modal-overlay .status-pill.bad,.app-shell .danger,.modal-overlay .danger{color:var(--xq);background:var(--ty);border-color:var(--ty)}
.app-shell .section-kicker,.modal-overlay .publication-progress{color:var(--hq)}
.modal-overlay .order-detail-hero,.modal-overlay .product-detail-hero,.modal-overlay .user-detail-hero{background:var(--iv)}
.modal-overlay .production-detail-hero,.modal-overlay .aftersale-detail-hero{background:var(--hq);color:var(--iv)}
.modal-overlay .production-detail-hero .section-kicker,.modal-overlay .aftersale-detail-hero .section-kicker{color:var(--ty)}
.modal-overlay .production-detail-hero>.status-pill,.modal-overlay .aftersale-detail-hero>.status-pill{background:var(--iv);color:var(--hq)}
.modal-overlay .placeholder-avatar{background:var(--hq);color:var(--ty)}
.modal-overlay .production-step.current i{background:var(--ty);color:var(--hq);box-shadow:0 0 0 4px color-mix(in srgb,var(--ty) 50%,transparent)}
.modal-overlay .field input:focus,.modal-overlay .field textarea:focus,.modal-overlay .field select:focus,.modal-overlay .global-search-input:focus{border-color:var(--sq)}
.toast{color:#fff;background:var(--hq)}
.modal-overlay{background:color-mix(in srgb,var(--xq) 50%,transparent)}
.modal-overlay .modal-head{background:var(--iv)}
.modal-overlay .field label{color:var(--xq);font-size:14px;letter-spacing:0}
.modal-overlay .field input,.modal-overlay .field textarea,.modal-overlay .field select{font-size:14px;background:#fff}
.modal-overlay .field small{font-size:12px}
.modal-overlay .section-kicker{color:var(--hq)}
.modal-overlay .material-detail-copy h3{color:var(--hq)}
.modal-overlay .modal-body>form>.actions:last-child{background:#fff}
.catalog-pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:16px;font-size:13px}
.catalog-pagination .muted{margin-right:auto}
.photo-measurements{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px}
.photo-measurements article{padding:14px;border:1px solid var(--admin-line);border-radius:10px;background:var(--iv)}
.photo-measurements span{display:block;font-size:12px;color:var(--admin-muted);margin-bottom:6px}
.photo-measurements strong{font-size:14px;overflow-wrap:anywhere}
.preview-scope{font-size:12px;color:var(--xq);padding:8px 12px;border-left:3px solid var(--sq);background:#fff;margin-bottom:16px}
.specification-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;border:1px solid var(--admin-line);border-radius:10px;padding:14px;margin-bottom:16px;min-width:0}
.specification-row legend{color:var(--hq);font-size:14px;padding:0 8px}
.specification-row .field label{margin:4px 0}.specification-row .field small{font-size:12px}
.calibration{display:flex;gap:20px;align-items:center;background:var(--iv);padding:20px;border:1px solid var(--admin-line);border-radius:12px}
.calibration-stage{position:relative;width:240px;max-width:100%;aspect-ratio:1;flex-shrink:0;background-color:#fff;background-image:conic-gradient(#ddd 25%,transparent 0 50%,#ddd 0 75%,transparent 0);background-size:16px 16px;cursor:crosshair}
.calibration-stage img{display:block;width:100%;height:100%;object-fit:contain}
.calibration-anchor{position:absolute;width:12px;height:12px;border:2px solid var(--hq);border-radius:50%;background:var(--ty);transform:translate(-50%,-50%);pointer-events:none}
.calibration-axis{position:absolute;left:50%;top:50%;width:90%;height:2px;background:var(--hq);pointer-events:none}
.publication-original{height:90px;width:90px;object-fit:contain;background:var(--iv);border:1px solid var(--admin-line);border-radius:8px}
@media(max-width:1100px){.specification-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.calibration{display:block}.calibration-stage{max-width:100%}.specification-row{grid-template-columns:1fr}}
@media(max-width:900px){.app-shell{display:block}.app-shell .sidebar{width:264px}.app-shell .content{padding:18px}.app-shell .main>header{padding:14px 18px}.photo-measurements{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.app-shell .content{padding:14px 10px}.catalog-pagination{flex-wrap:wrap}.photo-measurements{grid-template-columns:1fr}.app-shell .header-search kbd{display:none}}
