:root{--bg:#f7f6f2;--surface:#fbfaf7;--ink:#25302d;--muted:#737b73;--line:#dddfd7;--green:#3e5848;--soft:#e7ebe4;--amber:#946225;--red:#9c504a;--serif:"Songti SC","STSong","Noto Serif CJK SC",serif;--sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font:14px/1.6 var(--sans)}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;background:transparent;border:1px solid var(--line);border-radius:4px;padding:7px 13px;line-height:1.4;transition:background .15s}button:hover{background:var(--soft)}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--green);outline-offset:3px}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}input,select,textarea{background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:10px 12px;min-width:0}textarea{resize:vertical;line-height:1.7}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);line-height:1.35}svg{width:18px;height:18px;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.primary{background:var(--green);border-color:var(--green);color:#fff}.primary:hover{background:#314638}.muted{color:var(--muted)}.boot{padding:10vh 8vw}.error{color:var(--red);min-height:23px;margin-top:12px}.notice{color:var(--muted);font-size:13px}.link-button{border:0;background:none;color:var(--green);padding:6px}.header{height:73px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;gap:16px;background:var(--bg);position:sticky;top:0;z-index:5}.header h1{font-size:25px;font-weight:700;letter-spacing:.025em}.header-actions{display:flex;align-items:center;gap:16px;flex-shrink:0}.header-actions a{color:var(--ink);padding-left:16px;border-left:1px solid var(--line)}.identity{font-size:13px;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:calc(100vh - 73px)}.sidebar{border-right:1px solid var(--line);padding:24px 16px;position:sticky;top:73px;height:calc(100vh - 73px);overflow:auto}.sidebar h2{font-size:19px;margin:0 14px 18px}.category{border:0;display:flex;align-items:center;gap:12px;text-align:left;width:100%;padding:11px 14px;margin-bottom:4px;justify-content:flex-start}.category .count{margin-left:auto;font-size:12px;color:var(--muted)}.category.selected{background:var(--soft);color:var(--green)}.group-nav{border-top:1px solid var(--line);margin:25px 10px 0;padding-top:18px}.group-nav p{color:var(--muted);font-size:12px;margin-bottom:8px}.group-nav a{display:block;color:var(--muted);padding:8px 2px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-nav a:hover{color:var(--green)}.sidebar-note{font-size:12px;color:var(--muted);margin:26px 14px 10px;line-height:1.8}.main{padding:27px 26px 70px;min-width:0}.workspace-head{display:flex;gap:20px;align-items:start;justify-content:space-between;margin-bottom:22px}.workspace-head h2{font-size:29px;letter-spacing:.04em}.workspace-head p{color:var(--muted);margin-top:7px;font-size:13px}.refresh-meta{display:flex;align-items:center;gap:9px;flex-shrink:0;margin-top:8px;font-size:12px;color:var(--muted)}.toolbar{display:flex;align-items:center;gap:16px;justify-content:space-between;margin-bottom:28px;flex-wrap:wrap}.search{display:flex;align-items:center;border:1px solid var(--line);border-radius:4px;background:var(--surface);padding-left:12px;min-width:240px;max-width:430px;flex:1}.search input{border:0;background:none;width:100%;outline-offset:0;padding:10px}.tabs{display:flex}.tabs button{border-radius:0;margin-left:-1px;padding:9px 17px;white-space:nowrap}.tabs button:first-child{border-radius:4px 0 0 4px;margin-left:0}.tabs button:last-child{border-radius:0 4px 4px 0}.tabs .active{background:var(--green);color:white;border-color:var(--green)}.asset-group{margin-bottom:32px;scroll-margin-top:96px}.group-heading{border-bottom:1px solid var(--line);margin-bottom:13px;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;padding-bottom:8px}.group-heading h3{font-size:20px;font-weight:600;overflow-wrap:anywhere}.group-code{font-family:var(--serif);font-size:18px}.group-heading .muted{margin-left:auto;font-size:12px}.candidates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}.asset-card{border:1px solid var(--line);padding:8px;border-radius:4px;background:var(--surface);min-width:0}.image-button{border:0;padding:0;width:100%;display:block;aspect-ratio:16/9;background:#fff;overflow:hidden;border-radius:1px;position:relative}.image-button img{width:100%;height:100%;object-fit:contain;display:block}.image-button .image-zoom{position:absolute;right:7px;bottom:7px;padding:4px 6px;background:#ffffffea;opacity:0;transition:opacity .15s;border-radius:3px}.image-button:hover .image-zoom,.image-button:focus .image-zoom{opacity:1}.filename{font-size:11px;color:#59645b;margin:8px 2px 7px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;line-height:1.6}.card-actions{display:flex;gap:5px;align-items:center}.status-buttons{display:flex;gap:5px;flex:1}.status-buttons button{padding:7px 4px;flex:1;font-size:12px;white-space:nowrap}.status-buttons button.on.satisfied{background:var(--green);border-color:var(--green);color:#fff}.status-buttons button.on.changes{background:#f0e7d8;border-color:#dfc49b;color:var(--amber)}.status-buttons button.on.rejected{background:#f2e5e2;border-color:#dcbbb6;color:var(--red)}.comment-button{font-size:12px;display:flex;align-items:center;gap:5px;padding:7px 8px;white-space:nowrap}.comment-button svg{width:14px;height:14px}.comment-preview{font-size:12px;line-height:1.7;border-top:1px solid var(--line);margin-top:10px;padding:9px 3px 1px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap;overflow-wrap:anywhere;color:#5a665c}.empty{padding:65px 25px;border-top:1px solid var(--line);text-align:center;color:var(--muted)}.empty button{margin-top:16px}.auth-wrap{max-width:480px;margin:11vh auto 8vh;padding:0 24px}.auth-wrap h1{font-size:32px;line-height:1.55}.auth-wrap h2{font-family:var(--sans);font-size:18px;font-weight:500;margin:18px 0 6px}.auth-wrap>p{color:var(--muted);margin-bottom:25px}.auth-wrap form{display:flex;flex-direction:column;gap:17px;border-top:1px solid var(--line);padding-top:25px}.field{display:flex;flex-direction:column;gap:7px}.field span{font-size:13px}.auth-wrap .primary{margin-top:5px;padding:12px}.auth-footer{border-top:1px solid var(--line);margin-top:26px;padding-top:20px;display:flex;justify-content:space-between;font-size:13px}.setup-hint{margin-top:18px;font-size:12px;color:var(--muted)}#toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--ink);color:#fff;border-radius:5px;padding:10px 20px;opacity:0;pointer-events:none;z-index:50;font-size:13px;max-width:90vw;transition:opacity .15s,transform .15s}#toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}dialog{border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink);padding:0;width:min(1240px,94vw);max-height:92vh}dialog::backdrop{background:#18221f8a}dialog .dialog-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;border-bottom:1px solid var(--line)}.dialog-header h2{font-size:21px}.icon-button{padding:6px;border:0;display:flex;align-items:center;justify-content:center}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;max-height:calc(92vh - 70px);overflow:auto}.detail-image-area{padding:22px;background:#eeeee8;display:flex;flex-direction:column;justify-content:center;min-height:400px}.detail-image-area img{width:100%;max-height:58vh;object-fit:contain;background:white}.detail-image-info{font-size:12px;color:var(--muted);padding-top:12px;overflow-wrap:anywhere;display:flex;justify-content:space-between;gap:16px}.detail-info{padding:22px;display:flex;flex-direction:column;gap:17px}.detail-info .field textarea{width:100%;min-height:180px}.detail-info .status-buttons button{padding:10px 4px}.detail-info .primary{padding:12px}.detail-note{font-size:12px;color:var(--muted);line-height:1.8}.dialog-navigation{display:flex;gap:10px;justify-content:space-between;margin-top:17px}.dialog-navigation button{font-size:12px}.review-note{padding:12px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.review-note .review-title{display:flex;align-items:center;gap:12px;margin-bottom:7px}.review-note p{white-space:pre-wrap;font-size:13px}.review-note time{font-size:11px;color:var(--muted)}.tag{display:inline-block;font-size:11px;padding:3px 7px;border-radius:3px;background:var(--soft);color:var(--green)}.tag.changes{background:#f0e7d8;color:var(--amber)}.tag.rejected{background:#f2e5e2;color:var(--red)}.tag.unreviewed{background:#eeeee7;color:var(--muted)}.export-bar{display:flex;gap:10px;align-items:end;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;margin-bottom:24px;flex-wrap:wrap}.export-bar .field{min-width:150px}.export-bar .primary{padding:11px 18px}.export-bar .notice{flex:1;min-width:220px;padding:7px 0}.admin-table-wrap{overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:13px}.admin-table th{text-align:left;font-weight:500;color:var(--muted);background:#eeeee8;padding:10px 12px;font-size:12px;white-space:nowrap}.admin-table td{padding:13px 12px;border-bottom:1px solid var(--line);vertical-align:top}.admin-table .thumb{width:104px;height:59px;object-fit:contain;background:white}.admin-table .table-image{border:0;padding:0;display:block}.table-name{max-width:300px;overflow-wrap:anywhere}.table-name strong{display:block;font-weight:500}.table-name small{font-size:11px;color:var(--muted)}.table-opinions{min-width:180px;max-width:400px}.table-opinion{font-size:12px;margin-bottom:7px}.table-opinion p{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted);margin-top:3px}.admin-actions{display:flex;gap:10px;flex-wrap:wrap}.admin-actions button{font-size:13px}#settings{max-width:470px}.settings-form{padding:22px;display:flex;flex-direction:column;gap:18px}.form-actions{display:flex;justify-content:end;gap:10px}.bottom-meta{border-top:1px solid var(--line);padding-top:18px;margin-top:24px;font-size:12px;color:var(--muted)}
@media(min-width:1650px){.candidates{grid-template-columns:repeat(4,minmax(0,1fr))}.main{padding:32px 36px}.header{padding:0 36px}}
@media(max-width:1200px){.shell{grid-template-columns:190px minmax(0,1fr)}.candidates{grid-template-columns:repeat(2,minmax(0,1fr))}.main{padding:25px 20px}.workspace-head{flex-wrap:wrap;gap:5px}.toolbar{gap:12px}.tabs{width:100%}.tabs button{flex:1}.header h1{font-size:22px}.comment-button{padding:7px 6px}}
@media(max-width:760px){.header{height:auto;min-height:70px;padding:14px 18px;align-items:start;flex-direction:column;gap:8px;position:relative}.header h1{font-size:23px}.header-actions{width:100%;font-size:12px;gap:12px}.header-actions .identity{margin-right:auto}.shell{display:block}.sidebar{position:relative;height:auto;padding:14px 16px;border-right:0;border-bottom:1px solid var(--line);top:auto;display:flex;flex-wrap:wrap;gap:4px}.sidebar #categories{display:flex;flex-wrap:wrap;gap:3px;width:100%}.sidebar h2,.group-nav,.sidebar-note{display:none}.category{width:auto;margin:0;padding:8px 10px;font-size:12px;gap:6px}.category svg{width:15px;height:15px}.category .count{display:none}.main{padding:22px 16px 45px}.workspace-head h2{font-size:27px}.refresh-meta{width:100%;margin-top:7px;justify-content:space-between}.toolbar{margin-bottom:25px}.search{max-width:none;min-width:0;flex-basis:100%}.tabs button{padding:9px 5px;font-size:12px}.candidates{grid-template-columns:1fr;gap:15px}.group-heading h3{font-size:18px}.group-code{font-size:15px}.group-heading .muted{font-size:11px}.filename{font-size:11px}.status-buttons button,.comment-button{font-size:12px;padding:9px 6px}.asset-group{scroll-margin-top:12px}.detail-layout{grid-template-columns:1fr}.detail-image-area{padding:14px;min-height:0}.detail-image-area img{max-height:40vh}.detail-info{padding:18px}.detail-info .field textarea{min-height:110px}.dialog-header h2{font-size:18px}.detail-image-info{display:block}.detail-image-info a{display:inline-block;margin-top:6px}dialog .dialog-header{padding:13px 16px}.export-bar .field{min-width:0;flex:1;flex-basis:40%}.export-bar .primary{width:100%}.admin-table td,.admin-table th{padding:10px}.admin-table .thumb{width:80px;height:45px}.table-name{min-width:170px}.table-opinions{min-width:170px}.auth-wrap{margin:7vh auto}.auth-wrap h1{font-size:29px}.admin-actions{margin-top:10px}.bottom-meta{line-height:1.8}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.shared-reviews{border-top:1px solid var(--line);margin-top:12px;padding:10px 3px 0}.shared-title{font-size:11px;color:var(--muted)}.review-note.compact{padding:9px 0}.review-note.compact:last-child{border:0}.review-note.compact .review-title{font-size:12px;justify-content:space-between;gap:6px;flex-wrap:wrap}.review-note.compact p{font-size:12px;color:#59645b;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.shared-detail{border-top:1px solid var(--line);padding-top:18px}.shared-detail h3{font-size:19px;margin-bottom:7px}.review-title small{font-size:11px}

.detail-image-area>.shared-detail{margin-top:22px;padding-top:18px;width:100%}.detail-image-area>.shared-detail .review-note{padding:14px 0}.detail-image-area>.shared-detail .review-title{justify-content:flex-start;gap:12px}.detail-image-area:has(>.shared-detail){justify-content:flex-start}

.reference-gallery{margin-top:22px;border-top:1px solid var(--line);padding-top:18px;width:100%}.reference-gallery h3{font-size:19px;margin-bottom:7px}.reference-images{display:flex;flex-wrap:wrap;gap:14px;margin-top:13px}.reference-images a{display:block;width:min(240px,100%);font-size:11px;overflow-wrap:anywhere}.reference-images img{width:100%;height:190px;object-fit:contain;background:#fff;display:block;margin-bottom:7px}.reference-images span{display:block}.detail-image-area:has(>.reference-gallery){justify-content:flex-start}
