/* Page-specific layouts; navigation and shared theme remain in site.css. */
.page-visual-banner { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.8fr); gap:46px; align-items:center; margin:0 0 34px; padding:0; }
.page-visual-banner .page-visual-copy { min-width:0; }
.page-visual-banner .page-visual-kicker { color:#647960; font-size:.75rem; letter-spacing:.14em; margin:0 0 14px; }
.page-visual-banner .page-visual-title { color:#193c2a; font-family:'Noto Serif SC','STSong','SimSun',serif; font-size:clamp(2rem,3.5vw,3.05rem); font-weight:600; line-height:1.4; letter-spacing:.01em; margin:0 0 15px; }
.page-visual-banner .page-visual-intro { font-size:.9375rem; line-height:1.9; color:#697564; max-width:38em; margin:0 0 17px; }
.page-visual-banner .page-visual-image { margin:0; min-width:0; position:relative; overflow:hidden; border-radius:22px 22px 22px 4px; isolation:isolate; }
.page-visual-banner .page-visual-image img { width:100%; height:226px; object-fit:cover; display:block; transition:transform .7s cubic-bezier(.2,.7,.2,1); }
.page-visual-banner .page-visual-image:hover img { transform:scale(1.035); }
.page-visual-banner .page-visual-image figcaption { position:absolute; bottom:14px; left:16px; background:#173d2ddc; color:#fff; border-radius:6px; padding:5px 10px; font-size:.75rem; letter-spacing:.04em; }
.page-visual-banner .page-visual-links { display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
.page-visual-banner .page-visual-links a { color:#174d35; font-size:.875rem; text-decoration:none; border-bottom:1px solid #bac9ae; padding:5px 0; }
.field-workbench .page-visual-banner .page-visual-title { font-size:clamp(2rem,3.5vw,3.05rem); }
.field-workbench .dw-section { border-radius:18px; border-color:#e4e7d8; box-shadow:0 7px 30px #29432a06; }
.field-workbench .dw-task-option { border-radius:10px; transition:transform .22s ease,border-color .22s ease,background .22s ease; }
.field-workbench .dw-task-option:hover { transform:translateY(-3px); }
.field-workbench .dw-task-option.is-selected { background:#f0f4d9; border-color:#9ebc7d; }
.field-workbench .dw-task-option .dw-task-mark { background:none; border:none; border-radius:0; width:28px; height:28px; }
.field-workbench .dw-task-mark svg { width:28px; height:28px; fill:none; stroke:#174d35; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.field-workbench .dw-button { border-radius:8px; min-height:44px; }
.field-workbench .dw-upload-zone { border-radius:13px; background:#f8faf1; }
.field-workbench .dw-field-notes { padding-top:12px; }
.field-workbench .dw-photo-sketch { overflow:hidden; border-radius:12px; background:#edf2e4; }
.field-workbench .dw-photo-sketch img { width:100%; height:190px; object-fit:cover; display:block; }
.consultation-page .consultation-heading.page-visual-banner { display:grid; }
.consultation-page .page-visual-banner .page-visual-title { font-size:clamp(2rem,3.5vw,3.05rem); }
.consultation-page #consultation-form { border-radius:18px; box-shadow:0 7px 30px #29432a06; }
.consultation-page .consultation-aside-note,.consultation-page .consultation-boundary { border-radius:14px; }
.consultation-page .consultation-boundary summary { cursor:pointer; color:#3b5640; font-weight:600; }
.consultation-page .consultation-button { border-radius:8px; min-height:44px; }
.consultation-page .consultation-history-record { border-radius:16px; }
.review-page .page-visual-banner { margin-bottom:24px; }
.review-page .page-visual-banner .page-visual-image img { height:165px; }
.review-page .page-visual-banner .page-visual-title { font-size:clamp(1.9rem,3vw,2.6rem); }
.review-page .review-sheet { border-radius:16px; box-shadow:0 7px 30px #29432a06; }
.review-page .review-image { border-radius:10px; }
.review-page .review-table-wrap { border-radius:15px; }
.account-shell { width:min(1180px,calc(100% - 48px)); margin:42px auto 70px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); background:#fff; border:1px solid #e0e5d5; border-radius:24px; overflow:hidden; box-shadow:0 14px 50px #24482b09; }
.account-photo-panel { position:relative; min-height:540px; background:#2c5137; overflow:hidden; }
.account-photo-panel > img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.account-photo-panel::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,#10271810 25%,#102718cc); }
.account-photo-copy { position:absolute; left:40px; right:40px; bottom:38px; z-index:1; color:#fff; }
.account-photo-copy p { color:#e4edd7; font-size:.8125rem; letter-spacing:.1em; margin:0 0 15px; }
.account-photo-copy h2 { font-family:'Noto Serif SC','STSong','SimSun',serif; font-size:2.1rem; line-height:1.55; font-weight:500; color:#fff; margin:0 0 18px; }
.account-photo-copy small { color:#e2eacf; line-height:1.8; }
.account-form-panel { padding:45px 54px; min-width:0; align-self:center; }
.account-form-panel .account-kicker { color:#708163; font-size:.75rem; letter-spacing:.14em; margin:0 0 14px; }
.account-form-panel h1 { color:#193c2a; font-size:2rem; line-height:1.5; font-weight:600; margin:0 0 8px; }
.account-form-panel .account-intro { color:#74806c; font-size:.875rem; margin:0 0 28px; }
.account-field { margin-bottom:18px; }
.account-field label { color:#40543b; font-size:.875rem; font-weight:500; display:block; margin-bottom:7px; }
.account-field input { width:100%; min-height:47px; border:1px solid #d6dfca; padding:10px 13px; background:#fafbf7; color:#193c2a; border-radius:8px; }
.account-field small { display:block; color:#79846e; font-size:.75rem; margin-top:6px; }
.account-two-fields { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:14px; }
.account-submit { width:100%; border:0; background:#174d35; color:#fff; min-height:48px; border-radius:8px; font-size:.9375rem; font-weight:600; cursor:pointer; transition:transform .2s ease,background .2s ease; }
.account-submit:hover { background:#103e29; transform:translateY(-2px); }
.account-submit:disabled { opacity:.6; cursor:wait; transform:none; }
.account-footer { border-top:1px solid #edf0e5; margin-top:24px; padding-top:20px; color:#74806c; font-size:.8125rem; }
.account-footer a { color:#174d35; margin-left:8px; font-weight:600; }
.account-password-wrap { position:relative; }
.account-password-wrap input { padding-right:64px; }
.account-password-toggle { position:absolute; right:8px; top:50%; transform:translateY(-50%); border:0; padding:8px; color:#50664b; background:transparent; font-size:.75rem; cursor:pointer; min-height:38px; }
.account-error { color:#914a38; background:#fff3eb; padding:10px 12px; border-radius:7px; font-size:.875rem; }
.profile-layout { width:min(1120px,calc(100% - 48px)); margin:40px auto 70px; }
.profile-cover { overflow:hidden; border-radius:20px; min-height:210px; position:relative; background:#174d35; }
.profile-cover > img { width:100%; height:250px; object-fit:cover; display:block; filter:brightness(.65); }
.profile-cover-copy { position:absolute; left:40px; bottom:30px; color:#fff; }
.profile-cover-copy .profile-avatar { display:flex; align-items:center; justify-content:center; width:52px; height:52px; border-radius:50%; background:#d4df8b; color:#174d35; font-size:1.4rem; margin-bottom:12px; }
.profile-cover-copy h1 { color:#fff; font-size:1.9rem; font-weight:600; margin:0 0 5px; overflow-wrap:anywhere; }
.profile-cover-copy p { margin:0; color:#e2ebd8; font-size:.875rem; }
.profile-meta-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 36px; padding:28px 34px; background:#fff; border:1px solid #e1e7d7; border-radius:16px; margin-top:24px; }
.profile-meta-grid > div { padding:18px 0; border-bottom:1px solid #edf0e6; min-width:0; }
.profile-meta-grid dt { color:#7c896f; font-size:.8125rem; margin-bottom:7px; }
.profile-meta-grid dd { margin:0; color:#193c2a; font-size:1rem; overflow-wrap:anywhere; }
.profile-action-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:24px; }
.profile-action-card { display:block; text-decoration:none; padding:23px; background:#eef3e1; border-radius:13px; border:1px solid #dde5cc; color:#193c2a; transition:transform .22s ease,background .22s ease; }
.profile-action-card:hover { transform:translateY(-4px); background:#e6eece; }
.profile-action-card span { display:block; font-size:.75rem; color:#72905e; margin-bottom:14px; }
.profile-action-card h2 { font-size:1.05rem; font-weight:600; margin:0 0 7px; }
.profile-action-card p { color:#748167; font-size:.8125rem; margin:0; }
.profile-edit-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; align-items:start; }
.profile-form-card { background:#fff; padding:30px; border:1px solid #e0e7d4; border-radius:16px; min-width:0; }
.profile-form-card h2 { color:#193c2a; font-size:1.3rem; margin:0 0 8px; }
.profile-form-card > p { color:#77846d; font-size:.875rem; margin:0 0 24px; }
.dataset-card .dataset-name { background:none; -webkit-text-fill-color:currentColor; color:#193c2a; }
.dataset-card .dataset-link { border-radius:7px; min-height:44px; }
.dataset-card .dataset-cover { display:block; width:100%; height:155px; object-fit:cover; border-radius:10px; margin-bottom:18px; }
.dataset-card .dataset-category { display:inline-block; color:#6e8459; background:#edf2de; border-radius:4px; padding:2px 7px; font-size:.6875rem; margin-bottom:12px; }
.page-polish-admin .admin-grid { gap:22px; }
.page-polish-admin .glass-card,.page-polish-admin .user-card,.page-polish-admin .feedback-card { border-radius:16px !important; }
.page-polish-admin .card-icon { display:none; }
.page-polish-admin .user-header { gap:16px; flex-wrap:wrap; }
.page-polish-admin .info-row { overflow-wrap:anywhere; }
.page-polish-admin .actions button { min-height:40px; }
.training-layout { width:min(1280px,calc(100% - 48px)); margin:38px auto 70px; }
.training-grid { display:grid; grid-template-columns:340px minmax(0,1fr); gap:24px; align-items:start; }
.training-card { border:1px solid #dee6d4; border-radius:16px; background:#fff; padding:26px; min-width:0; }
.training-card h2 { font-size:1.3rem; margin:0 0 8px; color:#193c2a; }
.training-card .training-intro { color:#78856d; font-size:.875rem; margin:0 0 22px; }
.training-table-wrap { overflow-x:auto; }
.training-table { width:100%; border-collapse:collapse; font-size:.875rem; min-width:540px; }
.training-table th,.training-table td { padding:13px 10px; text-align:left; vertical-align:top; border-bottom:1px solid #e7ecdf; }
.training-table small { display:block; color:#7c8d70; margin-top:5px; }
.training-status { display:inline-block; font-size:.75rem; padding:3px 7px; border-radius:5px; background:#edf3e6; color:#527440; white-space:nowrap; }
.training-status.failed { background:#fff0e8; color:#914733; }
.training-output-list { display:flex; flex-direction:column; gap:5px; margin-top:8px; }
.training-output-list a { font-size:.8125rem; }
.training-delete { border:0; color:#93513e; padding:6px 0; font-size:.8125rem; background:none; cursor:pointer; }
.training-empty { padding:40px 10px; color:#76896c; font-size:.875rem; text-align:center; }
.training-capability { background:#eff3e5; color:#65774e; padding:12px 15px; border-radius:8px; font-size:.8125rem; line-height:1.8; margin-top:18px; }
.training-details summary { color:#174d35; cursor:pointer; font-size:.875rem; margin-top:12px; }
.training-details img { width:100%; max-height:350px; object-fit:contain; background:#f5f7ee; margin-top:12px; border-radius:8px; }
.training-card .account-field select { width:100%; min-height:47px; padding:10px 13px; }
.multi-workbench { width:min(1180px,calc(100% - 48px)); margin:38px auto 65px; }
.multi-panel { background:#fff; border:1px solid #e0e6d4; border-radius:16px; padding:27px; margin-bottom:24px; min-width:0; }
.multi-panel h2 { color:#193c2a; font-size:1.35rem; font-weight:600; margin:0 0 14px; }
.multi-hint { color:#78836e; font-size:.8125rem; line-height:1.9; }
.multi-model-options { border:0; padding:0; margin:18px 0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.multi-model-options legend { color:#657b53; font-size:.8125rem; padding-bottom:12px; }
.multi-model-option { display:flex; align-items:center; gap:12px; border:1px solid #e0e8d2; border-radius:9px; padding:15px; cursor:pointer; font-size:.875rem; color:#3c5939; transition:background .2s ease,border-color .2s ease; }
.multi-model-option:has(input:checked) { background:#f1f5da; border-color:#9db679; }
.multi-model-option input { accent-color:#174d35; flex-shrink:0; }
.multi-model-option span { min-width:0; overflow-wrap:anywhere; }
.multi-model-option small { display:block; font-size:.6875rem; margin-top:4px; color:#8a977a; }
.multi-input-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; align-items:start; }
.multi-dropzone { text-align:center; background:#f8faf1; border:1px dashed #b8c8a3; border-radius:10px; padding:27px 18px; margin:20px 0; transition:background .2s ease; }
.multi-dropzone.is-dragging { background:#eff5d9; }
.multi-dropzone > svg { width:35px; height:35px; fill:none; stroke:#739355; stroke-width:1.3; margin:auto; }
.multi-dropzone p { color:#667e54; font-size:.9375rem; margin:10px 0 16px; }
.multi-status { color:#688156; font-size:.8125rem; line-height:1.8; overflow-wrap:anywhere; }
.multi-status.is-error { color:#924a36; }
.multi-preview-row { display:flex; align-items:center; gap:12px; border:1px solid #e5ebdc; border-radius:8px; padding:9px; margin-bottom:9px; }
.multi-preview-row img,.multi-preview-row .multi-archive-label { width:50px; height:50px; object-fit:cover; border-radius:4px; flex-shrink:0; }
.multi-preview-row .multi-archive-label { background:#edf2e0; display:grid; place-items:center; font-size:.75rem; color:#567248; }
.multi-preview-row p { flex:1; min-width:0; overflow-wrap:anywhere; color:#4c6444; font-size:.75rem; margin:0; }
.multi-preview-row button { background:none; border:0; color:#84624d; font-size:.75rem; cursor:pointer; min-height:38px; }
.multi-panel video,.multi-panel #multi-camera-stream { width:100%; max-height:350px; object-fit:contain; border-radius:8px; background:#17271e; }
.multi-camera { margin-top:6px; }
.multi-camera > summary { color:#54734a; cursor:pointer; font-size:.875rem; padding:13px 0 22px; }
.comparison-toolbar { display:flex; justify-content:center; align-items:center; gap:20px; margin:0 0 25px; }
.comparison-toolbar p { color:#768765; font-size:.8125rem; margin:0; }
.comparison-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr)); gap:22px; }
.comparison-model { background:#fff; border:1px solid #e0e6d5; border-radius:16px; padding:23px; min-width:0; }
.comparison-model h2 { font-size:1.2rem; color:#193c2a; margin:0 0 20px; overflow-wrap:anywhere; }
.comparison-result img { width:100%; max-height:370px; object-fit:contain; border-radius:9px; background:#f3f6ec; }
.comparison-result h3 { font-size:1rem; font-weight:600; color:#46663b; margin:17px 0 10px; }
.comparison-advice { padding:12px; background:#f4f7ec; color:#6b7b58; font-size:.8125rem; border-radius:6px; overflow-wrap:anywhere; }
.comparison-advice p { margin:0; }
.comparison-no-result { color:#8a947a; padding:35px 10px; font-size:.875rem; text-align:center; }
.page-polish-admin .feedback-card { background:#fff; padding:25px; border:1px solid #e0e6d4; margin-bottom:20px; }
.feedback-meta { display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:20px; }
.feedback-meta h2 { font-size:1.1rem; margin:0 0 6px; color:#193c2a; }
.feedback-meta time { color:#829174; font-size:.75rem; }
.page-polish-admin .msg-content { color:#53694b; background:#f4f7ed; padding:14px 17px; border-radius:8px; line-height:1.85; margin-bottom:20px; overflow-wrap:anywhere; }
.page-polish-admin .reply-input { width:100%; padding:12px; resize:vertical; border:1px solid #c9d6ba; border-radius:8px; font-size:.9375rem; }
.feedback-submit-status { color:#6a8057; font-size:.8125rem; margin:0; }
.feedback-submit-status.is-error { color:#96503c; }
.page-polish-admin .badge-admin { color:#667335; background:#f1f2d7; }
@media(max-width:960px) { .page-visual-banner { gap:26px; } .training-grid { grid-template-columns:minmax(0,1fr); } .account-form-panel { padding:36px 30px; } .account-photo-copy { left:26px; right:26px; } .account-photo-copy h2 { font-size:1.8rem; } }
@media(max-width:720px) { .page-visual-banner { grid-template-columns:minmax(0,1fr); gap:20px; margin-bottom:27px; } .page-visual-banner .page-visual-image img { height:160px; } .page-visual-banner .page-visual-title { font-size:2rem; } .account-shell { width:calc(100% - 32px); grid-template-columns:minmax(0,1fr); margin:24px auto 45px; border-radius:18px; } .account-photo-panel { min-height:220px; } .account-photo-copy { left:24px; right:24px; bottom:22px; } .account-photo-copy h2 { font-size:1.55rem; margin-bottom:8px; } .account-photo-copy p { margin-bottom:8px; } .account-photo-copy small { display:none; } .account-form-panel { padding:28px 24px; } .account-two-fields { grid-template-columns:minmax(0,1fr); gap:0; } .profile-layout,.training-layout { width:calc(100% - 32px); margin-top:25px; } .profile-cover-copy { left:24px; bottom:24px; } .profile-meta-grid { grid-template-columns:minmax(0,1fr); padding:14px 24px; } .profile-action-grid,.profile-edit-grid { grid-template-columns:minmax(0,1fr); } .profile-form-card,.training-card { padding:24px 20px; } .review-page .page-visual-banner .page-visual-image { display:none; } }
@media(max-width:820px) { .multi-input-grid { grid-template-columns:minmax(0,1fr); } }
@media(max-width:600px) { .multi-workbench { width:calc(100% - 32px); margin-top:24px; } .multi-panel { padding:22px 18px; } .multi-model-options { grid-template-columns:minmax(0,1fr); } }
@media(prefers-reduced-motion:reduce) { .page-visual-image img,.dw-task-option,.account-submit,.profile-action-card { transition:none !important; transform:none !important; } }
@media print { .page-visual-image,.account-photo-panel,.profile-cover > img { display:none !important; } .page-visual-banner { display:block; } .page-visual-banner .page-visual-links { display:none; } .profile-cover-copy { position:static; color:#193c2a; } .profile-cover-copy h1,.profile-cover-copy p { color:#193c2a; } }
@media print { .comparison-toolbar { display:none; } .comparison-grid { display:block; } .comparison-model { margin-bottom:20px; break-inside:avoid; } }
