/* A field notebook: daylight, clear type, restrained agricultural colour. */
:root { --primary-color:#244b3c; --primary-dark:#173b2d; --primary-light:#397259; --primary-gradient:linear-gradient(#244b3c,#244b3c); --secondary-color:#345b74; --accent-color:#956b27; --success-color:#347451; --warning-color:#986e20; --error-color:#a23d35; --bg-primary:#f4f6f3; --bg-secondary:#fff; --bg-tertiary:#edf2ec; --text-primary:#24382e; --text-secondary:#4b5f54; --text-tertiary:#67796e; --border-color:#d8e0d8; --shadow-sm:0 2px 5px #183b2410; --shadow-md:0 5px 20px #183b2408; --shadow-lg:0 8px 25px #183b2410; --shadow-glow:none; --shadow-neon:none; --radius-sm:4px; --radius-md:6px; --radius-lg:8px; --radius-xl:10px; }
html { font-size:16px; scroll-padding-top:100px; }
body { margin:0; display:flex; flex-direction:column; min-height:100vh; color:var(--text-primary); background:var(--bg-primary); font-family:'Microsoft YaHei','PingFang SC','Noto Sans SC',Arial,sans-serif; line-height:1.7; }
body::before,body::after { display:none !important; }
* { box-sizing:border-box; }
button,input,select,textarea { font-family:inherit; }
a { color:#285c48; text-underline-offset:4px; }
button,a,input,select,textarea { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid #a88538; outline-offset:3px; }
[hidden] { display:none !important; }
.navbar { background:#fff; border-bottom:1px solid #d8e0d8; box-shadow:none; padding:14px 3vw; position:sticky; top:0; z-index:1000; }
.navbar .navbar-container { max-width:1420px; margin:auto; display:flex; gap:20px; align-items:center; justify-content:space-between; flex-wrap:wrap; }
.navbar .navbar-brand { color:#244b3c; background:none; -webkit-text-fill-color:currentColor; font-size:1.35rem; font-weight:750; text-decoration:none; display:flex; align-items:center; gap:10px; flex-shrink:0; }
.brand-mark { display:inline-grid; place-items:center; width:34px; height:34px; background:#244b3c; color:#fff; border-radius:4px; font-size:1.2rem; font-family:'SimSun',serif; }
.navbar .mode-badge { font-size:.75rem; letter-spacing:0; font-weight:500; border:1px solid #cddbd2; background:#f2f6f1; color:#526a5b; box-shadow:none; border-radius:3px; padding:2px 6px; margin-left:0; }
.navbar .badge-research { color:#38526b; background:#edf2f7; border-color:#cbd8e4; }
.navbar .navbar-nav { display:flex; list-style:none; gap:3px; padding:0; margin:0; align-items:center; flex-wrap:wrap; }
.navbar .nav-link { font-size:.9375rem; line-height:1.4; color:#54675a !important; padding:11px 10px; text-shadow:none; font-weight:500; border-radius:4px; text-decoration:none; }
.navbar .nav-link.active,.navbar .nav-link:hover { color:#244b3c !important; background:#eef3ed; box-shadow:none; transform:none; text-shadow:none; }
.navbar .nav-link::before { display:none; }
.navbar .navbar-actions { display:flex; gap:8px; align-items:center; }
.navbar .navbar-user { color:#64756a; max-width:96px; font-size:.875rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.navbar .btn { font-size:.875rem; padding:8px 12px; border-radius:4px; min-height:40px; }
.navbar .btn-toggle-farmer,.navbar .btn-toggle-research { background:#fff; color:#52655a; border:1px solid #cbd6ce; box-shadow:none; }
.navbar-toggle { color:#244b3c; background:#f1f5ef; border:1px solid #cad8ce; font-size:.875rem; border-radius:4px; }
.container { max-width:1280px; padding:2rem; }
.page-title,.form-title,.auth-title,.user-name,.section-title,.model-name { color:#24382e !important; background:none !important; -webkit-text-fill-color:currentColor !important; text-shadow:none !important; font-weight:700; line-height:1.5; }
.page-title { font-size:clamp(1.6rem,2.6vw,2.15rem) !important; text-align:left !important; letter-spacing:0; margin-bottom:1.5rem; }
.section-title::after { display:none; }
.card,.glass-card,.auth-card,.form-card,.stat-card,.stats-card,.profile-card,.dataset-card,.image-card,.video-card,.model-result,.diagnosis-card,.modal-content,.modal-box { background:#fff !important; color:#24382e !important; border:1px solid #d8e0d8 !important; border-radius:8px !important; box-shadow:none !important; backdrop-filter:none !important; }
.card:hover,.dataset-card:hover,.stat-card:hover,.stats-card:hover { transform:none !important; box-shadow:0 3px 10px #244b3c0c !important; border-color:#8da997 !important; }
.card::before { display:none; }
.card-title { color:#244b3c !important; -webkit-text-fill-color:currentColor !important; background:none !important; text-shadow:none !important; font-size:1.25rem; }
.card-header { border-bottom-color:#e2e8e1; }
.btn,.btn-action,.btn-view,.btn-back,.btn-load,.btn-start,.submit-btn,.auth-btn,.btn-send { min-height:44px; border-radius:5px; font-size:1rem; text-shadow:none !important; box-shadow:none !important; }
.btn-primary,.btn-action:not(.btn-secondary):not(.btn-danger):not(.btn-delete),.btn-load,.submit-btn,.auth-btn,.btn-send { background:#244b3c !important; border:1px solid #244b3c !important; color:#fff !important; }
.btn-primary:hover,.btn-load:hover,.submit-btn:hover,.auth-btn:hover { background:#173b2d !important; transform:none; box-shadow:none; }
.btn::before { display:none; }
.btn-secondary,.btn-back { background:#fff !important; border:1px solid #bacbbf !important; color:#345746 !important; }
.btn-danger,.btn-delete { color:#913b35 !important; background:#fff4f1 !important; border:1px solid #e5bcb5 !important; }
.form-label { color:#344b3d; font-size:1rem; }
.form-control,input[type='text'],input[type='email'],input[type='password'],input[type='tel'],input[type='number'],select,textarea { background:#fff !important; color:#263c30 !important; border-color:#bdccc1 !important; border-radius:5px; font-size:1rem; }
input::placeholder,textarea::placeholder { color:#7d897f !important; }
.form-control:focus { box-shadow:0 0 0 3px #cbded0; border-color:#60866c !important; }
.file-upload-area { background:#f8faf6 !important; border-color:#a7bfac !important; }
.file-upload-area::before { display:none; }
.file-upload-area:hover { box-shadow:none; background:#f0f6ed !important; }
.hint,.auth-footer,.empty-message,.empty-state,.status-text,.profile-subtitle { color:#64796b !important; }
.status-badge,.badge { font-size:.875rem; border-radius:4px; }
.pass { color:#286345 !important; background:#eef6ef !important; border-color:#c6dccb !important; }
.review { color:#8b6227 !important; background:#fff8e9 !important; border-color:#e6d7b4 !important; }
table { color:#354d3e; }
th { background:#edf3eb !important; color:#3b5846 !important; font-size:.9375rem; font-weight:600; }
td { font-size:.9375rem; color:#3f5446; border-bottom-color:#e2e8e1 !important; }
tbody tr:hover { background:#f5f8f2 !important; }
.history-table,.task-table { width:100%; }
.glass-card:has(table),.card:has(table) { overflow-x:auto; }
.page-link { background:#fff !important; color:#345b45 !important; border-color:#cad8cd !important; }
.current-page,.record-count,.code-id { color:#557360 !important; background:#edf4eb !important; }
.info-item,.media-box,.stat-item,.profile-info,.user-info,.task-info,.upload-preview { background:#f5f8f2 !important; color:#344e3d !important; border-color:#dce5da !important; box-shadow:none !important; }
.info-item h4,.info-item p,.media-label,.highlight-text,.label,.value,.stat-value,.stat-number { color:#345746 !important; }
.expert-advice,.diagnosis-info,.disease-result { background:#f2f7ee !important; color:#395340 !important; border-color:#cbdcc6 !important; }
.disease-name { color:#345f42 !important; }
.error-message { background:#fff4ef !important; color:#8e3e32 !important; border-color:#e5bfb3 !important; }
.site-footer { padding:28px 2rem; margin-top:auto; border-top:1px solid #d8e0d8; background:#edf2eb; color:#657869; font-size:.875rem; }
.footer-inner { max-width:1220px; margin:auto; display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem; align-items:center; }
.footer-links { display:flex; gap:1.5rem; }
.footer-links a { color:#41664d; }
.site-notice { max-width:1220px; margin:1rem auto; padding:1rem; background:#eef5e9; border-left:3px solid #71986d; color:#34533d; }
.site-notice.is-error { background:#fff4ef; border-left-color:#b96756; color:#863e31; }
.ai-fab-container { position:fixed; right:24px; bottom:24px; z-index:1200; }
.ai-fab-container .ai-fab-btn { width:auto; height:44px; padding:0 16px; font-size:.9375rem; color:#fff; background:#244b3c; border:1px solid #244b3c; border-radius:5px; box-shadow:0 3px 10px #244b3c25; }
.ai-fab-container .ai-fab-btn:hover { transform:none; background:#173b2d; }
.ai-fab-container .ai-chat-window { position:absolute; right:0; bottom:56px; flex-direction:column; overflow:hidden; background:#fff; border:1px solid #bbcdbd; border-radius:8px; box-shadow:0 12px 40px #183b2420; backdrop-filter:none; }
.ai-fab-container .ai-chat-header { display:flex; justify-content:space-between; color:#fff; background:#244b3c; }
.ai-fab-container .ai-chat-messages { display:flex; flex:1; flex-direction:column; gap:12px; overflow-y:auto; padding:16px; }
.ai-fab-container .chat-msg { align-self:flex-start; max-width:92%; padding:10px 13px; border:1px solid #d9e3d5; border-radius:5px; color:#354b3c; background:#f1f5ec; font-size:1rem; }
.ai-fab-container .msg-user { align-self:flex-end; }
.ai-fab-container .msg-user { color:#fff; background:#345e46; }
.ai-fab-container .msg-error { color:#853f31; background:#fff5ed; }
.ai-fab-container .ai-chat-input { display:flex; padding:12px; background:#f8faf6; border-top:1px solid #dfe7dc; }
.ai-fab-container .ai-chat-input input { flex:1; width:0; border:1px solid #b9cbbd; padding:10px; }
.ai-fab-container .ai-chat-send { color:#fff; background:#244b3c; border-color:#244b3c; font-size:.875rem; padding:6px 10px; }
.ai-fab-container .ai-chat-status { color:#835b32; background:#fff7e9; }
.ai-fab-container .chat-history-divider { color:#677e6b; }
.page-eyebrow { color:#627865; font-size:.875rem; letter-spacing:.12em; margin-bottom:.6rem; }
.page-introduction { color:#647869; max-width:48rem; margin-top:-.5rem; margin-bottom:1.6rem; font-size:1rem; }
.field-note { padding:1rem 1.25rem; border-left:3px solid #aa8737; background:#faf7e9; color:#665838; font-size:.9375rem; margin:1rem 0; }
.page-actions { display:flex; flex-wrap:wrap; gap:.7rem; margin:1.4rem 0; align-items:center; }
.text-link { font-size:.9375rem; color:#436b4c; }
.guide-layout { display:grid; grid-template-columns:1fr 290px; gap:2rem; align-items:start; }
.guide-main { background:#fff; border:1px solid #d9e3d6; padding:2rem; }
.guide-main h2 { color:#34553e; font-size:1.35rem; margin:1.8rem 0 .8rem; }
.guide-main h2:first-child { margin-top:0; }
.guide-main p,.guide-main li { color:#536b58; font-size:1rem; }
.guide-main ul,.guide-main ol { padding-left:1.5rem; }
.guide-main li { margin:.5rem 0; }
.guide-aside { padding:1.5rem; background:#edf3e9; border-top:3px solid #66825b; }
.guide-aside h2 { font-size:1.15rem; margin-bottom:1rem; color:#3c5c40; }
.guide-aside a { display:block; margin:1rem 0; }
.project-flow { display:flex; align-items:stretch; flex-wrap:wrap; gap:1rem; margin:1.5rem 0; }
.project-flow div { flex:1; min-width:160px; padding:1.2rem; background:#edf3e9; border-top:3px solid #607e57; }
.project-flow small { color:#59734f; }
.project-flow strong { display:block; margin:.4rem 0; font-size:1.1rem; }
.print-status,.copy-status { color:#617766; font-size:.875rem; }
.glass-panel,.glass-form,.user-card,.feedback-card,.report-card,#reportModal { color:#24382e !important; background:#fff !important; border:1px solid #d8e0d8 !important; box-shadow:none !important; backdrop-filter:none !important; border-radius:7px !important; }
.glass-panel,.glass-form,.user-card,.feedback-card { min-width:0; }
.glass-panel::before,.glass-form::before,.user-card::before,.feedback-card::before,.auth-container::before,.auth-card::after,.dataset-card::before,.profile-card::before { display:none !important; }
.dataset-name,.section-header { color:#345a43 !important; background:none !important; -webkit-text-fill-color:currentColor !important; border-color:#6f8c6d !important; }
.btn-submit { background:#244b3c !important; color:#fff !important; min-height:44px; box-shadow:none !important; border-radius:5px !important; letter-spacing:0 !important; }
.btn-submit:hover { background:#173b2d !important; transform:none !important; }
.form-input { background:#fff !important; color:#263c30 !important; border-color:#bdccc1 !important; }
.profile-avatar { box-shadow:none !important; border-color:#8ba990 !important; }
.msg-content { background:#f3f6f0 !important; color:#3b5343 !important; border-color:#dae4d6 !important; }
.feedback-card [style*="color:rgba(255"],.feedback-card h3,.feedback-card strong { color:#405d49 !important; }
.btn-success { background:#356f4b !important; color:#fff !important; box-shadow:none !important; }
.btn-outline:hover { background:#244b3c !important; color:#fff !important; box-shadow:none !important; }
.auth-link,.auth-link:hover { color:#365f45 !important; text-shadow:none !important; text-decoration:underline; }
.form-group label,.glass-form label { color:#4b6352 !important; }
.glass-panel [style*="color:rgba(255"],.glass-panel [style*="color: rgba(255"],.feedback-card [style*="color: #fff"],.feedback-card [style*="color: rgba(255"],#reportModal [style*="color:rgba(255"] { color:#617467 !important; }
.glass-panel td { color:#3f5446 !important; }
.glass-panel button[type="submit"],#btnWeight { color:#fff !important; background:#244b3c !important; }
.glass-panel .form-control:focus { box-shadow:0 0 0 3px #cbded0 !important; }
.range-slider { background:#d7e3d6 !important; }
.range-slider::-webkit-slider-thumb { background:#406c4d !important; box-shadow:none !important; }
.badge-pending { background:#fff7e8 !important; color:#846127 !important; border-color:#decda6 !important; }
.badge-training { background:#edf3f7 !important; color:#456278 !important; border-color:#c9d9e2 !important; }
.badge-completed { background:#eef5eb !important; color:#42694a !important; border-color:#cbdcc5 !important; }
.datasets-grid,.users-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,350px),1fr)) !important; }
.admin-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)) !important; }
.info-value,.user-email,.user-phone,.dataset-description { overflow-wrap:anywhere; }
.action-buttons { flex-wrap:wrap; }
.profile-header { background:#f5f8f2 !important; }
.avatar-circle { box-shadow:none !important; border-color:#7d9b80 !important; }
.role-user,.role-engineer { color:#386446 !important; background:#eff5ec !important; border-color:#c9dcc3 !important; }
.role-admin { color:#875a30 !important; background:#faf2e7 !important; border-color:#e1d0b7 !important; }
.info-group:hover { transform:none !important; background:#f4f8ef !important; border-color:#b5cab2 !important; }
.dashboard-header { flex-wrap:wrap; gap:12px; }
.dashboard-header div,.feedback-list>div:not(.feedback-card) { color:#617467 !important; }
#epochDisplay { color:#446b4b !important; }
.train-container { grid-template-columns:minmax(320px,400px) minmax(0,1fr) !important; }
.train-container .glass-panel { overflow-x:auto; }
.train-container .task-table { min-width:610px; }
.model-column { min-width:0; background:#fff !important; border-color:#d8e0d8 !important; box-shadow:none !important; backdrop-filter:none !important; }
.model-column:hover { transform:none !important; box-shadow:none !important; }
.model-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)) !important; }
.model-column .image-container,.upload-area { background:#f1f6ee !important; border-color:#bdcfb6 !important; }
.upload-area:hover { box-shadow:none !important; }
.status-handled { background:#edf5e9 !important; color:#446b46 !important; border-color:#c4d7bd !important; }
.status-pending { background:#fff7e8 !important; color:#846127 !important; border-color:#decda6 !important; }
.ai-fab-container button:focus-visible,.ai-fab-container input:focus-visible,.navbar a:focus-visible,.navbar button:focus-visible { outline-color:#a88538; }
.profile-container,.datasets-container { min-width:0; }
@media(max-width:960px) { .train-container { grid-template-columns:minmax(0,1fr) !important; padding:0 1rem !important; } }
@media(max-width:720px) { .glass-panel,.glass-form { padding:1.3rem !important; } .datasets-container { padding:1.5rem 1rem !important; } .report-grid,.report-downloads,.form-row { grid-template-columns:minmax(0,1fr) !important; flex-direction:column; } .form-col { min-width:0 !important; width:100%; } #reportModal { padding:1rem !important; } .profile-container .glass-card { padding:1.2rem !important; } }
@media(max-width:1120px) { .navbar { padding:12px 20px; } .navbar .navbar-container { gap:0; } .navbar .navbar-brand { margin-right:auto; } .navbar .navbar-nav { width:100%; padding-top:14px; } .navbar .navbar-actions { border-top-color:#d8e0d8; } }
@media(max-width:720px) { .container { padding:1.4rem 1rem; } .guide-layout { grid-template-columns:1fr; } .guide-main { padding:1.2rem; } .card { padding:1.2rem; } .page-title { font-size:1.65rem !important; } .page-introduction { margin-top:0; } .navbar .navbar-brand { font-size:1.15rem; } .navbar .mode-badge { font-size:.75rem; } .brand-mark { width:30px; height:30px; } .ai-fab-container { right:16px; bottom:16px; } .footer-inner { display:block; } .footer-links { margin-top:.7rem; } .site-footer { padding-bottom:85px; } .result-container,.detail-container,.history-container,.video-result-container,.dataset-container,.auth-container,.profile-container { width:100%; padding-inline:1rem !important; } .auth-card { padding:1.5rem !important; } .media-compare,.info-grid { grid-template-columns:1fr !important; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
@media print { body { background:#fff !important; } .navbar,.site-footer,.ai-fab-container,.page-actions,.button-container,.delete-btn,.pagination,button { display:none !important; } main,.container,.result-container,.detail-container { width:100% !important; max-width:none !important; margin:0 !important; padding:0 !important; } .image-card { display:block !important; break-inside:avoid; margin:1rem 0; } .card,.glass-card { border:1px solid #ccc !important; box-shadow:none !important; } }
