.sidebar-footer{padding-bottom:18px}.production-version{color:var(--muted);font-size:11px;display:flex;gap:8px;align-items:center;margin:12px 8px 0}.production-version form{display:flex;gap:5px}.production-version input{width:104px;min-height:28px;height:28px;font-size:10px;padding:4px 7px}.production-version button{padding:3px 6px}.member-chip{display:flex;gap:9px;align-items:center}.member-chip button{font-size:11px}.main-shell .topbar{gap:12px}.content{min-height:75vh}.product-query{max-width:280px}.empty-message{padding:50px 24px;text-align:center;color:var(--muted)}.opinion-toolbar input[type=search]{min-width:180px;max-width:240px}.status-options{display:flex;flex-wrap:wrap;gap:10px;padding:14px 20px;border-bottom:1px solid var(--line)}.status-options label{display:flex;gap:5px;align-items:center;font-size:12px}.status-options input,.opinion-check{width:16px!important;height:16px!important;min-height:0!important}.opinion-sort{display:flex;align-items:center;gap:4px;flex-direction:column}.opinion-sort button{padding:0 3px;height:21px;color:var(--muted)}.opinion-sort [draggable]{cursor:grab}.opinion-content{max-width:600px;min-width:260px;white-space:pre-wrap;word-break:break-word}.opinion-content p{margin:4px 0}.opinion-row.drag-over{box-shadow:inset 0 3px var(--blue)}.opinion-serial{font-size:13px;font-weight:700;color:var(--text)}.opinion-shot-inline img{max-height:120px;object-fit:contain}.source-line{font-size:11px;color:var(--muted);display:flex;gap:10px;flex-wrap:wrap;margin:8px 0}.token-display{overflow-wrap:anywhere}.token-display code{white-space:normal}.token-once{padding:12px;border:1px solid #b9d7e9;background:#eff7fd;font-size:12px;line-height:1.8}.note-block{border-left:2px solid #c7daec;padding:8px 14px;margin:10px 0;white-space:pre-wrap}.note-block small{display:block;color:var(--muted)}.note-row{margin:12px 0;padding:10px;border:1px solid var(--line);border-radius:8px}.note-row textarea{width:100%;min-height:75px}.history-list{font-size:12px;line-height:1.8;max-height:220px;overflow:auto}.history-list p{border-bottom:1px solid var(--line);padding:8px 0}.feedback-capture{width:100%;padding:0;border:0;background:transparent;cursor:zoom-in}.feedback-capture img{display:block;width:100%;max-height:180px;object-fit:contain;background:#e9f0f6}.capture-status{font-size:12px;color:var(--muted);padding:10px}.opinion-floating{position:fixed;z-index:110;right:20px;bottom:20px;width:420px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 40px);display:flex;flex-direction:column;background:#fff;border:1px solid #c9dbe9;border-radius:14px;box-shadow:0 16px 70px #284c6c35;overflow:hidden}.opinion-floating .modal-header{padding:17px 20px}.opinion-floating .modal-body{padding:18px 20px;overflow:auto}.opinion-floating .modal-footer{padding:12px 20px}.opinion-floating textarea{min-height:110px}.image-overlay{position:fixed;inset:0;background:#132d49d9;z-index:250;display:flex;align-items:center;justify-content:center;padding:55px 20px 20px}.image-overlay>button{position:absolute;right:22px;top:16px;background:white}.image-overlay img{max-width:100%;max-height:calc(100dvh - 80px);object-fit:contain}.image-overlay .page-code{position:absolute;left:24px;top:20px;color:#fff}.login-error{margin:8px 0 12px;color:#ba3b47;font-size:12px;min-height:18px}.login-card .login-submit{width:100%}.login-card h2{margin:12px 0}.login-card .login-subtitle{margin-bottom:28px;color:var(--muted)}.login-captcha-img{width:150px;height:48px}.login-captcha-img svg{display:block;width:150px;height:48px}.form-error:empty{display:none}.modal .field textarea{min-height:85px}.integration-document{white-space:pre-wrap;word-break:break-word;background:#f4f8fc;border:1px solid var(--line);padding:22px;font:12px/1.9 Consolas,monospace;max-height:65vh;overflow:auto}.loading-skeleton{padding:40px;color:var(--muted)}button:disabled{opacity:.55;cursor:wait}.small-note{font-size:11px;color:var(--muted);line-height:1.7}.feedback-page{background:#f1f6fb}.user-avatar{flex-shrink:0}body.has-modal{overflow:hidden}@media(max-width:800px){.sidebar{transform:translateX(-100%)}.sidebar.open{transform:translateX(0);z-index:90}.main-shell{margin-left:0!important}.topbar{padding:12px!important}.topbar .topbar-title{display:none}.content{padding:24px 16px!important}.product-grid{grid-template-columns:1fr!important}.two-col{grid-template-columns:1fr!important}.opinion-floating{right:12px;bottom:12px;max-height:calc(100dvh - 24px)}.opinion-toolbar{align-items:stretch;gap:12px}.opinion-toolbar .actions{flex-wrap:wrap}.login-story{display:none}.login-form-side{min-height:100dvh;padding:24px!important}.login-card{width:100%;max-width:430px}.page-header{gap:16px}.header-code{flex-wrap:wrap}.scheme-grid{grid-template-columns:1fr!important}}
.opinion-floating{pointer-events:auto}.production-version{flex-wrap:wrap}.production-version form button{white-space:nowrap}.topbar{justify-content:space-between}.member-chip{margin-left:auto}.topbar-title{margin-left:12px;margin-right:auto}
.opinion-serial{color:var(--ink)}.opinion-row.drag-over{box-shadow:inset 0 3px var(--accent)}@media(max-width:800px){.opinion-floating{width:calc(100% - 24px);max-width:calc(100% - 24px)}}
.opinion-serial{color:var(--ink)}.opinion-row.drag-over{box-shadow:inset 0 3px var(--accent)}@media(max-width:800px){.opinion-floating{width:calc(100% - 24px);max-width:calc(100% - 24px)}}
.opinion-sort [data-drag]{touch-action:none;user-select:none;cursor:grab}.opinion-sort [data-drag]:active{cursor:grabbing}
.form-required{color:#c1434b;font-weight:600}.product-card-link{display:block;color:var(--ink);text-decoration:none}.product-card-link:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.opinion-batch-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 20px;border-bottom:1px solid var(--line)}.opinion-batch-actions label{font-size:12px}.opinion-batch-actions select{width:160px}.danger-outline{color:#b7414b;border-color:#e5b6bc}.opinion-trash-notice{padding:14px 20px;background:#fff6e8;color:#8a6735;font-size:13px}.opinion-images-button{display:inline-flex;padding:5px 10px;border:1px solid #c7dfed;border-radius:6px;background:#edf7fd;color:#187eac;font-size:12px;margin-top:9px;cursor:pointer}.opinion-no-image{display:inline-block;font-size:12px;color:var(--muted);margin-top:9px}.copy-field-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:9px 0;border-bottom:1px solid var(--line)}.copy-field-row label{display:flex;align-items:center;gap:8px;font-size:13px}.copy-field-row input{width:auto}.copy-field-row>div{display:flex;gap:18px}.copy-field-row button{padding:4px 10px}#copy-config-preview{width:100%;margin-top:10px;resize:vertical}.image-controls{display:flex;align-items:center;justify-content:flex-end;gap:14px;color:white;flex-wrap:wrap}.image-overlay>.page-code{flex:none}.image-overlay>img{min-height:0}.detail-shots .opinion-images-button{margin:14px 0}.product-card-link:hover h2{color:var(--accent)}@media(max-width:640px){.opinion-batch-actions{padding:12px 14px}.opinion-toolbar>.actions{gap:9px}.copy-field-row{gap:8px}.copy-field-row>div{gap:4px}.copy-field-row label{font-size:12px}}

.opinion-list-filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap;padding:18px 20px;border-bottom:1px solid var(--line)}.opinion-list-filters label{display:grid;gap:6px;font-size:12px;min-width:150px;flex:1}.opinion-list-filters label:first-child{flex:1.5;min-width:220px}.opinion-row-controls{display:flex;gap:8px;align-items:center}.opinion-reporter-cell{min-width:150px}.opinion-reporter-cell span,.opinion-reporter-cell time,.opinion-source-version{display:block;font-size:12px;margin-top:6px;word-break:break-word}.opinion-reporter-cell time,.opinion-source-version,.opinion-sort-hint{font-size:11px;color:var(--muted)}.opinion-sort-hint{padding:8px 20px 14px}.opinion-table .opinion-content{min-width:280px}@media(max-width:640px){.opinion-list-filters{padding:14px;gap:10px}.opinion-list-filters label{min-width:130px}.opinion-list-filters label:first-child{min-width:100%}}

/* 正式页面无设计底座，侧栏内容贴合视口底部。 */
.sidebar{height:100dvh;padding-bottom:max(18px,env(safe-area-inset-bottom))}.sidebar>*{flex-shrink:0}.sidebar .sidebar-spacer{flex:1 0 10px}.sidebar-footer{margin-top:0;padding:14px 0 0}.danger-text{color:#b7414b}.token-value{min-width:0;flex:1;text-align:left;border:0;background:transparent;padding:0;color:inherit;cursor:pointer}.token-display>.actions{flex-shrink:0}.product-tile-footer{flex-wrap:wrap}
